SAP Note 752194 Serialization of IDoc Processing
Short Description
SAP...
Description
SAP Note
752194 - Serialization of IDoc processing Version 7
Validity: 22.03.2007 Validity: 22.03.2007 - active
Language Language English
Header Data Released On
22.03.2007 11:53:48
Release Status Released for Customer Component
BC-MID-ALE Integration Technology ALE
Priority
Recommendations Recommendations / Additional Info
Category
Consulting
Symptom For business or other reasons, you want to process IDocs in a serialized way, that is, to process them or transfer them to the application in a certain sequence. This note provides information about this problem.
Other Terms ALE, serialization, time stamp serialization
Reason and Prerequisites You require information about serializing IDocs.
Solution There are various procedures for processing IDocs in a serialized way. Depending on your respective requirements, one of the proposed methods may be more suitable, or may not be suitable at all for the required purpose. Note that the IDoc number is not suitable as a serialization characteristic. The number range server assigns the numbers in ranges to the individual application servers. Therefore, in systems that have several application servers, it is very likely that IDocs that have lower numbers will be saved in the system later than IDocs that have higher numbers. Likewise, certain numbers may not be assigned because of number buffering. Serialization in the inbound: This type of serialization is available as the default. The prerequisite for it is that inbound processing is set to "Trigger by background program" and that you use the RBDAPP01 report to process the IDocs. The RBDAPP01 report sorts the IDocs that are to be processed according to the following criteria before processing them: 1. Partner number of the sender 2. Partner type of the sender 3. Partner function of the sender 4. Message type 5. Logical message variant 6. Logical message function 7. Test indicator 8. Serialization field This type of serialization does not require any Customizing settings or technical adjustments to the program. Serialization using a time stamp: You use this type of serialization only if a number of changes occur for an application document and if maintenance may lead to business inconsistencies. The system rejects changes that have an earlier time stamp, and this means that the system only processes the most current change. The system uses the value in the SERIAL field from the control record of the IDoc as a time stamp. For each scenario with this serialization, the system writes an entry in the BDSER table for each document (depending on the sending and receiving systems). You should therefore use the RBDSRCLR report to clean up this table regularly. How does time stamp serialization work?
l
l
l
l
In the sending system, the system generally fills the SERIAL field for each IDoc in the control record of an IDoc with the current time stamp. In the inbound function module, you must call the IDOC_SERIALIZATION_CHECK function module to check whether there is already an entry in the BDSER table. If this is the case, the system has to check whether the time stamp of the IDoc is older than the entry from the BDSER table. If it is, the processing of the IDoc terminates with the error status '51'. The status information and serialization information are returned to the ALE layer, which updates the BDSER table and saves the status of the IDoc.
Checking time stamp serialization: l
l
In transaction BD57, you can check whether an ALE object type is assigned to the message type as a serialization object. In BD59, you can check whether the serialization object is assigned to a segment field.
You can use the where-used list of the IDOC_SERIALIZATION_CHECK function module to determine the modules that allow time stamp serialization. If yo do not call this function module, then there is no time stamp serialization for the object or scenario that is being checked. Serialization using message types (serialization groups) Serialization using serialization groups is used if several different message types are dependent on each other. Therefore, for example, you can assign classes to material masters in logistics. However, it does not make sense to generate this assignment if the definitions of the material masters and classes are not up-to-date. For this reason, the message types involved (MATMAS, CLSMAS and CLFMAS) are grouped together in a serialization group, in which the processing sequence is defined. How does serialization using groups work? Serialization in the sending system l
l
l
l
In the sending system, check whether there is a serialization group in which the required messages are available in the necessary sequence (transaction BD44). In the distribution model, maintain a distribution of the SERDAT message type for all target systems to which you want to distribute the messages. The outbound partner profile in the sending system should be set to 'Collect IDocs' for the message types in question. For the SERDAT message type, the output mode should be set to 'Transfer IDoc immediately'. You can use the RBDSER01 report to generate IDocs for the message types of a serialization group. This creates the relevant IDocs from change pointers. You can use the RBDSER02 report to send the IDocs. If required, you can use this report to create the control message SERDAT, which is to trigger processing in the receiving system. If you only want to create a control message, use the RBDSER03 report.
Serialization in the target system l
l
Check whether the required serialization group also exists in the target system. Maintain the inbound settings for all message types of the serialization group. (Transaction SALE: Modeling and Implementing Business Processes --> Master Data Distribution --> Serialization for Sending and Receiving Data - -> Serialization using Message Types). ¡
¡
¡
l
l
l
If you leave the field 'Object/Process' empty, the IDocs are transferred separately to the inbound function module of the application, which can result in long runtimes. If you do not select the field 'Parallel', the inbound function module is called in the current work process. The IDocs are processed one after the other. If you select the field 'Parallel', parallel processing is used for each package. Since this only concerns the processing of IDocs for a message type, serialization is not compromised.
You must set the inbound partner profile for all message types involved to "Trigger by background program". Set "Trigger immediately" and the process code SERD for the SERDAT message type. In any case, the inbound processing of SERDAT must trigger the processing of further IDocs indirectly. Make sure that no jobs that also select the serialized message types are scheduled for the RBDAPP01 and RBDSER04 reports.
Alternatively, when you start inbound processing with the SERDAT message type, you can also use the RBDSER04 report to transfer IDocs to the application. l
Specify a variant and a serialization group.
l
Restrict the logical sending systems where necessary.
View more...
Comments