Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Error in BDC of F110 transaction?

Former Member
0 Kudos

Hi,

I am getting an error during the execution of the BDC in foreground Mode which is "Field F110O-XPOS1(7) doesnot exist in the screen SAPF110O1003".

This appears when i am trying to edit a payment proposal using BDC .

Codes used in the main program are :

PERFORM F4312_BDC_FIELD USING 'BDC_CURSOR' 'F110O-XPOS1(07)'.

PERFORM F4312_BDC_FIELD USING 'BDC_OKCODE' '=PI'.

PERFORM F4312_BDC_FIELD USING 'F110O-ABPOS' '1'.

PERFORM F4312_BDC_FIELD USING 'F110O-XPOS1(01)' ''.

PERFORM F4312_BDC_FIELD USING 'F110O-XPOS1(07)' 'X'.

Is it possible that the screen feild name has changed from server to server because these codes are copied from old server to new one?

3 REPLIES 3

Former Member
0 Kudos

Hi,

This is my sample code for F110 BDC: This is a automated process for which we have written code.

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

0 Kudos

Subramanian,

Your automated F110 BDC code looks good. If I wanted to get multiple company codes in the company code field (F110-BUKLS), how would I do that?

Using yours, I can put only one company code. I want to do the same thing with payment method as well i.e. be able to put multiple payment methods.

Do you know?

Thanks,

Ravi.

former_member182371
Active Contributor
0 Kudos

Hi,

the error appears because you´re accessing a table control in the recording of the transaction.

Please do have a look at the following link:

http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm

i´m sure that thre are many answers in the forum regarding "BDC and tablecontrol".

Anyway, you should do something like:

DATA : FNAM(20) TYPE C,

IDX TYPE C.

MOVE 1 TO IDX.

CONCATENATE ''F110O-XPOS1(' IDX ')' INTO FNAM.

perform F4312_BDC_FIELD using 'BDC_CURSOR'

FNAM.

and the rest of the code in the same way.

Best regards.