on 05-22-2014 7:31 PM
I developed and Adobe Form that can be used offline - steps in development are as below:
1. Webservice generated out of a BAPI in SAP.
2. WSDL generated from SOAMANAGER transaction code and kept on a newtowrk folder
3. Used this WSDL to prepare the form in SAP WebDynpro view
4. generated the URL of the webservice per Dev / QA / Prod when the form is being generated out of the WebDynrpo app - function module ICM_SERVER_INFO (used here)
4. Placed a regular type button on the form and passed the URL on the click of the button
5. This worked fine in Dev system.
6. Now the transports are moved to QA. But click of the button was still pointing to the Dev system.
7. Realized that it is reading the Dev WSDL from the network drive - it still tries to submit to the dev url of the webservice
8. So generated the WSDL from SOAMANAGER fo QA and over wrote with the Dev WSDL files.
9. When I opent he Adobe Form in WebDypro in QA, it reads the new WSDLs and updates the correct URLs - I checked this in the XML of the source of the Adobe Form
10. here comes the problem - even though step 9 is done correctly, I can not save the form and activate it to reflect the new URLs - since QA is not open. Same procedure may need to be followed in case of Production also.
So the question is:
How to circumvent this issue of updating the WSDL and URL after the development transport is moved to QA and Prodcution?
Or - QA and Prod have to opened, WSDL and URl updated in change mode of form and a transport also created?
(seems to be a limitation)
(I looked a bit but did not get any pointers when I googled - may be my search is not correct).
Please advise.
Thanks,
hi Chandra,
I store the url in one of hidden field in form, then copy javascript below to click event, button control type: Regular.
just replace all the "<>" in the code below.
var message;
var response;
// The name of the data connection will be pulled from the WSDLConnection name in the ConnectionSet packet
var sWSDLName = <DataConnection name>;
// clone, modify and execute the connection.
var vConnection = xfa.connectionSet[sWSDLName].clone(true);
vConnection.soapAddress.value = <url>;
// Execute the connection, without remerge data after the result.
var ws_rc = vConnection.execute(true);
for multiple data connection, you have to repeat these code with replace different data connection name and it's url address.
you may use script object (something like subroutine).
Regards,
Kathy Lau
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi Chandra,
did you create endpoint for your current client? ensure the endpoint is generated in the server and client before you call web service ( you may repeat this step in DEV, QAS and PRD).
does your url link working?
did you bind your fields?
bind your request and response fields by using import/export bindings (execute WSDL).
you can set the external breakpoint at your function module which your web service point to.
Regards,
Kathy
I think there was an tool to handle that deliverd by SAP. I'm not sure, because I didn't got my documents available right now.
A classic solution might be to have a customizable webservice-string in your interface. But I know that this got other problems behind (Syntaxcheck, Securityaspects and stuff like that)
~Florian
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Since the WSDL is retaining the dev url, it needs to be updated.
So a workaround may be - like - once the initial transport is moved to QA, get the QA WSDL, change the dataconnection in development, move the new transport to QA
alternately open qa and change in qa itself - the user should have development auth in QA.
Same process can be followed in production also..
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.