Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

User-exit

Former Member
0 Likes
443

Hi,

I have a requirement where I need to process delivery for a sales order at item level based on certain conditions.

Suppose I have a sales order 2566850 and it has two items 10 and 20, I want to process delivery for item 10 only using tcode VL01N.

Are there any user-exits in VL01N, which serve this purpose. Is there any possibility of setting delivery block for item 20, so that delivery will not be created for that particular item.

Thanks in Advance.

Vishnu Priya.

3 REPLIES 3
Read only

gopi_narendra
Active Contributor
0 Likes
402

Exits for VL01N

V02V0001 Sales area determination for stock transport order

V02V0002 User exit for storage location determination

V02V0003 User exit for gate + matl staging area determination (h

V02V0004 User Exit for Staging Area Determination (Item)

V50PSTAT Delivery: Item Status Calculation

V50Q0001 Delivery Monitor: User Exits for Filling Display Fields

V50R0001 Collective processing for delivery creation

V50R0002 Collective processing for delivery creation

V50R0004 Calculation of Stock for POs for Shipping Due Date List

V50S0001 User Exits for Delivery Processing

V53C0001 Rough workload calculation in time per item

V53C0002 W&S: RWE enhancement - shipping material type/time slot

V53W0001 User exits for creating picking waves

VMDE0001 Shipping Interface: Error Handling - Inbound IDoc

VMDE0002 Shipping Interface: Message PICKSD (Picking, Outbound)

VMDE0003 Shipping Interface: Message SDPICK (Picking, Inbound)

VMDE0004 Shipping Interface: Message SDPACK (Packing, Inbound)

Regards

- Gopi

Read only

Former Member
0 Likes
402

Please find the sample code for finding the user exits for SAP transactions

  • Finding the user-exits of a SAP transaction code

*

  • Enter the transaction code in which you are looking for the user-exit

  • and it will list you the list of user-exits in the transaction code.

  • Also a drill down is possible which will help you to branch to SMOD.

*

&----


REPORT YUSEREXIT .

tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.

tables : tstct.

data : jtab like tadir occurs 0 with header line.

data : field1(30).

data : v_devclass like tadir-devclass.

parameters : p_tcode like tstc-tcode obligatory.

select single * from tstc where tcode eq p_tcode.

if sy-subrc eq 0.

select single * from tadir where pgmid = 'R3TR'

and object = 'PROG'

and obj_name = tstc-pgmna.

move : tadir-devclass to v_devclass.

if sy-subrc ne 0.

select single * from trdir where name = tstc-pgmna.

if trdir-subc eq 'F'.

select single * from tfdir where pname = tstc-pgmna.

select single * from enlfdir where funcname =

tfdir-funcname.

select single * from tadir where pgmid = 'R3TR'

and object = 'FUGR'

and obj_name eq enlfdir-area.

move : tadir-devclass to v_devclass.

endif.

endif.

select * from tadir into table jtab

where pgmid = 'R3TR'

and object = 'SMOD'

and devclass = v_devclass.

select single * from tstct where sprsl eq sy-langu and

tcode eq p_tcode.

format color col_positive intensified off.

write:/(19) 'Transaction Code - ',

20(20) p_tcode,

45(50) tstct-ttext.

skip.

if not jtab[] is initial.

write:/(95) sy-uline.

format color col_heading intensified on.

write:/1 sy-vline,

2 'Exit Name',

21 sy-vline ,

22 'Description',

95 sy-vline.

write:/(95) sy-uline.

loop at jtab.

select single * from modsapt

where sprsl = sy-langu and

name = jtab-obj_name.

format color col_normal intensified off.

write:/1 sy-vline,

2 jtab-obj_name hotspot on,

21 sy-vline ,

22 modsapt-modtext,

95 sy-vline.

endloop.

write:/(95) sy-uline.

describe table jtab.

skip.

format color col_total intensified on.

write:/ 'No of Exits:' , sy-tfill.

else.

format color col_negative intensified on.

write:/(95) 'No User Exit exists'.

endif.

else.

format color col_negative intensified on.

write:/(95) 'Transaction Code Does Not Exist'.

endif.

at line-selection.

get cursor field field1.

check field1(4) eq 'JTAB'.

set parameter id 'MON' field sy-lisel+1(10).

call transaction 'SMOD' and skip first screen.

*---End of Program

The exits available for VL01N are

Exit Name Description

V02V0001 Sales area determination for stock transport order

V02V0002 User exit for storage location determination

V02V0003 User exit for gate + matl staging area determination (headr)

V02V0004 User Exit for Staging Area Determination (Item)

V50PSTAT Delivery: Item Status Calculation

V50Q0001 Delivery Monitor: User Exits for Filling Display Fields

V50R0001 Collective processing for delivery creation

V50R0002 Collective processing for delivery creation

V50R0004 Calculation of Stock for POs for Shipping Due Date List

V50S0001 User Exits for Delivery Processing

V53C0001 Rough workload calculation in time per item

V53C0002 W&S: RWE enhancement - shipping material type/time slot

V53W0001 User exits for creating picking waves

VMDE0001 Shipping Interface: Error Handling - Inbound IDoc

VMDE0002 Shipping Interface: Message PICKSD (Picking, Outbound)

VMDE0003 Shipping Interface: Message SDPICK (Picking, Inbound)

VMDE0004 Shipping Interface: Message SDPACK (Packing, Inbound)

Read only

Former Member
0 Likes
402

Hi

I guess there is no delivery block at item level. Maybe you can try using <b>Reason for Rejection</b> at item level.

If you want to change the order then you can do that via BAPI: BAPI_SALESORDER_CHANGE.

Alternatively, if you want this to be done wheneven the order the processed manually, you can do that via user-exits. Please look into MV45AFZZ - subroutine: <b>userexit_move_field_to_vbap</b>.

Kind Regards

Eswar