SAP EWM 代码实现Transportation Unit(TU)的创建
在EWM中很少有創建或者修改業務對象的BAPI存在,更多的是通過很多面向對象的類方法來實現。
以下這個簡單的創建TU應該能很好的體現SCM平臺中的OO特性。
REPORT yewm_tu_creation NO STANDARD PAGE HEADING.
TYPES:
? BEGIN OF lty_key_wrk,
??? tu_num???????????????? TYPE /scwm/de_tu_num,
??? tu_sr_act_num? TYPE /scwm/de_tu_sr_act_num,
? END OF lty_key_wrk.
DATA:
? lo_tu_sp??????????????????? TYPE REF TO?? ????????????? /scwm/cl_ui_tu_sp,
? lt_aspect?????????????????? TYPE????????????????? ????????????? /scwm/tt_asp_tu,
? ls_aspect?????????????????? TYPE????????????????? ????????????? /scwm/s_asp_tu,
? lt_aspect_o????????????? TYPE????????????????? ????????????? /scwm/tt_asp_tu,
? lt_return_codes???? TYPE????????????????? ????????????? /scmb/t_sp_return_code,
? lv_rejected???????????????????????????? TYPE????????????????? ????????????? char01,
? lo_attr_hndl???????????? TYPE REF TO?? ????????????? /scmb/cl_attribute_handler,
? lo_msg_hndl??????????? TYPE REF TO?? ????????????? /scmb/cl_message_handler,
? ls_key_wrk????? TYPE???????????????? ????????????? lty_key_wrk,
? lt_key_wrk????? TYPE TABLE OF?????????? lty_key_wrk.
?
START-OF-SELECTION.
? "創建TU對象
? CREATE OBJECT:
??? lo_attr_hndl,
??? lo_msg_hndl,
??? lo_tu_sp?????????????? EXPORTING???? io_attribute_handler = lo_attr_hndl
?????????????????????? ???????????? io_message_handler = lo_msg_hndl.
?
? ls_aspect-act_dir???????????????? = "1" inbound / "2" outbound —Direction of Shipping and Receiving Activity
? ls_aspect-start_act_d??????? = sy-datum.
? ls_aspect-start_act_t???????? = sy-uzeit.
? ls_aspect-end_act_d????????? = sy-datum.
? ls_aspect-end_act_t?????????? = '235959'.
? ls_aspect-mtr??????????????????????? = Means of Transport
??ls_aspect-pmat???????????????????? = TU Packaging Material
? APPEND ls_aspect TO lt_aspect.
? CLEAR ls_aspect.
?????????????
? "通過INSERT方法來創建TU
? lo_tu_sp->insert(?? EXPORTING???? inrecords???????? = lt_aspect
????????????????????? ?????????????? aspect?????????????? = '/SCWM/S_ASP_TU'
IMPORTING??? outrecords????? = lt_aspect_o
????????????????????? ?????????????? rejected??????????? = lv_rejected
????????????????????? ?????????????? return_codes = lt_return_codes ).
? READ TABLE lt_return_codes TRANSPORTING NO FIELDS WITH KEY failed = abap_true.
? IF sy-subrc = 0 OR lv_rejected = abap_true.
??? "ERROR
? ELSE.
??? READ TABLE lt_aspect_o INTO ls_aspect INDEX 1.
??? IF sy-subrc = 0.
????? ls_key_wrk-tu_num???????????????????????????? = ls_aspect-tu_num.
????? ls_key_wrk-tu_sr_act_num????????????? = ls_aspect-tu_sr_act_num.
????? APPEND ls_key_wrk TO lt_key_wrk.
????? CLEAR: ls_key_wrk, ls_aspect.
ENDIF.
"保存并提交
??? lo_tu_sp->save( ).
??? COMMIT WORK AND WAIT.
? ENDIF.
?
? "激活TU對象
? /scwm/cl_sr_bom=>cleanup( ).
? TRY.
????? /scwm/cl_sr_my_service=>switch_tu_active(
??????? EXPORTING
????????? iv_lgnum???????????? = 倉庫號
????????? it_aspk_tu????????? = lt_key_wrk
??????? IMPORTING
????????? ev_rejected?????? = lv_rejected ).
????? IF lv_rejected = abap_true.
??????? "ERROR
????? ELSE.
??????? lo_tu_sp->save( ).
??????? COMMIT WORK AND WAIT.
????? ENDIF.
??? CATCH /scwm/cx_sr_error.
? ENDTRY.
轉載于:https://www.cnblogs.com/d0mi/archive/2013/05/07/3064892.html
總結
以上是生活随笔為你收集整理的SAP EWM 代码实现Transportation Unit(TU)的创建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摩尔庄园手游怎么放孔明灯?
- 下一篇: Mysql配置查询