cancel
Showing results for 
Search instead for 
Did you mean: 

How to move offline form from SAP dev to QA and Production environments?

0 Kudos

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,

Accepted Solutions (1)

Accepted Solutions (1)

0 Kudos

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

0 Kudos

Hi Kathy,

One of my web service calls from your code above sends a couple of fields and expects a value of  'X' in return.

Can you please advise on how to get the response from the Web Service using your query above?

0 Kudos

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

0 Kudos

Kathy, it is working fine now... Thanks for the help

Florian
Active Contributor
0 Kudos

Hi Chandra,

why should he mark an answer as correct if it doesn't solve the problem?

No matter, the solution works. there are some other ways available, but this also works.

~Florian

Answers (1)

Answers (1)

Florian
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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..

0 Kudos

I marked Bhaskar's answer as correct since it solved my issue and I am able to move my development to qa and tested good. I am moving to production soon.

If any better ideas are out there - please note down here and points can be redistributed..

Thanks