Quantcast
Channel: SCN : All Content - All Communities
Viewing all articles
Browse latest Browse all 7790

BAPI - Goods mvmt

$
0
0

Dear Experts,

 

I've made a coding by calling BAPI for goods movement with reference to the production order.  The result of the program should be executed with the 101 movement type provided with the document no which i'm not able to generate the process.

 

Piece of coding is as below.  Need help .

 

REPORT  ZPP_MAT_EXT.

TABLES : EKKO.

TYPES : BEGIN OF TY_EKKO,
         EBELN TYPE EKKO-EBELN,
         END OF TY_EKKO.

TYPES : BEGIN OF TY_EKPO,
         EBELN TYPE EBELN,
         EBELP TYPE EBELP,
         MATNR TYPE MATNR,
         WERKS TYPE EWERK,
         LGORT TYPE LGORT_D,
         MENGE TYPE BSTMG,
         MEINS TYPE BSTME,

   END OF TY_EKPO.

   TYPES : BEGIN OF TY_OUTPUT,
           EBELN TYPE EBELN,
           MBLNR TYPE MBLNR,
           MJAHR TYPE MJAHR,

     END OF TY_OUTPUT.

  TYPES : BEGIN OF TY_FINAL,
          EBELN TYPE EBELN,
          EBELP TYPE EBELP,
          MATNR TYPE MATNR,
          WERKS TYPE EWERK,
          LGORT TYPE LGORT_D,
          MENGE TYPE BSTMG,
          MEINS TYPE BSTME,

    END OF TY_FINAL.

DATA : GT_EKKO TYPE TABLE OF TY_EKKO,
        GS_EKKO TYPE TY_EKKO.

DATA : GT_EKPO TYPE TABLE OF TY_EKPO,
        GS_EKPO TYPE TY_EKPO.

DATA : GT_FINAL TYPE TABLE OF TY_FINAL,
        GS_FINAL TYPE TY_FINAL.

DATA : GT_OUTPUT TYPE TABLE OF TY_OUTPUT,
        GS_OUTPUT TYPE TY_OUTPUT.


START-OF-SELECTION.

SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN.
PERFORM GET_EKKO_DATA.
PERFORM GET_EKPO_DATA.
PERFORM POPULATE_DATA.
PERFORM CALL_BAPI.


"BAPI_GOODSMVT_CREATE

DATA : GOODSMVT_HEADER  TYPE  BAPI2017_GM_HEAD_01,
        GOODSMVT_CODE  TYPE  BAPI2017_GM_CODE.

DATA : GOODSMVT_HEADRET TYPE  BAPI2017_GM_HEAD_RET.

DATA : GT_GOODSMVMT_ITEM  TYPE TABLE OF BAPI2017_GM_ITEM_CREATE,
         GS_GOODSMVMT_ITEM TYPE  BAPI2017_GM_ITEM_CREATE.

DATA : GT_RETURN  TYPE TABLE OF BAPIRET2,
        GS_RETURN  TYPE BAPIRET2.


*&---------------------------------------------------------------------*
*&      Form  GET_EKKO_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_EKKO_DATA .
   SELECT
         EBELN
     FROM EKKO INTO TABLE GT_EKKO WHERE EBELN IN S_EBELN.

ENDFORM.                    " GET_EKKO_DATA

*&---------------------------------------------------------------------*
*&      Form  GET_EKPO_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_EKPO_DATA .
    IF NOT GT_EKKO IS INITIAL.
      SELECT
           EBELN
           EBELP
           MATNR
           WERKS
           LGORT
           MENGE
           MEINS

      FROM EKPO INTO TABLE GT_EKPO FOR ALL ENTRIES IN GT_EKKO WHERE EBELN = GT_EKKO-EBELN.

ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  POPULATE_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM POPULATE_DATA .

LOOP AT GT_EKPO INTO GS_EKPO.
   GS_FINAL-EBELN = GS_EKPO-EBELN.
   GS_FINAL-EBELP = GS_EKPO-EBELP.
   GS_FINAL-MATNR = GS_EKPO-MATNR.
   GS_FINAL-WERKS = GS_EKPO-WERKS.
   GS_FINAL-LGORT = GS_EKPO-LGORT.
   GS_FINAL-MENGE = GS_EKPO-MENGE.
   GS_FINAL-MEINS = GS_EKPO-MEINS.

  " BAPI HEADER STRUCTURE
       GOODSMVT_HEADER-PSTNG_DATE = SY-DATUM.
       GOODSMVT_HEADER-DOC_DATE   = SY-DATUM.
       GOODSMVT_HEADER-PR_UNAME   = SY-UNAME.
       GOODSMVT_HEADER-REF_DOC_NO_LONG  = GS_EKPO-EBELN.

    " BAPI ITEM STRUCTURE
        GS_GOODSMVMT_ITEM-MATERIAL = GS_EKPO-MATNR.
        GS_GOODSMVMT_ITEM-PLANT    = GS_EKPO-WERKS.
        GS_GOODSMVMT_ITEM-STGE_LOC = GS_EKPO-LGORT.
        GS_GOODSMVMT_ITEM-MOVE_TYPE = '101'.
        GS_GOODSMVMT_ITEM-PO_NUMBER = GS_EKPO-EBELN.
        GS_GOODSMVMT_ITEM-PO_ITEM = GS_EKPO-EBELP.
        GS_GOODSMVMT_ITEM-ENTRY_QNT = GS_EKPO-MENGE.
        GS_GOODSMVMT_ITEM-ENTRY_UOM = GS_EKPO-MEINS.
        GS_GOODSMVMT_ITEM-NO_MORE_GR = 'X'.
        GS_GOODSMVMT_ITEM-REF_DOC = GS_EKPO-EBELN.
        GS_GOODSMVMT_ITEM-PROD_DATE = SY-DATUM.
        GS_GOODSMVMT_ITEM-MVT_IND = 'B'.

APPEND GS_GOODSMVMT_ITEM TO GT_GOODSMVMT_ITEM.

ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  CALL_BAPI
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CALL_BAPI .
   CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
     EXPORTING
       GOODSMVT_HEADER               = GOODSMVT_HEADER
       GOODSMVT_CODE                 = '01'
*     TESTRUN                       = ' '
*     GOODSMVT_REF_EWM              =
    IMPORTING
      GOODSMVT_HEADRET              = GOODSMVT_HEADRET
*     MATERIALDOCUMENT              =
*     MATDOCUMENTYEAR               =
     TABLES
       GOODSMVT_ITEM                 = GT_GOODSMVMT_ITEM
*     GOODSMVT_SERIALNUMBER         =
       RETURN                        = GT_RETURN.
*     GOODSMVT_SERV_PART_DATA       =
*     EXTENSIONIN                   =
*     AFS_GOODSMVT_SKU              =

IF SY-SUBRC = 0.
   CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      WAIT          = 'X'.
*   IMPORTING
*     RETURN        =
  ENDIF.

  WRITE:1(15)'PO document', 18(20)'Material Documant', 40(5)'Year'.
   LOOP AT GT_OUTPUT INTO GS_OUTPUT.
   WRITE:/1(15) GS_OUTPUT-EBELN,
          18(20) GS_OUTPUT-MBLNR,
          40(5) GS_OUTPUT-MJAHR.
   ENDLOOP.
   ENDFORM.  " CALL_BAPI


Viewing all articles
Browse latest Browse all 7790

Trending Articles



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