Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

a sample program for save_text

hi,

i need a sample program for save_text function module

Tags:
Former Member
replied
REPORT ztest LINE-SIZE 80 MESSAGE-ID zrf.

TYPES: BEGIN OF grec,
         werks TYPE werks_d,
         signi TYPE signi,
         bolnr TYPE vbeln,
         exidv TYPE exidv,
         vbeln TYPE vbeln,
         wadat TYPE wadat,
       END OF grec.

DATA: gt_exidv TYPE STANDARD TABLE OF grec WITH HEADER LINE.

PARAMETERS: pf_wadat TYPE wadat OBLIGATORY DEFAULT sy-datum,
            pf_werks TYPE werks_d,
            pf_signi TYPE char10,
            pf_bolnr TYPE vbeln.
SELECT-OPTIONS: st_exidv  FOR gt_exidv-exidv NO INTERVALS.

*&---------------------------------------------------------------------*
*&   Event AT SELECTION-SCREEN
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.

  IF ( NOT st_exidv[] IS INITIAL OR NOT pf_signi IS INITIAL OR
       NOT pf_werks IS INITIAL   OR NOT pf_bolnr IS INITIAL ) AND
       NOT pf_werks = '6500' AND NOT pf_werks = '8300'.
    SET CURSOR FIELD 'PF_WERKS'.
    MESSAGE e000 WITH 'Enter valid plant (6500/8300)'.
  ENDIF.

  IF NOT st_exidv[] IS INITIAL AND pf_signi IS INITIAL.
    SET CURSOR FIELD 'PF_SIGNI'.
    MESSAGE e000 WITH 'Enter trailer ID number'.
  ENDIF.

  IF NOT st_exidv[] IS INITIAL AND pf_bolnr IS INITIAL.
    SET CURSOR FIELD 'PF_BOLNR'.
    MESSAGE e000 WITH 'Enter bill of lading number'.
  ENDIF.

*&---------------------------------------------------------------------*
*&   Event START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.

  IF st_exidv IS INITIAL.
    PERFORM get_barcode.
  ELSE.
    LOOP AT st_exidv.
      gt_exidv-exidv = st_exidv-low.
      gt_exidv-werks = pf_werks.
      gt_exidv-signi = pf_signi.
      gt_exidv-bolnr = pf_bolnr.
      gt_exidv-wadat = pf_wadat.
      APPEND gt_exidv.
    ENDLOOP.
  ENDIF.

*&---------------------------------------------------------------------*
*&   Event END-OF-SELECTION
*&---------------------------------------------------------------------*
END-OF-SELECTION.

  IF gt_exidv[] IS INITIAL.
    MESSAGE i000(zrf) WITH 'No data found for given selection'.
    EXIT.
  ENDIF.
  PERFORM process_data.

*&---------------------------------------------------------------------*
*&      Form  GET_BARCODE
*&---------------------------------------------------------------------*
FORM get_barcode.

  TYPES: BEGIN OF lrec,
           docnum TYPE edi_docnum,
           werks  TYPE werks_d,
           signi  TYPE signi,
           bolnr  TYPE vbeln,
           wadat  TYPE wadat,
         END OF lrec.
  DATA: lt_idoc TYPE STANDARD TABLE OF lrec WITH HEADER LINE,
        lf_date TYPE sydatum,
        lf_data TYPE edi_sdata.

*-Get all (status 52 & 53) lt_idoc number for given date
  SELECT docnum INTO TABLE lt_idoc FROM edidc
                                   WHERE credat = pf_wadat
                                   AND   mestyp = 'ZDLPGI'
                                   AND ( status = '52'
                                   OR    status = '53' ).

*-Filter the list for given plant and trailer number
  LOOP AT lt_idoc.
    SELECT SINGLE sdata INTO lf_data FROM  edid4
                                     WHERE docnum  EQ lt_idoc-docnum
                                     AND   segnam  EQ 'E1EDK31'.
*---If CST IDOC then remove from list
    IF lf_data+228(5) NE space.
      DELETE lt_idoc.
      CONTINUE.
    ENDIF.
*---If not given plant then remove from list
    IF NOT pf_werks IS INITIAL AND pf_werks NE lf_data+208(4).
      DELETE lt_idoc.
      CONTINUE.
    ENDIF.
*---If not given trailer then remove from list
    TRANSLATE lf_data+168(10) TO UPPER CASE.
    IF NOT pf_signi IS INITIAL AND pf_signi NE lf_data+168(10).
      DELETE lt_idoc.
      CONTINUE.
    ENDIF.
*---If not given BOL then remove from list
    IF NOT pf_bolnr IS INITIAL AND pf_bolnr NE lf_data+188(10).
      DELETE lt_idoc.
      CONTINUE.
    ENDIF.
    lt_idoc-werks = lf_data+208(4).
    lt_idoc-signi = lf_data+168(10).
    lt_idoc-bolnr = lf_data+188(10).
*---Get ship date
    SELECT SINGLE sdata INTO lf_data FROM  edid4
                                     WHERE docnum  EQ lt_idoc-docnum
                                     AND   segnam  EQ 'E1EDT10'.
    IF sy-subrc = 0.
      lt_idoc-wadat = lf_data+27(10).
    ENDIF.
    MODIFY lt_idoc.
  ENDLOOP.

*-Get the barcode for the selected idoc, if not processed before
  lf_date = pf_wadat - 1.
  LOOP AT lt_idoc.
    SELECT sdata INTO lf_data FROM  edid4
                            WHERE docnum  EQ lt_idoc-docnum
                            AND   segnam  EQ 'E1EDL07'.
      SELECT SINGLE COUNT(*) FROM  zremote_log
                             WHERE ( erdat = pf_wadat
                             OR      erdat = lf_date )
                             AND     exidv = lf_data+10(9).
      IF sy-subrc NE 0.
        gt_exidv-werks = lt_idoc-werks.
        gt_exidv-signi = lt_idoc-signi.
        gt_exidv-bolnr = lt_idoc-bolnr.
        gt_exidv-wadat = lt_idoc-wadat.
        gt_exidv-exidv = lf_data+10(9).
        APPEND gt_exidv.
      ENDIF.
    ENDSELECT.
  ENDLOOP.

*-Remove duplicate barcode if any
  SORT gt_exidv BY exidv.
  DELETE ADJACENT DUPLICATES FROM gt_exidv COMPARING exidv.

ENDFORM.                    " GET_BARCODE
*&---------------------------------------------------------------------*
*&      Form  PROCESS_DATA
*&---------------------------------------------------------------------*
FORM process_data.

  TYPES: BEGIN OF lrec,
           werks  TYPE werks_d,
           signi  TYPE signi,
           bolnr  TYPE vbeln,
           wadat  TYPE wadat,
           vbeln  TYPE vbeln,
         END OF lrec.
  DATA: lt_trlr  TYPE STANDARD TABLE OF lrec  WITH HEADER LINE,
        lf_msg   TYPE char40.

*-Group by trailer
  LOOP AT gt_exidv.
    lt_trlr-werks = gt_exidv-werks.
    lt_trlr-signi = gt_exidv-signi.
    lt_trlr-bolnr = gt_exidv-bolnr.
    lt_trlr-wadat = gt_exidv-wadat.
*---Get the delivery number for barcodes in trailer
    SELECT SINGLE inhalt INTO lt_trlr-vbeln FROM  vekp
                         WHERE exidv  EQ gt_exidv-exidv
                         AND   status NE '0060'.
*---If barcode not found then write log
    IF sy-subrc NE 0.
      lf_msg = 'Barcode Not Found'.
      WRITE :/ lt_trlr-werks,  (10) lt_trlr-signi, (10) lt_trlr-bolnr,
               (10) gt_exidv-exidv, lf_msg.
    ENDIF.
    CHECK NOT lt_trlr-vbeln IS INITIAL.
    gt_exidv-vbeln = lt_trlr-vbeln.
    MODIFY gt_exidv.
    COLLECT lt_trlr.
  ENDLOOP.

*-Process each delivery
  LOOP AT lt_trlr.
    SELECT SINGLE COUNT(*) FROM likp WHERE vbeln     = lt_trlr-vbeln
                                     AND   wadat_ist = '00000000'.
*---If PGI is already done then skip the process
    IF sy-subrc NE 0.
      MESSAGE s000(zrf) WITH lt_trlr-vbeln 'Delivery already PGIed'.
      CONTINUE.
    ENDIF.
    SELECT SINGLE COUNT(*) FROM lips WHERE vbeln = lt_trlr-vbeln
                                     AND   zzconpath NE space.
*---If consolidation delivery then skip the process
    IF sy-subrc EQ 0.
      lf_msg = 'NAPD Model - Use Transaction ZRMFGCST'.
      WRITE :/ lt_trlr-signi, lt_trlr-vbeln, lf_msg.
      CONTINUE.
    ENDIF.
