Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 3354

Re: bapi issue/ bdc issue while creating one po with multiple line item.

$
0
0

*&---------------------------------------------------------------------*
*& Report  ZPOUPLOAD
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZPOUPLOAD_KP.

TYPES :  TRUXS_T_TEXT_DATA(4096) TYPE C OCCURS 0.


DATA: BEGIN OF ITAB OCCURS 0,
       DOC_TYPE(4),
       SUPPL_PLNT(4),
       VENDOR(10),
       PURCH_ORG(4),
       PUR_GROUP(3),
       COMP_CODE(4),
       VPER_START(10),
       VPER_END(8),
       PO_ITEM(5),
       MATERIAL(18),
       SHORT_TEXT(40),
       QUANTITY(16),
       TRACKINGNO(10),
       NET_PRICE(28),
       TAX_CODE(2),
       PLANT(4),
       STGE_LOC(4),
       GR_IND(1),
       IR_IND(1),
       ACCTASSCAT(1),
       WBS_ELEMENT(24),
       GL_ACCOUNT(10),
       SD_DOC(10),
       ITM_NUMBER(6),
       PO_UNIT(3),
       ORDERPR_UN(3),
*     DOC_DATE(10),
       DELIVERY_DATE(10),
       END OF ITAB.

DATA: BEGIN OF IT_LOG OCCURS 0,
       MESSAGE(70) TYPE C,
       END OF IT_LOG.

DATA: W_TYPE(4) TYPE C.
CONSTANTS : C_X VALUE 'X'.
DATA: GSTEST LIKE BAPIMEPOHEADER.
DATA: G_EBELN LIKE BAPIMEPOHEADER-PO_NUMBER.


DATA: BEGIN OF G_BAPIMEPOHEADER OCCURS 0.
         INCLUDE STRUCTURE BAPIMEPOHEADER.
DATA: END OF G_BAPIMEPOHEADER.

DATA: BEGIN OF G_BAPIMEPOHEADERX OCCURS 0.
         INCLUDE STRUCTURE BAPIMEPOHEADERX.
DATA: END OF G_BAPIMEPOHEADERX.

DATA: BEGIN OF G_BAPIMEPOSCHEDULE OCCURS 0.
         INCLUDE STRUCTURE BAPIMEPOSCHEDULE.
DATA: END OF G_BAPIMEPOSCHEDULE.

DATA: BEGIN OF G_POSCHEDULEX OCCURS 0.
         INCLUDE STRUCTURE BAPIMEPOSCHEDULX.
DATA: END OF G_POSCHEDULEX.

DATA: BEGIN OF G_BAPIEIKP OCCURS 0.
         INCLUDE STRUCTURE BAPIEIKP.
DATA: END OF G_BAPIEIKP.

DATA: BEGIN OF G_BAPIMEPOITEM OCCURS 0.
         INCLUDE STRUCTURE BAPIMEPOITEM.
DATA: END OF G_BAPIMEPOITEM.

DATA: BEGIN OF G_POITEMX OCCURS 0.
         INCLUDE STRUCTURE BAPIMEPOITEMX.
DATA: END OF G_POITEMX.

DATA: BEGIN OF G_BAPIRET2 OCCURS 0.
         INCLUDE STRUCTURE BAPIRET2.
DATA: END OF G_BAPIRET2.

DATA: BEGIN OF G_POACCOUNT OCCURS 0.
         INCLUDE STRUCTURE BAPIMEPOACCOUNT.
DATA END OF G_POACCOUNT.

DATA: BEGIN OF G_POACCOUNTX OCCURS 0.
         INCLUDE STRUCTURE BAPIMEPOACCOUNTX.
DATA END OF G_POACCOUNTX.


DATA: IT_ITAB LIKE ITAB OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-100.
PARAMETERS : P_FILE LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK BLK.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

   PERFORM FILE_SELECTION.

START-OF-SELECTION.

   PERFORM DATA_UPLOAD.
   PERFORM BAPI_UPLOAD.
   PERFORM DISPLAY.


*&---------------------------------------------------------------------*
*&      Form  file_selection
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FILE_SELECTION.
DATA :          FILE_TABLE TYPE FILETABLE,
                   RC TYPE I,
                   WA_FILE_TABLE LIKE LINE OF FILE_TABLE.


   call method CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
*    exporting
*      WINDOW_TITLE            =
*      DEFAULT_EXTENSION       =
*      DEFAULT_FILENAME        =
*      FILE_FILTER             =
*      WITH_ENCODING           =
*      INITIAL_DIRECTORY       =
*      MULTISELECTION          =
     changing
       FILE_TABLE              = FILE_TABLE
       RC                      =  RC
*      USER_ACTION             =
*      FILE_ENCODING           =
*    exceptions
*      FILE_OPEN_DIALOG_FAILED = 1
*      CNTL_ERROR              = 2
*      ERROR_NO_GUI            = 3
*      NOT_SUPPORTED_BY_GUI    = 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.
    READ TABLE FILE_TABLE INTO WA_FILE_TABLE INDEX 1.
     P_FILE = WA_FILE_TABLE-FILENAME.







*  CALL FUNCTION 'WS_FILENAME_GET'
*
*    EXPORTING
*      DEF_FILENAME     = ' '
*      DEF_PATH         = 'Z:\'
**      mask             = ',.txt,.txt.'
*      MODE             = 'O'
*      TITLE            = 'Open a TXT(Tab delimited) file only'
*    IMPORTING
*      FILENAME         = P_FILE
*    EXCEPTIONS
*      INV_WINSYS       = 1
*      NO_BATCH         = 2
*      SELECTION_CANCEL = 3
*      SELECTION_ERROR  = 4
*      OTHERS           = 5.

ENDFORM.                    " file_selection


*&---------------------------------------------------------------------*
*&      Form  data_upload
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM DATA_UPLOAD .


DATA: I_TAB_RAW_DATA  TYPE TRUXS_T_TEXT_DATA.

call function 'TEXT_CONVERT_XLS_TO_SAP'
   exporting
*   I_FIELD_SEPERATOR          = 'X'
     I_LINE_HEADER              = 'X'
     I_TAB_RAW_DATA             = I_TAB_RAW_DATA
     I_FILENAME                 = P_FILE
   TABLES
     I_TAB_CONVERTED_DATA       = ITAB
  EXCEPTIONS
    CONVERSION_FAILED          = 1
    OTHERS                     = 2
           .
   IF SY-SUBRC EQ 0 .
     WRITE:/ 'Program : ', SY-REPID.
     WRITE:/ 'Filename: ', P_FILE.
     WRITE AT /1(144) SY-ULINE.
  ELSEIF 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 'WS_UPLOAD'
*    EXPORTING
*      FILENAME                = P_FILE
*      FILETYPE                = 'DAT'
*    TABLES
*      DATA_TAB                = ITAB
*    EXCEPTIONS
*      CONVERSION_ERROR        = 1
*      FILE_OPEN_ERROR         = 2
*      FILE_READ_ERROR         = 3
*      INVALID_TYPE            = 4
*      NO_BATCH                = 5
*      UNKNOWN_ERROR           = 6
*      INVALID_TABLE_WIDTH     = 7
*      GUI_REFUSE_FILETRANSFER = 8
*      CUSTOMER_ERROR          = 9
*      NO_AUTHORITY            = 10
*      OTHERS                  = 11.
*
*  IF SY-SUBRC EQ 0 .
*    WRITE:/ 'Program : ', SY-REPID.
*    WRITE:/ 'Filename: ', P_FILE.
*    WRITE AT /1(144) SY-ULINE.
*  ENDIF.

ENDFORM.                    " data_upload



*&---------------------------------------------------------------------*
*&      Form  bapi_upload
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM BAPI_UPLOAD .

   IT_ITAB[] = ITAB[].
   SORT ITAB BY VENDOR MATERIAL.
   DELETE ADJACENT DUPLICATES FROM ITAB COMPARING VENDOR.
   LOOP AT ITAB.
     MOVE-CORRESPONDING ITAB TO G_BAPIMEPOHEADER.
     W_TYPE = ITAB-DOC_TYPE.
     IF ITAB-DOC_TYPE = 'ZA'.

       call function 'CONVERSION_EXIT_ALPHA_INPUT'
         exporting
           INPUT         = ITAB-VENDOR
         IMPORTING
           OUTPUT        = ITAB-VENDOR
                 .
       G_BAPIMEPOHEADER-VENDOR = ITAB-VENDOR.
     ENDIF.

     G_BAPIMEPOHEADER-CREAT_DATE = SY-DATUM.
     G_BAPIMEPOHEADER-CREATED_BY = SY-UNAME.
     APPEND G_BAPIMEPOHEADER.

     G_BAPIMEPOHEADERX-COMP_CODE = 'X'.
     G_BAPIMEPOHEADERX-VENDOR = 'X'.
     G_BAPIMEPOHEADERX-DOC_TYPE = 'X'.
     G_BAPIMEPOHEADERX-PURCH_ORG = 'X'.
     G_BAPIMEPOHEADERX-PUR_GROUP = 'X'.
     G_BAPIMEPOHEADERX-SUPPL_PLNT = ' '.
