Search This Blog

SBL-DAT-00403: The query could not be run because there is an invalid character in the field '%1'.

Applies to:

Error Message Area:Data Manager - DAT
Version:Siebel 7.7

Purpose

This document is intended to provide cause and corrective action information about Siebel Error Message SBL-DAT-00403: The query could not be run because there is an invalid character in the field '%1'. 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.

Scope

This document is informational and intended for any user.

SBL-DAT-00403: The query could not be run because there is an invalid character in the field '%1'. Please ensure that the value in the field is formatted correctly with only valid characters. Missing quotes around the search criteria or...

Explanation

1.Query was submitted with an invalid character.

2.Incorrect syntax was used for a search specification.

3.The addition or subtraction of numbers within a Timestamp expression.

Corrective Action

1.Verify that the query is formatted correctly including only valid characters. If there are special characters, trying putting quotes around them.

For more information, refer to Siebel Bookshelf version 7.5.3 > Basic Keyboard Accelerators > Query Operators.

2.To set the search specification for a particular field, refer to Siebel Bookshelf version 7.5.3 > Siebel Object Interfaces Reference > Interfaces Reference > Business Component Methods > SetSearchSpec.

Note: eScript and Browser Script require backslashes instead of double quotes for marking special characters. Example of correct syntax: SetSearchSpec("Comments", "\'\"We must\'").

Change request 12-IHFRAB has been logged and addressed in Siebel Bookshelf version 7.7.

3.Example of Timestamp expressions that does not work: [Created] < Timestamp() - 3.

Change Request 12-HESFV7 has been logged to address this product defect. The following expressions do work correctly:
[Created] < Timestamp()
[Created] < Today()

Other possible workarounds:
- Expose the datetime field ("Created") in the UI and enter the query directly into this field.
- Create a calculated field that calculates the date values accordingly and expose it to the UI. Query on this field.
- Use a predefined query (PDQ) or Query Assistant to define the query expression.


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:

Identity Manager Connector - Version: 9.0.4.4 and later   [Release: and later ]
Information in this document applies to any platform.
Siebel

Symptoms

In version 9.1.0.1 of Oracle Identity Manager (OIM) when attempting to provision a Siebel Position that has an apostrophe in the data, via the Siebel UM Connector version 9.0.4.4, the following error occurs:

ERROR
ERROR,30 Apr 2009 13:18:24,428,[XL_INTG.SIEBEL],Add Position Base Exception for user Id SBLOTUP
ERROR,30 Apr 2009 13:18:24,428,[XL_INTG.SIEBEL],Add Position JDB Exception: 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)


Cause

Dev indicates this was fixed in the 9.0.4.5 version of the connector.

This is explained in the following bug:
BUG 8506561 : PROVISIONING WITH AN APOSTROPHE IN POSITION DATA CAUSES ERROR

Solution

  1. Download and review the readme and pre-requisites for version 9.0.4.8 of the Siebel UM Connector, or whatever is the latest available from OTN.
  2. Ensure that you have taken a file-system and DB schema backup of your system before installing the recommended version.
  3. Install in a test environment that does NOT have any previous version of the connector already in it.
  4. Retest the issue.
  5. Migrate the solution as appropriate to other environments.

References

BUG:8506561 - PROVISIONING WITH AN APOSTROPHE IN POSITION DATA CAUSES ERROR

Applies to:

Siebel Tools - Version: 8.1.1 SIA [21111] - Release: V8
Information in this document applies to any platform.

Symptoms

The issue involves invalid searches in Siebel 8.1.1 SIA. When an invalid search (using a find object) is performed an error message is displayed as designed. But afterwards functions such as Query, Save, UndoRecord, Columns Displayed, etc do not work in the destination view.
The workaround is to navigate to some other view & come back to the same destination view to perform any operation. The invalid search happens frequently on the Find Field objects on Date Fields if the user enters an invalid date format.

The expected behavior is that when a user enters an invalid date find field condition, the current view should not become inactive or hang.

Steps To Reproduce:

