BD10 to generate Material Idocs (MATMAS)
BD30 to generate BOM idocs (BOMMAT)
BD21 to process changes pointers. Here is how to set them :
https://blogs.sap.com/2014/03/09/change-pointers-in-r3/
Important :
- By default, change pointers are generated for all changes in the material master (no filter by plant).
- Filter can be done by Badi BDCP_BEFORE_WRITE for the specific message type to register in change pointer table (BDCP2) only the relevant changes required.
- It can be done also filtering in the distribution model but then the plant in this case should be in a mandatory segment to avoid those messages to be sent.
Introduction:
This document explains how to track the Material Master Data changes using change pointers in SAP R/3 environment.
Let us understand by taking following example –
The requirement is to track the Material Master changes in SAP R/3 environment and to send the information to some Legacy system (in form of AL11 Text file), if following fields changes –
- If any new Material is created.
- If Material is assigned with Dangerous indicator profile
- UN Number
- Dangerous Good Class
- Dangerous Good Packing Group
Master data changes can be distributed with the SMD (Shared Master Data) tool. Changes to the Master Data are written in change documents interface, which in turn logs entries into change pointers.
The following step shows the change pointers settings and how to track the change logs for modified data.
Step 1 – Create Message Type (WE81)
Step 2: Assign Table Fields to Message type (BD52)
Assign table fields to message type which needs to be considered for Change pointers generation.
Step 3: Activate Change Pointers generally (BD61)
Step 4: Activate change pointers corresponding to fields in message type(BD50)
Also check if the data elements of all the required fields has ‘change Document’ field checked (Below screen shot for Material Number)
Step 5: Create a new Part Number and change following fields to test the generation of change logs in table CDHDR, CDPOS, BDCP and BDCPS.
- Dangerous indicator profile (Transaction MM02)
- UN Number (Transaction DGP3)
- Dangerous Good Class (Transaction DGP3)
- Dangerous Good Packing Group (Transaction DGP3)
Step 6: Create a report which will perform following functions –
- Read non processed change logs using Function Module CHANGE_POINTERS_READ by passing the Message type name
- Create a text file with all the required material information
- Transfer that file on the application server (AL11)
And from application server the file is transferred to legacy system using some UNIX Script (this is out of scope of this BOK)
In addition to above FM (change_pointers_Read) you can also see the logs in following Table –
- CDHDR (Change Document Header Table)
- CDPOS (Change Document Items)
- BDCP (Change Pointer table
- BDCPS (Change Pointer Status table)
IDOC Generation to send modified records –
In addition to above report you can also create a Function module and create an IDOC’s to send the modified data to legacy system-
Step1 – Create a Function module (e.g. ZTESTFM)
In this you can populate the IDOC segments and use the FM – MASTER IDOC_DISTRIBUTE to create and IDOC
Step2 – Assign Function module to Message Type (Transaction BD60)
Step 7: For the master data that are processed set the change pointer status to ‘Processed’ by setting its value to ‘X’ by calling function module CHANGE_POINTER_STATUS_WRITE.
Delete change pointers
Transaction is BD22 or the standard program RBDCPCLR deletes the obsolete/processed change pointers.