Change pointers

Change pointers DEFAULT

As a Developer you should know the concept and idea behind change pointers. I know when I say change pointers 40% readers mind will trigger two words:



Yes, you are right all the change pointers stored inside these tables. The main hero behind this is SMD (Shared Master Data)

The SMD tool is connected to the change document interface. If the master data changes are to be distributed, the application writes a change document. The contents of this are passed to the SMD tool. The tool writes change pointers, reads the application data and creates the master IDoc.

In simple word if you change anything in SAP, like material master, vendor info… etc. it will create an entry in change pointers table (BDCP, BDCPS). After that We mostly run RBDMIDOC to pick up these change pointers and send the IDOC to other systems so that the changes can be reflected properly.

Sometimes you might come across requirement wherein you need to manually make entries into these tables which can be achieved by standard function module for this check out the Function group BD01 where you will find Function modules like CHANGE_POINTERS_READ, CHANGE_POINTERS_DELETE, CHANGE_POINTERS_CREATE etc…

oh…. Wait I am getting a call from my Girl Friend…

My GF: “Hello. Sweetie Pie”

(She only talks in sweet way, when she needs help).

Me: Ya Tell Me Dear.

My GF: I need to de-activate creation of change pointers for message type MATMAS what should I do?

Me: To activate or deactivate a change pointer you can use transaction BD50:

You can also activate or deactivate the change pointers at single go using transaction code : BD61 (Don’t play with the Transaction code else you managers will play with you J )

Huuhhhhhh… this was a simple question she asked else I would have stuck for the whole day…

( call dropped )

Ohhhh man…she is calling…

My GF: I want to kick your ass…

Me: Oh please… What did I do??

My GF: You told me you can use transaction code BD50 to restrict the change pointer creation.

ME : Ya i said you can de-activate the change pointers for the particular message type using it.

My GF: let me Tell you clearly what is the requirement:

“I want that, for the MATMAS massage type it should not create a change pointers when material number is starting with “NON””.

Me : Darling you did not inform me this.

My GF : I did. Now give me solution for this…

(Any way I know all have the same problem That is why we called such creature as sweet poison )

Luckily we have a Business addins called BDCP_BEFORE_WRITE .

This Badi will be called just before the creation of the change pointers. So if someone wants to restrict the change pointer creation for a particular condition he/she can create an implementation of this Badi with the required message type as a filter condition e.g. MATMAS.

So now what one need to do is create a Badi implementation using MATMAS as a filter criterion.

Put a condition to check whether material is starting with the “NON” or not. If it is non just delete that entry from the change_pointers internal table.

You can use change_document_header to find out the material number. And you can put the filter as per your requirement.

So now the Question is how the IDOC is generated using change pointers???

For this We use Report program RBDMIDOC

This will pick up the Change pointers from the BDCP(2) tables and mark it as processed if IDOCs are created for the same.

Unfortunately, this is the End of life for our change pointers. Mostly basis people deletes all the processed change pointers as it is of no use from the BDCP, BDCP2/BDCPs tables.

Check the Below Image to see the Birdseye view of whole process:

You Might Also Like

Explain about change pointer in SAP.

We come across change pointer technique while dealing with master data distribution thru ALE/IDOCs

When we want to reflect changes made to master data (i.e customer master, vendor master, material master) visible to other clients listed in customer distribution model, we follow change pointer technique.

What is customer distribution model?

A customer model depicts various messages (master data, transactional data) exchanged between the systems and establishes a sender and receiver of data.

A customer model is always maintained on any system for the entire distributed network of SAP systems, so it must be distributed to various systems in the distributed network.

These are some details regarding change pointer technique which you may find it useful.

The change pointers technique is based on the change document technique, which tracks changes made to key documents in SAP, such as the material master, customer master, vendor master & sales orders. changes made to a document are recorded in the change document header table CHDHR, and additional change pointers are written in the BDCP table for changes relevant to ALE. BDCPS table stores the status of changed documents processed or not.

The process for distributing master data using change pointers involves the following steps.

The application writes change documents. SAP maintains change documents for several objects in the system, such as materials, customers, invoices, and bank data, to provide an audit trail for changes made to an object. A change document object represents a set of tables for which changes are recorded. For example, the change document for the material master is named MATERIAL and it contains the various tables of the material master object, such as MARA and MARC.

When an application transaction makes changes to an object, the application writes change documents, which are stored in the CDHDR and CDPOS tables for each change made to an object.


