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: 

bdc upload

Former Member
0 Kudos

hi all,

Cont. after commit in bdc how to use it in coding ... if its possable please send the code

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Santosh

Check the link

https://www.sdn.sap.com/irj/scn/profile?editmode=true&userid=3828796

and check my answer.

Regards

Sachin

4 REPLIES 4

Former Member
0 Kudos

Hi,

Once you save your recording there is a option to create a program in SHDB only. From that you can create the program directly and use it in you own way.

Thanks,

Bharathi.

0 Kudos

hi,

but Cont. after commit is not work when by the genrated program..... i think we as t write coding...

Former Member
0 Kudos

Hi Santosh

Check the link

https://www.sdn.sap.com/irj/scn/profile?editmode=true&userid=3828796

and check my answer.

Regards

Sachin

Former Member
0 Kudos

<CONSTANTS: GR_NAME LIKE APQI-GROUPID VALUE 'ZSATXD01', "HOLDS GROUP NAME

T_CODE LIKE TSTC-TCODE VALUE 'XD01'. "HOLDS TR CODE

DATA: S_FLAG. "FLAG TO HOLD SESSION STATUS

DATA: DATE1 LIKE SY-DATUM. "VARIABLE TO HOLD THE CURRENT DATE

*INTERNAL TABLE HODS THE XD01 FIELDS

DATA: BEGIN OF IT_RECORD OCCURS 0,

KTOKD(4),

KUNNR(16),

BUKRS(4),

VKORG(4),

VTWEG(2),

SPART(2),

REF_KUNNR(16),

ANRED(15),

NAME1(35),

SORTL(10),

LAND1(3),

SPRAS(2),

CIVVE(1),

AWAHR(3),

WAERS(5),

KZAZU(1),

ANTLF(1),

END OF IT_RECORD.

*INTERNAL TABLE FOR BDCDATA STRUCTURE

DATA: BEGIN OF IT_BDCDATA OCCURS 0.

INCLUDE STRUCTURE BDCDATA.

DATA: END OF IT_BDCDATA.

*INTERNAL TABLE HOLDS MESSAGES

DATA: BEGIN OF IT_BDCMSGCOLL OCCURS 0.

INCLUDE STRUCTURE BDCMSGCOLL.

DATA: END OF IT_BDCMSGCOLL.

*INTERNAL TABLE FOR MENU

*DATA: BEGIN OF IT_MENU1 OCCURS 0,

  • ITEM(10),

  • END OF IT_MENU1.

DATE1 = SY-DATUM.

START-OF-SELECTION.

*Sub Routine to Read Data from Presentation Server Flat file

PERFORM READ_DATA.

*Sub Routine to Write Data to App Srv

PERFORM DATA_TO_APP_SRV.

*Sub Routine to Read Data form App Srv into Internal Table

PERFORM READ_APP_DATA.

*Sub Routine to Write Data to Session

PERFORM WRITE_DATA.

END-OF-SELECTION.

WRITE:/30 'CLICK OPEN SESSION BUTTON TO SEE THE ERRONEOUS RECORDS'.

SET TITLEBAR 'ZTL1' WITH SY-UNAME SY-DATUM.

SET PF-STATUS 'ZM1'.

AT USER-COMMAND.

CASE SY-UCOMM.

WHEN 'SM35'.

MESSAGE I010 WITH TEXT-003.

CALL TRANSACTION 'SM35'.

WHEN 'ALOG'.

MESSAGE I010 WITH TEXT-004.

SUBMIT RSBDCLOG WITH MAPPE = GR_NAME AND RETURN.

WHEN 'EXIT'.

LEAVE PROGRAM.

WHEN 'DELS'.

SUBMIT RSBDCDRU WITH MAPPE = GR_NAME AND RETURN.

ENDCASE.

FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR IT_BDCDATA.

IT_BDCDATA-PROGRAM = PROGRAM.

IT_BDCDATA-DYNPRO = DYNPRO.

IT_BDCDATA-DYNBEGIN = 'X'.

APPEND IT_BDCDATA.

ENDFORM.

FORM BDC_FIELD USING FNAM FVAL.

IF NOT FVAL IS INITIAL.

CLEAR IT_BDCDATA.

IT_BDCDATA-FNAM = FNAM.

IT_BDCDATA-FVAL = FVAL.

APPEND IT_BDCDATA.

ENDIF.

ENDFORM.

FORM READ_DATA.

CALL FUNCTION 'UPLOAD'

EXPORTING

  • CODEPAGE = ' '

FILENAME = 'C:\ABC'

FILETYPE = 'ASC'

  • ITEM = ' '

  • FILEMASK_MASK = ' '

  • FILEMASK_TEXT = ' '

  • FILETYPE_NO_CHANGE = ' '

  • FILEMASK_ALL = ' '

  • FILETYPE_NO_SHOW = ' '

  • LINE_EXIT = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • SILENT = 'S'

  • IMPORTING

  • FILESIZE =

  • CANCEL =

  • ACT_FILENAME =

  • ACT_FILETYPE =

TABLES

DATA_TAB = IT_RECORD

EXCEPTIONS

CONVERSION_ERROR = 1

INVALID_TABLE_WIDTH = 2

INVALID_TYPE = 3

NO_BATCH = 4

UNKNOWN_ERROR = 5

GUI_REFUSE_FILETRANSFER = 6

OTHERS = 7.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " READ_DATA

FORM WRITE_DATA.

LOOP AT IT_RECORD.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0100'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RF02D-KUNNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'ENTR'.

PERFORM BDC_FIELD USING 'RF02D-KTOKD'

