cancel
Showing results for 
Search instead for 
Did you mean: 

file to idocs - sequence of inbound processing

0 Kudos

Hi everybody,

we have a file to (2) idocs scenario. In XI we map the received data of vendors into two idocs (adrmas and cremas). After building the idocs we send them in that sequence to the reveiver systems (recommended). The problem is that in the receiver system very often the idoc cremas wants to be processed before adrmas is ready. This leads to the error "vendor xy is blocked by user sapale". Especially for massprocessing I get a lot of these error-messages in bd87. As workaround I processed all the error-idocs by the report rbdmani2. (First step adrmas - second step cremas) But then I face missing data in some cases in table lfa1 - which seems to me that the sequence of 1. adrmas and 2. cremas was not correct processed.

Is there a possibility for inbound processing with the rule process adrmas - wait until ready - process the associated cremas and so on?

I checked the sap-help article for seralisation - but we could not achieve a better result by queing the outgoing messages in the xi.

Thanks very much.

With kind regards

Jörg

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Jorg,

From your requirement, what I can think at this instance is to get cremas idocs processed before adrmas is to change their processing settings to 'collect only' and schedule a periodic background job to processes cremas first and then adrmas.

Hope this helps.

Cheers,

Nisch

0 Kudos

Hi Nisch,

thanks for your reply. Where can I configure the "collect only" - do you mean we20 of the receiving system - the partner configuration?

To avoid misunderstanding - I have to process always per vendor at first the adrmas and at second the cremas. Every vendor needs this couple of idocs to be processed in the given sequence.

Thanks

Jörg

Former Member
0 Kudos

Hi Jörg,

the safest way is to use BPE to send first the adrmas and require one Application Acknowledgment in the send step. This will force the BPE wait until the Application Ack come back to XI and you can send the cremas in the second send step. In this case the order is guaranteed. Nevertheless it is a bit overkill to use BPE just for this purpose.

One alternative could be the filter in the ABAP stack, you could collect IDOCs in the outbound direction. So configure two different filters one for adrams and one for cremas, after that you need to schedule two different jobs to send this messages out. This option is better for performance, but I am not sure whether you could guarantee the 100% order. The only control you have is the job scheduler. For example you send every 10 mins once the adrams and every hour once cremas. (SXMSFILTER is the transaction for filter configuration in XI)

regards,

Hai

Former Member
0 Kudos

Hi Jorg,

Yes, in WE20, outbound options, change output mode from default of 'Transfer IDOC Immediately' to 'Collect IDOCS'. And schedule a periodic job, with two steps in it, first process adrmas and then cremas.

This is still not a 100% fix, you could end up with a few adrmas idocs that could have processed before cremas. Put this in Test and run a few scenarios. You could have another periodic job to process the failed IDOCS again.

Cheers,

Nisch

Answers (1)

Answers (1)

Former Member
0 Kudos

You have to get a solution based on the following concepts

1. Do not use BPM it is not efficient

2. Understand what is the difference between an IDOC in received state and processed state. Received state mean IDOC is saved into IDOC table. Processed state mean IDOC processed into the business system.

3. You can ASK BASIS guy to turn on the immediate IDOC processing option in SAP system,so that SAP process the IDOC as soon as it arrive in IDOC table. This is not efficient, in case if your SAP system has to process SAP online client request and SAP document (inbound and outbound) same time.

4. Understand the concept of standard based integration, mean integration system provide the option to business parties to provide the successfull message transfer.

Based on all these points I recomend you to follow the steps below.

1. Extract each record from the input files into two idocs.

2. Send the first IDOC to the receiving system

3. Send the second IDOC to a ESB storage such as DATABASE, JMS Queue, MQ Series Q (if you have available) or even to another File.

4. Develop an RFC module to check the status of the IDOC being send to the receiving system. Status here mean whether the IDOC data processed into the business system. You can do this lookup using a custom RFC lookup using the attribute connecting the first IDOC record with second IDOC.

5. Process the records (second IDOC) from the intermediate storage using the RFC lookup into the business system updates its status as ready to deliver.

6. Using another process such as FILE to IDOC or JMS to IDOC or JDBC to IDOC send each record which are ready to process from intermediate storage to the receiving system.

7. Create a report using FILE or JMS, JDBC adaptor module to keep track of these three stage processing, so that in case an inconsistency happed you will have an auditing trace available.

This is the standard based integration approach.

ABAP guys, BASIS guys they may not get it when then repair a BMW in local auto workshop, cuz I had to fight with them 4 years ago to make it happen in Verizon supply chain project where I had to accomplish the same concept in SAME IDOCS you mentioned here.

BPM, turning on immediate processing of IDOCS etc will end up in buying another 16 CPU hardware and BASIS guys or ABAP guys running BAD record IDOC processing report for 350.00 hr consulting FEES.

SAP is a good company and XI is a good product, as long as it is being used as per right usage.