02-11-2017 4:07 AM
Hi Experts,
i have developed one BDC for FB01 to post the documents.My Requirement is to generate the only one document no based on Reference doc no.In my case it is generating the document no based on line item.How to restrict it to generate the only one document for all line item is their XBLNR is same.
LOOP AT itab.
PERFORM bdc_dynpro USING 'SAPMF05A' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWUM'. "GL INDICATOR
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BKPF-BLDAT'
itab-bldat.
PERFORM bdc_field USING 'BKPF-BUDAT'
itab-budat.
PERFORM bdc_field USING 'BKPF-BLART'
itab-blart.
PERFORM bdc_field USING 'BKPF-BUKRS'
itab-bukrs.
PERFORM bdc_field USING 'BKPF-WAERS'
itab-waers. "CURR
PERFORM bdc_field USING 'BKPF-KURSF'
itab-kursf. "EXC RATE
PERFORM bdc_field USING 'BKPF-XBLNR'
itab-xblnr. "REF DOC
PERFORM bdc_field USING 'BKPF-BKTXT'
itab-bktxt. "HEADER TEXT
PERFORM bdc_field USING 'RF05A-NEWBS'
itab-newbs. "POST KEY
PERFORM bdc_field USING 'RF05A-NEWKO'
itab-newko. "CUSTOMER
PERFORM bdc_field USING 'RF05A-NEWUM'
itab-newum. ""GL INDICATOR
* Dynamic Screen
IF itab-newbs EQ '01' OR itab-newbs EQ '11' OR itab-newbs EQ '17'.
scrn = '301'.
ELSEIF itab-newbs EQ '09' OR itab-newbs EQ '19'.
* OR itab-newbs EQ '29' OR itab-newbs EQ '39'.
scrn = '304'.
ENDIF.
PERFORM bdc_dynpro USING 'SAPMF05A' scrn.
.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
itab-wrbtr. " AMOUNT
IF itab-newbs NE '19'.
PERFORM bdc_field USING 'BSEG-ZFBDT'
itab-bldat.
ENDIF.
PERFORM bdc_field USING 'BSEG-SGTXT'
itab-sgtxt. "LINE TEXT
IF itab-newbs EQ '01' OR itab-newbs EQ '09' ."OR itab-newbs EQ '17'.
* OR itab2-newbs EQ '29'.
newbs1 = '50'.
ELSEIF itab-newbs EQ '11' OR itab-newbs EQ '19' OR itab-newbs EQ '17'.
* OR itab2-newbs EQ '39'.
newbs1 = '40'.
ENDIF.
PERFORM bdc_field USING 'RF05A-NEWBS'
newbs1.
PERFORM bdc_field USING 'RF05A-NEWKO'
p_gla.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM bdc_field USING 'BSEG-WRBTR'
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_transaction USING 'FB01'.
ENDAT.
ENDLOOP.
02-13-2017 9:19 PM