BOM Delete Change Pointers
1. Does anyone know if the process of deleting a material from a BOM can be configured to create change pointers?
2. Same change pointer question for after the materials are deleted from the BOM and the BOM header is marked for deletion.
Your feedback is much appreciated.
Hi nlira,
1. Does anyone know if the process of deleting a material from a BOM can be configured to create change pointers?
Your question is not clear. As i understand you know how to delete a line item in BOM and you want to know if change pointer picks it up at line level.
If you activate BOMMAT in BD50, all changes should be captured from BOM.
Before that, check TCODE- BD52 for message type BOMMAT to see you have all the fields listed which you want to capture.
Typically in your case its LKENZ for STPO which is not added by default in sap. You have to add it to capture.
2. Same change pointer question for after the materials are deleted from the BOM and the BOM header is marked for deletion.
I did not understand this question.
BOM Header Deletion indicator STKO- LOEKZ is captured for BOMMAT message Type.
Let me know if i answered your question.
Thanks,
Shekhar Ramineni
Similar Messages
-
Deletion change pointers are not going to ECC after C5
Hi,
My issue is that I am running C5 after Planning run.But deletion change pointers are not going to ECC.Because of this we have duplicate of orders in ECC.We are running CCR to bring back the "Planned orders with deletion change pointers and deleting again using RRP4.Why deletion change pointers are not going along with creation change pointer?Help will be highly appreciated.
Thanks&Regards
VenkadeshHi,
Check whether you have enabled the " delete events" check box. This check box will be valid if you are publishing the planning results thru background job.
If you set this indicator, the system deletes all selected change pointers without sending them first.
Thanks,
nandha -
Deleting change pointers in IDOC
Is there any other way to delete change pointers other than using transaction code BD22?
Hi,
u can activate/deactivate change pointer using Transaction code BD50. Guess this will be helpful. -
Hi
Does anyone know the standard application which deletes consumed/processed change pointers from the tables.
This i want since, it is having lot of entries in change pointers and i want to delete the processed change pointers to improve the performance.
shyleshHi Sailesh,
You can use standard program <b>RBDCPCLR</b> (t/code BD22) to delete change pointers.
For more information on chnage ponter, please check this link.
http://help.sap.com/saphelp_erp2005/helpdata/en/12/83e03c19758e71e10000000a114084/content.htm
Hope this will help.
Regards,
Ferry Lianto -
Restrict IDoc creation by using deactivate change pointers
Hi Experts,
I am trying to restrict the creation of IDOCS by deactivate the change pointers from a ztable. if the record in ztable and BDCP table match then i should deactivate the change pointer. And restrict the creation of Idocs.
pls, suggest me soon... its urgernt.......
Regards,
CHKMaybe using program RBDCPCLR to delete change pointers you don't want to use?
-
Does ALE change pointers capture the hard deletes?
Hello Team,
We have requirement to capture the hard deletes.
If my table has 10 records, if one get deleted, i would like to know this.
This table is planned to broadcast across the R3 systems, hence we were thinking about to create ALE change pointers.
My question is does ALE change pointers supports hard deletes (or) just new or changed?
Thanks in advance,
AngeloHi Angelo,
Change pointers are usually based on change documents. It's essentially the responsibility of the application to determine for what change pointers (and possibly change documents) are written. If you're creating your own change pointers you also have the option to just generate them directly (without writing any change document using function module CHANGE_POINTERS_CREATE_DIRECT). Thus you of course have the freedom to also generate them for hard table deletes - all completely up to you.
Cheers, harald -
Change pointers in case of purcahse order
The scenario is to send data through idoc when i create/change delete certain fields in purchase order.
I hace used change pointer scenario for it
can u plz see what i have missed out in my configuration ..
Here are the steps i followed .
1) created a logical custom message us we81 .
2) created custom idoc using we 30
3) Linked custom mesage and idoc using we 82
4) Activated my custom message using bd50 .
5) Assigned fields to message using bd52 ie
Einkbeleg EKKO waers , EKPO-netpr ..etc
6) Assigned cutom message and custom function module
(z...smd_custommsg) via bd60
7) tried to execute the message using BD21 ..
Now the issue is that entries are being created in change document table(cdhrd/cdpos)
but no entry in BDCP/BDCPS..
please give your valuable inputs to it
Thanks In advancehi,
You can acheive this by writing a custom program.
in the program you need to use function module 'CHANGE_POINTERS_READ' for reading the change pointers.
Give document object class as the object name in bd52 and give read_not_processed_pointers as 'X'.
Looping at the output table and using function module CHANGE_POINTERS_CREATE_DIRECT you can create an entry in bdcp table for the respective purchase order.
After this you can use SUBMIT rbdmidoc WITH mestyp = message_type AND RETURN.
Regards
Sridevi S -
Change pointers triggering problem for vendor bank details
Hi,
I have configured change pointers for vendor master data. IF I change already existing bank account then that account is coming with deletion indicator and it is picking all other bank details with resend indicator. But if only new account added then idoc is not creating. At the same time entry in table BDCPV also not creating.
Is there any solution to create idoc if new accounts created.
Note: I am not changing any other information except bank details.
Thanks in advance.
Rgds,
Sudhakarhi ,
How are you changing the information either via direct table update or Bdc, change pointers will be created only if you do transcation it means Bdc
i guess.
regards
sarath -
Material BOM mass change error
Hi gurus,
When doing mass change of BOM via tcode CS20, i'm getting below error result.
The following messages were displayed:
Material BOM 00016478 : Delete Item(s)
19760 STM-220-(20UP)78DZ*C06U029(XC06U029)Sn 200
0130 L 01/01/2002 12/31/9999 1.00 PC > 1.00 PC
No batch input data for screen SAPLSDDT 0010
Folder created/extended
I wonder what does "No batch input data for screen SAPLSDDT 0010" mean? what should i do to correct this?
I also noticed that all items on the picklist were grayed out though i can still click on the checkbox button to select the items that I want to be deleted.
Has anyone encountered this problem? I usually use CS20 during BOM mass change and haven't encountered this kind of problem.
Hope to hear advise from you all on how to deal with this.
Thanks and regards,
ChadDear,
Error message no is 00344 ?
Please refer the OSS note Note 493096 - CS20: No batch input data for screen SAPLCSDI and Note 180686 - For CS20
Regards,
R.Brahmankar -
Trigger IDOC using change pointers
Dear All,
We are using change pointers for triggering IDOC's when a cost centere is creaed/changed/deleted.
We are using message type COSMAS for the same.
I have maintained all the necessary settings including Distrubution model.
When a cost centre is created or changed the IDOC is getting triggered ( After executing prgroam RBDMIDOC ).
But when we delete an cost centre the IDOC is not getting triggered.
I am able to see the releated entries in BDCP and BDCPV tables as well as CDHDR and CDPOS tables.
Can any one say how this can be achieved? When a cost centre is deleted then also IDOC should get triggered.
Regards,
SRavanWhen we remove an Cost center it physically gets deleted from the data base.There is no delete indicator as such
-
Hi Gurus,
I am not able to transfer the changes to BOMs in ECC. I am using the transaction CURTO_CREATE_BOM. This transaction is not picking up the changes in BOM.
Are there any SAP Standard change pointers that I need to activate to enable change transfer for PDS'?
Any response is appreciated.
Thanks,
Shiv.I did try that transaction, but it does not work. I am only transferring BOMs to APO. There is no production version attached to the BOM. And i need a production version to compare PDS with BOM using /SAPAPO/RTO_ORD_COMP.
When I run this transaction w/o production version, I get the following error -
"No comparison for product 420-0002-0002 location P100 production version : Production Version not Found " -
SMD Tool. No change pointers log on table CDHDR nor CDPOS.
Hi everyone.
I'm trying to use the SMD tool. I've created my Message Type, and my Change Document Object(Tcode SCDO).
Priorly, I've tested the ALE Layer configuration, by sending iDocs of my message type directly with the MASTER_IDOC_DISTRIBUTE Function Module, and it works fine. I mean, I have no problem with sending iDocs or the ALE configuration.
In the transaction SCDO I've logged my Object Type, and I've assigned the table THOC (Public Holiday Calendar), from wich I want to monitoring the field DATUM, wich is flagged as "Copy as Internal Table" and "Doc. for individual fields at delete". Also in this transaction (SCDO), I've created the Update pgm.
In transaction BD95, I've inserted my ALE Object Type, and I've assigned the table THOC and the field DATUM to my Object. Field DATUM is referenced to the DATUM Data Element. Due that the Data Element DATUM isn't flagged as "Change Document", I've changed the Data Element referenced by the field DATUM for one copy of the Data Element DATUM, wich I've flagged as "Change Document".
My Message Type is alredy on the following tables:
Tcode BD50: The checkbox for monitoring Change Pointers is on.
Tcode BD52: Where I've assigned my ALE Object, the table THOC and the field KEY.
Tcode BD59: Where I've assigned to it the segment of my Message Type, and the field (same field type) wich corresponds to the field DATUM of table THOC.
Tcode BD60: The ref. msg. is the same as my Message Type, i've created the function module to create the iDocs containing the delta information (via tcode BD21 I alredy reach this FM that I've created), there's no table nor Object Type Associated (in this step I've tried both cases, with table THOC and my Object Type assigned, and both not assigned), the checkboxes "ID for reducible message type" and "BDCP2 OK" are off.
The Change Pointers in Tcode BD61 is on.
After all this configuration steps, I still cannot see logs of my Change Document Type in tables CDHDR nor CDPOS. Besides, when I run Tcode BD21 with my message type, and when the program reaches my Function Module (Z_MASTERIDOC_CREATE_SMD_xxxxx), the function CHANGE_POINTERS_READ with my ALE Object gets no records. At this step, the same function (CHANGE_POINTERS_READ) with another ALE Object does get records.
Table BDCPS alredy contains records for my Message Type, and in those records, the "Process" field is empty.
Am I missing one step or something?
Can anyone help me please?
Thanks in advice.
Regards.Hi everyone.
I'm trying to use the SMD tool. I've created my Message Type, and my Change Document Object(Tcode SCDO).
Priorly, I've tested the ALE Layer configuration, by sending iDocs of my message type directly with the MASTER_IDOC_DISTRIBUTE Function Module, and it works fine. I mean, I have no problem with sending iDocs or the ALE configuration.
In the transaction SCDO I've logged my Object Type, and I've assigned the table THOC (Public Holiday Calendar), from wich I want to monitoring the field DATUM, wich is flagged as "Copy as Internal Table" and "Doc. for individual fields at delete". Also in this transaction (SCDO), I've created the Update pgm.
In transaction BD95, I've inserted my ALE Object Type, and I've assigned the table THOC and the field DATUM to my Object. Field DATUM is referenced to the DATUM Data Element. Due that the Data Element DATUM isn't flagged as "Change Document", I've changed the Data Element referenced by the field DATUM for one copy of the Data Element DATUM, wich I've flagged as "Change Document".
My Message Type is alredy on the following tables:
Tcode BD50: The checkbox for monitoring Change Pointers is on.
Tcode BD52: Where I've assigned my ALE Object, the table THOC and the field KEY.
Tcode BD59: Where I've assigned to it the segment of my Message Type, and the field (same field type) wich corresponds to the field DATUM of table THOC.
Tcode BD60: The ref. msg. is the same as my Message Type, i've created the function module to create the iDocs containing the delta information (via tcode BD21 I alredy reach this FM that I've created), there's no table nor Object Type Associated (in this step I've tried both cases, with table THOC and my Object Type assigned, and both not assigned), the checkboxes "ID for reducible message type" and "BDCP2 OK" are off.
The Change Pointers in Tcode BD61 is on.
After all this configuration steps, I still cannot see logs of my Change Document Type in tables CDHDR nor CDPOS. Besides, when I run Tcode BD21 with my message type, and when the program reaches my Function Module (Z_MASTERIDOC_CREATE_SMD_xxxxx), the function CHANGE_POINTERS_READ with my ALE Object gets no records. At this step, the same function (CHANGE_POINTERS_READ) with another ALE Object does get records.
Table BDCPS alredy contains records for my Message Type, and in those records, the "Process" field is empty.
Am I missing one step or something?
Can anyone help me please?
Thanks in advice.
Regards. -
How to use CSAP_MAT_BOM_MAINTAIN for deleting / changing sub-items?
I'm trying to use CSAP_MAT_BOM_MAINTAIN for BOM create / change / delete.
Issue: This Function module is not working when I'm trying to delete / change sub-items of a BOM. I'm getting update termination (ABAP/4 processor: SAPSQL_ARRAY_INSERT_DUPREC) during BOM post.
Is there a way to fix this?
(1) BOM creation part is working fine
(2) BOM item (without any sub-item change) change / delete is also workinghi
The following parameter are important parameter and mandatory
Matnr ; Enter the material Number
BOM_USAGE : Ther many BOM available that is sales BOM and Production BOM etc here you need to mention usage of BOM that is for sales or production
I_STKO : Enter the BOM Header information . Note : Ask your Functional consultand
Apart form this parameter, all are optional so do worry
regards
anand kumar -
Use change pointers to send complete employee in HRMD_A
Hi
I need to distribute employee data from my SAP system. I want to send a Idoc every time a record in PA30 is changed. But know it only sends out a IDoc with the infotype that is changed, I need to distribute all infotype's.
Example: One person is changed in infotype IT0002. I need to send out not only IT0002 but also IT0006 and IT0008.
Is there a way to solve this?
Best Regards,
MortenHello Morten,
Yes, you can do it. I have done same thing in one of my interface. You need to write code into BADI.
BADI : BDCP_BEFORE_WRITE
Method : FILTER_BDCPV_BEFORE_WRITE
Basic idea is to populate internal table change_pointers with remaining infotype details.
Refer following code for reference....
BADI implemented in order to send customised data as
maintained in the distribution mdoel
METHOD if_ex_bdcp_before_write~filter_bdcpv_before_write.
Type Declaration
TYPES : BEGIN OF ts_range,
sign TYPE tvarv-sign,
option TYPE tvarv-opti,
low TYPE tvarv-low,
high TYPE tvarv-high,
END OF ts_range.
TYPES : BEGIN OF ts_group,
int_grp TYPE zthr_infty_subty-int_grp,
END OF ts_group.
Internal table
DATA:
lt_zthr_infty_subty TYPE TABLE OF zthr_infty_subty,
lt_dist_infty_subty TYPE TABLE OF t788u,
lt_groups TYPE TABLE OF ts_group.
DATA:
lt_changed_objects TYPE TABLE OF hrobjinfty.
DATA :
lr_infty TYPE RANGE OF t591s-infty, " Range for infotypes
lr_subty TYPE RANGE OF t591s-subty. " Range for subtypes.
Work Areas
DATA:
lw_change_pointers TYPE bdcpv,
lw_change_pointers1 TYPE bdcpv,
lw_text(254) TYPE c,
lw_infty TYPE ts_range,
lw_subty TYPE ts_range,
lw_groups TYPE ts_group.
DATA:
lw_zthr_infty_subty TYPE zthr_infty_subty, "Infotype & Subtype
lw_zthr_infty_subty1 TYPE zthr_infty_subty, "Infotype & Subtype
lw_dist_infty_subty TYPE t788u. "Infotypes
DATA:
lw_changed_objects TYPE hrobjinfty,
lw_changed_objects1 TYPE hrobjinfty,
lw_changed_objects2 TYPE hrobjinfty.
Local Variables
DATA:
lv_tabix TYPE sy-tabix, " Table index
lv_cpident TYPE cpident, " Change pointer no.
lv_pernr TYPE pa0000-pernr, " Employee Number
lv_tabname TYPE dd02t-tabname, " Table Name
lv_abkrs TYPE pa0001-abkrs, " Payroll Area
lv_infty(4) TYPE n. " Infotype Number
Local Constants
CONSTANTS:
lc_e TYPE t591s-sprsl VALUE 'E',
lc_i TYPE tvarv-sign VALUE 'I',
lc_x TYPE c VALUE 'X',
lc_7 TYPE c VALUE '7',
lc_p TYPE otype VALUE 'P',
lc_zhrmd TYPE edi_mestyp VALUE 'ZHRMD_A',
lc_eq TYPE tvarv-opti VALUE 'EQ',
lc_pa(2) TYPE c VALUE 'PA',
lc_begda TYPE sy-datum VALUE '19000101',
lc_02 TYPE pa0001-abkrs VALUE '02',
lc_1000(4) TYPE n VALUE '1000',
lc_2000(4) TYPE n VALUE '2000'.
Clear all local variables / internal tables / Work Areas
REFRESH : lt_groups,
lr_infty,
lr_subty,
lt_changed_objects.
CLEAR : lv_tabix,
lv_abkrs,
lw_change_pointers,
lw_dist_infty_subty,
lv_tabname,
lw_groups.
Select only otypes and infotypes from distribution model
Read change infotype / subtype data
IF NOT change_pointers[] IS INITIAL.
LOOP AT change_pointers INTO lw_change_pointers.
lw_changed_objects = lw_change_pointers-tabkey.
Filter CE Employee if Pay-Area not '02' ***
IF flt_val EQ lc_zhrmd. " Check for CE emploeyee
SELECT abkrs
INTO lv_abkrs
FROM pa0001 UP TO 1 ROWS
WHERE pernr EQ lw_changed_objects-objid
AND endda GE sy-datum
AND begda LE sy-datum
AND abkrs EQ lc_02.
ENDSELECT.
IF sy-subrc EQ 0.
APPEND lw_changed_objects TO lt_changed_objects.
ELSE.
DELETE change_pointers.
ENDIF.
ELSE.
APPEND lw_changed_objects TO lt_changed_objects.
ENDIF. " IF flt_val EQ lc_zhrmd.
ENDLOOP. " LOOP AT change_pointers INTO lw_change_pointers.
lv_cpident = lw_change_pointers-cpident.
ENDIF. "IF NOT change_pointers[] IS INITIAL.
Select only otypes and infotypes from distribution model**
Select corresponding infotypes / subtypes from table **
ZTHR_INFTY_SUBTY to create change pointers **
CALL FUNCTION 'RH_DISTRIBUTED_INFOTYPES'
EXPORTING
message_type = flt_val
check_model = lc_x
TABLES
distributed_infty_subty = lt_dist_infty_subty.
IF NOT lt_dist_infty_subty[] IS INITIAL.
Read table ZTHR_INFTY_SUBTY
SELECT mandt " Client
mestyp " Message Type
infty " Infotype
subty " Info Subtype
int_grp " Change pointer group
INTO TABLE lt_zthr_infty_subty
FROM zthr_infty_subty AS a
FOR ALL ENTRIES IN lt_dist_infty_subty
WHERE mestyp EQ flt_val
AND infty EQ lt_dist_infty_subty-infty.
IF sy-subrc EQ 0.
CLEAR : lw_changed_objects.
LOOP AT lt_changed_objects INTO lw_changed_objects.
MOVE : lw_changed_objects TO lw_changed_objects2.
AT NEW objid.
Read all groups belongs to infotype.
CLEAR : lw_groups.
REFRESH: lt_groups.
LOOP AT lt_zthr_infty_subty INTO lw_zthr_infty_subty
WHERE infty = lw_changed_objects2-infty
AND subty = lw_changed_objects2-subty.
lw_groups = lw_zthr_infty_subty-int_grp.
APPEND lw_groups TO lt_groups.
ENDLOOP. " LOOP AT lt_zthr_infty_subty INTO ....
Do not create change pointer if infotype not maintained in
table 'ZTHR_INFTY_SUBTY'.
IF sy-subrc NE 0.
DELETE change_pointers WHERE
tabkey+12(4) = lw_changed_objects2-infty
AND tabkey+16(4) = lw_changed_objects2-subty.
ENDIF. " IF sy-subrc NE 0.
Read all infotypes belongs to all above groups.
LOOP AT lt_groups INTO lw_groups.
LOOP AT lt_zthr_infty_subty INTO lw_zthr_infty_subty
WHERE int_grp EQ lw_groups-int_grp.
Check if change pointer already present
READ TABLE lt_changed_objects INTO lw_changed_objects1
WITH KEY infty = lw_zthr_infty_subty-infty
subty = lw_zthr_infty_subty-subty.
IF sy-subrc NE 0.
Check if data exist for infotype / subtype
IF lw_changed_objects-otype EQ lc_p.
CONCATENATE : lc_pa lw_zthr_infty_subty-infty
INTO lv_tabname.
SELECT SINGLE pernr
INTO lv_pernr
FROM (lv_tabname)
WHERE subty EQ lw_zthr_infty_subty-subty
AND pernr EQ lw_changed_objects2-objid.
IF sy-subrc EQ 0. " Change pointer for employee
Create change pointer for infotype / subtype combination
ADD 1 TO lv_cpident.
lw_change_pointers-cpident = lv_cpident.
lw_change_pointers-tabkey+12(4) = lw_zthr_infty_subty-infty.
lw_change_pointers-tabkey+16(4) = lw_zthr_infty_subty-subty.
lw_change_pointers-tabkey+20(8) = lc_begda.
APPEND lw_change_pointers TO change_pointers.
ENDIF. " IF sy-subrc EQ 0.
ELSE.
Create change pointer for Org Data
ADD 1 TO lv_cpident.
lw_change_pointers-cpident = lv_cpident.
lw_change_pointers-tabkey+12(4) = lw_zthr_infty_subty-infty.
lw_change_pointers-tabkey+16(4) = lw_zthr_infty_subty-subty.
lw_change_pointers-tabkey+20(8) = lc_begda.
APPEND lw_change_pointers TO change_pointers.
ENDIF. " IF lw_changed_objects-objtyp EQ lc_p.
ENDIF. " IF sy-sybrc NE 0.
ENDLOOP. " LOOP AT lt_zthr_infty_subty INTO..
ENDLOOP. " LOOP AT lt_groups INTO lw_groups.
ENDAT. " AT NEW objid.
ENDLOOP. " LOOP AT lt_changed_objects INTO lw_changed_objects.
ENDIF. " IF sy-subrc EQ 0.
ENDIF. " IF NOT lt_dist_infty_subty[] IS INITIAL.
ENDMETHOD.
But make sure you maintained remaining infotypes in distribution model. I have created table zthr_infty_subty twhere I am keeping track of all infotype and subtype for which I have to send a data.. You can hardcode values in u r program if you want / if you know the all infotype for which you have to send data.
if you still have any doubt / issues let me know your email id will mail you badi-code.
Cheers,
Nilesh -
I want to know about change pointers generally we have C,R,N change pointers
I want to know about change pointers generally we have C,R,N change pointers
where they are configuredIHi Virender,
I don´t think you can create new methods.
There are 4 methods:
N – New order created [New]
C – Order changed [Changed]
D – Order deleted or partially deleted [Delete]
R – Complete order deleted [Removed]
Please read the following document about Change Pointer:
Processing Change Pointers - Integration via APO Core Interface (CIF) - SAP Library
Read SAP note about CIF and Change Pointer administration.
563806
- FAQ: APO CIF
Kind Regards,
Mariano
Maybe you are looking for
-
I have set all the preferences to sync. During a sync it will indicate it is syncing the calendar but nothing shows up. No problem with the contacts. In one help article states: A dialog appears, telling you that a program is trying to access data fr
-
How can i use 2 mice on my mac - so kids can play 2 player games at once?
How can I set up 2 mice on my Mac - so kids can play a 2 player computer game together?
-
How to register as an Apple affiliate?
I have followed http://www.apple.com/itunes/affiliates/resources/documentation/itunes-app-store- affiliate-program.html and registered on Eroupe Trade Doubler (Russia) affiliate programm. But I don't know how to proceed further. What should be done n
-
How to install gcc and its related packages?
In Debian, we can install a virtual package build-essential which relys on packages like gcc and libc6-dev to bulid a base development environment. If I want to compile the source codes in Arch Linux , or compile my codes, which packages should i ins
-
DefaultListModel and setElementAt()
I am pulling objects out of a vector and inserting them into a DefaultListModel within a JList. I want to be able to replace what is in the index already (or just add it if nothing is there). Problem is, unless I define a size for the DefaultListMode