AUTO STO Program (VL10B+VL02N+VF01+MIGO+VL01N)


 

*&------------------------------------------------------------------------------*

*& Report ZSD_OUTB_CREATION
*&------------------------------------------------------------------------------*
*& Program        : ZSD_OUTB_CREATION
*& Author         : King Of ABAP'r
*& Created on     : 
*& Requested By   : 
*& Project        : 
*& Transport-No   : 
*& Description    : STO Full Cycle ( VL10B + VL20N + VF01 + MIGO + VL01N )
*& T-Code         : 
*&------------------------------------------------------------------------------*
REPORT zsd_outb_creation.

INCLUDE zsd_outb_creation_top.
INCLUDE zsd_outb_creation_sel.
INCLUDE zsd_outb_creation_f01.

START-OF-SELECTION.
  PERFORM get_file_data.
  PERFORM get_data.
  PERFORM display_data.

*&---------------------------------------------------------------------*
*& Include          ZSD_OUTB_CREATION_TOP
*&---------------------------------------------------------------------*

*** Billing Creation VL10B Creation
DATA lv_delivery          TYPE  bapishpdelivnumb-deliv_numb,
       lt_stock_trans_items TYPE STANDARD TABLE OF bapidlvreftosto,
       ls_stock_trans_items TYPE bapidlvreftosto.
*** Piking Quantity Change VL02N Declarations
DATA:lt_vbpok_tab TYPE STANDARD TABLE OF  vbpok,
     ls_vbpok_tab TYPE  vbpok.
*** Serial Number Declarations
DATAlt_serial_t TYPE shp_sernr_update_t,
      ls_serial_s TYPE shp_sernr_update_s.
*** Confirming Picking Data from Delivery Header Declarations
DATAls_vbkok        TYPE vbkok,
      ls_delivery_num TYPE  bapishpdelivnumb-deliv_numb.

*** Return Declarations
DATA:lt_return TYPE TABLE OF  bapiret2,
     ls_return TYPE bapiret2.

DATAlt_item TYPE STANDARD TABLE OF vbpok,
      ls_item TYPE vbpok.
*** Return Declaration for piking Qty
DATAlt_prott TYPE TABLE OF  prott.

DATAgv_count TYPE i.

DATAmd_goods_issue TYPE xfeld,
      mt_delv_return TYPE  tab_prott.

**** Declarations For MIGO Posting
DATA:ls_goodsmvt_hdr          TYPE  bapi2017_gm_head_01,
     l_goodsmvt_headret       LIKE  bapi2017_gm_head_ret,
     l_materialdocument       TYPE  bapi2017_gm_head_ret-mat_doc,
     l_matdocumentyear        TYPE  bapi2017_gm_head_ret-doc_year,
     lt_goodsmvt_item         TYPE TABLE OF bapi2017_gm_item_create,
     lt_goodsmvt_serialnumber TYPE TABLE OF bapi2017_gm_serialnumber,
     ls_goodsmvt_item         TYPE bapi2017_gm_item_create,
     ls_goodsmvt_serialnumber TYPE bapi2017_gm_serialnumber.
*** Item Variable Declaration For MIGO
DATAlv_item TYPE mblpo.


TYPESBEGIN OF ty_serial,
         sno   TYPE ebelp,
         matnr TYPE  matnr18,
         menge TYPE kwmeng,
         gernr TYPE gernr,
       END OF ty_serial.

DATAlt_Serial TYPE TABLE OF ty_serial,
      ls_serial TYPE ty_serial.
DATAlv_posnr TYPE posnr_vl.

DATAlt_vbap TYPE TABLE OF vbap.

TYPESBEGIN OF ty_alv,
         sno     TYPE   i,
         type    TYPE   bapi_mtype,
         message TYPE   bapi_msg,
       END  OF ty_alv.

DATAgt_alv TYPE STANDARD TABLE OF ty_alv,
      gs_alv TYPE ty_alv.

DATAit_bdcmsgcoll TYPE TABLE OF bdcmsgcoll,
      wa_bdcmsgcoll TYPE bdcmsgcoll.
DATA:message TYPE string.

DATAlv_Count TYPE i.

*&---------------------------------------------------------------------*
*& Include          ZSD_OUTB_CREATION_SEL
*&---------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
  PARAMETERSp_po TYPE ekko-ebeln OBLIGATORY.
SELECTION-SCREEN END  OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE TEXT-002.
  PARAMETERS:p_file1  LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END  OF BLOCK a1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
*** File Upload
  PERFORM file_upload1.

*&---------------------------------------------------------------------*
*& Include          ZSD_OUTB_CREATION_F01
*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*& Form file_upload1
*&---------------------------------------------------------------------*
FORM file_upload1 .
* F4 Functionality
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      program_name  syst-cprog
      dynpro_number syst-dynnr
      field_name    'P_FILE1'
    IMPORTING
      file_name     p_file1.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form get_file_data
*&---------------------------------------------------------------------*

FORM get_file_data .
**** Serial Number Upload File
  DATA:  lt_raw1 TYPE   truxs_t_text_data.
* Convert the XL file to Internal Table
  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    EXPORTING
      i_line_header        abap_true
      i_tab_raw_data       lt_raw1
      i_filename           p_file1
    TABLES
      i_tab_converted_data lt_Serial
    EXCEPTIONS
      conversion_failed    1
      OTHERS               2.
  IF sy-subrc <> 0.
    MESSAGE 'No Data File' TYPE 'E' DISPLAY LIKE 'S'.
  ENDIF.

  LOOP AT lt_Serial INTO ls_serial.
    ls_serial-sno ls_serial-sno * 10.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  ls_serial-sno
      IMPORTING
        output ls_serial-sno.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  ls_serial-matnr
      IMPORTING
        output ls_serial-matnr.

    MODIFY lt_Serial FROM ls_serial.

  ENDLOOP.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*

