Skip to Content
0
Former Member
Jan 03, 2008 at 09:06 AM

Regarding call transaction

64 Views

Hello Gurus,

I am facing following problem in bellow program.program calls the transaction FB10 and update all the table such as BKPF, BSEG.

In next step it is updating the TOA01 table . my problem is after updating the table BKPF in call transaction FB10, i have to select the belnr ( document number ) from BKPF and insert in TOA01. So i dont have any key field to retrive the retive.

key field is company code 1000 and year 2008. so how i can retrvie the belnr ( document number) and update to TOA01 without key field.

Please tell me this is urgent. i have attached the code.

Thanks in advance .

Best Regds,

zubera

&----


*& Report ZFB4

*&

&----


*&

*&

&----


REPORT ZFB4.

TABLES : TOA01, TOA02, TOA03, TOADL.

DATA : BEGIN OF FTAB OCCURS 0.

INCLUDE STRUCTURE BDCDATA.

DATA : END OF FTAB.

DATA : BEGIN OF C_TABLE OCCURS 0.

INCLUDE STRUCTURE TOA01.

DATA : END OF C_TABLE.

DATA : BEGIN OF F_STRING.

INCLUDE STRUCTURE TOA01.

DATA : END OF F_STRING.

DATA : BEGIN OF PL_TABLE OCCURS 0.

INCLUDE STRUCTURE TOADL.

DATA : END OF PL_TABLE.

DATA : BEGIN OF PL_FIELDS.

INCLUDE STRUCTURE TOADL.

DATA : END OF PL_FIELDS.

DATA : BEGIN OF BTAB OCCURS 0,

BUKRS LIKE BKPF-BUKRS,

BELNR LIKE BKPF-BELNR,

GJAHR LIKE BKPF-GJAHR,

DMBTR LIKE BSEG-DMBTR,

END OF BTAB.

DATA : BEGIN OF ITAB OCCURS 0,

N1 type i,

BUKRS LIKE BKPF-BUKRS,

BLART LIKE BKPF-BLART,

NEWKO LIKE RF05A-NEWKO,

WRBTR(13),

BUDAT LIKE BKPF-BUDAT,

NEWBS LIKE RF05A-NEWBS,

END OF ITAB.

DATA : BEGIN OF WA,

N1 TYPE I,

BUKRS LIKE BKPF-BUKRS,

BLART LIKE BKPF-BLART,

NEWKO LIKE RF05A-NEWKO,

WRBTR(13),

NEWBS LIKE RF05A-NEWBS,

END OF WA.

DATA : BEGIN OF MTAB OCCURS 0.

INCLUDE STRUCTURE BDCMSGCOLL.

DATA : END OF MTAB.

SELECTION-SCREEN : BEGIN OF BLOCK B1.

PARAMETER : N TYPE I,

BUK LIKE BKPF-BUKRS,

NEWK(13),

WRBTR(13),

ARCHIV LIKE TOA01-ARCHIV_ID,

OBJECT LIKE TOA01-SAP_OBJECT,

CONTAB(5),

START TYPE I.

SELECTION-SCREEN : END OF BLOCK B1.

WA-N1 = 1.

WA-BUKRS = BUK.

WA-BLART = 'AB'.

WA-NEWKO = NEWK.

WA-WRBTR = WRBTR.

DO N TIMES.

ITAB-N1 = WA-N1.

ITAB-BUKRS = WA-BUKRS.

ITAB-BLART = WA-BLART.

ITAB-BUDAT = SY-DATUM.

ITAB-NEWKO = WA-NEWKO.

ITAB-WRBTR = WA-WRBTR.

APPEND ITAB.

ITAB-N1 = WA-N1.

IF WA-N1 LE N.

WA-N1 = WA-N1 + 1.

WA-WRBTR = WA-WRBTR + 10.

ENDIF.

ENDDO.

*ITAB-N1 = 2.

*ITAB-BUKRS = BUK.

*ITAB-BLART = 'AB'.

*ITAB-NEWKO = NEWK.

*ITAB-WRBTR = 02.

*APPEND ITAB.

*ITAB-N1 = 3.

*ITAB-BUKRS = BUK.

*ITAB-BLART = 'AB'.

*ITAB-NEWKO = NEWK.

*ITAB-WRBTR = 03.

*APPEND ITAB.

*ITAB-N1 = 4.

*ITAB-BUKRS = BUK.

*ITAB-BLART = 'AB'.

*ITAB-NEWKO = NEWK.

*ITAB-WRBTR = 04.

*APPEND ITAB.

