CDHDR table - ObjectID
Hi all,
I need to know what is the field ObjectID in table CDHDR for the cases where OBJECTCLAS = ADRESSE.
I have some kind of this number 'SD019000030905', but I can not recognize what this is..
Even using table CDPOS I am not able to know what is this..
Thanks a lot,
Best regards
in SD019000030905, 9000030905 is the address number in ADRC
Similar Messages
-
Hi all,
I am developing a report for which I am fetching fields from CDPOS & CDHDR tables (both r cluster tables). when i run st05, it fetches values from a cluster table CDCLS which takes most of the database time.
Is there any view for CDPOS & CDHDR tables?
How to find the views for cluster tables?
Thanx in advance.
Vijay.hi,
check this code,
here i used function module to get details of cdhdr,cdpos.
TABLES : MARC.
DATA :BEGIN OF GI_MARC OCCURS 0,
MATNR LIKE MARC-MATNR,
WERKS LIKE MARC-WERKS,
DISPO LIKE MARC-DISPO,
END OF GI_MARC.
DATA : CHAR TYPE I,
COUNT TYPE I,
VAR TYPE I.
DATA : BEGIN OF GI_FINAL OCCURS 2000,
MATNR LIKE MARC-MATNR,
DISPO LIKE MARC-DISPO,
USERNAME LIKE CDHDR-USERNAME,
UDATE LIKE CDHDR-UDATE,
UTIME LIKE CDHDR-UTIME,
TCODE LIKE CDHDR-TCODE,
TABNAME LIKE CDPOS-TABNAME,
TABKEY LIKE CDPOS-TABKEY,
FNAME LIKE CDPOS-FNAME,
VALUE_NEW LIKE CDPOS-VALUE_NEW,
VALUE_OLD LIKE CDPOS-VALUE_OLD,
CHANGENR LIKE CDHDR-CHANGENR,
END OF GI_FINAL.
DATA : MATNR LIKE MARC-MATNR,
DISPO LIKE MARC-DISPO,
USERNAME1 LIKE CDHDR-USERNAME,
UDATE1 LIKE CDHDR-UDATE,
UTIME LIKE CDHDR-UTIME,
TCODE LIKE CDHDR-TCODE,
CHANGENR LIKE CDHDR-CHANGENR.
DATA : GI_CDHDR LIKE CDHDR OCCURS 0 WITH HEADER LINE.
DATA : GI_CDPOS LIKE CDPOS OCCURS 0 WITH HEADER LINE.
DATA : OBJECTCLAS LIKE CDHDR-OBJECTCLAS VALUE 'MATERIAL',
OBJECTID LIKE CDHDR-OBJECTID,
USERNAME LIKE CDHDR-USERNAME VALUE 'RSS-SPE',
UDATE LIKE CDHDR-UDATE VALUE '20070101',
CHANGE_IND LIKE CDHDR-CHANGE_IND VALUE 'U'.
type-pools: slis.
data: gt_slis_fcat type slis_t_fieldcat_alv.
data: gt_fieldcat type slis_t_fieldcat_alv.
*data: gt_fieldcatall type slis_t_fieldcat_alv.
data: g_repid like sy-repid.
data: gs_layout type slis_layout_alv.
gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-110.
SELECT-OPTIONS : P_DISPO FOR MARC-DISPO.
SELECT-OPTIONS : RECORDS FOR CHAR.
SELECTION-SCREEN : END OF BLOCK B1.
START-OF-SELECTION.
perform process_data.
perform f_fieldcat_init using gt_fieldcat[].
perform alv_display tables gi_final using gt_fieldcat[].
form process_data.
SELECT MATNR WERKS DISPO FROM MARC INTO TABLE GI_MARC
WHERE DISPO IN P_DISPO
AND WERKS = '1011'." Becoz we hav to chk the
the changes made in the material while extendin tht matrl frm 1011 to
*other plant.
IF NOT GI_MARC[] IS INITIAL.
IF NOT RECORDS-LOW IS INITIAL .
IF NOT RECORDS-HIGH IS INITIAL.
DESCRIBE TABLE GI_MARC LINES COUNT.
IF RECORDS-HIGH < COUNT.
DELETE GI_MARC FROM RECORDS-HIGH TO COUNT.
ENDIF.
IF RECORDS-LOW <> 1.
IF RECORDS-LOW <> 0.
DELETE GI_MARC FROM 1 TO RECORDS-LOW.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
LOOP AT GI_MARC.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = GI_MARC-MATNR
IMPORTING
OUTPUT = GI_MARC-MATNR
EXCEPTIONS
LENGTH_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
OBJECTID = GI_MARC-MATNR .
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
EXPORTING
ARCHIVE_HANDLE = 0
DATE_OF_CHANGE = UDATE
OBJECTCLASS = OBJECTCLAS
OBJECTID = OBJECTID
TIME_OF_CHANGE = '000000'
USERNAME = USERNAME
LOCAL_TIME = ' '
DATE_UNTIL = '99991231'
TIME_UNTIL = '235959'
TABLES
I_CDHDR = GI_CDHDR
EXCEPTIONS
NO_POSITION_FOUND = 1
WRONG_ACCESS_TO_ARCHIVE = 2
TIME_ZONE_CONVERSION_ERROR = 3
OTHERS = 4
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'ARCH_ANA_PROGRESS_INDICATOR'
EXPORTING
TEXT = 'Processing'.
IF NOT GI_CDHDR[] IS INITIAL.
LOOP AT GI_CDHDR.
MOVE GI_MARC-MATNR TO GI_FINAL-MATNR.
MOVE GI_MARC-DISPO TO GI_FINAL-DISPO.
MOVE GI_CDHDR-USERNAME TO GI_FINAL-USERNAME.
MOVE GI_CDHDR-UDATE TO GI_FINAL-UDATE.
MOVE GI_CDHDR-TCODE TO GI_FINAL-TCODE.
MOVE GI_CDHDR-CHANGENR TO GI_FINAL-CHANGENR.
VAR = 1.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = GI_FINAL-MATNR
IMPORTING
OUTPUT = GI_FINAL-MATNR
EXCEPTIONS
LENGTH_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
ENDIF.
OBJECTID = GI_FINAL-MATNR ."to ensure that objid is in proper
*format
SELECT *
FROM CDPOS
INTO TABLE GI_CDPOS
PACKAGE SIZE 100
FOR ALL ENTRIES IN GI_cdhdr
WHERE OBJECTID = OBJECTID
AND CHANGENR = GI_CDHDR-CHANGENR
AND OBJECTCLAS = OBJECTCLAS
AND CHNGIND = CHANGE_IND." only those values will b
*takn which have been modified nd nt created
IF SY-SUBRC = 0.
LOOP AT GI_CDPOS.
MOVE GI_MARC-MATNR TO GI_FINAL-MATNR.
MOVE GI_MARC-DISPO TO GI_FINAL-DISPO.
MOVE GI_CDHDR-USERNAME TO GI_FINAL-USERNAME.
MOVE GI_CDHDR-UDATE TO GI_FINAL-UDATE.
MOVE GI_CDHDR-TCODE TO GI_FINAL-TCODE.
MOVE GI_CDHDR-CHANGENR TO GI_FINAL-CHANGENR.
MOVE GI_CDPOS-TABNAME TO GI_FINAL-TABNAME.
MOVE GI_CDPOS-TABKEY TO GI_FINAL-TABKEY.
MOVE GI_CDPOS-FNAME TO GI_FINAL-FNAME.
MOVE GI_CDPOS-VALUE_NEW TO GI_FINAL-VALUE_NEW.
MOVE GI_CDPOS-VALUE_OLD TO GI_FINAL-VALUE_OLD.
APPEND GI_FINAL.
CLEAR GI_FINAL.
ENDIF.
VAR = VAR + 1.
ENDSELECT.
ENDLOOP.
ENDIF.
ENDLOOP.
CALL FUNCTION 'ARCH_ANA_PROGRESS_INDICATOR'
EXPORTING
TEXT = 'Processing'.
ENDIF.
ENDLOOP.
endform.
form f_fieldcat_init using lt_fieldcat type slis_t_fieldcat_alv.
data: ls_fieldcat type slis_fieldcat_alv.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-seltext_l = 'Material number'.
ls_fieldcat-tabname = 'GI_final'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'DISPO'.
ls_fieldcat-seltext_l = 'mrp controller'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'USERNAME'.
ls_fieldcat-seltext_l = 'Username'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'CHANGENR'.
ls_fieldcat-seltext_l = 'Change Number'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'UDATE'.
ls_fieldcat-seltext_l = 'modified date'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'UTIME'.
ls_fieldcat-seltext_l = 'MODIFIED TIME'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'UDATE'.
ls_fieldcat-seltext_l = 'MODIFIED DATE'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'TCODE'.
ls_fieldcat-seltext_l = 'TRANSACTION CODE'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'TABNAME'.
ls_fieldcat-seltext_l = 'TABLE NAME'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'TABKEY'.
ls_fieldcat-seltext_l = 'TABLE KEY'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'FNAME'.
ls_fieldcat-seltext_l = 'FNAME'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'FVALUE'.
ls_fieldcat-seltext_l = 'FVALUE'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'VALUE_NEW'.
ls_fieldcat-seltext_l = 'NEW VALUE'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'VALUE_OLD'.
ls_fieldcat-seltext_l = 'OLD VALUE'.
append ls_fieldcat to lt_fieldcat.
endform. " f_fieldcat_init
form alv_display tables gi_final using gt_fieldcat .
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = ' Material list '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
is_layout = gs_layout
it_fieldcat = gt_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = gi_final
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform.
regards
siva -
Most recent date (UDATE) from CDHDR table based on CDPOS
Hi,
I am working on one object where i stuck with one issue. The requirement is I have to retrieve the most recent date from CDHDR table based on CHANGENR in CDPOS table. Where i am doing FOR ALL ENTRIES on CDPOS table to get the MAX( date )and i got the error, that aggregate functions are not allowed except COUNT( * ) with for all entries.
Any thread which can solve this issue would help aswel.
Please guide me how to achieve this. <removed>
Edited by: Thomas Zloch on Mar 13, 2010 9:10 PMHi Li,
Thats was really helpful information , infact my requirement is same as what you said. I even checked in the table entries there is only one changenumber.
You said we can take the first record, i even did the same. But for TABNAME I have to pass 3 table name 'LFA1', 'LFB1' and 'LFM1'. For FNAME 'LOEVM', 'SPERR'. I have written the code as below.
SELECT objectclas
objectid
changenr
FROM cdpos
INTO TABLE i_cdpos_a1
FOR ALL ENTRIES IN i_lfabm1
WHERE objectclas = c_kred "KRED
AND objectid EQ i_lfabm1-objectid "Lifnr
AND ( tabname EQ c_lfa1 OR tabname EQ c_lfb1 OR tabname EQ c_lfm1 ) "LFA1, LFB1 and LFM1
AND ( fname EQ c_loevm OR fname OR fname EQ c_sperr ) "LOEVM, SPERR
AND value_new EQ c_x.
IF sy-subrc EQ c_0.
IF i_cdpos_a1[] IS NOT INITIAL.
Select UDATE from CDHDR based on CHANGENR in CDPOS.
SELECT objectclas
objectid
changenr
udate
FROM cdhdr
INTO TABLE i_cdhdr_a1
FOR ALL ENTRIES IN i_cdpos_a1
WHERE objectclas = c_kred "KRED
AND objectid EQ i_lfabm1-objectid "Lifnr
AND changenr EQ i_cdpos_a1-changenr. "(this is coming from CDPOS above selection)
Here i got UDATE which have all the dates from 3 tables. I have to display in the output the field value (X) of LOEVM and UDATE for LFA1, SPERR value and UDATE for LFA1.Same way for other two tables, I have to display the UDATE and its field value (X). Where UDATE should be most recent date respectively.
How can I populate the Recent date (UDATE) from one interal table for indvidual field values and table names. -
Joining vbak to cdhdr table for document changes
Hi Expert
I am hanging for a week in this project please need some advice
I want to join vbak table with cdhdr and select
vbak.vkbur (plant) and want to show that vkbur in the internal table of it_cdhdr
so as to select only those plant belong to vkbur so how can I join base on the below coding................
REPORT ZCHGDOC
NO STANDARD PAGE HEADING LINE-SIZE 120.
WRITE: sy-title, 40 'Page', sy-pagno.
ULINE.
TABLES: CDHDR,
CDPOS,
t001w,
"VKBUR,
"VBELN,
VBAK,
VBAP.
SELECTION-SCREEN BEGIN OF BLOCK DOCUMENT WITH FRAME TITLE TEXT-701.
SELECTION-SCREEN END OF BLOCK DOCUMENT.
SELECT-OPTIONS:
V1 FOR VBAK-VKBUR,
S_WERKS for T001W-werks,
objectid for cdhdr-objectid,
udate for cdhdr-udate.
PARAMETER: USERNAME LIKE CDHDR-USERNAME.
DATA: BEGIN OF IT_VBAP OCCURS 0,
OBJECTCLAS LIKE CDHDR-OBJECTCLAS,
OBJECTID LIKE CDHDR-OBJECTID,
VBELN LIKE VBAP-VBELN,
END OF IT_VBAP.
DATA: BEGIN OF IT_CDHDR OCCURS 0,
OBJECTCLAS LIKE CDHDR-OBJECTCLAS,
OBJECTID LIKE CDHDR-OBJECTID,
CHANGENR LIKE CDHDR-CHANGENR,
USERNAME LIKE CDHDR-USERNAME,
UDATE LIKE CDHDR-UDATE,
UTIME LIKE CDHDR-UTIME,
FNAME LIKE CDPOS-FNAME,
TABNAME LIKE CDPOS-TABNAME,
TABKEY LIKE CDPOS-TABKEY,
VALUE_NEW LIKE CDPOS-VALUE_NEW,
VALUE_OLD LIKE CDPOS-VALUE_OLD,
END OF IT_CDHDR.
DATA: WA LIKE LINE OF IT_CDHDR.
DATA: WA LIKE LINE OF IT_CDPOS.
DATA: BEGIN OF IT_CDPOS OCCURS 0,
OBJECTCLAS LIKE CDHDR-OBJECTCLAS,
OBJECTID LIKE CDHDR-OBJECTID,
CHANGENR LIKE CDHDR-CHANGENR,
TABNAME LIKE CDPOS-TABNAME,
TABKEY LIKE CDPOS-TABKEY,
FNAME LIKE CDPOS-FNAME,
VALUE_NEW LIKE CDPOS-VALUE_NEW,
VALUE_OLD LIKE CDPOS-VALUE_OLD,
END OF IT_CDPOS.
Move-corresponding it_cdhdr to wa.
Move-corresponding it_cdpos to wa.
SELECT OBJECTCLAS
OBJECTID
CHANGENR
USERNAME
UDATE
UTIME FROM CDHDR
INTO CORRESPONDING FIELDS OF TABLE IT_CDHDR
WHERE OBJECTCLAS = 'VERKBELEG' or
objectclas = 'BETRIEB'
ORDER BY UDATE.
WHERE OBJECTCLAS = 'VERKBELEG'
OR OBJECTCLAS = 'BETRIEB' ORDER BY UDATE.
Filter data based upon Plant selection criteria.
IF NOT S_WERKS[] IS INITIAL.
DELETE IT_CDHDR WHERE NOT OBJECTID IN S_WERKS.
ENDIF.
IF IT_CDHDR[] IS NOT INITIAL.
SELECT OBJECTCLAS
OBJECTID
CHANGENR
VALUE_NEW
VALUE_OLD
FNAME
TABNAME
TABKEY
FROM CDPOS
INTO CORRESPONDING FIELDS OF TABLE IT_CDPOS
FOR ALL ENTRIES IN IT_CDHDR
WHERE
OBJECTCLAS = IT_CDHDR-OBJECTCLAS
AND OBJECTID = IT_CDHDR-OBJECTID
AND CHANGENR = IT_CDHDR-CHANGENR.
"or tabname = 'VBAP'.
SORT IT_CDPOS BY OBJECTCLAS OBJECTID CHANGENR.
ENDIF.
Add tables CDPOS DATA TO CDHDR.
DATA: INDEX TYPE i.
LOOP AT IT_CDHDR.
INDEX = SY-TABIX.
READ TABLE IT_CDPOS WITH KEY OBJECTCLAS = IT_CDHDR-OBJECTCLAS
OBJECTID = IT_CDHDR-OBJECTID
CHANGENR = IT_CDHDR-CHANGENR BINARY SEARCH.
IF SY-SUBRC = 0.
IT_CDHDR-VALUE_NEW = IT_CDPOS-VALUE_NEW.
IT_CDHDR-VALUE_OLD = IT_CDPOS-VALUE_OLD.
MODIFY IT_CDHDR INDEX index TRANSPORTING value_new value_old.
ENDIF.
WRITE:/ SY-DATUM,SY-UZEIT,
50 'DOCUMENT CHANGE REPORT',
80 'Page', SY-PAGNO,
" WRITE: / SY-REPID
50 'DETAIL REPORT BY PLANT '.
SKIP.
ULINE.
*& T O P - O F - P A G E *
WRITE:/ 'UDATE:' ,SY-DATUM.
FORMAT COLOR 4 INTENSIFIED on.
Write: /35 ' DOCUMENT CHANGES REPORT '.
WRITE: /5 'DOCUMENT-NO'.
20 'TABNAME', 30 'TEXT_CASE', 50 'FNAME'.
WRITE: /5 'DATE', 20 'FNAME', 45 'CHANGE-NO',65 'OLD-VALUE',80 'NEW-VALUE',95 'USER-NAME'.
ULINE.
LOOP AT IT_CDHDR INTO WA.
on change of wa-objectid.
Write: / wa-objectid UNDER'DOCUMENT-NO' ."color col_key.
ENDON.
ULINE.
" CDPOS-tabname UNDER'TABNAME', CDPOS-TEXT_CASE UNDER'TEXT_CASE',CDPOS-fname UNDER'FNAME'. "color col_key ,
write: / wa-udate dd/mm/yyyy under'DATE' NO-GAP,wa-fname under'FNAME' NO-GAP,wa-changenr under 'CHANGE-NO',
wa-value_old under'OLD-VALUE' LEFT-JUSTIFIED NO-GAP,
wa-value_new under'NEW-VALUE' LEFT-JUSTIFIED NO-GAP ,wa-username under'USER-NAME' NO-GAP.
ENDON.
Move-corresponding it_cdhdr to wa.
*Write: / wa-objectid UNDER'DOCUMENT-NO' "color col_key.
*" CDPOS-tabname UNDER'TABNAME', CDPOS-TEXT_CASE UNDER'TEXT_CASE',CDPOS-fname UNDER'FNAME'. "color col_key ,
*write: / wa-udate dd/mm/yyyy under'DATE' NO-GAP,wa-utime under'TIME' NO-GAP,wa-changenr under 'CHANGE-NO',
ltrim(wa-value_old) under'OLD-VALUE' NO-GAP,
*wa-value_new under'NEW-VALUE' NO-GAP ,wa-username under'USER-NAME' NO-GAP.
ENDLOOP.
ENDLOOP.Hai everybody.
I am new to this forum. i got a job in abap recently. The below is my requirement.I want solution for this one. Anybody plz help me.
The change logs were captured in DBTABLOG for table ZWPRFRUND (in transaction ZWPG).
The only report which is currently used to get the change logs is RSVTPROT
Now my requirement is,
we need to display the change logs in the form of ALV.
We should divert the changes to CDHDR table instead of DBTABLOG, then we can use the RSSCD100 to display change logs.
The Important items for the change LOG needed in case of changes to table in ZWPG are,DATE ,TIME,USER,FIRST NAME,FILED NAME,OLD VALUE,NEW VALUE
The above fields need to be displayed in the grid. In the above list FIELD NAME denotes any field of the table in the transaction in ZWPG
Thanks & Regards,
Sujatha.T. -
Hi All,
I have a Z table of which I change the primary key values though a Z program. The object id field in CDHDR table is a combination of the key fields in my Z table. I have made some changes to the values of these key fields in this Z table.But I dont see the same reflected in CDHDR. I have created change document for Z table through SCDO transaction and generated a function module too. But I am not sure where to insert this function module and how to go further so that I can find the value in CDHDR.
Please assist.
Thanks.
VineetaThe following function module is used to extract values from the CDHDR table.
* Form GET_CHANGEDOCUMENT_HEADER
* Description :
* Get Change Document Header data
* -->P_I_T_CDHDR Change Document Header
* -->P_I_S_VBAK_VBELN Order
form get_changedocument.
* Get Change Document Header data
clear g_objectclass.
g_objectclass = c_verkbeleg. " OBJECT CLASS: 'VERKBELEG'
g_objectid = is_vbak_vbap-vbeln. " OBJECTID : current Sales Order
call function 'CHANGEDOCUMENT_READ'
exporting
objectclass = g_objectclass
objectid = g_objectid
tables
editpos = i_cdpos
exceptions
no_position_found = 1
wrong_access_to_archive = 2
time_zone_conversion_error = 3
others = 4.
* If records are returned from CDHDR
if sy-subrc eq 0.
* Sort by latest change number
sort i_cdpos by changenr descending.
endif.
endform. " GET_CHANGEDOCUMENT_HEADER
But I really don't think that the table registers changes done to any Z object. Try this anyways.
Reward if useful,
Thanks,
Rahul -
Sequential access on CDHDR table
How to improve this query on CDHDR which leads to Sequential access on CDHDR table so that it can improve performance, or is there any other means which i can achieve better performance on CDHDR?
the query as follows:
SELECT objectclas objectid changenr FROM cdhdr INTO TABLE it_cdhdr
WHERE changenr > changenr1 AND ( objectclas = 'VERKBELEG' ).
Thnaks in Advance
RamadaHi Ramada!
Your 2nd index (with change number) has no MANDT field - maybe this is the reason it's not used. Also a combination of change number and object class can be better; you might give it a try.
But in general there is no good way to select the CDHDR for changes done since xxx (change number or date / time).
Of course it's database optimizer decision, but likely you and up all the time with sequential read accesses -> it will be slow in production.
So I gave you a hint how to change the program design a little bit - from business process point of view, this shouldn't be a difference. But if you change from CDHDR to BDCP(S), then you can select changes much faster (usually in a few seconds, even for >100.000 entries).
Regards,
Christian -
Create a new entry for zfield in the CDHDR table when sales order is create
Hi,
We have some custom field added to table VBAP and that field need is updated thorugh transaction VA01 or VA02.
The Function poeple is asking to Update the CDHDR table for the ztable when ever the field is updated ,and they want
the changes to appear in the sales order changes Log.
PrabhudasProblem solved.
By using the ..
Used this FM "VERKBELEG_WRITE_DOCUMENT" in MV45AFZZ in exit...DOCUMENT_SAVE.
by passign the only VBAK and VBAP table structure of XVBAP and YVABP and field name as ZZFIELD.
Prabhudas. -
How to get the object class field value in CDHDR table for vendor
hi
how to get the object class field value in CDHDR table for vendorTry KRED/KRED_N as object class in CDHDR for Vendor.
-
How to Divert the changes to cdhdr table instead of dbtablog?
Hai everybody.
I am new to this forum. i got a job in abap recently. The below is my requirement.I want solution for this one. Anybody plz help me.
I am having ztransaction.
The change logs already were captured in DBTABLOG for table ZWPRFRUND (in transaction ZWPG).
The only report which is currently used to get the change logs is RSVTPROT
Now my requirement is,
we need to display the change logs in the form of ALV.
We should divert the changes to CDHDR table instead of DBTABLOG, then we can use the RSSCD100 to display change logs.
The Important items for the change LOG needed in case of changes to table in ZWPG are,DATE ,TIME,USER,FIRST NAME,FILED NAME,OLD VALUE,NEW VALUE
The above fields need to be displayed in the grid. In the above list FIELD NAME denotes any field of the table in the transaction in ZWPG
Thanks & Regards,
Sujatha.T.Check out my post in this thread:
How to record add-on table change logs?
You need to define a change document type and generate relevant code for this.
Andrew -
CDHDR table is not updated after execution of transaction CK 24
Hi Experts ,
I am Triggering my workflow from for CK 24 transaction based on the change document entry from CDHDR table , once the CK24 transaction executes .
Now the problem is after execution of the CK24 transaction now its not updating the table CDHDR, which was happening before .
Note: No customization has been made which can affect this updation .
Can any body please guide me on this , why the standard table is not being updated now with the change document entries .
Regards
SarmisthaYou can use following FMs
CHANGEDOCUMENT_READ_HEADERS Change document: Read change document header
CHANGEDOCUMENT_READ_POSITIONS Change document: Read change document items
IN CDPOS you have to give the same thing as CDHDR. You have to search with the respective Object class and provide the Object Id(Key fields like Document number). Another thing you will also get the change document number from the transaction itself from which you are change the Document.
Thanks
Arghadip -
CDHDR table query taking long time
Hi all,
Select query from CDHDR table is taking long time,in where condition i am giving OBJECTCLASS = 'MAT_FULL' udate = sy-datum and langu = 'EN'.
any suggestion to improve the performance.i want to select all the article which got changed on current date
regards
shibuThis will always be slow for large data volumes, since CDHDR is designed for quick access by object ID (in this case material number), not by date.
I'm afraid you would need to introduce a secondary index on OBJECTCLAS and UDATE, if that query is crucial enough to warrant the additional disk space and processing time taken by the new index.
Greetings
Thomas -
Archiving MM_SPSTOCK Issues with CDHDR Table
We're executing a number of small variants and in some cases it starts to read the CDHDR table sequentially and the job has to be canceled or eventually terminates. Also, in these cases it holds locks and the transaction MIGO fails and batch GR processes terminates. The sequential reading of CDHDR happens if we run one or multiple jobs of MM_SPSTOCK..
Anybody encounter the sequential read of CDHDR and/or the locking issues?
Any help will be appreciated.
Thanks.
SoyabNo I never faced this issue.
Make sure that you always have the most recent OSS notes applied before you start archiving of any archiving object.
For performance issues see OSS Note 548661 - Composite SAP note: Archive object MM_SPSTOCK -
Ship to record not populated in the CDHDR table at the time of creation
HI
I have created the Ship to party in R/3 and automatically i couldnt found the customer number entry with Change object as " I " in the table CDHDR. but ideally all the master data creation entries will be written in the CDHDR table with " I ".
Please help me out here.
Helpful answers will be rewarded.
Regards,
Ram.In that case, try maintaining only the dates in that table and execute. Once the data is populated, ensure that transaction code is XD01 and not XD02. Moreover, I am not sure, system will show the creation time there. May be you can try in KNA1 where also, you can see the creation date but not time.
As an alternative, execute XD02 for that ship to party where from top menu bar, click on Environment => Account changes => All fields. Again double click on "Entries", so that system will display the creation and changes made to that customer with date. Double click on the first record so that system will show when that particular activity was taken place and at what time.
thanks
G. Lakshmipathi -
Change an entry in the CDHDR Table
Hello Everyone,
How can I change an Entry which is present in the CDHDR Table.
I know of the FM ENTRYSHEET_WRITE_DOCUMENT which allows me to
create entries in CDHDR programitically but I am not sure this will help me change the entries.
Thanks for your Help
AshwinThanks for your reply Arun.
I am trying out the FM BAPI_DOCUMENT_CHANGE.
Can you suggest some way of determining the Input parameters for the same. This seems to be a DMS related FM.
My intention of changing the CDHDR Entry is to change the value in the "USERNAME" field of this table.
Thanks and Regards
Ashwin -
Regarding change pointers in CDHDR table.
Hi All
Can we write change pointers in CDHDR table when we change the status of the project (CJ20n).
When I change the status of the project then status of the network is also changed.
Now my requirement is , as soon as the status of the network is changed ,entry should be recorded in to CDHDR.
I am able to record the changes when description or other things of the nework are changed but facing problem for status change.
Can we achieve this if yes then how ?Hi Pranay,
Could you please let me know how you could able to resolve this issue? i am facing same kind of problem
Regards,
M, Manohar
Maybe you are looking for
-
Hi gurus I have done enhancement to populate a new field to the DataSource, then how would i ad this object to the info cube, and shall i delete the data which is already in the info cube. thanx vidhu
-
No syslog after enable ipf in Solaris 10
Hi, As I'm newbie in Solaris, I just configure firewall by using IPF in solaris 10. Firewall is working well except I can't see blocking IP address and port number in syslog. Please let me know how can I see "block in and out" IP address. Jon
-
HT2176 can I run classic in Mac OS X 10.3 Panther?
Can I run classic in a Mac OSX 10.3 Panther?
-
Should i buy he ipod universal dock
should i buy he ipod universal dock, can anyone help me to decide. thanks
-
How to filter 2 Dimension on DS with script code
Hi experts, coming from a discussion: Not possible to filter for more than one dimension in Datasource script filter method? I found necessary to open new discussion. I have the following scenario: I got a pie chart showing indicator for one dimensio