*    G_BAPIMEPOHEADERX-VPER_START = ' '.
*    G_BAPIMEPOHEADERX-VPER_END = ' '.
     APPEND G_BAPIMEPOHEADERX.



     IF ITAB-DOC_TYPE = 'ZA'.
            call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
              exporting
                INPUT         = ITAB-VENDOR
              IMPORTING
                OUTPUT        = ITAB-VENDOR
                  .

     ENDIF.


     LOOP AT IT_ITAB WHERE VENDOR = ITAB-VENDOR.
       MOVE-CORRESPONDING IT_ITAB TO G_BAPIMEPOITEM.
       call function 'CONVERSION_EXIT_ALPHA_INPUT'
         exporting
           INPUT         = IT_ITAB-MATERIAL
         IMPORTING
           OUTPUT        = IT_ITAB-MATERIAL
                 .



     call function 'CONVERSION_EXIT_ALPHA_INPUT'
         exporting
           INPUT         = IT_ITAB-QUANTITY
         IMPORTING
           OUTPUT        = IT_ITAB-QUANTITY.

       G_BAPIMEPOITEM-MATERIAL = IT_ITAB-MATERIAL.
       APPEND G_BAPIMEPOITEM.
       MOVE-CORRESPONDING IT_ITAB TO G_BAPIMEPOSCHEDULE.
       MOVE-CORRESPONDING IT_ITAB TO G_POACCOUNT.
       APPEND G_BAPIMEPOSCHEDULE.
       APPEND G_POACCOUNT.


       G_POITEMX-PO_ITEM = IT_ITAB-PO_ITEM.
        G_POITEMX-PO_ITEMX = 'X'.
*      G_POITEMX-ITEM_CAT = 'X'.
       G_POITEMX-PLANT = 'X'.
       G_POITEMX-STGE_LOC = 'X'.
       G_POITEMX-NET_PRICE = 'X'.
       G_POITEMX-ACCTASSCAT = 'X'.
       G_POITEMX-MATERIAL = 'X'.
       G_POITEMX-SHORT_TEXT = 'X'.
*      G_POITEMX-MATL_GROUP = ' '.
        G_POITEMX-QUANTITY = 'X'.
*      G_POITEMX-PO_UNIT = 'X'.
       G_POITEMX-NET_PRICE = 'X'.
       G_POITEMX-TAX_CODE = 'X'.
*      G_POITEMX-ORDERPR_UN = 'X'.
       G_POITEMX-TRACKINGNO = 'X'.
*      G_POITEMX-DELETE_IND = 'X'.
       G_POITEMX-GR_IND = 'X'.
       G_POITEMX-IR_IND = 'X'.
       APPEND G_POITEMX.





       G_POSCHEDULEX-PO_ITEM = IT_ITAB-PO_ITEM.
       G_POSCHEDULEX-SCHED_LINE = 1.
        G_POSCHEDULEX-PO_ITEMX = 'X'.
*      G_POSCHEDULEX-SCHED_LINEX = 'X'.
*      G_POSCHEDULEX-DEL_DATCAT_EXT = 'X'.
       G_POSCHEDULEX-DELIVERY_DATE = 'X'.
       G_POSCHEDULEX-QUANTITY = 'X'.
*      G_POSCHEDULEX-DELIV_TIME = 'X'.
*      G_POSCHEDULEX-STAT_DATE = 'X'.
       G_POSCHEDULEX-PREQ_NO = 'X'.
*      G_POSCHEDULEX-PREQ_ITEM = 'X'.
*      G_POSCHEDULEX-PO_DATE = 'X'.
*      G_POSCHEDULEX-ROUTESCHED = 'X'.
*      G_POSCHEDULEX-MS_DATE = 'X'.
       APPEND G_POSCHEDULEX.

       G_POACCOUNTX-PO_ITEM = IT_ITAB-PO_ITEM.
       G_POACCOUNTX-WBS_ELEMENT = 'X'.
       G_POACCOUNTX-GL_ACCOUNT = 'X'.
*      G_POACCOUNTX-SD_DOC = 'X'.
       G_POACCOUNTX-ITM_NUMBER = 'X'.
       APPEND G_POACCOUNTX.


     ENDLOOP.