*ITAB-N1 = 5.

*ITAB-BUKRS = BUK.

*ITAB-BLART = 'AB'.

*ITAB-NEWKO = NEWK.

*ITAB-WRBTR = 05.

*APPEND ITAB.

*ITAB-N1 = 6.

*ITAB-BUKRS = BUK.

*ITAB-BLART = 'AB'.

*ITAB-NEWKO = NEWK.

*ITAB-WRBTR = 06.

*APPEND ITAB.

*ITAB-N1 = 7.

*ITAB-BUKRS = BUK.

*ITAB-BLART = 'AB'.

*ITAB-NEWKO = NEWK.

*ITAB-WRBTR = 07.

*APPEND ITAB.

*ITAB-N1 = 8.

*ITAB-BUKRS = BUK.

*ITAB-BLART = 'AB'.

*ITAB-NEWKO = NEWK.

*ITAB-WRBTR = 08.

*APPEND ITAB.

*ITAB-N1 = 9.

*ITAB-BUKRS = BUK.

*ITAB-BLART = 'AB'.

*ITAB-NEWKO = NEWK.

*ITAB-WRBTR = 09.

*APPEND ITAB.

*ITAB-N1 = 10.

*ITAB-BUKRS = BUK.

*ITAB-BLART = 'AB'.

*ITAB-NEWKO = NEWK.

*ITAB-WRBTR = 10.

*APPEND ITAB.

PERFORM FILL_BDCDATA.

CALL TRANSACTION 'FB10' USING FTAB MODE 'N' UPDATE 'S' MESSAGES INTO MTAB.

DO N TIMES.

SELECT BUKRS BELNR GJAHR FROM BKPF INTO TABLE BTAB WHERE BUKRS = '1000'

AND GJAHR = '2008'.

ENDDO.

LOOP AT ITAB.

WRITE : / BTAB-BUKRS, BTAB-BELNR, btab-gjahr.

ENDLOOP.

BREAK-POINT.

IF CONTAB EQ 'TOA01' OR

CONTAB EQ 'TOA02' OR

CONTAB EQ 'TOA03'.

PERFORM CREATE_DATA2 TABLES C_TABLE USING N

ARCHIV

OBJECT

START.

CLEAR C_TABLE.

LOOP AT C_TABLE.

MOVE C_TABLE TO F_STRING.

DO N TIMES.

IF CONTAB EQ 'TOA01'.

INSERT INTO TOA01 VALUES F_STRING.

ELSEIF CONTAB EQ 'TOA02'.

INSERT INTO TOA02 VALUES F_STRING.

ELSEIF CONTAB EQ 'TOA03'.

INSERT INTO TOA03 VALUES F_STRING.

ENDIF.

ENDDO.

ENDLOOP.

ELSEIF CONTAB EQ 'TOADL'.

PERFORM CREATE_PL_DATA2 TABLES PL_TABLE USING N

ARCHIV

OBJECT

START.

LOOP AT PL_TABLE.

MOVE PL_TABLE TO PL_FIELDS.

INSERT INTO TOADL VALUES PL_FIELDS.

CLEAR PL_FIELDS.

ENDLOOP.

PERFORM CREATE_DATA2 TABLES C_TABLE USING N

ARCHIV

OBJECT

START.

CLEAR C_TABLE.

LOOP AT C_TABLE.

MOVE C_TABLE TO F_STRING.

INSERT INTO TOA01 VALUES F_STRING.

ENDLOOP.

CLEAR C_TABLE.

ENDIF.

FORM FILL_BDCDATA.

REFRESH FTAB.

LOOP AT ITAB.

PERFORM BDC_DYNPRO USING 'SAPMF05A' '127'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/ENV'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'BKPF-BLDAT'.

PERFORM BDC_DYNPRO USING 'SAPMF05A' '126'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'BKPF-BUKRS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=RE'.

PERFORM BDC_FIELD USING 'BKPF-BUKRS' ITAB-BUKRS.

PERFORM BDC_FIELD USING 'BKPF-BLART' ITAB-BLART.

PERFORM BDC_FIELD USING 'BKPF-BUDAT' '02.01.2008'.

PERFORM BDC_FIELD USING 'BKPF-MONAT' '1'.

PERFORM BDC_FIELD USING 'BKPF-WAERS' 'EUR'.

PERFORM BDC_FIELD USING 'BKPF-BLDAT' '02.01.2008'.

PERFORM BDC_DYNPRO USING 'SAPMF05A' '127'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'BSEG-WRBTR'.

