Appraisal Objects created in 'Approved' Planning status

Good day,
When creating Appraisal Template objects, they are created in 'Approved' Planning Status. We want them created in 'Active' Planning Status. We suspect this is the reason why we can't configure/define the process configuration for our template under IMG path: Personnel Management > Personnel Development > Objective Setting and Appraisals > Define Tabs and Process Configuration for Template. The system gives the following error message: "No process defined for form <template name>"
We've tried using program RHAKTI00 to make these objects (VA VB VC) active but are facing a further issue that it makes appraisal template unreleased. Vice versa when i released the template, it makes objects planning status to reset to approved from active. A similar issue has been posted in the below thread but an answer was not provided.
Objects created in 'Approved'  Planning status
Kindly assist.
Best regards
Hardus

>
Chris Thomas wrote:
> Michael - thanks as always for your insight and willingness to help out.
>
> Let me explain further.  Duke currently has a third party performance management system that allows the users to manage their Expected Job Results (EJR) in a catalog (translate to Qualifications catalog in R3).  In a separate step, the manager can select a single EJR and on the other side of the screen select all , or a subset of their employees to assign the EJR to.
>
> Extrapolate this to SAP PM.  We have created a Criteria group in our template and have experimented with adding qualifications via the BADI and this works fine EXCEPT that the manager would have to do this in each employee's appraisal, individually.  We are developing the tool to build and maintain the qualification catalog and assign to the employee via Manager Self Service, we are hoping to be able to facilitate the assignment of the EJR/Qualification into the employee's appraisal template.   The EJR's (Q objects) will be associated to a quadrant in their catalog: QK's - Clinical Quality, Customer Service, Finance and Work Culture
>
> The criteria group, Expected Job Results, has for criteria groups nested under it:  VB objects for four quadrants, Clinical Quality, Customer Service, Finance and Work Culture.   SO, we get to the crux of the matter.  Since we know the employee, we can get to the appraisal document and associated data in the tables.  The decision of which VB to go to is what we are trying to facilitate.  The textual names will be the same for the quadrants in the QK's and VB's BUT thats a bad way to try to make a decision, thus the thought to create a relationship between the QK and the associated, logically equivalent VB.  
>
> The issue comes up with some of our managers who have large (60+) direct reports so the thought of creating qualifications from the appraisal side, individually per employee does not work.  This is why we are thrashing around with trying to start outside and work our way in.  Make sense ?
>
> Chris Thomas
Hi Chris,
This is what I was trying to explain between free vs fixed enhancement. 
Free enhancement - user selects from a list to add something to the template
Fixed ehahcement - preloads data into the template
If your application that you build in MSS assigns the qualifications to the employees, you have a number of options to make this work as fixed enhancement.
First use the following fixed enhancement as your basis: 
HRHAP00_ENHANCE_FIX1 - Fixed Enhancement - Add Position Requirements
Now in your MSS application if you assigned the qualifications to the position and wanted all qualifications to show up in 1 criteria group, you can use this enhancement with no development. 
qualifications assigned to positions or jobs are called requirements
qualifications assigned to employees are called qualifications
if you have like 10 qualifications assigned to the position and 4 need to go to clinical quality VB, 3 need to go to finance vb criteria groups, you will create a BADI for each one of those, each criteria group wiill have its own unique badi.  in the badi you will apply the filter after all "requirements are selected from position" so that only the 4 belonging to the qualification block for finance are loaded into that VB. 
if your mss application MUST assign it the employee for business reason, you use the same logic except swap out position lookup with employee lookup. 
are we closer?

