cancel
Showing results for 
Search instead for 
Did you mean: 

Hi Experts,

0 Kudos

I have a requirement usually some data is being sent from webservices to

sap through PI. The webservices is expecting response from the sap but should not wait for the response to process tne next message. but they want the response form the sap. Intially I thought that this could be acheived through Soap to Proxy synchronous method. But as they want the next message to process immediately with out waiting for the response I am bit confused how to achieve this.

I this can be achived with the different interfaces i.e one for the request and another for the response. Kindly suggest me the possible ways to achive this requirement.

Below are the request and response sample payloads.

Request Payload:

<PostingRequest>

<PostingSetTranID>ILC-9000-3333</PostingSetTranID>

<TransactionLeg>

<Account>367890099</Account>

<Amount>1000.00</Amount>

<Currency>USD</Currency>

<DebitCreditFlag>D</DebitCreditFlag>

<Narration>Contigent Liability</Narration>

<TraceID>edd-9999-rro</TraceID>

<ValueDate>30-09-17</ValueDate>

</TransactionLeg>

<TransactionLeg>

<Account>367890777</Account>

<Amount>1000.00</Amount>

<Currency>USD</Currency>

<DebitCreditFlag>C</DebitCreditFlag>

<Narration>Contigent Assets</Narration>

<TraceID>edd-9999-ffo</TraceID>

<ValueDate>30-09-17</ValueDate>

</TransactionLeg>

</PostingRequest>

Response Payload:

xmlns='urn:control.services.tiplus2.misys.com' xmlns:ns3='urn:common.service.ti.apps.tiplus2.misys.com'>

<ResponseHeader>

<Service>BackOffice</Service>

<Operation>Batch</Operation>

<Status>SUCCEEDED</Status>

<Details>

<Info>Posting: All Submitted Successfully</Info>

</Details>

<TargetSystem>ZONE1</TargetSystem>

<SourceSystem>FBNFINNACLE</SourceSystem>

</ResponseHeader>

<ns2:BatchResponse>

<ServiceResponse>

<ResponseHeader>

<Service>BackOffice</Service>

<Operation>Posting</Operation>

<Status>SUCCEEDED</Status>

<Details>

<Info>Posting Successful</Info>

</Details>

<CorrelationId>8971e225-8858-46f6-bb9c-868cfae3c016-- 4</CorrelationId>

<TargetSystem>ZONE1</TargetSystem>

<SourceSystem>FBNFINNACLE</SourceSystem>

</ResponseHeader>

</ServiceResponse>

<ServiceResponse>

<ResponseHeader>

<Service>BackOffice</Service>

<Operation>Posting</Operation>

<Status>SUCCEEDED</Status>

<Details>

<Info>Posting Successful</Info>

</Details>

<CorrelationId>8971e225-8858-46f6-bb9c-868cfae3c016--4</CorrelationId>

<TargetSystem>ZONE1</TargetSystem>

<SourceSystem>FBNFINNACLE</SourceSystem>

</ResponseHeader>

</ServiceResponse>

</ns2:BatchResponse>

</ServiceResponse>

Thanks in advance!

Ratna

0 Kudos

Hi Matt,

Thanks for your comments. they are really helpful to me in future.

thanks,

Ratna

Accepted Solutions (0)

Answers (4)

Answers (4)

former_member190293
Active Contributor
0 Kudos

Hi Ratna!

Maybe, I didn't get the point, but if sender system uses synchronous interface it HAVE TO wait for the answer.

You can try to set QoS to Exactly Once in SOAP sender channel and use asynchronous ourbound interface. In this case your sender will receive empty SOAP response with HTTP 200, OK code.

Regards, Evgeniy.

former_member186851
Active Contributor
0 Kudos

Hello Ratna,

you can do it as different interface also making a code logic in ABAP to link 2 messages and trigger the second proxy based on first message.

But ask the customer like what will be delay in message triggering of the second message,If the delay is good then you can go ahead with the sync interface as you will get the response in the mean time.

0 Kudos

Hi Raghuraman,

Thanks for the quick response. Sure I will check delay in messages triggering of the second message and go for synchronous if it is good or I will ask the to write the logic in ABAP to link two messages if he the dealy is time is not good.

I also have a small confusion, is there any possibility to use BPM in this requirement.

Thanks in advance.

Regards,

Ratna

former_member186851
Active Contributor
0 Kudos

Hello Ratna,

Just get the information from customer like why they want the delay and is there any data or link between the first response and second request.

0 Kudos

Hi Raghuraman,

Good day!

I checked with the customer they don't have any link between the first response and the second request.

It is just the request sent and response will be back with the status and this response is not going to use for the another request.

Thanks and Regards,

Ratna

former_member186851
Active Contributor
0 Kudos

Hello Ratna,

Then I believe normal sync scenario should help you.

check the comments mentioned by Eve.

0 Kudos

Hi Raghuram,

Thanks for your response. I don't want to hold the response. My question is, can we achive this in asynchronous way i.e in two different interfaces one as request another interface as response.

The customer does not the interface as synchronous since he don't want the next message flow till the response is back.

If there is possibility to achive this asynchronous I will go ahead with asynchronous and will build two differnent interfaces.

If this can be achived only through synchronous in this case I have convince the customer that this is the only way we can do, and will go ahead with single synchronous interface.

Thanks in advance!

Regards,

Ratna

former_member186851
Active Contributor
0 Kudos

Hello,

your requirement is little confusing.

You wish to hold the response,?

for sync scenario response will instantaneous.