BD60 : Message type =>FM to generate it
Archives de catégorie : Dev-Tech-Interface
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 :
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.

APO Masterdata table map
Lot size (& rounding) informations : /SAPAPO/MATLOTSZ
Tables with ‘normal’ product & location ID : /SAPAPO/V_MATLOC
Web-service
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é.
EF Specific – Idoc Monitor
Update the following table in SM30
ZSOTC064 Destinations for IDoc failure e-mail notification
ZSOTC065 Field information for IDoc failure e-mail notifications
BAPI PP
https://blogs.sap.com/2013/07/12/list-of-bapi-for-production-planning-module/
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.
LIST OF BAPI FOR PRODUCTION PLANNING :
Routing:
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
KANBAN:
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
KANBAN CONTROL CYCLE:
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
RCCYMAB1 and RCCYMAB1 for auto loading orders
Schedule a mass loading of what’s appearing on CM25.
RCCYMAB1 to create the parameters.
RCCYMAB2 to schedule the run.
BAPI BAPI_MATERIAL_MRP_LIST type of objects
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.
Tips:

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.
Tips:
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:
C:\ProgramData\SAP\DataServicesAgent\workspace\wsdl\zibp_srv_ecc_data_inbound.wsdl

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.
Change a program of package
From SE38, get your program then :

Changer un programe de Package