FORM get_data .
  DATAlv_ebelp TYPE char4.

  IF p_po IS NOT INITIAL.
    SELECT FROM ekpo INTO TABLE @DATA(lt_ekpo)
          WHERE ebeln EQ @p_po.
  ENDIF.

  DATA(lt_serial1lt_serial[].
  DELETE lt_serial1 WHERE menge IS INITIAL.
***Call Bapi For Outbound Delivery Creation
  IF p_po IS NOT INITIAL.
    LOOP AT lt_ekpo INTO DATA(wa_ekpo)
      LOOP AT lt_serial1 INTO DATA(wa_serialWHERE sno  wa_ekpo-ebelp 
                                               AND matnr wa_ekpo-matnr
        ls_stock_trans_items-ref_doc    p_po.
        ls_stock_trans_items-dlv_qty    wa_serial-menge.   
        ls_stock_trans_items-ref_item   wa_ekpo-ebelp.
        ls_stock_trans_items-sales_unit 'EA'.
        APPEND ls_stock_trans_items TO lt_stock_trans_items.
        CLEARls_stock_trans_items.
      ENDLOOP.
    ENDLOOP.

    CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_STO'
      IMPORTING
        delivery          lv_delivery
      TABLES
        stock_trans_items lt_stock_trans_items
        return            lt_return
      EXCEPTIONS
        OTHERS            0.

    READ TABLE lt_return INTO ls_return WITH KEY type 'E'.
    IF sy-subrc EQ 0.
      LOOP AT lt_return INTO ls_return WHERE type 'E'.
        ADD TO lv_count.
        gs_Alv-sno lv_count.
        gs_alv-type 'E'.
        gs_alv-message ls_return-message.
        APPEND gs_alv TO gt_alv.
        CLEAR:gs_alv.
      ENDLOOP.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait 'X'.
      WAIT UP TO SECONDS.
      LOOP AT lt_return INTO ls_return WHERE type 'S'.
        ADD TO lv_count.
        gs_Alv-sno lv_count.
        gs_alv-type 'S'.
        gs_alv-message ls_return-message.
        APPEND gs_alv TO gt_alv.
        CLEAR:gs_alv.
      ENDLOOP.
    ENDIF.

*** Call Bapi For VL02N Piking Quantity
    LOOP AT lt_ekpo INTO DATA(ls_ekpo).
      READ TABLE lt_serial INTO ls_serial WITH KEY sno ls_ekpo-ebelp.
      lv_posnr lv_posnr + 10.
      ls_vbpok_tab-vbeln_vl lv_delivery .
      ls_vbpok_tab-posnr_vl lv_posnr.
      ls_vbpok_tab-vbeln    lv_delivery .
      ls_vbpok_tab-posnn    lv_posnr.
      ls_vbpok_tab-lgort    ls_ekpo-lgort.
      ls_vbpok_tab-pikmg    ls_serial-menge.
      ls_vbpok_tab-taqui    'X'.                 "Confirm Picking Qty
      APPEND ls_vbpok_tab TO lt_vbpok_tab.

      LOOP AT lt_serial INTO ls_serial  WHERE sno  ls_ekpo-ebelp
                                         AND matnr ls_ekpo-matnr.
        ls_serial_s-rfbel lv_delivery.
        ls_serial_s-rfpos ls_vbpok_tab-posnr_vl.
        ls_serial_s-sernr ls_serial-gernr.
        APPEND ls_serial_s TO lt_serial_t.
        CLEARls_serial_s.
      ENDLOOP.
      CLEARls_vbpok_tab,ls_serial,ls_ekpo.
    ENDLOOP.

    ls_vbkok-vbeln_vl lv_delivery " fill this field with your delivery number
    ls_vbkok-vbeln    lv_delivery .
    ls_vbkok-wabuc    'X'.          " PGI

    CALL FUNCTION 'WS_DELIVERY_UPDATE_2'
      EXPORTING
        vbkok_wa             ls_vbkok
        synchron             abap_true
        commit               abap_true
        delivery             lv_delivery
        update_picking       'X'
        nicht_sperren_1      'X'
        it_sernr_update      lt_serial_t
        if_database_update_1 '1'
      TABLES
        vbpok_tab            lt_vbpok_tab
        prot                 lt_prott.


    IF lt_prott[] IS INITIAL.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait 'X'.

      WAIT UP TO SECONDS.

      ADD TO lv_count.
      gs_Alv-sno lv_count.
      gs_alv-type 'S'.
      CONCATENATE 'Picking and PGI done is done for delivery' lv_delivery INTO
      gs_alv-message SEPARATED BY space.
      APPEND gs_alv TO gt_alv.
      CLEAR:gs_alv.

    ELSE.
      READ TABLE lt_prott INTO DATA(ls_prottWITH KEY msgty 'E'.
      IF sy-subrc 0.
        LOOP AT lt_prott INTO ls_prott WHERE msgty 'E'.
          ADD TO lv_count.
          gs_Alv-sno lv_count.
          gs_alv-type ls_prott-msgty.
          gs_alv-message |{ ls_prott-msgv1 } { ls_prott-msgv2 } { ls_prott-msgv3 } { ls_prott-msgv4 } |.
          APPEND gs_alv TO gt_Alv.
          CLEAR:gs_Alv.
        ENDLOOP.
      ENDIF.
    ENDIF.

*** VF01 CREATE Billing Document number
    IF lv_delivery IS NOT INITIAL.
      SUBMIT zvf01 WITH lv_vbeln lv_delivery AND RETURN .
      IMPORT it_bdcmsgcoll TO it_bdcmsgcoll FROM MEMORY ID 'IT_BDCMSGCOLL'.

      DELETE it_bdcmsgcoll WHERE msgtyp 'W'.

      IF it_bdcmsgcoll IS NOT INITIAL.
        LOOP AT it_bdcmsgcoll INTO wa_bdcmsgcoll.

          CALL FUNCTION 'FORMAT_MESSAGE'
            EXPORTING
              id        wa_bdcmsgcoll-msgid
              lang      sy-langu
              no        wa_bdcmsgcoll-msgnr
              v1        wa_bdcmsgcoll-msgv1(50)
              v2        wa_bdcmsgcoll-msgv2(50)
              v3        wa_bdcmsgcoll-msgv3(50)
              v4        wa_bdcmsgcoll-msgv4(50)
            IMPORTING
              msg       message
            EXCEPTIONS
              not_found 1
              OTHERS    2.

          ADD TO lv_count.
          gs_alv-sno lv_count.
          gs_alv-type wa_bdcmsgcoll-msgtyp.
          gs_alv-message message.
          APPEND gs_alv TO gt_alv.
          CLEARgs_alv.
        ENDLOOP.
        FREE MEMORY ID 'IT_BDCMSGCOLL'.
      ENDIF.
    ENDIF.

***Select LIPS for fetching delivery line items here

    REFRESHlt_return.
**** Call BAPI MIGO Posting
    IF p_po IS NOT INITIAL.
      LOOP AT lt_ekpo INTO ls_ekpo.
*** Header
        READ TABLE lt_serial INTO ls_serial WITH KEY sno ls_ekpo-ebelp.
        ls_goodsmvt_hdr-pstng_date sy-datum.
        ls_goodsmvt_hdr-doc_date   sy-datum.
        ls_goodsmvt_hdr-ref_doc_no lv_delivery.
*** Items
        ls_goodsmvt_item-material  |{ ls_ekpo-matnr ALPHA IN }|.
        ls_goodsmvt_item-plant     ls_ekpo-werks.
        ls_goodsmvt_item-stge_loc  ls_ekpo-lgort.
        ls_goodsmvt_item-move_type '101'.
        ls_goodsmvt_item-entry_qnt ls_serial-menge."ls_ekpo-menge.
        ls_goodsmvt_item-po_number ls_ekpo-ebeln.
        ls_goodsmvt_item-po_item   ls_ekpo-ebelp.
        ls_goodsmvt_item-mvt_ind   'B'.
        APPEND ls_goodsmvt_item TO lt_goodsmvt_item.


        lv_item lv_item + 1.
        LOOP AT lt_serial INTO ls_serial  WHERE sno  ls_ekpo-ebelp
                                           AND matnr ls_ekpo-matnr.

          ls_goodsmvt_serialnumber-matdoc_itm lv_item.
          ls_goodsmvt_serialnumber-serialno ls_serial-gernr.
          APPEND ls_goodsmvt_serialnumber TO lt_goodsmvt_serialnumber.
          CLEAR ls_goodsmvt_serialnumber.
        ENDLOOP.
        CLEARls_goodsmvt_item,ls_serial,ls_ekpo.
      ENDLOOP.

      CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
        EXPORTING
          goodsmvt_header       ls_goodsmvt_hdr
          goodsmvt_code         '01'                    "Goods receipt for purchase order
        IMPORTING
          goodsmvt_headret      l_goodsmvt_headret
          materialdocument      l_materialdocument
          matdocumentyear       l_matdocumentyear
        TABLES
          goodsmvt_item         lt_goodsmvt_item
          goodsmvt_serialnumber lt_goodsmvt_serialnumber
          return                lt_return.

      IF lt_return IS INITIAL.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            wait abap_true.

        WAIT UP TO SECONDS.

        ADD TO lv_count.
        gs_alv-sno lv_count.
        gs_alv-type 'S'.
        CONCATENATE 'material document created' l_materialdocument INTO gs_alv-message SEPARATED BY space.
        APPEND gs_alv TO gt_alv.
        CLEAR:gs_alv.

      ELSE.
        LOOP AT lt_return INTO ls_return WHERE type 'E'.
          ADD TO lv_count.
          gs_alv-sno lv_count.
          gs_alv-type ls_return-type.
          CONCATENATE l_materialdocument ls_ekpo-ebeln ls_ekpo-ebelp  lS_return-message INTO gs_alv-message SEPARATED BY space.
          APPEND gs_alv TO gt_alv.
          CLEAR:gs_alv.
        ENDLOOP.
      ENDIF.
    ENDIF.
  ENDIF.


**** Creation OBD Piking Quantity For Sales VL01N
  DATAlv_so TYPE vbeln.
  IF p_po IS NOT INITIAL.
    SELECT SINGLE FROM ekko INTO @DATA(ls_ekko)
            WHERE ebeln EQ @p_po.  " Get UNSEZ field
  ENDIF.

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
    EXPORTING
      input  ls_ekko-unsez
    IMPORTING
      output ls_ekko-unsez.

  CLEAR:lv_so.
  lv_so ls_ekko-unsez.

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  lv_so
    IMPORTING
      output lv_so.


  IF lv_so IS NOT INITIAL.
    SELECT SINGLE FROM vbap INTO  @DATA(ls_vbap)
    WHERE vbeln EQ @lv_so.   " Get VSTEL field
  ENDIF.

  DATA:ship_point           TYPE  bapidlvcreateheader-ship_point,
       it_sales_order_items TYPE TABLE OF bapidlvreftosalesorder,
       wa_sales_order_items TYPE  bapidlvreftosalesorder,
       it_serial_numbers    TYPE TABLE OF  bapidlvserialnumber,
       wa_serial_numbers    TYPE bapidlvserialnumber.
  DATAlv_ref_item TYPE rfpos_vl.

  CLEAR:ship_point.
  REFRESH:it_sales_order_items,lt_return.

  ship_point ls_vbap-vstel.
  CLEAR lt_vbpok_tab[].
  LOOP AT lt_ekpo INTO ls_ekpo.
    READ TABLE lt_serial INTO ls_serial WITH KEY sno ls_ekpo-ebelp.
    lv_ref_item lv_ref_item + 1.
*    lv_ref_item = lv_ref_item + 10.   " " Added by eswar 22.02.2024
    wa_sales_order_items-ref_doc lv_so.
    wa_sales_order_items-ref_item lv_ref_item.
    wa_sales_order_items-dlv_qty  ls_serial-menge.
    wa_sales_order_items-sales_unit 'EA'.
    APPENDwa_sales_order_items TO it_sales_order_items.
    lt_vbpok_tab VALUE #BASE lt_vbpok_tab posnr_vl lv_ref_item
                                                posnn    lv_ref_item
                                                lfimg    ls_serial-menge  ).


    LOOP AT lt_serial INTO ls_serial  WHERE sno  ls_ekpo-ebelp
                                       AND matnr ls_ekpo-matnr.
      IF ls_serial-gernr IS NOT INITIAL.
        wa_serial_numbers-ref_doc lv_so.
        wa_serial_numbers-ref_item wa_sales_order_items-ref_item.
        wa_serial_numbers-serialno ls_serial-gernr.
        APPEND:  wa_serial_numbers TO it_serial_numbers.
        CLEARwa_serial_numbers.
      ENDIF.
    ENDLOOP.
    CLEARwa_sales_order_items,ls_serial,ls_ekpo.
  ENDLOOP.
  SET UPDATE TASK LOCAL.
  CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
    EXPORTING
      ship_point        ship_point
      due_date          sy-datum
    IMPORTING
      delivery          lv_delivery
    TABLES
      sales_order_items it_sales_order_items
      serial_numbers    it_serial_numbers
      return            lt_return.


  READ TABLE lt_return INTO ls_return WITH KEY type 'E'.
  IF sy-subrc EQ 0.
    LOOP AT lt_return INTO ls_return WHERE type 'E'.
      ADD TO lv_count.
      gs_alv-type 'E'.
      gs_alv-message ls_return-message.
      APPEND gs_alv TO gt_alv.
      CLEAR:gs_alv.
    ENDLOOP.

  ELSE.

    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait 'X'.

    WAIT UP TO SECONDS.

    CLEARls_vbkok.

    ls_vbpok_tab-vbeln =
    ls_vbpok_tab-vbeln_vl lv_delivery.

    ls_vbkok-vbeln_vl lv_delivery .
    ls_vbkok-wabuc    'X'.          " PGI
    MODIFY lt_vbpok_tab FROM ls_vbpok_tab TRANSPORTING vbeln_vl vbeln WHERE vbeln_vl IS INITIAL.


    CALL FUNCTION 'WS_DELIVERY_UPDATE_2'
      STARTING NEW TASK ' ' DESTINATION 'NONE'
      PERFORMING call_back ON END OF TASK
      EXPORTING
        vbkok_wa               ls_vbkok
        synchron               abap_true
        commit                 abap_true
        delivery               lv_delivery
        update_picking         'X'
        if_database_update_1   '1'
        if_error_messages_send ''
      TABLES
        vbpok_tab              lt_vbpok_tab
        prot                   lt_prott.

    WAIT UNTIL gv_count 1.

    IF md_goods_issue NE abap_true.
      ADD TO lv_count.
      gs_Alv-sno lv_count.
      gs_alv-type 'S'.
      CONCATENATE 'Picking and PGI done for delivery' lv_delivery INTO
                                            gs_alv-message SEPARATED BY space.
      APPEND gs_alv TO gt_alv.
      CLEAR:gs_alv.

    ELSEIF  lt_prott IS NOT INITIAL.

      READ TABLE lt_prott INTO ls_prott WITH KEY msgty 'E'.
      IF sy-subrc 0.
        LOOP AT lt_prott INTO ls_prott WHERE msgty 'E'.
          ADD TO lv_count.
          gs_Alv-sno lv_count.
          gs_alv-type ls_prott-msgty.
          gs_alv-message |{ ls_prott-msgv1 } { ls_prott-msgv2 } { ls_prott-msgv3 } { ls_prott-msgv4 } |.
          APPEND gs_alv TO gt_Alv.
          CLEAR:gs_Alv.
        ENDLOOP.
      ENDIF.

    ENDIF.

  ENDIF.
ENDFORM.

FORM call_back USING pv_task  TYPE clike.
  RECEIVE RESULTS FROM FUNCTION 'WS_DELIVERY_UPDATE_2'
   IMPORTING
     ef_error_in_goods_issue  md_goods_issue
   TABLES
     prot                   mt_delv_return
   EXCEPTIONS
       system_failure        2
       communication_failure 4.
  IF sy-subrc <> 0.
    "Message
  ENDIF.

  gv_count                 gv_count + 1.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
FORM display_data .
  TYPE-POOLS:
            slis.
  DATA:
    ls_fieldcat TYPE slis_fieldcat_alv,
    ls_layout   TYPE slis_layout_alv.
  DATA:
     lt_fieldcat         TYPE slis_t_fieldcat_alv.

  DATA:
        lv_program TYPE sy-repid.


  IF gt_alv IS NOT INITIAL.

    CLEAR ls_fieldcat.
    ls_fieldcat-fieldname      'SNO'.
    ls_fieldcat-tabname        'GT_ALV'.
    ls_fieldcat-seltext_m      'Serial Number'.
    APPEND ls_fieldcat TO lt_fieldcat.

    CLEAR ls_fieldcat.
    ls_fieldcat-fieldname      'TYPE'.
    ls_fieldcat-tabname        'GT_ALV'.
    ls_fieldcat-seltext_m      'Status'.
    APPEND ls_fieldcat TO lt_fieldcat.

    CLEAR ls_fieldcat.
    ls_fieldcat-fieldname      'MESSAGE'.
    ls_fieldcat-tabname        'GT_ALV'.
    ls_fieldcat-seltext_m      'Message'.
    APPEND ls_fieldcat TO lt_fieldcat.

    CLEAR ls_layout.
    ls_layout-colwidth_optimize 'X'.
    ls_layout-zebra             'X'.

    lv_program sy-repid.
* Display The Final Display
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program lv_program
        is_layout          ls_layout
        it_fieldcat        lt_fieldcat
      TABLES
        t_outtab           gt_alv
      EXCEPTIONS
        program_error      1
        OTHERS             2.
  ELSE.
    MESSAGE 'No Errors Found' TYPE 'I'.
  ENDIF.
ENDFORM.

NOte: 
Please find the below Submit Program Code:
*&---------------------------------------------------------------------*
*& Report ZVF01
*&---------------------------------------------------------------------*
*& Program        : ZVF01
*& Author         : 
*& Created on     : 
*& Requested By   :
*& Project        : 
*& Transport-No   : 
*& Description    : STO Full Cycle ( PO + Outbound + Piking qty PGI )
*& T-Code         : 
*&---------------------------------------------------------------------*
REPORT zvf01.

PARAMETERS lv_vbeln TYPE vbeln.

DATAbdcdata LIKE bdcdata    OCCURS WITH HEADER LINE,
      l_mode  VALUE 'N'.

DATAit_bdcmsgcoll TYPE TABLE OF bdcmsgcoll.

START-OF-SELECTION.

  PERFORM bdc_dynpro      USING 'SAPMV60A' '0102'.
  PERFORM bdc_field       USING 'BDC_CURSOR'
                                'KOMFK-VBELN(01)'.
  PERFORM bdc_field       USING 'BDC_OKCODE'
                                '=SICH'.
  PERFORM bdc_field       USING 'RV60A-FKART'
                                'ZGST'.
  PERFORM bdc_field       USING 'KOMFK-VBELN(01)'
                               lv_vbeln .
  CALL TRANSACTION 'VF01' USING bdcdata[] MODE l_mode UPDATE 'S' MESSAGES INTO it_bdcmsgcoll.
  COMMIT WORK AND WAIT .

  IF it_bdcmsgcoll IS NOT INITIAL.
    EXPORT it_bdcmsgcoll FROM it_bdcmsgcoll TO MEMORY ID 'IT_BDCMSGCOLL'.
  ENDIF.



*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
  CLEAR bdcdata.
  bdcdata-program  program.
  bdcdata-dynpro   dynpro.
  bdcdata-dynbegin 'X'.
  APPEND bdcdata.
ENDFORM.                    "bdc_dynpro

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.

  CLEAR bdcdata.
  bdcdata-fnam fnam.
  bdcdata-fval fval.
  APPEND bdcdata.

ENDFORM.                    "bdc_field

Comments

Popular posts from this blog

PO rejection notification & rejection comments for Fiori

FB60 Vendor Invoice Post using BAPI

Service Invoice Upload For FB70 (BAPI)