Similar Messages

  • Appraisal Template Release but in Approve Planning status?

    Hello friends,
    I am facing problem that when  i change all VA VB VC objects status to active using RE_RHAKTI00 then it makes appraisal template un released. Vice versa when i released template, it makes objects planning status to reset to approved from active. This is why i am not been able to find template in prepare or appcreate transactions. We need to keep objects active and template released to be able to make it usable in prepare or create. How to keep template released and VA VB VC elements in active state.
    Please guide us.
    Regards,
    Vinod.
    Edited by: vinod naik on Jun 14, 2009 10:21 PM

    Closed

  • Create APG ( approval granted) status in process order through user status

    Dear Gurus,
    My business requirement is to create APG ( approval granted) sytem status in process order through user status functionality, if possible.
    This needs to be activated while creating process order itself. Any help is greatly appreciated.
    Warm Regards,
    Satish

    As of this date, we have still not implemented a fix, but I did get some information from someone else who has.
    I'll post his information here for all to see.  Hope you find it helpful.
    From: Joe
    Yes we managed to do it.
    After several false starts and CMOD/projects which suffered because only the default keys (for order number, aufpl etc) were in place and not the actual, we coded up the IN_UPDATE method in the WORKORDER_UPDATE badi. This gives us the final format after the DB save (but before the commit). The update of the STATUS using the SAP std function module was actioned successfully but the status profile was not actually passed through. We assumed that this was because of the update task - so we introduced an INSERT into JSTO instead (a bit naughty I know, but desperate needs etc). If you require anything more let me know.
    Best Regards
    Joe

  • Bam 11 plan status data object update

    Hi Guru,
    I need to update the column StatusTime of plan_status DataObject (under dir of BAM "/System/Plan Monitor/Oracle BAM Plan Monitor/Plan Status").
    When I tried to update the column Status_time
    (with the instruction= bam.updateRows(tablename, rs, strKeys, strKeyConds, strUpdCols, strUpdOps, lCommitSize, lBatchSize))
    by ODI's KM, BAM throws the Exception:
    La colonna StatusTime è di sola lettura = The column StatusTime is only readable
    Do you know a way to update this column???
    BR Fabio
    Next the BAM exception:
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (innermost last):
    File "<string>", line 42, in ?
    java.sql.SQLException: BAM-01209 La colonna StatusTime è di sola lettura.
         at oracle.bam.enterpriselink.common.SrcMetaData.setColumnInfo(SrcMetaData.java:335)
         at oracle.bam.enterpriselink.common.SrcMetaData.<init>(SrcMetaData.java:89)
         at oracle.bam.enterpriselink.BAMJdbcConnection.updateRows(BAMJdbcConnection.java:1018)
         at oracle.bam.enterpriselink.BAMJdbcConnection.updateRows(BAMJdbcConnection.java:2183)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java)
         at org.python.core.PyMethod.__call__(PyMethod.java)
         at org.python.core.PyObject.__call__(PyObject.java)
         at org.python.core.PyObject.invoke(PyObject.java)
         at org.python.pycode._pyx7.f$0(<string>:42)
         at org.python.pycode._pyx7.call_function(<string>)
         at org.python.core.PyTableCode.call(PyTableCode.java)
         at org.python.core.PyCode.call(PyCode.java)
         at org.python.core.Py.runCode(Py.java)
         at org.python.core.Py.exec(Py.java)
         at org.python.util.PythonInterpreter.exec(PythonInterpreter.java)
         at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:144)
         at com.sunopsis.dwg.codeinterpretor.k.a(k.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSqlI.treatTaskTrt(SnpSessTaskSqlI.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.j(e.java)
         at com.sunopsis.dwg.cmd.g.z(g.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Thread.java:619)
    java.sql.SQLException: java.sql.SQLException: BAM-01209 La colonna StatusTime è di sola lettura.
         at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
         at com.sunopsis.dwg.codeinterpretor.k.a(k.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSqlI.treatTaskTrt(SnpSessTaskSqlI.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.j(e.java)
         at com.sunopsis.dwg.cmd.g.z(g.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Thread.java:619)

    Hi Fabio,
    StatusTime field is of datatype "Timestamp". These field types get automatically inserted by BAM whenever a row is inserted in the dataobject. Users are not allowed to enter or update this particular field explicitly.
    Further, this particular data object is a system data object which gets updated automatically by Enterpriselink when plans actually execute. This was used in BAM 10.1.3.5, and not really used for 11g, where the enterprise link functionality has been replaced by ODI. Did you get this DO from the from the 10.1.3.5 upgrade ?
    Thanks,
    Prabhat

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

  • Question of creating work approval

    Hi, expert
    when I use t-code WCTA to create work approval,system give the error message:
    WCM object doesn't exist in this maintenance planning plant 1000
    Message no. I4239
    I wonder if there is some configuration that i didn't set in background.
    could you give me some suggestion?
    thank you!

    hi
    what is the Architecture you are using for maintenance planning plant ,i think you are using standard model hence the problem occurs since work approval is only used in enhanced model
    regards
    thyagarajan

  • Error while creating the Inspection plan by T.C QP01

    Hello Friends,
    In QP01, When i am trying to create a inspection plan system throwing the error message "The inspection plan identifier exists already. Enter another."
    Message no. QP054
    But in QP02, When i checked  for that material, Plant, Group Number, Group counter, Usage, Status, i didn't find the entry over there.
    Actually my requirement is to create a inspection plan for a material and plant combination with speicfic Usage as 61(customer requirement and status 4) but when i am trying to create that system throwing the error message explained above.
    Thanks and Regards,
    Jitendra Chauhan.
    Edited by: jitendra chauhan on Jun 1, 2010 4:28 PM

    Hello Friends,
    Thanks for your valuable answers.
    I checked in table MAPL, for a particular material, Plant, Group Number and Group Counter, there is no entry.
    Where as in table PLKO, for a particular Group Number and Group Counter, entry is there. Actually this Inspection Plan Group Number and Group Counter is assigned to multiple materials through Material Assignment. If i delete the entry for this in table PLKO, than for all rest of the materials also entry will be deleted.
    Hence how to resolve this?
    Actually for other material number, same plant, same group number and same group counter, entry exist. So can i simply go in the inspection plan of other material,same plant,same group number,same group counter and than inside the material assignment to assign the required  material code, plant and the group counter number?
    Looking ahead for valuable inputs from the genius.
    Thanks and Regards,
    Jitendra
    Edited by: jitendra chauhan on Jun 2, 2010 8:09 AM

  • How to create a gui pf status and guititle in module pool programming?

    hi frnds,
    how to create a gui pf status and gui title in module pool programming?
    my problem is i created a screen and wen execute the screen by a tcode.am nt able to activate SAVE BACK EXIT CANCEL COMMANDS?.how to do this can any one explain in detail procedure?
    plz gve step by step process.

    Hi,
    For Title:In PBO...just write
    SET TITLEBAR 'ZTITLE'.
    double click on 'ZTITLE'....give whatever title u want...save it...activate...and check...reward points if useful...
    PF means FUNCTION CODE
    ex; set pf-status 'zrstatus'.
    double click on the zrstatus expand the application server ,
    at the time of execution the default menu(ie system,help),application toolbar buttons like enter,help etc and function keys(by default there will be no function keys)as are there on the normal
    will appear on the screen.
    Details:
    PF-STATUS is used to set the GUI Status of a screen, ie you can control the options on your menu bar, application toolbar, the function keys assigned to various options etc.
    Implementing the status for a screen can be done in 2 ways:
    1) Create the GUI status using the object list of the program or by using the transaction SE41. Then, assign it to the screen using SET PF-STATUS statement.
    2) Create the GUI status by means of forward navigation, ie, use the SET PF-STATUS 'XXX' statement where 'XXX' is the name of the GUI status and double click on it to create it.
    Status names can have a maximum of 20 characters.
    After assigning a GUI status to a screen, this is inherited to all subsequent screens. In order to have a different status for each of the subsequent screens, you have to set a separate status for each screen.
    In transaction SE41,
    1) Give the program name and the status name and click on the Create button.
    2) Go to 'Function keys' and expand.
    3) On top of the save icon type SAVE, on top of the back icon type BACK, on top the the exit icon type EXIT etc ie on top of all the icons that you want to use, type the respective names that you want to give.
    Whatever you have typed now becomes the function codes of these icons and can be used in your program.
    For example you have a screen 100.
    In the 'Element list' tab of the screen, give "ok_code" as the name where "OK" is the type of screen element. Activate screen.
    The flow logic for the screen looks like this:
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_0100.
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_0100.
    Create the modules STATUS_0100 and USER_COMMAND_0100 in the main program by simply double clicking on them.
    The code for these modules can be something like this:
    MODULE status_0100 OUTPUT.
    SET PF-STATUS 'Example'. "Example is the name of the GUI status
    ENDMODULE.
    MODULE user_command_0100 INPUT.
    CASE ok_code.
    WHEN 'SAVE'.
    "call a subroutine to save the data or give statements to save data.
    WHEN 'BACK'.
    LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
    LEAVE PROGRAM.
    ENDCASE.
    ENDMODULE.
    Regards,
    Shiva Kumar (Reward If helpful)

  • Create an Approval Workflow for User Creation in AD

    Hi
    Anyone, tell me how to create an approval workflow to create users into AD. For example, before provisioning user into AD resouce the request should go to the Manager of the user for approval.
    P.S: I am using OIM 9.1
    Thanks
    Sireesha

    Hi Sireesha
    You want to create a new Process definition, selecting "Approval" as the process type.
    Then associate it with the AD User Resource Object. Add a "Manager Approval" process task and use a Task Assignment Adapter to to assign the task to the manager of the request target.
    In order for the Approval Process to fire, you need to ensure that you provision the AD User Resource Object via a Request, rather than directly.
    HTH
    Cheers
    Rob

  • Objects created in a particular day

    Experts,
    Plz help me finding out the newly created objects in a particular day in the database.
    thanks in advance.
    thanks,
    baskar.l

    The dba_objects view has a column "CREATED" which can be used to get the list of object created on a specific day.
    SQL> desc dba_objects
    Name Null? Type
    OWNER VARCHAR2(30)
    OBJECT_NAME VARCHAR2(128)
    SUBOBJECT_NAME VARCHAR2(30)
    OBJECT_ID NUMBER
    DATA_OBJECT_ID NUMBER
    OBJECT_TYPE VARCHAR2(19)
    CREATED DATE
    LAST_DDL_TIME DATE
    TIMESTAMP VARCHAR2(19)
    STATUS VARCHAR2(7)
    TEMPORARY VARCHAR2(1)
    GENERATED VARCHAR2(1)
    SECONDARY VARCHAR2(1)

  • Error when create Infotype 0007-Planned Working Time of Personnel data

    Hi Experts,
    I'm creating Infotype 0007-Planned Working Time for Personnel data then having a error below.( I created Work schedule rule and Gennerated it).
    Feature structure cannot be recognized, please see documentation
    Message no. P0568
    Diagnosis
    Cause 1:
    The structure of the feature is not saved in the feature directory.
    Cause 2:
    The feature structure is not defined in the program that reads the feature.
    Cause 3:
    The feature that the program expects does not match the actual feature structure.
    Procedure
    Cause 1:
    Please advise your system administrator that all features must be regenerated. Please note that this generation must take place in client 000 first, and then in all other clients (report RPUMKF00 or the Generation function in the feature maintenance transaction (transaction PE03)).
    Cause 2:
    The feature structure must always be defined in the program reading the feature (see documentation for program RPUMKC00).
    Cause 3:
    Please contact your system administrator
    I did using T.Code PE03 in Client 000 but I don't know what is Features?
    Please tell me how solves it ?
    Thanks so much.
    Dungnv

    infotype 0007 reads two features
    SCHKZ  - Default value for Shift indicator
    TMSTA     DEFAULT VALUE FOR TIME MANAGEMENT STATUS
    Please have a look at both these features

  • Invoice Plan Status Change

    Friends,
    Here is my requirement...
    When a batch program runs (using RMMR1MIS), based on certain criteria, the Invoice plan status changes from A to C (table : FPLT-FKSAF).
    I would like to start a workflow by tracking the status change, but I do not see any default event or update in any change document....
    Thanks in advance.
    Muthu

    HI,
    Unfortunately I can only confirm that there is missing functionality
    for change management in area of MM invoicing plan. No change documents
    are created in CDHDR and CDPOS tables for any change for invoicing
    plan.
    Best Regards,
    Arminda Jack

  • Create and Approve leave's either using BAPI or IDoc

    Hello Experts,
    My requirment is to create a leave from my JSP in to SAP(Employee Login), then there will be a approval process where in my manger will approve the leave from his JSP(Manager login).
    Approach 1: If I use BAPI for this approach what are the BAPI's that I can use? I have found the below BAPI's out of which 1&2's documentation say " Using these APIs can create inconsistencies in time data.Instead, use the corresponding API Methods "ManageDelete," "ManageCreation," and "ManageChange" for the Business Object BUS7007"
    1. BAPI_ABSENCE_APPROVE
    2. BAPI_ABSENCE_CREATE
    3. BAPI_PTMGRATTABS_MNGCREATION
    Approach 2: If I use IDoc what are the Idoc types and process codes for Create and Approve leave's.
    Please help...
    Thanks in Advance,
    Suma
    Edited by: Suma B on Sep 16, 2008 4:16 PM

    Hi,
    Can you please give me the details of the workflow, I will try to get info from that to levarage.
    Thanks,
    Suma

  • 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

  • Transportation planning status

    hi all,
    for VBUK table , there is a Field TRSTA , which exemplifies Transportation planning status.
    Can anyone help me in locating the same on Sales order screen. i can find the same in Delivery--> header --> STATUS , but not anywhere in sales order. however when entered the Sales order no , i can get its value using TABLES.
    Please help me locating the same??
    Regards,
    Ujjwal

    Dear Diwakar,
    The field "TRSTA" is not available in Sales Order, simple check is if you search this field in VBAK or VBAP you dont have any results for it.
    The reason it shows the value after entering Sales order number in VBUK is because , VBUK table is directly connected to VBFA and VBAK , LIKP , VBRK tables. VBFA stores the document flow data.
    to check this just create a sales order and check in VBUK here you have TRSTA field marked blank ( not relevant ) now create a delivery and check the VBUK TRSTA ....you will see the status changed to "A" eventhough you enter sales order numner not the Delivery number.
    and you can even use billing document number to view the VBUK.
    I hope that clears your doubt.
    Regards,
    Paresh

