Export xls using BDC
REPORT ysdr7900 MESSAGE-ID yy.
*-----------------------------------------------------------------------
* P R O G R A M
* D E S C R I P T I O N
*
* Create commodity codes from excel sheet.
*
*-----------------------------------------------------------------------
* Transaction: ZSD122
*-----------------------------------------------------------------------
TYPES: BEGIN OF st_inrec,
land1 TYPE land1,
stawn TYPE stawn,
text1 TYPE bezei40,
bemeh TYPE bemeh,
END OF st_inrec.
*-----------------------------------------------------------------------
* Table Types
*-----------------------------------------------------------------------
*types: tt_
*-----------------------------------------------------------------------
* Global Internal Tables
*-----------------------------------------------------------------------
DATA: gi_ycppvas TYPE STANDARD TABLE OF ycppvas.
DATA: gi_excel TYPE STANDARD TABLE OF alsmex_tabline.
DATA: gi_inrec TYPE STANDARD TABLE OF st_inrec,
gi_inrec_update TYPE STANDARD TABLE OF st_inrec.
*-----------------------------------------------------------------------
* Global variables
*-----------------------------------------------------------------------
DATA: g_run TYPE char1,
g_noof_lines TYPE sytabix,
g_excel TYPE alsmex_tabline,
g_inrec TYPE st_inrec,
g_inrec_update TYPE st_inrec.
*-----------------------------------------------------------------------
* Includes
*-----------------------------------------------------------------------
INCLUDE: ybcl1000, ybatch2.
*-----------------------------------------------------------------------
* Selection screen.
*-----------------------------------------------------------------------
SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME TITLE text-010.
PARAMETERS: a_file(128) TYPE c LOWER CASE OBLIGATORY
DEFAULT 'C:\Users\dkniolje\Desktop\New commodity code 18069029.xlsx',
a_trtext LIKE ko013-as4text OBLIGATORY
DEFAULT 'R????? Transport description'.
SELECTION-SCREEN END OF BLOCK 2.
*-----------------------------------------------------------------------
* at selection screen
*-----------------------------------------------------------------------
AT SELECTION-SCREEN.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR a_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'M:\files\*.*'
IMPORTING
file_name = a_file.
*-----------------------------------------------------------------------
* START-OF-SELECTION.
*-----------------------------------------------------------------------
START-OF-SELECTION.
PERFORM upload_from_excel.
PERFORM process_data.
PERFORM close_bdc.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form UPLOAD_FROM_EXCEL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM upload_from_excel .
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = a_file
i_begin_col = 1
i_begin_row = 1
i_end_col = 256
i_end_row = 65536
TABLES
intern = gi_excel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 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.
REFRESH gi_inrec.
LOOP AT gi_excel INTO g_excel.
IF g_excel-row = 1.
CONTINUE.
ENDIF.
AT NEW row.
CLEAR g_inrec.
ENDAT.
CASE g_excel-col.
WHEN 1.
* UNPACK g_excel-value TO g_inrec-land1.
g_inrec-land1 = g_excel-value.
WHEN 2.
g_inrec-stawn = g_excel-value.
WHEN 3.
g_inrec-text1 = g_excel-value.
WHEN 4.
g_inrec-bemeh = g_excel-value.
ENDCASE.
AT END OF row.
APPEND g_inrec TO gi_inrec.
ENDAT.
ENDLOOP.
ENDFORM. " UPLOAD_FROM_EXCEL
*&---------------------------------------------------------------------*
*& Form process_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM process_data .
PERFORM check_ins_or_upd.
PERFORM insert_new_commodity_codes.
PERFORM update_commodity_codes.
ENDFORM. "process_data
*&---------------------------------------------------------------------*
*& Form CHECK_INS_OR_UPD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM check_ins_or_upd .
DATA: l_land1 TYPE land1.
* Check if it is a insert or an update of T604
REFRESH gi_inrec_update.
LOOP AT gi_inrec INTO g_inrec.
SELECT SINGLE land1 INTO l_land1
FROM t604
WHERE land1 = g_inrec-land1
AND stawn = g_inrec-stawn.
IF sy-subrc = 0.
APPEND g_inrec TO gi_inrec_update.
DELETE gi_inrec.
ENDIF.
ENDLOOP.
ENDFORM. " CHECK_INS_OR_UPD
*&---------------------------------------------------------------------*
*& Form UPDATE_COMMODITY_CODES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM update_commodity_codes .
DATA: l_noof_lines TYPE sytabix,
l_sy_tabix TYPE sytabix.
l_noof_lines = lines( gi_inrec_update ).
LOOP AT gi_inrec_update INTO g_inrec_update.
l_sy_tabix = sy-tabix.
REFRESH gi_bdcdata.
PERFORM dynpro USING: 'X' 'SAPLSVIX' '0210',
' ' 'MARK_CHECKBOX(01)' 'X',
' ' 'MARK_CHECKBOX(02)' 'X'.
PERFORM dynpro USING: 'X' 'SAPLSVIX' '0100',
' ' 'D0100_FIELD_TAB-LOWER_LIMIT(01)' g_inrec_update-land1,
' ' 'D0100_FIELD_TAB-LOWER_LIMIT(02)' g_inrec_update-stawn.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'V_T604-TEXT1' g_inrec_update-text1,
' ' 'V_T604-BEMEH' g_inrec_update-bemeh,
' ' 'BDC_OKCODE' '=SAVE'.
IF g_noof_lines = 0 AND "Commodity codes inserted
l_sy_tabix = 1.
PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
' ' 'BDC_OKCODE' '=INSA'. "Create new transport
PERFORM dynpro USING: 'X' 'SAPLSTR8' '0102',
' ' 'KO013-AS4TEXT' a_trtext,
' ' 'BDC_OKCODE' '=CREA'. "Create new transport
PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
' ' 'BDC_OKCODE' '=LOCK'.
ELSE.
PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
' ' 'BDC_OKCODE' '=LOCK'.
ENDIF.
* ELSE.
* PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
* ' ' 'BDC_OKCODE' '=LOCK'.
* ENDIF.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'BDC_OKCODE' '=UEBE'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '=BACK'.
CALL TRANSACTION 'OVE1' USING gi_bdcdata MODE 'A'.
* CALL TRANSACTION 'OVE1' USING gi_bdcdata MODE 'N'.
IF sy-subrc NE 0.
PERFORM open_bdc
USING 'YSDR7900'.
PERFORM insert_bdc USING 'OVE1'.
WRITE:/ 'Error. Go to transaction SM35 ',
'Process session YSDR7900'.
ELSE.
WRITE:/ g_inrec_update-land1,
g_inrec_update-stawn, ' updated'.
ENDIF.
ENDLOOP.
WRITE: l_noof_lines, 'Records updated'.
ENDFORM. " UPDATE_COMMODITY_CODES
*&---------------------------------------------------------------------*
*& Form INSERT_NEW_COMMODITY_CODES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM insert_new_commodity_codes .
DATA: l_sy_tabix TYPE sytabix,
l_count TYPE i.
g_noof_lines = lines( gi_inrec ).
CLEAR l_count.
SELECT COUNT( * ) INTO l_count
FROM t604
WHERE stawn = g_inrec-stawn.
REFRESH gi_bdcdata.
LOOP AT gi_inrec INTO g_inrec.
l_sy_tabix = sy-tabix.
IF l_sy_tabix = 1.
PERFORM dynpro USING: 'X' 'SAPLSVIX' '0210',
' ' 'MARK_CHECKBOX(02)' 'X'.
PERFORM dynpro USING: 'X' 'SAPLSVIX' '0100',
' ' 'D0100_FIELD_TAB-LOWER_LIMIT(01)' g_inrec-stawn.
IF l_count = 1. "Exactly one record exist for this commodity code
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'BDC_OKCODE' '=NEWL'. "New Entries
ELSE.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '=NEWL'. "New Entries
ENDIF.
ENDIF.
IF l_sy_tabix = g_noof_lines.
* last record in gi_inrec.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'V_T604-LAND1' g_inrec-land1,
' ' 'V_T604-STAWN' g_inrec-stawn,
' ' 'V_T604-TEXT1' g_inrec-text1,
' ' 'V_T604-BEMEH' g_inrec-bemeh,
' ' 'BDC_OKCODE' '=SAVE'.
ELSE.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'V_T604-LAND1' g_inrec-land1,
' ' 'V_T604-STAWN' g_inrec-stawn,
' ' 'V_T604-TEXT1' g_inrec-text1,
' ' 'V_T604-BEMEH' g_inrec-bemeh,
* ' ' 'BDC_OKCODE' '=NEXT'.
*Hej Rene. Jeg havde lavet programmet uden translate.
*Det som er kommenteret ud var starten på og få translate med,
* men jeg kunne ikke få det til at virke.
' ' 'BDC_OKCODE' '=UEBE'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'VIM_MARKED(01)' 'X',
' ' 'BDC_OKCODE' '=TEXT'. "Translate
PERFORM dynpro USING: 'X' 'SAPMSSY0' '0120',
' ' 'BDC_OKCODE' '=AMAR'.
PERFORM dynpro USING: 'X' 'SAPMSSY0' '0120',
' ' 'BDC_OKCODE' '=ENTR'.
PERFORM dynpro USING: 'X' 'SAPLSVIM' '0100',
' ' 'VIM_D0100_WORKAREA-TEXT1(12)' 'CZ text',
' ' 'BDC_OKCODE' '/ENTR'.
PERFORM dynpro USING: 'X' 'SAPLSVIM' '0100',
' ' 'VIM_D0100_WORKAREA-TEXT1(02)' 'danish text',
' ' 'VIM_D0100_WORKAREA-TEXT1(09)' 'spanish text',
' ' 'BDC_OKCODE' '=OKAY'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '=SAVE'.
PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
' ' 'BDC_OKCODE' '=LOCK'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '/00'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '=BACK'.
ENDIF.
ENDLOOP.
IF g_noof_lines <> 0.
PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
' ' 'BDC_OKCODE' '=INSA'. "Create new transport
PERFORM dynpro USING: 'X' 'SAPLSTR8' '0102',
' ' 'KO013-AS4TEXT' a_trtext,
' ' 'BDC_OKCODE' '=CREA'. "Create new transport
PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
' ' 'BDC_OKCODE' '=LOCK'.
IF g_noof_lines = 1. "Only 1 line in input file
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'BDC_OKCODE' '=SAVE'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'BDC_OKCODE' '=UEBE'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'BDC_OKCODE' '=ENDE'.
ELSE.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'BDC_OKCODE' '=UEBE'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '=BACK'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '=BACK'.
ENDIF.
*
* CALL TRANSACTION 'OVE1' USING gi_bdcdata MODE 'A'.
* CALL TRANSACTION 'OVE1' USING gi_bdcdata MODE 'N'.
* IF sy-subrc NE 0.
PERFORM open_bdc
USING 'YSDR7900'.
PERFORM insert_bdc USING 'OVE1'.
WRITE:/ 'Error. Go to transaction SM35 ',
'Process session YSDR7900'.
* ELSE.
* WRITE: g_noof_lines, 'Records inserted'.
* ENDIF.
ENDIF.
ENDFORM. " INSERT_NEW_COMMODITY_CODES
*-----------------------------------------------------------------------
* P R O G R A M
* D E S C R I P T I O N
*
* Create commodity codes from excel sheet.
*
*-----------------------------------------------------------------------
* Transaction: ZSD122
*-----------------------------------------------------------------------
TYPES: BEGIN OF st_inrec,
land1 TYPE land1,
stawn TYPE stawn,
text1 TYPE bezei40,
bemeh TYPE bemeh,
END OF st_inrec.
*-----------------------------------------------------------------------
* Table Types
*-----------------------------------------------------------------------
*types: tt_
*-----------------------------------------------------------------------
* Global Internal Tables
*-----------------------------------------------------------------------
DATA: gi_ycppvas TYPE STANDARD TABLE OF ycppvas.
DATA: gi_excel TYPE STANDARD TABLE OF alsmex_tabline.
DATA: gi_inrec TYPE STANDARD TABLE OF st_inrec,
gi_inrec_update TYPE STANDARD TABLE OF st_inrec.
*-----------------------------------------------------------------------
* Global variables
*-----------------------------------------------------------------------
DATA: g_run TYPE char1,
g_noof_lines TYPE sytabix,
g_excel TYPE alsmex_tabline,
g_inrec TYPE st_inrec,
g_inrec_update TYPE st_inrec.
*-----------------------------------------------------------------------
* Includes
*-----------------------------------------------------------------------
INCLUDE: ybcl1000, ybatch2.
*-----------------------------------------------------------------------
* Selection screen.
*-----------------------------------------------------------------------
SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME TITLE text-010.
PARAMETERS: a_file(128) TYPE c LOWER CASE OBLIGATORY
DEFAULT 'C:\Users\dkniolje\Desktop\New commodity code 18069029.xlsx',
a_trtext LIKE ko013-as4text OBLIGATORY
DEFAULT 'R????? Transport description'.
SELECTION-SCREEN END OF BLOCK 2.
*-----------------------------------------------------------------------
* at selection screen
*-----------------------------------------------------------------------
AT SELECTION-SCREEN.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR a_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'M:\files\*.*'
IMPORTING
file_name = a_file.
*-----------------------------------------------------------------------
* START-OF-SELECTION.
*-----------------------------------------------------------------------
START-OF-SELECTION.
PERFORM upload_from_excel.
PERFORM process_data.
PERFORM close_bdc.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form UPLOAD_FROM_EXCEL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM upload_from_excel .
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = a_file
i_begin_col = 1
i_begin_row = 1
i_end_col = 256
i_end_row = 65536
TABLES
intern = gi_excel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 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.
REFRESH gi_inrec.
LOOP AT gi_excel INTO g_excel.
IF g_excel-row = 1.
CONTINUE.
ENDIF.
AT NEW row.
CLEAR g_inrec.
ENDAT.
CASE g_excel-col.
WHEN 1.
* UNPACK g_excel-value TO g_inrec-land1.
g_inrec-land1 = g_excel-value.
WHEN 2.
g_inrec-stawn = g_excel-value.
WHEN 3.
g_inrec-text1 = g_excel-value.
WHEN 4.
g_inrec-bemeh = g_excel-value.
ENDCASE.
AT END OF row.
APPEND g_inrec TO gi_inrec.
ENDAT.
ENDLOOP.
ENDFORM. " UPLOAD_FROM_EXCEL
*&---------------------------------------------------------------------*
*& Form process_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM process_data .
PERFORM check_ins_or_upd.
PERFORM insert_new_commodity_codes.
PERFORM update_commodity_codes.
ENDFORM. "process_data
*&---------------------------------------------------------------------*
*& Form CHECK_INS_OR_UPD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM check_ins_or_upd .
DATA: l_land1 TYPE land1.
* Check if it is a insert or an update of T604
REFRESH gi_inrec_update.
LOOP AT gi_inrec INTO g_inrec.
SELECT SINGLE land1 INTO l_land1
FROM t604
WHERE land1 = g_inrec-land1
AND stawn = g_inrec-stawn.
IF sy-subrc = 0.
APPEND g_inrec TO gi_inrec_update.
DELETE gi_inrec.
ENDIF.
ENDLOOP.
ENDFORM. " CHECK_INS_OR_UPD
*&---------------------------------------------------------------------*
*& Form UPDATE_COMMODITY_CODES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM update_commodity_codes .
DATA: l_noof_lines TYPE sytabix,
l_sy_tabix TYPE sytabix.
l_noof_lines = lines( gi_inrec_update ).
LOOP AT gi_inrec_update INTO g_inrec_update.
l_sy_tabix = sy-tabix.
REFRESH gi_bdcdata.
PERFORM dynpro USING: 'X' 'SAPLSVIX' '0210',
' ' 'MARK_CHECKBOX(01)' 'X',
' ' 'MARK_CHECKBOX(02)' 'X'.
PERFORM dynpro USING: 'X' 'SAPLSVIX' '0100',
' ' 'D0100_FIELD_TAB-LOWER_LIMIT(01)' g_inrec_update-land1,
' ' 'D0100_FIELD_TAB-LOWER_LIMIT(02)' g_inrec_update-stawn.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'V_T604-TEXT1' g_inrec_update-text1,
' ' 'V_T604-BEMEH' g_inrec_update-bemeh,
' ' 'BDC_OKCODE' '=SAVE'.
IF g_noof_lines = 0 AND "Commodity codes inserted
l_sy_tabix = 1.
PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
' ' 'BDC_OKCODE' '=INSA'. "Create new transport
PERFORM dynpro USING: 'X' 'SAPLSTR8' '0102',
' ' 'KO013-AS4TEXT' a_trtext,
' ' 'BDC_OKCODE' '=CREA'. "Create new transport
PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
' ' 'BDC_OKCODE' '=LOCK'.
ELSE.
PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
' ' 'BDC_OKCODE' '=LOCK'.
ENDIF.
* ELSE.
* PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
* ' ' 'BDC_OKCODE' '=LOCK'.
* ENDIF.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'BDC_OKCODE' '=UEBE'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '=BACK'.
CALL TRANSACTION 'OVE1' USING gi_bdcdata MODE 'A'.
* CALL TRANSACTION 'OVE1' USING gi_bdcdata MODE 'N'.
IF sy-subrc NE 0.
PERFORM open_bdc
USING 'YSDR7900'.
PERFORM insert_bdc USING 'OVE1'.
WRITE:/ 'Error. Go to transaction SM35 ',
'Process session YSDR7900'.
ELSE.
WRITE:/ g_inrec_update-land1,
g_inrec_update-stawn, ' updated'.
ENDIF.
ENDLOOP.
WRITE: l_noof_lines, 'Records updated'.
ENDFORM. " UPDATE_COMMODITY_CODES
*&---------------------------------------------------------------------*
*& Form INSERT_NEW_COMMODITY_CODES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM insert_new_commodity_codes .
DATA: l_sy_tabix TYPE sytabix,
l_count TYPE i.
g_noof_lines = lines( gi_inrec ).
CLEAR l_count.
SELECT COUNT( * ) INTO l_count
FROM t604
WHERE stawn = g_inrec-stawn.
REFRESH gi_bdcdata.
LOOP AT gi_inrec INTO g_inrec.
l_sy_tabix = sy-tabix.
IF l_sy_tabix = 1.
PERFORM dynpro USING: 'X' 'SAPLSVIX' '0210',
' ' 'MARK_CHECKBOX(02)' 'X'.
PERFORM dynpro USING: 'X' 'SAPLSVIX' '0100',
' ' 'D0100_FIELD_TAB-LOWER_LIMIT(01)' g_inrec-stawn.
IF l_count = 1. "Exactly one record exist for this commodity code
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'BDC_OKCODE' '=NEWL'. "New Entries
ELSE.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '=NEWL'. "New Entries
ENDIF.
ENDIF.
IF l_sy_tabix = g_noof_lines.
* last record in gi_inrec.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'V_T604-LAND1' g_inrec-land1,
' ' 'V_T604-STAWN' g_inrec-stawn,
' ' 'V_T604-TEXT1' g_inrec-text1,
' ' 'V_T604-BEMEH' g_inrec-bemeh,
' ' 'BDC_OKCODE' '=SAVE'.
ELSE.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'V_T604-LAND1' g_inrec-land1,
' ' 'V_T604-STAWN' g_inrec-stawn,
' ' 'V_T604-TEXT1' g_inrec-text1,
' ' 'V_T604-BEMEH' g_inrec-bemeh,
* ' ' 'BDC_OKCODE' '=NEXT'.
*Hej Rene. Jeg havde lavet programmet uden translate.
*Det som er kommenteret ud var starten på og få translate med,
* men jeg kunne ikke få det til at virke.
' ' 'BDC_OKCODE' '=UEBE'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'VIM_MARKED(01)' 'X',
' ' 'BDC_OKCODE' '=TEXT'. "Translate
PERFORM dynpro USING: 'X' 'SAPMSSY0' '0120',
' ' 'BDC_OKCODE' '=AMAR'.
PERFORM dynpro USING: 'X' 'SAPMSSY0' '0120',
' ' 'BDC_OKCODE' '=ENTR'.
PERFORM dynpro USING: 'X' 'SAPLSVIM' '0100',
' ' 'VIM_D0100_WORKAREA-TEXT1(12)' 'CZ text',
' ' 'BDC_OKCODE' '/ENTR'.
PERFORM dynpro USING: 'X' 'SAPLSVIM' '0100',
' ' 'VIM_D0100_WORKAREA-TEXT1(02)' 'danish text',
' ' 'VIM_D0100_WORKAREA-TEXT1(09)' 'spanish text',
' ' 'BDC_OKCODE' '=OKAY'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '=SAVE'.
PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
' ' 'BDC_OKCODE' '=LOCK'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '/00'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '=BACK'.
ENDIF.
ENDLOOP.
IF g_noof_lines <> 0.
PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
' ' 'BDC_OKCODE' '=INSA'. "Create new transport
PERFORM dynpro USING: 'X' 'SAPLSTR8' '0102',
' ' 'KO013-AS4TEXT' a_trtext,
' ' 'BDC_OKCODE' '=CREA'. "Create new transport
PERFORM dynpro USING: 'X' 'SAPLSTRD' '0300',
' ' 'BDC_OKCODE' '=LOCK'.
IF g_noof_lines = 1. "Only 1 line in input file
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'BDC_OKCODE' '=SAVE'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'BDC_OKCODE' '=UEBE'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'BDC_OKCODE' '=ENDE'.
ELSE.
PERFORM dynpro USING: 'X' 'SAPL080E' '0040',
' ' 'BDC_OKCODE' '=UEBE'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '=BACK'.
PERFORM dynpro USING: 'X' 'SAPL080E' '0020',
' ' 'BDC_OKCODE' '=BACK'.
ENDIF.
*
* CALL TRANSACTION 'OVE1' USING gi_bdcdata MODE 'A'.
* CALL TRANSACTION 'OVE1' USING gi_bdcdata MODE 'N'.
* IF sy-subrc NE 0.
PERFORM open_bdc
USING 'YSDR7900'.
PERFORM insert_bdc USING 'OVE1'.
WRITE:/ 'Error. Go to transaction SM35 ',
'Process session YSDR7900'.
* ELSE.
* WRITE: g_noof_lines, 'Records inserted'.
* ENDIF.
ENDIF.
ENDFORM. " INSERT_NEW_COMMODITY_CODES
Comments
Post a Comment