*---PGI the delivery
    PERFORM process_pgi USING lt_trlr-werks lt_trlr-signi lt_trlr-bolnr
                              lt_trlr-wadat lt_trlr-vbeln.
*---Check for PGI completion
    SELECT SINGLE COUNT(*) FROM likp WHERE vbeln     = lt_trlr-vbeln
                                     AND   wadat_ist = '00000000'.
    IF sy-subrc EQ 0.
      lf_msg = 'PGI Failed - Check workflow'.
      WRITE :/ lt_trlr-signi, lt_trlr-vbeln, lf_msg.
    ELSE.
      MESSAGE s000(zrf) WITH lt_trlr-vbeln 'Delivery PGIed'.
    ENDIF.
  ENDLOOP.

ENDFORM.                    " PROCESS_DATA
*&---------------------------------------------------------------------*
*&      Form  PROCESS_PGI
*&---------------------------------------------------------------------*
FORM process_pgi USING pf_werks pf_signi pf_bolnr pf_wadat pf_vbeln.

  DATA:  lt_exidv TYPE STANDARD TABLE OF exidv WITH HEADER LINE,
         lf_msg   TYPE camsg.

*-Get all HU for given delivery
  LOOP AT gt_exidv WHERE vbeln = pf_vbeln.
    APPEND gt_exidv-exidv TO lt_exidv.
  ENDLOOP.

*-If no HU given then exit
  CHECK NOT lt_exidv[] IS INITIAL.

*-If delivery is not picking relevant then exit
  SELECT SINGLE COUNT(*) FROM vbuk WHERE vbeln EQ pf_vbeln
                                   AND   kostk NE space.
  IF sy-subrc EQ 0.
    lf_msg = 'Delivery is picking relevant'.
    PERFORM create_workflow TABLES lt_exidv USING pf_werks pf_vbeln
                                   pf_bolnr pf_signi pf_wadat lf_msg.
    EXIT.
  ENDIF.

*-Update given delivery header text
  PERFORM update_text USING pf_vbeln pf_bolnr pf_signi pf_wadat.
  IF sy-subrc NE 0.
    lf_msg = 'Delivery header text update failed'.
    PERFORM create_workflow TABLES lt_exidv USING pf_werks pf_vbeln
                                   pf_bolnr pf_signi pf_wadat lf_msg.
    EXIT.
  ENDIF.

*-Split delivery
  PERFORM split_delivery TABLES lt_exidv USING pf_vbeln.
  IF sy-subrc NE 0.
    lf_msg = 'Delivery Split Failed'.
    PERFORM create_workflow TABLES lt_exidv USING pf_werks pf_vbeln
                                   pf_bolnr pf_signi pf_wadat lf_msg.
    EXIT.
  ENDIF.

*-Create material document
  PERFORM create_md TABLES lt_exidv USING pf_vbeln lf_msg.
  IF NOT lf_msg IS INITIAL.
    PERFORM create_workflow TABLES lt_exidv USING pf_werks pf_vbeln
                                   pf_bolnr pf_signi pf_wadat lf_msg.
    EXIT.
  ENDIF.

*-PGI the delivery
  PERFORM pgi_delivery USING pf_vbeln.
  IF sy-subrc NE 0.
    PERFORM get_error USING lf_msg.
    PERFORM create_workflow TABLES lt_exidv USING pf_werks pf_vbeln
                                   pf_bolnr pf_signi pf_wadat lf_msg.
    EXIT.
  ENDIF.

*-Insert into log table for BW extract
  PERFORM insert_log TABLES lt_exidv USING pf_werks pf_vbeln pf_signi.

ENDFORM.                    " PROCESS_PGI
*&---------------------------------------------------------------------
*&      Form  UPDATE_TEXT
*&---------------------------------------------------------------------
FORM update_text USING pf_vbeln pf_bolnr pf_signi pf_date.

  DATA: ls_header LIKE thead,
        lf_posnr  LIKE lips-posnr,
        lt_lines  TYPE STANDARD TABLE OF tline WITH HEADER LINE.

*-Populate Header Text details
  ls_header-tdobject  = 'VBBK'.
  ls_header-tdname    = pf_vbeln.
  ls_header-tdid      = 'ZRM0'.
  ls_header-tdspras   = sy-langu.

*-Populate details of Text
  CONCATENATE 'Shipment No   :' 'RM Ship No' INTO lt_lines-tdline
  SEPARATED BY space.
  lt_lines-tdformat = '*'.
  APPEND lt_lines.

  CONCATENATE 'Bill of Lading:' pf_bolnr INTO lt_lines-tdline
  SEPARATED BY space.
  APPEND lt_lines.

  IF pf_signi EQ space.
    pf_signi = 'RM TRAILER'.
  ENDIF.
  CONCATENATE 'Trailer       :' pf_signi INTO lt_lines-tdline
  SEPARATED BY space.
  APPEND lt_lines.

  IF pf_date IS INITIAL.
    pf_date = sy-datum.
  ENDIF.
  CONCATENATE 'Act Ship Date :' pf_date INTO lt_lines-tdline
  SEPARATED BY space.
  APPEND lt_lines.

  CONCATENATE 'Route         :' 'RM Route' INTO lt_lines-tdline
  SEPARATED BY space.
  APPEND lt_lines.

*-Save Text
  CALL FUNCTION 'SAVE_TEXT'
    EXPORTING
      client          = sy-mandt
      header          = ls_header
      savemode_direct = 'X'
    TABLES
      lines           = lt_lines
    EXCEPTIONS
      OTHERS          = 1.

  IF sy-subrc NE 0.
    EXIT.
  ENDIF.

*-Populate header and item text details
  ls_header-tdid      = 'Z052'.
  REFRESH lt_lines.
  lt_lines-tdline = pf_date.
  lt_lines-tdformat = '*'.
  APPEND lt_lines.

*-Save Text for actual ship date
  CALL FUNCTION 'SAVE_TEXT'
    EXPORTING
      client          = sy-mandt
      header          = ls_header
      savemode_direct = 'X'
    TABLES
      lines           = lt_lines
    EXCEPTIONS
      OTHERS          = 1.

  IF sy-subrc NE 0.
    EXIT.
  ENDIF.

*-Insert Texts at Item level.
  SELECT posnr INTO lf_posnr FROM lips WHERE vbeln = pf_vbeln.
    PERFORM item_text USING pf_vbeln lf_posnr 'ZLO1' pf_bolnr.
    PERFORM item_text USING pf_vbeln lf_posnr 'ZLO2' pf_date.
    PERFORM item_text USING pf_vbeln lf_posnr 'ZLO3' pf_signi.
    PERFORM item_text USING pf_vbeln lf_posnr 'ZLO4' 'Routing'.
  ENDSELECT.

  IF sy-subrc NE 0.
    EXIT.
  ENDIF.

*-Update delivery header with bolnr and trailer Id
  UPDATE likp SET bolnr = pf_bolnr traid = pf_signi
                             WHERE vbeln = pf_vbeln.
  COMMIT WORK AND WAIT.

ENDFORM.                    " UPDATE_TEXT
*&---------------------------------------------------------------------
*&      Form  ITEM_TEXT
*&---------------------------------------------------------------------
FORM item_text USING pf_vbeln pf_posnr pf_id pf_title.

  DATA: ls_header LIKE thead,
        lt_lines TYPE STANDARD TABLE OF tline WITH HEADER LINE.

  CONCATENATE pf_vbeln pf_posnr INTO ls_header-tdname.
  ls_header-tdspras   = sy-langu.
  ls_header-tdobject  = 'VBBP'.
  ls_header-tdid      = pf_id.
  ls_header-tdtitle   = pf_title.

  lt_lines-tdline   = pf_title .
  lt_lines-tdformat = '*'.
  APPEND lt_lines.

  CALL FUNCTION 'SAVE_TEXT'
    EXPORTING
      client          = sy-mandt
      header          = ls_header
      savemode_direct = 'X'
    TABLES
      lines           = lt_lines
    EXCEPTIONS
      OTHERS          = 1.

  IF sy-subrc NE 0.
    EXIT.
  ENDIF.

ENDFORM.                    " ITEM_TEXT
*&---------------------------------------------------------------------
*&      Form  SPLIT_DELIVERY
*&---------------------------------------------------------------------
FORM split_delivery TABLES pt_exidv USING pf_vbeln.

  DATA: lt_hu    TYPE STANDARD TABLE OF zhu_data  WITH HEADER LINE,
        lf_exidv TYPE exidv.

*-Get number of HU for given delivery
  SELECT COUNT(*) FROM vekp WHERE inhalt  = pf_vbeln
                            AND   status <> '0060'.

*-Check for split required
  DESCRIBE TABLE pt_exidv.
  CHECK sy-tfill LT sy-dbcnt.

*-Get HU data for given delivery
  CALL FUNCTION 'Z_HU_GET_MULTI_DATA'
    EXPORTING
      if_vbeln = pf_vbeln
    TABLES
      et_hu    = lt_hu.

*-Remove all HU that are not in IDOC
  LOOP AT lt_hu.
    READ TABLE pt_exidv INTO lf_exidv WITH KEY lt_hu-exidv.
    IF sy-subrc NE 0.
      DELETE lt_hu.
    ENDIF.
  ENDLOOP.

*-Split the delivery
  CALL FUNCTION 'Z_DELIVERY_SPLIT_BY_HU'
    TABLES
      it_hu_data = lt_hu
    EXCEPTIONS
      OTHERS     = 1.

ENDFORM.                    " SPLIT_DELIVERY
*&---------------------------------------------------------------------*
*&      Form  PGI_DELIVERY
*&---------------------------------------------------------------------*
FORM pgi_delivery USING pf_vbeln.

  DATA: lt_bdc TYPE STANDARD TABLE OF bdcdata WITH HEADER LINE,
        lf_mode VALUE 'N'.

  PERFORM bdc_dynpro TABLES lt_bdc USING 'SAPMV50A' '4004'.
  PERFORM bdc_field  TABLES lt_bdc USING  'LIKP-VBELN' pf_vbeln.
  PERFORM bdc_field  TABLES lt_bdc USING 'BDC_OKCODE' 'WABU_T'.

  CALL TRANSACTION 'VL02N' USING  lt_bdc
                           MODE   lf_mode
                           UPDATE 'S'.
  IF sy-subrc NE 0.
    EXIT.
  ENDIF.
  COMMIT WORK AND WAIT.

ENDFORM.                    " PGI_DELIVERY
*&---------------------------------------------------------------------*
*&      Form  INSERT_LOG
*&---------------------------------------------------------------------*
FORM insert_log TABLES pt_exidv USING pf_werks pf_vbeln pf_signi.

  DATA: ls_log   TYPE zremote_log,
        lf_lgnum TYPE lgnum.

  IF pf_werks = '6500'.
    lf_lgnum = 'ATL'.
  ELSEIF pf_werks = '8300'.
    lf_lgnum = 'AMX'.
  ENDIF.
  LOOP AT pt_exidv.
    ls_log-erdat = sy-datum.
    ls_log-vbeln = pf_vbeln.
    ls_log-exidv = pt_exidv.
    ls_log-lgnum = lf_lgnum.
    ls_log-tknum = pf_signi.
    INSERT zremote_log FROM ls_log.
  ENDLOOP.

ENDFORM.                    " INSERT_LOG
*&---------------------------------------------------------------------*
*&      form  BDC_DYNPRO
*&---------------------------------------------------------------------*
FORM bdc_dynpro TABLES pt_bdc STRUCTURE bdcdata
                USING  lf_program lf_dynpro.

  CLEAR pt_bdc.
  pt_bdc-program  = lf_program.
  pt_bdc-dynpro   = lf_dynpro.
  pt_bdc-dynbegin = 'X'.
  APPEND pt_bdc.

ENDFORM.         "  BDC_DYNPRO
*&---------------------------------------------------------------------*
*&      form  BDC_FIELD
*&---------------------------------------------------------------------*
FORM bdc_field TABLES pt_bdc STRUCTURE bdcdata USING pf_nam pf_val.

  CLEAR pt_bdc.
  pt_bdc-fnam = pf_nam.
  pt_bdc-fval = pf_val.
  APPEND pt_bdc.

ENDFORM.       "  BDC_FIELD
*&---------------------------------------------------------------------*
*&      Form  GET_ERROR
*&---------------------------------------------------------------------*
FORM get_error USING pf_msg.

  DATA: ls_messg LIKE message.

  CALL FUNCTION 'WRITE_MESSAGE'
    EXPORTING
      msgid = sy-msgid
      msgno = sy-msgno
      msgty = sy-msgty
      msgv1 = sy-msgv1
      msgv2 = sy-msgv2
      msgv3 = sy-msgv3
      msgv4 = sy-msgv4
    IMPORTING
      messg = ls_messg.

  pf_msg = ls_messg-msgtx.

ENDFORM.                    " GET_ERROR
*&---------------------------------------------------------------------*
*&      Form  CREATE_MD
*&---------------------------------------------------------------------*
FORM create_md TABLES lt_exidv USING pf_vbeln pf_msg.

  DATA: ls_header LIKE bapi2017_gm_head_01,
        ls_code   LIKE bapi2017_gm_code,
        ls_vekpo  TYPE zvekpo,
        lf_exidv  TYPE exidv,
        lt_ret    TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE,
        lt_item   TYPE STANDARD TABLE OF bapi2017_gm_item_create
                  WITH HEADER LINE.

*-Fill the header detail
  ls_header-pstng_date     = sy-datum.
  ls_header-doc_date       = sy-datum.
  ls_header-pr_uname       = sy-uname.
  ls_code-gm_code          = '05'.

*-Fill item detail
  LOOP AT lt_exidv INTO lf_exidv.
    CLEAR ls_vekpo.
    SELECT SINGLE * FROM zvekpo INTO  ls_vekpo
                                WHERE exidv  =  lf_exidv
                                AND   inhalt =  pf_vbeln
                                AND   status <> '0060'.
    SELECT SINGLE COUNT(*) FROM  mseg
                           WHERE matnr     = ls_vekpo-matnr
                           AND   werks     = ls_vekpo-werks
                           AND   lgort     = ls_vekpo-werks
                           AND   bwart     = '561'
                           AND   sobkz     = ls_vekpo-sobkz
                           AND   mat_kdauf = ls_vekpo-sonum(10)
                           AND   mat_kdpos = ls_vekpo-sonum+10(6)
                           AND   wempf     = lf_exidv.
    IF sy-subrc EQ 0.
      CONTINUE.
    ENDIF.
    lt_item-plant          = ls_vekpo-werks.
    lt_item-material       = ls_vekpo-matnr.
    lt_item-entry_qnt      = ls_vekpo-vemng.
    lt_item-entry_uom      = ls_vekpo-altme.
    lt_item-spec_stock     = ls_vekpo-sobkz.
    lt_item-sales_ord      = ls_vekpo-sonum(10).
    lt_item-s_ord_item     = ls_vekpo-sonum+10(6).
    lt_item-val_sales_ord  = ls_vekpo-sonum(10).
    lt_item-val_s_ord_item = ls_vekpo-sonum+10(6).
    lt_item-move_type      = '561'.
    lt_item-stge_loc       = ls_vekpo-werks.
    lt_item-gr_rcpt        = lf_exidv.
    APPEND lt_item.
  ENDLOOP.

  CHECK NOT lt_item[] IS INITIAL.

*-Create material document
  CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    EXPORTING
      goodsmvt_header = ls_header
      goodsmvt_code   = ls_code
    TABLES
      goodsmvt_item   = lt_item
      return          = lt_ret.

*-If any error then send message back
  READ TABLE lt_ret INDEX 1.
  IF lt_ret-type EQ 'E'.
    pf_msg = lt_ret-message.
  ELSE.
    COMMIT WORK AND WAIT.
  ENDIF.

ENDFORM.                    " CREATE_MD
*&---------------------------------------------------------------------
*&      Form  CREATE_WORKFLOW
*&---------------------------------------------------------------------
FORM create_workflow TABLES pt_exidv
         USING  pf_werks pf_vbeln pf_bolnr pf_signi pf_date  pf_msg.

  INCLUDE <cntn01>.
  swc_container my_container.
  DATA: lf_objkey LIKE sweinstcou-objkey.

  CONCATENATE 'NON SAP PGI' pf_msg INTO pf_msg SEPARATED BY space.
  swc_set_element my_container 'Plant'    pf_werks.
  swc_set_element my_container 'Delivery' pf_vbeln.
  swc_set_element my_container 'Bolnr'    pf_bolnr.
  swc_set_element my_container 'Trailer'  pf_signi.
  swc_set_element my_container 'PGIDate'  pf_date.
  swc_set_element my_container 'Message'  pf_msg.
  swc_set_table   my_container 'Barcode'  pt_exidv.
  lf_objkey = pf_vbeln.
  CALL FUNCTION 'SWE_EVENT_CREATE'
    EXPORTING
      objtype         = 'ZRMPGI'
      objkey          = lf_objkey
      event           = 'CAPTUREERROR'
    TABLES
      event_container = my_container.
  COMMIT WORK.

ENDFORM.                    " CREATE_WORKFLOW

Message was edited by: Vijay Babu Dudla

0 View this answer in context
Not what you were looking for? View more on this topic or Ask a question