Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- METHOD if_ex_exec_methodcall_ppf~execute.
- DATA: lo_appl_object TYPE REF TO /scdl/cl_dlv_ppf,
- lv_doccat TYPE /scdl/dl_doccat.
- DATA lv_status TYPE /scdl/db_proci_o-status_pick.
- DATA lv_docidd TYPE /scdl/db_proci_o-docid.
- DATA lv_tsttose TYPE /scwm/dl_tstto.
- DATA: lv_whno TYPE /scwm/lgnum.
- DATA : lv_dummy TYPE string.
- DATA : lv_dest TYPE tbdls-logsys,
- lo_ext_receiver TYPE REF TO /scwm/if_af_ext_receiver.
- DATA: lo_sf TYPE REF TO zcl_im_ewm_packstatus_upd.
- DATA : ls_hdrdata TYPE bapiobdlvhdrchg,
- ls_hdrctrl TYPE bapiobdlvhdrctrlchg,
- ls_hdr_spl TYPE /spe/bapiobdlvhdrchg,
- lt_return TYPE TABLE OF bapiret2.
- TYPES : transNrType TYPE c LENGTH 6.
- DATA: lv_qname TYPE trfcqnam.
- CONSTANTS: trfc TYPE transNrType VALUE 'tRFC', "#EC NOTEXT
- qrfc TYPE transNrType VALUE 'qRFC'. "#EC NOTEXT
- CREATE OBJECT lo_sf.
- lo_appl_object ?= io_appl_object.
- lv_doccat = lo_appl_object->get_doccat( ).
- *----------- get delivery data -----------------------------
- TRY.
- lo_sf->get_data_for_dlv_note(
- EXPORTING
- io_appl_object = lo_appl_object " Agent Triggering of PPF Delivery
- iv_application_log = ip_application_log " Application Log: Log Handle
- iv_langu = sy-langu " Language Key
- * iv_smart_form = " Smart Forms: Form Name
- * iv_pdf_form = " Name of Form Object
- IMPORTING
- es_dlv_note = DATA(ls_dlv_note) " Delivery Note Data: Transfer Structure for Smartform
- ).
- CATCH /scdl/cx_af_ppf.
- EXIT.
- ENDTRY.
- IF ls_dlv_note IS INITIAL.
- * there is no data available to create a printout
- RETURN.
- ENDIF.
- " Begin of Mod AAG
- SELECT SINGLE docid status_pick tsttose /scwm/whno
- FROM /scdl/db_proci_o
- INTO (lv_docidd, lv_status , lv_tsttose, lv_whno )
- WHERE docno EQ ls_dlv_note-hd_gen-docno.
- SELECT *
- FROM /scdl/db_status
- INTO TABLE @DATA(lt_status)
- WHERE docid EQ @lv_docidd
- AND status_type EQ 'DPI'.
- IF sy-subrc IS INITIAL.
- SELECT *
- FROM /scdl/db_refdoc
- INTO TABLE @DATA(lt_refdoc)
- WHERE docid EQ @lv_docidd.
- DATA(lv_no_status) = abap_false.
- LOOP AT lt_status ASSIGNING FIELD-SYMBOL(<lfs_status>) WHERE status_value NE 9 .
- lv_no_status = abap_true.
- ENDLOOP.
- CHECK lv_no_status EQ abap_false.
- READ TABLE lt_refdoc ASSIGNING FIELD-SYMBOL(<lfs_refdocno>)
- WITH KEY refdoccat = 'ERP'.
- IF sy-subrc IS INITIAL.
- TRY.
- DATA(lo_send_to_bussys) = /scmb/cl_business_system=>get_instance( <lfs_refdocno>-refbskey ).
- CATCH /scmb/cx_business_system INTO DATA(lx_catch).
- DATA(lv_exception_text) = lx_catch->if_message~get_text( ).
- cl_message_helper=>set_msg_vars_for_clike( text = lv_exception_text ).
- MESSAGE ID '/SCWM/ERPINTEGRATION' TYPE /scdl/cl_dm_message=>sc_msgty_error
- NUMBER '562' WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO lv_dummy.
- * create message object if not done
- CALL METHOD cl_log_ppf=>add_message
- EXPORTING
- ip_problemclass = sppf_pclass_3
- ip_handle = ip_application_log.
- RETURN.
- ENDTRY.
- * get rfc_destination, but check object lo_send_to_bussys before
- CHECK lo_send_to_bussys IS NOT INITIAL.
- DATA(lo_service) = /scdl/cl_af_management=>get_instance( ).
- lo_ext_receiver ?= lo_service->get_service( /scwm/if_af_ext_receiver=>sc_me_as_service ).
- TRY.
- DATA(lv_rfc_destination) = lo_ext_receiver->get_destination_rfc( iv_logsys = lo_send_to_bussys->m_v_logsys ).
- CATCH /scwm/cx_ext_receiver INTO DATA(lx_ext_receiver) ##NO_HANDLER.
- CLEAR: lv_rfc_destination.
- ENDTRY.
- IF lv_rfc_destination IS INITIAL.
- * output ERROR: if RFC-destination not maintained
- MESSAGE ID '/SCWM/ERPINTEGRATION' TYPE /scdl/cl_dm_message=>sc_msgty_error
- NUMBER '104' WITH lo_send_to_bussys->m_v_logsys INTO lv_dummy.
- CALL METHOD cl_log_ppf=>add_message
- EXPORTING
- ip_problemclass = sppf_pclass_3
- ip_handle = ip_application_log.
- RETURN.
- ENDIF.
- ls_hdrdata-deliv_numb = <lfs_refdocno>-refdocno.
- ls_hdrdata-dlv_prio = 01.
- ls_hdrctrl-deliv_numb = 'X'.
- ls_hdrctrl-dlv_prio_flg = 'X'.
- CALL FUNCTION 'ZBAPI_OUTB_DELIVERY_CHANGE'
- DESTINATION lv_rfc_destination
- EXPORTING
- is_hdrdata = ls_hdrdata
- is_hdrctrl = ls_hdrctrl
- is_hdr_spl = ls_hdr_spl
- IMPORTING
- et_return = lt_return.
- IF lt_return[] IS INITIAL.
- RP_STATUS = '1'.
- ENDIF.
- ENDIF.
- *
- ENDIF.
- ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement