Activate Change pointers for Message generation

BD10 to generate Material Idocs (MATMAS)

BD30 to generate BOM idocs (BOMMAT)

BD21 to process changes pointers. Here is how to set them :

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. 


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)
Transaction – MM02Transaction – 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.



Via la transaction SM58, visualisation des Remote Function Call ( RFC ) et de leur status.

Un RFC est une transaction exécuté dans SAP par un autre système, fait avec un user/password porté par l’application qui se connecte. Le user doit être valide et non-bloqué.


About BAPI:

BAPIs enable access to SAP functions across formal, stable and dialog-free interfaces. These interfaces can be used by external applications developed by customers and complementary software partners as well as by other SAP applications. Defined as API methods of SAP Business Object Types, these object types are used within the Business Framework to enable object-based communication between components.

Business objects and their BAPIs enable object orientation to be used in central information processing in companies. For example, existing functions and data can be re-used, trouble-free technical interoperability can be achieved and non-SAP components can be implemented. Applications can use BAPIs to directly access the application layer of the R/3 System and, as clients; applications can use the business logic of the R/3 System. BAPIs provide the client with an object-oriented view of the application objects without needing to know the implementation details. BAPIs are always developed by defining scenarios which are used to map and implement system-wide business processes.



BAPI_ROUTING_CREATE                                                                     Creation of a routing

BAPI_ROUTING_EXISTENCE_CHECK                                                Check existence of object

Reference operation set:

BAPI_REFSETOFOPERATIONS_CREATE                                           Creation of a reference operation set

BAPI_REFSETOFOPR_EXISTENCE_CHK                                           Check existence of reference operation set

Planned order:

BAPI_PLANNEDORDER_CHANGE                                                       Change Planned Order        

BAPI_PLANNEDORDER_CREATE                                                        Create Planned Order

BAPI_PLANNEDORDER_DELETE                                                        Delete Planned Order

BAPI_PLANNEDORDER_EXIST_CHECK                                              Check Existence of Object

BAPI_PLANNEDORDER_GET_DETAIL                                                 Get Details for Planned Order

BAPI_PLANNEDORDER_GET_DET_LIST                                            Get Detailed List

Planned Independent Requirement:

BAPI_REQUIREMENTS_CHANGE                                                        Change Planned Independent Requirement

BAPI_REQUIREMENTS_CREATE                                                        Create Planned Independent Requirement                                     

BAPI_REQUIREMENTS_GETDETAIL                                                   Display detail of P.I.R

Production order:

BAPI_PRODORD_WM_MAT_STAGING                                               WM Material Staging

BAPI_PRODORD_SETUSERSTATUS                                                 Set User Status

BAPI_PRODORD_SET_DEL_INDICATOR                                          Set Deletion Indicator

BAPI_PRODORD_SET_DELETION_FLAG                                         Set Deletion Indicator

BAPI_PRODORD_SCHEDULE                                                            Carry Out Scheduling

BAPI_PRODORD_REVOKEUSERSTATUS                                        Cancel User Status

BAPI_PRODORD_RELEASE                                                               Release

BAPI_PRODORD_GET_LIST                                                               List of Order Headers

BAPI_PRODORD_GET_DETAIL                                                          Order Detail Data

BAPI_PRODORD_EXIST_CHECK                                                       Existence Check

BAPI_PRODORD_CREATE_FROM_REF                                           Create with Template

BAPI_PRODORD_CREATE_FROM_PLORD                                     Create with Planned Order

BAPI_PRODORD_CREATE_CAP_REQ                                             Generate Capacity Requirement

BAPI_PRODORD_CREATE                                                                 Create Production Order

BAPI_PRODORD_COSTING                                                               Create Cost Estimate

BAPI_PRODORD_COMPLETE_TECH                                               Complete Technically

BAPI_PRODORD_CLOSE                                                                  Close Order

BAPI_PRODORD_CHECK_MAT_AVAIL                                              Check Material Availability

BAPI_PRODORD_CHANGE                                                                Change Production Order

Production order confirmation:

BAPI_PRODORDCONF_GET_TT_PROP                                          Propose data for time ticket confirmation

BAPI_PRODORDCONF_GET_TE_PROP                                          Propose data for time event confirmation

BAPI_PRODORDCONF_GETLIST                                                      Confirmation lists

BAPI_PRODORDCONF_GETDETAIL                                                 Detailed data for production order confirmation

BAPI_PRODORDCONF_GET_HDR_PROP                                       Propose data for order confirmation

BAPI_PRODORDCONF_EXIST_CHK                                                 Check existence of object

BAPI_PRODORDCONF_CREATE_TT                                                Enter time ticket confirmation

BAPI_PRODORDCONF_CREATE_TE                                                Enter time ticket confirmation

BAPI_PRODORDCONF_PDC_UPLOAD_TT                                      Transfer time ticket confirmations from PDC system

BAPI_PRODORDCONF_PDC_UPLOAD_TE                                     Transfer time ticket confirmations from PDC system

BAPI_PRODORDCONF_CREATE_HDR                                            Enter order confirmations

BAPI_PRODORDCONF_CREATE_ACT                                             Enter activity confirmation

BAPI_PRODORDCONF_CANCEL                                                      Cancel production order confirmation

BDC Download & Upload for production order:

BAPI_RCVPRORDCF_RECEIVEPRODORD                                   PP-PDC: Download production orders

BAPI_RCVPRORDCF_RECEIVEWORKC                                        PP-PDC: Download work centers

BAPI_RCVPRODCF_REQUEST_CONF                                           PP-PDC: Upload request


BAPI_KANBAN_CHANGE                                                                   Change Kanban Data

BAPI_KANBAN_CHANGESTATUS                                                     Change status of a kanban

BAPI_KANBAN_CHANGESTATUS1                                                   Change status of a kanban

BAPI_KANBAN_GETLIST                                                                   Determination of Kanbans Matching Selection Criteria

BAPI_KANBAN_GETLIST_ALL                                                           Determination of Kanbans Matching Selection Criteria

BAPI_KANBAN_GETLISTFORSUPPLIE1                                         Determination of Kanbans Matching Selection Criteria

BAPI_KANBAN_GETLISTFORSUPPLIER                                         Provide Kanban data for vendors

BAPI_KANBAN_SETINPROCESS                                                     Provide Kanban data for vendors


BAPI_KANBANCC_ADDEVENTDRKANBAN                                     Create Event-Driven KANBAN for Control Cycle    

BAPI_KANBANCC_CHANGE                                                            Change Control Cycle

BAPI_KANBANCC_CREATE                                                             Create Control Cycle

BAPI_KANBANCC_DELETE                                                             Delete Control Cycles

BAPI_KANBANCC_EXISTCHECK                                                    Check Existence of Control Cycle

BAPI_KANBANCC_GETLIST                                                             Determine Kanban Control Cycles with Selection Criteria

BAPI_KANBANCC_GETLIST_ALL                                                     Determine Kanban Control Cycles with Selection Criteria

BAPI_KANBANCC_WITHDRAWQUANTITY                                     Quantity Signal for Kanban Control Cycle

REM Confirmation:

BAPI_REPMANCONF_CANCEL                                                       Reverse REM Backflush

BAPI_REPMANCONF_CREATE_MTO                                             Execute Backflush in Sales Order Scenario

BAPI_REPMANCONF_CREATE_PLOT                                           Execute Backflush in Production Lot Scenario

BAPI_REPMANCONF_CREATE_MTS                                             Execute Backflush in Production Lot Scenario    

BAPI_REPMANCONF_EXIST_CHK                                                 Check Existence of Object

REM Confirmation1:

BAPI_REPMANCONF1_CANCEL                                                    Reverse REM Backflush

BAPI_REPMANCONF1_CREATE_MTO                                          Execute Backflush in Sales Order Scenario

BAPI_REPMANCONF1_CREATE_MTP                                          Execute Backflush in Production Lot Scenario

BAPI_REPMANCONF1_CREATE_MTS                                          Execute Backflush in Stock Scenario

BAPI_REPMANCONF1_EXIST_CHK                                              Check Existence of Object

Process order PI:

BAPI_PROCORD_WM_MAT_STAGING                                        WM Material Staging

BAPI_PROCORD_SETUSERSTATUS                                          Set User Status

BAPI_PROCORD_SET_DEL_INDICATOR                                   Set Deletion Indicator

BAPI_PROCORD_SET_DELETION_FLAG                                  Set Deletion Indicator

BAPI_PROCORD_SCHEDULE                                                     Carry Out Scheduling

BAPI_PROCORD_REVOKEUSERSTATUS                                 Cancel User Status

BAPI_PROCORD_RELEASE                                                        Release

