on 07-22-2022 9:15 AM
Hi all,
we created a new function for outbound delivery orders in warehouse management monitor.
The user can select outbound deliveries and execute a check in and a check out for the assigned transportation units.
I created a class with the code below. The check in and check out works. But after that the transportation has the red status "Assigned object was changed".
Did I miss something in my code?
Thank you in advance.
Best regards
Julian
DATA(lt_tudlv) = me->get_assigned_tus( it_data ).
<br>LOOP AT lt_tudlv ASSIGNING FIELD-SYMBOL(<ls_tudlv>).
<br>me->check_in_out(<br>i_tu_num = <ls_tudlv>-tu_num<br>i_act_num = <ls_tudlv>-tu_sr_act_num<br>i_act = wmesr_act_check_in<br>i_chkpt = l_check_pnt<br>).
<br>me->check_in_out(<br>i_tu_num = <ls_tudlv>-tu_num<br>i_act_num = <ls_tudlv>-tu_sr_act_num<br>i_act = wmesr_act_check_out<br>i_chkpt = l_check_pnt<br>).
<br>ENDLOOP.
METHOD check_in_out.<br>DATA: lo_bom TYPE REF TO /scwm/cl_sr_bom,<br>lo_bom_tu TYPE REF TO /scwm/cl_sr_bo_tu,<br>ls_tu_data TYPE /scwm/s_bo_tu_data.
<br>lo_bom = /scwm/cl_sr_bom=>get_instance( ).<br>lo_bom->refresh( ).<br>lo_bom_tu = lo_bom->get_bo_tu_by_key( EXPORTING is_tu_sr_act_num = VALUE #( tu_num = i_tu_num tu_sr_act_num = i_act_num ) ).<br>lo_bom_tu->get_data( IMPORTING es_bo_tu_data = ls_tu_data ).
<br>/scwm/cl_sr_tm=>tm( ).
<br>lo_bom_tu->cico(<br>iv_lgnum = me->mv_lgnum<br>iv_chkpt = i_chkpt<br>iv_act = i_act<br>).
<br>lo_bom->save( ).<br>/scwm/cl_sr_tm=>tm( ).
<br>COMMIT WORK AND WAIT.
<br>ENDMETHOD.
Hi Daniil,
thanks for the feedback.
I changed the code according to your suggestion but unfortunately this didn´t solve the problem.
Best regards,
Julian
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Julian, maybe it is a still something like a delivery synchronisation or something like this.
Could you maybe add "wait up to 10 seconds." between check in and check out of the TU, just to test it?
I guess it is because PPF is planned and it is not able to do synchronisation. But it is just a guess 🙂
Or you can try maybe execute one part, and check if it works well. and after restart tcode and execute other part. just to see if one step works.
and I just rechecked maybe you can return back /scwm/cl_sr_tm=>tm( ). I just found that it is used together with
Here one more version as in standard:
METHOD check_in_out.
DATA: lo_bom TYPE REF TO /scwm/cl_sr_bom,
lo_bom_tu TYPE REF TO /scwm/cl_sr_bo_tu,
ls_tu_data TYPE /scwm/s_bo_tu_data.
lo_bom = /scwm/cl_sr_bom=>get_instance( ).
lo_bom->refresh( ).
lo_bom_tu = lo_bom->get_bo_tu_by_key( EXPORTING is_tu_sr_act_num = VALUE #( tu_num = i_tu_num tu_sr_act_num = i_act_num ) ).
lo_bom_tu->get_data( IMPORTING es_bo_tu_data = ls_tu_data ).
/scwm/cl_sr_tm=>tm( ).
lo_bom_tu->cico(
iv_lgnum = me->mv_lgnum
iv_chkpt = i_chkpt
iv_act = i_act
).
/scwm/cl_sr_tm=>tm( ). " called in standard before SAVE, even would be called in SAVE as well
lo_bom->save( ).
COMMIT WORK AND WAIT.
/scwm/cl_tm=>cleanup( iv_lgnum = me->mv_lgnum ).
ENDMETHOD.
User | Count |
---|---|
13 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.