Updating  a qualifier value of qualified lookup table failed

Hello,
I am trying to update  a qualifier value of qualified lookup table.
I  have written the method attached to this email.
I am not able to modify a qualifier field, that "Installation instructions DAR Update" field of "Vendor Details" table with this method call. Is there anything I am missing or not doing correctly?
Also, I noticed that in SP6 API documentation, this line in section of ModifyRecordsCommand:
Note: Qualifier values is currently not supported by this command. This command simply ignore qualifier values passed in.
First I have used this method failed. After I saw this, I tried to use ModifyRecordCommand but no success still.
I am copying my method content here. qlv1 and qlv2 is geeting new value after setQualifierFieldValue.
It will be highly appreciated if you can help me.
                boolean isUpdated = false;
          final MdmValue mval = record.getFieldValue(qualFieldID);
          qlv = (QualifiedLookupValue) mval;
          QualifiedLinkValue[] qlinkvals = qlv.getQualifiedLinks();
          for (int j = 0; j < qlinkvals.length; j++) {
               qlinkval = qlinkvals[j];
               qrec = qlinkval.getQualifiedLookupRecord();
               tabId = qrec.getTable();
               qfields = qlinkval.getQualifierFields();
               vdrec = getTSVal(tsVals, qrec);
               for (int k = 0; k < qfields.length; k++) {
                    fieldId = qfields[k];
                    fieldValue = qlinkval.getQualifierValue(fieldId).toString();
                    mstr = mdmHandle.getSchema().getField(tabId, fieldId).getName();
                    fieldName = mstr.get(MDMBase.LANG);
                    if (!(vdrec.containsKey(fieldName)))
                         continue;
                    String curTSVal = fieldValue;
                    String darTSval = vdrec.get(fieldName);
                    // If the dar updated value has different timestamp value,
                    // then it means MDM have changed the value after we sent the
                    // last export to DAR.For this case, we won't change status flag
                    if (!(darTSval.equalsIgnoreCase(curTSVal)))
                         continue;
                    FieldId updateFieldID = tsUpdateFields.get(fieldName);
                    //test
                    FieldId iid = tsUpdateFields.get("Parts Breakdown Timestamp");
                    //test
                    try {
                         MdmValue mvalTrue = MdmValueFactory
                                   .createBooleanValue(true);
                         qlv.setQualifierFieldValue(j, updateFieldID, mvalTrue);
                         //test
                         qlv.setQualifierFieldValue(j, iid, mvalTrue);
                         String qlv1 = qlv.getQualifierFieldValue(j,updateFieldID).toString();
                         String qlv2 = qlv.getQualifierFieldValue(j,iid).toString();
                         QualifiedLinkValue qlv11 = qlv.getQualifiedLinks()[1];
                         logger.info(qlv1":"qlv2);
                         //test
                    } catch (IllegalArgumentException e) {
                         // TODO Auto-generated catch block
                         e.printStackTrace();
                    isUpdated = true;
               if (isUpdated){
                    qlv.setCompleteSet(true);
                    mdmHandle.modifyRecord(record,true);
                    mdmHandle.modifyRecord(qrec,true);
Regards

Apparently you can configure the fields that are shown in the pop-up window, but it also limits the fields that are displayed on the iView of the main table.

Similar Messages

  • Get Qualifier value from Qualified table

    Hi,
    I am trying to get all the qualifier value for a qualified table. What is the best way to do it. Can I use QualifierSearchDimension to search for all the qualifier value.
    Re: Lookup [Qualified Flat] type field how to use as a query condition? link gives us a way to do this , but it talk about getting the non - qualifiers only , so How can we get the qualifier values.
    The link Search Qualifier Fields : MDM Java APIs gives us a way to this , but it is using old Java API , does anyone know how to do it using MDM API SP06.
    Thanks and Regards,
    Subhasis

    Hi Subhasis,
    The Search API's will only search for a particular value in the qualified tables. In order to read all the qualifier and non qualifier for a record, please follow the below mentioned steps.
    Assuming 'rec' is the variable that holds the reference for the current record.
    MdmValue lookUpVal = rec.getFieldValuel(<Field Id of the field>);
    com.sap.mdm.valuetypes.QualifiedLookupValue val = (com.sap.mdm.valuetypes.QualifiedLookupValue) lookUpVal;
    // Get the total number of qualified records present for that field
    int size = val.getValuesCount();
    // Iterate through each qualified record to fetch the details
    for(int i=0;i<size;i++){
        MdmValue nqVal = val.getValue(i);
       if(nqVal != null){
             MdmValue incVal = val.getQualifierFieldValue(i,<Field Id of the qualifier field value>);
    Regards,
    Ponraj M
    Edited by: Ponraj M on Jul 10, 2009 10:12 AM

  • Limiting the values in a lookup table

    Hello everyone.
    I was wondering if it is possible to limit the selectable values in a lookup table based on certain criteria, foremost the content of a separate field.
    Example:
    A product has a measurement key that determines which sizes are valid for a given product.
    Is it possible for MDM to read this key and filter the values of the table holding all the values for all keys?
    Hope that was somewhat clear what I'm trying to do.
    Best regards,
    Anders

    Hello Andres:
    I believe that what you should do is to place all the products types into Categories. There, you can give different attributes to each product and therefore, limit what the user can choose as its values.
    For instance, you have two products A and B. Each one would have a separate "Measure" field.
    Create Categories:
    Cat_A
    Cat_B
    with separate attributes:
    Cat_A
      |____ Measure_A
    Cat_B
      |____ Measure_B
    And in each Measure <b>Attribute</b> (not field) you can specify the correct values for each category (i.e Product type)
    When the user chooses Cat_A as the product type, the Measure_A will appear, with its values. The same will happend for Cat_B
    I hope that helps
    Regards
    Alejandro

  • How to Check a Value from a Lookup table??

    Hi Experts,
    I have 2 lookup tables.
    If a Value in Lk1 is selected, i need to check if that selected value is present in Lk2 table.
    Ex:
    MF table (Look up 1)
    0001
    0002
    0003
    0004
    Ecc Table (Look up 2).
    0001
    0003
    0004
    0005
    Note: User will not have access to Look up table 2.
    So, When user selects any value in MF table (Look up 1) then the validation should check if that value is present in Look uptable 2 (Ecc table).
    If present then true Else False.
    Did someboday face a similar situation!!!
    Can anyone help??
    Kind Reagrds
    Eva

    Hi Eva,
    I see your requirement this way...
    1) I will add two fields to your current Lookup table and link to one field in the main table, say the field name is LK
    2) Create a Lookup Flat Multi Valued field in the main table which will be linked to a lookup table name systems which has different remote system names used in the landscape.By this field i will be identifying whether the record is for remote system MF or Remote System ECC or both
    Say the your current Lookup table structure is
    Code
    Name
    What i do is add two fields to the current structure
    Code
    Name
    ECC
    MF
    And the sample data will be like this
    Code    Name           ECC       MF
    0001      xx              Yes      Yes
    0002      xx              No        Yes
    0003      xx              Yes      Yes
    0004      xx              Yes      Yes
    0005      xx              Yes       No
    By this way i can easily validate the record which is selected in the main table exists in ECC and MF Systems based on the systems field in the main table.
    Validaiton Code for checking the record exists in ECC
    If( HAS_ANY_VALUES(systems,ECC)=TRUE,LK1.ECC=Yes)
    Validaiton Code for checking the record exists in MF
    If( HAS_ANY_VALUES(systems,MF)=TRUE,LK1.MF=Yes)
    Regards
    Sowseel

  • Server 2010 SP2 - New values in lookup table are not updated in the user client

    Hello,
    I added a value to a lookup table in the PWA.
    Most users see the new value in the field based on this lookup table.
    One user doesn't see the update for 2 weeks now. He did close and opened the application over these 2 weeks.
    Any Idea?
    Thanks,
    Barak

    Hi Barak,
    I am assuming the issue is with PWA? Has the user tried to access PWA from a different machine/browser?Other things you can try are:
    - Reset IE settings
    - CTRL+F5 (on the page)
    If it is MS Project that doesn't have the new value, try closing MS Project and re-open it
    Hope this helps
    Paul

  • How do I handle values in source that are not in "lookup" table?

    hi there,
    I have 3 tables (all Oracle technology):
    1) Source table: CALLS with columns MSISDN, TRANS_DATE, TYPE, COST, DURATION
    2) Lookup table: SUBSCRIBERS with columns SUBSCRIBERID, MSISDN, IMSI
    3) Target table: FACT_CALLS with columns SUBSCRIBERID (not null), CALLDATE, CALLTYPE, CALLDURATION, CALLCHARGE.
    Join between source and lookup table:
    NVL(CALLS.MSISDN,0) =SUBSCRIBERS.MSISDN)
    Mappings on target:
    FACT_CALLS.SUBSCRIBERID --> SUBSCRIBERS.SUBSCRIBERID
    FACT_CALLS.CALLDATE --> CALLS.TRANS_DATE
    FACT_CALLS.CALLTYPE --> CALLS.TYPE
    FACT_CALLS.CALLDURATION --> CALLS.DURATION
    FACT_CALLS.CALLCHARGE --> CALLS.CHARGE
    I have a dummy value in SUBSCRIBERS with values MSISDN = 0, SUBSCRIBERID = 0 and IMSI = 0, to be used if MSISDN in the source table is null or does not exist in the lookup table.
    The NVL on the join takes care of the case when source MSISDN is null and this is working fine i.e. returns 0 for SUBSCRIBERID.
    The problem occurs when the source MSISDN does have a value but such a value does not exist in the lookup table, such records are rejected.
    How do I implement a solution for this?

    hi Guru,
    Yes I have 2 source tables and a target.
    1) I created a join by dragging MSISDN on CALLS to MSISDN on SUBSCRIBERS then added the NVL part to have NVL(CALLS.MSISDN,0) =SUBSCRIBERS.MSISDN)
    2) the target does not have MSISDN. Using the join the target SUBSCRIBERID column gets populated with the correct value from the lookup table.
    i.e. FACT_CALLS.SUBSCRIBERID = (select SUBSCRIBERID from SUBSCRIBERS where SUBSCRIBERS.MSISDN = CALLS.MSISDN)

  • Sum the value of look up table based on two filter criteria

    Hello Everyone
    I am new to Powerpivot and would appreciate if someone could help me on the following problem.
    You can download the example of this excel file form the following DropBox link:
    Dropbox Link
    The first table is tOrders
    Week number
    Work center
    order number
    Production time in minutes
    2
    a
    111
    60
    2
    a
    112
    70
    2
    b
    113
    60
    3
    b
    114
    50
    3
    a
    115
    40
    3
    b
    116
    60
    4
    a
    117
    90
    4
    b
    118
    40
    The second is dLookupList
    Week number
    Work center
    mantenace in minutes per week
    Break dows in minutes per week
    2
    a
    10
    10
    2
    b
    20
    5
    3
    a
    15
    12
    3
    b
    30
    10
    4
    a
    20
    10
    4
    b
    10
    10
    I’m trying to create Pivot that has filter on Week number to show the number of orders, Sum of Production time in minutes and the total of the values form the lookup table dLookupList that matches the work center and the selected week
    numbers. So that I can calculate the total time for each work center.  Filter criteria is Week number and Work center.  
    For example if someone select all weeks numbers the result sould look like this
    Week number
    (All)
    Work center
    Count of order number
    Sum of Production time in minutes
    mantenace in minutes per week
    Break dows in minutes per week
    Total time
    a
    4
    260
    45
    32
    337
    b
    4
    210
    60
    25
    295
    Grand Total
    8
    470
    Result for week 2
    Week number
    2
    Work center
    Count of order number
    Sum of Production time in minutes
    mantenace in minutes per week
    Break dows in minutes per week
    Total time
    a
    2
    130
    10
    10
    150
    b
    1
    60
    20
    5
    85
    Grand Total
    3
    190
    How can I relate these two tables to get the above result?
    Any help is highly appreciated.
    Regards
    Priyan

    Hi Recio
    Thank you very much for the swift response. I was able to get it work.
    I got two questions:
    How do you add a total time column to the pivot table like you did? Because there are no calculated field in power pivot.
    I prefer that the filter is based on the Orders table. So that if you select all Week numbers in the filter, that pivot will show result for all orders and relevant sums from the lookup list.
    Link download the example file
    For example: I add Week number 5 to the work center “a”
    Week number
    Work center
    WNandWC
    mantenace in minutes per week
    Break dows in minutes per week
    2
    a
    WN2WCa
    10
    10
    2
    b
    WN2WCb
    20
    5
    3
    a
    WN3WCa
    15
    12
    3
    b
    WN3WCb
    30
    10
    4
    a
    WN4WCa
    20
    10
    4
    b
    WN4WCb
    10
    10
    5
    a
    WN5WCa
    1
    1
    In the orders table there are no records for week number 5
    Week number
    Work center
    WNandWC
    order number
    Production time in minutes
    2
    a
    WN2WCa
    111
    60
    2
    a
    WN2WCa
    112
    70
    2
    b
    WN2WCb
    113
    60
    3
    b
    WN3WCb
    114
    50
    3
    a
    WN3WCa
    115
    40
    3
    b
    WN3WCb
    116
    60
    4
    a
    WN4WCa
    117
    90
    4
    b
    WN4WCb
    118
    40
    4
    a
    WN4WCa
    119
    50
    But the pivot sums up the week number 5 also.
    Do you have any idea how to solve it?
    Thank you very much.
    Regards
    Priyan

  • Problem with lookup-table and single quotes

    SOA Suite 10.1.3.3. I have an ESB project with an XSLT map that uses orcl:lookup-table to translate values. I use this instead of lookup-dvm because I want non-IT users to manage the mappings without having access to the ESB Console.
    According to the doco:-
    G.1.79 lookup-table
    orcl:lookup-table(table, inputColumn, key, outputColumn, datasource)
    This function returns a string based on the SQL query generated from the parameters.
    The string is obtained by executing:
    SELECT outputColumn FROM table WHERE inputColumn = key
    The problem I'm having is that it seems if "key" contains a single quote (i.e an apostrophe), then lookup-table fails to find the corresponding value - even though the value in table.inputColumn also contains the single quote.
    I've put the incoming into an XSL variable, but to no avail.
    <xsl:variable name="incoming">
    <xsl:value-of select="/obj1:DEV_MESSAGE_TYP/DATA1"/>
    </xsl:variable>
    <xsl:variable name="dvm-text">
    <xsl:value-of select="orcl:lookup-table('MYTABLE','INVAL',$incoming,'OUTVAL','ds/dev')"/>
    </xsl:variable>
    Are there any XSLT Gurus out there that have come across this or can think of ways around it?
    Thanks in advance...
    Regards,
    Greg

    Ok - the above was on the right track but wasn't 100% because it can't handle more than 1 single quote (apostrophe) in the input to lookup-table.
    I've since found a better solution - an XSLT re-usable template that operates recursively and so can replace multiple occurances of single quotes. I've modified it to handle a null input value, otherwise lookup-table will just return the value of the first row in the lookup table - doh! The way I've done it below, if null is passed in, then null will be returned.
    This goes at the top of your XSLT map file...
    <!-- reusable replace-string function -->
    <xsl:template name="replace-string">
    <xsl:param name="text"/>
    <xsl:param name="from"/>
    <xsl:param name="to"/>
    <xsl:choose>
    <xsl:when test="contains($text, $from)">
         <xsl:variable name="before" select="substring-before($text, $from)"/>
         <xsl:variable name="after" select="substring-after($text, $from)"/>
         <xsl:value-of select="$before"/>
         <xsl:value-of select="$to"/>
    <xsl:call-template name="replace-string">
    <xsl:with-param name="text" select="$after"/>
    <xsl:with-param name="from" select="$from"/>
    <xsl:with-param name="to" select="$to"/>
         </xsl:call-template>
    </xsl:when>
    <xsl:when test="$text=''">NULL</xsl:when>
    <xsl:otherwise>
    <xsl:value-of select="$text"/>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:template>
    Then you call it from within the XSLT map as follows:-
    <!-- if contains a single quote, replace with 2x single quotes. This makes lookup-table work! -->
    <xsl:variable name="incoming">
    <xsl:call-template name="replace-string">
    <xsl:with-param name="text" select="inp1:myinputfield"/>
    <xsl:with-param name="from">'</xsl:with-param>
    <xsl:with-param name="to" select="'&amp;apos;&amp;apos;'"/>
    </xsl:call-template>
    </xsl:variable>
    <xsl:variable name="dvm-text">
    <xsl:value-of select="orcl:lookup-table('MYLOOKUPTABLE','INVAL',$incoming,'OUTVAL','ds/dev')"/>
    </xsl:variable>
    <!-- lookup-table returns null if input value not found. Output original value instead -->
    <xsl:choose>
    <xsl:when test="$dvm-text=''">
    <xsl:value-of select="inp1:myinputfield"/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:value-of select="$dvm-text"/>
    </xsl:otherwise>
    </xsl:choose>
    Much Thanks to everyone who shares information and methods on the Internet!
    Cheers,
    Greg

  • Search by qualified parameter in a LookUP Qualified Flat Multi Valued Table

    I am working  on a MDM development but I am having some problems the development consists in searching in MDM a certain key but the thing is that this value is stored in a Look up qualified flat multi valued table, I have implemented a code that gives me the correct results but it takes a lot of time because it goes through all the main table the ideal would be to search directly for this value but as it is in a look up qualified  multi valued table I dont know how to implement this kind of search, do you have an idea how to implement this.
    Main Table : ING_ROLE_PLAYER
    Lookup qualified flat multi valued table : ILYTICS_SEARCH_KEY, this table has two qualifiers KEY_TYPE and SEARCH_KEY
    I receive a string that represents a SEARCH KEY as a parameter to look into MDM and get some data this is I want to search using a qualifier parameter as a search parameter.
    If anybody could help me it would be vey helpful
    Best Regards
    Michele González

    Hi Michele,
    Try the following code :
    String searchKey="/the value of the input searchkey/";
    // create a catalog object
    CatalogData catalog = new CatalogData();
    // create a search object on the main table.
    Search search = new Search("ING_ROLE_PLAYER");
    // create a resultset definition on the main table
    ResultSetDefinition rsd = new ResultSetDefinition("ING_ROLE_PLAYER");
    A2iResultSet result=null;
    // adding a free-form limiting for the specified table
         FreeFormTableParameter fftpRole = search.GetParameters().NewFreeFormTableParameter("ING_ROLE_PLAYER");
    //add a new table 'ILYTICS_SEARCH_KEY'-the qualified lookup table to the search object.
         FreeFormTableParameter fftpKeys =  search.GetParameters().NewFreeFormTableParameter("ILYTICS_SEARCH_KEY");
    // get the field 'SEARCH_KEY' of the 'ILYTICS_SEARCH_KEY' table for free-form search.
         FreeFormParameterField fftpKey = fftpKeys.GetFields().New("SEARCH_KEY",FreeFormParameterField.SEARCH_OPERATOR_AND);
    //add a free-form search parameter for 'SEARCH_KEY'
         fftpKey.GetFreeForm().NewString(searchKey,FreeFormParameter.EqualToSearchType);
    // obtain the result set
         result = catalog.GetResultSet(search, rsd, "/any field name in main table and resultset definition/", true, 0);
    Hope it helps.
    Pls reward, if helpful.
    Regards,
    Karambir Singh.

  • Insert a record in Qualified Lookup Table

    Hello everyone,
    I need code to insert a record in Qualified Lookup Table where the non-qualifier is a record of type Country. Other fields are qualifiers.
    I tried using QualifiedLookupValue.createQualifiedLink(). However, this only helps to insert in the qualifier values, how can I insert the non-qualifier (Country) value?
    Any idea?
    Many thanks in advance,
    Baez

    Hi guys,
    Maybe the answer comes late but i'm recently working on this and the API works for me to create and update qualifier values.
    Suppose recordMain is the main record, fldQFT is the qualified lookup field in main table, fldQualifier is the qualifier field in QFT table.
    To add qualifier value you can use:
    QualifiedLookupValue qualifiedLookupValue = new QualifiedLookupValue();
    int index = qualifiedLookupValue.createQualifiedLink(recordMain.getId());
    qualifiedLookupValue.setQualifierFieldValue(index, fldQualifier, MdmValue);
    recordMain.setFieldValue(fldQFT, qualifiedLookupValue);
    To update qualifier value, use:
    QualifiedLookupValue qualifiedLookupValue = (QualifiedLookupValue) recordMain.getFieldValue(fldQFT);
    qualifiedLookupValue.setQualifierFieldValue(index, fldQualifier, MdmValue);
    recordMain.setFieldValue(fldQFT, qualifiedLookupValue);
    Regards,
    James

  • Error while inserting value Qualified field in the main table

    Hello,
    I am trying to populate Qualified field in the main table when a new record is inserted in the Products Repository.
    The field is Reference Price and its a qualified lookup field. I am using the below code to create qualified lookup value and create qualified link values.
    QualifiedLookupValue qlvRefPrice = new QualifiedLookupValue();
    TableId qltabid = repSchema.getTableId("ReferencePrices");
    FieldId qlfieldid = repSchema.getFieldId("ReferencePrices","RP_ReferncePrices");
    RecordId rdRefPrice = getRecordId(connPool,session,"RP",qlfieldid,qltabid);
    HashMap map = new HashMap();
    map.put(repSchema.getFieldId("ReferencePrices","StartDate_ReferencePrice"),new DateTimeValue(cal));
    map.put(repSchema.getFieldId("ReferencePrices","EndDate_ReferencePrice"),new DateTimeValue(cal));
    map.put(repSchema.getFieldId("ReferencePrices","ListPrice"),new FloatValue(Float.parseFloat("123.3")));
    map.put(repSchema.getFieldId("ReferencePrices","Currency"),new LookupValue(getLookupRecordId(connPool,session,"Currencies","Currency_Currencies","EUR")));
    QualifiedLinkValue qlvLinkValue = MdmValueFactory.createQualifiedLinkValue(rdRefPrice,map);
    qlvRefPrice.addValue(qlvLinkValue);
    emptyRecord.setFieldValue(fieldIdRefPriceHistory,qlvRefPrice);
    However when the createrecord command is executed I get the following error.
    java.lang.RuntimeException: No matching validation Id 97. at com.sap.mdm.internal.validation.ValidationInfoHelper.retrieveValidations(ValidationInfoHelper.java:71) at com.sap.mdm.data.commands.CreateRecordCommand.execute(CreateRecordCommand.java:246) at com.alcatel_lucent.productdetail.ProductItemDetail_Comp.createProduct(ProductItemDetail_Comp.java:2927) at com.alcatel_lucent.productdetail.wdp.InternalProductItemDetail_Comp.createProduct(InternalProductItemDetail_Comp.java:656) at com.alcatel_lucent.productdetail.ProductItemAddView.onActionSave(ProductItemAddView.java:971) at com.alcatel_lucent.productdetail.wdp.InternalProductItemAddView.wdInvokeEventHandler(InternalProductItemAddView.java:662) at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87) at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doHandleActionEvent(WindowPhaseModel.java:420) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:132) at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335) at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143) at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:332) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingPortal(ClientSession.java:761) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:696) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:253) at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149) at com.sap.tc.webdynpro.clientserver.session.core.ApplicationHandle.doProcessing(ApplicationHandle.java:73) at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.sendDataAndProcessActionInternal(AbstractApplicationProxy.java:869) at com.sap.tc.webdynpro.portal.pb.impl.localwd.LocalApplicationProxy.sendDataAndProcessAction(LocalApplicationProxy.java:77) at com.sap.portal.pb.PageBuilder.updateApplications(PageBuilder.java:1356) at com.sap.portal.pb.PageBuilder.SendDataAndProcessAction(PageBuilder.java:327) at com.sap.portal.pb.PageBuilder$1.doPhase(PageBuilder.java:869) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processPhaseListener(WindowPhaseModel.java:755) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doPortalDispatch(WindowPhaseModel.java:717) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:136) at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335) at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143) at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:332) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:741) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:694) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:253) at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149) at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62) at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364) at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039) at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265) at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95) at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(AccessController.java:219) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:104) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)      
    I spoke to my MDM team and they say there is no validation which they have put for Reference Price field. I have tried inserting values in another field of type qualified lookup in the same main table and that works without any issue.
    The code is as below:
    QualifiedLookupValue qlvRating = new QualifiedLookupValue();
    TableId qlvtable = repSchema.getTableId("ProductRatings");
    FieldId qlvratinglink = repSchema.getFieldId("ProductRatings","RatingLink");                    
    RecordId rdidPR = getRecordId(connPool,session,"CI",qlvratinglink,qlvtable);
    wdComponentAPI.getMessageManager().reportSuccess("rdidPR "+rdidPR);
    HashMap mapPR = new HashMap();
    mapPR.put(repSchema.getFieldId("ProductRatings","AvailRating"),new LookupValue(getLookupRecordId(connPool,session,"AvailabilityRatings","AvailabilityRating_AvailabilityRatings","CI")));
    mapPR.put(repSchema.getFieldId("ProductRatings","EffectiveDate"),new DateTimeValue(cal));
    mapPR.put(repSchema.getFieldId("ProductRatings","FERAIndic"),new LookupValue(getLookupRecordId(connPool,session,"ReplacementIndicators","Code","FE")));
    mapPR.put(repSchema.getFieldId("ProductRatings","FERAOrdItem"),new LookupValue(getLookupRecordId(connPool,session,"ReplProducts","ProdID","100008200")));
    QualifiedLinkValue qlvLink = MdmValueFactory.createQualifiedLinkValue(rdidPR,mapPR);
    qlvRating.addValue(qlvLink);
    emptyRecord.setFieldValue(fieldIdRatingHistory,qlvRating);     
    I would really appreciate if someone can help in solving the issue.
    Thanks in advance,
    Aamod

    Hi Aamod,
    Sees that some validation/assignments are getting triggered as soon as you make changes to the record in MDM. Please check once after removing validations/workflow that you may have. This way you may debug the issue.
    Hope this helps!!
    Cheers,
    Arafat

  • Error in Import to Qualified lookup table

    A qualified look up table has 1 Non qualifier and 8 qualifiers.Non qualifier values are X and Y.Records were imported from excel sheet to QLT.
    In the first trial, for a NQ 'X' all the qualified values of Y have got imported and vice versa .
    Now, I need to replace , Value X with Y in non qualifier and retain all Qualifier values. While doing this, a new record is getting appended in the QLT with NQ 'Y'.
    How can record appending in QLT be avoided by replacing only Non Qualifier values?
    Need very quick help on this please.
    Regards,
    Vinay M.S

    Hi Vinay,
    Set the qualified update to Replace for the non qualifier in the destination fields in Map Fields/
    Values pane.
    Best Regards,
    Silpa Chillakuru

  • Qualifier values are not part of a qualified lookup record

    Hi
         I am getting the exception "Qualifier values are not part of a qualified lookup record" when I serach for a record in the Qualified table. The Table has both Qualfier and non-Qualifier fields, but all are of type display fields.
    My question is If the filed is of type Qualifier then is it mandatory that it should be non-display Field?
    if  not can any one suggest me to get the record.
    If we make Qualifier fields as NON-Dispaly fields in repository then it is working fine.
    Here with I am providing the code
                   Search serarch = new Search(repoSchemaCmd.getRepositorySchema().getTable("QT_NOTES").getId());
                   serarch.addSearchItem(new FieldSearchDimension(repoSchemaCmd.getRepositorySchema().getFieldId("QT_NOTES","USER_PMF_ID")),new TextSearchConstraint("test", TextSearchConstraint.EQUALS));
                   ResultDefinition rd =new ResultDefinition(repoSchemaCmd.getRepositorySchema().getTable("QT_NOTES").getId());
                   //Returns the array of IDs for all display fields associated with the table
                   rd.setSelectFields(repoSchemaCmd.getRepositorySchema().getTableSchema("QT_NOTES").getDisplayFieldIds());
                   RetrieveLimitedRecordsCommand retrievedRecords =new RetrieveLimitedRecordsCommand(conn);
                   retrievedRecords.setSession(userSessionID);
                   retrievedRecords.setSearch(serarch);
                   //retrievedRecords.setIds(RID);
                   retrievedRecords.setResultDefinition(rd);
                   try {
                        retrievedRecords.execute();
                   } catch (CommandException e) {
                        throw new CommandException(e);
    Regards,
    Sandeep.

    Hi Sandeep
    I have a similar problem, would like to know what is the resolution to this issue.
    Regards
    Dilip

  • Qualified Lookup Table in Webdynpro Content Generator

    I am trying to build a user interface with the webynpro component generators from the business content deployed on the portal.  The problem I face is with qualified lookup tables.  From the main table, there is an embedded table which contains the qualified lookup table.  I can press the "edit" button to open a pop-up window which shows the details of the qualified link.  Unfortunately, on MDM 7.1 SP05, the pop-up window contains a table at the top of the screen that forces the entire window to span the width of the table, which will go on quite far because I have about 20 fields in my qualified lookup table.  Below I can enter the values for the individual fields, but it is difficult to use because you have to scroll all the way to the right to select drop down values.  Is there a way to remove the summary table from the pop-up window for qualified lookup tables?  I havent seen an option in the UI config.

    Apparently you can configure the fields that are shown in the pop-up window, but it also limits the fields that are displayed on the iView of the main table.

  • Qualified values append,update

    Hello,
    here is my scenario.
    I have imported qualified tavble along with main table.
    Qualified table initial value:
    Non Qualifier 1:X
    Non Qualifier 2:Y
    Qualifier 1:time stamp1
    Qualifier 2:blank
    Qualifier 3:blank (time stamp)
    now i got delta load where i got Qualifier 2 and qualifer 3 values ( time stamp2) as well as i got now record with same values as initial values of first entry i.e at the time of delta load i wanted qualified table like below.
    Non Qualifier 1:X
    Non Qualifier 2:Y
    Qualifier 1:time stamp1
    Qualifier 2:a
    Qualifier 3:time stamp2
    Non Qualifier 1:X
    Non Qualifier 2:Y
    Qualifier 1:time stamp2
    Qualifier 2:blank
    Qualifier 3:blank (time stamp)
    in short i want 1st entry of qualified table to be updated with 2 values and 2nd entry to be inserted (As new entry) when i import delta load.
    any suggestions....would help
    thanks
    Bindi

    Hi,
    When u hv more than one Non-Qualifiers in ur Qualified Table & all are Display fields then U need to create Compound Field.
    Check this blog to understand why & how to create Compound Field:
    /people/pooja.khandelwal2/blog/2006/03/29/taming-the-animal--qualified-tables
    On left hand side open ur source file & on right hand side Select ur Main Table.
    Now map at least one unique field of main table ( To update its Qualified Link)
    Map ur Non-Qualifier (Non Qualifier 1 or Non Qualifier 2... Which ever is display field) & Qualifiers properly
    Now right click on Non Qualifier 1 field (Destination Side).............  Choose Set Qualified Update -->Update
    U will see new Window......... Here Add Qualifier 1 to Matching Qualifiers side
    New Links: Create
    Existing Links: Update (All Mapped Qualifiers).
    Dont forget to map atleast 1 field from Main Table.
    In Match Records Tab make Import Action as Update (All Mapped Fields)
    And now import
    Thanks,
    Maheshwari

Maybe you are looking for