Instr Function Throws SBL-DAT-00378 Error When Trying A Case Sensitive Search In A Workflow Expression
(Doc ID 2977022.1)
Last updated on NOVEMBER 13, 2023
Applies to:
Siebel CRM - Version 16.19 [IP2016] and laterInformation in this document applies to any platform.
Symptoms
When creating an ouput argument of type expression for a workflow step, user is clicking in the value field , then in expression builder selects the Instr function. WebTools applications displays the following syntax:
InStr(string1, string2 [,start] [,compare]) : The position of the first character of string2 in string1.
[, start] is used to specify the position in string1 to begin the search, where the first character in the string is 1. If start is negative, InStr searches backwards.
[, compare] is used to specify if the comparison of strings is case sensitive. Enter 0 for a case-sensitive search, enter 1 for a case-insensitive search
The short syntax InStr(string1, string2) works correctly and the search is by default case sensitive.
But when using longer syntax (InStr(string1, string2 [,start] [,compare]), the following cases exists:
a. incorrect result when compare = 1 ( search should be case insensitive, but application performs a case sensitive search )
b. execution throws error when compare = 0 ( search should be case sensitive )
[2]Cannot divide by 0(SBL-DAT-00378)
The issue was reproduced in standard Siebel 23.6 version using steps:
1.Create a developer workspace
2. In this workspace, create 3 workflow process (testInstr1, testInstr2, testInstr3) with the same structure:
-> A Start step
-> A Business Service Step using the Echo Method of the Workflow Utilities BS
-> A End step
3. Create a Process Properties of type "string" named "Link" in all 3 Workflow Processes
4. For the business service step, add only one output argument (there is no input argument):
Property Name: Valid_link
Type: Expression
5. In each of the Workflow Processes, create a different expression in the output argument "Valid_link".
6. In the output argument, click in the "Value" field to open the Expression Designer
7. WebTools application generates the following syntax:
[, start] is used to specify the position in string1 to begin the search, where the first character in the string is 1. If start is negative, InStr searches backwards.
[, compare] is used to specify if the comparison of strings is case sensitive. Enter 0 for a case-sensitive search, enter 1 for a case-insensitive search
8. Edit the Value field in each of the 3 workflows as follows:
8.a. For Workflow Process "testInstr1":
Expected output should be Valid_link=0
Changes
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Changes |
Cause |
Solution |
References |