Execute transaction SCDO to see a list of change document objects and their tables.

The SMD (Shared Master Data) tool writes change pointers. When changes are made to an object, the SMD tool checks the ALE settings and consults the ALE distribution model to determine whether a receiver is interested in the object that was changed. If the system finds an appropriate receiver, the system creates change pointers in the BDCP table that point to change documents in the CDHDR table.

The ALE programs analyze change pointers and generate IDocs. SAP provides standard function modules that read the change pointer table and generate IDocs for the objects that were changed. These programs are designed to ignore multiple changes and create only one IDoc. For example, if a material is changed four times before the function module is invoked, only one IDoc with the latest data from the material master data is created. The function modules are invoked by a standard report, RBDMIDOC. The selection parameters of this report allow you to specify the message type for which change pointers are to be analyzed. Configuration you must carry out the following configuration steps to enable master data distribution based on changes to the object.

Step 1: Enable Change Pointers Globally 

Transaction: BD61 

This option enables the change pointer process globally. Make sure that the flag is checked.

Step 2: Enable Change Pointers for a Message Type 

Transaction: BD50 

This setting is required for activating change pointers for a specific message type.  Make sure that the Active flag is checked for your message type.

Step 3 :Specify the Fields for Which Change Pointers Are to Be Written 

Transaction: BD52 

For standard master data objects such as the material, customer, and vendor objects, SAP already provides a list of fields for which change pointers are written. If you are satisfied with the standard set of fields, you can skip this step. If you want to add new fields, you must add entries for the required fields. If you are not interested in IDocs being generated for changes to a particular field, you can remove it from the list. For example, if you do not want to distribute the material master for changes made to the Catalog Profile (RBNRM) field, you can delete this entry from the table.

Step 4: Changing a Field in the Master Data 

Change a field in the master data object for which the change pointer is enabled. For example, if you change the net weight of a material in the material master data, a change pointer is written.

Tip : You can verify a change document and change pointer by viewing entries in tables CDHDR and BDCP, respectively.

Step 5 :Executing Program RBDMIDOC to Process Change Pointers 

Execute program RBDMIDOC to initiate the process of generating an IDoc. On the selection screen, specify the message type. For example, you can specify MATMAS. After you execute the process, it displays the number of entries processed.

Note :

Normally, you schedule this program to run frequently and start IDoc generation for different message types.

Step 6 : View the idocs in WE02/05

  1. Pioneer nex 4100
  2. Xtreme aero buds
  3. Mellow world bag
  4. Elephant in urdu
  5. Midwest models ships

SAP Change Pointers in 4 steps

Today we will talk about SAP change pointers. Change pointers are that thing, which registers all object changes, which you need to send over ALE to other SAP or non-SAP system. For example, you have changed SAP HR infotype (let’s say infotype number 0002), the system records these changes internally, creates change pointer object. Then according to your ALE settings it sends updated record immediately or based on the scheduled job. So it sends only that one 0002 infotype record, not every record, not the whole bunch of infotypes. It saves a lot of time, increases SAP performance and decreases network load. Very convenient and smart in other words. There are just four steps to configure SAP change pointers for HCM or any other SAP ECC (Enterprise Central Component) module.

You can set up change pointers very easily with these 4 steps

  1. How to activate change pointers in SAP? With transaction code BD61 SAP activates change pointers across the whole system. It’s a best practice to activate change pointers only in these systems you have and manage data (like test or quality system and a production system).
    Activate Change Pointers in bd61

    Activate Change Pointers in BD61 transaction

  2. BD50 transaction activates change pointers for specific message type (or object). For SAP HCM it would be HRMD_A.
    Activate Change Pointers for HRMD_A IDOC

    Activate Change Pointers for HRMD_A IDOC

  3. Schedule RBDMIDOC program periodically to send IDOCs (the outcome of the change pointer) over ALE integration layer. The program reads change pointers tables, creates IDOCs with changed data and pushes them to ALE layer.


  4. It’s recommended to clean change pointers tables periodically. You can do this manually in BD22 transaction or automatically with RBDCPCLR program scheduled.

If you want to track specific fields, I mean, when a specific field in infotype is changed, then in SE11 in ABAP Dictionary select needed data element, switch to ‘Further characteristics’ and tick ‘Change document’ checkbox. Now changing this field in any infotype will cause a new change pointer and data change sending through ALE. Configuring change pointers is a one step in a whole SAP ALE configuration procedure.

Don’t forget to setup the whole SAP ALE landscape to send change pointers over. You can find step-by-step SAP ALE configuration guide in my other post here: 

InSAP Notes

how to change pointers

This post aims to illustrate how to create outbound iDocs for master data changes in SAP using Change Pointers mechanism. When master data such as Material Master, Vendor Master, Customer Master, etc. changes in SAP, we can capture the changes using Change Pointers mechanism. Change Pointers are useful when you want to communicate SAP master data changes to external systems using iDocs.

Before we start talking about Change Pointers mechanism, you need to understand iDoc configuration steps.

To illustrate how Change Pointers are enabled for master data changes in SAP, let’s assume we need to communicate sales pricing conditions to external system (POS) using COND_A iDoc. When price condition values are changed or conditions are created, change point mechanism should be activated and outbound COND_A iDocs in basic type should be generated.

SAP Versions used in the illustration:

Step by Step Guide on How to Activate Change Pointers for Price Conditions:

Step 1: Activate Change Pointer Globally – Transaction BD61.

Go to transaction BD61 and activate Change Pointers generally. This is a global setting which should be activated if you want to use Change Pointers in your SAP system.

Activate Change Pointers globally

Step 2: Activate Change Pointers for iDoc Message Type – Transaction BD50

Go to transaction BD50 and activate change pointers for Message Type COND_A.

Activate Change Pointers for Message Type COND_A

Here we can decide for which Message Types Change Pointers should be activated. If you want to capture changes of Material Master activate Change Pointers for Message Type MATMAS or ARTMAS. If you want to distribute changes of Customer Master activate Change Pointers for CREMAS Message Type.

Step 3: Assign Change Point Items for Message Type – Transaction BD52

Go to transaction BD52 and select Message Type COND_A.

Field selection for COND_A message type

Assign table names and fields which change pointers should be activated for. Change pointers will be activated when values of these fields are changed and change log will be maintained in table BDCP2.

Assign table names and field names

Step 4: Configure Partner Profile – Transaction WE20

Configure partner profile with outbound message type COND_A. In this example we are sending Price Condition changes to POS logical system.

configure partner profile in we20

There are several other configuration steps to set up iDoc communication. Complete guide for iDoc configuration transactions can be found here.

Step 5: Configure ALE Distribution Model – Transaction Bd64

To distribute Master Data iDocs we need to configure Distribution Model using transaction BD64.

Create a Distribution Model View. Assign the Message Type, Sender SAP system name and receiver partner name using ‘Add Message Type’.

Create model view for COND_A outbound

Sender system is the Logical System name of the sender SAP system. Receiver is the name of the partner profile configured in the previous step using transaction we20.

Add new Message Type to Model View Bd64
Model View configuration completed - BD64

Additionally, you can restrict iDocs being generated for certain Sales Organizations, Material Groups, Distribution Chains etc by creating Filter Groups. Double click on ‘filter set’ and create a filter group with filter criteria and values. Here I have restricted generation of iDocs only for US region.

Filter groups in distribution model bd64

Step 6: Generate Outbound iDocs Using Standard Program RBDMIDOC – Transaction se38.

When you create or change conditions, change pointers mechanism will flag changes in change pointers table BDCP2. The program RBDMIDOC reads this table and creates master and communication iDocs. This program dynamically executes the Change Point read Function Module of Message Type selected in selection screen. Function Module for COND_A Message Type is MASTERIDOC_CREATE_SMD_COND_A.

RBDMIDOC  selection screen. Input Message Type
RBDMIDOC program output.

In production system you can schedule this programto create outbound iDocs periodically.

Test Change Pointers:

To test change pointers,change condition values using transaction VK12.

VK12 - Change Condition values

Once you change values of conditions, changes will be flagged in table BDCP2. In older SAP versions change points were saved in tables BDCP and BDCPS, but in newer HANA versions data is aggregated to table BDCP2.

Change Pointers are initially created in null processed status in this table. Once you execute the program RBDMIDOC and iDocs are generated, processing status changes to ‘X’.

change pointers are flagged in table BDCP2. Ready to create iDocs BDCP, BDCPS
RBDMIDOC program output.

Using transaction we02, view the iDocs generated.

Master data iDoc generated from Change Pointers

Change Pointers processing status updated.

Change Pointers table BDCP2 processing status updated. BDCP, BDCPS

Hope this guide will help you set up Change Pointers for master data changes in SAP. If you have any questions on creating outbound iDocs using change pointers, leave a comment below.

This entry was posted in ALE/iDoc and tagged ALE, ALE Distribution Model, bd50, bd52, bd61, bd64, BDCP, BDCP2, BDCPS, Change Pointers, iDoc, Partner Profile, RBDMIDOC, SE38, vk12, vk13, we02, we20.
Isuru Fernando

Hi, I am Isuru Fernando, Senior SAP Integration Consultant with 10 years of SAP full-cycle implementation and support project experience. From the early days, I had a passion for coding, software development, and everything tech-related. I started my carrier as an ABAP developer and soon found my love for system integration when I learned SAP XI 3.0 in 2008. Playing a variety of roles from an offshore technical consultant (ABAP, PI/PO, BW, BOBJ) at the beginning of my career to a technical lead managing a team of consultants in different countries, I have gained immense experience in SAP project implementation life cycle. Having the opportunity to work on SAP implementation projects in USA, EU, and Asia, I learned valuable ins and outs of global business processors in Sales and Distribution (SD), Material Management, Retail, Customer Relationship Management (CRM), and Finance and Controlling (FICO). Through this blog, I want to share my expertise in SAP technical areas such as SAP ABAP, PI/PO, AIF, and Basis. I also want to provide a platform for others with similar ambitions who would like to share their SAP technical expertise with the world!


Pointers change

are a clever name for a triggering reason for outbound Idocs. Using a change pointer which is defined by customizing against any Change Document for any Message Type. From concept to implementation..

The concept

SAP has come up with a solution to keep track of relevant changes on a wide variety of documents such as the Purchase Order, a Contract or Master data (the Material). Change Documents are the mechanism used in many transactions to keep track of changes, it can even be set up for custom-build applications.For many changes, it's quite likely that other systems need to be notified and why not use Idoc's to get this change message across. Change pointers is where the SAP standard solution for keeping track of changes (Change document) meets the SAP standard solution for EDI (and ALE) messaging (Idocs).

How does it work ?

    A steplist:
  1. First the use of change pointers needs to be globally activated via transaction - Globally activate change pointers, then the change pointers need to be activated for the relevant message type, transaction - Activate Change Pointers for the Message Type
  2. Via customizing settings certain changes are flagged as "relevant to be used to trigger an outbound Idoc" (transaction - Specify the fields for which Change Pointers need to be written). These settings are done for a predefined Idoc Message Type
  3. The effect will be that when the above customized changes actually take place, e.g. a the Purchase Order quantity is changed, a change pointer is saved to a table. Effectively the change pointer acts as a "triggering reason for an predefined message type" (or even different message types).
  4. At the end of the day, the change pointers are interpreted (normally via a batch job) via transaction - Idocs are written from the (already collected) Change Pointers

The outbound Idocs that are produced will have to be set up with an outbound processing code (via transaction - Outbound: Create a new outbound process code) to enable the system to produce the triggered Idoc. Nice detail on this: where an idoc with header segments and item segments is produced from a change pointer that was about an item change, the action code on the header is set to code 018 - Resend. This means the header data is only sent along to help the receiving system identify what the idoc is about (which is required of course). The additional information of this action code is the fact that nothing has changed on the header segments - so the receiving system can ignore most of the segment.

Technical background

Change pointers are held on tables - "Change pointer" and - "Change pointer: Status". Table - "ALE supplement data for EDI message type" could be useful as well. In practice, these tables can be used to check a setup.

Some useful function modules where change pointers are concerned:
Read change pointers
Write status records of change pointers
Outbound IDOC logic using change pointers (*=message type)

How to Change Mouse Cursor on windows 7/8/10 - How to Change Mouse Pointer - Animated Mouse Pointer

I thought for a minute and Im returning home and how suddenly a black BMW stopped and a guy with a cigarette in his hands. All of this kind of offers a ride, Im already in despair and realizing that nothing else is shining, I agree. I had a package in my hands where it was sham panties and sweets, he carefully takes it and puts it on the back seat.

By that time I was already well wet and my white skirt and pink jacket were tight over my body, I was trembling all over, but at the.

You will also be interested:

She began to vomit and he hit her again only this time on the ear. Forced to suck him again and again, until his cock stood up again. A strange sensation. I was insanely embarrassed, pleasant and very ashamed. Feeling like a schoolgirl before a date, I was spinning around the mirror in my underwear.

1304 1305 1306 1307 1308