IT_RECORD-KTOKD.

PERFORM BDC_FIELD USING 'RF02D-KUNNR'

IT_RECORD-KUNNR.

PERFORM BDC_FIELD USING 'RF02D-BUKRS'

IT_RECORD-BUKRS.

PERFORM BDC_FIELD USING 'RF02D-VKORG'

IT_RECORD-VKORG.

PERFORM BDC_FIELD USING 'RF02D-VTWEG'

IT_RECORD-VTWEG.

PERFORM BDC_FIELD USING 'RF02D-SPART'

IT_RECORD-SPART.

PERFORM BDC_FIELD USING 'RF02D-REF_KUNNR'

IT_RECORD-REF_KUNNR.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0110'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNA1-SPRAS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'KNA1-ANRED'

IT_RECORD-ANRED.

PERFORM BDC_FIELD USING 'KNA1-NAME1'

IT_RECORD-NAME1.

PERFORM BDC_FIELD USING 'KNA1-SORTL'

IT_RECORD-SORTL.

PERFORM BDC_FIELD USING 'KNA1-LAND1'

IT_RECORD-LAND1.

PERFORM BDC_FIELD USING 'KNA1-SPRAS'

IT_RECORD-SPRAS.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0120'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNA1-LIFNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0125'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNA1-NIELS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0130'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNBK-BANKS(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0340'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RF02D-KUNNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0370'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RF02D-KUNNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_FIELD USING 'KNA1-CIVVE'

IT_RECORD-CIVVE.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0360'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNVK-NAMEV(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0210'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNB1-AKONT'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0215'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNB1-ZTERM'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0220'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNB5-MAHNA'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0230'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNB1-VRSNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0310'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNVV-BZIRK'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'KNVV-AWAHR'

IT_RECORD-AWAHR.

PERFORM BDC_FIELD USING 'KNVV-WAERS'

IT_RECORD-WAERS.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0315'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNVV-LPRIO'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'KNVV-KZAZU'

IT_RECORD-KZAZU.

PERFORM BDC_FIELD USING 'KNVV-ANTLF'

IT_RECORD-ANTLF.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0320'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNVV-PERFK'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '1350'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RF02D-KUNNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPMF02D' '0324'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNVP-PARVW(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

*Calling the XD01 transaction and placing erroneous messages into

*BDCMSGCOLL

CALL TRANSACTION 'XD01'

USING IT_BDCDATA

MODE 'N'

UPDATE 'S'

MESSAGES INTO IT_BDCMSGCOLL.

*If Transaction is not Successfull then open a Session

IF SY-SUBRC <> 0.

IF S_FLAG EQ SPACE.

PERFORM OPEN_GROUP.

S_FLAG = 'X'.

ENDIF.

*Writing Erroneous Records into Session

PERFORM INSERT_REC.

ENDIF.

REFRESH IT_BDCDATA.

ENDLOOP.

*Closing the Session if it is opened

IF S_FLAG = 'X'.

PERFORM CLOSE_GROUP.

ENDIF.

ENDFORM. " WRITE_DATA

FORM DATA_TO_APP_SRV.

IF NOT IT_RECORD[] IS INITIAL.

OPEN DATASET 'SATXD01' FOR OUTPUT IN TEXT MODE.

LOOP AT IT_RECORD.

TRANSFER IT_RECORD TO 'SATXD01'.

ENDLOOP.

ELSE.

MESSAGE E010 WITH TEXT-001.

ENDIF.

CLOSE DATASET 'SATXD01'.

ENDFORM. " DATA_TO_APP_SRV

FORM READ_APP_DATA.

CLEAR IT_RECORD.

REFRESH IT_RECORD.

OPEN DATASET 'SATXD01' FOR INPUT IN TEXT MODE.

DO.

READ DATASET 'SATXD01' INTO IT_RECORD.

IF SY-SUBRC <> 0.

EXIT.

ENDIF.

APPEND IT_RECORD.

ENDDO.

CLOSE DATASET 'SATXD01'.

ENDFORM. " READ_APP_DATA

FORM OPEN_GROUP.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

  • DEST = FILLER8

GROUP = GR_NAME

HOLDDATE = DATE1

KEEP = 'X'

USER = SY-UNAME

  • RECORD = FILLER1

  • IMPORTING

  • QID =

EXCEPTIONS

CLIENT_INVALID = 1

DESTINATION_INVALID = 2

GROUP_INVALID = 3

GROUP_IS_LOCKED = 4

HOLDDATE_INVALID = 5

INTERNAL_ERROR = 6

QUEUE_ERROR = 7

RUNNING = 8

SYSTEM_LOCK_ERROR = 9

USER_INVALID = 10

OTHERS = 11.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " OPEN_GROUP

&----


*& Form INSERT_REC

&----


  • SUB ROUTINE WRITES DATA TO SESSION

----


  • --> p1 text

  • <-- p2 text

----


FORM INSERT_REC.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = T_CODE

  • POST_LOCAL = NOVBLOCAL

  • PRINTING = NOPRINT

TABLES

DYNPROTAB = IT_BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 6

OTHERS = 7.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " INSERT_REC

&----


*& Form CLOSE_GROUP

&----


  • SUB ROUTINE CLOSES SESSION

----


  • --> p1 text

  • <-- p2 text

----


FORM CLOSE_GROUP.

CALL FUNCTION 'BDC_CLOSE_GROUP'

EXCEPTIONS

NOT_OPEN = 1

QUEUE_ERROR = 2

OTHERS = 3.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " CLOSE_GROUP >