Monday, 12 December 2011

Upload 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