BAPI FM USAGE HELP!

Question:
Hi All,
I'm trying to use a BAPI FM: BAPI_CATIMESHEETMGR_INSERT. Is there any example outthere that I can take a look at on how to use the FM?!? Where can I read more about it?!? The FM module documentation doesn't really give much example.
Really appreciate it!
Answer:
Hi Tjoeng,
here is a piece of code that uses your FM, hope it helps.
FUNCTION Z_TWO_DATA_WEGSCHRIJVEN.
*"----------------------------------------------------------------------
*"*"Lokale interface:
*" IMPORTING
*" VALUE(PERNR) LIKE P0001-PERNR
*" VALUE(DATUMVAN) LIKE SY-DATUM
*" VALUE(DATUMTOT) LIKE SY-DATUM
*" TABLES
*" FOUTTAB STRUCTURE ZFOUTTAB
*" BOEKINGENTAB STRUCTURE ZTABBOEKINGEN
*"----------------------------------------------------------------------
*23456789012345678901234567890
CONSTANTS PROFIEL(0 VALUE 'TWOWEEK'.
DATA: AANTAL_CI TYPE I,
AANTAL_CC TYPE I,
H_LEN TYPE I.
DATA: CI_CATSRECORDS_IN LIKE BAPICATS1 OCCURS 0 WITH HEADER LINE.
DATA: CI_CATSRECORDS_OUT LIKE BAPICATS2 OCCURS 0 WITH HEADER LINE.
DATA: CI_RC LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
DATA: CC_CATSRECORDS_IN LIKE BAPICATS3 OCCURS 0 WITH HEADER LINE.
DATA: CC_CATSRECORDS_OUT LIKE BAPICATS2 OCCURS 0 WITH HEADER LINE.
DATA: CC_EXT_OUT LIKE BAPICATS7 OCCURS 0 WITH HEADER LINE.
DATA: CC_WF LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
DATA: CC_RC LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
DATA: CC_LT LIKE BAPICATS8 OCCURS 0 WITH HEADER LINE.
DATA: H_TESTRUN(1),
H_RELEASE_DATA(1),
H_WORKDATE(10),
H_207,
H_335,
H_EERSTE VALUE 'X'.
CLEAR H_TESTRUN.
CLEAR H_RELEASE_DATA.
REFRESH CI_CATSRECORDS_IN.
CLEAR CI_CATSRECORDS_IN.
REFRESH CC_CATSRECORDS_IN.
CLEAR CC_CATSRECORDS_IN.
AANTAL_CI = 0.
AANTAL_CC = 0.
LOOP AT BOEKINGENTAB.
IF BOEKINGENTAB-NETWERKPLAN CO '0123456789 '.
H_LEN = STRLEN( BOEKINGENTAB-NETWERKPLAN ).
WHILE H_LEN < 12.
SHIFT BOEKINGENTAB-NETWERKPLAN RIGHT BY 1 PLACES.
REPLACE ' ' WITH '0' INTO BOEKINGENTAB-NETWERKPLAN.
H_LEN = STRLEN( BOEKINGENTAB-NETWERKPLAN ).
ENDWHILE.
ENDIF.
IF BOEKINGENTAB-COUNTER_ID IS INITIAL.
CI_CATSRECORDS_IN-WORKDATE = BOEKINGENTAB-WERKDATUM.
CI_CATSRECORDS_IN-EMPLOYEENUMBER = PERNR.
CI_CATSRECORDS_IN-ACTTYPE = BOEKINGENTAB-PRESTATIESOORT.
CI_CATSRECORDS_IN-NETWORK = BOEKINGENTAB-NETWERKPLAN.
CI_CATSRECORDS_IN-ACTIVITY = BOEKINGENTAB-ACTIVITEIT.
CI_CATSRECORDS_IN-WORK_CNTR = BOEKINGENTAB-WERKPLEK.
CI_CATSRECORDS_IN-ABS_ATT_TYPE = BOEKINGENTAB-AAN_AFW.
CI_CATSRECORDS_IN-CATSHOURS = BOEKINGENTAB-UREN.
APPEND CI_CATSRECORDS_IN.
AANTAL_CI = AANTAL_CI + 1.
ELSE.
CC_CATSRECORDS_IN-COUNTER = BOEKINGENTAB-COUNTER_ID.
CC_CATSRECORDS_IN-WORKDATE = BOEKINGENTAB-WERKDATUM.
CC_CATSRECORDS_IN-EMPLOYEENUMBER = PERNR.
CC_CATSRECORDS_IN-ACTTYPE = BOEKINGENTAB-PRESTATIESOORT.
CC_CATSRECORDS_IN-NETWORK = BOEKINGENTAB-NETWERKPLAN.
CC_CATSRECORDS_IN-ACTIVITY = BOEKINGENTAB-ACTIVITEIT.
CC_CATSRECORDS_IN-WORK_CNTR = BOEKINGENTAB-WERKPLEK.
CC_CATSRECORDS_IN-ABS_ATT_TYPE = BOEKINGENTAB-AAN_AFW.
CC_CATSRECORDS_IN-CATSHOURS = BOEKINGENTAB-UREN.
APPEND CC_CATSRECORDS_IN.
AANTAL_CC = AANTAL_CC + 1.
ENDIF.
ENDLOOP.
IF AANTAL_CC GT 0.
H_TESTRUN = 'X'.
H_RELEASE_DATA = 'X'.
CALL FUNCTION 'BAPI_CATIMESHEETMGR_CHANGE'
EXPORTING
PROFILE = PROFIEL
TESTRUN = H_TESTRUN
RELEASE_DATA = H_RELEASE_DATA
* AGENT =
* TEXT_FORMAT_IMP =
TABLES
CATSRECORDS_IN = CC_CATSRECORDS_IN
* EXTENSIONIN =
CATSRECORDS_OUT = CC_CATSRECORDS_OUT
EXTENSIONOUT = CC_EXT_OUT
WORKFLOW_TEXT = CC_WF
RETURN = CC_RC
LONGTEXT = CC_LT.
LOOP AT CC_RC WHERE TYPE EQ 'E'.
ENDLOOP.
IF SY-SUBRC EQ 0.
LOOP AT CC_RC WHERE TYPE EQ 'E'.
FOUTTAB-FOUTCODE = CC_RC-NUMBER.
FOUTTAB-FOUTTYPE = 'E'.
FOUTTAB-FOUTOMSCHRIJVING = CC_RC-MESSAGE.
APPEND FOUTTAB.
ENDLOOP.
ELSE.
LOOP AT CC_RC WHERE ROW GT 0.
READ TABLE CC_CATSRECORDS_IN INDEX CC_RC-ROW.
WRITE CC_CATSRECORDS_IN-WORKDATE TO H_WORKDATE.
FOUTTAB-FOUTCODE = CC_RC-NUMBER.
FOUTTAB-FOUTTYPE = CC_RC-TYPE.
CLEAR FOUTTAB-FOUTOMSCHRIJVING.
CONCATENATE H_WORKDATE CC_RC-MESSAGE
INTO FOUTTAB-FOUTOMSCHRIJVING SEPARATED BY SPACE.
APPEND FOUTTAB.
ENDLOOP.
H_TESTRUN = ''.
H_RELEASE_DATA = ''.
CALL FUNCTION 'BAPI_CATIMESHEETMGR_CHANGE'
EXPORTING
PROFILE = PROFIEL
TESTRUN = H_TESTRUN
RELEASE_DATA = H_RELEASE_DATA
* AGENT =
* TEXT_FORMAT_IMP =
TABLES
CATSRECORDS_IN = CC_CATSRECORDS_IN
* EXTENSIONIN =
CATSRECORDS_OUT = CC_CATSRECORDS_OUT
EXTENSIONOUT = CC_EXT_OUT
WORKFLOW_TEXT = CC_WF
RETURN = CC_RC
LONGTEXT = CC_LT.
LOOP AT CC_RC WHERE ROW GT 0.
READ TABLE CC_CATSRECORDS_IN INDEX CC_RC-ROW.
WRITE CC_CATSRECORDS_IN-WORKDATE TO H_WORKDATE.
FOUTTAB-FOUTCODE = CC_RC-NUMBER.
FOUTTAB-FOUTTYPE = CC_RC-TYPE.
CLEAR FOUTTAB-FOUTOMSCHRIJVING.
CONCATENATE H_WORKDATE CC_RC-MESSAGE
INTO FOUTTAB-FOUTOMSCHRIJVING SEPARATED BY SPACE.
APPEND FOUTTAB.
ENDLOOP.
ENDIF.
ENDIF.
IF AANTAL_CI GT 0.
H_TESTRUN = 'X'.
H_RELEASE_DATA = 'X'.
CALL FUNCTION 'BAPI_CATIMESHEETMGR_INSERT'
EXPORTING
PROFILE = PROFIEL
TESTRUN = H_TESTRUN
RELEASE_DATA = H_RELEASE_DATA
* AGENT =
* TEXT_FORMAT_IMP = 'ITF'
TABLES
CATSRECORDS_IN = CI_CATSRECORDS_IN
* EXTENSIONIN =
CATSRECORDS_OUT = CI_CATSRECORDS_OUT
* EXTENSIONOUT =
* WORKFLOW_TEXT =
RETURN = CI_RC
* LONGTEXT =
.
LOOP AT CI_RC WHERE TYPE EQ 'E'.
ENDLOOP.
IF SY-SUBRC EQ 0.
LOOP AT CI_RC WHERE TYPE EQ 'E'.
FOUTTAB-FOUTCODE = CI_RC-NUMBER.
FOUTTAB-FOUTTYPE = 'E'.
FOUTTAB-FOUTOMSCHRIJVING = CI_RC-MESSAGE.
APPEND FOUTTAB.
ENDLOOP.
ELSE.
LOOP AT CI_RC WHERE ROW GT 0.
READ TABLE CI_CATSRECORDS_IN INDEX CI_RC-ROW.
WRITE CI_CATSRECORDS_IN-WORKDATE TO H_WORKDATE.
FOUTTAB-FOUTCODE = CI_RC-NUMBER.
FOUTTAB-FOUTTYPE = CI_RC-TYPE.
CLEAR FOUTTAB-FOUTOMSCHRIJVING.
CONCATENATE H_WORKDATE CI_RC-MESSAGE
INTO FOUTTAB-FOUTOMSCHRIJVING SEPARATED BY SPACE.
APPEND FOUTTAB.
ENDLOOP.
H_TESTRUN = ''.
H_RELEASE_DATA = ''.
CALL FUNCTION 'BAPI_CATIMESHEETMGR_INSERT'
EXPORTING
PROFILE = PROFIEL
TESTRUN = H_TESTRUN
RELEASE_DATA = H_RELEASE_DATA
* AGENT =
* TEXT_FORMAT_IMP = 'ITF'
TABLES
CATSRECORDS_IN = CI_CATSRECORDS_IN
* EXTENSIONIN =
CATSRECORDS_OUT = CI_CATSRECORDS_OUT
* EXTENSIONOUT =
* WORKFLOW_TEXT =
RETURN = CI_RC
* LONGTEXT =
.
LOOP AT CI_RC WHERE ROW GT 0.
READ TABLE CI_CATSRECORDS_IN INDEX CI_RC-ROW.
WRITE CI_CATSRECORDS_IN-WORKDATE TO H_WORKDATE.
FOUTTAB-FOUTCODE = CI_RC-NUMBER.
FOUTTAB-FOUTTYPE = CI_RC-TYPE.
CLEAR FOUTTAB-FOUTOMSCHRIJVING.
CONCATENATE H_WORKDATE CI_RC-MESSAGE
INTO FOUTTAB-FOUTOMSCHRIJVING SEPARATED BY SPACE.
APPEND FOUTTAB.
ENDLOOP.
ENDIF.
ENDIF.
IF BOEKINGENTAB[] IS INITIAL.
FOUTTAB-FOUTCODE = 000.
FOUTTAB-FOUTTYPE = 'W'.
FOUTTAB-FOUTOMSCHRIJVING = 'Geen boekingen ingevoerd'.
APPEND FOUTTAB.
ENDIF.
CLEAR: H_207, H_335, H_WORKDATE.
LOOP AT FOUTTAB WHERE FOUTTYPE EQ 'E' OR
FOUTTYPE EQ 'A' OR
FOUTTYPE EQ 'I' OR
FOUTTYPE EQ 'W'.
IF FOUTTAB-FOUTCODE = 002 AND
FOUTTAB-FOUTTYPE = 'E' AND
FOUTTAB-FOUTOMSCHRIJVING CS 'geblokkeerd'.
IF H_EERSTE = 'X'.
FOUTTAB-FOUTOMSCHRIJVING =
'Het is momenteel tijdelijk niet mogelijk om de gegevens op te slaan.'.
MODIFY FOUTTAB.
FOUTTAB-FOUTOMSCHRIJVING =
'Probeer het a.u.b. over een paar minuten nogmaals.'.
APPEND FOUTTAB.
FOUTTAB-FOUTOMSCHRIJVING =
'Als dit dan nog niet lukt, kunt u contact opnemen met uw secretariaat.'
.
APPEND FOUTTAB.
CLEAR H_EERSTE.
ELSE.
DELETE FOUTTAB.
ENDIF.
ENDIF.
IF FOUTTAB-FOUTCODE = 207.
H_207 = 'X'.
ENDIF.
IF FOUTTAB-FOUTCODE = 335.
H_335 = 'X'.
H_WORKDATE = FOUTTAB-FOUTOMSCHRIJVING(10).
ENDIF.
ENDLOOP.
IF H_207 = 'X' AND H_335 = 'X'.
DELETE FOUTTAB WHERE FOUTCODE = 207 OR FOUTCODE = 335.
CLEAR FOUTTAB.
FOUTTAB-FOUTCODE = 335.
FOUTTAB-FOUTTYPE = 'W'.
CONCATENATE H_WORKDATE 'Ziekte/Verlof aanwezig op' H_WORKDATE
INTO FOUTTAB-FOUTOMSCHRIJVING SEPARATED BY SPACE.
APPEND FOUTTAB.
ENDIF.
* FOUTTAB_DUP[] = FOUTTAB[].
* SORT FOUTTAB_DUP.
* DELETE ADJACENT DUPLICATES FROM FOUTTAB_DUP.
* FOUTTAB[] = FOUTTAB_DUP[].
LOOP AT FOUTTAB WHERE FOUTTYPE EQ 'E' OR
FOUTTYPE EQ 'A' OR
FOUTTYPE EQ 'I' OR
FOUTTYPE EQ 'W'.
ENDLOOP.
IF SY-SUBRC EQ 0.
* ALLE MELDINGEN ZIJN OVERGENOMEN IN FOUTTAB.
* VOORLOPIG WORDEN DIE DUS ALLEMAAL DOORGEGEVEN NAAR TWO
* ER ZIJN SERIEUZE FOUTEN GEVONDEN, VOORLOPIG IN DE TABEL LATEN STAAN
* DE FOUTEN MOETEN NOG WEL WORDEN GEANALYSEERD EN EVENTUEEL SAMENGEVAT
ELSE.
REFRESH FOUTTAB.
CLEAR FOUTTAB.
FOUTTAB-FOUTCODE = 0.
FOUTTAB-FOUTTYPE = 'S'.
FOUTTAB-FOUTOMSCHRIJVING = 'Succesvol'.
APPEND FOUTTAB.
ENDIF.
ENDFUNCTION.
Have fun,
Smurf
Answer:
Thanks so much smurf for the piece of code. I haven't tried it yet as I was busy with other things but now, I'm back to working on this report. I will give it a shot. One other question, it seems like you created your own function using BAPI_CATIMESHEETMANAGER_INSERT ... I'm assuming on your report, you'll be calling this function Z_TWO_DATA_WEGSCHRIJVEN ... am I correct in this assumption?!?
Thanks!
- tjoeng

More Articles:

Report tree?
External Send?
How to get the spool request number at the run time?
Long Texts for fields?
HELP! Client deleted parts of PCL2 (HR ABAP)?
LSMW clarifications?