In XI, the message processing can be delayed to a certain point of time in future by using time-controlled messaging processing feature. This is applicable only to messages with quality of service EO or EOIO.
Some of the real time examples for doing this could be
– Receiver systems are only available at a fixed point of time
– Message should only be processed at certain times to reduce the cost
– Work load balancing of the integration server
Now, lets see how to implement this for the below scenario…
We assume that Business System BS1 sends a request to update the customer master data using plain HTTP Adapter. This request is then mapped to an RFC request which invokes a custom RFC function in R/3.
Step1: Configure the sender and receiver business systems in SLD
Step2: Create the sender, receiver interfaces and mappings in the repository
Step3: Configure the communication between the sender and receiver in the directory
Step4: Test the scenario to ensure that everything is OK.
Now we will introduce the delayed processing .
Step1: Define Sender/Receiver IDs
– Run the transaction SXMB_ADMIN and navigate to configure->Configure sender/receiver ID
– Click on Edit and then New Entries
– Maintain the sender and receiver details
Step2: Create/Maintain the job
– Run SXMSJOBS transaction
– Click on Add Job
– Maintain the job details
Step3: Create the filter SXMSFILTERM
– Click on Add
– Choose the location of filter and the QOS. The filter can be applied in one of the below four places
2.Integration Engine (Receiver)
4.Integration Server (Outbound)
For this scenario, we use Integration Server Inbound and EO. Here it is only applicable for EO, since the receiver is not known at this time.
– Enter the Message filter Criteria. The inbound messages can be filtered using the sender details and optionally using the message size.
Step4: Testing the Delayed Processing
Send the request from BS1 using HTTP Adapter and check the message status in SXI_MONITOR, the status is shown as scheduled for processing and the Job status is ‘job not yet executed’.When the scheduled time reaches, the message will be picked up by the scheduled job and triggers the further processing of the message.