Advertisement
Ahmed_Ait_Lahcen

Untitled

Sep 20th, 2023
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 5.12 KB | None | 0 0
  1.   METHOD if_ex_exec_methodcall_ppf~execute.
  2.  
  3.     DATA: lo_appl_object TYPE REF TO /scdl/cl_dlv_ppf,
  4.           lv_doccat      TYPE /scdl/dl_doccat.
  5.  
  6.     DATA lv_status TYPE /scdl/db_proci_o-status_pick.
  7.     DATA lv_docidd TYPE /scdl/db_proci_o-docid.
  8.     DATA lv_tsttose TYPE /scwm/dl_tstto.
  9.     DATA: lv_whno TYPE /scwm/lgnum.
  10.     DATA : lv_dummy              TYPE string.
  11.  
  12.     DATA : lv_dest         TYPE tbdls-logsys,
  13.            lo_ext_receiver TYPE REF TO /scwm/if_af_ext_receiver.
  14.  
  15.     DATA: lo_sf                 TYPE REF TO zcl_im_ewm_packstatus_upd.
  16.     DATA : ls_hdrdata TYPE bapiobdlvhdrchg,
  17.            ls_hdrctrl TYPE bapiobdlvhdrctrlchg,
  18.            ls_hdr_spl TYPE /spe/bapiobdlvhdrchg,
  19.            lt_return  TYPE TABLE OF bapiret2.
  20.  
  21.     TYPES : transNrType TYPE c LENGTH 6.
  22.  
  23.     DATA: lv_qname TYPE trfcqnam.
  24.  
  25.     CONSTANTS: trfc TYPE transNrType VALUE 'tRFC',          "#EC NOTEXT
  26.                qrfc TYPE transNrType VALUE 'qRFC'.          "#EC NOTEXT
  27.  
  28.     CREATE OBJECT lo_sf.
  29.     lo_appl_object ?= io_appl_object.
  30.     lv_doccat = lo_appl_object->get_doccat( ).
  31.  
  32. *----------- get delivery data -----------------------------
  33.     TRY.
  34.         lo_sf->get_data_for_dlv_note(
  35.           EXPORTING
  36.             io_appl_object     =  lo_appl_object                " Agent Triggering of PPF Delivery
  37.             iv_application_log =  ip_application_log                " Application Log: Log Handle
  38.             iv_langu           =  sy-langu               " Language Key
  39. *        iv_smart_form      =                  " Smart Forms: Form Name
  40. *        iv_pdf_form        =                  " Name of Form Object
  41.           IMPORTING
  42.             es_dlv_note        =  DATA(ls_dlv_note)                " Delivery Note Data: Transfer Structure for Smartform
  43.         ).
  44.       CATCH /scdl/cx_af_ppf.
  45.         EXIT.
  46.     ENDTRY.
  47.     IF ls_dlv_note IS INITIAL.
  48. *   there is no data available to create a printout
  49.       RETURN.
  50.     ENDIF.
  51.     " Begin of Mod AAG
  52.     SELECT SINGLE docid status_pick tsttose /scwm/whno
  53.     FROM /scdl/db_proci_o
  54.     INTO (lv_docidd, lv_status , lv_tsttose, lv_whno )
  55.       WHERE docno EQ ls_dlv_note-hd_gen-docno.
  56.  
  57.     SELECT *
  58.      FROM /scdl/db_status
  59.      INTO TABLE @DATA(lt_status)
  60.        WHERE docid EQ @lv_docidd
  61.        AND status_type EQ 'DPI'.
  62.     IF sy-subrc IS INITIAL.
  63.  
  64.       SELECT *
  65.     FROM /scdl/db_refdoc
  66.     INTO TABLE @DATA(lt_refdoc)
  67.       WHERE docid EQ @lv_docidd.
  68.  
  69.       DATA(lv_no_status) = abap_false.
  70.  
  71.       LOOP AT lt_status ASSIGNING FIELD-SYMBOL(<lfs_status>) WHERE status_value NE 9 .
  72.         lv_no_status = abap_true.
  73.       ENDLOOP.
  74.  
  75.       CHECK lv_no_status EQ abap_false.
  76.  
  77.       READ TABLE lt_refdoc ASSIGNING FIELD-SYMBOL(<lfs_refdocno>)
  78.       WITH KEY refdoccat = 'ERP'.
  79.       IF sy-subrc IS INITIAL.
  80.  
  81.         TRY.
  82.             DATA(lo_send_to_bussys) = /scmb/cl_business_system=>get_instance( <lfs_refdocno>-refbskey ).
  83.           CATCH /scmb/cx_business_system INTO DATA(lx_catch).
  84.  
  85.             DATA(lv_exception_text) = lx_catch->if_message~get_text( ).
  86.             cl_message_helper=>set_msg_vars_for_clike( text = lv_exception_text ).
  87.  
  88.             MESSAGE ID '/SCWM/ERPINTEGRATION' TYPE /scdl/cl_dm_message=>sc_msgty_error
  89.               NUMBER '562' WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO lv_dummy.
  90. *       create message object if not done
  91.             CALL METHOD cl_log_ppf=>add_message
  92.               EXPORTING
  93.                 ip_problemclass = sppf_pclass_3
  94.                 ip_handle       = ip_application_log.
  95.  
  96.             RETURN.
  97.  
  98.         ENDTRY.
  99. *   get rfc_destination, but check object lo_send_to_bussys before
  100.         CHECK lo_send_to_bussys IS NOT INITIAL.
  101.         DATA(lo_service) = /scdl/cl_af_management=>get_instance( ).
  102.         lo_ext_receiver ?=  lo_service->get_service( /scwm/if_af_ext_receiver=>sc_me_as_service ).
  103.         TRY.
  104.             DATA(lv_rfc_destination) =   lo_ext_receiver->get_destination_rfc( iv_logsys = lo_send_to_bussys->m_v_logsys ).
  105.           CATCH /scwm/cx_ext_receiver INTO DATA(lx_ext_receiver) ##NO_HANDLER.
  106.             CLEAR: lv_rfc_destination.
  107.         ENDTRY.
  108.  
  109.         IF lv_rfc_destination IS INITIAL.
  110. *     output ERROR: if RFC-destination not maintained
  111.           MESSAGE ID '/SCWM/ERPINTEGRATION' TYPE /scdl/cl_dm_message=>sc_msgty_error
  112.             NUMBER '104' WITH lo_send_to_bussys->m_v_logsys INTO lv_dummy.
  113.  
  114.           CALL METHOD cl_log_ppf=>add_message
  115.             EXPORTING
  116.               ip_problemclass = sppf_pclass_3
  117.               ip_handle       = ip_application_log.
  118.           RETURN.
  119.         ENDIF.
  120.  
  121.         ls_hdrdata-deliv_numb = <lfs_refdocno>-refdocno.
  122.         ls_hdrdata-dlv_prio = 01.
  123.         ls_hdrctrl-deliv_numb = 'X'.
  124.         ls_hdrctrl-dlv_prio_flg = 'X'.
  125.  
  126.         CALL FUNCTION 'ZBAPI_OUTB_DELIVERY_CHANGE'
  127.           DESTINATION lv_rfc_destination
  128.           EXPORTING
  129.             is_hdrdata = ls_hdrdata
  130.             is_hdrctrl = ls_hdrctrl
  131.             is_hdr_spl = ls_hdr_spl
  132.           IMPORTING
  133.             et_return  = lt_return.
  134.         IF lt_return[] IS INITIAL.
  135.           RP_STATUS = '1'.
  136.  
  137.         ENDIF.
  138.  
  139.       ENDIF.
  140. *
  141.     ENDIF.
  142.  
  143.  
  144.   ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement