cancel
Showing results for 
Search instead for 
Did you mean: 

Error when sending null records in BPM

Former Member
0 Kudos

Hi All,

In my scenario I am having 4 Business sytems involved.

A)File (Sender)

B)An Oracle DB(Receiver)

C)R3 (Receiver)

D)File (Receiver)

I am using a File to R3(using RFC) Scenario where I am having a BPM .

In XI I am doing some validations and if any of the validations fail I have to send those error records to a database table.(System B).

If the records pass the validation it is send to R3(System C) and the count of the successfully updated records(in R3) are send to System D.

In my BPM, when I am sending all correct records i.e. there are no error records(no data to be passed to DB)

I get the following error.

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Receiver Identification

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">

<SAP:Category>XIServer</SAP:Category>

<SAP:Code area="RCVR_DETERMINATION">MESSAGE_INCOMPLETE</SAP:Code>

<SAP:P1>Sender</SAP:P1>

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText />

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack>Message is incomplete. No Sender found</SAP:Stack>

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

The scenario works fine when there are records to be sent to DB.

Can someone help?

Thanks in advance.

Regards,

Soumya

Accepted Solutions (1)

Accepted Solutions (1)

bhavesh_kantilal
Active Contributor
0 Kudos

Hi Soumya,

Can you give us the Step Types you have used in your BPM?

Also, are you using MultiMapping? If yes, then when using multimapping , you have to create all of the target messages compulsorily..!!

Regards,

bhavesh

Former Member
0 Kudos

Hi,

Yes,I am using multimapping in my scenario.

Steps in my BPM are:

1)Receive step.

2)Transformation Step

3)Block(For Each)

4)Inside the block Iam having a switch step to do the check(validation)

5)In my first branch I am appending correct records to a multiline container

6)In the other branch I am appending the error messages to a multiline container.

7) Outside the block I am having a transformation step for bundling the error records and a send step for sending the error records.

7) Next I am having another transformation step for bundling the correct records and a send step for sending the correct records.This is a synchronous send step for getting response from R3.

8)Now the final send step for sending the count.

Can u tell me if any other option is available for such a scenario, since I may have null records for error.Is there any error handling mechanism available which I can use here?.

Thanks and Regards,

Soumya

Former Member
0 Kudos

Hi,

You can acutlally create the message type and check the the flag using a fork or a switich if it's a valid payload and then let it go through the sand step otherwise no.

We have a similar scnario:

1. Receive

2. Transformation (receiver MT,audit MT and error MT all done in one MM)

3. Switch (to check valid condition for sending receiver MT, audit MT and error MT )

4. Block inside switch for each condition and send step in the block

Regards

Vijaya

Former Member
0 Kudos

Hi Soumya,

<i>Can u tell me if any other option is available for such a scenario, since I may have null records for error.Is there any error handling mechanism available which I can use here?.</i>

Here's another way to do this:-

Step1: Receive the file

Step2: Transformation step

Here, your container will have only one mapping:-

this mapping will have the source as the file and the target as both->the r/3 interface and also the oracle interface. Validate in the mapping itself and accordingly assign the record to any one receiver then and there.

Step3: Create the count variable in the bpm itself.

Step4: Use the switch statement and you will have two branches. You can do the condition check on some flag value:-

Branch1: Send to r/3 and also have the count variable sent here

Branch2: Send invalid records to jdbc

With the help of this you can use just one transformation step and even decrease the number of steps involved.

Regards,

Sushumna

Didn't notice the question has already been answered!

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Soumya,

Looks like you are giving a condition either in the receiver determination or in the bpm. The flow is stopping because the database part of the flow is waiting for a message.

Tell us the design of your flow, we'l be able to help you better.

Regards,

Sushumna

Former Member
0 Kudos

Hi,

1. Please check if all the steps in the Integration directory are correct.

2.Please can you look at SAP note: 869284

Regards

Vijaya