Preventing manual entry in delivery document.

Hi ,
Is there any solution regarding how the manual entry can be stopped in delivery document?
Thanks & regards,
Rupam.

Hi Rupam,
If you solved the problem, close your thread.
Thanks,
Gordon

Similar Messages

  • Prevent manual entry  in user defined value

    Is it possible to prevent manual entry  in user defined value (Formatted search)?
    Thanks

    Hi
    I don't think there is any out of the box solution .
    It is possible if formatted search automatically populates your data but I think in your case ,user is selecting the list of special codes you have provided .
    May be it can be done by SDK . Try posting in SDK forum .
    Hope this helps
    Bishal

  • Prevent creation of a delivery document

    Hi,
    We are making a delivery through project( Trx CNS0)
    A reservation is created for a material in project 1 and project 2  for plant stock and a storage location is specified.
    The material in question is available for 100 pc  in the storage location.
    When we create delivery for project 1 ( 100 pc) , system allows the creation of delivery document.
    It also allows the creation of delivery for project 2 ( 100 pc) , eventhough the total stock is only 100 pc.
    However , after PGI has been done for project 1 , system issues an error message " deficit stock" for project 2 at PGI.
    We have maintained 01-daily requirements in MRP3 view.
    We want to prevent creating a delivery document when there is no sufficient stock and do not want to wait until PGI is done.
    Please suggest how can we achieve this .
    Thanks,
    Manohar

    Thanks for your reply.
    We are making delivery through project ( using Trx CNS0).
    The sales order is for , say, supply of 1 no of building.
    The parts are delivered to site , in knocked down condition or in various assemblies. For this , we  use Trx CNS0 and pick the project stock / plant stock items and then create outbound delivery documents.
    To answer your questions :
    1) Is the requirements check box ticked in your schedule line category (VOV6) -. Not ticked for Category LP.
    2) In availability check control whether include sales requirements check box is ticked (OVZ9).
    There are many entries under 01-daily requirements. How does the system pick for deliveries through project ? is not clear to me. We have not created any new checking rules.
    3) In delivery item category availability check off is not X (0VLP). Relevant for picking is flagged.
    Expecting further replies,
    Thanks,
    Manohar

  • How to Block Manual Entries in STO Outbound VL02N

    Hi Fyi's,
    I Have a Requirement i have to block putting manual entries in Outbound Delivery Document. It should allow PGI for line items with reference STO Order only.
    Here in outbound delivery with reference to STO we are doing PGI, But in some cases endusers trying to add 1 or more line items directly in outbound delivery without document reference. for this system should not allow manual entries in outbound delivery.
    Guys can you please give me step by step solution so that it would so helpfull to me.
    Saravanan.S
    Edited by: S.Saravanan on Nov 27, 2009 5:39 AM

    Go to 0VLK, select your delivery type and click on "details". you will find a field for "item requirement". for LF, the standard entry is 202... change this to 101. what this does is to prevent manual entries without reference to a sales order."
    thanks
    G. Lakshmipathi

  • Automatic Payment terms without referrring Customer Master nor manual entry

    Hi,
    I have a credit memo with reference to one billing document. It is automatically coming with payment terms which is not maintained in customer master nor manual entry in the document. I had checked all the configuration related settings for the document and payment terms assignment. I had debugged and checked for any user exit or function module.
    I have no clue in this regard and can anybody throw some light regarding to fix the problem.
    Regards
    Sashikanth

    Hi,
    Check if the billing document has payment terms. If yes, even if customer master doesnt contain payment terms the payment terms will be copied to the credit memo through standard copying control maintained in IMG, when you create a document with reference to some document this copying control gets activated.
    Also check user exit RV60AFZZ if there's any code written in it to default payment terms by billing doc type.
    Regards,
    Amit

  • Delivery document archieved

    For a stock transfer invoice, dellivery document cancelled without cancelling the excise invoice. Is there any solution to prevent from cancelling the delivery document without cancelling the excise invoice

    Hi,
    I think you can still cancel the excise document.
    However, if you need a check here, you need to put the same through a user exit at Delivery change/delete level. Take help of an ABAPer for the same. 
    Regards,
    Peeyoosh.

  • Cost center on delivery document

    Hi,
    I have created a sample order , which has cost center assignment on the header level. This cost center will be copied to the delivery document line item on financial processing tab.
    Few of sample orders were created without cost center assignment. Now the deliveries are not getting PGI'ed because of missing cost center. How will i change/add cost center manually on the delivery document line item, the field is grayed out.
    If i cannot change it here, whats the solution for this problem.
    Greatly appreciate your help.

    Can you pls tell me how you assigned the cost center we have a practice of profitable analysis  , i want t have cost center based selling / delivery ( stock reduction value should go to this gl )

  • Create delivery  document for line item 5 only manually

    Hi Sap Experts,
    We have scenario, we have created sales order with 10 line items while creating delivery we don’t want to show all the 10 line item to delivery creator (creating delivery manually).
    We will send him mail saying that create delivery  document for line item 5 and we will provide him material number and delivery date and shipping point with sales order number.
    We don’t want to use partial delivery option that split the delivery and we don’t want to use VL10C tcode also.
    What are options we have and how to customize this scenario?
    Kindly suggest.
    Regards,
    Kotli

    Can you be clear in your requirement?
    One requirement is user should not select line items other than the one instructed to them
    The other requirement is delivery split should happen based on item category
    If your requirement is first one, you need to go with user exit USEREXIT_MOVE_FIELD_TO_LIPS in include MV50AFZ1 but I am not sure, on what logic, coding to be included in this exit.  If your requirement is second one, then just try in your system and share the outcome how system is functioning.  You will come to know how standard SAP works.
    G. Lakshmipathi

  • MIGO_GR fill delivery note field from manual entry in bill of lading

    I have to fill header field delivery note from manual entry in bill of lading in tcode MIGO_GR for mopvement type 101.
    I searched for the exits and BADI's but header fields are not in changing parameters.
    Has anybody worked on automatically filling the delivery note field in MIGO_GR transaction from bill of lading field or a value from database?

    Hi You can use MB_MIGO_BADI Badi.
    Thanks,
    Anmol.

  • Error facing in delivery document entry

    Hi,
    I am facing one problem in entering of delivery document in sale module so please give me solution.
    Problem:  Dump problem please contact to SAP service support person; Problem distribute location...
    SAP/SAP business one/SAP Business One_20100813114543.dmp
    Please give me the solutions ASAP
    Thanks,
    Surendra.

    Dear GordonDu
    Apologize for yesterday's my reply.... (some problem in internet side that's reason i was not posted proper message to you)
    Issue: I was facing this problem in all clients and all users. Please give the salutation as soon as possible.
    And one thing, How to send any attachments to you for this issue (like dmp file or some screen shots for the problem)?
    Thanks,
    Surendra

  • How to control the status of EDI message in delivery document

    Hello:
      We use user exit:EXIT_SAPLV56K_001  in function:IDOC_OUTPUT_Delivery to block the IDOC generation if delivery is blocked in GTS system.The IDOC generation can be blocked successfully by this user exit but the EDI message type will still have the status of "successfully processed" in the delivery doucment after IDOC generation is prevented.So user have to manually repeat the EDI Message type so that this EDI message type can be retriggerred by the background job of RSNAST00.
      I am wondering if the EDI message in the delivery document can have the status of "not processed" even after IDOC generation is prevented.
    BR
    Thanks

    Did you raise any exception like ERROR_MESSAGE_RECEIVED from the exit when the delivery is blocked?
    The most important is the RSNASTED should get some exception to set RC = 4 (Non-zero). Only in that case, the EDI message type will go to error (i.e. VSTAT = 2)  otherwise, by-default the RC = 0 unless we lead it to set to non-zero. Unless u make VSTAT = 2, you can't process it thru' RSNAST00 or better RSNAST0F for reprocessing the messages that go to error.

  • How to update packing list inform to an outbound delivery document

    Hi all Experts,
    I meet with an tough requirements, Is there any solution fuction can use to generate packing to a outbound delivery document?
    PLease kindly advice, thanks!
    Regards,
    wei-guo

    Hi,
    I did a little test and, within the method CHANGE_DELIVERY_ITEM, itu2019s possible to fill the picking quantity (structure CS_LIPSD) but unfortunately during the save the added information is lost.
    This is because the BAdI method is fired too soon and the routine PICKMENGE_BEARBEITEN (SAPFV50P) is not called at all.
    The problem is quite complex; even after changing the picking quantities, the picking status still remains open!
    The picked quantity is generally filled:
    u2022     by printing the picking list
    u2022     Warehouse Management by creating a transfer order
    u2022     or by manual entry
    Otherwise, it is assumed that picking has not yet been initiated and the result is that picked quantity is ignored.
    In my opinion itu2019s very difficult to solve your problem using only the BAdI implementation.
    I suggest you to propose an alternative solution such as the automatic processing of Picking Output EK00; easy to activate and absolutely standard!!!!!!
    Regards,
    Andrea

  • Picked quantity in delivery docuement

    Hi, experts,
    I have created the sales order and try to create the delivery. However, in the delivery document and in its picking tab the column "picked quantity" allows no changes(default 0) with color blue instead of white.
    Only when I save it and the delivery document nr is generated and I get into the this delivery document again using VL02N, I am allowed to change the picked quantity and post goods issue.
    Is this normal?
    Best regards,
    Fan

    Hi
    in-img-enterprise structure -assignment-under logistics execution there is a setting maintained for warehouse/plant and storage location combination and remove your entry remove the warehouse maintained for your  plant and storage location combination there and try
    If warehouse is assigned to to your plant and storage location combination then manual picking is not possible
    In this case you need to do picking thro a additional process called Transfer order in t code LT03
    (this is a big subject by itself)
    Not to allow manual picking system has greyed out the picked qty in the picking  tab in delivery If warehouse is assigned
    Regards
    Raja
    Edited by: ramanathan raja on Aug 27, 2009 5:57 PM
    Edited by: ramanathan raja on Aug 27, 2009 6:01 PM

  • Output types for delivery documents

    Hi All,
    Please help me out.
    Thanks in advance,
    Here i got a requirement like i already have the output types for the delivery documents.However i need to copy the existed output types into different names bcoz to customize it for different organization in different region.
    The problem is i already copied the o/p types but when i went to vl03n and tris to see the output , am not able to find my o/p type there...am i need to do anything more..
    Please help me out as i am a ABAPER and not the functional guy am facing lot of  difficulty...
    again thanks in advance.

    dear govardhan
    please refer below
    Output Determination Procedure
    Output is a form of media from business to one of its business partners. The output can be sent to any of the partners defined in the document. Outputs are usually in the form of Order Confirmations, Freight List, Delivery Notes, Invoices & Shipping Notifications. Determining form of output is output determination
    Types of Output: Print Output, Fax, Telex, E-Mail & EDI (Electronic Data Interchange)
    PRINT OUTPUT:
    SPRO- IMG- Basic Functions- Output Control- Output Determination- Output Det using Cond Tech- Output Det for Sales Documents & output determination for billing documents.
    Create Condition Table: select the field Sales Doc Type from field catalog & Save
    Maintain Access Sequence: 4-digits code & description. Assign condition table to access sequence. Select Accesses line item and Goto Fields. Fields will display the fields we have selected in the condition table i.e. sales doc type.
    Select BA00 & Copy & Rename. Give the same 4-digit code as given to acc seq.
    You Can Maintain:
    Languages of Output
    Partners (to whom we want to send output)
    Print Program- print specification
    Sap Script- layout
    Assign Output Types to Partner Functions: go to new entries & assign your output type to partner functions.
    Maintain Output Determination Procedure: V10000 (Standard Procedure). Go to new entries & create your own 6-digit code with descp. Select the procedure & go to Control Data. Here mention the output type i.e. cond type & leave requirement and manual only columns as blank.
    Determination Rule: link the 6-digit procedure code to doc types.
    Create Condition Records: VV11. Select document type and click on Communication. Mention partner function, medium, time. Output device: LP01, Spool request Name: SD_003, Suffix 2: order_confir & flag on print immediately.
    Once you press enter you will come across 2 key combinations:
    Sales organization/ Customer Number: fill SO, Customer No, Partner Function Abbreviation, Partner to whom the output should be sent, time, medium, language. {It contains: Sales Orgn, Customer, Partner Function (The abbreviated form of the name that identifies the Partner) (During output determination, the system determines the recipient of the output from the master record for the specified partner function. In this field, you can explicitly specify a recipient that will override the standard partner. There must also be a master record for the partner that is specified explicitly.), Medium, Time & Language.}
    Order Type: Document Type, Partner Function (abbreviation), Partner, Medium, Time & Language.
    In SAP we can send the documents to respective partner functions through different transmission mediums. SAP uses condition technique to determine output t relevant partners with relevant transmission mediums.
    Out put determination procedure has a integration with technical module, as ABAPer’s  has to write SMART forms and FORMS to print the output , that SMART form output can be send to relevant partner function through relevant transmission mediums.
    Out put determination procedure for order confirmation: (V/57)
    a) Maintain condition table:
    Path:
    IMG
    SD
    Basic functions
    Output control
    Output determination
    Output determination using the condition technique
    Maintain out put determination from for sales document
    Maintain condition tables
    Maintain out put condition table for sales document
    Here we define condition table
    Ex: 007 – order type (sales order types)
    Save it
    b) Maintain output types:
    IMG
    SD
    Basic functions
    Output control
    Output determination
    Output determination using the condition technique
    Maintain out put determination from for sales document
    Maintain out put types
    Here we define out put types
    Ex:     AF00 -- Inquiry
         AN00 – quotation
         BA00 – Order confirmation
         BA01 – EDI odd response
         KRML—Credit processing
         LP00 -- Scheduling agreement
         MAIL – Internal message
         RD03—cash sales invoice
    Choose BA00 copy it and rename as a ‘MA00’
    click on details icon
    click on display to change icon
    then again choose ‘MA00’ click on details icon
    Maintain data in general data tab
    General data tab:
    Access sequence: 0010(order type)
    In IMG define access sequence and assign to the output type
    Check access to conditions:
         This indicator allows the system to read the condition records for output. If it is not been activated then system determines out put from customer master ex: By following out put determination procedure “DB0001”
    Check cannot be changed:
         This control specifies whether the out put can be changed or not
    Ex: direct mailings can be changed during processing
    Check multiple issuing:
    This indicator allows the system to send the output multiply
    Ex: sales order has been sent for 10 items again one item has been added to sales order so that business has to issue the new out put for sold to party with added line items. This indicator allows the system to send out put repeatedly.
    Check partner independent out put:
    During output processing when the indicator has not set then system allows only specific functions in specific partner functions
    Don’t write processing:
    This indicator determines whether system has to write processing log for output
    Default values tab:
    Dispatch time:
    Ex: send immediately: when carry the application this indicator determines when the output should be sent.
    Transmission medium:
    Ex:     print out
         Fax
         Telex
         Internal send
         EDI
         Simple mail
         Special function
         Events (SAP business workflow)
         Distribution (ALE)
         Tasks (SAP business work flow)
    Specify the transmission medium through which the output should be sent. (Ex: print output)
    Communication strategy
    Specify the communication strategy if you want to send the output externally
    A) Time tab:
    Check timing: (Periodic job not allowed)
    This indicator allows the system to carry out print program periodically.
    B) PRINT NEXT TAB):
    Print parameter: Ex sales org.
         Specify the print parameter.
    Click on mail title & Text control button under dialog structure.
    Here we assign title for the mail along with relevant text Ex:-EN (English)
    Processing routines control button under dialog structure.
    Here we assign programs form routines & form that are written by ABAPER, they           they various transmission mediums.
    Ex; - Transmission medium      shortest      program     form routine
              1                  print out     RVADOR       entry
    Click on position function control button here we assign relevant partner function to relevant transmission mediums
              EX: print out: SP (Sold to party)
    C) Maintain access sequences:
         Here we define Access sequence.
    EX: 0010 & Assign the condition tables to this output.
    D) Assign out put types to partner function:
         Here we assign output types along with transmission mediums to relevant partner functions.
    EX:      Out put type          Transmission medium
           MA00                    1
              “                    2
              “                    6
              “                    A
           MAIL                    7
    E) Maintain output determination procedure:
         Here we define output determination procedure
    Ex:     V10000     -     Order output
         V05000     -     Inquiry output
         V06000     -     quotation output
         V10001     -     Cash sales output
    Choose output determination procedure EX; V10000, copy it& rename it as MA0000
    Assign output type MA00 by going control date section.
    Save it.
    F) Assign output determination procedures;
    Allocate sales document Header.
    _ Choose sales document type OR & Assign output determination procedure i.e MA0000 & Assign output type MA00.
    Assign sales document items.
    -Choose item category TAN & Assign output determination procedure Ex: Ma0000
    - save it & exit.
    Maintain output records (vv11)
    Path:
    Logistic > S&D > Master data > output > sales document > VV11 – Create
    Specify output MA00, Click on Key combination & specify sales document type (OR), partner function (sp) transmission medium (1) dispatch type (4) language (EN)
    Click on communication button on application tool bar
    Specify output device – LOCL or LP01
    Check print immediately check release after output
    Save it
    Go to Va01 raise the sales order
    Go to extra button output header edit.
    Specify output type: MA00 partner function
    Select line, click on communication methods
    Specify logical destination
    Check print immediately
    Check release after output
    go back save it & exit
    Go to VA02, Go to Extras output header print preview
    Check out (order confirmation
    (ERROR: out put MA00 for partner cannot be processed)
    rewards pls
    siva

  • How 2 creat report for displaying the details of a Delivery Document using

    how to create report for displaying the details of a Delivery Document using the tables LIKP, LIPS
    thank you
    regards,
    jagrut bharatkumar shukla
    points will be rewarded

    HI
    I AM GIVING YOU MY DELIVERY DOCUMENT CODE...MODIFY IT ACCORDING TO YOUR REQUIREMENT
    *& Report  ZDELIVERY                                *
    report  zdelivery  message-id z9bhu          .
    types: begin of t_likp,
               vbeln type likp-vbeln,      "Delivery
               erdat type likp-erdat,      "Date for rec creation
    *           LFDAT TYPE LIKP-LFDAT,      "Delevery Date
    *           WAERK TYPE LIKP-WAERK,      "Currency
               kunnr type likp-kunnr,      "Ship-To Party
               kunag type likp-kunag,      "Sold-to party
               traty type likp-traty,      "Means-of-Transport
           end of t_likp.
    types: begin of t_lips,
               vbeln type lips-vbeln,      "Delivery
               posnr type lips-posnr,      "Delivery item
               matnr type lips-matnr,      "Material Number
               arktx type lips-arktx,      "Short Text for Sales Order Item
               lfimg type lips-lfimg,      "Actual quantity delivered
               netpr type lips-netpr,
    *           MEINS TYPE LIPS-MEINS,      "Base Unit of Measure
               vgbel type lips-vgbel,      "Doc no of the reference document
            end of t_lips.
    types: begin of t_vbpa,
               vbeln type vbpa-vbeln,      "SD DocumenT Number
               posnr type vbpa-posnr,      "Item number
               parvw type vbpa-parvw,      "Partner function
               kunnrb type vbpa-kunnr,      "Customer Number 1
           end of t_vbpa.
    types: begin of t_kna1,
               kunnr type kna1-kunnr,      "Customer Number 1
               name1 type kna1-name1,      "Name 1
               ort01 type kna1-ort01,      "City
               adrnr type kna1-adrnr,      "Address
           end of t_kna1.
    types: begin of t_li_vbpa,
               vbeln type likp-vbeln,      "Delivery
               erdat type likp-erdat,      "Date for rec creation
    *           LFDAT TYPE LIKP-LFDAT,      "Delevery Date
    *           WAERK TYPE LIKP-WAERK,      "Currency
               kunnr type likp-kunnr,      "Ship-To Party
               kunag type likp-kunag,      "Sold-to party
               traty type likp-traty,      "Means-of-Transport
               vbeln1 type lips-vbeln,      "Delivery
               posnr type lips-posnr,      "Delivery item
               matnr type lips-matnr,      "Material Number
               arktx type lips-arktx,      "Short Text for Sales Order Item
               lfimg type lips-lfimg,      "Actual quantity delivered
               netpr type lips-netpr,      "Net Price
    *           MEINS TYPE LIPS-MEINS,      "Base Unit of Measure
               vgbel type lips-vgbel,      "Doc no of the reference document
               vbeln3 type vbpa-vbeln,     "SD DocumenT Number
               parvw type vbpa-parvw,      "Partner function
               kunnrb type vbpa-kunnr,      "Customer Number 1
           end of t_li_vbpa.
    types: begin of t_final,
               vbeln type likp-vbeln,      "Delivery
               erdat type likp-erdat,      "Date for rec creation
               kunnr type likp-kunnr,      "Ship-To Party
               kunag type likp-kunag,      "Sold-to party
               traty type likp-traty,      "Means-of-Transport
               vbeln1 type lips-vbeln,      "Delivery
               posnr type lips-posnr,      "Delivery item
               matnr type lips-matnr,      "Material Number
               arktx type lips-arktx,      "Short Text for Sales Order Item
               lfimg type lips-lfimg,      "Actual quantity delivered
               netpr type lips-netpr,      "Net Price
               vgbel type lips-vgbel,      "Doc no of the reference document
               vbeln3 type vbpa-vbeln,     "SD DocumenT Number
               parvw type vbpa-parvw,      "Partner function
               kunnrb type vbpa-kunnr,     "Customer Number 1
               name1 type kna1-name1,      "Name 1
               ort01 type kna1-ort01,      "City
               adrnr1 type kna1-adrnr,     "Address
               name2 type kna1-name1,      "Name 1
               ort02 type kna1-ort01,      "City
               adrnr2 type kna1-adrnr,     "Address
               name3 type kna1-name1,      "Name 1
               ort03 type kna1-ort01,      "City
               adrnr3 type kna1-adrnr,     "Address
           end of t_final.
    *            D A T A  D E C L A R A T I O N
    *&*********Internal Table Declaration****************&*
    data: it_likp type standard table of t_likp.
    data: it_lips type standard table of t_lips.
    data: it_vbpa type standard table of t_vbpa.
    data: it_kna1 type standard table of t_kna1.
    data: it_li_vbpa type standard table of t_li_vbpa.
    data: it_li_vbpa_temp type standard table of t_li_vbpa.
    data: it_final type standard table of t_final.
    *&*********Work Area Declaration********************&*
    data: wa_likp type t_likp.
    data: wa_lips type t_lips.
    data: wa_vbpa type t_vbpa.
    data: wa_kna1 type t_kna1.
    data: wa_li_vbpa type t_li_vbpa.
    data: wa_li_vbpa_temp type t_li_vbpa.
    data: wa_final type t_final.
    *&*********Data Declaration************************&*
    data: d_vbeln type likp-vbeln.
    data: flag type i value 0.
    *           S E L E C T I O N  S C R E E N   D E C L A R A T I O N
    selection-screen begin of block block2 with frame title text-001.
    select-options: s_vbeln for d_vbeln obligatory.    "Delivery no
    selection-screen end of block block2.
    *            A T  S E L E C T I O N - S C R E E N   E V E N T S
    *AT SELECTION-SCREEN.
    *PERFORM VALIDATE_DATA.
    *            S T A R T   O F  S E L E C T I O N     E V E N T S
    start-of-selection.
    perform fetch_data.
    perform merge_data_kna1.
    *INCLUDE Z9BT_SH_***4_FORMS.
    call function 'OPEN_FORM'
    exporting
    *   APPLICATION                       = 'TX'
    *   ARCHIVE_INDEX                     =
    *   ARCHIVE_PARAMS                    =
        device                            = 'PRINTER'
    *   DIALOG                            = 'X'
    *   FORM                              = ' '
       language                          = sy-langu
    *   OPTIONS                           =
    *   MAIL_SENDER                       =
    *   MAIL_RECIPIENT                    =
    *   MAIL_APPL_OBJECT                  =
    *   RAW_DATA_INTERFACE                = '*'
    *   SPONUMIV                          =
    * IMPORTING
    *   LANGUAGE                          =
    *   NEW_ARCHIVE_PARAMS                =
    *   RESULT                            =
    exceptions
       canceled                          = 1
       device                            = 2
       form                              = 3
       options                           = 4
       unclosed                          = 5
       mail_options                      = 6
       archive_error                     = 7
       invalid_fax_number                = 8
       more_params_needed_in_batch       = 9
       spool_error                       = 10
       codepage                          = 11
       others                            = 12
    if sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    sort it_final by vbeln.
    loop at it_final into wa_final.
    call function 'START_FORM'
    exporting
    *   ARCHIVE_INDEX          =
       form                   = 'Z9BT_DELIVERY'
       language               = sy-langu
    *   STARTPAGE              = ' '
    *   PROGRAM                = ' '
    *   MAIL_APPL_OBJECT       =
    * IMPORTING
    *   LANGUAGE               =
    exceptions
       form                   = 1
       format                 = 2
       unended                = 3
       unopened               = 4
       unused                 = 5
       spool_error            = 6
       codepage               = 7
       others                 = 8
    if sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    call function 'WRITE_FORM'
    exporting
       element                        = 'ITEM_LIST'
       function                       = 'SET'
       type                           = 'BODY'
       window                         = 'MAIN'
    * IMPORTING
    *   PENDING_LINES                  =
    * EXCEPTIONS
    *   ELEMENT                        = 1
    *   FUNCTION                       = 2
    *   TYPE                           = 3
    *   UNOPENED                       = 4
    *   UNSTARTED                      = 5
    *   WINDOW                         = 6
    *   BAD_PAGEFORMAT_FOR_PRINT       = 7
    *   SPOOL_ERROR                    = 8
    *   CODEPAGE                       = 9
    *   OTHERS                         = 10
    if sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    call function 'END_FORM'
    * IMPORTING
    *   RESULT                         =
    exceptions
       unopened                       = 1
       bad_pageformat_for_print       = 2
       spool_error                    = 3
       codepage                       = 4
       others                         = 5
    if sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    endloop.
    call function 'CLOSE_FORM'
    * IMPORTING
    *   RESULT                         =
    *   RDI_RESULT                     =
    * TABLES
    *   OTFDATA                        =
    exceptions
       unopened                       = 1
       bad_pageformat_for_print       = 2
       send_error                     = 3
       spool_error                    = 4
       codepage                       = 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.
    endif.
    *&      Form  VALIDATE_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form validate_data .
    select single vbeln into wa_likp-vbeln
                        from likp where vbeln in s_vbeln.
    append wa_likp to it_likp.
    if sy-subrc <> 0.
    flag = 1.
    endif.
    endform.                    " VALIDATE_DATA
    *&      Form  FETCH_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form fetch_data .
    select a~vbeln
           a~erdat
           a~kunnr
           a~kunag
           a~traty
           b~vbeln
           b~posnr
           b~matnr
           b~arktx
           b~lfimg
           b~netpr
           b~vgbel
           c~vbeln
           c~parvw
           c~kunnr
             into table it_li_vbpa
                    from likp as a
                    left outer join lips as b on a~vbeln = b~vbeln
                    inner join vbpa as c on b~vgbel = c~vbeln
                    where a~vbeln in s_vbeln and
                    c~parvw = 'RE'.
    endform.                    " FETCH_DATA
    *&      Form  MERGE_DATA_KNA1
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form merge_data_kna1 .
    if it_li_vbpa[] is not initial.
    it_li_vbpa_temp[] = it_li_vbpa[].
    sort it_li_vbpa_temp by kunnr.
    delete adjacent duplicates from it_li_vbpa_temp comparing kunnr.
    loop at it_li_vbpa into wa_li_vbpa.
    read table it_li_vbpa_temp into wa_li_vbpa_temp with key kunnr =
    wa_li_vbpa-kunag.
    if sy-subrc <> 0.
    wa_li_vbpa_temp = wa_li_vbpa.
    append wa_li_vbpa_temp to it_li_vbpa_temp.
    endif.
    read table it_li_vbpa_temp into wa_li_vbpa_temp with key kunnr =
    wa_li_vbpa-kunnrb.
    if sy-subrc <> 0.
    wa_li_vbpa_temp = wa_li_vbpa.
    append wa_li_vbpa_temp to it_li_vbpa_temp.
    endif.
    endloop.
    endif.
    if it_li_vbpa_temp[] is not initial.
    select  kunnr
            name1
            ort01
            adrnr into table it_kna1 from kna1
                        for all entries in it_li_vbpa_temp
                        where kunnr = it_li_vbpa_temp-kunnr.
    endif.
    loop at it_li_vbpa into wa_li_vbpa .
    wa_final-vbeln = wa_li_vbpa-vbeln.
    wa_final-erdat = wa_li_vbpa-erdat.
    *it_final-LFART = it_li_vbpa-LFART.
    wa_final-kunnr = wa_li_vbpa-kunnr.
    wa_final-kunag = wa_li_vbpa-kunag.
    *it_final-VSTEL = it_li_vbpa-VSTEL.
    wa_final-traty = wa_li_vbpa-traty.
    wa_final-vbeln1 = wa_li_vbpa-vbeln.
    wa_final-posnr = wa_li_vbpa-posnr.
    wa_final-matnr = wa_li_vbpa-matnr.
    wa_final-arktx = wa_li_vbpa-arktx.
    wa_final-lfimg = wa_li_vbpa-lfimg.
    wa_final-netpr = wa_li_vbpa-netpr.
    *wa_final-GEWEI = it_li_vbpa-GEWEI.
    *it_final-VOLUM = it_li_vbpa-VOLUM.
    *it_final-VOLEH = it_li_vbpa-VOLEH.
    wa_final-vgbel = wa_li_vbpa-vgbel.
    wa_final-vbeln3 = wa_li_vbpa-vbeln.
    *wa_final-PARVW = wa_li_vbpa-PARVW.
    wa_final-kunnrb = wa_li_vbpa-kunnrb.
    read table it_kna1 into wa_kna1 with key kunnr = wa_li_vbpa-kunnr.
    if sy-subrc = 0.
    wa_final-name1 = wa_kna1-name1.
    wa_final-ort01 = wa_kna1-ort01.
    wa_final-adrnr1 = wa_kna1-adrnr.
    endif.
    read table it_kna1 into wa_kna1 with key kunnr = wa_li_vbpa-kunag.
    if sy-subrc = 0.
    wa_final-name2 = wa_kna1-name1.
    wa_final-ort02 = wa_kna1-ort01.
    wa_final-adrnr2 = wa_kna1-adrnr.
    endif.
    read table it_kna1 into wa_kna1 with key kunnr = wa_li_vbpa-kunnrb.
    if sy-subrc = 0.
    wa_final-name3 = wa_kna1-name1.
    wa_final-ort03 = wa_kna1-ort01.
    wa_final-adrnr3 = wa_kna1-adrnr.
    endif.
    append wa_final to it_final.
    clear wa_final.
    endloop.
    endform.

Maybe you are looking for