Blog Archive

Tuesday, June 5, 2012

Use XI development system as test system in most of the cases




End to end testing in XI/PI Development system using Dev as Quality in most of the cases.

            As everybody knows, we can test our interface using RWB http client. i.e. directly placing our request on http port.

RWB HTTP CLIENT



But it has some limitations
  1. We can not see response for synchronous interfaces in this GUI.
  2. This GUI is specific to SAP PI.
  3. Some times my SRM is sending attachments also to XI. In this we can not use RWB Http client.

What is the alternative then? My goal is, I should able to test my interface in most of the cases.

*Yes, We can use HTTP external client. The additional feature for this is,
  1. We can use this externally (i.e. independent on SAP PI software).
  2. We can use this for synchronous interfaces also.

Drawback: Some times using this external HTTP client at client environment is not recommendable.

Then What is the alternative?

*Yes, we use web-client like XML spy and SOAP UI.

As Stefan said, we can post our payload directly on integration server. We can test our interface.

Moreover, there is another advantages of using this. We can also put certain parameters in SOAP header section.

Example:


You can dynamically pass file content parameters(file) in soap envelope as shown above blog.  

So. I tried to test my scenario by using above procedure.

But it fails every time.

Why?
I have identified SOAP envelope of soap request.( in SAP PI)



Using SOAP client(soap UI)



             By Default, soap ui(web client) or IE understand any request as synchronous mode.
This the below message failed in IE.





When I am sending request from soap client(soap ui), I never mentioned quality of service information. So, By default PI IE understands quality of service as syncrouns. And there is no option, like to send request only in asynchronous mode.

For this interface, we are using multiple receivers.

Then I have modified the soap envelop in SOAP ui, simply specified specific target.(target system information)

Once again I got an error. Saying that “ invalid Soap envelope.”

I have tried all various cases. But no use.  Getting same error.

Finally, I concluded. We can not set dynamically certain mandatory parameters in soap envelope. IE always takes care about how to create soap envelope header parameters.

After reading couple forums, I have understood, we can specify mode of communication by simply appending this parameter at the end of url.

http://sapabc.xyaz.com:8001/sap/xi/engine?type=entry&version=3.0&Sender.Service=&Interface=http://sap.com/xi/SRM/Procurement/Global^PurchaseOrderRequest_Out? QualityOfService=ExactlyOnce

After adding, this context to url : QualityOfService=ExactlyOnce

This is integration engine behavior.

Finally , I understood, to test our interfaces in various cases, we need to understand the IE behavior. Authors like Stefan grube is supposed to leak this.
There is no proper documentation on IE parameters also.

Can not we test our interface, with our knowing IE behavior?

Got an idea.

Why do not we use soap channel for this. We have specific documentation also there. It helps us to configure
1)      Quality of service parameters
2)      It helps us to send attachments.
3)      Also provided some additional information,  that could be useful for various requirements.

Here the things is
1)      We need to create 2 more additional objects a) sender soap communication b) sender agreement.( we need to create these 2 only for testing).
    
 

For Testing’s. We can choose our required option based on different conditions
  1. RWB http client
  2. external http client( download existing code from sdn and save as html and use)
  3. Soap client( placing request on IE)
  4. Soap client (placing request on AE).  (
 
By considering all above options we can test our interface in most of the cases.

This helps us, 
1. to minimize the number of transports from XI development system to XI Quality.
2. avoid many errors in-front of business user.
3. Developer has confidence for his interface.

How do i get test data?
1. you can get it from user.
2. can create sample data using message mapping tool( by seeing sample data, that you have received from user)
3. take test data from quality, even it is not moved to quality(  ex: SAP ECC-> XI) messages fails in xi quality, if the transport is not moved to quality. we can take test data from this(sxmb_moni).

 
 

     

3 comments: