cancel
Showing results for 
Search instead for 
Did you mean: 

Picking status change in Outbound delivery

Former Member
0 Kudos

Hi All,

I have to create a start condition in PPF actions, whihc is nothing but BADI... whihc will trigger when the Pcikinf status is changed....

I have these threee condtions:

Action will be triggered by outbound delivery order status change:

1. Picking planned status at header level changed after warehouse order creation/cancellation (corresponds to Focus2 status 0 u2013 Forecast);:

u2022 from u201CNot startedu201D to u201CCompletedu201D and back from u201CNot startedu201D to u201CPartially completedu201D and back ;

u2022 from u201CPartially completedu201D to u201CCompletedu201D and back;

2. Picking status changed at header level after execution each of warehouse order in drop location (corresponds to Focus2 status 1 - BeginPicked);

u2022 from u201CNot startedu201D to u201CPartially completedu201D and back;

3. Picking status changed at header level after execution of last warehouse order in drop location (corresponds to Focus2 status 2 - Picked):

u2022 from u201CNot startedu201D to u201CCompletedu201D and back;

u2022 from u201CPartially completedu201D to u201CCompletedu201D and back;

any help????

I want to know how can i code this??

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi All,

I finally got how to get the updated status but i am unable to check the value before updation.... are there any ideas on t his???

Former Member
0 Kudos

Hi,

In the BADI, you can get reference to Delivey Object

lo_dlv_ppf TYPE REF TO /scdl/cl_dlv_ppf.

lo_prd TYPE REF TO /scwm/cl_dlv_management_prd.

  • get delivery reference

lo_dlv_ppf ?= io_context->appl.

Get the attributes DOCID, the find the status of the documents accordingly.

Now get the instance of the Delivery management:

lo_prd = /scwm/cl_dlv_management_prd=>get_instance( ).

Then read Delivery header and items using the below method based on DOCID:

APPEND is_docid TO lt_docid.

ls_include_data-HEAD_PARTYLOC = abap_true.

ls_include_data-HEAD_DATE = abap_true.

ls_include_data-HEAD_TRANSPORT = abap_true.

ls_include_data-ITEM_DATE = abap_true.

ls_read_options-data_retrival_only = abap_true.

ls_read_options-mix_in_object_instances = abap_true.

CALL METHOD lo_prd->query

EXPORTING

it_docid = lt_docid

iv_doccat = is_docid-doccat

is_read_options = ls_read_options

is_include_data = ls_include_data

IMPORTING

et_headers = lt_whr_headers

et_items = lt_whr_items.

You can find header status in lt_wr_headers.

Or based on DOCID, get status from table /SCDL/DB_STATUS.

Hope that helps

Vinod.

Former Member
0 Kudos

hi,

this one will give me the updated status only...

i want to know wat was the status before updation... actually the dztabase table is also getting updated....

so i cant use database... to get the previous details..

Former Member
0 Kudos

hi,

now i have used Schedule condition rather than start condition.. the prblm is i am unable to debug it.... how will this badi trigger???

Please Please help