BAPI_PROCORD_GET_LIST                                                        List of Order Headers

BAPI_PROCORD_GET_DETAIL                                                   List of Order Headers

BAPI_PROCORD_EXIST_CHECK                                               Existence Check

BAPI_PROCORD_CREATE_FROM_REF                                   Create with Template

BAPI_PROCORD_CREATE_FROM_PLORD                              Create with Planned Order

BAPI_PROCORD_CREATE_CAP_REQ                                     Generate Capacity Requirement

BAPI_PROCORD_CREATE                                                         Create Process Order

BAPI_PROCORD_COSTING                                                        Create Cost Estimate  

BAPI_PROCORD_COMPLETE_TECH                                        Complete Technically

BAPI_PROCORD_CLOSE                                                           Close Order

BAPI_PROCORD_CHECK_MAT_AVAIL                                       Check Material Availability

BAPI_PROCORD_CHANGE                                                         Change Process Order

Process Order Confirmation:

BAPI_PROCORDCONF_CANCEL                                          Cancel Process Order Confirmation

BAPI_PROCORDCONF_CREATE_ACT                                 Enter Activity Confirmation

BAPI_PROCORDCONF_CREATE_HDR                                Enter Order Confirmations

BAPI_PROCORDCONF_CREATE_TE                                   Enter Confirmation Time Events

BAPI_PROCORDCONF_CREATE_TT                                   Enter Time Ticket Confirmation

BAPI_PROCORDCONF_EXIST_CHK                                    Check Existence of Object

BAPI_PROCORDCONF_GET_HDR_PROP                          Propose Data for Order Confirmation

BAPI_PROCORDCONF_GETDETAIL                                    Detail Data for Process Order Confirmation

BAPI_PROCORDCONF_GETLIST                                         List of Confirmations for Process Orders

BAPI_PROCORDCONF_GET_TE_PROP                             Propose Data for Time Event Confirmation

BAPI_PROCORDCONF_GET_TT_PROP                             Propose Data for Time Ticket Confirmation

Process Characteristic PI:

BAPI_PROC_CHAR_GET_HELPVALUES                             Get Allowed Values for Process Characteristic

BAPI_PROC_CHAR_GET_LIST                                             Read Characteristic List Incl. Details

Process Message PI:

BAPI_PROCESS_MESSAGE_CREATEMLT                          Create process messages

BAPI_PROCESS_MESSAGE_CHK_EXIST                           Check process message existence

Control Recipe:

BAPI_CONTROL_RECIPE_GET_LIST                                   Read control recipe list

BAPI_CONTROL_RECIPE_REQUEST                                               Request and transfer control recipes


WB – Starting stock

PA – Planned order

BR – Process order

PP – Independant Requirements

VC – Customer order

VJ – Outbound Delivery

LA – Inbound Delivery

LE – Schedule line

UR – Inbound Transfer reservations

MR – Material Reservation (Outbound)

U1 – Outgoing STO

U2 – Outgoing STR

SB – Dependant Requirements

AR – Order reservation

BB – Subcontracting Requirements

BA – Purchase Requisitions

BE – Purchase Order

Transfert IBP to ECC

SAP IBP Data Integration via CPI-DS – How to synchronize data from SAP IBP through webservice

FollowRSS feedLike2 Likes 1,148 View 1 Comment

In this blog, you will get an end to end case for how to synchronize data from SAP Integrated Business Planning for Supply Chain solution through webservice.

Let’s assume the following scenario: Planners want to maintenance some additional information in SAP IBP and send these data to SAP ERP Central Component (SAP ECC)’s Z-table. To implement this scenario, we need SAP Cloud Platform Integration for data services (CPI-DS) as a middleware to connect both SAP IBP and SAP ECC.  The data flow will be SAP IBP>>CPI-DS>>SAP ECC. Let’s have a look at how to complete this scenario step by step.

1. Webservice Part

Firstly, SAP ECC as a service provider need to publish a web service to receive the data which is sent by SAP IBP through CPI-DS. In this part, I will show you how to deal with these in SAP ECC side. If you have already known these steps, you can skip to CPI-DS part.

1.1 Define a Z-table and create an RFC to receive data.

We need to define a table to store the data sent from SAP IBP, in this example, table is named as ‘ZIBP_DATA_FLITER’. And then, we can use an RFC to receive the data.

1.2 Generate service definition

After the RFC ‘ZIBP_SET_DATA_FILTER’ have been created. We should create an enterprise service and follow the wizard to generate service definition.

