Scheduling messages in SAP XI
I would like to comment on a paper that was available under the popular documents in the XI developer area in SDN dealing with scheduling of the XI file adapter (see Scheduling File Adapter – Part I, Scheduling File Adapter – Part II).
In the author’s specific scenario, a file should be scheduled at a specific point of time, say 12pm. The author proposed to use a BPM process that compares the actual time with the time the file should be sent to a final recipient. The file is re-read, and sent to the Integration Server and the BPM process, respectively, at a specific frequency, say every 30 minutes, until it is 12pm. If the time requirement is not met, the file will be sent back to the file directory where it will be picked up 30 minutes later.
In my opinion, although the proposed solution is technically correct it is of poor design, especially from a performance point of view. Assuming, the file is put on the file share shortly after 12pm. That means that the file is sent to XI and then rejected 47 times before it is sent to its final recipient leading to a much higher and obviously unneccessary load on the XI server.
I wouldn’t recommend any customer to implement it. Moreover, there is already a standard functionality available in SAP XI in order to schedule messages. To do so, in the Integration Engine Administration (transaction code SXMB_ADM), you can configure event-driven message processing. In the following, the configuration steps are briefly described.
First of all, you have to create sender/receiver IDs:
Using the sender/receiver IDs created beforehand, define a message filter, and maintain the appropriate filter criteria:
Finally, schedule a job that runs a check of the filter criteria:
For more details, please refer to the SAP Online Help, and navigate to SAP Exchange Infrastructure -> Runtime -> Integration Engine -> Event-Driven Message Processing.