cancel
Showing results for 
Search instead for 
Did you mean: 

IDOC adapter and number of tRFC records

kimmo_sirpoma
Participant
0 Kudos

We have idoc inbound scenario file -> XI -> idoc -> R/3.

For each file record an IDOC is created.

Can somebody explain, why only one tRFC record is created containing all IDOCs? Can you influence with interface config how many tRFC records are created? Does settings ' exactly once ' / ' exactly once in order ' have something to do with how many tRFC entries are created?

We faced a situation with our interface scenario that file unexpectedly contained huge number of records causing huge number of idocs generated in XI. However only one tRFC entry was created that contained all idocs. As consequence the receiving system had performance problems and the tRFC call had to be cancelled.

As workaround we splitted the source file in file adapter to interval of 1000recs, thus causing multiple tRFC records created and performance was ok in background system.

Is XI trying to keep IDOCs created out of each incoming message in one "LUW" and send them alltogether in one tRFC call to R/3? Or is there a config parameter that each created IDOC could be sent independent of other idocs still to be created?

br: Kimmo

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Kimmo,

There will be one TRFC call per message from XI.

The whole input file is treated as a XI message.

The Receiver IDOC Adapter call the SAP system via ONE TRFC call and posts the message.

By mentioning Exactly Once in the Receiver Idoc Adapter Communication Channel, XI guarantees the delivery of that message.

One way is to split the file into multiple Messages.

You can do this via BPM. But this is not advisable for large files.

We had the same problem for very large files.

We used XI to just pass through the file from Source system and post as file in the Application Server of SAP.

We defined a LSMW project for Periodic Processing, which would take this file and post as Idocs in the SAP System.

Our Scenario

File -> XI -> File.

In the Receiver File Adapter, use the Execute Operating System Command to trigger event sapevt in the SAP system.

You can define events for Background jobs.

So when XI posts the file in the Application server of SAP, XI will trigger the background event defined in the Communication Channel.

The LSMW project which has been scheduled to listen to this background event will kick off.

Hope this helps.

kimmo_sirpoma
Participant
0 Kudos

Thanks Adhappan for your answer. It helped me to understand.

As I mentioned, our workaround is splitting the input file in fileadapter already and BPM is not used. I haven't made this interface myself, but I think developer used the "user-exit" features of fileadapter to perform file splitting and as consequence multiple messages are created. The actual source file remains intact.

Also interesting was that event triggering on target system from XI you introduced. The events you meant are for background jobs. Can you similarly trigger application events also for example starting a workflow?

br: Kimmo

Former Member
0 Kudos

I mentioned about background events.

You maintain these background events using transaction SM62 in the SAP Application System. You can define your own Background events under User Event names in SM62.

In the Receiver File Adapter Communication Channel in XI, you can trigger the Background event using sapevt command.

For Syntax refer SAP Help.

Regarding your Qn on Application Events.

There is no direct way to trigger Application Events to trigger SAP Workflow.

One way to do is, you can write a simple report in SAP Application System. In the report, you code to trigger the SAP Application Event like Purchase Order Created etc.

You define a backgroud job for this report. The background job will listen to the event trigger from XI.

Once the event is triggered, the report executes. The report inturn triggers the Application Event.

Your workflow can use this Application Event as a Start Condition.

You can also use RFC or Idocs to trigger the Application event. In that case, you have to use RFC Adpater or Idoc Adapter for Receiver Communication Channel.

Hope this helps.