‎2010 Jun 29 11:09 AM
Hi All,
I have a requirement to send infotype information (PA0000,PA0001......etc) to a third party system.
The extract ABAP program should have the ability to provide a full snapshot of HR data in a Full Load or any changes to the extracted HR data in a Delta Load.
The delta load should be a hourly and daily..The proxy interface concept which we may need to use it.
How to handle delta changes for hourly and daily..what methods we need to use?
How to design this requirement.
Thanks,
Chandu
‎2010 Jun 30 7:03 PM
Hi,
You can try with cluster table. Usually when we change any infotype data then it should store all those data in cluster table PCL4 with date and time stamp. From here you can get all those data.
Sample Code>>>>>>>>>>>>>>>>>>>>>>>
TYPES: BEGIN OF ty_pcl4,
client TYPE mandt, "Client
relid TYPE relid_pcl4, " Area ID in import/export database PCL4
srtfd TYPE pclkey, " PCLx key
srtf2 TYPE pclsrtfd, "Sort field for PCLx (dup.key)
histo TYPE histo, " Historical Record Flag
aedtm TYPE aedat, " Changed On
uname TYPE uname, "User Name
pgmid TYPE old_prog, "ABAP: Program Name
versn TYPE pvrsn, "Version in cluster files
clustr TYPE pclclustr, "Cluster for PCLx
clustd TYPE pcldata,
END OF ty_pcl4,
ty_t_pcl4 TYPE STANDARD TABLE OF ty_pcl4.
TYPES: BEGIN OF ty_lcl4,
relid TYPE relid_pcl4, "Area ID in import/export database PCL4
tclas TYPE tclas, "Transaction Class for Data Retention
pernr TYPE pernr_d, "Personnel Number
infty TYPE infty, "Infotype
bdate TYPE datum, "Date
btime TYPE uzeit, "Time
seqnr TYPE seqn4, "Sequential number
uname TYPE uname, "User Name
massn TYPE massn, "Action Type
massg TYPE massg, "Reason for Action
archiv TYPE admi_run_d, "Archiving Session Number
END OF ty_lcl4,
ty_t_lcl4 TYPE STANDARD TABLE OF ty_lcl4.
DATA: i_pcl4 TYPE ty_t_pcl4,
wa_pcl4 TYPE ty_pcl4.
DATA: i_lcl4 TYPE ty_t_lcl4,
wa_lcl4 TYPE ty_lcl4.
DATA BEGIN OF lo-key.
INCLUDE STRUCTURE pc400.
DATA END OF lo-key.
DATA BEGIN OF sh-key.
INCLUDE STRUCTURE pc401.
DATA END OF sh-key.
DATA:v_uname TYPE pcl4-uname.
DATA: v_line TYPE i.
INCLUDE rpcbdt00.
SELECTION-SCREEN BEGIN OF BLOCK block_01 WITH FRAME TITLE text-000.
SELECT-OPTIONS: s_uname FOR v_uname.
SELECTION-SCREEN END OF BLOCK block_01.
START-OF-SELECTION.
SELECT
client
relid
srtfd
srtf2
histo
aedtm
uname
pgmid
versn
clustr clustd INTO TABLE i_pcl4
FROM pcl4 WHERE relid EQ 'LA'
AND srtfd = 'A000000860041200903300527320001'
AND srtf2 EQ '00'
AND uname IN s_uname.
LOOP AT i_pcl4 INTO wa_pcl4.
MOVE wa_pcl4-srtfd TO lo-key.
import header
belege
FROM DATABASE pcl4(LA)
id lo-key.
MOVE: lo-key-tclas TO wa_lcl4-tclas,
lo-key-pernr TO wa_lcl4-pernr,
lo-key-infty TO wa_lcl4-infty,
lo-key-bdate TO wa_lcl4-bdate,
lo-key-btime TO wa_lcl4-btime,
lo-key-seqnr TO wa_lcl4-seqnr.
MOVE: wa_pcl4-relid TO wa_lcl4-relid,
wa_pcl4-uname TO wa_lcl4-uname.
APPEND wa_lcl4 TO i_lcl4.
CLEAR wa_lcl4.
ENDLOOP.
END-OF-SELECTION.
WRITE: / 'TCLAS' COLOR 3,
11 'DATE' COLOR 3,
22 'TIME' COLOR 3,
31 'SEQNR' COLOR 3,
38 'PERNR' COLOR 3,
48 'INFTY' COLOR 3,
55 'RELID' COLOR 3,
62 'UNAME' COLOR 3.
SORT i_lcl4 BY bdate DESCENDING.
LOOP AT i_lcl4 INTO wa_lcl4.
WRITE: /2 wa_lcl4-tclas,
8 wa_lcl4-bdate,
20 wa_lcl4-btime,
31 wa_lcl4-seqnr,
37 wa_lcl4-pernr,
48 wa_lcl4-infty,
57 wa_lcl4-relid,
62 wa_lcl4-uname.
CLEAR wa_lcl4.
ENDLOOP.
DESCRIBE TABLE i_lcl4 LINES v_line.
SKIP 1.
WRITE : 'Total No of Records',
v_line.
Mrinmoy
‎2010 Jun 29 12:20 PM
Chandu,
you need to get all the pernr from PA0000 and store in some internal table.loop thru those pernr and collect all the data from all infotypes and store it in internal table for intial load
for daily delta loads you can check the AEDTM field in every infotype and collect the changed data
Thanks
Bala Duvvuri
‎2010 Jun 30 5:27 AM
One more thing,check for ALE/IDOC :
Change pointer concept.
Standard message type are available for capturing the master data change - HRMD_A.
Configuraton related material you can search SDN .Lot of things are available.
PFAL/BD21 is used to push it.
Thanks
‎2010 Jun 30 7:03 PM
Hi,
You can try with cluster table. Usually when we change any infotype data then it should store all those data in cluster table PCL4 with date and time stamp. From here you can get all those data.
Sample Code>>>>>>>>>>>>>>>>>>>>>>>
TYPES: BEGIN OF ty_pcl4,
client TYPE mandt, "Client
relid TYPE relid_pcl4, " Area ID in import/export database PCL4
srtfd TYPE pclkey, " PCLx key
srtf2 TYPE pclsrtfd, "Sort field for PCLx (dup.key)
histo TYPE histo, " Historical Record Flag
aedtm TYPE aedat, " Changed On
uname TYPE uname, "User Name
pgmid TYPE old_prog, "ABAP: Program Name
versn TYPE pvrsn, "Version in cluster files
clustr TYPE pclclustr, "Cluster for PCLx
clustd TYPE pcldata,
END OF ty_pcl4,
ty_t_pcl4 TYPE STANDARD TABLE OF ty_pcl4.
TYPES: BEGIN OF ty_lcl4,
relid TYPE relid_pcl4, "Area ID in import/export database PCL4
tclas TYPE tclas, "Transaction Class for Data Retention
pernr TYPE pernr_d, "Personnel Number
infty TYPE infty, "Infotype
bdate TYPE datum, "Date
btime TYPE uzeit, "Time
seqnr TYPE seqn4, "Sequential number
uname TYPE uname, "User Name
massn TYPE massn, "Action Type
massg TYPE massg, "Reason for Action
archiv TYPE admi_run_d, "Archiving Session Number
END OF ty_lcl4,
ty_t_lcl4 TYPE STANDARD TABLE OF ty_lcl4.
DATA: i_pcl4 TYPE ty_t_pcl4,
wa_pcl4 TYPE ty_pcl4.
DATA: i_lcl4 TYPE ty_t_lcl4,
wa_lcl4 TYPE ty_lcl4.
DATA BEGIN OF lo-key.
INCLUDE STRUCTURE pc400.
DATA END OF lo-key.
DATA BEGIN OF sh-key.
INCLUDE STRUCTURE pc401.
DATA END OF sh-key.
DATA:v_uname TYPE pcl4-uname.
DATA: v_line TYPE i.
INCLUDE rpcbdt00.
SELECTION-SCREEN BEGIN OF BLOCK block_01 WITH FRAME TITLE text-000.
SELECT-OPTIONS: s_uname FOR v_uname.
SELECTION-SCREEN END OF BLOCK block_01.
START-OF-SELECTION.
SELECT
client
relid
srtfd
srtf2
histo
aedtm
uname
pgmid
versn
clustr clustd INTO TABLE i_pcl4
FROM pcl4 WHERE relid EQ 'LA'
AND srtfd = 'A000000860041200903300527320001'
AND srtf2 EQ '00'
AND uname IN s_uname.
LOOP AT i_pcl4 INTO wa_pcl4.
MOVE wa_pcl4-srtfd TO lo-key.
import header
belege
FROM DATABASE pcl4(LA)
id lo-key.
MOVE: lo-key-tclas TO wa_lcl4-tclas,
lo-key-pernr TO wa_lcl4-pernr,
lo-key-infty TO wa_lcl4-infty,
lo-key-bdate TO wa_lcl4-bdate,
lo-key-btime TO wa_lcl4-btime,
lo-key-seqnr TO wa_lcl4-seqnr.
MOVE: wa_pcl4-relid TO wa_lcl4-relid,
wa_pcl4-uname TO wa_lcl4-uname.
APPEND wa_lcl4 TO i_lcl4.
CLEAR wa_lcl4.
ENDLOOP.
END-OF-SELECTION.
WRITE: / 'TCLAS' COLOR 3,
11 'DATE' COLOR 3,
22 'TIME' COLOR 3,
31 'SEQNR' COLOR 3,
38 'PERNR' COLOR 3,
48 'INFTY' COLOR 3,
55 'RELID' COLOR 3,
62 'UNAME' COLOR 3.
SORT i_lcl4 BY bdate DESCENDING.
LOOP AT i_lcl4 INTO wa_lcl4.
WRITE: /2 wa_lcl4-tclas,
8 wa_lcl4-bdate,
20 wa_lcl4-btime,
31 wa_lcl4-seqnr,
37 wa_lcl4-pernr,
48 wa_lcl4-infty,
57 wa_lcl4-relid,
62 wa_lcl4-uname.
CLEAR wa_lcl4.
ENDLOOP.
DESCRIBE TABLE i_lcl4 LINES v_line.
SKIP 1.
WRITE : 'Total No of Records',
v_line.
Mrinmoy