Creating multi counter plan using LSMW

Hi,
I am trying to create multi counter plan (transaction IP43) using LSMW. I am using direct input object 0460 for creating it. Object has IBIPMPLA structure as header. How can i pass multi counter data in it ? Problem is line item level values like 'Maintenance cycle' (ZYKL1) are at header level structure IBIPMPLA.
Anyone has cretaed multi counter using this object, please help me with it.
Thanks,

Hi,
creating multi counter plan using LSMW
Try this link,
http://www.sapfans.com/forums/viewtopic.php?f=7&t=217834&p=1059434
It will helps to you.
Regards,
Sekhar

Similar Messages

  • Multi counter plan schduling start date

    Dear Experts,
    Anyone can clarify the following points to provide proper support to client.
    1. we have created multi counter plan with cycle set contains of different target counter readings with logical condition OR.
    2. Now users are recording the counters via measuring documents.
    3. we are mannually scheduling the above M.Plan. System is deriving the order start date on its own. we want to know the basis behind deriving the order start date? userrs wants starting date on its own, can system will support with ant exit?
    4. what is the significance of annual estimate reading in the measuring point? how it help to derive the planned start date of M.Order?
    5. users also wants that, system should check measuring documents on its own while creating measuring documents and should result the order if it crosses the limit of the cycle set mentioned in the M.Plan. Is it possible to support the scenario?
    Thanks in Advance,
    Krishnamurthy

    Krishnamurthy,
    3) Do a manual call of the Maintenance plan, this would be the easiest way, instead of using exits
    4) For performance based MP,The [calculated planned date|http://help.sap.com/erp2005_ehp_04/helpdata/EN/3c/abb1ec413911d1893d0000e8323c4f/frameset.htm] depends on the counter reading at the time of planning, and the estimated annual performance that has been defined for the counter.Hence it is important that you enter measurement readings for the counter,e even-though the reading has not changed.
    5) With respect to your last question, That functionality is accomplished through Condition based maintenance functionality. You will have to use the user exit to generate a order when the reading falls outside pre-determined values.
    Regards
    Narasimhan

  • Multi-Counter Plan with multiple Equipments

    Hello,
    We would like to track maintenance costs at Equipment level.  In multi-counter maintenance plan, is there a way to enter multiple equipments in one mainteance plan?
    Thanks a lot,
    Venu

    Dear Venu,
    In multi counter plan, only one equipment may be assigned, as correctly observed. However, you may assign the same equipment with different task list, depending on the cycle set, so that maint order is generated with required operations applicable for that cycle.
    Eg: Cycle set 1   100Hrs/1month
                          2    500Hrs/3Month
                          3    1000Hrs/6 Month
    Create task lists as per above cycle sets and for each cycle set assign the same equipment, but with different task lists.
    This reduces the number of maintenance plans for a given equipment. This is particularly useful for vehicle management, where the running KM and time are the common counters.
    James Prabaharan

  • Which FM to use while creating a Profit Center using LSMW BAPI

    Which FM to use while creating a Profit Center using LSMW using BAPI: BUS0015

    Hi,
    For creating Profit centre using LSMW bapi method.
    You need to give this values in the 1st step of LSMW.
    Business Object       BUS0015
    Method                    CREATE                                    Create
    Message Type         PROFITCENTER_CREATE          Create profit center
    Basic Type              PROFITCENTER_CREATE01      Create Profit Center
    In We20 port creation use process code as BAPI
    Regards,
    Shan

  • Create Purchase info record using LSMW idoc method

    Hello Friends,
    I am trying to update Purchase Info records using LSMW Standard program RM06IBI0.
    But it is not updating the condition price details and scale Quantity.
    For that the  form  suggessted LSMW IDOC method. with : Message Type         COND_A / COND_A02.
    But i dont know is the info record created earlier to this step or else we can create both using this method
    at a time ?  Does anybody please suggest.
    ( Actually Purchase Info record created using transaction  ME11 ).
    Regards,
    Phaneendra

    you first create the info record and subsequently you load the conditions.
    become familiar with the condition tables and its key first. Check How table A017 and A018 are maintained.
    Intresting is the field VAKEY which is actually the link to your info record.
    This is a combination of vendor, material, purchasing org, plant , and info record indicator.
    data:  begin of ZZVARKEYA,
            ZLIFNR like LFM1-LIFNR,
            ZMATNR like MARc-MATNR,
            ZEKORG like LFM1-EKORG,
            ZWERKS like MARC-WERKS,
            ZINFTYP like EINE-ESOKZ,
            end of zzvarkeyA.

  • Can i create Multi Provider without using Cube

    Hi,Can i create Multi Provider for ODS and Infoobject with using any Cube and
    Can i create Multi Provider for Infoset and Infoobject.
    Please give me the solution.
    Thanks in Advance.
    Regards

    Hi,
    In BW < 7.0, you can create multiproviders using:
    - and/or InfoCubes
    - and/or ODS
    - and/or InfoSets
    - and/or InfoObjects
    You can also create InfoSets using:
    - and/or ODS
    - and/or InfoObjects
    In BW 7.0, you can add the InfoCubes in the infosets.
    Remind that the multiprovider is an union, the infoset is a join.
    Regards
    Laurent

  • How to create multi instance monitoring using VSAE

    i have a class and it has multiple instances which inturn has data about each and every instance as performance logs etc
    i need to get the data about each every instance and add some property bag data appropraitely.
    how can i achieve this, how can i create multi instance monitoring in VSAE  and how to create rules for multi instance.
    SCOM Version:SCOM 2012 R2
    Thanks & Regards, Suresh Gaddam

    Hi 
    the discovery of the class will populate the class object property's and discovery can discovery multi instance of class, make sure there is a key property for class.
    once you target a rule or monitor a workflow will be create for each instance, as the rule target to the class you can pass class instance and host class property's as parameters.
    for examples check below link 
    http://channel9.msdn.com/Series/System-Center-2012-R2-Operations-Manager-Management-Packs/-Mod7
    regards
    sridhar v

  • How do I create multi colored boxes using CSS3

    OS - Windows 7 using DW Cs5.5
    I need to create a screen with lots of equally sized colored boxes with text colours that will be visible easily within them.
    I have a class set up as follows:
    .yellowbox {
        font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
        font-size: small;
        color: #F00;
         background-color: #FC3;
        text-align: center;
        vertical-align: middle;
        margin: 4px;
        padding: 4px;
        clear: none;
        float: left;
        height: 10em;
        width: 30%;
        position: relative;
        border: thick solid #F00;
    This displays a box that is yellow with a red border.
    With a set of 9 divs of this class, I get 9 boxes arranged as a 3x3 grid in a 960px wide container.
    How do I modify the CSS so that the background color changes with each box, and the text color is always in a color that is readable?

    First change the CSS as follows
    .box {
        font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
        font-size: small;
        color: #F00;
        text-align: center;
        vertical-align: middle;
        margin: 4px;
        padding: 4px;
        clear: none;
        float: left;
        height: 10em;
        width: 30%;
        position: relative;
        border: thick solid #F00;
    .yellow {
       background-color: #FC3;
    .blue {
       background-color: blue;
    Then use the following markup
    <div class="box yellow">
    or
    <div class="box blue">

  • Cycle sets in Counter plan

    How is it possible to create two cycle sets in one plan. I create one counter plan with one cycle set and save. Plan no is generated. Then how can i create a second cycle set for same plan no as the system is designed for Internal numbering of plan.
    Please explain me the real use of cycle set in multi counter plan. where it is used and when . for what purpose and steps on how to create two cycle sets for one multiple counter plan.
    Thanks in advance
    Murad shaikh

    Hi ,
    Check your config setting as given below
    Plant Maintenance and Customer Service> Maintenance Plans, Work Centers, Task Lists and PRTs> Maintenance Plans> Configure Special Functions for Maintenance Planning.
    The check box should be ticked.
    This allows the maintenance of multiple cycle sets in one plan. Thus you can define different cycle sets, and thus cycles, for calculating the dates within a plan. You can use the assignment between cycle sets and the maintenance item to control that only certain maintenance items generate a call object for certain dates. In the simplest case, a cycle set such as A - B - A - B can be defined. "A" leads to a small inspection and "B" leads to a big inspection.
    Also check below link
    http://help.sap.com/saphelp_di471/helpdata/EN/c9/fccf28f79611d4961300a0c93029cf/content.htm

  • SAP Head Count Planning

    Dear All,
    i had already implemented SAP Personnel Cost Planning for Employees using the basic pay method , now i am embarking for the head count planning using the organizational objects.
    Please if anyone can guide how monetary effect can be seen in SAP PCP if we do quota planning (1019) and planning of personnel cost (1015) , and when we do data collection in PCP which method should i choose and what cost item should i create.
    Thanking you all in advance
    best regards,
    samad farooq

    if you are speaking of the Start of the year manpower planning hiring .....
    1. you need to first create planning types & periods
       (SPRO->PM->OM-Infotype settings-> Quota planning)
    2. go to PP01 and select the Org unit
        create the infotype Quota planning.
    3. here you can select the Jobs that you want to plan for.
        (Quota planning as per defined by sap is Planning for Jobs to be created under org units.)
    4. The same can be created in planned status and then be approved.
    5. Also you may need to go through the reports in easy access menu OM-> Tools-> Quota Planning
    S_PH0_48000088 - Delete Unoccupied Positions on Key Date
    S_PH0_48000087 - Copying Quota Planning into Another Planning Type
    S_PH0_48000086 - Copying the Current Required Positions into a Planning Type
    S_PH0_48000085 - Freeze Planned Quota
    S_PH0_48000084 - Generation of Positions for Quota Planning
    Hope this helps.

  • QP01 - To Create a Inspection Plan

    Hi Associates and Consultants,
    Have any one worked on T-Code QP01 to create a Inspection Plan Using BDC's or BAPI's.
    If so please try to ping me.
    Regards,
    sg

    *& Report  ZQMB_QP01_INSP_PLAN_NEW
    REPORT  ZQMB_QP01_INSP_PLAN_NEW
           NO STANDARD PAGE HEADING LINE-SIZE 255 MESSAGE-ID ZQMB_INSP_PLAN_NEW.
    D A T A   D E C L A R A T I O N                                     *
    TYPES: BEGIN OF TY_TABDATA,
           MATNR TYPE RC27M-MATNR, "Material No
           WERKS TYPE RC27M-WERKS, "Plant
           PLNNR TYPE RC271-PLNNR, "Key for Task List Group
          AENNR TYPE RC271-AENNR, "Change Number
           KTEXT TYPE PLKOD-KTEXT, "Task list description
           VERWE TYPE PLKOD-VERWE, "Task list usage
           STATU TYPE PLKOD-STATU, "Status
           SLWBEZ TYPE PLKOD-SLWBEZ, "Identification for the Inspection Point Field Combination
           QPRZIEHVER TYPE PLKOD-QPRZIEHVER, "Sample-Drawing Procedure
           END OF TY_TABDATA.
    TYPES: BEGIN OF TY_TBCTRL1,
           MATNR TYPE RC27M-MATNR, "Material No
           WERKS TYPE RC27M-WERKS, "Plant
           PLNNR TYPE RC271-PLNNR, "Key for Task List Group
          AENNR TYPE RC271-AENNR, "Change Number
           ARBPL TYPE PLPOD-ARBPL, "Work center
           STEUS TYPE PLPOD-STEUS, "Control key
           LTXA1 TYPE PLPOD-LTXA1, "Operation short text
           END OF TY_TBCTRL1.
    TYPES: BEGIN OF TY_TBCTRL2,
           MATNR TYPE RC27M-MATNR, "Material No
           WERKS TYPE RC27M-WERKS, "Plant
           PLNNR TYPE RC271-PLNNR, "Key for Task List Group
          AENNR TYPE RC271-AENNR, "Change Number
          ARBPL TYPE PLPOD-ARBPL, "Work center
          STEUS TYPE PLPOD-STEUS, "Control key
           VERWMERKM TYPE PLMKB-VERWMERKM, "Master Inspection Characteristics
           PMETHODE TYPE PLMKB-PMETHODE, "Inspection Method
         PMTVERSION TYPE PLMKB-PMTVERSION, "Version Number of the Inspection Method
           STICHPRVER TYPE PLMKB-STICHPRVER, "Sampling Procedure in Inspection Characteristic
          PRUEFEINH(7)," TYPE PLMKB-PRUEFEINH, " Value
          PROBEMGEH(3)," TYPE PLMKB-PROBEMGEH, "Unit
           STELLEN(3), "TYPE PLMKB-STELLEN, "Number of Places to the Right of a Decimal Point (Accuracy)
           MASSEINHSW TYPE RQPAS-MASSEINHSW, "Measurement Unit in Which Quantitative Data Is Maintained
           SOLLWERT TYPE QFLTP-SOLLWERT, "Target Value for a Quantitative Characteristic
           TOLERANZUN TYPE QFLTP-TOLERANZUN, "Lower Specification Limit
           TOLERANZOB TYPE QFLTP-TOLERANZOB, "Upper Specification Limit
           DUMMY10 TYPE PLMKB-DUMMY10,  "Info Field1
           DUMMY20 TYPE PLMKB-DUMMY20,  "Info Field2
           DUMMY40 TYPE PLMKB-DUMMY40,  "Info Field3
           END OF TY_TBCTRL2.
    TYPES: BEGIN OF TY_CHECK,
            MATNR TYPE RC27M-MATNR,   "Material No
            WERKS TYPE RC27M-WERKS,   "Plant
            PLNNR TYPE RC271-PLNNR,   "Key for Task List Group
           AENNR TYPE RC271-AENNR,   "Change Number
           END OF TY_CHECK.
    Declaration of the Internal Table & Work Area.
    DATA:   ITST_TABDATA TYPE SORTED  TABLE OF TY_TABDATA WITH
                        UNIQUE KEY  MATNR WERKS PLNNR, " AENNR,
                                                " Internal table for Non-Table Control Records
            WA_TABDATA TYPE TY_TABDATA,
            ITST_TABCTRL1 TYPE TABLE OF TY_TBCTRL1 ,  " Internal table for the First Screen with Table Control
            WA_TABCTRL1 TYPE TY_TBCTRL1,
            ITST_TABCTRL2 TYPE TABLE OF TY_TBCTRL2, " Internal table for the Second Screen with Table Control
            WA_TABCTRL2 TYPE TY_TBCTRL2,
            ITST_CHECK TYPE TABLE OF TY_CHECK, " Internal table to check if record already exists
            WA_CHECK TYPE TY_CHECK.
    Constants
    CONSTANTS: C_QP01 TYPE CHAR4 VALUE 'QP01', " Transaction Name
               C_A TYPE CHAR1 VALUE 'A',       " Mode
               C_S TYPE CHAR1 VALUE 'S'.       " Status
       Global data Declaration
    DATA: GV_YEAR(4) TYPE C, " Year part for Date
          GV_MNTH(2) TYPE C, " Month part for Date
          GV_DATE(2) TYPE C, " Day part for Date
          GV_DATUM(10) TYPE C, " Concatenated Date in dd.mm.yyyy Format
          GV_ANS TYPE C, " Answer to Continue
          GV_FLAG_NEW(1) TYPE N VALUE 0. " Flag to set if Inspection Plan exists.
    Declaration of the Internal Table with Header Line comprising of the uploaded data.
    DATA:  BEGIN  OF  IT_FILE_UPLOAD  OCCURS  0.
    INCLUDE  STRUCTURE  ALSMEX_TABLINE.  "  Rows for Table with Excel Data
    DATA:  END  OF  IT_FILE_UPLOAD.
    Batch Input Data for a single Transaction.
    Message of Call Transaction.
    DATA:  ITST_BDCDATA  LIKE  BDCDATA     OCCURS  0  WITH  HEADER  LINE,  " BDC Table
           ITST_MSGTAB   LIKE  BDCMSGCOLL  OCCURS  0  WITH  HEADER  LINE.  " BDC Messages
    S E L E C T I O N - S C R E E N                                     *
    SELECTION-SCREEN:  BEGIN  OF  BLOCK  B1  WITH  FRAME TITLE TEXT-001,
                           BEGIN  OF  BLOCK  B2  WITH  FRAME TITLE TEXT-004.
    PARAMETERS: P_FNAME  LIKE  RLGRAP-FILENAME  OBLIGATORY.
    SELECTION-SCREEN:      END  OF  BLOCK  B2,
                       END  OF  BLOCK  B1.
    E V E N T : AT    S E L E C T I O N - S C R E E N                   *
    AT  SELECTION-SCREEN  ON  VALUE-REQUEST  FOR  P_FNAME.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          STATIC    = 'X'
        CHANGING
          FILE_NAME = P_FNAME.
    E V E N T : S T A R T - O F - S E L E C T I O N                     *
    START-OF-SELECTION.
    Upload Excel file into Internal Table.
      PERFORM  UPLOAD_EXCEL_FILE.                      " To Upload the Excel File
      IF  NOT  IT_FILE_UPLOAD  IS  INITIAL.
      Confirm whether you want to proceed with the Upload.
        PERFORM  CONFIRM_UPLOAD.
        IF  GV_ANS  EQ  '1'.
      Organize the uploaded data into another Internal Table.
          PERFORM  ORGANIZE_UPLOADED_DATA.
    Validate if already some Inspection Plan exists for that Material Plant
          IF ITST_TABDATA[] IS NOT INITIAL.
            SELECT MATNR
                   WERKS
                   PLNNR
            FROM MAPL
            INTO TABLE ITST_CHECK
            FOR ALL ENTRIES IN ITST_TABDATA
            WHERE MATNR = ITST_TABDATA-MATNR AND WERKS = ITST_TABDATA-WERKS AND
                                      PLNNR = ITST_TABDATA-PLNNR
                                      AND PLNTY = 'Q' AND LOEKZ <> 'X'.
          ENDIF.
          LOOP AT ITST_CHECK INTO WA_CHECK .
            LOOP AT ITST_TABDATA INTO WA_TABDATA WHERE MATNR = WA_CHECK-MATNR
                                                  AND WERKS = WA_CHECK-WERKS AND PLNNR = WA_CHECK-PLNNR.
                                                 AND AENNR = WA_CHECK-AENNR.
              IF SY-SUBRC = 0.                 " If exists SET FLAG = 1.
               GV_FLAG_NEW = 1.
                DELETE ITST_TABDATA WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
                                                                 AND PLNNR = WA_CHECK-PLNNR.
                                                                AND AENNR = WA_CHECK-AENNR.
                DELETE  ITST_TABCTRL1 WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
                                                                   AND PLNNR = WA_CHECK-PLNNR.
                                                                  AND AENNR = WA_CHECK-AENNR.
                DELETE  ITST_TABCTRL2 WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
                                                                   AND PLNNR = WA_CHECK-PLNNR.
                                                                  AND AENNR = WA_CHECK-AENNR.
              ENDIF.
            ENDLOOP.
          ENDLOOP.
        Kick-start BDC Operation
          PERFORM  F_START_BDC.    " If answer is YES, then start BDC Operations
        ENDIF.
      ELSE.
        LEAVE PROGRAM.           " If answer is NO or CANCEL then leave program
      ENDIF.
    *&      Form  F_START_BDC
          text
    -->  p1        text
    <--  p2        text
    FORM F_START_BDC .
      DATA :  LV_FNAM(20) TYPE C, " Concatenated field name
              LV_IDX1(3) TYPE  N VALUE 1, " Index For Table Control 1
              LV_IDX2(3) TYPE N VALUE 1, " Index For Table Control 2
              LV_GOTO(4) TYPE N ,  " Index for GoTo Line No incase of Page Down
              LV_PG(3) TYPE N VALUE 1, " Index for Page No
              LV_IDX(3) TYPE N VALUE 1.
      IF ITST_TABDATA[] IS INITIAL.
        MESSAGE E000.              " If Inspection Plan exists for all items in file, show error message
      ENDIF.
      LOOP AT ITST_TABDATA INTO WA_TABDATA.
        LV_IDX2 = '1'.
        CLEAR ITST_BDCDATA.
        REFRESH ITST_BDCDATA.
        GV_YEAR = SY-DATUM+0(4).
        GV_MNTH = SY-DATUM+4(2).
        GV_DATE = SY-DATUM+6(2).
        CONCATENATE GV_DATE '.' GV_MNTH '.' GV_YEAR  INTO GV_DATUM.
        PERFORM BDC_DYNPRO      USING 'SAPLCPDI' '8010'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RC27M-MATNR'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'RC27M-MATNR'
                                      WA_TABDATA-MATNR.         " 'kiz0006c'
        PERFORM BDC_FIELD       USING 'RC27M-WERKS'
                                      WA_TABDATA-WERKS.         " 'B001'
        PERFORM BDC_FIELD       USING 'RC271-PLNNR'
                                      WA_TABDATA-PLNNR.         " 60000000-99999999
        PERFORM BDC_FIELD       USING 'RC271-STTAG'
                                      GV_DATUM.                 " '16.01.2008'
       PERFORM BDC_FIELD       USING 'RC271-AENNR'
                                     WA_TABDATA-AENNR.         " CHANGE NUMBER
       IF GV_FLAG_NEW = 1.        " If Exists then diff screen for clicking NEW ENTRIES tab
         PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1200'.
         PERFORM BDC_FIELD USING  'BDC_CURSOR'
                                   'RC27X-ENTRY_ACT'.
         PERFORM BDC_FIELD USING 'BDC_OKCODE'
                                 '=ANLG'.
         PERFORM BDC_FIELD USING 'RC27X-ENTRY_ACT'
                                 '1'.
         PERFORM BDC_DYNPRO      USING 'SAPLCPDA' '1200'.
         PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                     '/00'.
       ELSE.
        PERFORM BDC_DYNPRO      USING 'SAPLCPDA' '1200'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
       ENDIF.
        IF WA_TABDATA-KTEXT <> SPACE.
          PERFORM BDC_FIELD       USING 'PLKOD-KTEXT'
                                        WA_TABDATA-KTEXT.        " 'ZOLMITRIPTAN STAGE C1111'
        ENDIF.
        PERFORM BDC_FIELD       USING 'PLKOD-VERWE'
                                      WA_TABDATA-VERWE.         " '5'
        PERFORM BDC_FIELD       USING 'PLKOD-STATU'
                                      WA_TABDATA-STATU.         " '4'
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'PLKOD-QPRZIEHVER'.
        PERFORM BDC_FIELD       USING 'PLKOD-SLWBEZ'
                                      WA_TABDATA-SLWBEZ.        " '200'
        PERFORM BDC_FIELD       USING 'PLKOD-QPRZIEHVER'
                                      WA_TABDATA-QPRZIEHVER.    " 'ACTIVE'
       PERFORM BDC_FIELD       USING 'PLKOD-CHRULE'
                                      '1'.                     " With change number
       PERFORM BDC_FIELD       USING 'PLKOD-CCOAA'
                                      '1'.                     " Change Type for all objects
        PERFORM BDC_DYNPRO      USING 'SAPLCPDA' '1200'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=VOUE'.
        LOOP AT ITST_TABCTRL1 INTO WA_TABCTRL1 WHERE MATNR = WA_TABDATA-MATNR
                                                     AND WERKS = WA_TABDATA-WERKS
                                                     AND PLNNR = WA_TABDATA-PLNNR.
                                                    AND AENNR = WA_CHECK-AENNR.
          ON CHANGE OF WA_TABCTRL1-MATNR OR WA_TABCTRL1-WERKS OR WA_TABCTRL1-PLNNR." OR WA_TABCTRL1-AENNR.
            PERFORM BDC_DYNPRO      USING 'SAPLCPDI' '1400'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                          'PLPOD-LTXA1(01)'.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                          '/00'.
            CONCATENATE 'PLPOD-ARBPL(' LV_IDX1 ')' INTO LV_FNAM.
            PERFORM BDC_FIELD       USING LV_FNAM
                                          WA_TABCTRL1-ARBPL.    " 'qc01'
            CONCATENATE 'PLPOD-STEUS(' LV_IDX1 ')' INTO LV_FNAM.
            PERFORM BDC_FIELD       USING LV_FNAM
                                          WA_TABCTRL1-STEUS.    " 'qm01'
            CONCATENATE 'PLPOD-LTXA1(' LV_IDX1 ')' INTO LV_FNAM.
            PERFORM BDC_FIELD       USING LV_FNAM
                                          WA_TABCTRL1-LTXA1.       " 'opearation1'
            PERFORM BDC_DYNPRO      USING 'SAPLCPDI' '1400'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                          'PLPOD-VORNR(01)'.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                          '=QMUE'.
            PERFORM BDC_FIELD       USING 'RC27X-ENTRY_ACT'
                                          '1'.
            PERFORM BDC_FIELD       USING 'RC27X-FLG_SEL(01)'
                                          'X'.
            PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                            'PLMKB-STELLEN(01)'.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                            '/00'.
            LOOP AT ITST_TABCTRL2 INTO WA_TABCTRL2 WHERE MATNR = WA_TABCTRL1-MATNR AND
                                                         WERKS = WA_TABCTRL1-WERKS AND
                                                         PLNNR = WA_TABCTRL1-PLNNR.
                                                     AND   AENNR = WA_TABCTRL1-AENNR.
                                                      AND ARBPL = WA_TABCTRL1-ARBPL AND
                                                        STEUS = WA_TABCTRL1-STEUS.
              LV_GOTO = LV_PG * 140.  " For Page Down on Second Table Control
              IF LV_IDX2 >= 14.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                            'RQPAS-AB_MKNR'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                              '/00'.
                PERFORM BDC_FIELD       USING 'RQPAS-AB_MKNR'
                                               LV_GOTO .
                LV_IDX2 = 2.
                LV_PG = LV_PG + 1.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                               '/00'.
              ELSE.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              'PLMKB-STELLEN(01)'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                              '/00'.
              ENDIF.
              CONCATENATE 'PLMKB-VERWMERKM(' LV_IDX2 ')' INTO LV_FNAM.
              PERFORM BDC_FIELD       USING LV_FNAM
                                            WA_TABCTRL2-VERWMERKM.              " 'MIC00001'/ ' MIC00050'
              IF WA_TABCTRL2-PMETHODE <> SPACE.
                CONCATENATE 'PLMKB-PMETHODE(' LV_IDX2')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-PMETHODE.               " 'met00001'
             CONCATENATE 'PLMKB-PMTVERSION(' LV_IDX2 ')' INTO LV_FNAM.
             PERFORM BDC_FIELD       USING LV_FNAM
                                           WA_TABCTRL2-PMTVERSION.              " '1'
                CONCATENATE 'PLMKB-STICHPRVER(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-STICHPRVER." 'APIFX1'
              CONCATENATE 'PLMKB-PRUEFEINH(' LV_IDX2 ')' INTO LV_FNAM.
              PERFORM BDC_FIELD       USING LV_FNAM
                                            WA_TABCTRL2-PRUEFEINH.               " '20'
              CONCATENATE 'PLMKB-PROBEMGEH(' LV_IDX2 ')' INTO LV_FNAM.
              PERFORM BDC_FIELD       USING LV_FNAM
                                            WA_TABCTRL2-PROBEMGEH.               " 'G'
              IF WA_TABCTRL2-STELLEN <> SPACE.
                CONCATENATE 'PLMKB-STELLEN(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-STELLEN." '2'
              ENDIF.
              IF WA_TABCTRL2-MASSEINHSW <> SPACE.
                CONCATENATE 'RQPAS-MASSEINHSW(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-MASSEINHSW.             " '%'
              ENDIF.
              IF WA_TABCTRL2-SOLLWERT <> SPACE.
                CONCATENATE 'QFLTP-SOLLWERT(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-SOLLWERT." '10'
              ENDIF.
              IF WA_TABCTRL2-TOLERANZUN <> SPACE.
                CONCATENATE 'QFLTP-TOLERANZUN(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-TOLERANZUN." '5'
              ENDIF.
              IF WA_TABCTRL2-TOLERANZOB <> SPACE.
                CONCATENATE 'QFLTP-TOLERANZOB(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-TOLERANZOB." '15'
              ENDIF.
              IF WA_TABCTRL2-DUMMY10 <> SPACE.
                CONCATENATE 'PLMKB-DUMMY10(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-DUMMY10." Info Field 1
              ENDIF.
              IF WA_TABCTRL2-DUMMY20 <> SPACE.
                CONCATENATE 'PLMKB-DUMMY20(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-DUMMY20." Info Field 2
              ENDIF.
              IF WA_TABCTRL2-DUMMY40 <> SPACE.
                CONCATENATE 'PLMKB-DUMMY40(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-DUMMY40." Info Field 3
              ENDIF.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '1501'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                              '=ENT1'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              'PLMKB-VERWMERKM'.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '1502'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                              '=ENT1'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              'PLMKB-PMETHODE'.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '1502'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                              '=ENT1'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              'PLMKB-PMETHODE'.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
                CONCATENATE 'PLMKB-MERKNR('LV_IDX2')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              LV_FNAM.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                              '=QMAM'.
                PERFORM BDC_FIELD       USING 'RQPAS-ENTRY_ACT'
                                              '1'.
                IF LV_IDX2 = 1.          " If only one entry then select it
                  CONCATENATE 'RQPAS-SEL_FLG('LV_IDX2')' INTO LV_FNAM.
                  PERFORM BDC_FIELD       USING LV_FNAM
                                        'X'.
                ELSE.
                  LV_IDX = LV_IDX2 - 1. " Deselect previous entry and select current one
                  CONCATENATE 'RQPAS-SEL_FLG('LV_IDX')' INTO LV_FNAM.
                  PERFORM BDC_FIELD       USING LV_FNAM
                  CONCATENATE 'RQPAS-SEL_FLG('LV_IDX2')' INTO LV_FNAM.
                  PERFORM BDC_FIELD       USING LV_FNAM
                                           'X'.
                ENDIF.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0160'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                           '=QMBW'.
               PERFORM BDC_FIELD       USING 'PLMKB-KURZTEXT'
                                          'Description'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                       'PLMKB-QERGDATH'.
                PERFORM BDC_FIELD       USING 'PLMKB-QERGDATH'
                                          '01'.  " Quality Certificate
              ELSE.
             CONCATENATE 'PLMKB-PMTVERSION(' LV_IDX2 ')' INTO LV_FNAM.
             PERFORM BDC_FIELD       USING LV_FNAM
                                           WA_TABCTRL2-PMTVERSION.               " '1'
                CONCATENATE 'PLMKB-STICHPRVER(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-STICHPRVER." 'APIFX1'
              CONCATENATE 'PLMKB-PRUEFEINH(' LV_IDX2 ')' INTO LV_FNAM.
              PERFORM BDC_FIELD       USING LV_FNAM
                                            WA_TABCTRL2-PRUEFEINH.                " '20'
              CONCATENATE 'PLMKB-PROBEMGEH(' LV_IDX2 ')' INTO LV_FNAM.
              PERFORM BDC_FIELD       USING LV_FNAM
                                            WA_TABCTRL2-PROBEMGEH.                " 'G'
                IF WA_TABCTRL2-STELLEN <> SPACE.
                CONCATENATE 'PLMKB-STELLEN(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-STELLEN." '2'
                ENDIF.
                IF WA_TABCTRL2-MASSEINHSW <> SPACE.
                CONCATENATE 'RQPAS-MASSEINHSW(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-MASSEINHSW.                " '%'
                ENDIF.
                IF WA_TABCTRL2-SOLLWERT <> SPACE.
                CONCATENATE 'QFLTP-SOLLWERT(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-SOLLWERT." '10'
                ENDIF.
                IF WA_TABCTRL2-TOLERANZUN <> SPACE.
                CONCATENATE 'QFLTP-TOLERANZUN(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-TOLERANZUN." '5'
                ENDIF.
                IF WA_TABCTRL2-TOLERANZOB <> SPACE.
                CONCATENATE 'QFLTP-TOLERANZOB(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-TOLERANZOB." '15'
                ENDIF.
                IF WA_TABCTRL2-DUMMY10 <> SPACE.
                CONCATENATE 'PLMKB-DUMMY10(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-DUMMY10." Info Field 1
                ENDIF.
                IF WA_TABCTRL2-DUMMY20 <> SPACE.
                CONCATENATE 'PLMKB-DUMMY20(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-DUMMY20." Info Field 2
                ENDIF.
                IF WA_TABCTRL2-DUMMY40 <> SPACE.
                CONCATENATE 'PLMKB-DUMMY40(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-DUMMY40." Info Field 3
                ENDIF.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '1501'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                             '=ENT1'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              'PLMKB-QMTB_WERKS'.
                PERFORM BDC_FIELD       USING 'PLMKB-VERWMERKM'
                                               WA_TABCTRL2-VERWMERKM.
                PERFORM BDC_FIELD       USING 'PLMKB-QPMK_WERKS'
                                               WA_TABCTRL2-WERKS.
                PERFORM BDC_FIELD       USING 'PLMKB-QMTB_WERKS'
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
                CONCATENATE 'PLMKB-MERKNR('LV_IDX2')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              LV_FNAM.
                PERFORM BDC_FIELD      USING 'BDC_OKCODE'
                                             '=QMAM'.
                 PERFORM BDC_FIELD      USING 'RQPAS-ENTRY_ACT'
                                             '1'.
                  IF LV_IDX2 = 1. " If first entry select it
                  CONCATENATE 'RQPAS-SEL_FLG('LV_IDX2')' INTO LV_FNAM.
                  PERFORM BDC_FIELD       USING LV_FNAM
                                        'X'.
                  ELSE.
                  LV_IDX = LV_IDX2 - 1. " Deselect Previous entry ans select current one
                  CONCATENATE 'RQPAS-SEL_FLG('LV_IDX')' INTO LV_FNAM.
                  PERFORM BDC_FIELD       USING LV_FNAM
                 CONCATENATE 'RQPAS-SEL_FLG('LV_IDX2')' INTO LV_FNAM.
                  PERFORM BDC_FIELD       USING LV_FNAM
                                           'X'.
                 ENDIF.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0160'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                           '=QMBW'.
               PERFORM BDC_FIELD       USING 'PLMKB-KURZTEXT'
                                          'Description'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                       'PLMKB-QERGDATH'.
                PERFORM BDC_FIELD       USING 'PLMKB-QERGDATH'
                                          '01'. " Quality Certificate
              ENDIF.
              LV_IDX2 = LV_IDX2 + 1.
            ENDLOOP.
          ENDON.
        ENDLOOP.
        PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RQPAS-ENTRY_ACT'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=QMBU'.
        PERFORM BDC_FIELD       USING 'RQPAS-ENTRY_ACT'
                                      '1'.
        CALL TRANSACTION  C_QP01 USING ITST_BDCDATA
                    MODE  C_A UPDATE C_S
                    MESSAGES INTO ITST_MSGTAB.               "#EC CI_CALLTA
      ENDLOOP.
    ENDFORM.                    " F_START_BDC
    *&      Form  UPLOAD_EXCEL_FILE
          text
    -->  p1        text
    <--  p2        text
    FORM UPLOAD_EXCEL_FILE .
      CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
        EXPORTING
          FILENAME    = P_FNAME
          I_BEGIN_COL = 1
          I_BEGIN_ROW = 2
          I_END_COL   = 24
          I_END_ROW   = 9999
        TABLES
          INTERN      = IT_FILE_UPLOAD.
    ENDFORM.                    " UPLOAD_EXCEL_FILE
    *&      Form  CONFIRM_UPLOAD
          text
    -->  p1        text
    <--  p2        text
    FORM CONFIRM_UPLOAD .
      CALL FUNCTION 'POPUP_TO_CONFIRM'
        EXPORTING
          TITLEBAR       = TEXT-002
          TEXT_QUESTION  = TEXT-003
        IMPORTING
          ANSWER         = GV_ANS
        EXCEPTIONS
          TEXT_NOT_FOUND = 1
          OTHERS         = 2.
    ENDFORM.                    " CONFIRM_UPLOAD
    *&      Form  BDC_DYNPRO
          text
         -->P_0589   text
         -->P_0590   text
    FORM BDC_DYNPRO  USING    PROGRAM
                              DYNPRO.
      CLEAR:  ITST_BDCDATA.
      ITST_BDCDATA-PROGRAM   =  PROGRAM.
      ITST_BDCDATA-DYNPRO    =  DYNPRO.
      ITST_BDCDATA-DYNBEGIN  =  'X'.
      APPEND  ITST_BDCDATA.
    ENDFORM.                    " BDC_DYNPRO
    *&      Form  BDC_FIELD
          text
         -->P_0729   text
         -->P_0730   text
    FORM BDC_FIELD  USING    FNAM
                             FVAL.
      CLEAR:  ITST_BDCDATA.
      ITST_BDCDATA-FNAM  =  FNAM.
      ITST_BDCDATA-FVAL  =  FVAL.
      APPEND  ITST_BDCDATA.
    ENDFORM.                    " BDC_FIELD
    *&      Form  ORGANIZE_UPLOADED_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM ORGANIZE_UPLOADED_DATA .
      DATA : LV_TOTROW TYPE I, " Total Records
             LV_ROW TYPE I.    " Row No
      LV_TOTROW = 1.
      SORT  IT_FILE_UPLOAD  BY  ROW
                                COL.
      LOOP AT IT_FILE_UPLOAD.
        LV_TOTROW = IT_FILE_UPLOAD-ROW.        " To find total rows
      ENDLOOP.
      LV_ROW = 1.
      WHILE LV_ROW <= LV_TOTROW.
        LOOP  AT  IT_FILE_UPLOAD WHERE ROW = LV_ROW.
          CASE  IT_FILE_UPLOAD-COL.
            WHEN '0001'.                                                       " Material
              TRANSLATE IT_FILE_UPLOAD-VALUE TO UPPER CASE.
              WA_TABDATA-MATNR = IT_FILE_UPLOAD-VALUE.
              WA_TABCTRL1-MATNR = IT_FILE_UPLOAD-VALUE.
              WA_TABCTRL2-MATNR = IT_FILE_UPLOAD-VALUE.
            WHEN '0002'.                                                       " Plant
              TRANSLATE IT_FILE_UPLOAD-VALUE TO UPPER CASE.
              WA_TABDATA-WERKS = IT_FILE_UPLOAD-VALUE.
              WA_TABCTRL1-WERKS = IT_FILE_UPLOAD-VALUE.
              WA_TABCTRL2-WERKS = IT_FILE_UPLOAD-VALUE.
            WHEN '0003'.                                                       " Group Key
              WA_TABDATA-PLNNR = IT_FILE_UPLOAD-VALUE.
              WA_TABCTRL1-PLNNR = IT_FILE_UPLOAD-VALUE.
              WA_TABCTRL2-PLNNR = IT_FILE_UPLOAD-VALUE.
           WHEN '0004'.                                                       " Change Number
             WA_TABDATA-AENNR = IT_FILE_UPLOAD-VALUE.
             WA_TABCTRL1-AENNR = IT_FILE_UPLOAD-VALUE.
             WA_TABCTRL2-AENNR = IT_FILE_UPLOAD-VALUE.
            WHEN '0004'.                                                      " Group Counter Desc
              WA_TABDATA-KTEXT = IT_FILE_UPLOAD-VALUE.
            WHEN '0005'.                                                      " Usage
              WA_TABDATA-VERWE = IT_FILE_UPLOAD-VALUE.
            WHEN '0006'.                                                      " Status
              WA_TABDATA-STATU = IT_FILE_UPLOAD-VALUE.
            WHEN '0007'.                                                      " Inspection Point
              WA_TABDATA-SLWBEZ = IT_FILE_UPLOAD-VALUE.
            WHEN '0008'.                                                      " Sample Drawing Procedure
              WA_TABDATA-QPRZIEHVER = IT_FILE_UPLOAD-VALUE.
            WHEN '0009'.                                                      " Work Centre
              WA_TABCTRL1-ARBPL = IT_FILE_UPLOAD-VALUE.
             WA_TABCTRL2-ARBPL = IT_FILE_UPLOAD-VALUE.
            WHEN '0010'.                                                      " Control Key
              WA_TABCTRL1-STEUS = IT_FILE_UPLOAD-VALUE.
             WA_TABCTRL2-STEUS = IT_FILE_UPLOAD-VALUE.
            WHEN '0011'.                                                      " Desc
              WA_TABCTRL1-LTXA1 = IT_FILE_UPLOAD-VALUE.
            WHEN '0012'.                                                      " MIC
              WA_TABCTRL2-VERWMERKM = IT_FILE_UPLOAD-VALUE.
            WHEN '0013'.                                                      " Method
              WA_TABCTRL2-PMETHODE = IT_FILE_UPLOAD-VALUE.
           WHEN '0014'.
             WA_TABCTRL2-PMTVERSION = IT_FILE_UPLOAD-VALUE.
            WHEN '0014'.                                                      " Sampling
              WA_TABCTRL2-STICHPRVER = IT_FILE_UPLOAD-VALUE.
            WHEN '0015'.
              WA_TABCTRL2-PRUEFEINH = IT_FILE_UPLOAD-VALUE.
            WHEN '0016'.
              WA_TABCTRL2-PROBEMGEH = IT_FILE_UPLOAD-VALUE.
            WHEN '0017'.                                                      " Accuracy
              WA_TABCTRL2-STELLEN = IT_FILE_UPLOAD-VALUE.
            WHEN '0018'.                                                      " Unit
              WA_TABCTRL2-MASSEINHSW = IT_FILE_UPLOAD-VALUE.
            WHEN '0019'.                                                      " Target Value
              WA_TABCTRL2-SOLLWERT = IT_FILE_UPLOAD-VALUE.
            WHEN '0020'.                                                      " Lower Limit
              WA_TABCTRL2-TOLERANZUN = IT_FILE_UPLOAD-VALUE.
            WHEN '0021'.                                                      " Upper Limit
              WA_TABCTRL2-TOLERANZOB = IT_FILE_UPLOAD-VALUE.
            WHEN '0022'.                                                      " Info Field1
              WA_TABCTRL2-DUMMY10 = IT_FILE_UPLOAD-VALUE.
            WHEN '0023'.                                                      " Info Field2
              WA_TABCTRL2-DUMMY20 = IT_FILE_UPLOAD-VALUE.
            WHEN '0024'.                                                      " Info Field3
              WA_TABCTRL2-DUMMY40 = IT_FILE_UPLOAD-VALUE.
          ENDCASE.
        ENDLOOP.
        LV_ROW = LV_ROW + 1.
        INSERT WA_TABDATA INTO TABLE  ITST_TABDATA .
        APPEND WA_TABCTRL1 TO ITST_TABCTRL1.
        APPEND WA_TABCTRL2 TO ITST_TABCTRL2.
        CLEAR :WA_TABDATA,WA_TABCTRL1,WA_TABCTRL2.
      ENDWHILE.
    ENDFORM.                    " ORGANIZE_UPLOADED_DATA
    E N D - O F - S E L E C T I O N                                               *
    END-OF-SELECTION.
    Free all internal tables
      FREE: ITST_TABDATA,
            ITST_TABCTRL1,
            ITST_TABCTRL2.

  • Windows Server 2008 R2: Script create multi users with Windows Powershell

    Dear All,
    I have windows server 2008 R2 Active Directory Domain Service. I want to create multi users by using Windows PowerShell.
    Could you guide?
    BR,
    Khemarin Set
    [email protected]

    Dear Awinish,
    Your link very my solution. but i'm very basic with Powershell and I never have experience with it.
    This is the link original script that you are provide:
    function Select-FileDialog 
    param([string]$Title,[string]$Directory,[string]$Filter="CSV Files (*.csv)|*.csv")
    [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
    $objForm = New-Object System.Windows.Forms.OpenFileDialog
    $objForm.InitialDirectory = $Directory
    $objForm.Filter = $Filter
    $objForm.Title = $Title
    $objForm.ShowHelp = $true
    $Show = $objForm.ShowDialog()
    If ($Show -eq "OK")
    Return $objForm.FileName
    Else
    Exit
    $FileName = Select-FileDialog -Title "Import an CSV file" -Directory "C:"
    $ExchangeUsersOU = "OU=ExchangeUsers" # I don understand, I have all users are store in all-users ou
    $domain = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()
    $DomainDN = (([System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()).Domains | ? {$_.Name -eq $domain}).GetDirectoryEntry().distinguishedName
    $final = "LDAP://$DomainDN"
    $DomainPath = [ADSI]"$final"
    $cOU = $DomainPath.Create("OrganizationalUnit",$ExchangeUsersOU)
    $cOU.SetInfo()
    $UserInformation = Import-Csv $FileName
    $OUPath = "LDAP://$ExchangeUsersOU,$DomainDN" # I don understand
    $UserPath = [ADSI]"$OUPath"
    Write-Host "---------------------------------------------------------------"
    Write-Host "Creating LAB Users"
    Write-Host ""
    Write-Host "---------------------------------------------------------------"
    Foreach ($User in $UserInformation){
    $CN = $User.samAccountName
    $SN = $User.Surname
    $Given = $User.givenName
    $samAccountName = $User.samAccountName
    $Display = $User.DisplayName
    $LABUser = $UserPath.Create("User","CN=$CN")
    Write-Host "Creating User: $User.samAccountName"
    $LABUser.Put("samAccountName",$samAccountName)
    $LABUser.Put("sn",$SN)
    $LABUser.Put("givenName",$Given)
    $LABUser.Put("displayName",$Display)
    $LABUser.Put("mail","$samAccountName@$domain")
    $LABUser.Put("description", "Lab User - created via Script")
    $LABUser.Put("userPrincipalName","$samAccountName@$domain")
    $LABUser.SetInfo()
    $Pwrd = $User.Password
    $LABUser.psbase.invoke("setPassword",$Pwrd)
    $LABUser.psbase.invokeSet("AccountDisabled",$False)
    $LABUser.psbase.CommitChanges()
    Write-Host "Script Completed"
    If posible, could you help to correct script as: I have domain name: hello.net. All user are store in all-users ou.
    BR,
    Khemarin Set
    [email protected]

  • First time scheduling using IP30 for Multiple Counter plan

    Hi,
    I created a multiple counter plan with Cycle set as 6months/ 300 Operations.
    I intend to start the job early and updated the Planned Counter date as  1st Sep 2014.I maintained Lead Float as 10 days.
    When I run IP10, call is generated successfully. But when I execute IP30, no call is generated.
    We have not activated enhanced functionality of Multiple Counter plans.
    I checked all the parameters and everything seemd to be fine. In IP30, I checked the check boxes - Rescheduling & Immediate start of all.
    In the field, Interval for Call Objects, I ran with blank value, 30 days value. But in both the cases, call is not generated.
    I want to generate calls using IP30 only as there are lot of multiple counter plans. Can anybody suggest a solution to this issue?

    Hello
    As you intended to use cycle set functionality please activate enhanced functionality of Multiple Counter plans
    Br
    Rakesh

  • Creating Schedule lines in Scheduling agreement using LSMW

    Hi,
    I want to upload multiple schedule lines in scheduling agreement using LSMW. I have done the recording and maintained multiple lines in input file. However during execution LSMW creates only one line and keeps on ovewritting the same line. Please let me know how can I create multiple schedule lines.
    Regards

    First you should search for existing standard LSMW migration objects that possibly cover your scenario. These normally take care of complex header / multiple items / multiple subitems relations.
    With a recording you can only load flat structures. Sometimes a "create new  lines" / "enter first line" / "save transaction" logic can be constructed to load multiple items to a header (or even subitems to an item?) with a recording, but this can be pretty awkward.
    Thomas

  • How to create a counter using Oracle SQL Developer?

    Is there any way to create a counter using Oracle SQL Developer to create the below scenario. Meaning it will recorded down the name of user and ID and time and the date they login.
    Library portal home statistics shows how many users (outside and within the campus) visit the library portal.
    Page Access statistics is recorded on an hourly basis. Users may select the statistics by
    yearly (statistics displayed by all months in the selected year)
    monthly (statistics displayed by all days in the selected month)
    daily (statistics displayed by all hours in the selected day)

    I'm giving here one basic post - hope this will solve your problem --
    SQL>
    SQL>
    SQL> create table audit_info
      2   (
      3     usr        varchar2(50),
      4     log_time   timestamp(6)
      5    );
    Table created.
    SQL>
    SQL>
    SQL>  create table err_log
      2     (
      3       log_cd      varchar2(20),
      4       log_desc    varchar2(500)
      5     );
    Table created.
    SQL>
    SQL>
    SQL>   create or replace procedure ins_err(errcd   in  varchar2,
      2                                        errnm   in  varchar2)
      3    is
      4      pragma autonomous_transaction;
      5    begin
      6      insert into err_log values(errcd,errnm);
      7      commit;
      8    end;
      9  /
    Procedure created.
    SQL>
    SQL>
    SQL>   create or replace procedure ins_aud(ud   in varchar2,
      2                                        unm  in varchar2)
      3    is
      4      pragma autonomous_transaction;
      5    begin
      6      insert into audit_info values(ud,unm);
      7      commit;
      8    exception
      9      when others then
    10        ins_err(sqlcode,sqlerrm);
    11    end;
    12  /
    Procedure created.
    SQL>
    SQL>
    SQL>
    SQL> create or replace trigger log_odsuser1
      2   after logon on odsuser1.schema
      3   begin
      4     ins_aud('ODSUSER1',sysdate);
      5   exception
      6     when others then
      7       ins_err(sqlcode,sqlerrm);
      8   end;
      9  /
    Trigger created.
    SQL>
    SQL*Plus: Release 9.2.0.1.0 - Production on Tue Jun 12 12:21:09 2007
    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.6.0 - Production
    SQL>
    SQL>
    SQL>
    SQL> set serveroutput on
    SQL>
    SQL>
    SQL> select * from audit_info;
    USR
    LOG_TIME
    ODSUSER1
    12-JUN-07 12.00.00.00000000 AMHope this will solve your purpose.
    Regards.
    Satyaki De.

Maybe you are looking for