* call function 'BAPI_PO_CREATE'
*   exporting
*     PO_HEADER                        =
**    PO_HEADER_ADD_DATA               =
**    HEADER_ADD_DATA_RELEVANT         =
**    PO_ADDRESS                       =
**    SKIP_ITEMS_WITH_ERROR            = 'X'
**    ITEM_ADD_DATA_RELEVANT           =
**    HEADER_TECH_FIELDS               =
**  IMPORTING
**    PURCHASEORDER                    =
*   TABLES
*     PO_ITEMS                         =
**    PO_ITEM_ADD_DATA                 =
*     PO_ITEM_SCHEDULES                =
**    PO_ITEM_ACCOUNT_ASSIGNMENT       =
**    PO_ITEM_TEXT                     =
**    RETURN                           =
**    PO_LIMITS                        =
**    PO_CONTRACT_LIMITS               =
**    PO_SERVICES                      =
**    PO_SRV_ACCASS_VALUES             =
**    PO_SERVICES_TEXT                 =
**    PO_BUSINESS_PARTNER              =
**    EXTENSIONIN                      =
**    POADDRDELIVERY                   =
*           .
*
*



   call function 'BAPI_PO_CREATE1'
     exporting
       POHEADER                     = G_BAPIMEPOHEADER
       POHEADERX                    = G_BAPIMEPOHEADERX
*     POADDRVENDOR                 =
*     TESTRUN                      =
*     MEMORY_UNCOMPLETE            =
*     MEMORY_COMPLETE              =
       POEXPIMPHEADER               = G_BAPIEIKP
*     POEXPIMPHEADERX              =
*     VERSIONS                     =
*     NO_MESSAGING                 =
*     NO_MESSAGE_REQ               =
*     NO_AUTHORITY                 =
*     NO_PRICE_FROM_PO             =
     IMPORTING
       EXPPURCHASEORDER             =  G_EBELN
       EXPHEADER                    =  GSTEST
*     EXPPOEXPIMPHEADER            =
     TABLES
       RETURN                       = G_BAPIRET2
       POITEM                       = G_BAPIMEPOITEM
       POITEMX                      = G_POITEMX
*     POADDRDELIVERY               =
       POSCHEDULE                   = G_BAPIMEPOSCHEDULE
       POSCHEDULEX                  = G_POSCHEDULEX
       POACCOUNT                    = G_POACCOUNT
*     POACCOUNTPROFITSEGMENT       =
       POACCOUNTX                   = G_POACCOUNTX
*     POCONDHEADER                 =
*     POCONDHEADERX                =
*     POCOND                       =
*     POCONDX                      =
*     POLIMITS                     =
*     POCONTRACTLIMITS             =
*     POSERVICES                   =
*     POSRVACCESSVALUES            =
*     POSERVICESTEXT               =
*     EXTENSIONIN                  =
*     EXTENSIONOUT                 =
*     POEXPIMPITEM                 =
*     POEXPIMPITEMX                =
*     POTEXTHEADER                 =
*     POTEXTITEM                   =
*     ALLVERSIONS                  =
*     POPARTNER                    =
*     POCOMPONENTS                 =
*     POCOMPONENTSX                =
*     POSHIPPING                   =
*     POSHIPPINGX                  =
*     POSHIPPINGEXP                =
             .

     IF NOT G_EBELN IS INITIAL.
       call function 'BAPI_TRANSACTION_COMMIT'.

         IF W_TYPE = 'ZA'.
         CONCATENATE 'LIS Trade Material created under the number' '-'
         G_EBELN INTO IT_LOG-MESSAGE.
         APPEND IT_LOG.
         CLEAR IT_LOG.
       ELSE.
         CONCATENATE 'LIS STO Plant-Plant created under the number' '-'
         G_EBELN INTO IT_LOG-MESSAGE.
         APPEND IT_LOG.
         CLEAR IT_LOG.
       ENDIF.

       CLEAR : IT_ITAB,W_TYPE,G_BAPIMEPOITEM,G_BAPIMEPOHEADER,
       G_BAPIMEPOHEADERX,G_BAPIRET2,G_POITEMX,G_BAPIMEPOSCHEDULE,G_POACCOUNT,
       G_POSCHEDULEX.

       REFRESH : G_BAPIMEPOITEM,G_BAPIMEPOHEADER,G_BAPIMEPOHEADERX,
       G_BAPIRET2,G_POITEMX,G_BAPIMEPOSCHEDULE,G_POSCHEDULEX,G_POACCOUNTX.
     ENDIF.
   ENDLOOP.
ENDFORM.                    " bapi_upload


*&---------------------------------------------------------------------*
*&      Form  display
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM DISPLAY .
   LOOP AT G_BAPIRET2.
     WRITE :/ G_BAPIRET2-MESSAGE.
   ENDLOOP.
   LOOP AT IT_LOG.
     WRITE :/ IT_LOG-MESSAGE.
   ENDLOOP.
ENDFORM.                    " display


Viewing all articles
Browse latest Browse all 3354

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>