Skip to Content
0
Former Member
Nov 28, 2006 at 10:57 AM

READ_TEXT IN BDC!!!

61 Views

I AM DOING A BDC ON VA01.........AND I AM SENDING THE CODE I HAV WRITTEN SO FAR........

DATA: BEGIN OF T_RECORD OCCURS 0,

AUART LIKE VBAK-AUART,

VBELN LIKE VBAK-VBELN,

BSTKD LIKE VBKD-BSTKD,

KUNNR LIKE KNA1-KUNNR,

KUNNR1 LIKE KNA1-KUNNR,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

ZMENG LIKE VBAP-ZMENG,

END OF T_RECORD.

DATA : BEGIN OF T_TEXT OCCURS 0,

VBELN LIKE VBAK-VBELN,

TEXT LIKE TLINE-TDLINE,

END OF T_TEXT.

DATA : BEGIN OF TTHEAD OCCURS 0,

TDOBJECT LIKE THEAD-TDOBJECT,

TDNAME LIKE THEAD-TDNAME,

TDID LIKE THEAD-TDID,

TDSPRAS LIKE THEAD-TDSPRAS,

END OF TTHEAD.

DATA : BDCDATA TYPE STANDARD TABLE OF BDCDATA INITIAL SIZE 0 WITH HEADER LINE,

MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE,

G_LANG LIKE SY-LANGU.

  • End generated data section ***

DATA : T_THEAD TYPE STANDARD TABLE OF THEAD INITIAL SIZE 0 WITH HEADER LINE,

T_TLINE TYPE STANDARD TABLE OF TLINE INITIAL SIZE 0 WITH HEADER LINE.

DATA : V_TDNAME(70).

CLEAR V_TDNAME.

CALL FUNCTION 'UPLOAD'

EXPORTING

  • CODEPAGE = ' '

FILENAME = 'C:\Documents and Settings\vasukir\Desktop\VA01-BDC.txt'

FILETYPE = 'DAT'

  • 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 = T_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.

ELSE.

ENDIF.

CALL FUNCTION 'UPLOAD'

EXPORTING

  • CODEPAGE = ' '

FILENAME = 'C:\Documents and Settings\vasukir\Desktop\va01-bdc-text.txt'

FILETYPE = 'DAT'

  • 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 = T_TEXT

  • 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.

LOOP AT T_TEXT.

MOVE T_TEXT-TEXT TO T_TLINE-TDLINE.

APPEND T_TLINE.

ENDLOOP.

*LOOP AT T_TLINE.

  • WRITE : / T_TLINE-TDLINE.

  • ENDLOOP.

CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'

EXPORTING

INPUT = 'E'

IMPORTING

OUTPUT = G_LANG

  • EXCEPTIONS

  • UNKNOWN_LANGUAGE = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

LOOP AT T_RECORD.

CONCATENATE T_RECORD-VBELN T_RECORD-POSNR INTO V_TDNAME.

MOVE V_TDNAME TO T_THEAD-TDNAME.

T_THEAD-TDOBJECT = 'VBBP'.

T_THEAD-TDID = '0001'.

T_THEAD-TDSPRAS = G_LANG.

APPEND T_THEAD.

ENDLOOP.

CALL FUNCTION 'READ_TEXT'

EXPORTING

  • CLIENT = SY-MANDT

ID = T_THEAD-TDID

LANGUAGE = T_THEAD-TDSPRAS

NAME = T_THEAD-TDNAME

OBJECT = T_THEAD-TDOBJECT

  • ARCHIVE_HANDLE = 0

  • LOCAL_CAT = ' '

  • IMPORTING

  • HEADER =

TABLES

LINES = T_TLINE

  • EXCEPTIONS

  • ID = 1

  • LANGUAGE = 2

  • NAME = 3

  • NOT_FOUND = 4

  • OBJECT = 5

  • REFERENCE_CHECK = 6

  • WRONG_ACCESS_TO_ARCHIVE = 7

  • OTHERS = 8

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CALL FUNCTION 'SAVE_TEXT'

EXPORTING

CLIENT = SY-MANDT

HEADER = T_THEAD

INSERT = ' '

SAVEMODE_DIRECT = 'X'

  • OWNER_SPECIFIED = ' '

  • LOCAL_CAT = ' '

  • IMPORTING

  • FUNCTION =

  • NEWHEADER =

TABLES

LINES = T_TLINE

EXCEPTIONS

ID = 1

LANGUAGE = 2

NAME = 3

OBJECT = 4

OTHERS = 5

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CALL FUNCTION 'COMMIT_TEXT'

  • EXPORTING

  • OBJECT = '*'

  • NAME = '*'

  • ID = '*'

  • LANGUAGE = '*'

  • SAVEMODE_DIRECT = ' '

  • KEEP = ' '

  • LOCAL_CAT = ' '

  • IMPORTING

  • COMMIT_COUNT =

  • TABLES

  • T_OBJECT =

  • T_NAME =

  • T_ID =

  • T_LANGUAGE =

