2007 Jan 28 5:30 AM
Hi
I am facing problem while setting a BDC in background that contains a Table to manage.
Please some body help.
Thanks,
Srikanth
Hi,
Following is the BDC code for F110. Please go through and modify your code accordingly. This contains Table control.
REPORT YF110_SAMPLE .
tables: lfa1,
t001,
t042z,
varid.
DATA: i_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: messtab TYPE TABLE OF bdcmsgcoll WITH HEADER LINE.
DATA: po_date LIKE sy-datum.
DATA: p_next LIKE sy-datum.
DATA: p_run1(10),po_date1(10), p_next1(10).
DATA: ws_laufd LIKE reguh-laufd,
ws_laufi LIKE reguh-laufi.
data: p_dele value space.
data: ws_lines.
SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME.
PARAMETERS: p_run LIKE sy-datum obligatory.
SELECTION-SCREEN: END OF BLOCK blk1.
selection-screen: begin of block blk2 with frame .
parameters: p_runid like reguh-laufi obligatory,
p_land1 like t005-land1 obligatory.
*select-options: p_bukrs for t001-bukrs no intervals obligatory.
parameters: p_bukrs like t001-bukrs obligatory.
parameters: p_hbkid like t012-hbkid ,
p_hktid like t012k-hktid ,
p_waers like tcurc-waers .
*select-options: p_rzawe for t042z-zlsch no intervals obligatory,
p_fvari for varid-variant no intervals obligatory.
parameters: p_rzawe like t042z-zlsch obligatory,
p_FVARI like varid-variant obligatory.
matchcode object zfvari1.
selection-screen: end of block blk2.
*SELECTION-SCREEN: BEGIN OF BLOCK blk3.
*PARAMETERS: p_dele AS CHECKBOX ."modif id DE.
*SELECTION-SCREEN: END OF BLOCK blk3.
*at selection-screen output.
loop at screen.
if screen-group1 = 'A1'.
screen-input = '1'.
modify screen.
endif.
*
if screen-group1 = 'DE'.
screen-active = '0'.
modify screen.
endif.
endloop.
*
start-of-selection.
ws_laufd = p_run.
po_date = sy-datum. "p_run .
perform get_next_date using po_date
changing p_next.
p_next = p_run + 30.
CONCATENATE p_run4(2) p_run6(2) p_run+0(4) INTO p_run1
SEPARATED BY '/'.
CONCATENATE po_date4(2) po_date6(2) po_date+0(4) INTO po_date1
SEPARATED BY '/'.
CONCATENATE p_next4(2) p_next6(2) p_next+0(4) INTO p_next1
SEPARATED BY '/'.
REFRESH messtab.
CLEAR messtab.
IF p_dele <> 'X'.
PERFORM bdc_data USING:
'X' 'SAPF110V' '0200',
' ' 'BDC_CURSOR' 'F110V-LAUFI',
' ' 'BDC_OKCODE' '=PAR',
' ' 'F110V-LAUFD' p_run1,
' ' 'F110V-LAUFI' p_runid,
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '=LOG',
' ' 'BDC_CURSOR' 'F110V-VONKK',
' ' 'F110C-BUDAT' po_date1,
' ' 'F110C-GRDAT' po_date1,
' ' 'F110V-VONKK' s_vendor-low,
' ' 'F110V-BISKK' s_vendor-high,
' ' 'F110V-BUKLS(01)' p_bukrs,
' ' 'F110V-ZWELS(01)' p_rzawe,
' ' 'F110V-NEDAT(01)' p_next1,
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '=PRI',
' ' 'BDC_CURSOR' 'F110V-VONKK(01)',
' ' 'F110V-XTRFA' 'X',
' ' 'F110V-XTRZW' 'X',
' ' 'F110V-XTRBL' 'X',
' ' 'F110V-VONKK(01)' s_vendor-low,
' ' 'F110V-BISKK(01)' s_vendor-high,
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '=STA',
' ' 'BDC_CURSOR' 'F110V-VARI1(03)',
' ' 'F110V-VARI1(03)' p_fvari,
"'ZFID0060RWA218',
'X' 'SAPLSPO1' '0100',
' ' 'BDC_OKCODE' '=YES',
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '/EBCK'.
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '=SICH',
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '/EBCK',
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '/EBCK'.
'X' 'SAPLSPO1' '0100',
' ' 'BDC_OKCODE' '=YES'.
'X' 'SAPF110V' '0200',
' ' 'BDC_CURSOR' 'F110V-LAUFD',
' ' 'BDC_OKCODE' '=VOEX',
' ' 'F110V-LAUFD' p_run1,
' ' 'F110V-LAUFI' p_runid,
'X' 'SAPF110V' '1106',
' ' 'BDC_CURSOR' 'F110V-STRDT',
' ' 'BDC_OKCODE' '=EP',
' ' 'F110V-STRDT' p_run1,
' ' 'F110V-XSTRF' 'X',
' ' 'F110V-STRZT' '00:00:00'.
*
FREE MEMORY.
CALL TRANSACTION 'F110' USING i_bdcdata MODE 'A'
UPDATE 'S'
MESSAGES INTO messtab.
break-point.
if sy-subrc = 0.
CALL FUNCTION 'SCHEDULE_PAYMENT_PROPOSAL'
EXPORTING
i_laufd = p_run
i_laufi = p_runid
I_STRDT = sy-datum
I_STRZT =
I_XSTRF = 'X'
I_BHOST =
I_INKEY =
I_PTYPE = 1
I_CALLREP =
I_CALLVAR =
EXCEPTIONS
STARTDATE_WRONG = 1
PARAMETERS_MISSED = 2
LOCK_FAILED = 3
JOB_OPEN_FAILED = 4
JOB_CLOSE_FAILED = 5
OTHERS = 6 .
*
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*
write:/ 'Proposal Successfully Generated..'.
refresh i_bdcdata. clear i_bdcdata.
perform bdc_data using: 'X' 'SAPF110V' '0200',
' ' 'BDC_CURSOR' 'F110V-LAUFD',
' ' 'BDC_OKCODE' '=ZAEX',
' ' 'F110V-LAUFD' p_run1,
' ' 'F110V-LAUFI' p_runid,
'X' 'SAPLSPO1' '0100',
' ' 'BDC_OKCODE' '=YES',
'X' 'SAPF110V' '1106',
' ' 'BDC_CURSOR' 'F110V-XSTRF',
' ' 'BDC_OKCODE' '=EP',
' ' 'F110V-STRDT' p_run1,
' ' 'F110V-XSTRF' 'X',
' ' 'F110V-STRZT' '00:00:00',
' ' 'F110V-XMITD' 'X'.
break-point.
CALL TRANSACTION 'F110' USING i_bdcdata MODE 'A'
UPDATE 'S'
MESSAGES INTO messtab.
if sy-subrc = 0.
write:/ 'Payment Run Scheduled'.
endif.
endif.
endloop.
SELECT single laufd laufi INTO (ws_laufd,ws_laufi) FROM reguh
WHERE laufd = p_run
AND laufi = p_runid
AND xvorl = 'X'.
IF sy-subrc <> 0.
WRITE:/ 'Error in Proposal Run',p_runid,' dated ',p_run.
ENDIF.
ELSE.
CALL FUNCTION 'DELETE_PAYMENT_PROPOSAL'
EXPORTING
date = p_run
identification = p_runid
I_DATUM =
EXCEPTIONS
ABNORMAL_END = 1
NO_DELETE_AUTHORITY = 2
OTHERS = 3
.
if sy-subrc = 0.
write:/ 'Proposal ',p_runid, ' Successfully deleted.'.
endif.
ENDIF.
Form
FORM bdc_data USING a
b
c.
CLEAR: i_bdcdata.
IF a = 'X'.
i_bdcdata-program = b.
i_bdcdata-dynpro = c.
i_bdcdata-dynbegin = 'X'.
ELSE.
i_bdcdata-fnam = b.
i_bdcdata-fval = c.
ENDIF.
APPEND: i_bdcdata.
ENDFORM.
&----
*& Form get_next_date
&----
----
FORM get_next_date USING PO_DATE
CHANGING P_NEXT.
data: i type i,
p_date like sy-datum.
i = 0.
p_date = po_date.
while i <= 4.
p_date = p_date + 1.
CALL FUNCTION 'DATE_CHECK_WORKINGDAY'
EXPORTING
DATE = p_date
FACTORY_CALENDAR_ID = 'WY'
MESSAGE_TYPE = 'E'
EXCEPTIONS
DATE_AFTER_RANGE = 1
DATE_BEFORE_RANGE = 2
DATE_INVALID = 3
DATE_NO_WORKINGDAY = 4
FACTORY_CALENDAR_NOT_FOUND = 5
MESSAGE_TYPE_INVALID = 6
OTHERS = 7 .
IF SY-SUBRC <> 0.
continue.
else.
i = i + 1.
ENDIF.
endwhile.
p_next = p_date.
ENDFORM. " get_next_date
Regards
Subramanian
2007 Jan 28 8:55 AM
Hi,
have a look at the following link:
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
Once read pay special attention to this piece of code (the key is here):
DATA : FNAM(20) TYPE C,
IDX TYPE C.
MOVE 1 TO IDX.
LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.
<b>CONCATENATE 'LFBK-BANKS(' IDX ')' INTO FNAM.</b>
perform bdc_field using <b>FNAM</b>
IT_BANK-BANKS.
Best regards.
2007 Jan 30 5:57 AM
2007 Jan 30 6:12 AM
Hi,
Following is the BDC code for F110. Please go through and modify your code accordingly. This contains Table control.
REPORT YF110_SAMPLE .
tables: lfa1,
t001,
t042z,
varid.
DATA: i_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: messtab TYPE TABLE OF bdcmsgcoll WITH HEADER LINE.
DATA: po_date LIKE sy-datum.
DATA: p_next LIKE sy-datum.
DATA: p_run1(10),po_date1(10), p_next1(10).
DATA: ws_laufd LIKE reguh-laufd,
ws_laufi LIKE reguh-laufi.
data: p_dele value space.
data: ws_lines.
SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME.
PARAMETERS: p_run LIKE sy-datum obligatory.
SELECTION-SCREEN: END OF BLOCK blk1.
selection-screen: begin of block blk2 with frame .
parameters: p_runid like reguh-laufi obligatory,
p_land1 like t005-land1 obligatory.
*select-options: p_bukrs for t001-bukrs no intervals obligatory.
parameters: p_bukrs like t001-bukrs obligatory.
parameters: p_hbkid like t012-hbkid ,
p_hktid like t012k-hktid ,
p_waers like tcurc-waers .
*select-options: p_rzawe for t042z-zlsch no intervals obligatory,
p_fvari for varid-variant no intervals obligatory.
parameters: p_rzawe like t042z-zlsch obligatory,
p_FVARI like varid-variant obligatory.
matchcode object zfvari1.
selection-screen: end of block blk2.
*SELECTION-SCREEN: BEGIN OF BLOCK blk3.
*PARAMETERS: p_dele AS CHECKBOX ."modif id DE.
*SELECTION-SCREEN: END OF BLOCK blk3.
*at selection-screen output.
loop at screen.
if screen-group1 = 'A1'.
screen-input = '1'.
modify screen.
endif.
*
if screen-group1 = 'DE'.
screen-active = '0'.
modify screen.
endif.
endloop.
*
start-of-selection.
ws_laufd = p_run.
po_date = sy-datum. "p_run .
perform get_next_date using po_date
changing p_next.
p_next = p_run + 30.
CONCATENATE p_run4(2) p_run6(2) p_run+0(4) INTO p_run1
SEPARATED BY '/'.
CONCATENATE po_date4(2) po_date6(2) po_date+0(4) INTO po_date1
SEPARATED BY '/'.
CONCATENATE p_next4(2) p_next6(2) p_next+0(4) INTO p_next1
SEPARATED BY '/'.
REFRESH messtab.
CLEAR messtab.
IF p_dele <> 'X'.
PERFORM bdc_data USING:
'X' 'SAPF110V' '0200',
' ' 'BDC_CURSOR' 'F110V-LAUFI',
' ' 'BDC_OKCODE' '=PAR',
' ' 'F110V-LAUFD' p_run1,
' ' 'F110V-LAUFI' p_runid,
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '=LOG',
' ' 'BDC_CURSOR' 'F110V-VONKK',
' ' 'F110C-BUDAT' po_date1,
' ' 'F110C-GRDAT' po_date1,
' ' 'F110V-VONKK' s_vendor-low,
' ' 'F110V-BISKK' s_vendor-high,
' ' 'F110V-BUKLS(01)' p_bukrs,
' ' 'F110V-ZWELS(01)' p_rzawe,
' ' 'F110V-NEDAT(01)' p_next1,
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '=PRI',
' ' 'BDC_CURSOR' 'F110V-VONKK(01)',
' ' 'F110V-XTRFA' 'X',
' ' 'F110V-XTRZW' 'X',
' ' 'F110V-XTRBL' 'X',
' ' 'F110V-VONKK(01)' s_vendor-low,
' ' 'F110V-BISKK(01)' s_vendor-high,
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '=STA',
' ' 'BDC_CURSOR' 'F110V-VARI1(03)',
' ' 'F110V-VARI1(03)' p_fvari,
"'ZFID0060RWA218',
'X' 'SAPLSPO1' '0100',
' ' 'BDC_OKCODE' '=YES',
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '/EBCK'.
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '=SICH',
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '/EBCK',
'X' 'SAPF110V' '0200',
' ' 'BDC_OKCODE' '/EBCK'.
'X' 'SAPLSPO1' '0100',
' ' 'BDC_OKCODE' '=YES'.
'X' 'SAPF110V' '0200',
' ' 'BDC_CURSOR' 'F110V-LAUFD',
' ' 'BDC_OKCODE' '=VOEX',
' ' 'F110V-LAUFD' p_run1,
' ' 'F110V-LAUFI' p_runid,
'X' 'SAPF110V' '1106',
' ' 'BDC_CURSOR' 'F110V-STRDT',
' ' 'BDC_OKCODE' '=EP',
' ' 'F110V-STRDT' p_run1,
' ' 'F110V-XSTRF' 'X',
' ' 'F110V-STRZT' '00:00:00'.
*
FREE MEMORY.
CALL TRANSACTION 'F110' USING i_bdcdata MODE 'A'
UPDATE 'S'
MESSAGES INTO messtab.
break-point.
if sy-subrc = 0.
CALL FUNCTION 'SCHEDULE_PAYMENT_PROPOSAL'
EXPORTING
i_laufd = p_run
i_laufi = p_runid
I_STRDT = sy-datum
I_STRZT =
I_XSTRF = 'X'
I_BHOST =
I_INKEY =
I_PTYPE = 1
I_CALLREP =
I_CALLVAR =
EXCEPTIONS
STARTDATE_WRONG = 1
PARAMETERS_MISSED = 2
LOCK_FAILED = 3
JOB_OPEN_FAILED = 4
JOB_CLOSE_FAILED = 5
OTHERS = 6 .
*
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*
write:/ 'Proposal Successfully Generated..'.
refresh i_bdcdata. clear i_bdcdata.
perform bdc_data using: 'X' 'SAPF110V' '0200',
' ' 'BDC_CURSOR' 'F110V-LAUFD',
' ' 'BDC_OKCODE' '=ZAEX',
' ' 'F110V-LAUFD' p_run1,
' ' 'F110V-LAUFI' p_runid,
'X' 'SAPLSPO1' '0100',
' ' 'BDC_OKCODE' '=YES',
'X' 'SAPF110V' '1106',
' ' 'BDC_CURSOR' 'F110V-XSTRF',
' ' 'BDC_OKCODE' '=EP',
' ' 'F110V-STRDT' p_run1,
' ' 'F110V-XSTRF' 'X',
' ' 'F110V-STRZT' '00:00:00',
' ' 'F110V-XMITD' 'X'.
break-point.
CALL TRANSACTION 'F110' USING i_bdcdata MODE 'A'
UPDATE 'S'
MESSAGES INTO messtab.
if sy-subrc = 0.
write:/ 'Payment Run Scheduled'.
endif.
endif.
endloop.
SELECT single laufd laufi INTO (ws_laufd,ws_laufi) FROM reguh
WHERE laufd = p_run
AND laufi = p_runid
AND xvorl = 'X'.
IF sy-subrc <> 0.
WRITE:/ 'Error in Proposal Run',p_runid,' dated ',p_run.
ENDIF.
ELSE.
CALL FUNCTION 'DELETE_PAYMENT_PROPOSAL'
EXPORTING
date = p_run
identification = p_runid
I_DATUM =
EXCEPTIONS
ABNORMAL_END = 1
NO_DELETE_AUTHORITY = 2
OTHERS = 3
.
if sy-subrc = 0.
write:/ 'Proposal ',p_runid, ' Successfully deleted.'.
endif.
ENDIF.
Form
FORM bdc_data USING a
b
c.
CLEAR: i_bdcdata.
IF a = 'X'.
i_bdcdata-program = b.
i_bdcdata-dynpro = c.
i_bdcdata-dynbegin = 'X'.
ELSE.
i_bdcdata-fnam = b.
i_bdcdata-fval = c.
ENDIF.
APPEND: i_bdcdata.
ENDFORM.
&----
*& Form get_next_date
&----
----
FORM get_next_date USING PO_DATE
CHANGING P_NEXT.
data: i type i,
p_date like sy-datum.
i = 0.
p_date = po_date.
while i <= 4.
p_date = p_date + 1.
CALL FUNCTION 'DATE_CHECK_WORKINGDAY'
EXPORTING
DATE = p_date
FACTORY_CALENDAR_ID = 'WY'
MESSAGE_TYPE = 'E'
EXCEPTIONS
DATE_AFTER_RANGE = 1
DATE_BEFORE_RANGE = 2
DATE_INVALID = 3
DATE_NO_WORKINGDAY = 4
FACTORY_CALENDAR_NOT_FOUND = 5
MESSAGE_TYPE_INVALID = 6
OTHERS = 7 .
IF SY-SUBRC <> 0.
continue.
else.
i = i + 1.
ENDIF.
endwhile.
p_next = p_date.
ENDFORM. " get_next_date
Regards
Subramanian
2007 Jan 30 8:15 AM
| User | Count |
|---|---|
| 6 | |
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |