Data Transfer Routine
Hi,
We have a requirement i,e In third party sales scenario we want to make a invoice based on each Good's Receipt Document ( Material Document ) for this we are trying to write a routine but could not able to succeed as we are not able to restrict one GR in invoicing its clubbing all the GR's happened.
Ex: If there is one Sales Ord with one line item and coressponding one Purcase order based on SO & If there are two GR's happened against this PO. Then while invoicing it is clubbing the material in the two GR documents, Where as we want only only invoice for one GR. ( One unique invoice for one unique GR )
If anybody finds solution for this kindly help us. Point's rewarded.
Thank's
Chakri
Hi Kishore,
It is not possible to make an invoice in Sales using the Goods Receipt which happens in MM. If it happens in your project, I am sure it happens through some IDOCs or background jobs and when invoice is created, the data is taken either from order or from delivery, not at all from Goods receipt document.
If you want to create different invoices for different deliveries of a single sales order, you should go for delivery related billing and want one invoice per each delivery document, then you have to do a Copying requirement routine in VOFM and assign teh routine to copy control between delivery and billing in VTFL at item category level.
You may also have to work on the invoice split routine by copying the routine 007 and modify it to your reqmt.
Hope this helps.
Similar Messages
-
Regd Data Transfer routine Transport
Hello All,
I have created a Copy Control Data Transfer routine 60X in the Development System. This created a Include RV45C60X in the Include RV45CNNN. When I check the where used list for RV45C60X it shows Include RV45CNNN. When I transported it to Quality System this Include was created but it was not in the Include RV45CNNN and the system was giving a short dump when SO created with reference to Quote.
I executed the program RV80HGEN and than also generated the Program RV45CNNN in the Quality system. Than the Include RV45C60X was shown in Include RV45CNNN and the system works fine. The where used list for RV45C60X does not show RV45CNNN even though it is in the Include RV45CNNN. Is that ok or something more needs to be done.
Can you please clarify.
Thanks,
SNK.Hello friends,
Any suggestions for this. Or is this not an issue.
Thanks,
SNK. -
Copy data transfer routine.
13.01.2009
Hello Gurus,
How do we make a copy of data transfer routine ??? I dont find any copy option ??
Regards,There is sort of a trick you can use. In VOFM transaction, find the routine you wish to copy. Switch to Change mode (Ctrl-F1), then place the cursor in the field with the routine number and simply type the new routine number (e.g. 901) over the existing one. When you hit Enter, you'll be prompted to enter an access key to create a new routine.
Access key may be obtained on the SAP's website (if you have an authorization) or from your Basis admin, as mentioned above.
Copy/paste would also work, of course, after you have created a new, blank routine. -
Data transfer routine in copy control
Hi Need to spli deliveries based on danger and non-danger goods.
Could any one suggest me on this.
I know that we have t-code VOFM.
But i am unable to know how should i proceed in this.Hi,
It seems that you have good knowledge of data transfer routines.
I have a requirement to transfer LIKP-WADAT_IST into billing date in VF01 T-code to create invoice.I am passing this date into VBRK-FKDAT in data transfer routine.,but it is not not getting copied.Plet let me know the correct way of doing it.
My routine looks like this:
DATA: BEGIN OF ZUK,
MODUL(3) VALUE '001',
VTWEG LIKE VBAK-VTWEG,
SPART LIKE VBAK-SPART,
END OF ZUK.
break SHARMAM.
IF VBRK IS NOT INITIAL.
ZUK-SPART = VBAK-SPART.
ZUK-VTWEG = VBAK-VTWEG.
VBRK-ZUKRI = ZUK.
VBRK-FKDAT = LIKP-WADAT.
ENDIF.
Thanks in advance,
Meena -
What is the difference between copy requirement and data transfer routines
Hi Experts,
I am writing a copy control routine for maintainence quote
from sales quote.Where do i have to write it in VOFM?
Is it in copying requirements or data transfer.
Actually according to the business all the line items from the sales quote are copied
into the maintainence quote and additional line items are added into maintainence quote
and the line items copied from the source document are linked to the two newly added
line items.
Please advise.
And is it possible to add the 2 new line items to the new document into VBAP at the runtime?
Regards,
ChitrasenFirst of all you have to have a link between the sales documents. You can check it in Tcode: VTAA. if not, talk to your functional people. Try to make this equal to quote to order but instead make it quote to quote.
You need to put break point in copy requirement as well as in data transfers and check for your requirement.
Well, the code you want to put in will be the requirement
I am not sure if you can add 2 line items runtime into quote. this has to go through different checks and i dont think it is possible.
Good luck -
VOFM - Shipment Data Transfer Routine
Hi Guru,
I have a requirement to create a routine in VOFM - Data Transfer - Shipment to copy the INCO1 to VTTS-INCO1 (item level). I have the checked the standard routine and it is all changing the header. Can anyone tell me the coding to use? Many many thanks.
Regards,
JanetHi.
The standard routine is as follows:
FORM DATEN_KOPIEREN_900
USING c_XVTTP TYPE v56i1_vttp_tab
c_XVTTS TYPE v56i1_vtts_tab
c_XVTSP TYPE v56i1_vtsp_tab
c_XTRLK type v56i1_vtrlk_tab
c_XTRLP type v56i1_vTRLP_tab
I_XVTTK STRUCTURE VTTKVB
VALUE(I_TVTK) LIKE TVTK
g_imp_data type v56I1_IMP_DATA
CHANGING C_XVTTK_tmp structure VTTKVB
g_exp_data type v56I1_exp_DATA.
VTTKVB is the header structure. Doesn't seems to have a item structure.
Regards,
Janet -
Field symbols not working in data transfer VOFM routine
Hi,
I have been trying to set a value using field symbols, however for some reasons its not working. I am using a field symbol in a data transfer routine and the value which I am trying to set is a standard field outside the VOFM routine code.
I am trying to set a field gla_subrc which is actually a changing parameter.
The actual paramter is gn_subrc of type sy-subrc and within the form the name is gla_subrc. I need to set this changing parameter gla_subrc using the data transfer routine.
Is there a specific rule that field symbols dont work for changing paramters within subroutine or is there a specific syntax.
The syntax I am using is
ASSIGN ('(SAPLV50S)gla_subrc') to <fs>.
I also used the local program name instead of main program but still that does not work. Tried using the actual parameter as well.
Can someone please help me in this.
Thanks & Regards,
Naresh.I need to stop outbound delivery creation against STO using vl10b transaction. The only way to stop creation is using data transfer delivery VOFM routine.
If i give an error message MESSAGE E001, this will give a hard error which is not acceptable. To avoid this, i use a perform message statment with message id and certain parameters which can displayed in a log.
However to make sure this message is displayed in log, I am clearing a work area having specific data needed for delivery creation.
Because of this clear, my error message gets captured in log but along with this another fake message is displayed in log which caused by the clear message.
The user gets confused as he now sees 2 messages, 1 which is correct and other 1 which is fake and that confuses him.
Data transfer routine is not the best place to give messages in log but we have very few options. The only way the system can give 1 message is if i set gla_subrc to 1. This is a variable which will help the system understand that the delivery should not be created as there is something wrong because the value is 1. Hence it will stop the creation and instead display whatever message i had passed to the log.
I need to somehow set this variable to 1 based on lot of analysis that has been done in the past.
Please let me know if there is any way by which we can fix this.
Thanks & Regards,
Naresh. -
VOFM Orders Data Transfer (307)
Hi all,
During a copy, we would like the line items pricing conditions to copy through, specifically the condition amounts. We've created a copy of routine 307 but in the comments it says that "The pricing data was not copied, it is redetermined."
How can we get the pricing to copy for each line item?
Thanks in advance! Helpful answers will be awarded points.Hi,
Are you trying to copy the orders data transfer routine..FV45C307..
If so..Comment the LOCAL statements..so that the data is copied..
Thanks,
Naren
Message was edited by: Narendran Muthukumaran -
Is there any documentation for filter routine in Data Transfer Process?
I am trying to create a filter routine in the Data Transfer Process to select different billing types depending on what date the Data Transfer Process is running....
I have searched through SDN and found some examples, but some formal documentation would help.
Is there any documention on filtering in a Data Transfer Process using a routine?
I am in 7.0data: l_dow TYPE I,
L_S_RANGE TYPE rssdlrange.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'F2'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'G2'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'L2'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZCDD'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZCDI'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZCR1'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZCR2'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZDR1'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZEDI'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZMD'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZRE'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZRE1'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZRED'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZSMP'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZUSD'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'ZUSI'.
APPEND L_S_RANGE TO l_t_range.
CALL FUNCTION 'DATE_COMPUTE_DAY'
EXPORTING
date = sy-datum
IMPORTING
day = L_DOW.
IF l_Dow EQ 5.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'S1'.
APPEND L_S_RANGE TO l_t_range.
l_s_range-iobjnm = '0BILL_TYPE'.
l_S_range-fieldname = 'BILL_TYPE'.
l_S_range-sign = 'I'.
l_S_range-option = 'EQ'.
l_S_range-low = 'S2'.
APPEND L_S_RANGE TO l_t_range.
ENDIF. -
Data transfer process: use values of filter in routine
Hi,
I create a filter in the data transfer process (RSA1). There are two infoobjects (ZABC, ZXYZ) in the filter.
I fill the first select-option (parameter) with the value u2018AAAAu2019. At the second line I create the filter routine:
form compute_/BIC/ZXYZ
tables l_t_range structure rssdlrange
changing p_subrc like sy-subrc.
In this routine I want to use the value u2018AAAAu2019 of ZABC:
SELECT SINGLE *
INTO lw_test
FROM /BIC/MZXYZ
WHERE
/BIC/ZBCA = (Select-option value from ZABC = u2018AAAAu2019)
Then I want to make a new entry in l_t_range from lw_test.
I thought that the Select-option will be in the table l_t_range. But there is only a record when it was also set by an ABAP-Routine but not the manual entries in RSA1.
How can I use the select-option from the filter?
Thanks in advance
Tobias Mattes
Edited by: Tobias Mattes on Jan 30, 2009 1:33 PM
Edited by: Tobias Mattes on Jan 30, 2009 1:34 PMCan you try to combine them into one routine? In other words, fill the range for both in the same routine - that way, you'll have all the values available to you.
For example:
l_t_range-iobjnm = 'ZABC'.
l_t_range-fieldname = 'ZABC'.
l_t_range-sign = 'I'.
l_t_range-option = 'BT'.
l_t_range-low = '2006001'.
l_t_range-high = '2006012'.
l_t_range-iobjnm = 'ZXYZ'.
l_t_range-fieldname = 'ZXYZ'.
l_t_range-sign = 'I'.
l_t_range-option = 'BT'.
l_t_range-low = '0101010'.
l_t_range-high = '0101099'. -
Transfer Routine for Master Data
I want to write a transfer routine to load the text.
I want to load Short text as some word 'EXACT' in the T-table, if the value of that attribute is blank. While loading the master data.
Eg: In 0Equipment there is some attribute say ZEQUI .
I want a routine where: If ZEQUI is blank then load the Short text as 'EXACT'
Please its urgent, can anybody tell me how to do this & some sample code....
Thanks
Regards,
MaddyTexts are language specific so you will need to decide on what languages you want 'EXACT' to appear.
Once you have that done, you can create a flexible update and write a transfer or update rule to read the attributes before populating the text table.
some pseudo code would be:
1) Select equipment and attributes into internal table
2) Read internal table for specific record
3) determine if the attribute field is blank
4) If blank, return 'EXACT' -
How to get data in a cube in transfer routine
i have to get some data from another cube to compute some numbers in a transfer routine
is there some function modules to do this?
thank you for your helpHi Zelphar,
You can use this function : RSDRI_INFOPROV_READ
In ur routine ..
And there is sample of code regarding that, you can open :
1. t-code se38
2. Open this program: RSDRI_INFOPROV_READ_DEMO
Hopefully it can help you a lot .
Best regards,
Niel. -
Hi,
i had infoobject ZEBAY01 and need to write global transfer routine for this infoobject. Now the infoobject value is comming 0000999999 but the business wants the output value as 009999. They want to see output value as 6digit like (009999).can someone help me how to write code here
ROGRAM CONVERSION_ROUTINE.
Type pools used by conversion program
TYPE-POOLS: RSD, RSARC, RSARR.
TYPES: DE_ZEBAY01(000015) TYPE C.
Conversion rule for InfoObject ZEBAY01
Data type = CHAR
ABAP type = C
ABAP length = 000015
FORM CONVERT_ZEBAY01
USING RECORD_NO LIKE SY-TABIX
SOURCE_SYSTEM TYPE RSA_LOGSYS
IOBJ_NAME TYPE RSIOBJNM
CHANGING RESULT TYPE DE_ZEBAY01 " InfoObject value
RETURNCODE LIKE SY-SUBRC.
$$ begin of routine - insert your code only below this lineHi Laxmi
Use the below code.
RESULT = RESULT+2(8).
RESULT = RESULT(6).
RETURNCODE = 0.
First Result will take from 8 characters starting from first position. So you get rid of first two leading zeroes.
Then take first 6 character from the result of above operation from the first character. You get rid off last 2 digits.
Regards
Anindya -
Data transfer schedule run error-object variable/with block variable no set
I want to automate a Data Transfer Workbench routine.
I created the appropriate xml file but when I run the .bat file I get the following error: "Object variable or with variable not set."
I think that the problem resides in the xml file but there is no documentation for the xml syntax so it's impossible to correct it.
thanks in advanceSolved.
The problem was in the .bat syntax.
At the -s option the filename doesnt need quotation marks. -
Which is better transfer routine or update routine???
HI ALL,
I have read some documents, but I didnt get the real concept.
Can any one explain in detail as to how do we decide where to write the code i.e a start routine or transfer routine or update routine...and which one is better for a given scenario..
with example?My scenario is like this:
master data InfoObject for e.g. Z_MATERIAL1 with 10 fields as attributes. It has two Source Systems feeding it; SAP and a flat file from a system called Product Catalog (PCAT).
The PCAT data is generally more reliable, hence, if a material XYZ comes from PCAT then PCAT is the owner of the material. SAP should not be able to update five critical fields of that material if PCAT owns the material.
For e.g. the below values comes from PCAT and Master data is updated.
PCAT
Material Group Type Price Curr Unit Prod Desc. Lang Class
XYZ ABC BRU 10.00 USD PC Inh To EN 001
When the data comes from SAP R/3, it should not update anything other than the last 4 fields.
SAP
Material Group Type Price Curr Unit Prod Desc. Lang Class
XYZ ABC BRU 20.00 USD BOX In The DE 003
Finally the data in the Master Data Object should be as below.
Material Group Type Price Curr Unit Prod Desc. Lang Class
XYZ ABC BRU 10.00 USD PC In The DE 003
where do i write the code...i have written this in start routine of transfer rules...i want to know the performance issues...
Maybe you are looking for
-
Does anyone know if the SATA drivers offered for download will work (properly) with the 64 bit versions of XP and Win 2k3 server? I want to go ahead and at least put the 64 bit XP (Extended Systems) on there, but I don't want to waste my time if it w
-
I am trying to find a manual in Spanish for a g4 imac
I am trying to fin a manual in Spanish for a g4 imac. The apple websites list manuals for newer models but not for a g4 (bought in 2002)
-
IC Eliminations and Org by Period
My metadata includes a company Co.A which in common with Co.B is a child of Co.X in 2006. In 2007 Co.A is inactive under Co.X but active in a new branch under a parent Co.Y. When I consolidate in 2007 I find an intercompany elimination entry in Co.B.
-
Getting info about a particular property of an object....
Hi , How to get info/help about a particular property of an object...???? I mean that if all the properties of an object displayed in the property palette(for example an iterator) how to get info about and only about RefreshCondition property , witho
-
Captivate Crashes when Changing Existing Projects
Hi I've created 9 Captivate Projects using Captivate 4. I'm now going back to change some of them. With 4 of them, every time I duplicate a slide or add new recorded slides, Captivate crashes. I don't have time to recreate them from scratch. The f