'SD_ROUTE_DETERMINATION'
Hi all ,
Am using the FM 'SD_ROUTE_DETERMINATION' to get the route.
I wanted to know what does this route mean..
And i have Shipping date, Shipping pint with me and how can i get the delivery date?
hi,
Routes are nothing but identified with route id . Each route id identifies an origin and one destination which in turn identifies the delivery from origin to destination. by help of this u can achieve route optimization .
Regards,
Sumanjeet
Similar Messages
-
Creation of Function Module exit
Hai Friends,
I found functional exit called -<b>EXIT_SAPLL2018_001</b>. for
<b>Transfer order</b> in ware house management. I need ur help to proceed further.
Pls give me further steps to follow to create Function exit.It is very urgent,
regrds,
PrashanthHi,
go to SMOD <b>MWMBAP01</b>-EXIT_SAPLL2018_001.
sample code reletd to user exit go thorgh this you will get an idea.
look in txn CMOD or SMOD, check enhancement 0VRF0001. It uses function module EXIT_SAPL0VRF_001. It is used to manipulate route determination for SD.
Here is the code
DATA: ls_xvbpa LIKE xvbpa,
lf_aland LIKE tvst-aland,
lf_azone LIKE tvst-azone,
lf_lland LIKE trolz-lland,
lf_lzone LIKE trolz-lzone,
ls_vbadr LIKE vbadr,
ls_xvbap LIKE xvbap,
ls_tvst LIKE tvst,
lv_route LIKE trolz-route.
LOOP AT xvbap INTO ls_xvbap.
IF NOT ls_xvbap-vstel IS INITIAL.
SELECT SINGLE * FROM tvst
INTO ls_tvst
WHERE vstel EQ ls_xvbap-vstel.
IF sy-subrc = 0.
lf_aland = ls_tvst-aland.
lf_azone = ls_tvst-azone.
ENDIF.
ENDIF.
READ TABLE xvbpa INTO ls_xvbpa WITH KEY vbeln = ls_xvbap-vbeln
posnr = ls_xvbap-posnr
parvw = 'Q1'.
IF sy-subrc = 0.
CALL FUNCTION 'SD_ADDRESS_GET'
EXPORTING
fif_address_number = ls_xvbpa-adrnr
IMPORTING
fes_address = ls_vbadr
EXCEPTIONS
address_not_found = 1
address_type_not_exists = 2
no_person_number = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
lf_lland = ls_vbadr-land1.
lf_lzone = ls_vbadr-lzone.
ENDIF.
ENDIF.
CALL FUNCTION 'SD_ROUTE_DETERMINATION'
EXPORTING
i_aland = lf_aland
i_azone = lf_azone
i_lland = lf_lland
i_lzone = lf_lzone
IMPORTING
e_route = lv_route
EXCEPTIONS
no_route_found = 1
departure_error = 2
destination_error = 3
invalid_generic_key = 4
customer_exit_error = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
ls_xvbap-route = lv_route.
MODIFY xvbap FROM ls_xvbap TRANSPORTING route.
ENDIF.
ENDLOOP.
Regards -
How do I access the item Schedule line date in VA01?
Hi,
I am using userexit_check_vbep to carry out some checks. I need to access the Schedule line date value (RV45A-ETDAT) but it is not available at that point. How can I read that value from the exit?
Thanks,
KrocThanks Advait,
ahhh, I asked the wrong question. Yes, xvbep is available in the userexit but my code is being called earlier in the process. This is the call sequence
VBAP_FUELLEN
VBAP-VSTEL_ERMITTELN
VBAP-ROUTE_ERMITTELN
SD_ROUTE_DETERMINATION
EXIT_SAPL0VRF_001............This is where I need to access the schedule line data
Z_CUT_OFF_TIME_CALCULATE............This is where I need to access the schedule line data
Z_CUT_OFF_DETERMINE_DATA............This is where I need to access the schedule line data
Do you know if it is available at that stage?
Thanks,
Aidan. -
Backward scheduling in sales order
Hi all,
I have 2 routes maintained which should be determined by different shipping conditions. Let's name them as Route A with transit time 4 days and Route B with transit time 2 days.
When creating sales order, the backward scheduling takes place. To my understanding, in case the material available date is calculated as in the past, forward scheduling will take place.
My question is - I have 2 routes with different transit time. Is it possible to make the backward scheduling checking all available routes (in my case, ignoring the shipping condition) before start the forward scheduling?
Thanks in advance.
Cheers, KennethThis is how the system works:
the route is determines in FM SD_ROUTE_DETERMINATION. this is reached via the following call stack:
SAPL0VRF FUNCTION SD_ROUTE_DETERMINATION
SAPFV45P FORM VBAP-ROUTE_ERMITTELN
SAPFV45P FORM VBAP-VSTEL_ERMITTELN
SAPFV45P FORM VBAP_FUELLEN
SAPMV45A MODULE (PAI) VBAP_FUELLEN
As you know, shipping conditions are used as a criteria to find a route.
So lets say:
Shipping Conditions A (Air) ---> Route 1 will be determined
Shipping Conditions T (Truck) ---> Route 2 will be determined
Route 2 gets determined. Later, Function SD_SCHEDULING will be called. The following call stack reflects this:
SAPLV03C FUNCTION SD_SCHEDULING
SAPFV45V FORM VERSANDTERMINIERUNG_NEU
SAPFV45V FORM MVERF_AUFBAUEN_WMENG
SAPFV45V FORM MVERF_AUFBAUEN
SAPFV45V FORM VERFUEGBARKEIT_PRUEFEN
SAPFV45V FORM BESTAND_BEDARF_ABGLEICHEN
SAPFV45P FORM VBAP_BEARBEITEN_ENDE_VERFUEGB
SAPFV45P FORM VBAP_BEARBEITEN_ENDE
SAPMV45A MODULE (PAI) VBAP_BEARBEITEN_ENDE
The call of function SD_SCHEDULING looks like this:
call function 'SD_SCHEDULING'
EXPORTING
if_schedule_direction = v03c_backwards
if_schedule_shipping = us_vstrm
if_schedule_transport = us_trtrm
if_shipping_point = us_vstel
if_weight_group = us_grulg
if_loading_group = us_ladgr
if_transport_route = us_route <<<<<<<<<<<<<<<
us_route contains the route that is determined in FM SD_ROUTE_DETERMINATION.
So only 1 route will be passed to SD_SCHEDULING. In this example, use_route = "2" (Route 2).
My understanding of your issue is that you may have a requested delivery date = 10th April (for example)
10th - 4 days = 6th, a date in the past so system must do a forwards scheduling, and then we inevitably have a later confirmed delivery date. However, before you have the system do a forwards scheduling, you want the system to see if the requested delivery date of April 10th can
be reached with route 1.
10th - 2 days = 8th, so there is no need to execute the forwards scheduling as the customers requested delivery date can be met
It sounds like a reasonable request to me (Route 2 could be cheaper and meet customer's delivery date but if it cant be reached, then use route 1 as you will get goods to customer on time even if it is more expensive), but I do not think it is easily achieveable. The ECC system is just not as clever as that. Maybe the APO scheduling offers some more flexibility regarding this? The ECC system simply uses the route (i.e. transit time of route) as part of the initial backwards scheduling. If dates in the past, it will switch to forwards scheduling.
There is no method by which it will not switch to forwards scheduling if there is another route available. It cannot do this because as far as FM SD_SCHEDULING is concerned, there is only 1 relevant route.
I am not even sure if this is possible via a user exit. The problem is preventing the forwards scheduling in the case of route 2 resulting in past dates. There is definitely no user exit to do this within SD_SCHEDULING. And then there is the possibility of route 1 determining past dates. In the case of both routes determining past dates, which route should be used. So I do not think there is any possibility to so this from within the scheduling function.
Maybe you could implement your own "rough" scheduling logic in EXIT_SAPL0VRF_001. This exit is called in FM SD_ROUTE_DETERMINATION and allows you to determine your own route. And then this route will later be passed to the standard scheduling function. This would be a fairly significant development effort though. -
Hi all ,
Can any one give me the complete material for user exits,
explain the any real time user exits with the business requirement.
Thanks,
SasiHi,
Userexits allow us to add our own functionality to SAP standard program
without modifying it . These are implemented in the form of subroutines and hence are also known as FORM EXITs. The userexits are generally collected in includes and attached to the standard program by the SAP.
User exits are used when the flow for a particular transaction has to take some other route other then the normal flow. this can be the case when you have to attach some additional functionality lik u need a customised screen, or new functionality (using a functional module). based on these things user exits can be classified as screen exits, function module exits, field exits( not used anymore). hope this gives some help on userexits.
*This is a complete Step by Step Screen shot tutorial on User Exits :*
http://www.201interviewquestions.com/docs/User%20exits.ppt
http://erpgenie.com/abaptips/component/option,com_docman/task,doc_details/gid,27/
*The above tutorials will serve your Requirement,also am expalining you how to cretae project in*
*implementing User-exits.*
First create a project in CMOD tcode
then add the enhancement of your requirement into that project
then save and activate .
go to the components of that Enhancement
you will find an fun module like thing
go to that and you will find a ZINCLUDE in that fun module
double click on it and write the code in that
save and activate the code and the project.
execute the transaction and check.
see the doc
User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a function module. The code for the function module is written by the developer. You are not writing the code directly in the function module, but in the include that is implemented in the function module.
The naming standard of function modules for functionmodule exits is:
EXIT_<program name><3 digit suffix>
The call to a functionmodule exit is implemented as:
CALL CUSTOMER.-FUNCTION <3 digit suffix>
To find a Exit.
Goto Transaction -- Find The Package
SMOD >f4>Use the Package here to Find the Exits In the Package.
Else if you Want to search by Application Area wise ,
There is one more tab to find the Exits in the Respective Application Area.
Implementing the Exit-- CMOD Create ProjectsAssgn your Component .
Now Run ur Transaction to Check if it Triggers.
Thats it..
Suppose you need to find out all the user exits related to a tcode.
1. Execute the Tcode.
2. Open the SAP program.
3. Get the Development Class.
4. Execute Tcode SE84.
5. Open the Node 'Envir. -> Exit Techniques -> 'Customer Exits -> Enhancements'
6. Enter the Development class and execute.
Check out this thread..
The specified item was not found.
1. Type the transaction : system->status-> <PROG. NAME>
2 open SE37 , type EXIT<PROG NAME> and press F4 to get the list of function exits available.
3. Open CMOD utilities->SAP enhancements
EDIT->All selections
4.type the function module name obtained in step 2, in fields 'component name' in 'additional selections' block. and execute.
5. The displayed list contains the enhancements names for the transaction You were looking for.
6. Create a project in CMOD and the code in default include->activate.
http://www.erpgenie.com/sap/abap/code/abap26.htm
which gives the list of exits for a tcode
http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec079f5db911d295ae0000e82de14a/frameset.htm
For information on Exits, check these links
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.sapgenie.com/abap/code/abap26.htm
http://www.sap-img.com/abap/what-is-user-exits.htm
http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
http://www.easymarketplace.de/userexit.php
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.sappoint.com/abap/userexit.pdfUser-Exit
http://www.planetsap.com/userexit_main_page.htm
User-Exits
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.sap-img.com/ab038.htm
http://www.planetsap.com/userexit_main_page.htm
http://www.sap-basis-abap.com/sapab013.htm
http://sap.ittoolbox.com/documents/popular-q-and-a/user-exits-for-the-transaction-code-migo-3283
These links will help you to learn more on user exits.
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm
http://www.planetsap.com/userexit_main_page.htm
http://www.allsaplinks.com/user_exit.html
www.sap-img.com/abap/what-is-user-exits.htm
Also please check these threads for more details about user exits.
Re: Screen exit
user exit and customer exit
user exit
1. Document on UserExits in FI/CO
http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc
2. Finding User Exits...
http://sap.ionelburlacu.ro/abap/sap2/Other_Useful_Tips.html#Finding_User_Exits
3. List of all User Exits...
http://www.planetsap.com/userexit_main_page.htm
Real time Scenario
look in txn CMOD or SMOD, check enhancement 0VRF0001. It uses function module EXIT_SAPL0VRF_001. It is used to manipulate route determination for SD.
Here is the code
DATA: ls_xvbpa LIKE xvbpa,
lf_aland LIKE tvst-aland,
lf_azone LIKE tvst-azone,
lf_lland LIKE trolz-lland,
lf_lzone LIKE trolz-lzone,
ls_vbadr LIKE vbadr,
ls_xvbap LIKE xvbap,
ls_tvst LIKE tvst,
lv_route LIKE trolz-route.
LOOP AT xvbap INTO ls_xvbap.
IF NOT ls_xvbap-vstel IS INITIAL.
SELECT SINGLE * FROM tvst
INTO ls_tvst
WHERE vstel EQ ls_xvbap-vstel.
IF sy-subrc = 0.
lf_aland = ls_tvst-aland.
lf_azone = ls_tvst-azone.
ENDIF.
ENDIF.
READ TABLE xvbpa INTO ls_xvbpa WITH KEY vbeln = ls_xvbap-vbeln
posnr = ls_xvbap-posnr
parvw = 'Q1'.
IF sy-subrc = 0.
CALL FUNCTION 'SD_ADDRESS_GET'
EXPORTING
fif_address_number = ls_xvbpa-adrnr
IMPORTING
fes_address = ls_vbadr
EXCEPTIONS
address_not_found = 1
address_type_not_exists = 2
no_person_number = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
lf_lland = ls_vbadr-land1.
lf_lzone = ls_vbadr-lzone.
ENDIF.
ENDIF.
CALL FUNCTION 'SD_ROUTE_DETERMINATION'
EXPORTING
i_aland = lf_aland
i_azone = lf_azone
i_lland = lf_lland
i_lzone = lf_lzone
IMPORTING
e_route = lv_route
EXCEPTIONS
no_route_found = 1
departure_error = 2
destination_error = 3
invalid_generic_key = 4
customer_exit_error = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
ls_xvbap-route = lv_route.
MODIFY xvbap FROM ls_xvbap TRANSPORTING route.
ENDIF.
ENDLOOP.
Reagrsd,
Raj. -
Can anyone let me know the step by step procedure for creating userexits?
Hi all,
can anyone let me know the step by step procedure for creating user exits? for any transaction code like mm01 or vd01. If you have any docs send it across to my email id : [email protected]
thanxs in advance
hariHi,
*& Report ZEXITFINDER
*report zexitfinder.
*& Enter the transaction code that you want to search through in order
*& to find which Standard SAP User Exits exists.
*& Tables
tables : tstc, "SAP Transaction Codes
tadir, "Directory of Repository Objects
modsapt, "SAP Enhancements - Short Texts
modact, "Modifications
trdir, "System table TRDIR
tfdir, "Function Module
enlfdir, "Additional Attributes for Function Modules
tstct. "Transaction Code Texts
*& Variables
data : jtab like tadir occurs 0 with header line.
data : field1(30).
data : v_devclass like tadir-devclass.
*& Selection Screen Parameters
selection-screen begin of block a01 with frame title text-001.
selection-screen skip.
parameters : p_tcode like tstc-tcode obligatory.
selection-screen skip.
selection-screen end of block a01.
*& Start of main program
start-of-selection.
Validate Transaction Code
select single * from tstc
where tcode eq p_tcode.
Find Repository Objects for transaction code
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 = enlfdir-area.
move : tadir-devclass to v_devclass.
endif.
endif.
Find SAP Modifactions
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.
Take the user to SMOD for the Exit that was selected.
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.
look in txn CMOD or SMOD, check enhancement 0VRF0001. It uses function module EXIT_SAPL0VRF_001. It is used to manipulate route determination for SD.
Here is the code
DATA: ls_xvbpa LIKE xvbpa,
lf_aland LIKE tvst-aland,
lf_azone LIKE tvst-azone,
lf_lland LIKE trolz-lland,
lf_lzone LIKE trolz-lzone,
ls_vbadr LIKE vbadr,
ls_xvbap LIKE xvbap,
ls_tvst LIKE tvst,
lv_route LIKE trolz-route.
LOOP AT xvbap INTO ls_xvbap.
IF NOT ls_xvbap-vstel IS INITIAL.
SELECT SINGLE * FROM tvst
INTO ls_tvst
WHERE vstel EQ ls_xvbap-vstel.
IF sy-subrc = 0.
lf_aland = ls_tvst-aland.
lf_azone = ls_tvst-azone.
ENDIF.
ENDIF.
READ TABLE xvbpa INTO ls_xvbpa WITH KEY vbeln = ls_xvbap-vbeln
posnr = ls_xvbap-posnr
parvw = 'Q1'.
IF sy-subrc = 0.
CALL FUNCTION 'SD_ADDRESS_GET'
EXPORTING
fif_address_number = ls_xvbpa-adrnr
IMPORTING
fes_address = ls_vbadr
EXCEPTIONS
address_not_found = 1
address_type_not_exists = 2
no_person_number = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
lf_lland = ls_vbadr-land1.
lf_lzone = ls_vbadr-lzone.
ENDIF.
ENDIF.
CALL FUNCTION 'SD_ROUTE_DETERMINATION'
EXPORTING
i_aland = lf_aland
i_azone = lf_azone
i_lland = lf_lland
i_lzone = lf_lzone
IMPORTING
e_route = lv_route
EXCEPTIONS
no_route_found = 1
departure_error = 2
destination_error = 3
invalid_generic_key = 4
customer_exit_error = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
ls_xvbap-route = lv_route.
MODIFY xvbap FROM ls_xvbap TRANSPORTING route.
ENDIF.
ENDLOOP.
For information on Exits, check these links
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.sapgenie.com/abap/code/abap26.htm
http://www.sap-img.com/abap/what-is-user-exits.htm
http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
http://www.easymarketplace.de/userexit.php
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.sappoint.com/abap/userexit.pdfUser-Exit
http://www.planetsap.com/userexit_main_page.htm
User-Exits
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.sap-img.com/ab038.htm
http://www.planetsap.com/userexit_main_page.htm
http://www.sap-basis-abap.com/sapab013.htm
http://sap.ittoolbox.com/documents/popular-q-and-a/user-exits-for-the-transaction-code-migo-3283
<b>Reward points</b>
Regards
Maybe you are looking for
-
i have changed the apple ID (email) but on my iphone , the icloud is stil asking me to log in whit the old email.And it is poping-up on every 10 seconds.I never used icloud, and i dont want to use it.I just dont know how to disable the icloud.
-
Features I would very much like to see in Flash CS5
Just a preface: I'm coming at this from the perspective of a professional Flash character animator. I've worked on two TV shows and one big-budget online virtual world/game and I've been using Flash professionally since MX 2004. I've also written a
-
I purchased some items from ITune store since February 3rd 2013 since then it has not been downloaded on my system.. Why?
-
Dynamic table for infotype 2010 in HCM form
Hi, I have a project requirement for a form that has got me stuck for days now, so I was wondering if anyone could help. The form in question is a statement of allowances (recording overtime), which ideally will allow the user to enter in any overtim
-
What does a green screen with graph mean?
Hello, Just had a strange inciden happen to my computer. I was away from it for a about half an hour, left my scrivener writing program open. Returned to it, the screen saver was going, when I hit the up arrow button to get out of my screen saver, su