Search This Blog

SBL-DAT-60236: Expression does not match any Siebel query language grammar rules. Unexpected token '%1' found at or near location %2.

In this Document
  Symptoms
  Cause
  Solution
  References


This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.

Symptoms

Statement of what the issue is
Using Siebel SIA 8.0.0.5 [20420] Universal Customer Master application with third party Trillium product for real-time data quality.

When attempting to match records with fields that contain a special character in them, for example, the apostrophe, ', the following error occurs:

ERROR
-----------------------
SBL-DAT-00354: The query could not be run because the criteria for field '' contained an invalid arithmetic expression. Please ensure that the search criteria is correctly formatted.

This error is often caused by a missing operator (e.g. = or <) or missing quotes. If you aren't sure what may have caused this please contact your systems administrator.

SBL-DAT-60236: Expression does not match any Siebel query language grammar rules.

STEPS
-----------------------
By following these steps the issue can be reproduced:
1. Set up the Universal Connector for data quality matching and set client/object manager to use the appropriate type
2. Set the real-time data matching settings in Administration - Data Quality > Data Quality Settings:
3. Amend the Account Token Expression and Account Query Expression to allow you to capture a suitable number of characters from the address
4. Logout and in again for changes to take effect
5. Enter two accounts e.g. Test Account with site 1 and Test Account with site 2
6. After the second account has been saved, the deduplication popup should show the first as a match
7. Check S_DQ_ORG_KEY table to make sure that Universal Connector is being used - there should be  two records with KEY_VALUE = _____T_____
8. Now add an address to one of them and save it, e.g.
      Street Address = A Place in the Sun
      City = Redwood Shores
      State = CA
      Zip Code = 11111
      Country = USA
9. Check the S_DQ_ORG_KEY table. The key should now be '11111TA PLA'
10. Now add an address with an apostrophe (') to the other account and save it, e.g.
      Street Address = A'Place in the Sun
      City = Redwood Shores
      State = CA
      Zip Code = 11111
      Country = USA
11. Receive the following error message:

[1] Invalid search specification '[DQ System Id] = '1-AIZ3' AND [Parent Id] LIKE '1-CF1T' AND [Key Value] NOT LIKE '11111TA'PLA''.
Please continue or ask your systems administrator to check your application configuration if the problem persists.(SBL-DAT-00501)

[2] Expression does not match any Siebel query language grammar rules. Unexpected token 'PLA' found at or near location 90.(SBL-DAT-60236)

EXPECTED BEHAVIOR
-----------------------
The customer expects that Siebel can handle special characters when performing data matching with third party products via the Universal Connector.

Cause

The cause was determined to be a new product defect.

The following two change requests were logged for this issue:

Bug 12-1V418BZ - SBL-DAT-60236 error message when using Universal Connector with an apostrophe
Bug 12-1V9U44R - UCM dedup token generation expression is causing BDM workflow to fail in 'CDM Match' step

The first (Bug 12-1V418BZ) addresses the real-time user interface scenario and the second (Bug 12-1V9U44R) addresses the integration scenario. The cause is that neither the search specification for the 'Key' business component (e.g. Account Key, Contact Key, Prospect Key) nor the 'Dedup Token' field in the Account, Contact or List Mgmt Prospective Contact business components can handle special characters.

Solution

The problem has been fixed in the following fix packs:

- 8.0.0.9 fix pack and higher

Alternatively, if you are unable to apply 8.0.0.9 fix pack or higher, the following quick fixes were built although they may not be available for all supported languages/operating systems:

- 8.0.0.7 QF0745
- 8.0.0.2 QF02C6/8.0.0.2 QF02D2 (both are needed)

References

BUG:12-1V418BZ - SBL-DAT-60236 ERROR MESSAGE WHEN USING UNIVERSAL CONNECTOR WITH AN APOSTROPHE
BUG:12-1V9U44R - UCM DEDUP TOKEN GENERATION EXPRESSION IS CAUSING BDM WORKFLOW TO FAIL IN 'CDM MATCH' STEP
NOTE:476946.1 - How Can You Implement a Replace String Function in eScript?

Applies to:

Siebel CRM - Version: 8.0 [20405] and later   [Release: V8 and later ]
Information in this document applies to any platform.

Symptoms

Whilst querying with an apostrophe in the user interface in the Name field the following errors were seen:

The query could not be run because there is an invalid character in the field 'Name'. Please ensure that the value in the field is formatted correctly with only valid characters.

Missing quotes around the search criteria or unnecessary punctuation will often cause an error.(SBL-DAT-00403).

Normally if querying for Jack's for example, one would expect to receive an error. The normal way to accommodate such queries including special characters is to surround the query within speech marks, for example "Jack's". However this did not work either.

Cause

The issue related to some custom eScript that was being used to ensure that users populated certain fields in the user interface.

An example exhibiting the same behaviour is shown below. This was used on the Account business component.

function BusComp_PreQuery ()
{
  var sName = GetSearchSpec("Name");
}

Through testing, it was found that the only special character that would not work in the query was the apostrophe. Other characters such as the following worked fine:

; , . @ # \ | + - = [ ] & *

The same behaviour was also seen in 7.7.2.6, so it is likely widespread across the application versions.

Bug 12-1LG178H: "GetSearchSpec on field in BusComp_PreQuery Event with UI query including apostrophe causes error" was raised as a product defect to address this problem for a future product release.

Solution

The following workarounds were suggested to the customer:

1. Instead of querying for "Jack's", try querying for "'Jack''s'". e.g. double quote, single quote, Jack, single quote, single quote, s, single quote, double quote.

2. Take the GetSearchSpec method off the field and utilise it on alternative fields.

3. Use a Try-Catch-Finally statement to catch the error. More details can be found here:
- Siebel eScript Language Reference > Siebel eScript Language Overview > Siebel eScript Statements > try Statement

4. Alternatively, use the GetSearchExpr() function and do string manipulation to check that relevant fields are populated. More details of this function can be found here:
- Siebel Object Interfaces Reference > Interfaces Reference > Business Component Methods > GetSearchExpr Method

The customer decided to use an alternative instead by basically reconstructing the string and replacing the ' with an * on the PreQuery event.

Keywords: SBL-DAT-60236, SBL-DAT-00354, SBL-DAT-00501, SBL-DAT-00403


Applies to:

Siebel CTI - Version: 8.1.1 [21112] and later   [Release: V8 and later ]
Information in this document applies to any platform.

Symptoms

After upgrading to Gplus adapter to 7.5.000.51 the customer no longer received screen pops for inbound calls.

Even though all the EventHandler FilterSpec criteria were being met in the Scomm log file we would see the following:

DPATEL_37748770[07/09/2010 15:10:54:922]:DEBUG:Found no matching EventHandler

Cause


=== ODM Cause Determination ===

In the Scomm log file when the configuration was loaded we could see the following:

SADMIN_10485773[07/19/2010 12:46:07:968]:DEBUG:BuildPreProcessData begin
SADMIN_10485773[07/19/2010 12:46:07:968]:DEBUG:BuildPreProcessData end
SADMIN_10485773[07/19/2010 12:46:07:968]:DEBUG:BuildAgentCfg_New begin
SADMIN_10485773[07/19/2010 12:46:07:968]:DEBUG:GetAgentCfg end

"BuildAgentCfg_New begin" but there is no "BuildAgentCfg_New end".

Also, in the OM log file we could see the following error message:

ObjMgrQueryLog Warning 2 000000024c3f0d48:0 2010-07-15 20:56:11 (query.cpp (13952)) SBL-DAT-60236: Expression does not match any Siebel query language grammar rules. Unexpected token '{' found at or near location 59.

ObjMgrLog Warning 2 000000024c3f0d48:0 2010-07-15 20:56:11 (query.cpp (2634)) SBL-DAT-00501: Invalid search specification 'NOT [$GetCommandStatus(IsInteractionView)] = 'Enabled' and {@Phone:PhoneTypeLookup}'.

In the .def file we had the following Command defined:

[Command:MakeCallToPhone]
Description = "Make Call to "{@Phone}""
DeviceCommand = "MakeCall"
FilterSpec = "NOT [$GetCommandStatus(IsInteractionView)] = 'Enabled' and {@Phone:PhoneTypeLookup}"
Hidden = "TRUE"
OnEditControl = "TRUE"
Profile = "Gplus Voice"
CmdData = "MakeCallToPhone"

If the same change is made in a standard environment then the same behavior is seen.

The issue is caused by the {} brackets around the @Phone:PhoneTypeLookup in the Command FilterSpec

NOT [$GetCommandStatus(IsInteractionView)] = 'Enabled' and {@Phone:PhoneTypeLookup}

This behavior was deemed to be a product defect and CR# 12-1Z1L7WJ was raised for this matter.

Solution


=== ODM Solution / Action Plan ===

To solve the issue in the command MakeCallToPhone change the FilterSpec as follows:

NOT [$GetCommandStatus(IsInteractionView)] = 'Enabled' and {@Phone:PhoneTypeLookup}

It should be something like:

NOT [$GetCommandStatus(IsInteractionView)] = 'Enabled' and [@Phone:PhoneTypeLookup] IS NOT NULL



Applies to:

Siebel Tools - Version: 8.0.0.1 [20408] to 8.0.0.3 [20416] - Release: V8 to V8
Information in this document applies to any platform.
Product Release: V8 (Enterprise)
Version: 8.0 [20405] 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-3455974081.

Symptoms

SBL-DAT-60236

We encountered a problem when setting all LOV entries for the COUNTRY LOV to Multilingual.
The values that contain a single quote in the displayvalue or in the Language Independent Code, can not be set to Multilingual. When you try to change anything to these records they give an error.

We now removed all single quotes from the COUNTRY LOV, so we could set them to Multilingual.

Cote D'ivoire
Korea, Democratic People's Rep
Lao People's Democratic Republ

Bahama's (NLD)

Please let us know if this is the expected behaviour.
Is there a workaround to be able to use single quote's in multilingual LOV's.

Cause

Product defect - change request 12-1K5DYEJ

Solution

The customer noticed that in Siebel 8 a validation error meesage occurs when trying to save a List of Values (LOV) record that contains an apostrophe (single quote) character in either the Display Value or Language Independent Code field.

The error encountered on trying to saving the LOV record in the LOV administration screen was:

Invalid search specification '[Type] = 'AAG_ACCOUNT_TYPE' AND [Language] = 'ENU' AND (([Name] = 'Banking'' AND [Value] <> 'Banking' OR ([Value] = 'Banking' AND [Name] <> 'Banking'')) AND [Id] <> 'OVF-1L699"

Expression does not match any Siebel query language grammar rules. Unexpected token 'Banking' found at or near location 93. SBL-DAT-60236

This error occurs due to the second quote character appearing in the search specification expression that was generated by Siebel 8 as part of new validation logic. For example [Name] = 'Banking''

In previous versions of Siebel it was possible to enter and store LOV records that including the single quote character.

Issue was addressed by change request 12-1K5DYEJ which was fixed in Siebel 8.0.0.3 Fix Pack and is not present in Siebel 8.1.

The only workaround is to not enter single quote characters in to either the Display Value or LIC field of LOV records.

Keywords: WriteRecord; Write; Record; LOV; List; Values; Display; Value; Language; Independent; Code; Validate; search; spec; specification; quote; apostrophe.

Applies to:

Siebel Tools - Version: 8.1.1.1 [21211] and later   [Release: V8 and later ]
Information in this document applies to any platform.

Goal


When doing a full compile, I end up with an SRF that is smaller than it should be and is not usable by the server or client. I am connected directly to the server database. This problem is intermittent - sometimes it produces a usable SRF, sometimes it doesn't - with no changes to anything.
This intermittent behavior is happening on a Windows 2003 PC.


Solution


This incorrect behavior was happening for one Siebel Tools client on a windows 2003 box.

Siebel client side logging was enabled for the Siebel Tools client using the Siebel_Log_Events environment variable.  The client side logging for Siebel Tools generated a siebdev.log file with the following types of errors.

ObjMgrQueryLog Warning 2 000000024c400300:0 2010-07-16 13:06:32 (query.cpp (13952)) SBL-DAT-60236: Expression does not match any Siebel query language grammar rules. Unexpected token '(' found at or near location 21.

ObjMgrLog Warning 2 000000024c400300:0 2010-07-16 13:06:32 (query.cpp (456)) SBL-DAT-00403: The query could not be run because there is an invalid character in the field 'Name'. Please ensure that the value in the field is formatted correctly with only valid characters.

After reviewing the Siebel Tools installation and environment, it was determined that the operating system of windows 2003 is not a supported operating system for the Siebel Developer Client per the
Siebel System Requirements and Supported Platforms documentation.

See the Siebel System Requirements and Supported Platforms > Client Environment Requirements >
Requirements for Employee Applications
Software Requirements for the Siebel Developer Web Client

But, it is not very clear that Employee Applications would include Siebel Tools.

Therefore a documentation defect was raised to address this unclear documentation.

Siebel Tools Product Management confirmed that the following operating systems are the supported platform for Tools/Dclient as per Siebel System Requirements and Supported Platforms documentation.

WinXP

Win7

Vista

Win2000

Note that Win2003 and Win2008 are not supported clients for Tools/Dedicated client.

Change Request CR 12-1Z9S19D is a documentation defect noting that the
System Required and Supported Platforms should be much clearer for Siebel Tools

SUMMARY
The system platforms discusses the environment requirements for Employee applications.
But it is not obvious that Siebel Tools is considered an Employee Application like a Siebel thin client running Siebel Call Center.

Siebel Tools is a considered a different application than a Siebel client application.

DESIRED DOCUMENTATION
The documentation should have a separate listing for Siebel Tools clients.

Siebel
System Requirements and Supported Platforms > Client Environment
Requirements >

Requirements for Employee Applications

Add a separate section for Siebel Tools.

Siebel System Requirements and Supported Platforms > Client
Environment Requirements >

Requirements for Siebel Tools

The recommendation was given to use a different PC with a supported platform for the Siebel Tools client.

Oracle Siebel Support

References

BUG:12-1Z9S19D - SYSTEM REQ SUPPORTED PLATFORMS SHOULD BE MUCH CLEARER FOR SIEBEL TOOLS

Applies to:

Siebel Reports - Version: 8.1.1 [21112] and later   [Release: V8 and later ]
Information in this document applies to any platform.

Symptoms


Siebel Tools displays an error when generating Actuate Reports that include fields associated with Multivalue Links that have brackets in their names. The following error message appears:

The query could not be run because there is an invalid character in the field 'Name'. Please ensure that the value in the field is formatted correctly with only valid characters. Missing quotes around the search criteria or unnecessary punctuation will ofthen cause an error." "Expression does not match any Siebel query language grammar rules. Unexpected token '(' found at or near location 21" (see screen shots).

ObjMgrQueryLog Warning 2 000000024b85100c:0 2010-02-25 09:50:24 (query.cpp (14029)) SBL-DAT-60236: Expression does not match any Siebel query language grammar rules. Unexpected token '(' found at or near location 21.

ObjMgrLog Warning 2 000000024b85100c:0 2010-02-25 09:50:24 (query.cpp (456)) SBL-DAT-00403: The query could not be run because there is an invalid character in the field 'Name'. Please ensure that the value in the field is formatted correctly with only valid characters. Missing quotes around the search criteria or unnecessary punctuation will often cause an error.



STEPS TO REPRODUCE THE ISSUE

1. Install Siebel CRM 8.1.1.2 Fix Pack on Siebel Tools.

2. Launch Siebel Tools.

3. Create a Report object that contains a 'Sub Report' which has fields coming from a Multi Value Link. Make sure that the 'Name' property of the Multi Value Link object under the Business Component  contains parenthesis.

4. Try to 'Generate Actuate Report' using Tools menu > Utilities > Generate Actuate Report option.The generation of ROL fails with above mentioned error.

Cause

The issue has been caused due to the following:

1. The parenthesis character in the 'Name' property of a Multi Value Link are being parsed during the generation of Actuate ROL file.

2. Siebel's internal code fails to generate the ROL when the '(' character is found in the 'Name' property.

Solution

A Product Defect CR# 12-1XLAKV5 (SIEBEL TOOLS - GENERATE ACTUATE ROL FAILS WHEN REPORT FIELD USES A MULTI-VALUE FIELD) has been logged to address this issue in a future Siebel release.

WORKAROUND

The issue can be resolved by NOT using parenthesis in 'Name' property. This way it will not impact the ROL Generation.

References

BUG:12-1XLAKV5 - SIEBEL TOOLS - GENERATE ACTUATE ROL FAILS WHEN REPORT FIELD USES A MULTI-VALUE FIELD

Applies to:

Siebel Tools
Information in this document applies to any platform.
Product Release: V8 (Enterprise)
Version: 8.0 [20405] ESN Fin Svcs
Database: Microsoft SQL Server 2005
Application Server OS: Microsoft Windows 2003 Server SP2
Database Server OS: Microsoft Windows 2003 Server SP2

This document was previously published as Siebel SR 38-3461315051.
""""Checked for relevance on 03-Mar-2010""""

Symptoms

We are adjusting ours LOV after the Upgrade and we are founding a problem when activating or changing LOVs with ' in Display Value, Languange Idependent Code, etc.

Example: LOV TYpe: FINCORP_DEAL_LOAN_TYPE
for value: I don't know

Try to inactivate or activate.

I get this error:

[1] Invalid search specification '[Type] = 'FINCORP_DEAL_LOAN_TYPE' AND [Language] = 'ENU' AND (([Name] = 'I don't know' AND
[Value] <> 'I don't know') OR ([Value] = 'I don't know' AND [Name] <> 'I don't know')) AND [Id] <> '0VF-RG2D''.

Please continue or ask your systems administrator to check your application configuration if the problem persists.(SBL-DAT-00501)
[2] Expression does not match any Siebel query language grammar rules. Unexpected token 't' found at or near location
79.(SBL-DAT-60236)

Cause

This behavior was due to known bug

Solution

Message 1

This is a known issue please see the following item on supportweb:

Service Request #: 38-3455974081
Version: 8.0 [20405] NLD Com/Med
Abstract: Setting LOV's to Multilingual

Change request 12-1L7O0S1 has been raised to address this issue.

Message 2

The workaround suggested in the referenced service request really only applied to creating new LOV's. At this time I do not think it would be appropriate to remove all the single quotes from existing LOV records, as for referential integrity this would mean updating all existing records in the database with the new LOV values. And as you mention it would also mean changing an configuration that includes the values.

A colleague has advised that a possible workaround could be to modify the class property of the List Of Values buscomp from CSSBCListOfValues to CSSBCBase (as it is in version 7.8). I have tested this and it does seem to work but I cannot advise what could be the impact on other areas of the application. Therefore maybe as a temporary workaround you should build a special SRF where the class change had been applied and only use it for LOV admin and then leave the orginal SRF unchanged.

***Update***

The CR: 12-1L7O0S1 and other CRs were opened to have this behaviour addressed.
The parent CR: 12-1K5DYEJ “Unable to activate LOV's in Data Administration with apostrophe in the Language-Independent Code” was addressed in the 8.0.0.3 Fix Pack


References

BUG:12-1K5DYEJ - UNABLE TO ACTIVATE LOV'S IN DATA ADMINISTRATION WITH APOSTROPHE IN THE LANGUAGE-INDEPENDENT CODE

Applies to:

Siebel Tools

Information in this document applies to any platform.
Product Release: V8 (Enterprise)
Version: 8.0 [20405] Fin Svcs
Database: Oracle 10.2.0.2
Application Server OS: Microsoft Windows 2003 Server SP2
Database Server OS: IBM AIX 5L 5.1

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

Symptoms

SBL-EXL-00145, SBL-DAT-60236

Hi,

We seem to be having issues with some of our PDQs on Service Request List View.
FYI, we have 5 applet toggles on Service Request Detail Applet meaning to say that the bottom form applet toggles based on the Service Request Type that is chosen.
We have couple of PDQs on the Service Request List View, one that returns no records and the other that returns all SRs.
But when we tend to choose any of the PDQs, we end up getting a Microsoft Internet Explorer Error throwing us out of the application.
Do note that we tried to spool but we could not get anything in the spool.
An example of the PDQ that we are trying to execute is as follows:
'Service Request'.Search = "[Id] = ""X""" 'Service Request'.Sort = ""
This example is the one that is expected to returns no records.

Please help in resolving the issue.

Thanks,
Raghu
Emailc
Mob#+61-40-750-5222

Cause

This incorrect behavior is a product defect.

Solution

Message 1

For the benefit of other users.

The behavior that the customer experienced with the toggle applets was reproduced in version 8.x of the Siebel application. Change Request 12-1LXMIR2 has been logged for this behavior so that the product defect gets addressed in future versions of the Siebel application.

Note that product defect 12-1LXMIR2 has been addressed with Siebel 8.0.0.3.


Thank you,
Siebel Technical Support


No comments:

Post a Comment