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,
Janet

Hi.
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

Similar Messages

  • 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

  • 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.

  • 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

  • VOFM-requirements, data transfer, formulas

    Hi experts,
    I am now learning how to create pricing procedure. The part that remains still unclear to me is the requirement part. I tried to find some documentation of it but failed. I want to a systematical understanding about how pricing procedure works with the requirement, which conventions the requirement (VOFM: also data transfer,formulas) has, and how can I create my own requirement, data transfer and formulas.
    Does anyone know any good documentation on subject?
    Thank you in advance.
    Best regards,
    Fan

    Hi  Prasad ,
    thank you very much for your reply.
    This is indeed what I need. However, this is only the VOFM part 1. Do you have the link to part 2, 3, 4? I think there will be four parts of this documentation. Each specifies one subject regarding VOFM:  copying requirements, data transfer,
    requirements, and formulas.
    Best regards,
    Fan
    Edited by: Fan Mou on Oct 23, 2009 5:19 PM

  • 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,
    Chitrasen

    First 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

  • 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.

  • VOFM on data transfer: shipments causing short dump

    I created two new requirements as copies of routine 008 and 012 into 908 and 912. Both routines are activated and I even ran the RV80HGEN.
    Although code is the same as the original routines, short dump is being produced. (The original code was unmodified to test that the new routine would work the same).
    I also noticed that if I use the 'where-used', the system comes back to say it is not found in selected search area, but otherwise would be.
    The include RV56CNNN has the two includes listed in it and is also active.
    What is missing?

    Hello,
    I removed this from being a thread and closed it, but it apparently is still showing somewhere.
    I was able to figure it out. The internal table in the SAP logic was i_, but when the custom requirement was created, it is c_ so that is why it wouldn't work. It did activate regardless but still had other issues. Once I updated the internal table reference, it was fine.
    Thanks to all who responded. Unfortuntaley points may not be awarded since it was removed early on from being a thread.

  • 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.

  • 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.0

    data: 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.

  • How to call routine and pass data to routine in vofm

    Hi Experts,
    I need to update KBETR and KWERT values present in 'Conditions Tab' in Purchase Order (ME21N/ME22N).
    I have created a new customer tab in which we enter amount field and  percentage filed. When user enters some value in this and clicks on 'Conditions Tab', calculation has to be done and the calculated value has to be appeared across a specific condition type.as i am new to abap  i dont know how to create routine and pass data to routine in vofm from customised tab in me21n .
                                                                                                                                                                          Thank's in advance

    Hello Rajendra,
    You can get plenty of forums in SCN related to it. Follow below steps to create VOFM routine.
    Go to VOFM Transaction Code
    1. On the Menu Select required Application i.e Pricing
    2. Enter any Number in between 600 to 999 for Custom Developments.
    3. On entering Pop Screen appears ask for Access Key(We have to remember that Every New Routine needs an Access Key)
    4. Once the Access Key is received we can do modification.
    5. Enter the Routine Number ,description and insert the Access Key
    6. Now the ABAP Editor will open and required code can be copied from Standard SAP Routine and Custom Code Can be developed.
    7. Once the coding is completed we have to Activate the Routine
    8. Select the Routine and Go to Edit – Activate
    9. Ensure that Active check box is ticked upon Activation of the Routine.
    10. Double click on the routine will enter into ABAP Editor, we have to generate the Routine
    11. Go to Program and select Generate
    12.A screen pops up with the related Main Programs  and select all required main programs wherever the Routine is being called.
    13. Once the Routine is Generated and Activated, We need to configure the Routine in the config.
    ** Important SAP note: 156230.
    Check the below document too.
    http://www.scribd.com/doc/35056841/How-to-create-Requirement-Routines
    Regards,
    Thanga

  • Data transfer VBRK/VBRP - copying requriement (VOFM)

    Hi I need help in defining data transfer for copy control between delivery to billing documents.
    Currently i want to change the parameters for which it is doing invoice split. It is considering few set of feilds like billing date, and foriegn trade data.
    I want to create new data transfer to by pass billing date and forieng trade data.
    Anyone who is experienced in this, please help.
    Regards,
    Neil

    Thanks, Tamas,
    This is a useful suggestion.
    With your suggestion, we can include the splitting criterias. But how to exclude them is where i am stuck at.
    I looked at control routine 007, it includes certain set of fields with help of VBRK-ZUKRI. How do i exclude certain fileds.
    Any suggestions are welcome from your end. Thanks for the help.
    Neil

  • 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 PM

    Can 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,
    Maddy

    Texts 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'

Maybe you are looking for