Duplicate records in material master

Hi All
I am trying to init material master and I am getting this error message
"281 duplicate record found. 0 recordings used in table /BI0/XMATERIAL"
This is not the first time , I am initializing . Deltas were running for a month and then I had to run a repair request to capture some changes and then when I ran the delta from then onwards I am getting this message.
I started by deleting all the records and running this inti packet.
I have tried the error handling and also I do not see any option for "ignore duplicate records " in the packet.
I cannot see any error (red) records also in the PSA enough though the message says there are errors
Please advice
Thanks

Hi,
The duplicate record check is in the extraction program. I would suggest you do not deactivate/comment it out.
What you should do is to go back to your material master records from the source system and sort out the materials not having unique identifier. Once this is sorted out, you can then re-run your delta. You shouldn't have the problem again. I once had the same problem from an HR extraction and i had to go back to the source data and ask the business to correct the duplication. A record for an employee was changed and there was overlap of dates in the employees record. The BW extraction program saw this as a duplicate record.
I hope this help.
Do not forget to award the points please.
Regards,
Jacob

Similar Messages

  • Program to update info record with material master data

    I am trying to determine if there is a standard SAP program that can be run as a batch file  to update the fields in the info record with the same fields that are in the material master?  ie:  Planned delivery time, Tolerance, purchasing group etc.

    Hi,
    There is no standard report or transaction that can do this.
    The data from these fields in the material master is brought in as a default to the info record when it is created. beyond this point the Info record is treated as being the correct data regardless of what happens to the material master data and so no updates occur in the standard system.
    It would not be difficult to build an LSMW job to copy the data from the material master to the info records and this would be the recommendation if you want to do this.
    Steve B

  • Is there any functionality to check duplicate records of vendor master

    Dear all,
    In creation of vendor master, there is probability of creation of same vendor twice by the user by ignorance.
    Do we any check in SAP so that we cannot create the vendor if that vendor already exists.
    For instance, based on vendor name can we put check so that system gives error message if that name already exists.
    Kindly revert back with your suggestions.
    Thanks,
    Kumar

    Hi,
    First of all you need to have the information ,what are all the fields that needs to be checked for identifying the master data as duplicate, ie name /adress/post code/bank details.
    If you put only one 'name' only for checking the master data duplication then there might be cases where the two vendors having the same name . So i would suggest take more than one field for identifacation the vendors.
    Best Regards
    Suresh Addagiri

  • Material Master,Vedor Master and Info record

    Hi
    When we create all these record, some of the fields are populated from one an other, so if we change these common field in one record, will it be changed itself in other record?like purchasing value key in MM and Info record are common so if we change this one in info record,the change in MM will be done itself or not and if not why?

    Hi,
    Let me take one example of reminder days only.
    Now material master's reminder days are specific and limited to that material only. for ex for material "007" reminder days are 3,6 and 9. that is in general.
    but when that material is provided by X vendor than reminder should be 4,7 and 11..than what?
    that should be maintained in info record. so info record is one level up for data maintenance. so if there is no info record, reminder days will be take from material master that is first level. but if you have maintained info record , means you want some specific data for that material when it is provided by any specific vendor..than reminder should be taken from info record.
    when data is adopted , first system checks info record than material master/vendor master.
    so when you create info record, some data are taken from master data ( material master/vendor master) but you can overwrite it base upon your need.
    than that data is fixed for that material n vendor..it doesnt change if you change master data...
    hope this solves your query..
    reward if useful.and revert if any doubt
    regards

  • Master data infoobject can't handle duplicate records after SP10

    Hi
    I am trying to load master data which happened to contain duplicate records from the source system.  In the DTP of the master data infoobject, I have ticked the 'Handle Duplicate Record Keys' checkbox.  After executing this DTP, the duplicate master data records were trapped in the Error Stack.  I am expecting overwriting of the duplicate master data to take place instead.  I understand that this error was fixed in Note 954661 - Updating master data texts when error in data package which is from SP9.  After applying Support Pack 10, the master data infoobject just can't handle records with duplicate keys.
    Please let me know if you manage to fix this problem.
    Many thanks,
    Anthony

    Found a fix for this problem.  Just applied this OSS note  Note 986196 - Error during duplicate record handling of master data texts.

  • Update info record when changing units of measure in material master

    Hello,
    is there any possibility for an automatic change of info record when changing conversion factors in the material master ?
    We have 3 units of measure in our material master: the base unit and 2 alternative units. The first alternative unit is the order unit and the second alternative unit is the order price unit. So in our purchase info records we maintain an order unit, which differs from the base unit and we also maintain an order price unit, which differs from the base unit and the order unit.
    If we now change the conversion factors between the units in the material master, we would like to get an automatic change of the converions in the info record (to order unit and order price unit), which have the same previous conversions.
    For IS R it seems to be implemented (see OSS-Note 975954).
    Is there any solution for a "normal" industry system ?
    Thanks for answering
    Edited by: Britta Heinsen on Jul 23, 2009 1:52 PM

    I don't think such an auto update is available. Infact I came to know that such an update is available in IS-R after reading your query.
    Obviously you an always create a workflow based enhancement that can synchronize the Info-records and material master changes or sort of enhancement which regularly reads the material master change history for such changes and trigger a synchronization by executing change Info-record automatically.

  • Extending a material view in Material Master

    Hi
    I have created a Material without a sales view.Now I wnt to add sales view in the existing Material Master. How to do this.
    Regards
    venkat

    Hi Garapati,
    Pleas read the answers of experts.
    You have to use MM01 (create) transaction if you want to extend your material master record since you create new records in material master tables.
    So you have to use MM01 if you create a brand new mmr and you have to use the same if you want to extend your mmr.
    BR
    Csaba

  • What is the use of ingnore duplicate records ?

    Hi guru's
    what is the use of ingnore duplicate records ? it will not allow duplicate records when u r loading masterdata ?
    actually md will not duplicate records , why we use this option? with out select the check box in duplicate records, what will happen?
    its supports only for flat file or r/3 sys, if supports flat file tell me both procedure
    Thanks
    Reddy

    Hi,
    If u checks Ignore Duplicate records means, system will allow duplicate records.
    Actually Master data will not have duplicate records. This option is rarely useful in certain scenarios.
    regards
    SR

  • Is it possible to create info record without material number

    Hi all,
    Is it possible to create infor record without material master and what is the importance of the field Info update in PO.
    Thank you for the help.

    Hi,
    1.Yes you can create Info record without material no. but you have create it for material group.Go to ME11 and only enter vendor ,Purchasing organization , and Plant don't enter material no.. and again enter maitain material gruop and require data for Material group.
    2.Info Update indicator -
    Info record update
        Determines whether the prices and conditions of this purchase order ite
        are suggested in future PO items.
    Use
        Selecting InfoUpdate causes one of the following situations to occur:
            -   If just one info record (with or without plant) exists, it is
                updated.
            -   If no info record exists and "plant condition requirement" was
                specified in Customizing, an info record with plant is created.
                Otherwise, an info record without plant is created.
            -   If two info records exist (that is, one info record with plant
                and one without plant) the info record with plant is updated.
    reward if helpful,
    Regards,
    Chetan.

  • BAPI Required: Material master and customer master

    Hi experts.
    I need a BAPI's which returns
    <b>Material Master,
    Customer Master</b> detail.
    Regard
    Anees
    9886358645

    Hi Seshu Maramreddy , and All,
    <b>BAPI_MATERIAL_GET_DETAIL</b> is used to get the single record when we pass material no. but my requirement is get the all the record from material master without any condition i mean without passing the material no.
    The same with <b>BAPI_CUSTOMER_GETDETAIL2</b>.
    Now u can ask me to use the loop and call the BAPI but i cant do this because i have thousands of material and that is other R/3 system not is local R/3 system.
    I got 2 more BAPI's
    BAPI_MATERIAL_DISPLAY
    BAPI_CUSTOMER_DISPLAY.
    I think this BAPI's also use to display only one record at a time.
    Regard
    Anees
    9886358645

  • Prevent creation of duplicate material master record

    Hi Experts
    1)  Is there any control or validation to prevent creation of duplicate material? I mean, if the description of new material is 100% or 95% matching with an existing material, there should be a validation.
    2) Is there any feature of usage of catelogs for creation of material master description?
    warm regards
    ramSiva

    Hi,
    Have a try to use Enhancement: MGA00001, user exit: EXIT_SAPLMGMU_001 for control you need.
    You can also use BAdI for this:
    BADI_MATERIAL_CHECK -> method CHECK.
    In both enhacements there is a structure STEXT - here short text(s) of new created material should be found for validation.
    Here you can make some ABAP works necessary.
    Hope it helps,
    regards,
    w.
    Edited by: Wojciech Zalech on May 19, 2010 9:43 AM

  • Duplicate material master records ?

    There are duplicate material master for the same material. In some cases there are more than two master data for the same material.?

    Hi,
    They material are internal number or external number.
    If internal number then only the discription might be the same with 2 or more material number.
    If external numbet then check the 2 same material how the difference in material number.
    If you want to delete or block then check the inventory status in the material.
    then do the further action.
    SAM

  • Duplicates in material master

    hello experts
    what does it mean by identification of duplicates in material master and how its done?
    whether its applicable for all master records?
    regards

    Hi,
    The safety time / actual range of coverage ensures that the planned warehouse stock covers the requirements of a defined number of days. It therefore serves as a time float and thus works alongside the safety stock, which acts as quantity float.
    The system simulates bringing the requirements forward by the specified number of days and the planning for the receipts, created for these requirements in the planning run, is also brought forward by this number of days.
    Prerequisites
    ·   You have set the Safety Time indicator in the material master record (MRP 2 View) to define whether the safety time is only to apply to independent requirements or to all requirements.
    ·    In the material master record (MRP 2 View), in the Safety Time/Actual Range of Coverage field, you have entered the number of workdays by which the requirements are to be brought forward.
    ·    If, in addition to this actual range of coverage, you also want to define a different number of workdays in certain periods or a safety time less than one day then, in Customizing for MRP in the activity Define Period Profile for Safety Time/Actual Range of Coverage you can define a period profile and assign it to the material in the material master record.
    Regards,
    Vijay

  • Copy Material Master Record -- All Answers will be rewarded

    Hello All,
    I need to copy the set of materials from one plant to another plant.
    Say I need to copy Materials from plant 1123 to 1128.
    Say some 10000 materials approximately.
    one way is to create using MM01 with the reference Material. However this is not possible as different material numbers can have different Views.
    Is there a smart way to do this.
    Please let me know Marting...I will Reward all Answers
    Regards
    Marting

    try this sample program in which it will copy one material to another material it will work
    REPORT ZM_MAT_EXT_TO_PLANT
           NO STANDARD PAGE HEADING
           LINE-SIZE 255
           MESSAGE-ID ZI.
    Program     : ZM_MAT_EXT_TO_PLANT                                   *
    Author      : warun kumar todimala P                                              *
    Type        : Extend Material from one plant to another using BDC   *
    Description : The program will use BDC CALL TRANSACTION to extend   *
                   material from one plant to another plant. If error    *
                   occurs, an error session will be created with name    *
                   given on selection screen. So that it can be manually *
                   processed using SM35                                  *
    TCODE used  : MM01 - Create Material                                *
    SAP Request : D51K912730                                            *
    Date        : 13SEP2006                                             *
      C H A N G E   L O G                                                *
      Date  | Req No    | Initial  | Description
    14SEP06  D51K912772             Plant validation from T001W          *
                                    Warehouse view validation            *
    18SEP06  D51K912817             Change for xl file                   *
        Tables Declaration
    TABLES: MARA,  "General Material Data
            MARC,  "Plant Data for Material
            MVKE,  "Sales Data for Material
            MBEW,  "Material Valuation
            MARD,  "Storage Location Data for Material
            MAKT,  "Material Descriptions
            T100,  "Messages
            T130M, "Transaction control parameters: mat. master maintenance
            MLGN.  "Material Data for Each Warehouse Number
    Internal table declaration
    *--Internal table for Sales data for material
    DATA: BEGIN OF INT_MVKE OCCURS 0,
            MATNR LIKE MVKE-MATNR,
            VKORG LIKE MVKE-VKORG,
            VTWEG LIKE MVKE-VTWEG,
            VMSTA LIKE MVKE-VMSTA,
            VMSTD LIKE MVKE-VMSTD,
            DWERK LIKE MVKE-DWERK,
            KONDM LIKE MVKE-KONDM,
            PRODH LIKE MVKE-PRODH,
            MTPOS LIKE MVKE-MTPOS,
          END OF INT_MVKE.
    *--Internal table for material if input file is given
    TYPES: BEGIN OF T_MAT,
            MATNR LIKE MATERIALID-MATNR_EXT,
            SLGORT LIKE MARD-LGORT,
            TLGORT LIKE MARD-LGORT,
           END OF T_MAT.
    TYPES: BEGIN OF T_VALID_MAT,
           MATNR LIKE MATERIALID-MATNR_EXT,
          END OF  T_VALID_MAT.
    DATA: BEGIN OF IT_RMAT OCCURS 0,
            MATNR  LIKE MARA-MATNR,
            TLGORT LIKE MARD-LGORT,
            SLGORT LIKE MARD-LGORT,
          END OF IT_RMAT.
    *--Warehouse data
    DATA: BEGIN OF INT_WAREH OCCURS 0,
            MATNR LIKE MLGN-MATNR,
            LGNUM LIKE MLGN-LGNUM,
            LTKZA LIKE MLGN-LTKZA,
            LTKZE LIKE MLGN-LTKZE,
            LGBKZ LIKE MLGN-LGBKZ,
         END OF INT_WAREH.
    *--Marked for deletion
    TYPES: BEGIN OF T_MAR_DEL,
           MATNR LIKE MARA-MATNR,
           LVORM LIKE MARA-LVORM,
          END OF  T_MAR_DEL.
    *--Range for material FOR input file in
    in internal format
    RANGES: R_MATNR FOR MARA-MATNR.
    *--Internal table for Material Valuation
    DATA: BEGIN OF INT_MBEW OCCURS 0,
            MATNR LIKE MBEW-MATNR,
            VPRSV LIKE MBEW-VPRSV,
            STPRS LIKE MBEW-STPRS,
            BKLAS LIKE MBEW-BKLAS,
            ZPLD1 LIKE MBEW-ZPLD1,
            ZPLD2 LIKE MBEW-ZPLD2,
          END OF INT_MBEW.
    *--Types for inal internal table contains all the data used to extend
    *--the material(s)
    TYPES: BEGIN OF T_FINAL,
            MATNR LIKE MARA-MATNR,
            MTART LIKE MARA-MTART,
            VPSTA LIKE MARA-VPSTA,
            MBRSH LIKE MARA-MBRSH,
            MEINS LIKE MARA-MEINS,
            MATKL LIKE MARA-MATKL,
            GEWEI LIKE MARA-GEWEI,
            RAUBE LIKE MARA-RAUBE,
            SPART LIKE MARA-SPART,
            PRDHA LIKE MARA-PRDHA,
            MAGRV LIKE MARA-MAGRV,
            WERKS LIKE MARC-WERKS,
            PSTAT LIKE MARC-PSTAT,
            PLIFZ LIKE MARC-PLIFZ,
            SSQSS LIKE MARC-SSQSS,
            LADGR LIKE MARC-LADGR,
            SERNP LIKE MARC-SERNP,
            PERIV LIKE MARC-PERIV,
            STAWN LIKE MARC-STAWN,
            HERKL LIKE MARC-HERKL,
            EKGRP LIKE MARC-EKGRP,
            DISMM LIKE MARC-DISMM,
            DISPO LIKE MARC-DISPO,
            DISLS LIKE MARC-DISLS,
            LGPRO LIKE MARC-LGPRO,
            FHORI LIKE MARC-FHORI,
            DZEIT LIKE MARC-DZEIT,
            BWSCL LIKE MARC-BWSCL,
            AWSLS LIKE MARC-AWSLS,
            LGFSB LIKE MARC-LGFSB,
            MAKTX LIKE MAKT-MAKTX,
           TLGORT LIKE MARD-LGORT,
           SLGORT LIKE MARD-LGORT,
            VKORG LIKE MVKE-VKORG,
            VTWEG LIKE MVKE-VTWEG,
            VMSTA LIKE MVKE-VMSTA,
            VMSTD LIKE MVKE-VMSTD,
            DWERK LIKE MVKE-DWERK,
            KONDM LIKE MVKE-KONDM,
            PRODH LIKE MVKE-PRODH,
            MTPOS LIKE MVKE-MTPOS,
            VPRSV LIKE MBEW-VPRSV,
            STPRS LIKE MBEW-STPRS,
            BKLAS LIKE MBEW-BKLAS,
            ZPLD1 LIKE MBEW-ZPLD1,
            ZPLD2 LIKE MBEW-ZPLD2,
            LGNUM LIKE MLGN-LGNUM,
            LTKZA LIKE MLGN-LTKZA,
            LTKZE LIKE MLGN-LTKZE,
            LGBKZ LIKE MLGN-LGBKZ,
        END OF T_FINAL.
    TYPES: BEGIN OF T_LOG,
            MATNR LIKE MATERIALID-MATNR_EXT,
            MTART LIKE MARA-MTART,
            WERKS LIKE MARC-WERKS,
            MSG(480),
            MSGTYP TYPE C,
           END OF T_LOG.
    TYPES: BEGIN OF T_INVALID,
            MATNR LIKE MATERIALID-MATNR_EXT,
            WERKS LIKE MARC-WERKS,
            MSG(100),
           END OF T_INVALID.
    *--Internal to for mateial descriptions
    *DATA: BEGIN OF INT_MAT_DES OCCURS 0,
           MATNR LIKE MAKT-MATNR,
           MAKTX LIKE MAKT-MAKTX,
         END OF INT_MAT_DES.
    DATA: BEGIN OF IT_FINAL1 OCCURS 0,
            MATNR LIKE MATERIALID-MATNR_EXT,
            MTART LIKE MARA-MTART,
            MBRSH LIKE MARA-MBRSH,
            WERKS LIKE MARC-WERKS,
            PSTAT LIKE MARC-PSTAT,
            LGPRO LIKE MARC-LGPRO,
            LGFSB LIKE MARC-LGFSB,
           TLGORT LIKE MARD-LGORT,
           SLGORT LIKE MARD-LGORT,
          END OF IT_FINAL1.
    *--Internal table for Storage Location Data
    DATA : BEGIN OF INT_MARD OCCURS 0,
            MATNR LIKE MARD-MATNR,
            WERKS LIKE MARD-WERKS,
            LGORT LIKE MARD-LGORT,
           END OF INT_MARD.
    *--For Views
    TYPES: BEGIN OF T_XBILDTAB.
            INCLUDE STRUCTURE MBILDTAB.
    TYPES: END   OF T_XBILDTAB.
    *--Internal table for VIEWS
    DATA: IT_XBILDTAB TYPE STANDARD TABLE OF  T_XBILDTAB WITH HEADER LINE.
    *--Final internal table contains all the data used to extend the
    material(s)
    DATA: IT_FINAL  TYPE STANDARD TABLE OF T_FINAL WITH HEADER LINE,
          IT_TPLANT TYPE STANDARD TABLE OF T_FINAL WITH HEADER LINE,
        int_fplant TYPE STANDARD TABLE OF t_final WITH HEADER LINE,
          IT_TOTAL  TYPE STANDARD TABLE OF T_FINAL WITH HEADER LINE,
          WA_FINAL   TYPE T_FINAL,
          WA_TPLANT  TYPE T_FINAL,
          INT_TEST   TYPE STANDARD TABLE OF T_FINAL WITH HEADER LINE,
          WA_T130M   LIKE T130M,
    *--table for bdcdata to store the bdc data
           IT_BDCDATA TYPE STANDARD TABLE OF BDCDATA WITH HEADER LINE,
    *--table for messages come from the 'CALL TRANSACTION'
          IT_MESSTAB  LIKE BDCMSGCOLL OCCURS 0   WITH HEADER LINE,
          IT_SREP     TYPE STANDARD TABLE OF T_LOG WITH HEADER LINE,
          IT_EREP     TYPE STANDARD TABLE OF T_LOG WITH HEADER LINE,
          IT_AVL      TYPE STANDARD TABLE OF T_LOG WITH HEADER LINE,
          IT_ERR      TYPE STANDARD TABLE OF T_LOG WITH HEADER LINE,
          IT_DUPREC   TYPE STANDARD TABLE OF T_MAT WITH HEADER LINE,
          IT_MAT      TYPE STANDARD TABLE OF T_MAT WITH HEADER LINE,
          IT_MAT1     TYPE STANDARD TABLE OF T_MAT WITH HEADER LINE,
          IT_DELREC   TYPE STANDARD TABLE OF T_MAT WITH HEADER LINE,
          IT_MAR_DEL  TYPE STANDARD TABLE OF T_MAR_DEL WITH HEADER LINE,
          IT_DELREC35 TYPE STANDARD TABLE OF T_MAT WITH HEADER LINE,
          IT_VALID_REC TYPE STANDARD TABLE OF T_VALID_MAT WITH HEADER LINE,
          IT_IN_VALID TYPE STANDARD TABLE OF T_VALID_MAT WITH HEADER LINE,
          IT_INVALID  TYPE STANDARD TABLE OF T_INVALID WITH HEADER LINE,
          IT_INVALID1 TYPE STANDARD TABLE OF T_INVALID WITH HEADER LINE,
    *--Standard views
           IT_T133A TYPE STANDARD TABLE OF T133A WITH HEADER LINE,
           IT_T134  TYPE STANDARD TABLE OF  T_XBILDTAB WITH HEADER LINE.
         Global variables declaration
    DATA:
       GV_TRANS_CODE TYPE SY-TCODE VALUE 'MM01',"Tcode
       GV_MTART LIKE MARA-MTART,                "Material type
       GV_MATNR LIKE MATERIALID-MATNR_EXT,      "40 char material
       HOLDDATE LIKE SY-DATUM,                  "Holdate for session
       GV_SES_OPEN,                             "Session open check
       GV_LAST LIKE MBILDTAB-GUIFU,             "View code
       GV_VIEW_CODE LIKE MBILDTAB-GUIFU,        "Function code
       GV_PURCH_VIEW TYPE I,                    "Purch view
       GV_FIRST_VIEW(2) TYPE N,                 "First view
       GV_OKCODE TYPE SY-UCOMM,                 "Ok code
       GV_MSG1(150),                            "Message
       GV_CNTR TYPE I VALUE '1',                "Counter
       GV_VIEW_CNT LIKE SY-TABIX,               "View count
       GV_NXT_VIEW LIKE MBILDTAB-GUIFU,         "Function code
       GV_ERCNT TYPE I,                         "Error records  count
       GV_SCNT  TYPE I,                         "Success records count
       GV_VALIDREC  TYPE I,                     "Valid record count
       GV_DUPREC  TYPE I,                       "Duplicate record count
       GV_AVL   TYPE I,                         "Available records count
       GV_MSG(120),                             "Message
       GV_INREC   TYPE I,                       "Input records count
       GV_MAR_DEL TYPE I,                       "Marked for deletion
       GV_FILE_STR TYPE STRING,                 "Hold file name except 'txt'
       GV_LAST_4_CHARS TYPE STRING,             "To hold '.txt' from inpfile
       GV_TCNT TYPE I,                          "Total record count
       GV_INVALID_REC TYPE I,                   "Invalide record count
       GV_FILE_CRT_Y_OR_NO  TYPE C.             "file created or not
    CONSTANTS
    CONSTANTS:
          TCODE_MM01 LIKE TSTC-TCODE VALUE 'MM01',
          C_UPDATE TYPE C VALUE 'A'.
    S E L E C T - O P T I O N S
    SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(25) TEXT-009.
    SELECTION-SCREEN: POSITION 33.
    PARAMETER  P_WH  AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN: END OF LINE.
    SELECT-OPTIONS   : S_MATNR  FOR MARA-MATNR.
    PARAMETERS       : P_FWERKS LIKE MARC-WERKS OBLIGATORY,
                       P_TWERKS LIKE MARC-WERKS OBLIGATORY.
    SELECTION-SCREEN : END OF BLOCK B1.
    SELECTION-SCREEN : BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(25) TEXT-004.
    SELECTION-SCREEN: POSITION 32.
    *--Input file
    PARAMETERS: P_IFILE LIKE RLGRAP-FILENAME. "input file
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(25) TEXT-005.
    SELECTION-SCREEN: POSITION 32.
    *--Unix output file
    PARAMETERS: P_OFILE LIKE RLGRAP-FILENAME LOWER CASE DEFAULT
                   './sap_out/matextplnt'. "Output file in UNIX
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN: COMMENT 1(25) TEXT-012.
    SELECTION-SCREEN: POSITION 32.
    *--PC file ( used to create the files from internal tables)
    PARAMETERS: P_PCFILE LIKE RLGRAP-FILENAME LOWER CASE OBLIGATORY
                DEFAULT 'C:\'.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN : END OF BLOCK B2.
    SELECTION-SCREEN : BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.
    *--Session Name
    PARAMETERS       : P_GROUP LIKE APQI-GROUPID DEFAULT 'MAT_Extension'.
    *--Mode (like All Screen - A)
    PARAMETERS P_MODE LIKE CTU_PARAMS-DISMODE DEFAULT 'N'.
    SELECTION-SCREEN: END OF BLOCK B3.
    *-            A T   S E L E C T I O N   S C R E E N
    AT SELECTION-SCREEN.
      IF ( P_IFILE = ' ' ) AND ( S_MATNR[] IS INITIAL ).
        MESSAGE E000(ZI) WITH 'Please Enter the Material or Input file'.
      ENDIF.
    *--download the data from pc file
      IF P_IFILE NE ' '.
        PERFORM VALIDATE_IN_FILE.
        PERFORM GET_DATA_FRM_FILE.
      ENDIF.
    Validate selection screen entries
      PERFORM VALIDATE_SEL_SCREEN_ENTRIES.
    *-            A T   S E L E C T I O N   S C R E E N --- Value Request
    *--F4 help for input flie
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_IFILE.
      PERFORM VALUE_REQUEST_FOR_PC_FILE USING P_IFILE.
    *--F4 help for pc file
    *AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PCFILE.
    PERFORM VALUE_REQUEST_FOR_PC_FILE USING P_PCFILE.
    *--F4 help for Unix file
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_OFILE.
      PERFORM VALUE_REQ_FOR_UNIX_FILE USING P_OFILE.
                   T  O  P     O F      P A G E
    TOP-OF-PAGE.
      PERFORM TOP_OF_PAGE.
    S E L E C T - O P T I O N S
    START-OF-SELECTION.
    *--Fecth the data from the Data Base tables
      PERFORM GET_DATA.
    *--Process the above data to create the final internal table
      PERFORM PROCESS_DATA.
    *--Extend the data to plant
      PERFORM EXTEND_DATA_2_PLANT.
    end of selection
    END-OF-SELECTION.
      PERFORM MAT_CONV_FOR_ALL_INT_TABLES.
    *--Success
      DESCRIBE TABLE IT_SREP   LINES  GV_SCNT.
    *--Error
      DESCRIBE TABLE IT_EREP   LINES  GV_ERCNT.
    *--Already existing
      DESCRIBE TABLE IT_AVL    LINES  GV_AVL.
    *--Input
      DESCRIBE TABLE IT_MAT     LINES  GV_INREC.
    *--Valid
      DESCRIBE TABLE IT_FINAL1  LINES  GV_VALIDREC.
    *--Duplicate
      DESCRIBE TABLE IT_DUPREC  LINES  GV_DUPREC.
    *--Marked for deletion
      DESCRIBE TABLE IT_DELREC LINES  GV_MAR_DEL.
    *--Invalid
      DESCRIBE TABLE IT_INVALID LINES  GV_INVALID_REC.
      GV_TCNT =
      GV_ERCNT + GV_SCNT + GV_AVL + GV_INVALID_REC + GV_DUPREC +
      GV_MAR_DEL + GV_VALIDREC + GV_INREC.
      IF  GV_TCNT NE 0.
    *--create output PC files for each internal table
        PERFORM PC_FILES_CREATION.
    *--Create Unix file all internal tables
        PERFORM OUT_UNIX_FILE. "create unix file for output.
    *--Create the report
        PERFORM REPORT_DIS.
    *--Clear the contents
        CLEAR: IT_SREP,
               IT_EREP,
               IT_AVL,
               IT_MAT,
               IT_FINAL1,
               IT_DUPREC,
               IT_DELREC,
               IT_INVALID.
        REFRESH:
               IT_SREP,
               IT_EREP,
               IT_AVL,
               IT_MAT,
               IT_FINAL1,
               IT_DUPREC,
               IT_DELREC,
               IT_INVALID.
      ELSE.
        FORMAT COLOR 6 INTENSIFIED ON.
        WRITE:/ 'No Data found for the Selection Criteria'(007).
        FORMAT RESET.
      ENDIF.
    *&      Form  get_data
    *--Fetch the data from required data base tables
    FORM GET_DATA .
      DATA: LV_TABIX LIKE SY-TABIX.
    **--Material type is in BAPI structures filling.
      IF P_IFILE NE ' '.
        PERFORM CONVERT_MAT_FRM_FILE.
      ENDIF.
    *--Ranges for the plants
      RANGES:R_WERKS FOR MARC-WERKS.
      R_WERKS-SIGN = 'I'.
      R_WERKS-OPTION = 'EQ'.
      R_WERKS-LOW = P_FWERKS.
      APPEND R_WERKS.
      R_WERKS-SIGN = 'I'.
      R_WERKS-OPTION = 'EQ'.
      R_WERKS-LOW = P_TWERKS.
      APPEND R_WERKS.
      CLEAR R_WERKS.
    *--Fetch the data for the given selection from the DB table MARA & MARC
    (General Material Data)
      IF P_IFILE NE ' '.
        SELECT R~MATNR "R = MARA
               R~VPSTA
               R~MTART
               R~MATKL
               R~MBRSH
               R~MEINS
               R~GEWEI
               R~RAUBE
               R~SPART
               R~PRDHA
               R~MAGRV
               C~MATNR "C = MARC
               C~WERKS
               C~PSTAT
               C~PLIFZ
               C~SSQSS
               C~LADGR
               C~SERNP
               C~PERIV
               C~STAWN
               C~HERKL
               C~EKGRP
               C~DISMM
               C~DISPO
               C~DISLS
               C~LGPRO
               C~FHORI
               C~DZEIT
               C~BWSCL
               C~AWSLS
               C~LGFSB
          INTO CORRESPONDING FIELDS OF TABLE IT_TOTAL
          FROM  ( MARA AS R
                   INNER JOIN MARC AS C ON CMATNR = RMATNR )
          WHERE R~MATNR IN R_MATNR  AND
             R~MTART IN S_MTART  AND
                C~WERKS IN R_WERKS .
        LOOP AT IT_TOTAL.
          LV_TABIX = SY-TABIX.
          READ TABLE IT_RMAT WITH KEY MATNR = IT_TOTAL-MATNR.
          IF SY-SUBRC =  0.
            IT_TOTAL-TLGORT = IT_RMAT-TLGORT.
            IT_TOTAL-SLGORT = IT_RMAT-SLGORT.
            MODIFY IT_TOTAL INDEX LV_TABIX.
          ENDIF.
        ENDLOOP.
      ELSE.
        SELECT R~MATNR "R = MARA
               R~VPSTA
               R~MTART
               R~MATKL
               R~MBRSH
               R~MEINS
               R~GEWEI
               R~RAUBE
               R~SPART
               R~PRDHA
               R~MAGRV
               C~MATNR "C = MARC
               C~WERKS
               C~PSTAT
               C~PLIFZ
               C~SSQSS
               C~LADGR
               C~SERNP
               C~PERIV
               C~STAWN
               C~HERKL
               C~EKGRP
               C~DISMM
               C~DISPO
               C~DISLS
               C~LGPRO
               C~FHORI
               C~DZEIT
               C~BWSCL
               C~AWSLS
               C~LGFSB
          INTO CORRESPONDING FIELDS OF TABLE IT_TOTAL
          FROM  ( MARA AS R
                   INNER JOIN MARC AS C ON CMATNR = RMATNR )
          WHERE R~MATNR IN S_MATNR  AND
             R~MTART IN S_MTART  AND
                C~WERKS IN R_WERKS .
      ENDIF.  "  if P_IFILE ne ' '.
      IF NOT IT_TOTAL[] IS INITIAL.
        SORT IT_TOTAL BY WERKS.
        IT_FINAL[]  = IT_TOTAL[].
        IT_TPLANT[] = IT_TOTAL[].
        SORT IT_FINAL  BY WERKS.
        SORT IT_TPLANT BY WERKS.
    *Logic 1
    *--Delete all entries having the plant value equal to 'to plant' value
    *--So, IT_FINAL have only from plant data. But in which some data
    *--already in 'to plant'
        DELETE IT_FINAL WHERE WERKS = P_TWERKS.
    *Logic 2
    *--Delete all entries having the plant value equal to 'from plant' value
        DELETE IT_TPLANT WHERE WERKS = P_FWERKS.
    IF NOT IT_FINAL[] IS INITIAL.
        SORT IT_FINAL BY MATNR WERKS.
        SORT IT_TPLANT BY MATNR WERKS.
    *Logic 3
    *--Delete all the material from the 'IT_FINAL', which is already
    extended to 'to plnat'.
    In Logic 1 and Logic 2, just deleted the materials having the plant
    value equal same. Here 'IT_FINAL' contains materials of 'from plant'
    only,because 'to plant' materials have been deleted in the  'Logic1'.
    But it contains the materials already extended to 'to plant', So we
    Need to delete those. And it is done in the below Logic. From now
    'IT_FINAL table contains materials that are to be extended.
    (Already extended materials have been deleted)
        LOOP AT IT_TPLANT.
          READ TABLE IT_FINAL
               WITH KEY MATNR = IT_TPLANT-MATNR
                        WERKS = P_FWERKS
                        BINARY SEARCH.
          LV_TABIX = SY-TABIX.
          IF SY-SUBRC EQ 0.
    *--continue the process. This materil to be extend for other views
            IF IT_FINAL-PSTAT = IT_TPLANT-PSTAT.
              IT_AVL-MATNR   = IT_TPLANT-MATNR.
              IT_AVL-WERKS   = P_TWERKS.
              IT_AVL-MTART   = IT_TPLANT-MTART.
              IT_AVL-MSG     = 'Material already in plant'.
              IT_AVL-MSGTYP = 'E'.
              APPEND IT_AVL.
              CLEAR IT_AVL.
              DELETE IT_FINAL INDEX LV_TABIX.
              CLEAR IT_FINAL.
    *--If the material already exist in the target plant, check for the
    *--warehouse view. If only warehoues view does not exist and checked
    warehouse not required, then consider that the record is exist
    in target plant
            ELSEIF IT_FINAL-PSTAT CA 'S' AND IT_TPLANT-PSTAT NA 'S'.
    If warehouse view does not require, then no need to copy again
              IF P_WH = 'X'.
                IT_AVL-MATNR   = IT_TPLANT-MATNR.
                IT_AVL-WERKS   = P_TWERKS.
                IT_AVL-MTART   = IT_TPLANT-MTART.
                IT_AVL-MSG     = 'Material already in plant'.
                IT_AVL-MSGTYP = 'E'.
                APPEND IT_AVL.
                CLEAR IT_AVL.
                DELETE IT_FINAL INDEX LV_TABIX.
                CLEAR IT_FINAL.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
    *--Logic 4 ( Get the data from MARD, MVKE, MBEW and MAKT)
      IF NOT IT_FINAL[] IS INITIAL.
    *--Get the data from DB tabel MVKE (Sales Data for Material)
    for all the materials in 'IT_FINAL'.
        SELECT
             MATNR
             VKORG
             VTWEG
             VMSTA
             VMSTD
             DWERK
             KONDM
             PRODH
             MTPOS
             FROM  MVKE
             INTO  TABLE INT_MVKE
             FOR   ALL ENTRIES IN IT_FINAL
             WHERE MATNR = IT_FINAL-MATNR.
    *--Get the data from DB table MBEW (Material Valuation)
    for all the materials in 'IT_FINAL'.
        SELECT
            MATNR
            VPRSV
            STPRS
            BKLAS
            ZPLD1
            ZPLD2
            FROM MBEW
            INTO TABLE INT_MBEW
            FOR ALL ENTRIES IN IT_FINAL
            WHERE MATNR = IT_FINAL-MATNR AND
                  BWKEY = IT_FINAL-WERKS.
    Start of change by Hema on 09/21/06
    Since basic view is not required to copy, no need description also
    *--Get the data from DB table MAKT (Material Descriptions)
    for all the materials in 'IT_FINAL'.
       SELECT MATNR
              MAKTX
              FROM MAKT
              INTO CORRESPONDING FIELDS OF TABLE INT_MAT_DES
              FOR ALL ENTRIES IN IT_FINAL
              WHERE MATNR =  IT_FINAL-MATNR AND
                    SPRAS =  SY-LANGU.
    End of change by Hema on 09/21/06
    *--Get the warehouse data.
        SELECT MATNR
               LTKZA
               LTKZE
               LGBKZ
               INTO CORRESPONDING FIELDS OF TABLE INT_WAREH
               FROM MLGN
               FOR ALL ENTRIES IN IT_FINAL
               WHERE MATNR = IT_FINAL-MATNR.
        SELECT  SINGLE * FROM T130M
                INTO WA_T130M
                WHERE TCODE = GV_TRANS_CODE.
    *--Sort the internal table by material
        SORT INT_MARD     BY MATNR WERKS.
        SORT INT_MVKE     BY MATNR.
        SORT INT_MBEW     BY MATNR.
       SORT INT_MAT_DES  BY MATNR.
        SORT INT_WAREH     BY MATNR.
      ENDIF.
    ENDFORM.                    " get_data
    *&      Form  process_data
    *--Fill the final internal with data from all the internal tables
    FORM PROCESS_DATA .
      DATA: LV_LINES TYPE I.
    *--Logic 5: Fill the 'IT_FINAL' table from the 'int_mard', 'int_mvke'
              'int_mat_des' and int_mbew' as follows.
      LOOP AT IT_FINAL.
    *--Copy Target storage locaction to Prod.Stor.Loc and stor.Loc.for EP
        IT_FINAL-LGPRO = IT_FINAL-TLGORT.
        IT_FINAL-LGFSB = IT_FINAL-TLGORT.
        READ TABLE INT_MVKE WITH KEY MATNR = IT_FINAL-MATNR
                                     BINARY SEARCH.
        IF SY-SUBRC EQ 0.
          IT_FINAL-VKORG = INT_MVKE-VKORG.
          IT_FINAL-VTWEG = INT_MVKE-VTWEG.
          IT_FINAL-VMSTA = INT_MVKE-VMSTA.
          IT_FINAL-VMSTD = INT_MVKE-VMSTD.
          IT_FINAL-DWERK = INT_MVKE-DWERK.
          IT_FINAL-KONDM = INT_MVKE-KONDM.
          IT_FINAL-PRODH = INT_MVKE-PRODH.
          IT_FINAL-MTPOS = INT_MVKE-MTPOS.
        ENDIF.
       READ TABLE INT_MAT_DES WITH KEY MATNR = IT_FINAL-MATNR
                                    BINARY SEARCH.
       IF SY-SUBRC EQ 0.
         IT_FINAL-MAKTX = INT_MAT_DES-MAKTX.
       ENDIF.
        READ TABLE INT_MBEW WITH KEY MATNR = IT_FINAL-MATNR
                                     BINARY SEARCH.
        IF SY-SUBRC EQ 0.
          IT_FINAL-VPRSV = INT_MBEW-VPRSV.
          IT_FINAL-STPRS = INT_MBEW-STPRS.
          IT_FINAL-BKLAS = INT_MBEW-BKLAS.
          IT_FINAL-ZPLD1 = INT_MBEW-ZPLD1.
          IT_FINAL-ZPLD2 = INT_MBEW-ZPLD2.
        ENDIF.
        READ TABLE INT_WAREH WITH KEY MATNR = IT_FINAL-MATNR
                                BINARY SEARCH.
        IF SY-SUBRC EQ 0.
          IT_FINAL-LGNUM = INT_WAREH-LGNUM.
          IT_FINAL-LTKZA = INT_WAREH-LTKZA.
          IT_FINAL-LTKZE = INT_WAREH-LTKZE.
          IT_FINAL-LGBKZ = INT_WAREH-LGBKZ.
        ENDIF.
        MODIFY IT_FINAL
               TRANSPORTING
                            VKORG
                            VTWEG
                            VMSTA
                            VMSTD
                            LGPRO
                            LGFSB
                            DWERK
                            KONDM
                            PRODH
                            MTPOS
                            MAKTX
                            VPRSV
                            STPRS
                            BKLAS
                            ZPLD1
                            ZPLD2
                            LGNUM
                            LTKZA
                            LTKZE
                            LGBKZ.
      ENDLOOP.
    ENDFORM.                    " process_data
    *&      Form  value_request_for_pc_file
    *--F4 help for the file names.
    FORM VALUE_REQUEST_FOR_PC_FILE  USING  P_FILE.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          PROGRAM_NAME  = SY-CPROG
          DYNPRO_NUMBER = SY-DYNNR
          FIELD_NAME    = ' '
        IMPORTING
          FILE_NAME     = P_FILE.
    ENDFORM.                    " value_request_for_pc_file
    *&      Form  extend_data_2_plant
    *--Use the final internal table to extend the material from one plant 2
    *--another using the following logic which involved in 'four performs'
    FORM EXTEND_DATA_2_PLANT .
      DATA: BEGIN OF INT_VIEWS OCCURS 0.
              INCLUDE STRUCTURE MBILDTAB.
      DATA  END OF INT_VIEWS.
      IF NOT IT_FINAL[] IS INITIAL.
        LOOP AT IT_FINAL.
          GV_MTART = IT_FINAL-MTART.
    *--Get the 32 char Lenth Material number
         PERFORM MATERIAL_CON USING IT_FINAL-MATNR.
          CALL FUNCTION 'CONVERSION_EXIT_MATN2_OUTPUT'
            EXPORTING
              INPUT  = IT_FINAL-MATNR
            IMPORTING
              OUTPUT = GV_MATNR.
    *--Get the views for the current material
          PERFORM GET_THE_VIEWS_4_MAT.
    *--Fill bdctable for all view available in 'copy from material'
          PERFORM CREATE_DATA_FOR_VIEWS.
    *--Use the above structures and call the 'MM01' to extend the material
          PERFORM EXTEND_MAT_2_PLANT.
          CLEAR: GV_FIRST_VIEW, GV_NXT_VIEW,  GV_MATNR.
        ENDLOOP.
    *--close the session if open
        IF GV_SES_OPEN EQ 'X'.
          PERFORM CLOSE_GRP.
          SKIP 1.
          WRITE:/5 'Session Created', 40 P_GROUP COLOR 4.
        ENDIF.
      ELSE.
        SKIP 2.
        WRITE:/5 TEXT-010 COLOR 4.
       'No Data exists for the given selection'.
      ENDIF.
      IF NOT IT_EREP[] IS INITIAL.
        LOOP AT IT_EREP.
          CALL FUNCTION 'CONVERSION_EXIT_MATN2_OUTPUT'
            EXPORTING
              INPUT  = IT_EREP-MATNR
            IMPORTING
              OUTPUT = IT_EREP-MATNR.
          IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ELSE.
            MODIFY IT_EREP.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " extend_data_2_plant
    *&      Form  get_the_views_4_mat
    *--Get the views for current material
    FORM GET_THE_VIEWS_4_MAT .
      DATA: LV_BILDSEQUENZ   TYPE T133A-BILDS,
            LV_PSTAT LIKE T134-PSTAT.
      CLEAR: T130M,
             LV_BILDSEQUENZ,
             IT_XBILDTAB.
      REFRESH IT_XBILDTAB.
    *--Get the Build sequece for particular Material type
      CALL FUNCTION 'BILDSEQUENZ_IDENTIFY'
        EXPORTING
         BRANCHE                = IT_FINAL-MBRSH
         MATERIALART            = IT_FINAL-MTART
         TCODE_REF              = WA_T130M-TRREF
         KZRFB                  = ' '
       IMPORTING
         BILDSEQUENZ            = LV_BILDSEQUENZ
         KZ_BILDS_CHANGED       =
       EXCEPTIONS
         WRONG_CALL             = 1
         NOT_FOUND              = 2
         OTHERS                 = 3
    *--Get the actual number views for the current material will stored
    *--in the internal table 'IT_XBILDTAB'.
      IF SY-SUBRC = 0.
        CALL FUNCTION 'SELECTION_VIEWS_FIND'
          EXPORTING
            BILDSEQUENZ     = LV_BILDSEQUENZ
          PFLEGESTATUS    = IT_FINAL-VPSTA
            PFLEGESTATUS    = IT_FINAL-PSTAT
          TABLES
            BILDTAB         = IT_XBILDTAB
          EXCEPTIONS
            CALL_WRONG      = 1
            EMPTY_SELECTION = 2
            OTHERS          = 3.
      ENDIF.
    *--Build actual table for view sequence
      SELECT SINGLE PSTAT FROM T134
                    INTO LV_PSTAT
                    WHERE MTART = GV_MTART.
      CALL FUNCTION 'SELECTION_VIEWS_FIND'
        EXPORTING
          BILDSEQUENZ     = '01'
          PFLEGESTATUS    = LV_PSTAT
        TABLES
          BILDTAB         = IT_T134
        EXCEPTIONS
          CALL_WRONG      = 1
          EMPTY_SELECTION = 2
          OTHERS          = 3.
      IF NOT IT_XBILDTAB[] IS INITIAL.
    *--Delete the Basic(SP01),
    *--Classification(SP02)
    *--Sales: Sales Organization Data(SP03)
    *--Sales: General/Plant Data(SP04)
    *--Sales Text(SP05)
    *--Production Resources and Tools(SP12) which are not required
        LOOP AT IT_XBILDTAB.
          CASE IT_XBILDTAB-GUIFU.
            WHEN 'SP01'.
              DELETE IT_XBILDTAB." WITH KEY GUIFU = 'SP01'.
            WHEN 'SP02'.
              DELETE IT_XBILDTAB." WITH KEY GUIFU = 'SP02'.
            WHEN 'SP03'.
              DELETE IT_XBILDTAB." WITH KEY GUIFU = 'SP03'.
            WHEN 'SP04'.
              DELETE IT_XBILDTAB." WITH KEY GUIFU = 'SP04'.
            WHEN 'SP05'.
              DELETE IT_XBILDTAB." WITH KEY GUIFU = 'SP05'.
            WHEN 'SP12'.
              DELETE IT_XBILDTAB." WITH KEY GUIFU = 'SP12'.
            WHEN 'SP14'.
    *--If 'do not copy warehouse' is ticked, delete the view from table.
    *--problem is, if that view is last view then Save problem will
    *--come in the BDC.
              IF P_WH EQ 'X'.
                DELETE IT_XBILDTAB.
              ENDIF.
          ENDCASE.
        ENDLOOP.
      ENDIF.
    *--Get the first view of the material to select that view from Views
    *-- List of the MM01
      LOOP AT IT_XBILDTAB.
        READ TABLE IT_T134 WITH KEY GUIFU = IT_XBILDTAB-GUIFU.
        IF SY-SUBRC EQ 0.
          GV_FIRST_VIEW = SY-TABIX.
          GV_NXT_VIEW   = IT_XBILDTAB-GUIFU.
          EXIT.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " get_the_views_4_mat
    *&      Form  CREATE_DATA_FOR_VIEWS
          text
    -->  p1        text
    <--  p2        text
    FORM CREATE_DATA_FOR_VIEWS .
      DATA: LV_LAST_VIEW_NO TYPE I.
      DESCRIBE TABLE IT_XBILDTAB LINES LV_LAST_VIEW_NO.
      LOOP AT IT_XBILDTAB.
        IF LV_LAST_VIEW_NO EQ SY-TABIX.
          MOVE IT_XBILDTAB-GUIFU TO GV_LAST.
        ENDIF.
      ENDLOOP.
    *--Hit the Basic view in the 'View selection Pop up', i.e very beginning
    *--in Tcode: MM01. So that, only views which already in (Copy from)
    *--Material can extend to the Target Plant. Int.,table IT_XBILDTAB
    *--contains these views. Here flexibilty is that, not all views are
    *--extended, whether the 'copy from material' contains or not.
    *--i.e Dynamic selection of views.
    *--So in order to ease the Dynamic selection (of views), first
    *--Hit the Basic view in the 'View selection Pop up'.
      PERFORM FILL_BASIC_VIEW.
      PERFORM FILL_ORG_DATA USING GV_VIEW_CODE.
      LOOP AT IT_XBILDTAB.
        MOVE IT_XBILDTAB-GUIFU TO GV_VIEW_CODE.
        CASE IT_XBILDTAB-GUIFU.
         --Purchasing view
          WHEN 'SP06'.
            PERFORM FILL_PURCH_VIEW USING GV_VIEW_CODE.
         --Purchase Order Text View
          WHEN 'SP07'.
            PERFORM FILL_PURCH_ORD_TEXT USING GV_VIEW_CODE.
         --MRP1 View
          WHEN 'SP08'.
            PERFORM FILL_MRP1_VIEW USING GV_VIEW_CODE.
         --MRP2 View
          WHEN 'SP09'.
            PERFORM FILL_MRP2_VIEW USING GV_VIEW_CODE.
         --Forecast View
          WHEN 'SP10'.
            PERFORM FILL_FORECAST_VIEW USING GV_VIEW_CODE.
          WHEN 'SP11'.
            IF  GV_FLG NE 'Y'.
            PERFORM FILL_WORKSCHED_VIEW USING GV_VIEW_CODE.
            ENDIF.
         --General Plant Data / Storage View
          WHEN 'SP13'.
            PERFORM FILL_PLANT_STRGE_VIEW USING GV_VIEW_CODE.
         --Warehouse Management View
          WHEN 'SP14'.
            IF P_WH <> 'X'.
       -- If the 'do not warehouse' check box unchecked on sele screen
              PERFORM FILL_WAREHOUSE_VIEW USING GV_VIEW_CODE.
            ENDIF.
         --Quality Management View
          WHEN 'SP15'.
            PERFORM FILL_QUALITY_VIEW USING GV_VIEW_CODE.
         -- Accounting View
          WHEN 'SP16'.
            PERFORM FILL_ACCOUNTING_VIEW USING GV_VIEW_CODE.
         --Costing View
          WHEN 'SP17'.
            PERFORM FILL_COSTING_VIEW USING GV_VIEW_CODE.
         --Plant/Storage Location Stock View
          WHEN 'SP18'.
            PERFORM FILL_PLANT_ST_LOC_STK_VIEW USING GV_VIEW_CODE.
        ENDCASE.
        CLEAR GV_OKCODE.
      ENDLOOP.
    ENDFORM.                    " CREATE_DATA_FOR_VIEWS
    *&      Form  fill_basic_view
          text
    -->  p1        text
    <--  p2        text
    FORM FILL_BASIC_VIEW .
      DATA FIELD_STR(40).
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0060'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'RMMG1-MATNR'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'RMMG1-MATNR'
                                    GV_MATNR."nt_final-matnr.
      PERFORM BDC_FIELD       USING 'RMMG1_REF-MATNR'
                                     GV_MATNR."IT_FINAL-matnr.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0070'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'MSICHTAUSW-DYTXT(01)'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '=ENTR'.
      CONCATENATE 'MSICHTAUSW-KZSEL(' GV_FIRST_VIEW ')' INTO FIELD_STR.
      PERFORM BDC_FIELD       USING FIELD_STR 'X'.
    ENDFORM.                    " fill_basic_view
    *&      Form  fill_purch_view
    Purchasing view
    FORM FILL_ORG_DATA USING GV_VIEW_CODE.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0080'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'RMMG1_REF-WERKS'.
      PERFORM BDC_FIELD       USING 'RMMG1-WERKS'
                                     P_TWERKS.
      PERFORM BDC_FIELD       USING 'RMMG1_REF-WERKS'
                                      P_FWERKS.
      IF GV_NXT_VIEW EQ 'SP08'.
        PERFORM BDC_FIELD       USING 'RMMG1-LGORT'
                                      IT_FINAL-TLGORT.
        PERFORM BDC_FIELD       USING 'RMMG1_REF-LGORT'
                                      IT_FINAL-SLGORT.
      ENDIF.
    ENDFORM.                    " fill_org_data
    *&      Form  fill_purch_ord_text
    Purchase order text
    FORM FILL_PURCH_ORD_TEXT USING GV_VIEW_CODE.
      CONCATENATE '=' GV_VIEW_CODE INTO GV_OKCODE.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '=SP07'.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '3050'.
      IF GV_VIEW_CODE EQ GV_LAST.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=BU'.
      ENDIF.
    ENDFORM.                    " fill_purch_ord_text
    *&      Form  fill_MRP1_view
    MRP1
    FORM FILL_MRP1_VIEW USING GV_VIEW_CODE.
      CONCATENATE '=' GV_VIEW_CODE INTO GV_OKCODE.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '=SP08'.
      IF GV_NXT_VIEW EQ 'SP06'.
        PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0081'.
        PERFORM BDC_FIELD       USING 'RMMG1-LGORT'
                                       IT_FINAL-TLGORT.
        PERFORM BDC_FIELD       USING 'RMMG1_REF-LGORT'
                                       IT_FINAL-SLGORT.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
        CLEAR GV_NXT_VIEW.
      ENDIF.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '3006'.
      PERFORM BDC_FIELD       USING 'MARC-LGPRO'
                                    IT_FINAL-LGPRO.
      PERFORM BDC_FIELD       USING 'MARC-LGFSB'
                                    IT_FINAL-LGFSB.
      IF GV_VIEW_COD

  • Not allow order unit in INFO record if it is not in material master

    Hello there!
    In standar SAP any user can introduce any order unit in the info record, even if it is not maintained in the material master alternative units of meassure. We need to block this...
    The conversion factor is not a problem for us, as we can set it only for display in the customizing, so that the systems brings it automatically from material master
    The idea is to allow as order units only those units of meassure that exist in material master.
    We have been checking if it is possible, but no success...
    Any idea on how to get it? Error messages, user exists, or so on...
    Thanks!!
    César

    Hey vmendoza7785,
    Congratulations on getting your new iPhone. I'm sure it is frustrating not being able to do everything you want with it. Let's see if we can get your backup started.
    If you are having an issue with being unable to make a backup of your iPhone with iTunes, I would suggest that you troubleshoot using the steps in this article - 
    If you can't back up or restore your iPhone, iPad, or iPod using iTunes - Apple Support
    Thanks for using Apple Support Communities.
    Be well,
    Brett L 

Maybe you are looking for

  • Display All Marked / Flagged for Follow Up Emails Separately

    Display All Marked / Flagged for Follow Up Emails Separately I was wondering, is there actually a way to display flagged emails in some sort of folder or separate view at least, as it is common within desktop mail applications and any other user inte

  • System Freezes in 10.4.9

    I have an eMac 1.25Ghz with 1GB RAM, running 10.4.9. It just started freezing lately, and it seems to be getting worse. The only way to restart is to hold the power button. I actually got it to freeze while the activity monitor was on, and no unsusal

  • Communication Channel Stop and Start

    Hello everyone, We are using XI along with MQ for queing messages to our 3rd party logistics. Due to some issues happened in the past, it is decided to stop and restart the MQ channels every weekend. Now the problem is, when the MQ is down, some of t

  • Validating a xml aggainst a schema

    Hi Everyone, Can you please let me know of any easy procedure to validate an xml against a schema in BPEL? I tried many things but am still stuck up. Thanks, Mannu

  • Related Call_form built in

    Hi , I am calling one form from another. The second form having horizantal and verticsl toll bars When i am calling form is opening but horizantal and vertical bars are not dispalying Plese do need ful help regards Pradeep