PERFORM BDC_FIELD USING 'BKPF-BLDAT' '02.01.2008'.

PERFORM BDC_FIELD USING 'BKPF-WAERS' 'EUR'.

PERFORM BDC_FIELD USING 'RF05A-NEWKO' ITAB-NEWKO.

PERFORM BDC_FIELD USING 'BSEG-WRBTR' ITAB-WRBTR.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BU'.

PERFORM BDC_DYNPRO USING 'SAPMF05A' '700'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RF05A-NEWKO'.

PERFORM BDC_FIELD USING 'RF05A-NEWBS' '01'.

PERFORM BDC_FIELD USING 'RF05A-NEWKO' '3471'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BU'.

PERFORM BDC_DYNPRO USING 'SAPMF05A' '301'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'BSEG-WMWST'.

PERFORM BDC_FIELD USING 'BSEG-WRBTR' ITAB-WRBTR .

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BU'.

IF ITAB-N1 EQ N.

EXIT.

ENDIF.

ENDLOOP.

ENDFORM.

FORM BDC_DYNPRO USING P_PROGRAM P_DYNPRO.

CLEAR FTAB.

FTAB-PROGRAM = P_PROGRAM.

FTAB-DYNPRO = P_DYNPRO.

FTAB-DYNBEGIN = 'X'.

APPEND FTAB.

ENDFORM.

FORM BDC_FIELD USING P_FNAM P_FVAL.

CLEAR FTAB.

FTAB-FNAM = P_FNAM.

FTAB-FVAL = P_FVAL.

APPEND FTAB.

ENDFORM.

FORM CREATE_DATA2 TABLES INT_TAB STRUCTURE TOA01 USING N

ARCHIV

OBJECT

START.

DATA : BEGIN OF F_STRING.

INCLUDE STRUCTURE INT_TAB.

DATA : END OF F_STRING.

DATA : BUK LIKE BKPF-BUKRS,

GJA LIKE BKPF-GJAHR,

OBJID(50).

BUK = 1000.

GJA = 2008.

DATA : TOA(18) TYPE N,

INDEX(10) TYPE N.

DATA : N5 TYPE I .

DATA : N6 TYPE I VALUE 1.

DO N TIMES.

  • IF START IS INITIAL.

  • INDEX = SY-INDEX.

  • ELSE.

  • INDEX = START + SY-INDEX - 1.

  • ENDIF.

F_STRING-MANDT = SY-MANDT.

F_STRING-SAP_OBJECT = OBJECT.

F_STRING-ARCHIV_ID = ARCHIV.

CONCATENATE BUK INDEX GJA INTO OBJID.

F_STRING-OBJECT_ID = OBJID.

  • F_STRING-ARC_DOC_ID = INDEX.

APPEND F_STRING TO INT_TAB.

CLEAR F_STRING.

ENDDO.

ENDFORM.

FORM CREATE_PL_DATA2 TABLES INT_TAB STRUCTURE TOADL USING N

ARCHIV

OBJECT

START.

DATA : BEGIN OF F_STRING.

INCLUDE STRUCTURE INT_TAB.

DATA : END OF F_STRING.

DATA : BUK LIKE BKPF-BUKRS,

GJA LIKE BKPF-GJAHR,

OBJID(50).

BUK = 1000.

GJA = 2007.

DATA : TOA(18) TYPE N,

INDEX(10) TYPE N.

DO N TIMES.

IF START IS INITIAL.

INDEX = SY-INDEX.

ELSE.

INDEX = START + SY-INDEX - 1.

ENDIF.

F_STRING-MANDANT = SY-MANDT.

F_STRING-SAP_OBJECT = OBJECT.

F_STRING-ARCHIV_ID = ARCHIV.

F_STRING-ARC_DOC_ID = INDEX.

F_STRING-AR_OBJECT = 'TEST'.

F_STRING-BENUTZER = SY-UNAME.

F_STRING-DATALENGTH = 0.

F_STRING-DATUM = SY-DATUM.

F_STRING-DESCLENGTH = 0.

F_STRING-DRUCKER = 'LP01'.

F_STRING-FORMULAR = 'X_65_132'.

F_STRING-INFO = 'TST'.

F_STRING-KURZTEXT = 'AUTOMATISH GENERATED DRUCKLIST'.

F_STRING-LNR = INDEX.

F_STRING-REPORT = 'F.YYY'.

F_STRING-AR_TIME = SY-UZEIT.

APPEND F_STRING TO INT_TAB.

CLEAR F_STRING.

ENDDO.

ENDFORM.