cancel
Showing results for 
Search instead for 
Did you mean: 

How do I provide a URL parameter to an XML HTTP Data Source without prompt?

Former Member
0 Kudos

Hello!

I have created a Crystal report to print a SAP B1 object that accepts the ID of the object as a DocKey@ parameter. When I query the appropriate table using an ODBC Data Source, I get the correct data for the object. I would now like to pass the DocKey@ to a HTTP service (not SOAP-based web service) I wrote that returns XML data about the object. Either in addition to or instead of looking up object data through the ODBC Data Source. When I added an XML HTTP Data Source with a theKey URL parameter Crystal Reports added another Parameter Field to my report called theKey. When I print preview the report in CR I am prompted for both DocKey@ and theKey parameters, and the value for theKey that I enter manually is passed to my HTTP service fine and I get back the XML I would expect. The report doesn't work at all when I import the report to SAP B1. How can I use DocKey@ as the URL parameter to my HTTP service?

I tried editing the "theKey" Parameter Field so that its "Value Field" references the key column returned by the ODBC Data Source query. This doesn't save for some reason.

I tried renaming the "theKey" Parameter Field to something else (since I can't delete it) and then creating a Formula Field named "theKey" that is equal to DocKey@ but the preview continues to prompt for and use the original, renamed Parameter Field.

I even tried a record selection formula of "{?theKey} = {?DocKey@}".

I am new to Crystal Reports so hopefully there is just something obvious that I am not aware of yet. Thanks for any help you may have!

Accepted Solutions (0)

Answers (1)

Answers (1)

ido_millet
Active Contributor
0 Kudos

Option 1: if you use that data source in a subreport, Crystal allows you to link the parameter to a main report column.

Option 2: get the XML via a UFL call. You need a create/get a UFL that includes a function for returning the response to the URL call.