My Oracle Support Banner

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 later
Information 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 )

[1]Cannot evaluate expression  ... at step 'Input Simulation'.(SBL-BPR-00119)
[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:

 

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

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


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.