1.3 Publish webservice

After that, you can use T-CODE: SOAMANAGER to publish webservice and get the WSDL URL.

Go to the web service configuration pageSelect your service definition ‘ZIBP_SRV_ECC_DATA_INBOUND’ and follow the wizard to create service.After you have created the service, you can use ‘open binding WSDL generation’ button to open binding page where you can get WSDL URL.You can use web browser to open this WSDL URL, like below. It means the service has been published.


If you find that the web page occurrs 403 error, like this:That means you need to active some services through T-Code: SICF

Firstly, we need to get service path. You can right click and choose properties in the web page.Find the path under /bndg_url, for this example is /sap/bc/srt/rfc/sap/zibp_srv_ecc_data_inbound …Secondly, back to SAP GUI and use T-Code: SICF to find the service and active it.

Now we’ve finished service provide part. Let’s move to CPI-DS part.

2. CPI-DS Part

2.1 Import SAP IBP source table

CPI-DS need to know service consumer’s metadata, so we need to import SAP IBP source table for datastores first.

In SAP IBP side, the master data types which we want to synchronize to SAP ECC is like below:And we should import this table in CPI-DS. Let’s move to CPI-DS datastores sheet, find SAP IBP’s datastore and click ‘Import object’ button.Tips:

table name is SOPMD_<master data type ID> and folder name is your planning area ID.

SOPMD means S&OP master data. In this example, planning area ID is ‘INT’ and master data type ID is ‘FILTERCONFIG’, so we need to find table ‘SOPMD_ FILTERCONFIG’ which is under folder ‘INT’.

Now we’ve got the table in CPI-DS, and you can review table data in datastores

2.2 Create a web service datastore

After importing SAP IBP table, we should create a datastore to call the web service which we published.

In new datastores screen, we should choose datastore’s type as ‘SOAP Web Service’ and fill the WSDL URL which we got in step 1.3 in WSDL Path.

We also need to fill credentials info, for this example, it’s a http webservice and authentication with user ID/Password, so we should put the username and password which SAP ECC provided for integration.


For the WSDL Path field, we can also use WSDL file’s address.

If you want to use this way, you need to download the webservice’s WSDL file and upload to Data Service Agent service’s file folder. After that, you can fill the WSDL file address in WSDL Path field.

For this example, Data Service Agent are installed in a windows server, the WSDL file address will like this:


You can use test button to check datastores connection.

After our web service datastores passed connection test, we need to import web service metadata.Now we’ve finished both sides’ datastores configuration.

2.3 Create a task

From this step, Let’s move to CPI-DS project’s sheet to do the configuration.

Select the projects which you want to input new task and click ‘create task’ button.Follow the wizard to name the task, then select source/target datastores and save it.

Let’s open the task which we’ve just saved. We can check source/target datastores in connections sheet, edit data flows in data flows sheet and we can define some global variable for these data flows in execution properties sheet.

2.4 Create a data flow

After task has been created, we need to define movement and transformation of data from SAP IBP to SAP ECC, so we should create a data flow to handle it.

Use ‘Add target Object’ link to choose target object and create data flow

That’s a simple data flow, we just need 3 transform objects to deal with the work.Our data flow begins from source target ’SOPMD_FILTERCONFIG’ to the ‘output Loader’ which is to store web service response by xml file.

Firstly, use a Query transform to filter the fields which we need. If you want to define some field value levels’ filter, you can write some codes in filter sheet.Secondly, use an XML Map transform to map the fields between query and web service’s input.

If your web service supports inputting multiple rows of data, you need to define iteration rule for it. Use ‘propose rule’ button to choose the suitable object.Thirdly, use a web service call transform to call SAP ECC’s web service target. In this transform, we can use ‘select function’ button to choose web service input structure.After importing it, don’t forget to map these two structures.You can use ‘configure design time data viewer’ button to check each transform running status.

2.5 Create a process and test data flow

Select the projects which you want to input new process. And then click ‘create process’ button.Fill process name. Deselect the Load to SAP Integrated Business Planning (requires post-processing) box because our target datastores is web service.

Select the data flow which you want to test and drop it in the process pool.

Go back to project sheet, select the process and click ‘run now’And you can use ‘view history’ button to view the process log.Check SAP ECC’s Z-table whether it has received the data.

Hopefully, this article will help you better understand how to synchronize data from SAP IBP through webservice.