Search This Blog

SBL-DAT-00508: Exists search not necessary for search on non-multi-valued field '%1'

Applies to:

Siebel Tools
Information in this document applies to any platform.
Product Release: V8 (Enterprise)
Version: 8.0.0.1 [20408] NLD Com/Med
Database: Oracle 10.2.0.3
Application Server OS: Microsoft Windows 2003 Server SP2
Database Server OS: Red Hat Linux 4.0

This document was previously published as Siebel SR 38-3501240955.
Reviewed for relevance June 21, 2010.

Symptoms

SBL-DAT-00508

Dear Supportweb,

We want to add a search spec on the accounts list applet that compares a single Value Field on the accounts with a MVF on the Employee.
The MVF is added to the Personalization Profile BC and therefore set as a Profile Attribute.

To achieve this we created the following Search Spec as mentioned in the Bookshelf (Siebel Personalization Administration Guide -> Managing User Profiles):
EXISTS([Market Class] = GetProfileAttrAsList('SFA Market Group'))

This results in the error:
Exists search not necessary for search on non-multi-valued field 'Market Class' (SBL-DAT-00508)

When I type in this Search Spec in a normal query in this view, I receive the same message, but in a popup. In this case I have the posibility to run the query again and see the approprate data.

Can you advise me how to suppress the error, or change the Search Spec, to get this working?

Kind regards,

Wilco van der Tol

Cause

The error was caused by using an Exists where condition on a single value field.

Solution

For the benefit of other readers, the following suggestion helped to workaround this error.

The design goal was create a search specification on the applet based on a single-value field of the business component based on a multi-value profile attribute: "Portfolio Product Id". In order to do that , the following search specification was used.


([Product Id] = GetProfileAttrAsList("Portfolio Product Id"))

There is no need to use the "EXISTS" clause when trying to write a search specification for a business component's single value field and multi-value profile attribute.

There is relevant information on the supportweb with keywords " GetProfileAttrList and "MVG". The posting with abstract "Exists search not necessary for search on non-multi-valued field" has helpful information.

Change Request 12-1LXLJWW has been logged to correct the documentation in Siebel Bookshelf 7.7. I will attach the Change Request to this Service Request so that you can track its progress. "

So, the current search spec either in the user interface or in the config is
EXISTS([Product Id] = GetProfileAttrAsList('Portfolio Product Id'))

should be

([Product Id] = GetProfileAttrAsList("Portfolio Product Id"))


Oracle Siebel Support


Applies to:

Product Release: V7 (Enterprise)
Version: 7.5.3.2 [16168] Engy/Oil
Database: Oracle 8.1.7.3
Application Server OS: Microsoft Windows 2000 Advanced Server SP 4
Database Server OS: Microsoft Windows 2000 Advanced Server SP 4

This document was previously published as Siebel SR 38-1280853567.

Symptoms

SBL-DAT-00508

Dear Support,

I have a challenge I am not sure how to solve. Desired functionality is to only pick products that correspond to a calculated field for a Product Line/Agreement Type (We are using the same values for this)

If the Calulated (Single value) Field ‘LE Agreement Type’ for instance has the value 'Telephone', I want to be able to pick all the products that are part of the Product Line 'Telephone'. The problem is that the products that are listed are only those that have this Product Line as Primary. But I also want to be able to pick products that belongs to this Product Line but that have other Product Lines as Primary. Is there any thing I can do with the Search Spec on the Picklist or de we need a total different approach here?

My current Search Spec on PickList Internal Product:
((([Product Line] = [LE Agreement Type]) OR ([LE Agreement Type] IS NULL)) AND (Sales Product Flag <> 'N'))

ps: I have tried to apply EXISTS on the Search Spec but retieves an error message because the Calculated field is a Single Value field


Kind regards,
Kjetil Tveter

Solution

Message 1

Kjetil,

Thank you for using supportweb, I have taken ownership of this service request.

I have been able to reproduce the error message : Exists search not necessary for search on non-multi-valued field '%1' (SBL-DAT-00508) here, against a standard configuration by following these steps :

(1)    Open Call Center and navigate to Site Map -> All Products
(2)    Query product line for EXISTS (*Development*)
(3)    Notice that there are records in the SAMPLE database with NON-PRIMARY product line that has *Development* in the name.
Example :
Product Name : Centrex
Part # : COM QA CENTREX01
has the following product lines : COM QA: Product in Development
and
TMI Business Services:Centrex
(4)    Now, log in to Siebel Tools and add a calculated field to the business component: Internal Product
Field Name: calc_prod_ln
Value: COM QA: Product in Development (could be any value, does not really matter)
Calculated: True.
(5)    Expose this field in the SIS Product List Applet.
(6)    Compile and run.
(7)    Navigate to Site Map -> All Products
(8)    Enter Query (Ctrl Q)
(9)    In the product line multi value field, type in: EXISTS (=[calc_prod_ln]) and execute the query
The following error message is issued: Exists search not necessary for search on non-multi-valued field 'calc_prod_ln'(SBL-DAT-00508)
If you insist, the query is done, but only the primary product lines are compared.
No records where COM QA: Product in Development is a non-primary product line show up
(continued)

Message 2

Although this test does not use a pick applet (actually, you did not mention which business component you are invoking the pick applet from, I guess it could be Opportunity Product), it queries the same business component (Internal Product), based on a MVF (Product Line) and consistently reproduces the same behavior.

I have logged change request # 12-L7HJT0 to address this issue. It should be visible to you through this service request so that you can check the progress made.

A possible workaround is to use scripting to filter the records in the pick applet, based on the fact that querying the MVF using Exists and a string variable works (item (2) above) , while using exists referencing a single vaue field (item (9) above) does not.

A similar scripting solution is suggested in Service Request #: 38-918941651 on supportweb.
You would have to change the script to query product line using exists and the actual VALUE of the calculated field. You can get the value of the calculated field using GetFieldValue.

If you need additional assistance with the scripting approach I do recommend that you log a separate service request describing the issues you are facing with the scripting approach, so that a scripting expert can properly advice you.
Or, please let me know if you would like me to open such service request on your behalf.

Best regards,

Applies to:

Product Release: V7 (Enterprise)
Version: 7.5.3 [16157]
Database: Oracle 8.1.7.4
Application Server OS: Sun Solaris 5.6
Database Server OS: Sun Solaris 5.6

This document was previously published as Siebel SR 38-1081664171.

Symptoms

SBL-DAT-00508

We have a requirement to display Service Requests assigned to the Support Groups that an Employee belongs to on a separate view called MMHS My Group's Service Request List View.

We had configured a many to many relationship between Employees and our custom Support Group BC's using the S_PARTY_PER table and this works fine as we are able to associate one or more support groups to an employee.

We also modified the Personalization Profile BC to reflect the Support Group attribute by adding a Muti Value Group field on the BC.
We followed the suggestion in Bookshelf (Profile Attributes in Siebel 7.5) for retrieving attributes in MVG fields and added a search spec to the MMHS My Queues Service Requests List Applet (based on the Service Request BC) used in the view mentioned above as follows:

EXISTS ([Owner Group] = GetProfileAttrAsList("Employee Support Group")) AND ([Service Request Type] <> 'Internal')

However, we get the following error message when we access the MMHS My Group's Service Request List View (called My Group's Service Requests) from the Application Site Map:

Exists search not necessary for search on non-multi-valued field 'Group'(SBL-DAT-00508)

Please advise as to what we need to do to make this work. We have uploaded our Tools abnd Client dbf to your FTP site. The username and password for both databases is
MMHSDEV8/MMHSDEV8.

Thank you for your assistance in this matter.

Ibi/Roxanne

Solution

Message 1

For the benefit of other users,

As documented in Siebel Personalization Administration Guide > User Profiles > Working with Multiple Value Profile Attributes > Using MVG to Improve Searches > About the GetProfileAttrAsList Function:

The example to match an MVG profile attribute and single value business component field was documented as :

Expression : EXISTS ([State] = GetProfileAttrAsList(“State”))
This expression tests whether any og the states in the MVG profile match states in the Targeted State single value BC field.

The correct expression is without the EXISTS operator.

Change Request 12-HW7MDG has been logged to correct the documentation.


No comments:

Post a Comment