Maybe you are looking for

  • No number range found for 01 RP_REINR SP11--Travel Manager

    Hi While creating Travel request in in Travel manager i got this error messages"No number range found fo 01 RP_REINR SP!!-Travel Manager..Plse advice me how to resolve this.. Thanks&best regds Shaila

  • Oracle RDB driver – Version 3.01.00.01 Connectivity Issue

    I have a SQL Server 2000 extended stored procedure connecting to an Oracle RDB data server via an ODBC connection (using Oracle RDB driver – Version 3.01.00.01). The SQL Server 2000 runs on a Windows 2000 Server. This extended stored procedure opens

  • How to add jar library in java?

    Hi, I am Anil, Could it possible to add library in Java library? like java.io.DataInputStream is library in Java (JDK), so I want to add my own library in Java JDK. I have created a package net.jini.j2space and one interface in it J2Space, I have cre

  • Needed Ultrasearch Query java API document

    Hi, Where i can find/download the complete ultrasearch java api documentation (i have java document only for one package i.e "oracle.context.isearch.query"). The one which is shipped with Oracle9iASv2 is incomplete. It would be great if i can have so

  • Put Saved Search in the dock.. Can't drag and drop files.

    I upgraded to OS X Mavericks yesterday. Great results I am happy with it. So much faster than Mountain Lion. (I think honestly this is why Apple made it free. So many complaining about ML being slow.. my iMac is now fast and zippy) Problem is, and I