Script data transfer to form

I have developed new print program (from scratch) and form ( script).
In driver program i got the data into final internal table and used open_form,write_form and close_form. I have mentioned all the text elements in the corresponding function modules(write_form).
In script windows i have included all the text elements correspondingly.
My question is how to pass the data from final internal table of driver program to script(form). Weather we need to maintain "form name" and "driver program" and output types in NACE transaction code as the whole was developed from scratch and not copied from standard program.
Pl advice me.
Regards
Badari
<b>would suitably rewarded.</b>

hi Badari,
If your script is for a standard transaction like Sales order , Purchase order,Invoice etc, you need to configure output type and attach your driver program and SAPScript name in the NACE transaction.
If your SAPScript is a standalone one, and not related to any SAP Standard transaction, you can run your driver program using se38 transaction - No need for NACE configuration in that case.
Hope this helps.
BR,
Preema
*Reward points for helpful answers

Similar Messages

  • DATA TRANSFER TO FORM

    hi friends i have 1 variable having some value in this ex count. how  should  i have to   do to replace the count with its value while sending to form.
    ex
    perform   'BSET-FWSTE( V_TCOUNT )'  WA_DATA-FWSTE,
    thanks in advance....

    try this-- I had done it for a similar requirement. Hope it helps..
    concatenate all the variables you wish to pass in a string variable. Then use perform statement on this variable.
    CONCATENATE 'RSTXT-TXPARGRAPH(' CTR_STRING ')' INTO CTR_STRING.
            CONCATENATE 'RSTXT-TXLINE(' CTR_STRING_LINE ')' INTO CTR_STRING_LINE.
            PERFORM BDC_FIELD       USING CTR_STRING                  
            PERFORM BDC_FIELD       USING CTR_STRING_LINE
    Regards,
    Sumit Nene.
    Edited by: Sumit Nene on Jul 17, 2009 7:58 AM
    Edited by: Sumit Nene on Jul 17, 2009 7:58 AM
    Edited by: Sumit Nene on Jul 17, 2009 8:01 AM

  • How can i transfer all my datas and email form old Mac G5 to new iMac ?

    How can i transfer all my datas and email form old Mac G5 to new iMac ?

    Generally Mugration Assistant will suffice importing all Data ito a new user, but you can manually import it...
    Users/YourUserName/Library/Mail
    Users/YourUserName/Library/Mail Downloads
    (Could be a different folder here if you chose such in Mail Prefs)

  • LBBIL_INVOICE. Billing Data: Transfer Structure to Smart Forms

    Hi...
    Can u please help me out in my query regading how the data passes to
    LBBIL_INVOICE. Billing Data: Transfer Structure to Smart Forms.
    I have an smartform which runs through VF01/VF02/ VF03 while pressing the print preview button.
    But if i try to run it directly from driver program, no data wil be displayed. Now i have the requirement to detach from VF03.. and make it to run directly from my driver program.
    what shall i have to do to achieve this. Should i have to take all the internal tables saparately or else can i use LBBIL_invoice structure itself.
    If i can use that structure itself, how to make the data flow into it.  Pls help me.
    In my codeing these includes were there. is there anything related , is the data passes because of these includes
    INCLUDE rlb_invoice_data_declare.
    definition of forms
    INCLUDE rlb_invoice_form01.
    INCLUDE rlb_print_forms.
    Pls clarify my dobut...
    Thanks in advance,
    Hema

    1. These are normal structure
    2. you can use anywhere but they designed for forms currently.
    3. Yes ,it works like it will look at NAST Table -> nast table will connect the TNAPR Table -> tnapr will have smart form print program.
        so smart form program calls smartform and it will show output
    4. you can create your own structure and use them into anywhere like report program or forms..
    5. you can see example simple form name SF_EXAMPLE_01 ,program name is SF_EXAMPLE_01 ,you can design your own form and print program.
    Thanks
    Seshu

  • How to make Copy and Paste buttons to transfer data from one form to another

    Hi, a complete newbie here.  I’m looking to create a Button 1 that can Copy data from a filled out adobe form, mainly the text fields and checked radio buttons, and then have another Button 2 that can Paste the copied data to another form, containing the exact same text fields and radio buttons.
    Example:
    1. Click "Copy" in Form 1
    2. Click "Paste" in Form 2
    3. Fills data from Form 1 to Form 2
    Any idea how to do this?

    Users will need to uncheck Enable Global Object Security Policy, found in the JavaScript section of the Preferences to do it. That's unlikely to be the case since the opposite is the default.
    Take a look at the section of the JavaScript SDK "Querying an Acrobat form field value in another open form" for details on how to do it.
    http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/JS_Dev_AcrobatForms.76.41.html

  • Data Transfer / Communication between Live Applications

    Gurus,
    I am basically an E-Business Sutie Developer. This is my first experience posting questions in Application and Architecture community.
    Please read the following and let me know if this is the correct thread to post this question also it would be appreciable if you could provide suggestions / solutions for my question.
    Q:
    We are on E-Bus Suite 11.5.9 with custom applications built using Oracle Forms. Recently one of our department decided to buy a custom software to replace one of the application. There are other applications which we built still running in E-Bus Suite. The custom software is based on .NET and SQL Server. We at IT rite now researching how to data transfer between our existing applications and the new software. They both were in different platforms.
    This is a new initiative for us because all these years we use to work on oracle applications and this is the first time where we have to go away from our forte. This could be simple for people with experience in related field but this is challenging for us.
    Your views and suggestions are highly valuable.
    Thank You.
    Karthik.

    Hi,
    Thank You for the reply. Below are the notes from person who already did some of the research. I am not sure whether to go with the below mentioned or to research more...
    Below are the following options to load data from SQL server to Oracle, I read limited on each option. See if something convince you and I will explore more on that option..
    1.     Linked Servers: Linked Servers can be setup on the SQL server instance and then data can be pushed out to the Oracle schema.
    a. Limitation in terms of data type supported by provider/ODBC driver used for creating
    linked servers, Performance good for decent size tables
    b. Advantage: All SLQ based
    http://msdn.microsoft.com/en-us/library/ms188279.aspx
    http://www.codeproject.com/Articles/35943/How-to-Config-Linked-Servers-in-a-Minute
    2.     Oracle Hetereogeneous services: This is Oracle’s answer to Microsoft’s linked servers. By setting it up,
    this can be used to pull data from SQL server db and load to Oracle.
    Same limitations and advantages as 1.
    http://www.csee.umbc.edu/portal/help/oracle8/server.815/a67784/hs_ch6.htm
    3.     DTS (Data Trnasformation Services) or SSIS (SQL Server Integration Services) : Microsoft SQL server 2000 comes
    with DTS and SQL 2005 with SSIS.
    SSIS is robust than DTS for this job and can be used to load data up in the Oracle Schema.
    These tools can be used to provide a real ETL process for data loading.
    4.     Scripting Framework: Scripts can be written to bcp data from a SQL servere db and then use SQL Loader to
    load data to oracle schema
    5.     Third Party tools: A couple of third party tools also provide these options.
    -----------------------------------------------------------------------------------------------------------------------------------------------------------

  • Capturing Data in a Form

    Hello everyone,
    Can someone please help and explain to me how to capture information from an Acrobat form that is emailed out?
    My understanding is that a form will be emailed out from Outlook as an attachment.  The data from that form is to be captured as it comes back into the network.  Now, is the form that is sent out a "stand alone" for lack of a better term, or is that form being hosted from a server somewhere?  I was told one way to capture this form was through a php or cgi script.
    I am technical guy with a strong desktop and server administration and support and network background.  I am not a strong scripter though and need to better understand the whole process before trying to implement a solution.
    Can anyone offer a good explaintion for me please?  There are bits and pieces to this puzzle and they are coming together so I can understand it logically and someone who can fill in the gaps would be much appreciated.
    Thank you,
    Jonathan

    George,
    My most recent responses begin with the "--".  Thanks for your help.
    To address your first question, the form can be set up to submit just the form data, either to a web server or to a recipient via email. So the form (PDF) is not submitted in this scenario. The user loads the form after getting it from a web server, via email, or some other way.
    --OK.  From how it was described to me the form will be sent out and received back as an email attachment.  How can "the form be set up to submit just the form data"?  Technology wise, what needs to be setup?  I understand scripting is involved and that script is delivered through a web server.  If this is all through email, how does traffic back and forth pass through a webserver for this script to run to extract the data dumping it into a .csv or .xlsx file?
    If the form is being served by a web server, it can either be loaded in the user's browser, or directly in Reader/Acrobat, depending on how the user's system is configured. It possible that a user may have a non-Adobe PDF viewer, that may or may not be capable of submitting the form. Reader/Acrobat is capable of submitting a form if it's being viewed in a browser or directly.
    --I understand easier how a form being served by a web server works from an infrastructure point of view.  Would the form ultimately reside on the webserver and in an email a link be sent out asking a user to go fill out this form and submit it or would the actual form go out in an email as an attachment?
    For your second question, it certainly is possible to set up the form to submit the form data to a CGI program on a web server. That's what I would recommend. The data could be stored any number of ways on the server. It could then be further processed so that the data is placed in a spreadsheet file if that's what's wanted. If you transfer the data files to a workstation that has Acrobat installed, it can convert a collection of data files to a CSV file, which can them be imported into Excel to create a spreadsheet.
    --George, I recognize your recommendation, but how is this set up?  Where on the webserver does the CGI script reside and how does it run on a submitted form?  We do want to capture the data in a spreadsheet.  That is our ultimate goal.
    So yes, a web server will be needed if you want to set up the form to submit to one. It does not require any Adobe software, and certainly not Acrobat, which is a desktop application for creating and modifying PDFs. Even if it might somehow be useful on a web server, such use is forbidden by the Acrobat license agreement.
    The web server can process the incoming data in any manner that's required. The particulars depend on the format of the incoming data (FDF, XFDF, "HTML", XML) and what you want to do with it (save the data files on the server, store them or the parsed data in a database, email the data files, etc.)
    --George, where do you classify the data format of the incoming data?  I am guessing in the CGI script?  I have a feeling that the FDF file format will be what we would be looking to setup.  We will definitely want to save the data files and save the data in a spreadsheet.
    Thank you again for your insight.
    Jonathan

  • How to find the max data transfer rate(disk speed) supported by mobo?

    I plan on replacing my current HDD with a new and bigger HDD.
    For this I need to know the max data transfer rate(disk speed) that my mobo will support. However, dmidecode is not telling me that. Am I missing something?
    Here's dmidecode:
    # dmidecode 2.11
    SMBIOS 2.5 present.
    80 structures occupying 2858 bytes.
    Table at 0x000F0450.
    Handle 0xDA00, DMI type 218, 101 bytes
    OEM-specific Type
    Header and Data:
    DA 65 00 DA B2 00 17 4B 0E 38 00 00 80 00 80 01
    00 02 80 02 80 01 00 00 A0 00 A0 01 00 58 00 58
    00 01 00 59 00 59 00 01 00 75 01 75 01 01 00 76
    01 76 01 01 00 05 80 05 80 01 00 D1 01 19 00 01
    00 15 02 19 00 02 00 1B 00 19 00 03 00 19 00 19
    00 00 00 4A 02 4A 02 01 00 0C 80 0C 80 01 00 FF
    FF 00 00 00 00
    Handle 0xDA01, DMI type 218, 35 bytes
    OEM-specific Type
    Header and Data:
    DA 23 01 DA B2 00 17 4B 0E 38 00 10 F5 10 F5 00
    00 11 F5 11 F5 00 00 12 F5 12 F5 00 00 FF FF 00
    00 00 00
    Handle 0x0000, DMI type 0, 24 bytes
    BIOS Information
    Vendor: Dell Inc.
    Version: A17
    Release Date: 04/06/2010
    Address: 0xF0000
    Runtime Size: 64 kB
    ROM Size: 4096 kB
    Characteristics:
    PCI is supported
    PNP is supported
    APM is supported
    BIOS is upgradeable
    BIOS shadowing is allowed
    ESCD support is available
    Boot from CD is supported
    Selectable boot is supported
    EDD is supported
    Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
    3.5"/720 kB floppy services are supported (int 13h)
    Print screen service is supported (int 5h)
    8042 keyboard services are supported (int 9h)
    Serial services are supported (int 14h)
    Printer services are supported (int 17h)
    ACPI is supported
    USB legacy is supported
    BIOS boot specification is supported
    Function key-initiated network boot is supported
    Targeted content distribution is supported
    BIOS Revision: 17.0
    Handle 0x0100, DMI type 1, 27 bytes
    System Information
    Manufacturer: Dell Inc.
    Product Name: OptiPlex 755
    Version: Not Specified
    UUID: 44454C4C-5900-1050-8033-C4C04F434731
    Wake-up Type: Power Switch
    SKU Number: Not Specified
    Family: Not Specified
    Handle 0x0200, DMI type 2, 8 bytes
    Base Board Information
    Manufacturer: Dell Inc.
    Product Name: 0PU052
    Version:
    Handle 0x0300, DMI type 3, 13 bytes
    Chassis Information
    Manufacturer: Dell Inc.
    Type: Space-saving
    Lock: Not Present
    Version: Not Specified
    Asset Tag:
    Boot-up State: Safe
    Power Supply State: Safe
    Thermal State: Safe
    Security Status: None
    Handle 0x0400, DMI type 4, 40 bytes
    Processor Information
    Socket Designation: CPU
    Type: Central Processor
    Family: Xeon
    Manufacturer: Intel
    ID: 76 06 01 00 FF FB EB BF
    Signature: Type 0, Family 6, Model 23, Stepping 6
    Flags:
    FPU (Floating-point unit on-chip)
    VME (Virtual mode extension)
    DE (Debugging extension)
    PSE (Page size extension)
    TSC (Time stamp counter)
    MSR (Model specific registers)
    PAE (Physical address extension)
    MCE (Machine check exception)
    CX8 (CMPXCHG8 instruction supported)
    APIC (On-chip APIC hardware supported)
    SEP (Fast system call)
    MTRR (Memory type range registers)
    PGE (Page global enable)
    MCA (Machine check architecture)
    CMOV (Conditional move instruction supported)
    PAT (Page attribute table)
    PSE-36 (36-bit page size extension)
    CLFSH (CLFLUSH instruction supported)
    DS (Debug store)
    ACPI (ACPI supported)
    MMX (MMX technology supported)
    FXSR (FXSAVE and FXSTOR instructions supported)
    SSE (Streaming SIMD extensions)
    SSE2 (Streaming SIMD extensions 2)
    SS (Self-snoop)
    HTT (Multi-threading)
    TM (Thermal monitor supported)
    PBE (Pending break enabled)
    Version: Not Specified
    Voltage: 0.0 V
    External Clock: 1333 MHz
    Max Speed: 5200 MHz
    Current Speed: 2666 MHz
    Status: Populated, Enabled
    Upgrade: Socket LGA775
    L1 Cache Handle: 0x0700
    L2 Cache Handle: 0x0701
    L3 Cache Handle: Not Provided
    Serial Number: Not Specified
    Asset Tag: Not Specified
    Part Number: Not Specified
    Core Count: 2
    Core Enabled: 2
    Thread Count: 2
    Characteristics:
    64-bit capable
    Handle 0x0700, DMI type 7, 19 bytes
    Cache Information
    Socket Designation: Not Specified
    Configuration: Enabled, Not Socketed, Level 1
    Operational Mode: Write Back
    Location: Internal
    Installed Size: 32 kB
    Maximum Size: 32 kB
    Supported SRAM Types:
    Other
    Installed SRAM Type: Other
    Speed: Unknown
    Error Correction Type: None
    System Type: Data
    Associativity: 8-way Set-associative
    Handle 0x0701, DMI type 7, 19 bytes
    Cache Information
    Socket Designation: Not Specified
    Configuration: Enabled, Not Socketed, Level 2
    Operational Mode: Varies With Memory Address
    Location: Internal
    Installed Size: 6144 kB
    Maximum Size: 6144 kB
    Supported SRAM Types:
    Other
    Installed SRAM Type: Other
    Speed: Unknown
    Error Correction Type: Single-bit ECC
    System Type: Unified
    Associativity: <OUT OF SPEC>
    Handle 0x0800, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: PARALLEL
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: DB-25 female
    Port Type: Parallel Port PS/2
    Handle 0x0801, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: SERIAL1
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: DB-9 male
    Port Type: Serial Port 16550A Compatible
    Handle 0x0802, DMI type 126, 9 bytes
    Inactive
    Handle 0x0803, DMI type 126, 9 bytes
    Inactive
    Handle 0x0804, DMI type 126, 9 bytes
    Inactive
    Handle 0x0805, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: USB1
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: Access Bus (USB)
    Port Type: USB
    Handle 0x0806, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: USB2
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: Access Bus (USB)
    Port Type: USB
    Handle 0x0807, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: USB3
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: Access Bus (USB)
    Port Type: USB
    Handle 0x0808, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: USB4
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: Access Bus (USB)
    Port Type: USB
    Handle 0x0809, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: USB5
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: Access Bus (USB)
    Port Type: USB
    Handle 0x080A, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: USB6
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: Access Bus (USB)
    Port Type: USB
    Handle 0x080B, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: USB7
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: Access Bus (USB)
    Port Type: USB
    Handle 0x080C, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: USB8
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: Access Bus (USB)
    Port Type: USB
    Handle 0x080D, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: ENET
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: RJ-45
    Port Type: Network Port
    Handle 0x080E, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: MIC
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: Mini Jack (headphones)
    Port Type: Audio Port
    Handle 0x080F, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: LINE-OUT
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: Mini Jack (headphones)
    Port Type: Audio Port
    Handle 0x0810, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: LINE-IN
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: Mini Jack (headphones)
    Port Type: Audio Port
    Handle 0x0811, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: HP-OUT
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: Mini Jack (headphones)
    Port Type: Audio Port
    Handle 0x0812, DMI type 8, 9 bytes
    Port Connector Information
    Internal Reference Designator: MONITOR
    Internal Connector Type: None
    External Reference Designator: Not Specified
    External Connector Type: DB-15 female
    Port Type: Video Port
    Handle 0x090A, DMI type 9, 13 bytes
    System Slot Information
    Designation: SLOT1
    Type: x1 Proprietary
    Current Usage: In Use
    Length: Long
    Characteristics:
    PME signal is supported
    Handle 0x0901, DMI type 126, 13 bytes
    Inactive
    Handle 0x0902, DMI type 9, 13 bytes
    System Slot Information
    Designation: SLOT2
    Type: 32-bit PCI
    Current Usage: Available
    Length: Long
    ID: 2
    Characteristics:
    5.0 V is provided
    3.3 V is provided
    PME signal is supported
    Handle 0x0903, DMI type 126, 13 bytes
    Inactive
    Handle 0x0904, DMI type 126, 13 bytes
    Inactive
    Handle 0x0905, DMI type 126, 13 bytes
    Inactive
    Handle 0x0906, DMI type 126, 13 bytes
    Inactive
    Handle 0x0907, DMI type 126, 13 bytes
    Inactive
    Handle 0x0908, DMI type 126, 13 bytes
    Inactive
    Handle 0x0A00, DMI type 10, 6 bytes
    On Board Device Information
    Type: Video
    Status: Disabled
    Description: Intel Graphics Media Accelerator 950
    Handle 0x0A02, DMI type 10, 6 bytes
    On Board Device Information
    Type: Ethernet
    Status: Enabled
    Description: Intel Gigabit Ethernet Controller
    Handle 0x0A03, DMI type 10, 6 bytes
    On Board Device Information
    Type: Sound
    Status: Enabled
    Description: Intel(R) High Definition Audio Controller
    Handle 0x0B00, DMI type 11, 5 bytes
    OEM Strings
    String 1: www.dell.com
    Handle 0x0D00, DMI type 13, 22 bytes
    BIOS Language Information
    Language Description Format: Long
    Installable Languages: 1
    en|US|iso8859-1
    Currently Installed Language: en|US|iso8859-1
    Handle 0x0F00, DMI type 15, 29 bytes
    System Event Log
    Area Length: 2049 bytes
    Header Start Offset: 0x0000
    Header Length: 16 bytes
    Data Start Offset: 0x0010
    Access Method: Memory-mapped physical 32-bit address
    Access Address: 0xFFF01000
    Status: Valid, Not Full
    Change Token: 0x00000018
    Header Format: Type 1
    Supported Log Type Descriptors: 3
    Descriptor 1: POST error
    Data Format 1: POST results bitmap
    Descriptor 2: System limit exceeded
    Data Format 2: System management
    Descriptor 3: Log area reset/cleared
    Data Format 3: None
    Handle 0x1000, DMI type 16, 15 bytes
    Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 8 GB
    Error Information Handle: Not Provided
    Number Of Devices: 4
    Handle 0x1100, DMI type 17, 27 bytes
    Memory Device
    Array Handle: 0x1000
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM_1
    Bank Locator: Not Specified
    Type: DDR2
    Type Detail: Synchronous
    Speed: 667 MHz
    Manufacturer: AD00000000000000
    Handle 0x1101, DMI type 17, 27 bytes
    Memory Device
    Array Handle: 0x1000
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM_3
    Bank Locator: Not Specified
    Type: DDR2
    Type Detail: Synchronous
    Speed: 667 MHz
    Handle 0x1102, DMI type 17, 27 bytes
    Memory Device
    Array Handle: 0x1000
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM_2
    Bank Locator: Not Specified
    Type: DDR2
    Type Detail: Synchronous
    Speed: 667 MHz
    Handle 0x1103, DMI type 17, 27 bytes
    Memory Device
    Array Handle: 0x1000
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM_4
    Bank Locator: Not Specified
    Type: DDR2
    Type Detail: Synchronous
    Speed: 667 MHz
    Handle 0x1300, DMI type 19, 15 bytes
    Memory Array Mapped Address
    Starting Address: 0x00000000000
    Ending Address: 0x000FDFFFFFF
    Range Size: 4064 MB
    Physical Array Handle: 0x1000
    Partition Width: 1
    Handle 0x1400, DMI type 20, 19 bytes
    Memory Device Mapped Address
    Starting Address: 0x00000000000
    Ending Address: 0x0007FFFFFFF
    Range Size: 2 GB
    Physical Device Handle: 0x1100
    Memory Array Mapped Address Handle: 0x1300
    Partition Row Position: 1
    Interleave Position: 1
    Interleaved Data Depth: 1
    Handle 0x1401, DMI type 20, 19 bytes
    Memory Device Mapped Address
    Starting Address: 0x00080000000
    Ending Address: 0x000FDFFFFFF
    Range Size: 2016 MB
    Physical Device Handle: 0x1101
    Memory Array Mapped Address Handle: 0x1300
    Partition Row Position: 1
    Interleave Position: 1
    Interleaved Data Depth: 1
    Handle 0x1402, DMI type 20, 19 bytes
    Memory Device Mapped Address
    Starting Address: 0x00000000000
    Ending Address: 0x0007FFFFFFF
    Range Size: 2 GB
    Physical Device Handle: 0x1102
    Memory Array Mapped Address Handle: 0x1300
    Partition Row Position: 1
    Interleave Position: 2
    Interleaved Data Depth: 1
    Handle 0x1403, DMI type 20, 19 bytes
    Memory Device Mapped Address
    Starting Address: 0x00080000000
    Ending Address: 0x000FDFFFFFF
    Range Size: 2016 MB
    Physical Device Handle: 0x1103
    Memory Array Mapped Address Handle: 0x1300
    Partition Row Position: 1
    Interleave Position: 2
    Interleaved Data Depth: 1
    Handle 0x1410, DMI type 126, 19 bytes
    Inactive
    Handle 0x1800, DMI type 24, 5 bytes
    Hardware Security
    Power-On Password Status: Enabled
    Keyboard Password Status: Not Implemented
    Administrator Password Status: Enabled
    Front Panel Reset Status: Not Implemented
    Handle 0x1900, DMI type 25, 9 bytes
    System Power Controls
    Next Scheduled Power-on: *-* 00:00:00
    Handle 0x1B10, DMI type 27, 12 bytes
    Cooling Device
    Type: Fan
    Status: OK
    OEM-specific Information: 0x0000DD00
    Handle 0x1B11, DMI type 27, 12 bytes
    Cooling Device
    Type: Fan
    Status: OK
    OEM-specific Information: 0x0000DD01
    Handle 0x1B12, DMI type 126, 12 bytes
    Inactive
    Handle 0x1B13, DMI type 126, 12 bytes
    Inactive
    Handle 0x1B14, DMI type 126, 12 bytes
    Inactive
    Handle 0x2000, DMI type 32, 11 bytes
    System Boot Information
    Status: No errors detected
    Handle 0x8100, DMI type 129, 8 bytes
    OEM-specific Type
    Header and Data:
    81 08 00 81 01 01 02 01
    Strings:
    Intel_ASF
    Intel_ASF_001
    Handle 0x8200, DMI type 130, 20 bytes
    OEM-specific Type
    Header and Data:
    82 14 00 82 24 41 4D 54 01 01 00 00 01 A5 0B 02
    00 00 00 00
    Handle 0x8300, DMI type 131, 64 bytes
    OEM-specific Type
    Header and Data:
    83 40 00 83 14 00 00 00 00 00 C0 29 05 00 00 00
    F8 00 4E 24 00 00 00 00 0D 00 00 00 02 00 03 00
    19 04 14 00 01 00 01 02 C8 00 BD 10 00 00 00 00
    00 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00
    Handle 0x8800, DMI type 136, 6 bytes
    OEM-specific Type
    Header and Data:
    88 06 00 88 5A 5A
    Handle 0xD000, DMI type 208, 10 bytes
    OEM-specific Type
    Header and Data:
    D0 0A 00 D0 01 03 FE 00 11 02
    Handle 0xD100, DMI type 209, 12 bytes
    OEM-specific Type
    Header and Data:
    D1 0C 00 D1 78 03 07 03 04 0F 80 05
    Handle 0xD200, DMI type 210, 12 bytes
    OEM-specific Type
    Header and Data:
    D2 0C 00 D2 F8 03 04 03 06 80 04 05
    Handle 0xD201, DMI type 126, 12 bytes
    Inactive
    Handle 0xD400, DMI type 212, 242 bytes
    OEM-specific Type
    Header and Data:
    D4 F2 00 D4 70 00 71 00 00 10 2D 2E 42 00 11 FE
    01 43 00 11 FE 00 0F 00 25 FC 00 10 00 25 FC 01
    11 00 25 FC 02 12 00 25 FC 03 00 00 25 F3 00 00
    00 25 F3 04 00 00 25 F3 08 00 00 25 F3 0C 07 00
    23 8F 00 08 00 23 F3 00 09 00 23 F3 04 0A 00 23
    F3 08 0B 00 23 8F 10 0C 00 23 8F 20 0E 00 23 8F
    30 0D 00 23 8C 40 A6 00 23 8C 41 A7 00 23 8C 42
    05 01 22 FD 02 06 01 22 FD 00 8C 00 22 FE 00 8D
    00 22 FE 01 9B 00 25 3F 40 9C 00 25 3F 00 09 01
    25 3F 80 A1 00 26 F3 00 A2 00 26 F3 08 A3 00 26
    F3 04 9F 00 26 FD 02 A0 00 26 FD 00 9D 00 11 FB
    04 9E 00 11 FB 00 54 01 23 7F 00 55 01 23 7F 80
    5C 00 78 BF 40 5D 00 78 BF 00 04 80 78 F5 0A 01
    A0 78 F5 00 93 00 7B 7F 80 94 00 7B 7F 00 8A 00
    37 DF 20 8B 00 37 DF 00 03 C0 67 00 05 FF FF 00
    00 00
    Handle 0xD401, DMI type 212, 172 bytes
    OEM-specific Type
    Header and Data:
    D4 AC 01 D4 70 00 71 00 03 40 59 6D 2D 00 59 FC
    02 2E 00 59 FC 00 6E 00 59 FC 01 E0 01 59 FC 03
    28 00 59 3F 00 29 00 59 3F 40 2A 00 59 3F 80 2B
    00 5A 00 00 2C 00 5B 00 00 55 00 59 F3 00 6D 00
    59 F3 04 8E 00 59 F3 08 8F 00 59 F3 00 00 00 55
    FB 04 00 00 55 FB 00 23 00 55 7F 00 22 00 55 7F
    80 F5 00 58 BF 40 F6 00 58 BF 00 EB 00 55 FE 00
    EA 00 55 FE 01 40 01 54 EF 00 41 01 54 EF 10 ED
    00 54 F7 00 F0 00 54 F7 08 4A 01 53 DF 00 4B 01
    53 DF 20 4C 01 53 7F 00 4D 01 53 7F 80 68 01 56
    BF 00 69 01 56 BF 40 FF FF 00 00 00
    Handle 0xD402, DMI type 212, 152 bytes
    OEM-specific Type
    Header and Data:
    D4 98 02 D4 70 00 71 00 00 10 2D 2E 2D 01 21 FE
    01 2E 01 21 FE 00 97 00 22 FB 00 98 00 22 FB 04
    90 00 11 CF 00 91 00 11 CF 20 92 00 11 CF 10 E2
    00 27 7F 00 E3 00 27 7F 80 E4 00 27 BF 00 E5 00
    27 BF 40 D1 00 22 7F 80 D2 00 22 7F 00 45 01 22
    BF 40 44 01 22 BF 00 36 01 21 F1 06 37 01 21 F1
    02 38 01 21 F1 00 39 01 21 F1 04 2B 01 11 7F 80
    2C 01 11 7F 00 4E 01 65 CF 00 4F 01 65 CF 10 D4
    01 65 F3 00 D5 01 65 F3 04 D2 01 65 FC 00 D3 01
    65 FC 01 FF FF 00 00 00
    Handle 0xD403, DMI type 212, 157 bytes
    OEM-specific Type
    Header and Data:
    D4 9D 03 D4 70 00 71 00 03 40 59 6D 17 01 52 FE
    00 18 01 52 FE 01 19 01 52 FB 00 1A 01 52 FB 04
    1B 01 52 FD 00 1C 01 52 FD 02 1D 01 52 F7 00 1E
    01 52 F7 08 1F 01 52 EF 00 20 01 52 EF 10 21 01
    52 BF 00 22 01 52 BF 40 87 00 59 DF 20 88 00 59
    DF 00 E8 01 66 FD 00 E9 01 66 FD 02 02 02 53 BF
    00 03 02 53 BF 40 04 02 53 EF 00 05 02 53 EF 10
    06 02 66 DF 00 07 02 66 DF 20 08 02 66 EF 00 09
    02 66 EF 10 17 02 66 F7 00 18 02 66 F7 08 44 02
    52 BF 40 45 02 52 BF 00 FF FF 00 00 00
    Handle 0xD800, DMI type 126, 9 bytes
    Inactive
    Handle 0xDD00, DMI type 221, 19 bytes
    OEM-specific Type
    Header and Data:
    DD 13 00 DD 00 01 00 00 00 10 F5 00 00 00 00 00
    00 00 00
    Handle 0xDD01, DMI type 221, 19 bytes
    OEM-specific Type
    Header and Data:
    DD 13 01 DD 00 01 00 00 00 11 F5 00 00 00 00 00
    00 00 00
    Handle 0xDD02, DMI type 221, 19 bytes
    OEM-specific Type
    Header and Data:
    DD 13 02 DD 00 01 00 00 00 12 F5 00 00 00 00 00
    00 00 00
    Handle 0xDE00, DMI type 222, 16 bytes
    OEM-specific Type
    Header and Data:
    DE 10 00 DE C1 0B 00 00 10 05 19 21 01 00 00 01
    Handle 0x7F00, DMI type 127, 4 bytes
    End Of Table
    Hdparm also does not tell me the max data transfer rate (disk speed) of my current drive although this link : www.wdc.com/en/library/sata/2879-001146.pdf  says that it is 3.0Gb/s
    and here's hdparm -I /dev/sda
    /dev/sda:
    ATA device, with non-removable media
    Model Number: WDC WD800JD-75JNC0
    Firmware Revision: 06.01C06
    Standards:
    Supported: 6 5 4
    Likely used: 8
    Configuration:
    Logical max current
    cylinders 16383 16383
    heads 16 16
    sectors/track 63 63
    CHS current addressable sectors: 16514064
    LBA user addressable sectors: 156250000
    Logical/Physical Sector size: 512 bytes
    device size with M = 1024*1024: 76293 MBytes
    device size with M = 1000*1000: 80000 MBytes (80 GB)
    cache/buffer size = 8192 KBytes
    Capabilities:
    LBA, IORDY(can be disabled)
    Standby timer values: spec'd by Standard, with device specific minimum
    R/W multiple sector transfer: Max = 16 Current = 8
    Recommended acoustic management value: 128, current value: 254
    DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
    Cycle time: min=120ns recommended=120ns
    PIO: pio0 pio1 pio2 pio3 pio4
    Cycle time: no flow control=120ns IORDY flow control=120ns
    Commands/features:
    Enabled Supported:
    * SMART feature set
    Security Mode feature set
    * Power Management feature set
    * Write cache
    * Look-ahead
    * Host Protected Area feature set
    * WRITE_BUFFER command
    * READ_BUFFER command
    * DOWNLOAD_MICROCODE
    SET_MAX security extension
    Automatic Acoustic Management feature set
    * Device Configuration Overlay feature set
    * Mandatory FLUSH_CACHE
    * SMART error logging
    * SMART self-test
    * Gen1 signaling speed (1.5Gb/s)
    * Host-initiated interface power management
    * SMART Command Transport (SCT) feature set
    * SCT Long Sector Access (AC1)
    * SCT LBA Segment Access (AC2)
    * SCT Error Recovery Control (AC3)
    * SCT Features Control (AC4)
    * SCT Data Tables (AC5)
    Security:
    Master password revision code = 65534
    supported
    not enabled
    not locked
    frozen
    not expired: security count
    not supported: enhanced erase
    Checksum: correct
    Last edited by Inxsible (2011-03-27 04:40:49)

    I just checked my BIOS and my current setting is set at IDE although it also mentions that the default should be AHCI. Currently I have a dual boot of Windows 7 (need it for Tax software) and Arch
    So I guess, when I get the new HDD, I will first set it to AHCI and then install the OSes on it. See if NCQ helps any, and if not I will turn it back and re-install (if I have to). I am planning to have Windows only in virtualbox in the new drive.
    Anyhoo, while I was in the BIOS I found two things which I had questions about :
    1) Under Onboard Devices --> Integrated NIC , my setting is currently set at "On w/PXE" and it says the default should be just "On". Would it be ok to change it back to On since its a single machine and its not booting an OS on any server. I just don't want to have to re-install anything now since I will be doing that in the new HDD.
    2) How would I know whether my BIOS would support a 64 bit OS in Virtualbox? I checked some setting under Virtualization, but they weren't very clear.
    I will edit this post and let you know exactly what settings were present under the Virtualization sub-section.

  • Fire Fox sent not all the data in text form. Reached only piece of information. Where can I find the cache of sent text?

    Fire Fox sent not all the data in text form. Reached only piece of information. Where can I find the cache sent the text?
    For example, I posted an article on a news site, but found that only a small part of my article was posted.

    I'm not sure whether Firefox saved that information. There is a chance that it is in the session history file, especially if you haven't closed that tab yet. To check that:
    Open your currently active Firefox settings folder (AKA your Firefox profile folder) using
    Help > Troubleshooting Information > "Show Folder" button
    Find all files starting with the name sessionstore and copy them to a safe working location (e.g., your documents folder). In order to read a .js file, it is useful to rename it to a .txt file. Or you could drag it to Wordpad or your favorite word processing software.
    The script will look somewhat like gibberish, but if you search for a word in your article that doesn't normally appear in web pages, you may be able to find your data.
    Any luck?
    For the future, you might want to consider this add-on, although I don't know how long it saves data after you submit a form: [https://addons.mozilla.org/en-US/firefox/addon/lazarus-form-recovery/].

  • Error while executing Initialize with Data Transfer for 0FI_GL_10

    Hello All,
    Post Pre prod refresh, our timestamp for the datasource 0FI_GL_10 got reset. Due to which our deltas did not bring any records to the BW system.
    First we did an Initialize without data transfer for all the BW related datasources. The deltas were then set properly for all datasources except 0FI_GL_10.
    We then raised a message to SAP and they suggested to run the 'Initialize with data transfer' for 0FI_GL_10 so that the timestamp is set and accordingly the deltas are fixed.
    The issue now is we are getting the following error message while running INIT with data transfer.
    Job terminated in source system --> Request set to red
    Message no. RSM078
    We have copied the data till July 1st week of 2011.
    Please advice. The issue is very critical.
    Thanks & Regards
    Sneha

    Hi Arvind
    Thanks for your inputs.
    Please find below the details of the short dump.
    Runtime Errors         DBIF_RSQL_SQL_ERROR
    Exception              CX_SY_OPEN_SQL_DB
    Date and Time          09/07/2011 11:25:32
    Short text
         SQL error in the database when accessing a table.
    What can you do?
         Note which actions and input led to the error.
         For further help in handling the problem, contact your SAP administrator
         You can use the ABAP dump analysis transaction ST22 to view and manage
         termination messages, in particular for long term reference.
    How to correct the error
         Database error text........: "ORA-01652: unable to extend temp segment by 128
          in tablespace PSAPTEMP"
         Internal call code.........: "[RSQL/FTCH/FAGLFLEXT ]"
         Please check the entries in the system log (Transaction SM21).
         If the error occures in a non-modified SAP program, you may be able to
         find an interim solution in an SAP Note.
         If you have access to SAP Notes, carry out a search with the following
         keywords:
         "DBIF_RSQL_SQL_ERROR" "CX_SY_OPEN_SQL_DB"
    Information on where terminated
        Termination occurred in the ABAP program "GP_GLX_FAGLFLEXT" - in
         "FETCH_TO_ISTRUCTURE".
        The main program was "SBIE0001 ".
        In the source code you have the termination point in line 903
        of the (Include) program "GP_GLX_FAGLFLEXT".
        The program "GP_GLX_FAGLFLEXT" was started as a background job.
        Job Name....... "BIREQU_4N3PZQ12IA0X0PYGEA85IG39S"
        Job Initiator.. "BIWREMOTE"
        Job Number..... 11203300
        The termination is caused because exception "CX_SY_OPEN_SQL_DB" occurred in
        procedure "FETCH_TO_ISTRUCTURE" "(FORM)", but it was neither handled locally
         nor declared
        in the RAISING clause of its signature.
        The procedure is in program "GP_GLX_FAGLFLEXT "; its source code begins in line
        840 of the (Include program "GP_GLX_FAGLFLEXT ".

  • How do I export the pdf data from multiple forms to an excel spreadsheet?

    I have several forms that one of my employees collects data in. I need that data from those forms to go to a spreadsheet for analyzation purposes. I am using Acrobat XI.

    No, you can't change the way this built-in command works. You can either process it later on in Excel, or you would need to use a custom-made script and an Action to collect the data in the format you want in Acrobat and then export it.

  • XDP data transfer not working

    Our process involves filling out a submission form, sending the data to the approval form, and then viewing that approval form. Essentially a simple submission and approval workflow.
    When we export the XML of the approval form to see what data was passed in the schema, we see two sets of the XML. One is a bunch of empty nodes, except for the nodes tied to the process fields that show the connection with the approval form. The other set of nodes is an exact copy, only it contains the data, including the process field nodes that show it is from the submission form.
    When one machine (running Acrobat 9 Pro) runs the process through Workspace, it works fine. When we export his approval form XML, we see that the first set of schema XML has the data. Because of this, the form can read it, populate itself, and everything is fine. It ignores the second set of nodes. When anyone on an a machine tries it using Acrobat 8.1 Pro the form does not load with the data. The exported XML shows that the first set of nodes is empty and the second has the data...so Acrobat can't find it.
    Our setValue component that is supposed to transfer the data is set to (could this be an issue?)...
    Location: process_data/ApprovalForm/object/data
    Expression: process_data/SubmissionForm/object/data
    Our requirements state that 8.1 has to work, so does anyone have any recommendations? Why is the XML getting doubled? Would the version of Acrobat change how Workspace functions? Thank you for any help you can provide us!

    I think the issue is with your set value. I think you are making a copy of the data from one form var and copying it and not overwriting the other one. You will need to get down to a single data node and not 2. I am not an expert at xPath but if your expression was:
    process_data/SubmissionForm/object/data/*
    Then that would copy all nodes below the data node into the Location node. Or you could leave the expression the way it is and change the location to be process_data/SubmissionForm/object. I believe that woudl overwrite the data node in the location.

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

  • License server in data transfer workbench

    Dear All Experts/Gurus,
    I have a problem about log on to data transfer workbench (DTW). I don't understand why I must put numbers in license server field before log on to Data transfer workbench ? In the license server field of license administration form, I've seen the license server is words for example jimmymc, then beside it 40000.
    I log on DTW, I fill jimmymc in the license server field but I've got error message:
    "connection to jimmymc has failed. Error code 100000001. Connection with license server failed"
    I don't understand why it succeeds if I fill numbers for example 130.1.2.5:40000, it works successful. What actually the function of license server field ? why could it be different with license server in the license administration form ?
    I apreciate your answer. TIA
    Rgds,

    Jimmy,
    The net-net is that ... the way you log into the DTW as of the 2005A version is different becasue the overall licensing mechanism used by SAP Business One for 2005 changed from what was used in version 2004.  The licensing mechanism now uses CORBA.  This allows connection without having to have an IP Address, but you can still use one as you have seen.  When you install the License Server for Business One, the default connection "port" used and is defaulted to in the License Server is 30000 ... although you can change this to any port not being used.  Again ... the net-net is that is how it works and that is what is now required for connection or use the IP.
    HTH,
    Eddy

  • Data transfer from sap r/3 into excel sheet for mi01

    hi gurus,
       as i  am a xi consultant i got requirement to write a program for data transfer from sap r/3 into excel sheet for MI01.can any body help me by giving sample code or example for this requirement.please help me.

    Hi Rohit,
    This is an upload program and it has used both function modules to upload from an excel to R3 and to download from R3 onto excel.
    GUI_UPLOAD
    GUI_DOWNLOAD
    are the function modules used.
    Hope this helps,
    *Output:        Downloads error records onto presentation server,
    *               Displays report with number of success and error records
    REPORT ZMCG047CONTR NO STANDARD PAGE HEADING
                                   LINE-SIZE 255
                                   MESSAGE-ID ZM.
    *&       Table declarations
    TABLES : T001W,     "Plants/Branches
             T024E,     "Purchasing Organizations
             T001.      "Company Codes
    *              TYPE-POOLS  DECLARATION
    TYPE-POOLS : SLIS.
    *                       Types  Declaration                            *
    TYPES: BEGIN OF T_RECORD,    "record storing contract info
            LIFNR(010),      "Vendor Number
            EVART(004),      "Agreement Type
            EKORG(004),      "Purchasing Organization
            EKGRP(003),      "Purchasing Group
            WERKS(004),      "Plant
            LGORT(004),      "Storage Location
            KDATB(010),      "Valid start Date
            KDATE(010),      "Valid End Date
            ZTERM(004),      "Payment Terms
            KTWRT(020),      "Target Value
            EPSTP(001),      "Item Category
            EMATN(018),      "Material Number
            KTMNG(017),      "Target Quantity
            NETPR(014),      "Net Price
            PEINH(006),      "Net Price Unit
            BPRME(003),      "Net Price Order Price Unit
            IDNLF(035),      "Vendor Material number
            WEBRE(001),      "GR Based-IV
            MEPRF(001),      "Pricing Date Category
            LTEX1(040),      "Info Text
            DATAB(010),      "Valid From
            DATBI(010),      "Valid To
            KSCHL(004),      "Condition Type
            KBETR(016),      "Condition Rate if scale is not given
            KONWA(005),      "Currency
            KPEIN(005),      "Condition Pricing Unit
            KMEIN(003),      "Condition Unit of Measure
            KSTBM(019),      "Scale
            KBETR_01(016),   "Scale Rate
            DEL_FLAG,        "Delete Flag Indicator
            ERR_MSG(100),    "Error Message
          END OF T_RECORD,
          BEGIN OF T_ERR_RECORD,   "to have error records stored
             LIFNR(010),      "Vendor Number
             EVART(004),      "Agreement Type
             EKORG(004),      "Purchasing Organization
             EKGRP(003),      "Purchasing Group
             WERKS(004),      "Plant
             LGORT(004),      "Storage Location
             KDATB(010),      "Valid start Date
             KDATE(010),      "Valid End Date
             ZTERM(004),      "Payment Terms
             KTWRT(020),      "Target Value
             EPSTP(001),      "Item Category
             EMATN(018),      "Material Number
             KTMNG(017),      "Target Quantity
             NETPR(014),      "Net Price
             PEINH(006),      "Net Price Unit
             BPRME(003),      "Net Price Order Price Unit
             IDNLF(035),      "Vendor Material number
             WEBRE(001),      "GR Based-IV
             MEPRF(001),      "Pricing Date Category
             LTEX1(040),      "Info Text
             DATAB(010),      "Valid From
             DATBI(010),      "Valid To
             KSCHL(004),      "Condition Type
             KBETR(016),      "Condition Rate if scale is not given
             KONWA(005),      "Currency
             KPEIN(005),      "Condition Pricing Unit
             KMEIN(003),      "Condition Unit of Measure
             KSTBM(019),      "Scale
             KBETR_01(016),   "Scale Rate
             DEL_FLAG,        "Delete Flag Indicator
             ERR_MSG(100),    "Error Message
          END OF T_ERR_RECORD,
          BEGIN OF T_LOEKZ,    "To have deletion indicators for materials
              LOEKZ(001),    "Deletion indicator in purchasing document
              EMATN(018),    "Material Number
              WERKS(004),    "Plant
              LGORT(004),    "Storage Location
              BSTYP(001),    "Purchasing document category
          END OF T_LOEKZ,
          BEGIN OF T_MATNR,  " Type definition to store details of materials
               MATNR(018),    "Material Number
          END OF T_MATNR,
          BEGIN OF T_T001,   " Type definition for company codes
              BUKRS(004),    " Company Code
          END OF T_T001,
          BEGIN OF T_ZMVXREF,   "Cross-Reference table type
              D_ALTKN(10),      "Legacy Vendor Number
              D_BUKRS(4),       "Legacy Company Code
              M_ALTKN(10),      "SAP Company Code
          END OF T_ZMVXREF,
          BEGIN OF T_LFA1,    "Master data of vendors
              LIFNR(10),      "Vendor Number
          END OF T_LFA1,
    *  Type Declaration for T024E (Company Codes)
           BEGIN OF T_T024E,
             EKORG   LIKE   T024E-EKORG,     "Purchasing organization
             BUKRS   LIKE   T024E-BUKRS,     "Company Code
           END OF T_T024E,
    *  Type Declaration for t001w (Plant)
           BEGIN OF T_T001W,
             WERKS  LIKE  T001W-WERKS,            "Plant
           END OF T_T001W,
    *  Type Declatation for String Line
           BEGIN OF T_STR1,                                     "#EC NEEDED
             SLINE(6000) TYPE C,
           END OF T_STR1.
    TYPES:  BEGIN OF T_BDCDATA.  "BDC Data
            INCLUDE STRUCTURE BDCDATA.
    TYPES:  END OF T_BDCDATA.
    *       Internal Tables  Declaration                                  *
    DATA:
    *      Internal table to store input file data
           I_RECORD TYPE STANDARD TABLE OF T_RECORD INITIAL SIZE 0,
    *      Internal table to capture errors
           I_ERR_REC TYPE STANDARD TABLE OF T_ERR_RECORD INITIAL SIZE 0,
    *      Internal table to check for deletion indicators
           I_LOEKZ TYPE STANDARD TABLE OF T_LOEKZ INITIAL SIZE 0,
    *      Internal table to check for material numbers
           I_MATNR TYPE STANDARD TABLE OF T_MATNR INITIAL SIZE 0,
    *      Internal table used for storing Cross-Reference data of Vendor
           I_ZMVXREF TYPE STANDARD TABLE OF T_ZMVXREF INITIAL SIZE 0,
    *      Internal table for holding Vendor Numbers from Master table
           I_LFA1 TYPE STANDARD TABLE OF T_LFA1 INITIAL SIZE 0,
    *      Internal table for holding Purchase Org and Company Codes
           I_T024E TYPE STANDARD TABLE OF T_T024E INITIAL SIZE 0,
    *      Internal table for holding Plants
           I_T001W TYPE STANDARD TABLE OF T_T001W INITIAL SIZE 0,
    *      Internal table for storing a list of Company Codes
           I_T001 TYPE STANDARD TABLE OF T_T001 INITIAL SIZE 0,
    *      Internal table used for ALV Reporting
           I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
    *      Internal table used for holding List Header
           I_LISTHEADER TYPE SLIS_T_LISTHEADER,    "EC NEEDED
    *      Internal table to hold ALV Event
           I_ALV_EVENT TYPE SLIS_T_EVENT,
    *      Internal table to hold Sort Info for ALV Report
           I_SORT TYPE SLIS_T_SORTINFO_ALV,
    *      Internal table for BDC Data
           I_BDCDATA TYPE STANDARD TABLE OF T_BDCDATA INITIAL SIZE 0,
    *      Internal table for messages
           I_MESSTAB TYPE TABLE OF BDCMSGCOLL,
    *      Internal table for String line
           I_STR1 TYPE STANDARD TABLE OF T_STR1 INITIAL SIZE 0.
    *       Work Area Declaration                                         *
    DATA:
    *  Work Area to hold data for the Open Contract
          WA_RECORD TYPE T_RECORD,
    *  Work Area to hold previous record data
          WA_RECORDPREV TYPE T_RECORD,
    *  Work Area to hold errors
          WA_ERR_REC TYPE T_ERR_RECORD,
    *  Work Area to hold the Deletion Indicator of materials
          WA_LOEKZ TYPE T_LOEKZ,
    *  Work Area to hold Material numbers of required materials
          WA_MATNR TYPE T_MATNR,      "EC NEEDED
    *  Work Area to hold errors occured while performing BDC
          WA_MESSTAB TYPE BDCMSGCOLL,
    *  Work Area to hold field catalog for ALV Reports
          WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
    *  Work Area to hold list header data for ALV reports
          WA_LISTHEADER TYPE SLIS_LISTHEADER,
    *  Work Area to hold ALV Event
          WA_ALV_EVENT LIKE LINE OF I_ALV_EVENT,  "EC NEEDED
    *  Work Area to hold Layout of ALV Report
          WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
    *  Work Area to hold Cross-Reference data of Vendor
          WA_ZMVXREF TYPE T_ZMVXREF,
    *  Work Area to hold Vendor Numbers from Master table
          WA_LFA1 TYPE T_LFA1,    "EC NEEDED
    *  Work Area to hold Purchase Org and Company Codes
          WA_T024E TYPE T_T024E,
    *  Work Area to hold Company Codes
          WA_T001 TYPE T_T001,
    *  Work Area to hold Plants
          WA_T001W TYPE T_T001W,
    *  Work Area to hold Sort Info for ALV Report
          WA_SORT TYPE SLIS_SORTINFO_ALV,
    *  Work Area to hold BDC Data
          WA_BDCDATA TYPE T_BDCDATA,
    *  Work Area for String line
          WA_STR1 TYPE T_STR1.
    *       Variables  Declaration                                        *
    DATA: V_ERRMSG(500),           "To temporarily store the error message
          V_CONV_DATE(10) TYPE C,  "To capture the converted date format
          V_DATE LIKE SY-DATUM,
          V_REPID LIKE SY-REPID,   "holds report id
          V_CROSS_REFERENCE_ERROR TYPE I,  " cross-reference error
          V_INPUTERROR_FLAG VALUE '',      " input error status
          V_FILENAME TYPE STRING,          " File Name
          VEN_FLAG(1),                       " at new status
          MAT_FLAG(1),                      " at new status
          V_IND(2) TYPE N,                 " index of table control
          V_IND2(2) TYPE N,                " index of table control
          V_IND3(2) TYPE N,                " index of table control
          V_EVRTP1(20),
          V_EPSTP1(20),
          V_EMATN1(20),
          V_KTMNG1(20),
          V_NETPR1(20),
          V_PEINH1(20),
          V_BPRME1(20),
          V_TCSELFLAG1(20),
          V_KSCHL2(20),
          V_KBETR2(20),
          V_KONWA2(20),
          V_KPEIN2(20),
          V_KMEIN2(20),
          V_SELKZ2(20),
          V_KBETR3(20),
          V_KSTBM3(20),
          V_LINE TYPE I,
          V_STR TYPE X VALUE '09',
          V_EXIST TYPE C,
          V_EXIST1 TYPE C,
          V_ISDIR TYPE C,
          V_ISDIR1 TYPE C.
    *       Constants  Declaration                                        *
    CONSTANTS: C_TCODE(5) VALUE 'ME31K', "Trx code - Open Contract Creation
               C_TRUE     VALUE 'X',       " Del_Flag indicator
               C_LOEKZ_MARKED VALUE 'X',   "Deletion indicator for material
               C_INPUTERROR_FLAG_YES VALUE 'X',  "Input File Indicator
               C_VEN_ERR1 VALUE 1,    "Error Indicator
               C_16(2)    VALUE '16',
               C_VEN_ERR2 VALUE 2,    "Error Indicator
               C_VEN_ERR3 VALUE 3,    "Error Indicator
               C_VEN_SUCS VALUE 0,    "Success Indicator
               C_SUCCESS  LIKE SY-SUBRC VALUE '0',
               C_STRUE    VALUE 'S',  "Del_flag for SAP Errors
               C_YTRUE    VALUE 'Y',  "Del_flag for Success Records
               C_MSGTYP_E VALUE 'E',  "holds error message type
               C_MSGTYP_S VALUE 'S',  "holds success message type
               C_BSTYP    VALUE 'K',  "Purchasing Document type is Contract
               C_BACKGROUND VALUE 'N', "Background mode
               C_FOREGROUND VALUE 'A', "All Screen mode
               C_ERRORS   VALUE 'E',   "Error screen mode
               C_WK(2)    VALUE 'WK'. "Value Contract
    *        Selection Screen                                             *
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-033.
    SELECTION-SCREEN SKIP.
    SELECT-OPTIONS:
    *              Plant
                   S_WERKS FOR T001W-WERKS OBLIGATORY,
    *              Purchase Organization
                   S_EKORG FOR T024E-EKORG OBLIGATORY.
    *              Company Code
    PARAMETER      P_BUKRS LIKE T001-BUKRS OBLIGATORY.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN ULINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 3.
    PARAMETER RB_SERVE RADIOBUTTON GROUP RBX DEFAULT 'X' USER-COMMAND U1.
    SELECTION-SCREEN COMMENT 6(19)  TEXT-036.
    SELECTION-SCREEN POSITION 37.
    PARAMETER RB_LOCAL RADIOBUTTON GROUP RBX.
    SELECTION-SCREEN COMMENT 40(13) TEXT-035.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN SKIP.
    PARAMETERS:
    *    Parameter holding Input File name
              P_FILE LIKE RLGRAP-FILENAME
                     OBLIGATORY
                     LOWER CASE
                     DEFAULT 'C:\'
                     MODIF ID G1,
              P_FILE1 LIKE RLGRAP-FILENAME
                      OBLIGATORY
                      LOWER CASE
                      DEFAULT '/celestica/interface/corp/in/work/'
                      MODIF ID G2,
    *    Parameter specifying Mode of calling the Transaction.
              P_MODE DEFAULT 'N' OBLIGATORY,
    *    Check box used to test the input file.
              P_TEST AS CHECKBOX DEFAULT 'X',
    *    Parameter holding Filename for holding Input File Errors
              P_IPERR LIKE RLGRAP-FILENAME
                      OBLIGATORY
                      LOWER CASE
                      DEFAULT 'C:\'
                      MODIF ID G1,
              P_IPERR1 LIKE RLGRAP-FILENAME
                     OBLIGATORY
                     LOWER CASE
                     DEFAULT '/celestica/interface/corp/in/work/047_Err.txt'
                     MODIF ID G2.
    SELECTION-SCREEN END OF BLOCK B2.
    *        AT Selection Screen  Events                                  *
    *  Loop the screen to activate relative paths
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF RB_SERVE = C_TRUE AND SCREEN-GROUP1 = 'G1'.
          SCREEN-OUTPUT = 0.
          SCREEN-ACTIVE = 0.
          SCREEN-INPUT = 0.
        ELSEIF RB_LOCAL = C_TRUE AND SCREEN-GROUP1 = 'G2'.
          SCREEN-OUTPUT = 0.
          SCREEN-ACTIVE = 0.
          SCREEN-INPUT = 0.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    AT SELECTION-SCREEN ON BLOCK B2.
    *  Checking Access Authorization for the user
      CALL FUNCTION 'ZU_DATA_ACCESS_AUTH_CHECK'
           EXPORTING
                ACTVT        = C_16
                P_BUKRS      = P_BUKRS
           TABLES
                S_WERKS      = S_WERKS
                S_EKORG      = S_EKORG
           EXCEPTIONS
                BUKRS_FAILED = 1
                VKORG_FAILED = 2
                VTWEG_FAILED = 3
                EKORG_FAILED = 4
                WERKS_FAILED = 5
                LGNUM_FAILED = 6
                OTHERS       = 7.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    AT SELECTION-SCREEN ON P_BUKRS.
      IF NOT P_BUKRS IS INITIAL.
        SELECT SINGLE BUKRS INTO T001
                            FROM T001
                            WHERE BUKRS EQ P_BUKRS.
        IF SY-SUBRC NE 0.
          MESSAGE I000 WITH TEXT-089.
          STOP.
        ENDIF.
      ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    * Search Help to select Input File path.
      PERFORM GET_FILE_NAME USING P_FILE.
    * Check for the existence of the file.
      IF RB_LOCAL EQ C_TRUE.
        CALL FUNCTION 'TMP_GUI_GET_FILE_EXIST'
             EXPORTING
                  FNAME          = P_FILE
             IMPORTING
                  EXIST          = V_EXIST
                  ISDIR          = V_ISDIR
             EXCEPTIONS
                  FILEINFO_ERROR = 1
                  OTHERS         = 2.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        IF V_ISDIR IS INITIAL.
          IF V_EXIST IS INITIAL.
            MESSAGE I000 WITH TEXT-018.
            STOP.
          ENDIF.
        ELSEIF V_ISDIR EQ C_TRUE.
          MESSAGE I000 WITH TEXT-068.
          STOP.
        ENDIF.
      ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_IPERR.
    * Search Help to select Input Error File path.
      PERFORM GET_FILE_NAME USING P_IPERR.
    AT SELECTION-SCREEN.
    * Validate Transaction Mode
      IF  P_MODE <> C_BACKGROUND AND
          P_MODE <> C_FOREGROUND AND
          P_MODE <> C_ERRORS.
        MESSAGE I000 WITH TEXT-034.
        STOP.
      ENDIF.
    START-OF-SELECTION.
    * Get the Input File Data
      V_FILENAME = P_FILE.
      PERFORM UPLOAD_FLATFILE_DATA TABLES I_RECORD
                                   USING V_FILENAME.
    * Sorting the data by all fields
      SORT I_RECORD.
    * Ensuring the padding of the empty spaces before the vendor No
      CLEAR WA_RECORD.
      LOOP AT I_RECORD INTO WA_RECORD.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
             EXPORTING
                  INPUT  = WA_RECORD-LIFNR
             IMPORTING
                  OUTPUT = WA_RECORD-LIFNR.
        MODIFY I_RECORD FROM WA_RECORD
                        INDEX SY-TABIX
                        TRANSPORTING LIFNR.
        CLEAR WA_RECORD.
      ENDLOOP.
    * Input file validation
      PERFORM VALIDATE_FLATFILE_DATA.
      IF P_TEST = C_TRUE.
        IF I_ERR_REC[] IS INITIAL.
          MESSAGE I000 WITH TEXT-032.
          STOP.
        ELSE.
    *  Display all the error records at the input level.
          PERFORM DISPLAY_INPERR_RECORDS.
    *  Download Error File
          PERFORM DOWNLOAD_ERROR_FILE.
        ENDIF.
      ELSE.
    * Build BDC Data
        PERFORM BUILD_BDC_DATA.
    * Download Error File
        PERFORM DOWNLOAD_ERROR_FILE.
    * Display the status report.
        PERFORM DISPLAY_PROCESSED_RECORDS.
      ENDIF.
    END-OF-SELECTION.
      REFRESH:  I_RECORD,
                I_ERR_REC,
                I_LOEKZ,
                I_MATNR,
                I_ZMVXREF,
                I_LFA1,
                I_T024E,
                I_FIELDCAT,
                I_LISTHEADER,
                I_ALV_EVENT,
                I_SORT,
                I_BDCDATA,
                I_MESSTAB,
                I_STR1.
      FREE: I_RECORD,
            I_ERR_REC,
            I_LOEKZ,
            I_MATNR,
            I_ZMVXREF,
            I_LFA1,
            I_T024E,
            I_FIELDCAT,
            I_LISTHEADER,
            I_ALV_EVENT,
            I_SORT,
            I_BDCDATA,
            I_MESSTAB,
            I_STR1.
    *&      Form  GET_file_name
    *       Fetches the file and path from the presentation system
    *  -->  p1        Path along with the file name
    FORM GET_FILE_NAME USING L_FILE LIKE RLGRAP-FILENAME.
      CALL FUNCTION 'WS_FILENAME_GET'
           EXPORTING
                MASK             = ',*.TXT,*.txt.'
                MODE             = 'O'
                TITLE            = TEXT-011
           IMPORTING
                FILENAME         = L_FILE
           EXCEPTIONS
                INV_WINSYS       = 1
                NO_BATCH         = 2
                SELECTION_CANCEL = 3
                SELECTION_ERROR  = 4
                OTHERS           = 5.
      CASE SY-SUBRC.
        WHEN 1.
          MESSAGE I000 WITH TEXT-084.
          STOP.
        WHEN 2.
          MESSAGE I000 WITH TEXT-085.
          STOP.
        WHEN 3.
          MESSAGE I000 WITH TEXT-086.
          STOP.
        WHEN 4.
          MESSAGE I000 WITH TEXT-087.
          STOP.
      ENDCASE.
    ENDFORM.                    " GET_file_name
    *&      Form  upload_flatfile_data
    *       Uploading data from Flat File
    FORM UPLOAD_FLATFILE_DATA
                          TABLES I_L_RECORD STRUCTURE WA_RECORD
                          USING L_FILENAME TYPE STRING.
      DATA WA_L_RECORD TYPE T_RECORD.
    * Upload the Flat file data
      IF RB_LOCAL EQ C_TRUE. "File is on the Local System
        CALL FUNCTION 'GUI_UPLOAD'
             EXPORTING
                  FILENAME                = L_FILENAME
                  FILETYPE                = 'ASC'
                  HAS_FIELD_SEPARATOR     = 'X'
             TABLES
                  DATA_TAB                = I_L_RECORD
             EXCEPTIONS
                  FILE_OPEN_ERROR         = 1
                  FILE_READ_ERROR         = 2
                  NO_BATCH                = 3
                  GUI_REFUSE_FILETRANSFER = 4
                  INVALID_TYPE            = 5
                  NO_AUTHORITY            = 6
                  UNKNOWN_ERROR           = 7
                  BAD_DATA_FORMAT         = 8
                  HEADER_NOT_ALLOWED      = 9
                  SEPARATOR_NOT_ALLOWED   = 10
                  HEADER_TOO_LONG         = 11
                  UNKNOWN_DP_ERROR        = 12
                  ACCESS_DENIED           = 13
                  DP_OUT_OF_MEMORY        = 14
                  DISK_FULL               = 15
                  DP_TIMEOUT              = 16
                  OTHERS                  = 17.
        CASE SY-SUBRC.
          WHEN 0.
            DESCRIBE TABLE I_L_RECORD LINES V_LINE.
            IF V_LINE EQ 0.
              MESSAGE I000 WITH TEXT-065.
              STOP.
            ENDIF.
          WHEN 1.
            MESSAGE I000 WITH TEXT-068.
            STOP.
          WHEN 2.
            MESSAGE I000 WITH TEXT-069.
            STOP.
          WHEN 3.
            MESSAGE I000 WITH TEXT-070.
            STOP.
          WHEN 4.
            MESSAGE I000 WITH TEXT-071.
            STOP.
          WHEN 5.
            MESSAGE I000 WITH TEXT-072.
            STOP.
          WHEN 6.
            MESSAGE I000 WITH TEXT-073.
            STOP.
          WHEN 7.
            MESSAGE I000 WITH TEXT-074.
            STOP.
          WHEN 8.
            MESSAGE I000 WITH TEXT-075.
            STOP.
          WHEN 9.
            MESSAGE I000 WITH TEXT-076.
            STOP.
          WHEN 10.
            MESSAGE I000 WITH TEXT-077.
            STOP.
          WHEN 11.
            MESSAGE I000 WITH TEXT-078.
            STOP.
          WHEN 12.
            MESSAGE I000 WITH TEXT-079.
            STOP.
          WHEN 13.
            MESSAGE I000 WITH TEXT-080.
            STOP.
          WHEN 14.
            MESSAGE I000 WITH TEXT-081.
            STOP.
          WHEN 15.
            MESSAGE I000 WITH TEXT-082.
            STOP.
          WHEN 16.
            MESSAGE I000 WITH TEXT-083.
            STOP.
        ENDCASE.
        CLEAR V_LINE.
      ELSEIF RB_SERVE EQ C_TRUE. "File is on the Application Server
        P_MODE = C_BACKGROUND.
        OPEN DATASET P_FILE1 FOR INPUT IN TEXT MODE.
        CHECK SY-SUBRC EQ C_SUCCESS.
        CLEAR WA_STR1.
        DO.
          READ DATASET P_FILE1 INTO WA_STR1.
          IF SY-SUBRC <> 0.      " NE SUCCESS.
            EXIT.
          ELSEIF SY-SUBRC EQ C_SUCCESS.
            APPEND WA_STR1 TO I_STR1.
            CLEAR WA_STR1.
          ENDIF.                  " ENDIF on SY-SUBRC 0 Check.
        ENDDO.                    " ENDDO
        DELETE I_STR1 WHERE SLINE EQ ' '.
        DESCRIBE TABLE I_STR1 LINES V_LINE.
        IF V_LINE EQ 0.
          MESSAGE S000 WITH TEXT-065.
          STOP.
        ENDIF.
        LOOP AT I_STR1 INTO WA_STR1.
          CLEAR: WA_L_RECORD.
          SPLIT WA_STR1-SLINE AT V_STR
          INTO WA_L_RECORD-LIFNR
               WA_L_RECORD-EVART
               WA_L_RECORD-EKORG
               WA_L_RECORD-EKGRP
               WA_L_RECORD-WERKS
               WA_L_RECORD-LGORT
               WA_L_RECORD-KDATB
               WA_L_RECORD-KDATE
               WA_L_RECORD-ZTERM
               WA_L_RECORD-KTWRT
               WA_L_RECORD-EPSTP
               WA_L_RECORD-EMATN
               WA_L_RECORD-KTMNG
               WA_L_RECORD-NETPR
               WA_L_RECORD-PEINH
               WA_L_RECORD-BPRME
               WA_L_RECORD-IDNLF
               WA_L_RECORD-WEBRE
               WA_L_RECORD-MEPRF
               WA_L_RECORD-LTEX1
               WA_L_RECORD-DATAB
               WA_L_RECORD-DATBI
               WA_L_RECORD-KSCHL
               WA_L_RECORD-KBETR
               WA_L_RECORD-KONWA
               WA_L_RECORD-KPEIN
               WA_L_RECORD-KMEIN
               WA_L_RECORD-KSTBM
               WA_L_RECORD-KBETR_01
               WA_L_RECORD-DEL_FLAG
               WA_L_RECORD-ERR_MSG.
          APPEND WA_L_RECORD TO I_L_RECORD.
          CLEAR: WA_L_RECORD,
                  WA_STR1.
        ENDLOOP.
        REFRESH I_STR1.
        CLOSE DATASET P_FILE1.
      ENDIF.
    ENDFORM.
    *&      Form  BDC_DYNPRO
    *       Data populated into i_bdcdata table for program
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR WA_BDCDATA.
      WA_BDCDATA-PROGRAM  = PROGRAM.
      WA_BDCDATA-DYNPRO   = DYNPRO.
      WA_BDCDATA-DYNBEGIN = C_TRUE.
      APPEND WA_BDCDATA TO I_BDCDATA.
    ENDFORM.
    *&      Form  BDC_FIELD
    *       Data populated into i_bdcdata table for fields
    FORM BDC_FIELD USING FNAM FVAL.
      CLEAR WA_BDCDATA.
      WA_BDCDATA-FNAM = FNAM.
      WA_BDCDATA-FVAL = FVAL.
      APPEND WA_BDCDATA TO I_BDCDATA.
    ENDFORM.
    *&      Form  convert_date
    *       Converting the data from the file format to mm/dd/yyyy format
    *      <--P_wa_record_kdatb  Source Date
    *      <--p_l_conv_date      Target Date
    FORM CONVERT_DATE USING L_DATE
                            L_TAR_DATE.
      CONCATENATE L_DATE+0(2)
                  L_DATE+3(2)
                  L_DATE+6(4)
                  INTO L_TAR_DATE.
    ENDFORM.                    " convert_date
    *&      Form  validate_flatfile_data
    *       Validating the input file
    FORM VALIDATE_FLATFILE_DATA.
      DATA: L_TODAY LIKE SY-DATUM,
            L_STARTDATE_C LIKE SY-DATUM,
            L_ENDDATE_C LIKE SY-DATUM,
            L_ENDDATE_C1 LIKE SY-DATUM,
            L_STARTDATE_C1 LIKE SY-DATUM,
            L_STARTDATE(8),
            L_ENDDATE(8).
    * Fetch indicator for all records on the material, plant & storage
    * location combination.
      IF NOT I_RECORD[] IS INITIAL.
        REFRESH I_LOEKZ.
        SELECT EMATN            " Material Number
               WERKS            " Plant
               LGORT            " Storage Location
               BSTYP            " Purchasing Document Category
               LOEKZ            " Deletion indicator
          INTO TABLE I_LOEKZ
          FROM EKPO
          FOR ALL ENTRIES IN I_RECORD
          WHERE EMATN = I_RECORD-EMATN
            AND WERKS = I_RECORD-WERKS
            AND LGORT = I_RECORD-LGORT
            AND BSTYP = C_BSTYP
            AND LOEKZ = C_LOEKZ_MARKED.
        IF SY-SUBRC EQ 0.
          SORT I_LOEKZ BY EMATN WERKS LGORT BSTYP LOEKZ.
        ENDIF.
    * Fetching Plants for all entries in the selection screen
        REFRESH I_T001W.
        SELECT WERKS  "Plant
            INTO TABLE I_T001W
            FROM T001W
            WHERE WERKS IN S_WERKS.
        IF SY-SUBRC EQ 0.
          SORT I_T001W BY WERKS.
        ENDIF.
    * Fetching materials for the plants listed in flat file
        REFRESH I_MATNR.
        SELECT MATNR          " Material Number
          INTO TABLE I_MATNR
          FROM MARC
          FOR ALL ENTRIES IN I_RECORD
          WHERE WERKS = I_RECORD-WERKS.
        IF SY-SUBRC EQ 0.
          SORT I_MATNR BY MATNR.
        ENDIF.
    * Fetching Company Codes for repective Purchase Organizations
        REFRESH I_T024E.
        SELECT EKORG       "  Purchase Organization
               BUKRS       "  Company Code
            INTO TABLE I_T024E
            FROM T024E
            WHERE EKORG IN S_EKORG.
        IF SY-SUBRC EQ 0.
          SORT I_T024E BY EKORG.
        ENDIF.
    * Fetching SAP Data using Legacy Data.
        REFRESH I_ZMVXREF.
        SELECT D_ALTKN
               D_BUKRS
               M_ALTKN
            INTO TABLE I_ZMVXREF
            FROM ZMVXREF
            FOR ALL ENTRIES IN I_RECORD
            WHERE D_ALTKN = I_RECORD-LIFNR.
        IF SY-SUBRC EQ 0.
          SORT I_ZMVXREF BY D_ALTKN D_BUKRS.
        ENDIF.
    * Fetching Vendors from LFA1
        IF NOT I_ZMVXREF[] IS INITIAL.
          REFRESH I_LFA1.
          SELECT LIFNR
             INTO TABLE I_LFA1
             FROM LFA1
             FOR ALL ENTRIES IN I_ZMVXREF
             WHERE LIFNR = I_ZMVXREF-M_ALTKN.
          IF SY-SUBRC EQ 0.
            SORT I_LFA1 BY LIFNR.
          ENDIF.
        ENDIF.
    * Start Validating the flat file
        CLEAR: WA_RECORD,
               WA_T024E,
               WA_ZMVXREF,
               WA_LFA1,
               WA_LOEKZ,
               WA_MATNR.
        LOOP AT I_RECORD INTO WA_RECORD.
          L_TODAY = SY-DATUM.
          L_STARTDATE = WA_RECORD-KDATB.
          L_ENDDATE = WA_RECORD-KDATE.
          IF WA_RECORD-DEL_FLAG IS INITIAL.
            READ TABLE I_T001W INTO WA_T001W
                               WITH KEY WERKS = WA_RECORD-WERKS
                               BINARY SEARCH.
            IF SY-SUBRC EQ 0.
    *   Cross-Reference check performed for the given Vendors
              READ TABLE I_T024E INTO WA_T024E
                                 WITH KEY EKORG = WA_RECORD-EKORG
                                 BINARY SEARCH.
              IF SY-SUBRC NE 0.
                V_CROSS_REFERENCE_ERROR = C_VEN_ERR3.
              ELSE.
                READ TABLE I_ZMVXREF INTO WA_ZMVXREF
                            WITH KEY D_ALTKN = WA_RECORD-LIFNR
                                     D_BUKRS = P_BUKRS
                            BINARY SEARCH.
                IF SY-SUBRC EQ 0.
                  READ TABLE I_LFA1 INTO WA_LFA1
                             WITH KEY LIFNR = WA_ZMVXREF-M_ALTKN
                             BINARY SEARCH.
                  IF SY-SUBRC EQ 0.
                    V_CROSS_REFERENCE_ERROR = C_VEN_SUCS.
                  ELSE.
                    V_CROSS_REFERENCE_ERROR = C_VEN_ERR2.
                  ENDIF.
                ELSE.
                  V_CROSS_REFERENCE_ERROR = C_VEN_ERR1.
                ENDIF.
              ENDIF.
    * Legacy Vendor could not be mapped
              IF V_CROSS_REFERENCE_ERROR EQ C_VEN_ERR1.
            V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES. "Inp.file err. occurd
                WA_RECORD-DEL_FLAG = C_TRUE.
                WA_RECORD-ERR_MSG = TEXT-007.
                MODIFY I_RECORD FROM WA_RECORD
                                TRANSPORTING DEL_FLAG
                                             ERR_MSG
                                WHERE LIFNR = WA_RECORD-LIFNR.
    * Legacy Vendor is mapped but the obtained SAP vendor doesn't exist.
              ELSEIF V_CROSS_REFERENCE_ERROR EQ C_VEN_ERR2.
    *           Inp.file err. occurd
                V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
                WA_RECORD-DEL_FLAG = C_TRUE.
                WA_RECORD-ERR_MSG = TEXT-008.
                MODIFY I_RECORD FROM WA_RECORD
                                TRANSPORTING DEL_FLAG
                                             ERR_MSG
                                WHERE LIFNR = WA_RECORD-LIFNR.
    * Purchase Organization doesn't exist in T024E.
              ELSEIF V_CROSS_REFERENCE_ERROR EQ C_VEN_ERR3.
    *             Inp.file err. occurd
                V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
                WA_RECORD-DEL_FLAG = C_TRUE.
                WA_RECORD-ERR_MSG = TEXT-014.
                MODIFY I_RECORD FROM WA_RECORD
                                TRANSPORTING DEL_FLAG
                                             ERR_MSG
                                WHERE EKORG = WA_RECORD-EKORG.
    * Vendor is mapped and validated successfully
              ELSEIF V_CROSS_REFERENCE_ERROR EQ C_VEN_SUCS.
    * Checking for the deletion indicator for that record
                CONCATENATE WA_RECORD-KDATB+6(4)
                            WA_RECORD-KDATB+3(2)
                            WA_RECORD-KDATB+0(2)
                            INTO
                            L_STARTDATE.
                MOVE L_STARTDATE TO L_STARTDATE_C.
                CONCATENATE WA_RECORD-KDATB+6(4)
                            WA_RECORD-KDATB+0(2)
                            WA_RECORD-KDATB+3(2)
                            INTO
                            L_STARTDATE_C1.
                CONCATENATE WA_RECORD-KDATE+6(4)
                            WA_RECORD-KDATE+3(2)
                            WA_RECORD-KDATE+0(2)
                            INTO
                            L_ENDDATE.
                MOVE L_ENDDATE TO L_ENDDATE_C.
                CONCATENATE WA_RECORD-KDATE+6(4)
                            WA_RECORD-KDATE+0(2)
                            WA_RECORD-KDATE+3(2)
                            INTO
                            L_ENDDATE_C1.
                READ TABLE I_LOEKZ INTO WA_LOEKZ WITH KEY
                                                 EMATN = WA_RECORD-EMATN
                                                 WERKS = WA_RECORD-WERKS
                                                 LGORT = WA_RECORD-LGORT
                                                 BINARY SEARCH.
                IF SY-SUBRC EQ 0.
    *             Inpfle err.occured
                  V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
                  WA_RECORD-ERR_MSG = TEXT-003.
                  WA_RECORD-DEL_FLAG = C_TRUE.    "marking the record
                  MODIFY I_RECORD FROM WA_RECORD
                                  TRANSPORTING DEL_FLAG
                                                ERR_MSG
                                  WHERE LIFNR = WA_RECORD-LIFNR
                                    AND EVART = WA_RECORD-EVART
                                    AND EKORG = WA_RECORD-EKORG
                                    AND EKGRP = WA_RECORD-EKGRP
                                    AND WERKS = WA_RECORD-WERKS
                                    AND LGORT = WA_RECORD-LGORT
                                    AND KDATB = WA_RECORD-KDATB
                                    AND KDATE = WA_RECORD-KDATE
                                    AND ZTERM = WA_RECORD-ZTERM
                                    AND KTWRT = WA_RECORD-KTWRT
                                    AND EPSTP = WA_RECORD-EPSTP
                                    AND EMATN = WA_RECORD-EMATN.
    * Validating the Purchasing Organization for Blank/Null
                ELSEIF WA_RECORD-EKORG IS INITIAL.
    *             Inpfle err.occured
                  V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
                  WA_RECORD-ERR_MSG = TEXT-010.
                  WA_RECORD-DEL_FLAG = C_TRUE.
                  MODIFY I_RECORD FROM WA_RECORD
                                  TRANSPORTING DEL_FLAG
                                               ERR_MSG
                                  WHERE LIFNR = WA_RECORD-LIFNR
                                    AND EVART = WA_RECORD-EVART
                                    AND EKORG = WA_RECORD-EKORG
                                    AND EKGRP = WA_RECORD-EKGRP
                                    AND WERKS = WA_RECORD-WERKS
                                    AND LGORT = WA_RECORD-LGORT
                                    AND KDATB = WA_RECORD-KDATB
                                    AND KDATE = WA_RECORD-KDATE
                                    AND ZTERM = WA_RECORD-ZTERM
                                    AND KTWRT = WA_RECORD-KTWRT
                                    AND EPSTP = WA_RECORD-EPSTP
                                    AND EMATN = WA_RECORD-EMATN.
    * Validating the Plant for Blank/Null
                ELSEIF WA_RECORD-WERKS IS INITIAL.
    *             Inpfle err.occured
                  V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
                  WA_RECORD-ERR_MSG = TEXT-039.
                  WA_RECORD-DEL_FLAG = C_TRUE.
                  MODIFY I_RECORD FROM WA_RECORD
                                  TRANSPORTING DEL_FLAG
                                               ERR_MSG
                                  WHERE LIFNR = WA_RECORD-LIFNR
                                    AND EVART = WA_RECORD-EVART
                                    AND EKORG = WA_RECORD-EKORG
                                    AND EKGRP = WA_RECORD-EKGRP
                                    AND WERKS = WA_RECORD-WERKS
                                    AND LGORT = WA_RECORD-LGORT
                                    AND KDATB = WA_RECORD-KDATB
                                    AND KDATE = WA_RECORD-KDATE
                                    AND ZTERM = WA_RECORD-ZTERM
                                    AND KTWRT = WA_RECORD-KTWRT
                                    AND EPSTP = WA_RECORD-EPSTP
                                    AND EMATN = WA_RECORD-EMATN.
    * Validating the Contract Validity Start Date
                ELSEIF L_STARTDATE_C1 GT L_TODAY.             "#EC PORTABLE
    *             Inpfle err.occured
                  V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
                  WA_RECORD-ERR_MSG = TEXT-004.
                  WA_RECORD-DEL_FLAG = C_TRUE.      "marking the record
                  MODIFY I_RECORD FROM WA_RECORD
                                  TRANSPORTING DEL_FLAG
                                               ERR_MSG
                                  WHERE LIFNR = WA_RECORD-LIFNR
                                    AND EVART = WA_RECORD-EVART
                                    AND EKORG = WA_RECORD-EKORG
                                    AND EKGRP = WA_RECORD-EKGRP
                                    AND WERKS = WA_RECORD-WERKS
                                    AND LGORT = WA_RECORD-LGORT
                                    AND KDATB = WA_RECORD-KDATB.
    * Validating the Contract Validity End Date
                ELSEIF L_ENDDATE_C1 LE L_TODAY.               "#EC PORTABLE
    *             Inpfle err.ocrd
                  V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
                  WA_RECORD-ERR_MSG = TEXT-005.
                  WA_RECORD-DEL_FLAG = C_TRUE.    "marking the record
                  MODIFY I_RECORD FROM WA_RECORD
                                  TRANSPORTING DEL_FLAG
                                               ERR_MSG
                                  WHERE LIFNR = WA_RECORD-LIFNR
                                    AND EVART = WA_RECORD-EVART
                                    AND EKORG = WA_RECORD-EKORG
                                    AND EKGRP = WA_RECORD-EKGRP
                                    AND WERKS = WA_RECORD-WERKS
                                    AND LGORT = WA_RECORD-LGORT
                                    AND KDATB = WA_RECORD-KDATB
                                    AND KDATE = WA_RECORD-KDATE.
    * Checking for Material under the Plant for Agreement Type 'WK'
                ELSEIF WA_RECORD-EVART = C_WK.
                  READ TABLE I_MATNR INTO WA_MATNR
                                     WITH KEY MATNR = WA_RECORD-EMATN
                                     BINARY SEARCH.
                  IF SY-SUBRC NE 0.
                 V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES. "Inpfle err.ocrd
                    WA_RECORD-ERR_MSG = TEXT-006.
                    WA_RECORD-DEL_FLAG = C_TRUE.   "marking the record
                    MODIFY I_RECORD FROM WA_RECORD
                                    TRANSPORTING DEL_FLAG
                                                 ERR_MSG
                                    WHERE LIFNR = WA_RECORD-LIFNR
                                      AND EVART = WA_RECORD-EVART
                                      AND EKORG = WA_RECORD-EKORG
                                      AND EKGRP = WA_RECORD-EKGRP
                                      AND WERKS = WA_RECORD-WERKS
                                      AND LGORT = WA_RECORD-LGORT
                                      AND KDATB = WA_RECORD-KDATB
                                      AND KDATE = WA_RECORD-KDATE
                                      AND ZTERM = WA_RECORD-ZTERM
                                      AND KTWRT = WA_RECORD-KTWRT
                                      AND EPSTP = WA_RECORD-EPSTP
                                      AND EMATN = WA_RECORD-EMATN.
                  ENDIF.
                ENDIF.  " checking of deletion indicator
              ENDIF.   " checking for success of vendor cross reference
            ELSE.
              V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES. "Inpfle err.ocrd
              WA_RECORD-ERR_MSG = TEXT-041.
              WA_RECORD-DEL_FLAG = C_TRUE.   "marking the record
              MODIFY I_RECORD FROM WA_RECORD
                              TRANSPORTING DEL_FLAG
                                           ERR_MSG
                              WHERE WERKS = WA_RECORD-WERKS.
            ENDIF. " Plant checked to selection screen
          ENDIF.  " the records for which del_flag is initial
          CLEAR: WA_RECORD,
                 WA_T024E,
                 WA_ZMVXREF,
                 WA_LFA1,
                 WA_LOEKZ,
                 WA_MATNR,
                 L_TODAY,
                 L_STARTDATE_C,
                 L_ENDDATE_C,
                 L_STARTDATE,
                 L_ENDDATE.
        ENDLOOP.
        LOOP AT I_RECORD INTO WA_RECORD.
          IF WA_RECORD-DEL_FLAG = C_TRUE.
            APPEND WA_RECORD TO I_ERR_REC.
            CLEAR WA_RECORD.
          ENDIF.
        ENDLOOP.
      ELSE.
        MESSAGE E000 WITH TEXT-013.  " no records in the flat file
        STOP.
      ENDIF.
    ENDFORM.                    " validate_flatfile_data
    *&      Form  DOWNLOAD_ERROR_FILE
    *       Downloads all records along with the records encountering the
    *       input file validation error
    FORM DOWNLOAD_ERROR_FILE.
      DATA L_ISDIR TYPE C.
      IF V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
        V_FILENAME = P_IPERR.
    * Check for the existence of the file.
        IF RB_LOCAL EQ C_TRUE.
          CALL FUNCTION 'TMP_GUI_GET_FILE_EXIST'
               EXPORTING
                    FNAME          = P_IPERR
               IMPORTING
                    ISDIR          = L_ISDIR
               EXCEPTIONS
                    FILEINFO_ERROR = 1
                    OTHERS         = 2.
          IF SY-SUBRC <> 0.
            MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
          IF L_ISDIR EQ C_TRUE.
            MESSAGE I000 WITH TEXT-088.
            STOP.
          ENDIF.
        ENDIF.
        IF RB_LOCAL EQ C_TRUE.
    * Download the Input Error File.
          CALL FUNCTION 'GUI_DOWNLOAD'
               EXPORTING
                    FILENAME                = V_FILENAME
                    FILETYPE                = 'ASC'
                    WRITE_FIELD_SEPARATOR   = '#'
               TABLES
                    DATA_TAB                = I_ERR_REC
               EXCEPTIONS
                    FILE_WRITE_ERROR        = 1
                    NO_BATCH                = 2
                    GUI_REFUSE_FILETRANSFER = 3
                    INVALID_TYPE            = 4
                    NO_AUTHORITY            = 5
                    UNKNOWN_ERROR           = 6
                    HEADER_NOT_ALLOWED      = 7
                    SEPARATOR_NOT_ALLOWED   = 8
                    FILESIZE_NOT_ALLOWED    = 9
                    HEADER_TOO_LONG         = 10
                    DP_ERROR_CREATE         = 11
                    DP_ERROR_SEND           = 12
                    DP_ERROR_WRITE          = 13
                    UNKNOWN_DP_ERROR        = 14
                    ACCESS_DENIED           = 15
                    DP_OUT_OF_MEMORY        = 16
                    DISK_FULL               = 17
                    DP_TIMEOUT              = 18
                    FILE_NOT_FOUND          = 19
                    DATAPROVIDER_EXCEPTION  = 20
                    CONTROL_FLUSH_ERROR     = 21
                    OTHERS                  = 22.
          IF SY-SUBRC <> 0.
            MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
        ELSEIF RB_SERVE EQ C_TRUE.
          OPEN DATASET P_IPERR1 FOR OUTPUT IN TEXT MODE.
          CHECK SY-SUBRC EQ 0.
          CLEAR WA_ERR_REC.
          LOOP AT I_ERR_REC INTO WA_ERR_REC.
            IF WA_ERR_REC-DEL_FLAG = C_TRUE.
              TRANSFER WA_ERR_REC TO P_IPERR1.
            ENDIF.
            CLEAR WA_ERR_REC.
          ENDLOOP.
          CLOSE DATASET P_IPERR1.
        ENDIF.
      ENDIF.
    ENDFORM.                    " DOWNLOAD_ERROR_FILE
    *&      Form  BUILD_BDC_DATA
    * Populates BDC for all the fields neccessary for Open Contract Creation
    FORM BUILD_BDC_DATA.
      DATA: L_MAT_INDEX TYPE I,
            L_CON_INDEX TYPE I,
            L_SCA_INDEX TYPE I.
      CLEAR   WA_BDCDATA.
      REFRESH: I_BDCDATA,
               I_MESSTAB.
    * Processing the bdc
      CLEAR: WA_RECORD,
             WA_RECORDPREV,
             VEN_FLAG,
             MAT_FLAG.
      LOOP AT I_RECORD INTO WA_RECORD.
    *    Checks for the del_flag of the record.
        IF     WA_RECORD-DEL_FLAG EQ C_TRUE
            OR WA_RECORD-DEL_FLAG EQ C_STRUE.
          CLEAR WA_RECORD.
          CONTINUE.
        ELSE.
          IF  WA_RECORDPREV-LIFNR NE WA_RECORD-LIFNR
           OR WA_RECORDPREV-EVART NE WA_RECORD-EVART
           OR WA_RECORDPREV-EKORG NE WA_RECORD-EKORG
           OR WA_RECORDPREV-EKGRP NE WA_RECORD-EKGRP
           OR WA_RECORDPREV-WERKS NE WA_RECORD-WERKS
           OR WA_RECORDPREV-LGORT NE WA_RECORD-LGORT
           OR WA_RECORDPREV-KDATB NE WA_RECORD-KDATB
           OR WA_RECORDPREV-KDATE NE WA_RECORD-KDATE
           OR WA_RECORDPREV-ZTERM NE WA_RECORD-ZTERM
           OR WA_RECORDPREV-KTWRT NE WA_RECORD-KTWRT.
            PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0200'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                          'RM06E-LGORT'.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                          '/00'.
    *   Cross-Reference check performed for the given Vendors
            CLEAR WA_T024E.
            READ TABLE I_T024E INTO WA_T024E
                               WITH KEY EKORG = WA_RECORD-EKORG
                               BINARY SEARCH.
            IF SY-SUBRC EQ 0.
              CLEAR WA_ZMVXREF.
              READ TABLE I_ZMVXREF INTO WA_ZMVXREF
                          WITH KEY D_ALTKN = WA_RECORD-LIFNR
                                   D_BUKRS = P_BUKRS
                          BINARY SEARCH.
              IF SY-SUBRC EQ 0.
                PERFORM BDC_FIELD   USING 'EKKO-LIFNR'
                                           WA_ZMVXREF-M_ALTKN.
              ENDIF.
              CLEAR WA_ZMVXREF.
            ENDIF.
            CLEAR WA_T024E.
            PERFORM BDC_FIELD       USING 'RM06E-EVART'
                                          WA_RECORD-EVART.
            PERFORM BDC_FIELD       USING 'EKKO-EKORG'
                                          WA_RECORD-EKORG.
            PERFORM BDC_FIELD       USING 'EKKO-EKGRP'
                                          WA_RECORD-EKGRP.
            PERFORM BDC_FIELD       USING 'RM06E-WERKS'
                                          WA_RECORD-WERKS.
            PERFORM BDC_FIELD       USING 'RM06E-LGORT'
                                          WA_RECORD-LGORT.
            PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0201'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                          'EKKO-KTWRT'.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                          '=AB'.
            PERFORM CONVERT_DATE USING WA_RECORD-KDATB V_CONV_DATE.
            PERFORM BDC_FIELD       USING 'EKKO-KDATB'
                                          V_CONV_DATE.
            PERFORM CONVERT_DATE USING WA_RECORD-KDATE V_CONV_DATE.
            PERFORM BDC_FIELD       USING 'EKKO-KDATE'
                                          V_CONV_DATE.
            PERFORM BDC_FIELD       USING 'EKKO-ZTERM'
                                          WA_RECORD-ZTERM.
            PERFORM BDC_FIELD       USING 'EKKO-KTWRT'
                                            WA_RECORD-KTWRT.
            VEN_FLAG = 1.
            L_MAT_INDEX = 1. "index for table-control of material
          ENDIF.
    *          "first check for itemline
          IF  WA_RECORDPREV-EPSTP NE WA_RECORD-EPSTP
           OR WA_RECORDPREV-EMATN NE WA_RECORD-EMATN
           OR WA_RECORDPREV-KTMNG NE WA_RECORD-KTMNG
           OR WA_RECORDPREV-NETPR NE WA_RECORD-NETPR
           OR WA_RECORDPREV-PEINH NE WA_RECORD-PEINH
           OR WA_RECORDPREV-BPRME NE WA_RECORD-BPRME
           OR WA_RECORDPREV-IDNLF NE WA_RECORD-IDNLF
           OR WA_RECORDPREV-WEBRE NE WA_RECORD-WEBRE
           OR WA_RECORDPREV-MEPRF NE WA_RECORD-MEPRF
           OR WA_RECORDPREV-LTEX1 NE WA_RECORD-LTEX1
           OR VEN_FLAG EQ 1.
            V_IND = L_MAT_INDEX.
            IF V_IND GT 1.
              V_IND = 2.
            ENDIF.
            CONCATENATE 'RM06E-EVRTP(' V_IND ')' INTO V_EVRTP1.
            CONCATENATE 'RM06E-EPSTP(' V_IND ')' INTO V_EPSTP1.
            CONCATENATE 'EKPO-EMATN(' V_IND ')' INTO V_EMATN1.
            CONCATENATE 'EKPO-KTMNG(' V_IND ')' INTO V_KTMNG1.
            CONCATENATE 'EKPO-NETPR(' V_IND ')' INTO V_NETPR1.
            CONCATENATE 'EKPO-PEINH(' V_IND ')' INTO V_PEINH1.
            CONCATENATE 'EKPO-BPRME(' V_IND ')' INTO V_BPRME1.
            CONCATENATE 'RM06E-TCSELFLAG(' V_IND ')' INTO V_TCSELFLAG1.
            PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0220'.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                          '=NP'.
            PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0220'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                          V_EVRTP1.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                          '=DETA'.
            PERFORM BDC_FIELD       USING V_EPSTP1
                                          WA_RECORD-EPSTP.
            PERFORM BDC_FIELD       USING V_EMATN1
                                          WA_RECORD-EMATN.
            PERFORM BDC_FIELD       USING V_KTMNG1
                                          WA_RECORD-KTMNG.
            PERFORM BDC_FIELD       USING V_NETPR1
                                          WA_RECORD-NETPR.
            PERFORM BDC_FIELD       USING V_PEINH1
                                          WA_RECORD-PEINH.
            PERFORM BDC_FIELD       USING V_BPRME1
                                          WA_RECORD-BPRME.
            PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0211'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                          'EKPO-WEBRE'.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                          '=DETZ'.
            PERFORM BDC_FIELD       USING 'EKPO-IDNLF'
                                          WA_RECORD-IDNLF.
            TRANSLATE WA_RECORD-EVART TO UPPER CASE.
            IF WA_RECORD-EVART EQ C_WK.
              PERFORM BDC_FIELD       USING 'EKPO-WEBRE' 'X'.
            ENDIF.
            PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0212'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                          'EKPO-MEPRF'.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                          '=TXP'.
            PERFORM BDC_FIELD       USING 'EKPO-MEPRF'
                                          WA_RECORD-MEPRF.
            IF NOT WA_RECORD-LTEX1 IS INITIAL. "NE space.
              PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0106'.
              PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                            'RM06E-SELKZ(02)'.
              PERFORM BDC_FIELD 

Maybe you are looking for