Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

web Service in ABAP

Former Member
0 Kudos

All

I have created a Web Service in our Development environment

and we have given the WSDL to our consumer and he can consume

this service without issue.

We have saved the Devlopment work against the Transport Request.

Q: We will be transporting this development to our

next Test System and then production. Will the WDSL URL change?

I understand that URL will change since the Server will be different.

but to confirm my understanding, this question is.

Q: since we are transporting this Service from Dev to Test/Prod,

how do we find the new WDSL and URL for test/Prod system.

Please advice on the steps.

Cheers

RJ

23 REPLIES 23

brad_bohn
Active Contributor
0 Kudos

Yes, the WSDL URL will change because the server and port have changed (you have generated a new endpoint binding in a new system); however, your external app developer should not need the new WSDL URLs from the downstream systems. The DEV WSDL URL is required in order to initiate the development in the external application, i.e., to discover the web service methods and parameters. Your external app developers should have a configuration file/table/etc. that identifies each server/system/port/etc. for your TEST and PROD systems and the application should know which system to connect to based on which version of the exteranl app is being used (DEV/TEST/PROD). You simply need to give them the particulars for each system.

Former Member
0 Kudos

Hello,

As mentioned above, WSDL URL will be different in each system because Application Server, Port, Security Requirements may be different.

When you transport Web Service, only Web Service definition will be moved. You have to setup configuration (also known as End Points) in each client which generates concrete WSDL URL . This is done using transaction SOAMANAGER.

Thanks,

Venu

0 Kudos

Thanks Brad/Venu.

My external apps developer was able to access our SAP web service.

Should I have to publish my Web Service definition to UDDI(Service Registry) ?

Is it mandatory to pubish to UDDI ?

My external apps(which consumes our SAP web service) is running in our own LAN..

Is that possible to declare a importing parameter(of FM which is exposed as Web Service ) to CHAR 4000 ?

Cheers

RJ

0 Kudos

Hello,

Publishing into Service Registry is an optional step.

Regarding your second question, I am not aware of any limitation on character size.

Thanks,

Venu

0 Kudos

Hi Venu,

Please help me on it.

I have made the changes in existing web service function module ( added new export parameter ) in development system and regenerated web service from SE80 transaction. then it works fine in SAP as well as third party system.

Now changes are moved to Quality system and tested it in SAP it is working fine and Even I have seen new parameter in WSDL file. But it is not working in third party system.

If you have experienced this kind of issue earlier  Kindly let me know if any changes need to be done Once web service changes are moved to another system.

Thanks in advance.

0 Kudos

Hi Paramesh,

Can you tel me what kind of error your getting in consumer side?

Is this" Deserialization or Serialization" Error?

0 Kudos

Hi Akshth,

Please find the below error which we are getting third party system.

com.ericsson.ecp.business.exception ECPException: Web service processing error; more details in the web service error log on provider side (UTC timestamp 20131023180006; Transaction ID 5267120B16C253F1E10000009958AFCC)

         at com.ericsson.ecp.business.impl.IPCMasterDataImpl.getIPCData(IPCMasterDataImpl.java:150)

         at com.ericsson.ecp.job.tasks.impl.IPCTask.executeTask(IPCTask.java:60)

         at com.ericsson.ecp.job.IPCMasterDataJob.executeInternal(IPCMasterDataJob.java:42)

         at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)

         at org.quartz.core.JobRunShell.run(JobRunShell.java:216)

         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)

Caused by: org.apache.axis2.AxisFault: Web service processing error; more details in the web service error log on provider side (UTC timestamp 20131023180006; Transaction ID 5267120B16C253F1E10000009958AFCC)

         at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:517)

         at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)

         at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)

         at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)

         at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)

         at ws.client.buildversion.ZECPLATESTKBVERSIONSTODAYStub.zEcpLatestKbVersionsToday(ZECPLATESTKBVERSIONSTODAYStub.java:217)

         at com.ericsson.ecp.business.impl.IPCMasterDataImpl.getIPCData(IPCMasterDataImpl.java:81)

         ... 5 more

Kindly let me know your input.

Thanks in Advance

0 Kudos

Can you consume same web service in SOAP UI? and check if your getting error or not. if you got the error please share with us.

0 Kudos

Hi Akshanth,

I would like to thank you for quick response.

We are getting below error from SOAP UI.

Output recieved:

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">

   <soap-env:Header/>

   <soap-env:Body>

      <soap-env:Fault>

         <faultcode>soap-env:Server</faultcode>

         <faultstring xml:lang="en">Web service processing error; more details in the web service error log on provider side (UTC timestamp 20131025164544; Transaction ID 526AD2FF237E53F0E10000009958AFCC)</faultstring>

         <detail/>

      </soap-env:Fault>

   </soap-env:Body>

</soap-env:Envelope>

Thanks in Advance.

0 Kudos

Hi,

Can you check with t-code - SRT_UTIL (webservice utility) and also can you check T-code SM21 is there any log generated for your service and any exceptions for your service?

0 Kudos

1. Consume your DEV WS in SOAP UI, and cross check with QAS.

2. Check all object has moved DEV to QAS. (like binding,etc)

3. Goto package open your WS and click on check  option and also cross check with DEV in the same time.

4. Do rebuild object (Select package->right click ->other function->rebuild) (See attached screen shot)

5. Pass same input in WS which your passing in FM.

6. Check logo details using SRT_UTIL ,  SM21 for WS or logo also check ST22 for your FM.

0 Kudos

Hi Akshanth,

I am getting many times below error while importing WSDL URL into SAOP UI Project.

Please note that rarely it is loading properly Can u please let me know I am doing wrong.

0 Kudos

HI Akshanth,

Please find the errors from SRT_UTIL tcode.

<?xml version="1.0" encoding="utf-8" ?>

- <ERROR_CONTEXT>

- <ERROR_INFO>

- <EXCEPTION_INFO>

<TYPE>CX_INVALID_TRANSFORMATION</TYPE>

<ERROR_TEXT>The transformation /1BCDWB/WSS6AF35653BB9A065D1D9 could not be executed</ERROR_TEXT>

- <CX_SOAP_CORE>

- <E_LOCATION>

<CLASS>CL_SXMLP_DATA_ST==============CP</CLASS>

<METHOD>CL_SXMLP_DATA_ST==============CM004</METHOD>

<ID>1</ID>

</E_LOCATION>

<E_TEXT>CX_INVALID_TRANSFORMATION:An exception with the type CX_INVALID_TRANSFORMATION occurred, but was neither handled locally, nor declared in a RAISING clause.The transformation /1BCDWB/WSS6AF35653BB9A065D1D9 could not be executed</E_TEXT>

<E_ID>1001</E_ID>

<E_FAULT_LOCATION>1</E_FAULT_LOCATION>

<E_AREA>APPL</E_AREA>

<E_HOST>0</E_HOST>

<E_PROCESS_CONTROL />

</CX_SOAP_CORE>

- <CX_SY_NO_HANDLER>

<CLASSNAME>CX_INVALID_TRANSFORMATION</CLASSNAME>

</CX_SY_NO_HANDLER>

- <CX_INVALID_TRANSFORMATION>

<TRFONAME>/1BCDWB/WSS6AF35653BB9A065D1D9</TRFONAME>

</CX_INVALID_TRANSFORMATION>

</EXCEPTION_INFO>

</ERROR_INFO>

- <PROVIDER_INFO>

<INTERFACE_NAME>ZECPLATESTKBVERSIONSTODAY</INTERFACE_NAME>

<INTERFACE_NAMESPACE>urn:sap-com:document:sap:soap:functions:mc-style</INTERFACE_NAMESPACE>

<PROVIDER_INTERFACE>ZECPLATESTKBVERSIONSTODAY</PROVIDER_INTERFACE>

<OPERATION_NAME>ZEcpLatestKbVersionsToday</OPERATION_NAME>

<OPERATION_NAMESPACE>urn:sap-com:document:sap:soap:functions:mc-style</OPERATION_NAMESPACE>

<PROCESSING_UNIT>Sector 4: Provider</PROCESSING_UNIT>

<PROCESSING_MODE>Synchronous</PROCESSING_MODE>

<PROCESSING_TYPE>Remote</PROCESSING_TYPE>

<WORK_PROCESS_NUMBER>7</WORK_PROCESS_NUMBER>

<WORK_PROCESS_PID>10226</WORK_PROCESS_PID>

</PROVIDER_INFO>

Kindly provide your input.

0 Kudos

Hi Pramesh,

1st check all values for input parameters (which are the things you were passing), check all the data types and its format.

2nd Observer your FM output parameters also. some time your input is different but fm behaves different (eg times stamps).

As my observation 'some where miss matching the data types or while converting your input /output values to particular field format its going to dump'.

* After modify or add some fields, some transformations seem to have disappeared.

* Now system is checking with old transformation can you check with transaction - STRANS and if possible put break point  there and execute (Use external break point) i hope you know how to set and debug external break points.

and also try consume your (which you have created) web service in your ecc system it self (For testing purpose).

Regards,

Akshath

Former Member
0 Kudos

HI Remo,

Q: We will be transporting this development to our

next Test System and then production. Will the WDSL URL change?

I understand that URL will change since the Server will be different.

but to confirm my understanding, this question is.

Ans:-     Obviously changes..!

               All DEV, QAS and PRD will be located in different system 3 tire or 2 tire.

               your dev server ip address is different than QAS and PRD, and

               URL will be unique identification.

Below image you can find the difference :

difference you can see in url only. your dev url different than the qas and prd url

for you reference  i have attached the screen the different url i have took form DEV and QAS sever

http://usgdc-sec01d.erp.gdc.com  and http://usgdc-sec01q.erp.gdc.com

Difference is : (SEC01d and SEC01q)

SEC01d(Blue color block) = is my dev server path.

SEC01d(Green color block) = is my QAS server path.

-----------------------------------------------------------------------------------------------------------------------

Q: since we are transporting this Service from Dev to Test/Prod,

how do we find the new WDSL and URL for test/Prod system.

Please advice on the steps.

Created Server in DEV  Server:

Note: While your creating Web service for your FM system will ask the both Custom and work bench request.

In case if your using ECC 5.0 then,

  1. Go to T-code :- WSADMIN. There you can find list of web services.
  2. Find your web service and click generate WSDL or click F8 or Execute button --> WSDL file will automatically open in 'Default browser in your system ' like Internet Explorer or Google chrome etc.. 

or if your using ECC 6.0 or above that version.

1.     Go to SOAMANAGER --> Application and scenario communication --> single service          administration -->

    

Search your service there :

2.     User Search tab --> Serach by  = "Service''--> in Search pattern give your service name which         you have created. --. press enter or click GO.

3.     Select your web service --> using description or web service name or using FM name. and click           'Apply selection

4.     Create a port , and click Open WSDL document in Overview tab.

Service in Both QAS & PRD.

* No need to do any configuration nor create any WSDL or anything.

* Release your both custom and work bench request from DEV server using SE09 or SCC1 and import both work bench and customer request to Qas/PRD server.

Once you done this above steps your service will automatically comes to QAS/PRD.

* Next step (Final steps) Same as DEV:

ECC 5.0 : Go to -> WSADMIN --> Generate WSDL.

or

ECC 6.0 : Go to SOAMANAGER --> Generate WSDL using Open WSDL document option (Link)

if get any error please check, if port is also available in your service if not then you create a port for your service

'

You can test your web service using SOAMANAGER or you can consume your web service in third party software like SOAPUI.


Kindly ask me if you have any query.

I can help you out what i can.

Regards,

Akshath .L.T

0 Kudos

2010 post, i guess that he solved the issue 3 years ago.

Regards

Miguel

0 Kudos

Hi there,

old post but same problem?

In my situation I have completed the creation of an RFC FM based web service on SAP BW 7.01 SP13.

The procedure is well known:

1. Create FM

2. From SE80 right click on FM and create a web service

3. Go to SOAMANAGER und check everything is fine, check the wsdl url.

Now from SOAPUI client a started a request via wsdl url and that's the result:

HTTP/1.1 500 Internal Server Error

content-type: text/xml; charset=utf-8

content-length: 461

accept: text/xml

sap-srt_id: 20131108/153743/v1.00_final_6.40/527C75A05FA800C7E10080000A313199

server: SAP NetWeaver Application Server / ABAP 701

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header></soap-env:Header><soap-env:Body><soap-env:Fault><faultcode>soap-env:Server</faultcode><faultstring xml:lang="en">Web service processing error; more details in the web service error log on provider side (UTC timestamp 20131108143744; Transaction ID 527C759D5FA800C7E10080000A313199)</faultstring><detail></detail></soap-env:Fault></soap-env:Body></soap-env:Envelope>

I allready checked in ICM Monitor trace log that delivers basicaly the same information. No dump error at all!

Then I change to antother BW System 7.01 SP 06 and hence no problem at execution time.

Can someone please give me some ideas?

Thanks.

Former Member
0 Kudos

Hello Werner,

1st check SICF transaction if your webservice path is active or not.

2nd go to SRT_UTIL and find details about your error with timestamp  20131108143744.

You can also open a trace for webservice and regenerate the error again.

hope its useful

best regards,

Kerim

0 Kudos

Hi Kerim,

first of all, thank you for giving my a good path to analyze this issue. Finally I found a new error information inside the SRT_UTIL:

-ERROR_CONTEXT        
--ERROR_INFO
---EXCEPTION_INFO             
----TYPE CX_SOAP_CORE  
----ERROR_TEXT SRT: Plain SOAP: Reliable messaging (RM) configured, but no Message
ID and no WSRM assertion provided.

----CX_SOAP_CORE              
-----E_LOCATION
      

------CLASS     CL_SOAP_PLAIN_PROTOCOL
------METHOD   
CHECK_FOR_QOS 

-----E_TEXT    SRT: Plain SOAP: Reliable messaging (RM) configured, but no Message
ID and no WSRM assertion provided.

-----E_ID       1222  
-----E_FAULT_LOCATION  
1     

-----E_AREA           
-----E_HOST     1     
-----E_PROCESS_CONTROL 
      

--PROVIDER_INFO       
---INTERFACE_NAME       Z_BW_WSDLTEST 
---INTERFACE_NAMESPACE urn:sap-com:document:sap:rfc:functions
---PROVIDER_INTERFACE  
Z_BW_WSDLTEST 

---OPERATION_NAME       Z_WSDLTEST    
---OPERATION_NAMESPACE urn:sap-com:document:sap:rfc:functions
---PROCESSING_UNIT     
Sector 4: WS-Provider 

---PROCESSING_MODE      Synchronous   
---COMMUNICATION_TYPE  
REMOTE

---WORK_PROCESS_NUMBER  30    
---WORK_PROCESS_PID    
606248

--REQUEST_INFO        
---PROTOCOL     HTTP/1.1      
---REQUEST_URI 
/sap/bc/srt/rfc/sap/z_bw_wsdltest/100/zbwwsdltest/zbwwsdltest 

Then I followed this description:

-ERROR_CONTEXT        
--ERROR_INFO
---EXCEPTION_INFO             
----TYPE CX_SOAP_CORE  
----ERROR_TEXT SRT: Plain SOAP: Reliable messaging (RM) configured, but no Message
ID and no WSRM assertion provided.

----CX_SOAP_CORE              
-----E_LOCATION
      

------CLASS     CL_SOAP_PLAIN_PROTOCOL
------METHOD   
CHECK_FOR_QOS 

-----E_TEXT    SRT: Plain SOAP: Reliable messaging (RM) configured, but no Message
ID and no WSRM assertion provided.

-----E_ID       1222  
-----E_FAULT_LOCATION  
1     

-----E_AREA           
-----E_HOST     1     
-----E_PROCESS_CONTROL 
      

--PROVIDER_INFO       
---INTERFACE_NAME       Z_BW_WSDLTEST 
---INTERFACE_NAMESPACE urn:sap-com:document:sap:rfc:functions
---PROVIDER_INTERFACE  
Z_BW_WSDLTEST 

---OPERATION_NAME       Z_WSDLTEST    
---OPERATION_NAMESPACE urn:sap-com:document:sap:rfc:functions
---PROCESSING_UNIT     
Sector 4: WS-Provider 

---PROCESSING_MODE      Synchronous   
---COMMUNICATION_TYPE  
REMOTE

---WORK_PROCESS_NUMBER  30    
---WORK_PROCESS_PID    
606248

--REQUEST_INFO        
---PROTOCOL     HTTP/1.1      
---REQUEST_URI 
/sap/bc/srt/rfc/sap/z_bw_wsdltest/100/zbwwsdltest/zbwwsdltest

Then I followed this description: http://scn.sap.com/thread/3278733

So I checked the Web Service operatioprofil where I changed the profil setting to asynchronously and the reliability message transport automatically switched to false. Unfortunately without success, means the error from SRT_UTIL persists!

0 Kudos

...I`m a little bit deeper solving this issue. The problem mentioned above was because missing security roles (SOA Admin and execution).

Now I´m facing a new one.

Runtime error:        
UNCAUGHT_EXCEPTION

Execption:              
CX_BGRFC_INVALID_DESTINATION

So what' that mean? Is it not possible to execute Web Service ressources from within the same SAP BW system?

0 Kudos

Hello Werner,

Check if server destination is correct and working from SM59. You can also check all bgrfc conditions and webservice utilities from SRT_TOOLS tcode.

Best regards,

Kerim

0 Kudos

Hi Kerim,

thank's again for your time. After deep analysis of the cause I understand now that SAP BW web services doens't work when the security profile is not set to "none" and the operation profile is not "synchronous".

So for now with the mentioned setting of the web service everything seems to be fine.

Kind regards.

0 Kudos

thanks for this info.. helped to solve my problem as well..