*&---------------------------------------------------------------------*
*& Report ZLMM_STXTMM01
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZLMM_STXTMM01.
* Declaration for TYPE-POOLS
TYPE-POOLS: TRUXS.
TABLES : BAPIMATHEAD,
BAPI_MVKE,
BAPI_MVKEX,
TLINE.
*Declaration for BAPI information(Structure)
TYPES:BEGIN OF LS_BAPI,
MATERIAL TYPE BAPIMATHEAD-MATERIAL,
SALES_ORG TYPE BAPI_MVKE-SALES_ORG,
DISTR_CHAN TYPE BAPI_MVKE-DISTR_CHAN,
SALES_ORG1 TYPE BAPI_MVKEX-SALES_ORG,
DISTR_CHAN1 TYPE BAPI_MVKEX-DISTR_CHAN,
TEXT TYPE STRING,
END OF LS_BAPI.
*Declarations for Internal Tables and Wrokareas
DATA : IT_LS_BAPI TYPE TABLE OF LS_BAPI,
WA_LS_BAPI TYPE LS_BAPI,
IT_TEXT TYPE TABLE OF TLINE,
WA_TEXT TYPE TLINE,
IT_RAW TYPE TRUXS_T_TEXT_DATA,
IT_RETURN TYPE TABLE OF BAPI_MATRETURN2,
WA_RETURN LIKE BAPIRET2,
RSTXT LIKE RSTXT-TDNAME.
*Parameters
PARAMETERS: P_FILE TYPE RLGRAP-FILENAME.
*Declaration for F4 help
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_FILE.
START-OF-SELECTION.
*To get the data from Excel sheet
PERFORM UPLOAD_SALES_TEXT.
PERFORM UPDATE_SALES_TEXT.
*&---------------------------------------------------------------------*
*& Form UPLOAD_FILE_ITAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM UPLOAD_SALES_TEXT .
*Read the material master
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
I_LINE_HEADER = 'X'
I_TAB_RAW_DATA = IT_RAW
I_FILENAME = P_FILE
TABLES
I_TAB_CONVERTED_DATA = IT_LS_BAPI
EXCEPTIONS
CONVERSION_FAILED = 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.
ENDFORM. "UPLOAD_SALES_TEXT
*&---------------------------------------------------------------------*
*& Form CALL_BAPI
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM UPDATE_SALES_TEXT.
LOOP AT IT_LS_BAPI INTO WA_LS_BAPI.
* Text
WA_TEXT-TDLINE = WA_LS_BAPI-TEXT.
APPEND WA_TEXT TO IT_TEXT.
* Passing the values to BAPI
BAPIMATHEAD-MATERIAL = WA_LS_BAPI-MATERIAL.
*Conversion for Material number with leading zeros
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = BAPIMATHEAD-MATERIAL
IMPORTING
OUTPUT = BAPIMATHEAD-MATERIAL.
BAPIMATHEAD-SALES_VIEW = 'X'.
BAPI_MVKE-SALES_ORG = WA_LS_BAPI-SALES_ORG.
BAPI_MVKE-DISTR_CHAN = WA_LS_BAPI-DISTR_CHAN.
BAPI_MVKEX-SALES_ORG = WA_LS_BAPI-SALES_ORG1.
BAPI_MVKEX-DISTR_CHAN = WA_LS_BAPI-DISTR_CHAN1.
************
CONCATENATE BAPIMATHEAD-MATERIAL BAPI_MVKE-SALES_ORG BAPI_MVKE-DISTR_CHAN INTO RSTXT.
************
*call BAPI for Loading the sales text in material master
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = BAPIMATHEAD
SALESDATA = BAPI_MVKE
SALESDATAX = BAPI_MVKEX
IMPORTING
RETURN = WA_RETURN
TABLES
RETURNMESSAGES = IT_RETURN.
IF WA_RETURN-TYPE EQ 'E'.
LOOP AT IT_RETURN INTO WA_RETURN.
WRITE :/ WA_RETURN-MESSAGE.
ENDLOOP.
ELSEIF
WA_RETURN-TYPE = 'S'.
WRITE : / 'Successfully Text Loaded'.
ENDIF.
*Sales text
CALL FUNCTION 'CREATE_TEXT'
EXPORTING
FID = '0001'
FLANGUAGE = 'E'
FNAME = RSTXT
FOBJECT = 'MVKE'
SAVE_DIRECT = 'X'
FFORMAT = '*'
TABLES
FLINES = IT_TEXT
EXCEPTIONS
NO_INIT = 1
NO_SAVE = 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.
ENDLOOP.
ENDFORM. "UPDATE_SALES_TEXT
*& Report ZLMM_STXTMM01
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZLMM_STXTMM01.
* Declaration for TYPE-POOLS
TYPE-POOLS: TRUXS.
TABLES : BAPIMATHEAD,
BAPI_MVKE,
BAPI_MVKEX,
TLINE.
*Declaration for BAPI information(Structure)
TYPES:BEGIN OF LS_BAPI,
MATERIAL TYPE BAPIMATHEAD-MATERIAL,
SALES_ORG TYPE BAPI_MVKE-SALES_ORG,
DISTR_CHAN TYPE BAPI_MVKE-DISTR_CHAN,
SALES_ORG1 TYPE BAPI_MVKEX-SALES_ORG,
DISTR_CHAN1 TYPE BAPI_MVKEX-DISTR_CHAN,
TEXT TYPE STRING,
END OF LS_BAPI.
*Declarations for Internal Tables and Wrokareas
DATA : IT_LS_BAPI TYPE TABLE OF LS_BAPI,
WA_LS_BAPI TYPE LS_BAPI,
IT_TEXT TYPE TABLE OF TLINE,
WA_TEXT TYPE TLINE,
IT_RAW TYPE TRUXS_T_TEXT_DATA,
IT_RETURN TYPE TABLE OF BAPI_MATRETURN2,
WA_RETURN LIKE BAPIRET2,
RSTXT LIKE RSTXT-TDNAME.
*Parameters
PARAMETERS: P_FILE TYPE RLGRAP-FILENAME.
*Declaration for F4 help
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_FILE.
START-OF-SELECTION.
*To get the data from Excel sheet
PERFORM UPLOAD_SALES_TEXT.
PERFORM UPDATE_SALES_TEXT.
*&---------------------------------------------------------------------*
*& Form UPLOAD_FILE_ITAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM UPLOAD_SALES_TEXT .
*Read the material master
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
I_LINE_HEADER = 'X'
I_TAB_RAW_DATA = IT_RAW
I_FILENAME = P_FILE
TABLES
I_TAB_CONVERTED_DATA = IT_LS_BAPI
EXCEPTIONS
CONVERSION_FAILED = 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.
ENDFORM. "UPLOAD_SALES_TEXT
*&---------------------------------------------------------------------*
*& Form CALL_BAPI
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM UPDATE_SALES_TEXT.
LOOP AT IT_LS_BAPI INTO WA_LS_BAPI.
* Text
WA_TEXT-TDLINE = WA_LS_BAPI-TEXT.
APPEND WA_TEXT TO IT_TEXT.
* Passing the values to BAPI
BAPIMATHEAD-MATERIAL = WA_LS_BAPI-MATERIAL.
*Conversion for Material number with leading zeros
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = BAPIMATHEAD-MATERIAL
IMPORTING
OUTPUT = BAPIMATHEAD-MATERIAL.
BAPIMATHEAD-SALES_VIEW = 'X'.
BAPI_MVKE-SALES_ORG = WA_LS_BAPI-SALES_ORG.
BAPI_MVKE-DISTR_CHAN = WA_LS_BAPI-DISTR_CHAN.
BAPI_MVKEX-SALES_ORG = WA_LS_BAPI-SALES_ORG1.
BAPI_MVKEX-DISTR_CHAN = WA_LS_BAPI-DISTR_CHAN1.
************
CONCATENATE BAPIMATHEAD-MATERIAL BAPI_MVKE-SALES_ORG BAPI_MVKE-DISTR_CHAN INTO RSTXT.
************
*call BAPI for Loading the sales text in material master
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = BAPIMATHEAD
SALESDATA = BAPI_MVKE
SALESDATAX = BAPI_MVKEX
IMPORTING
RETURN = WA_RETURN
TABLES
RETURNMESSAGES = IT_RETURN.
IF WA_RETURN-TYPE EQ 'E'.
LOOP AT IT_RETURN INTO WA_RETURN.
WRITE :/ WA_RETURN-MESSAGE.
ENDLOOP.
ELSEIF
WA_RETURN-TYPE = 'S'.
WRITE : / 'Successfully Text Loaded'.
ENDIF.
*Sales text
CALL FUNCTION 'CREATE_TEXT'
EXPORTING
FID = '0001'
FLANGUAGE = 'E'
FNAME = RSTXT
FOBJECT = 'MVKE'
SAVE_DIRECT = 'X'
FFORMAT = '*'
TABLES
FLINES = IT_TEXT
EXCEPTIONS
NO_INIT = 1
NO_SAVE = 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.
ENDLOOP.
ENDFORM. "UPDATE_SALES_TEXT
No comments:
Post a Comment