Prerequisite: In 'Find Applet' deactivate user property 'GotoView' (in order to have the Find results displayed directly in the destination view).

1. n Siebel Application, click on the Binoculars Icon to open the search frame.
2. Select "Contacts" in the "Look In" dropdown list
3. Enter a valid search criteria in any Find field (eg: A* in Last Name)
4. Click on Search
5. The destination Find View - Contact List View appears on the right side with matching records
6. Now enter an invalid search criteria in any Date Find field (eg: Enter - 10/11/1975 12:45:45 AM - in Birth Date a DTYPE_DATE field.)
7. Click on Search
8. The search results on the right side remain unaltered & the following message is displayed in the search frame:

The query could not be run because there is an invalid character in the field 'Birth Date'. 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)

9. Now in the destination Find View - Contact List View try any of the following:
Click on Query button in any applet - no response
Click on Menu button & choose any option - About Record, Columns Displayed.....the message observed is - Method Columns Displayed is not allowed here. (SBL-UIF-00348)

Click on Query button or the above operations in the destination Find View work correctly even after the invalid search, when the GoToView Applet User Property for Find Applet holds 'Find Results View'.

The users use Find extensively and this incorrect behavior affects their productivity as the view hangs and they might not be aware that moving to a different business object and back, will unfreeze the current view.

Cause


A change request was raised for this incorrect behavior.
Bug: 12-1WQVBN7 "Find query on a date field that w invalid date format, gives SBL-DAT-00403,makes view non responsive"

This behavior reproduces with a small configuration test case.
First, set up Find to display find results in main view by updating the Find Applet's user property GoToView to be inactive.

1. Add the Birth Date field to the contact views and to the Siebel Universal Agent application's Corporate Contact Find.

2. Then compile and test.

3. If there are no quotes around the date field find search spec, the Siebel client gives an error SBL-DAT-00403 and then makes the Find Drilldown view hang.

4. If the user navigates to a different Bus Object and then returns to the drilldown view, the view works as expected.

Solution


A fix request has been requested for this product defect.

Applies to:

Siebel Workflow - Version: 7.7.2.7 SIA [18376] to 8.1.1 SIA [21111] - Release: V7 to V8
z*OBSOLETE: Microsoft Windows Server 2003
Product Release: V7 (Enterprise) V8 (Enterprise)
This document was previously published as Siebel SR 38-3283449341.

Symptoms

In a Siebel Workflow Process, Siebel Operation step, Customer was trying to construct a query expression which uses a date calculation.

  User is trying to find Service Requests that were created for a contact in the past 180 days. My expression looks something like this:
"[Contact Id] = '" + [&ContactId] + "' AND [Status] = 'Accepted' AND [Created] > (Timestamp() - 180)"

 The below error when User run this statement, and discovered it was due to the "- 180" portion.

Error updating business component at step 'Query SR'.(SBL-BPR-00187)
Missing quotes around the search criteria or unnecessary punctuation will often cause an error.(SBL-DAT-00403)

After searching for "SBL-DAT-00403" , it was discovered that a Change Request 12-HESFV7 was logged for this behavior.


Cause

In expression - The minus Sign is not correctly interpreted, so the parsing fails and raises an error.

Solution

The case exposed here is due to the use of minus sign in operation
Timestamp() – 180

The minus is not correctly interpreted, so the parsing fails and raises an error.

Please, refer In a workflow process condition expression, what is the format of the argument, provided to an arithmetic operation involving a ‘Timestamp ()’ function? (Doc ID 476582.1)

The workaround exposed in the above document, which is to reverse the direction of comparison operator in order to avoid the use of the minus sign does not work.
In the current case, the last expression should look like the following:
([Created] + 180) < Timestamp()

Problem implementing this workaround is that workflow does not correctly interpret the field name and error stating that “Created + 180” is not a known field.
Complete error message:
Error updating business component at step 'Query SR'.(SBL-BPR-00187)
--
This error is returned when the workflow is executing the Siebel Operation business service.(SBL-BPR-00100)
--
No field matches identifier 'Created + 180'.

Change Request number 12-1IE6NIS was logged for addressing this unexpected behavior.In 8.0 version status is WIll not fix and the workaround is However using double quotes around the query text works fine.

This CR has referred another CR# 12-9TXZZZ [Calculation in QBE for date/time fields not possible, if field is not in UI.] for similar issue which is a Enhancement Request.

CR# 12-9TXZZZ details -Enter the following QBE in one field:
"[Updated] < (Timestamp() -0.01)"
This will generate the following error:
An error has occurred due to an invalid search for field 'Description'. The invalid expression was '[Updated] < (Timestamp() -0.01)'.

This has not fixed in any version , still pointing to Future release. Whenever an Enhancement Request has been created, the request will be reviewed by Siebel Product marketing and Siebel Engineering teams and prioritized and implemented in the future release.

Final workaround was to add a previous Workflow step for computing the Timestamp()-180 expression and set a Process Property, then use it in the Search Spec.

Here are steps for achieving this implementation:
1) Add a Process Property:
Name:        Timestamp-180
Data Type :    String

2) Insert a new Workflow Step in the Workflow chain before the “Query SR” step:
Name:        Compute Timestamp-180
BS Name:        Workflow Utilities
BS Method:    Echo

3) Add an Output Argument in this Workflow Step:
Property Name:    Timestamp-180
Type:        Expression
Value:        Timestamp() - 180

4) Modify the Search Specification of the “Query SR” Workflow Step:
Search Specification: "[Created] > '" + [&Timestamp-180] + "'"



The issue involves invalid searches in Siebel 8.1.1 SIA. When an invalid search (using a find object) is performed an error message is displayed as designed. But afterwards functions such as Query, Save, UndoRecord, Columns Displayed, etc do not work in the destination view.
The workaround is to navigate to some other view & come back to the same destination view to perform any operation. The invalid search happens frequently on the Find Field objects on Date Fields if the user enters an invalid date format.

The expected behavior is that when a user enters an invalid date find field condition, the current view should not become inactive or hang.

Steps To Reproduce:

Prerequisite: In 'Find Applet' deactivate user property 'GotoView' (in order to have the Find results displayed directly in the destination view).

1. n Siebel Application, click on the Binoculars Icon to open the search frame.
2. Select "Contacts" in the "Look In" dropdown list
3. Enter a valid search criteria in any Find field (eg: A* in Last Name)
4. Click on Search
5. The destination Find View - Contact List View appears on the right side with matching records
6. Now enter an invalid search criteria in any Date Find field (eg: Enter - 10/11/1975 12:45:45 AM - in Birth Date a DTYPE_DATE field.)
7. Click on Search
8. The search results on the right side remain unaltered & the following message is displayed in the search frame:

The query could not be run because there is an invalid character in the field 'Birth Date'. 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)

9. Now in the destination Find View - Contact List View try any of the following:
Click on Query button in any applet - no response
Click on Menu button & choose any option - About Record, Columns Displayed.....the message observed is - Method Columns Displayed is not allowed here. (SBL-UIF-00348)

Click on Query button or the above operations in the destination Find View work correctly even after the invalid search, when the GoToView Applet User Property for Find Applet holds 'Find Results View'.

The users use Find extensively and this incorrect behavior affects their productivity as the view hangs and they might not be aware that moving to a different business object and back, will unfreeze the current view.

Cause


A change request was raised for this incorrect behavior.
Bug: 12-1WQVBN7 "Find query on a date field that w invalid date format, gives SBL-DAT-00403,makes view non responsive"

This behavior reproduces with a small configuration test case.
First, set up Find to display find results in main view by updating the Find Applet's user property GoToView to be inactive.

1. Add the Birth Date field to the contact views and to the Siebel Universal Agent application's Corporate Contact Find.

2. Then compile and test.

3. If there are no quotes around the date field find search spec, the Siebel client gives an error SBL-DAT-00403 and then makes the Find Drilldown view hang.

4. If the user navigates to a different Bus Object and then returns to the drilldown view, the view works as expected.

Solution


A fix request has been requested for this product defect.

No comments:

Post a Comment