.

START-OF-SELECTION.

LOOP AT T_RECORD.

REFRESH BDCDATA.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '0101'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'VBAK-AUART'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

PERFORM BDC_FIELD USING 'VBAK-AUART' T_RECORD-AUART.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

PERFORM BDC_FIELD USING 'VBAK-VBELN' T_RECORD-VBELN.

PERFORM BDC_FIELD USING 'KUAGV-KUNNR' T_RECORD-KUNNR.

PERFORM BDC_FIELD USING 'KUWEV-KUNNR' T_RECORD-KUNNR1.

PERFORM BDC_FIELD USING 'VBKD-BSTKD' T_RECORD-BSTKD.

PERFORM BDC_DYNPRO USING 'SAPMSSY0' '0120'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' '07/41'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=CHOO'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

*PERFORM BDC_FIELD USING 'VBAK-FAKSK' T_RECORD-FAKSK_006.

*PERFORM BDC_FIELD USING 'VBKD-PRSDT' T_RECORD-PRSDT_007.

PERFORM BDC_FIELD USING 'VBAP-POSNR(01)' T_RECORD-POSNR.

PERFORM BDC_FIELD USING 'RV45A-MABNR(01)' T_RECORD-MATNR.

*PERFORM BDC_FIELD USING 'RV45A-MABNR(02)' T_RECORD-MABNR_02_009.

PERFORM BDC_FIELD USING 'VBAP-ZMENG(01)' T_RECORD-ZMENG.

*PERFORM BDC_FIELD USING 'VBAP-ZMENG(02)' T_RECORD-ZMENG_02_011.

*PERFORM BDC_FIELD USING 'VBAP-POSNR(01)' T_RECORD-POSNR_01_012.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=PTEX_SUB'.

*PERFORM BDC_FIELD USING 'VBKD-BSTKD' T_RECORD-BSTKD_014.

*PERFORM BDC_FIELD USING 'KUAGV-KUNNR' T_RECORD-KUNNR_015.

*PERFORM BDC_FIELD USING 'KUWEV-KUNNR' T_RECORD-KUNNR_016.

*PERFORM BDC_FIELD USING 'VBKD-FKDAT' T_RECORD-FKDAT_017.

*PERFORM BDC_FIELD USING 'VBAK-FAKSK' T_RECORD-FAKSK_018.

*PERFORM BDC_FIELD USING 'VBKD-PRSDT' T_RECORD-PRSDT_019.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'VBAP-POSNR(01)'.

*PERFORM BDC_FIELD USING 'RV45A-VBAP_SELKZ(01)' T_RECORD-VBAP_SELKZ_01_020.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4003'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=%_GC 267 22'.

PERFORM BDC_FIELD USING 'LV70T-SPRAS' T_THEAD-TDSPRAS.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4003'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/EBACK'.

*PERFORM BDC_FIELD USING 'LV70T-SPRAS' T_RECORD-SPRAS_022.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=PTEX_SUB'.

*PERFORM BDC_FIELD USING 'VBKD-BSTKD' T_RECORD-BSTKD_023.

*PERFORM BDC_FIELD USING 'KUAGV-KUNNR' T_RECORD-KUNNR_024.

*PERFORM BDC_FIELD USING 'KUWEV-KUNNR' T_RECORD-KUNNR_025.

*PERFORM BDC_FIELD USING 'VBKD-FKDAT' T_RECORD-FKDAT_026.

*PERFORM BDC_FIELD USING 'VBAK-FAKSK' T_RECORD-FAKSK_027.

*PERFORM BDC_FIELD USING 'VBKD-PRSDT' T_RECORD-PRSDT_028.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'VBAP-POSNR(02)'.

*PERFORM BDC_FIELD USING 'RV45A-VBAP_SELKZ(02)' T_RECORD-VBAP_SELKZ_02_029.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4003'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SICH'.

*PERFORM BDC_FIELD USING 'LV70T-SPRAS' T_RECORD-SPRAS_030.

PERFORM BDC_DYNPRO USING 'SAPLSPO2' '0101'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=OPT1'.

*PERFORM BDC_TRANSACTION USING 'VA01'.

CALL TRANSACTION 'VA01' USING BDCDATA

MODE 'A'

UPDATE 'S'

MESSAGES INTO MESSTAB.

ENDLOOP.

----


  • Start new screen *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR BDCDATA.

BDCDATA-PROGRAM = PROGRAM.

BDCDATA-DYNPRO = DYNPRO.

BDCDATA-DYNBEGIN = 'X'.

APPEND BDCDATA.

ENDFORM.

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

IF FVAL <> SPACE.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

ENDIF.

ENDFORM.

WAT THE BDC HAS TO DO IS THAT FOR A PARTICULAR ITEM IT HAS TO TAKE THE TEXT USING THE FM'S AND SAVE IT AGAINST THAT PARTICULAR ITEM IN THE TRANSACTION...................COULD U TELL ME HOW TO DO THAT???