You are on page 1of 4

RP Sales and Distribution (SAP SD)

Previous post Next post


Few facts you should know about User Exits
Posted by Balaji Parsewar in SAP EP Sales and !istribution "SAP S!# on Apr $%& $'(% )*%(*+' P,
inShare-
.n this blo/ . want to cater user exits in detail0 . will try to answer 1h 2uestions like what& 3ow 4 1here5 6here are
several instances where client have re2uire7ent which cannot be fulfilled throu/h standard SAP functionality 7eans
it cannot be achieved throu/h standard confi/uration0 6hen in order to cater client re2uire7ent& SAP have /iven
provision of user exits0

User exits are blank for7s8space provided within standard SAP code in which we can write our own code with the
help of ABAP consultant to achieve functionality re2uired by client which cannot be catered by standard SAP0 1ith
the help of this code we can brin/ deviation in standard SAP behavior0 User exits allow developers to access and
7odify pro/ra7 co7ponents and data objects in the standard SAP Syste70
User Exits for S! are found in .,9 under

Sales 4 !istribution ::; Syste7 ,odifications ::; User Exits

6o see user exit& use 6:<ode SE%= then enter pro/ra7 na7e ,>+-AF?? 4 click on radio button @; source code 4
click on display button0 .n that code only purpose of that user exit is /iven0 .f you read that description only& we will
co7e to know utility of that user exit0

For each 7odule& SAP has /iven list of user exits0 3ere . would like to /ive few exa7ples of SAP S! user exits4 its
application throu/h a si7ple exa7ple*
<lient was havin/ S6A process0 Process is very co77only used 4 consists of steps :

,E$(N @ <reate purchase order
,E$BN @ elease purchase order
>C('B @ Autbound !elivery w0r0 to purchase order
>C'$n @ P9.
>F'( @ Profor7a .nvoice "Billin/ !ocu7ent 6ype @ DEE#
D(..N @ Excise .nvoice

Standard SAP behavior is that you can /enerate 7ultiple nu7ber of profor7a invoices with reference to sin/le
outbound delivery 3ere client ca7e up with the re2uire7ent that syste7 should allow only one profor7a invoice
fro7 outbound delivery0 .f you try to create another one syste7 should /ive error 7essa/e0 6his was one of the
re2uire7ents that could not be catered throu/h standard SAP0 At that ti7e we used user exit >F'AF?< 4
prevented profor7a invoice creation0

Few of the very popular S! user exits are @

.nvoice @ >F'AF??& >F'AF?<& >F(AF?B& >F'AF?!
!elivery @,>-'AF?(& ,>-'AF??
Sales Arders @ ,>+-AF??

e/ards&

Balaji
$=-% >iewsProducts* sapGerpGsalesGandGdistribution 6opics* enterpriseGresourceGplannin/ 6a/s* userGexits& 7odification
s& rvF'afHH
Avera/e User atin/
"+ ratin/s#
inShare-
<
o77ents
(' <o77ents

61 6ypewriter Apr $%& $'(% B*+= P,


Balaji&

<ould you please co77ent on

3ere client ca7e up with the re2uire7ent that syste7 should allow only one profor7a invoice fro7
outbound delivery0 .f you try to create another one syste7 should /ive error 7essa/e0 6his was one of
the re2uire7ents that could not be catered throu/h standard SAP0 At that ti7e we used user exit
>F'AF?< 4 prevented profor7a invoice creation0
For this re2uire7ent why did you /o for codin/ in the user exit0
6o block the creation of 7ultiple profor7as "for a delivery#& in copy control >6FC& routine %(( could be
used0
http*88scn0sap0co78thread8(%%+F+(

Any specific reason why userexit was used5
"Probably for populatin/ the error 7essa/e#
Cike "$#
o
Balaji Parsewar Apr $+& $'(% %*'F A, "in response to 61 6ypewriter#
3i 6 1&

1hen re2uire7ent ca7e to us& . was not aware of routine %((0 3ence . have not tried with %((0

,ore over custo7er needs very specific 7essa/e if so7ebody tries to create second profor7a
fro7 the delivery0 By keepin/ the re2uire7ent in 7ind& we have proposed above 7entioned
solution0 Proposed solution worked efficiently0 1ith that solution within += hours we have
closed the ticket also0

B61 any co77ent "praise8criticis7# on the blo/0
Iour feedback is ea/erly awaited0

e/ards&

Balaji
Cike "'#

61 6ypewriter Apr $=& $'(% =*$- P, "in response to Balaji Parsewar#


Balaji&

. have enjoyed and learnt fro7 so7e of your blo/s0
6his blo/ is not at that level of so7e of your other blo/s0

6his is /ood infor7ationJ But this could be 7ade better by /ivin/ many business
examples and the relevant program name and userexit.
. would su//est you to search S<N 8 9oo/le and /ive different exa7ples in this
blo/& with your co77ents "why a particular userexit is better than anotherK in a
specific re2uire7ent5 etc0#
6his would add so 7uch 7ore value to this blo/0

6hank youJ
Cike "$#

L ,oaHHa, L Apr $B& $'(% F*%( A,


9ood docu7ent and nicely explained0 So7ethin/ interestin/ and 2uick learner for new co7ers on S<N0
Meep postin/ Balaji0

6hankN
Cike "(#
o
61 6ypewriter Apr $B& $'(% F*%+ A, "in response to L ,oaHHa, L#
,oaHHa7&

Probably you could add so7e business re2uire7ents and the pro/ra7Ouserexits used0 "or so7e
links fro7 S! foru7s#
.t would be beneficial to the /roup0

6hank you& in advanceJ

http*88sap0ittoolbox0co78/roups8technical:functional8sap:lo/:sd8block:sales:order:types:for:
specific:sales:or/aniHation:$%B$+(=
Cike "'#

avanish /ulatee ,ay $)& $'(% )*$- A,


6ype this on S<N or /oo/le it 7i/ht be helpful0

Steps for Findin/ User:Exit or BadiPs
:http*88www0sdn0sap0co78irj8scn8/o8portal8prtroot8docs8library8uuid8''+(d+eF:(e+%:$e(':'db+:
B%=FabeB=feF52uicklinkQindex4overridelayoutQtrue

e/ards
Cike "'#

Balaji Parsewar Apr $B& $'(% )*') A,


6hanks 6 1 4 ,oaHHa,&

6hanks for your valuable feedback0 . do appreaciate 4 respect the sa7e0
First thin/ . will try to co7e out with next part of the blo/ with re2uired details 7entioned by both of you0

,ore over . will try to incorporate your su//estions in 7y upco7in/ blo/s also0
Meep contributin/0

e/ards&

Balaji
Cike "'#

SHabolcs !o7bo Dul (& $'(% ('*%= A,


6his include user:exits are still available for co7patibility reasons0 .f you are about to apply a chan/e to
such user:exit includes you still have to re/ister the object at SS<0 3owever& as of SAP Netweaver )0'
the 7ost up:to:date way of i7ple7entin/ custo7er lo/ic in standard codes is usin/ the Enhance7ent
fra7ework0

1ith this you can apply your own codin/ without chan/in/ the standard and without re/istration at the
SS< site0 Since it is possible to use the so called i7plicit enhance7ents you can place your own data
definition and codin/ in ACC for7 routines& even in the standard ones0
For 7ore details you can refer to the on:line help*
htt