Applies to:
Product Release: V7 (Enterprise)Version: 7.5.3.2 [16168] Com/Med
Database: Oracle 9.2.0.4
Application Server OS: Microsoft Windows 2000 Advanced Server SP 4
Database Server OS: Sun Solaris 8
This document was previously published as Siebel SR 38-1550840218.
Symptoms
SBL-DAT-00501, SBL-BPR-00121Hello,
We have a workflow designed, this workflow has a step that calls a business
service, input to the Business Service is either a literal or a expression.
When defining
the input like this:
“[Status]='Pending' AND [Planned]>='01/05/2004' AND ([Description]
LIKE 'Block*' OR [Description] LIKE 'Deblock*' OR [Description] LIKE 'Hot*' OR [Description] LIKE
'De-Hot*')"
on an Expression Input (double quotes included) we expect the string to be a
literal. But when simulating the WF in the Thin Client a error occurs on the Server. In the Fat
Client we get a parser error. We are OK with the parser error - but puzzled why we do not get the
same error when using the thin clinet - there we as I mention get an Application Error on the
Siebel Server.
I've attached the Workflow to This SR. If you need a Repository + Database
its currently abvailable on the FTP.
Regards
Solution
Message 1
For the benefit of other readers, the problem encountered is was related to the simulation of process with a string passed as Input Argument to any kind step, containing the special quote character copied/pasted from MS Words.Within the process designer, the string looks like “test” (visually) but the simulation gives following behavior.
The simulation from the dedicated web client leads to error message below.
ObjMgrLog Error 4 2004-10-27 16:35:41 (SBL-DAT-00501) Invalid search specification 'â€test'â€'.
ObjMgrLog Error 4 2004-10-27 16:35:41 (SBL-BPR-00121) Error loading step definition 'Query for error Blocks': Cannot parse expression 'â€test'â€'.
(Notice the weird characters †AND â€)
The simulation from the web client leads to a crash of the object manager with a stack as below.
sscfdm +0xa176c = GetToken() +0x5c
sscfdm +0xf0779 = yyparse() +0x149
sscfdm +0xa0cb3 = CSSQueryParser::Parse() +0x63
sscfdm +0x8d38d = CSSQuery::ParseQueryExpr() +0x5d
sscfdm +0x8d702 = CSSQuery::GetCachedQuery() +0x132
sscfdm +0x8d26f = CSSQuery::Parse() +0x8f
sscafwsv +0x11ec4 = CSSWfStep::ParseQuery() +0x144
This problem was reported in change request 12-G2L5OU and has been addressed in version 7.7.
Jérôme Patard, Siebel Technical Support.
Applies to:
Product Release: V7 (Enterprise)Version: 7.5.3 [16157] Fin Svcs
Database: Microsoft SQL Server 2000 SP3
Application Server OS: Microsoft Windows 2000 Advanced Server SP 3
Database Server OS: Microsoft Windows 2000 Advanced Server SP 3
This document was previously published as Siebel SR 38-1604439502.
Symptoms
SBL-UIF-00401, SBL-DAT-00144, SBL-DAT-00283, SBL-DAT-00306, SBL-DAT-00315, SBL-DAT-00501, SBL-BPR-00121Hello
We’re currently creating a workflow process that should start based on a number of
conditions, namely – when the user navigates to a certain view, and if he is owner of the record
used to navigate to this view.
We’ve encountered a number of dificulties, namelly:
1- When
the “start” step has a condition based on an application-ViewActivated event we don’t get the
ObjectId of the object being used for the drilldown. We understand that this is standard
behavior, so what we have done is to modify the start condition to the Applet-DisplayApplet
event. The next step in the workflow is to determine the view where the user is (Data Transfer
Utilities-GetActiveViewProp). This is extremely inefficient, as the Applet is used in more views
other than the one we want the workflow to be triggered. Is there a way of getting values from
the Applet (or from the Business Component in which it is based) inside the workflow, when you
don’t know “anything” about the call context?
2- The second condition used to trigger the
workflow is to compare a value on the Business Component, with the LoginName of the user issuing
the request. This was done previously in scripting, and in calculated fields. Reading the
bookshelf, you get the impression you could use the same functions in workflow conditions, as the
ones used in the calculated fields in Siebel Tools. If so, why doesn’t workflow work when we try
to compare to LoginName() (Values -> LoginName()) ?
3- The third problem is on a Siebel
Operation Step. We’ve the BC queried and ready to be updated. We want to update a field with a
value given from an expression. The problem is that we want the expression to do a bitwise or on
the fields. On scripting we do this by this.GetFieldValue("BCP Estado Act") | FLAG. When we try
to do this in a Siebel Operation Step using an expression to update a field ([&BCP Estado Act
WF] | 1) we get an error. Are there any bitwise operators available for expressions inside
workflow?
Best reg...
Solution
Message 1
1/2For the benefit of other readers,
Customer reported following issues:
1. A workflow process has been developed and should be triggered from the application runtime event “ViewActivated”. From here they would like to access the ObjectId of the object being used for the drilldown. As alternative solution Customer tried to use the Applet runtime event DisplayApplet. Also this alternative did not provide the expected results. So the question was whether there is a way of getting values from the Applet (or from the Business Component in which it is based) inside the workflow, when you don’t know “anything” about the call context?
For this point was advised to using Business Component (BC) runtime event, because you may retrieve the ObjectID of the related records.
2. In the same workflow process customer was trying to compare a Business Component field value with the LoginName of the user issuing the request without success.
Customer was advised to using an expression of the type “[Owned By] = LoginName ()”. This means the Workflow Process Manager should compare the Business Component Field value “Owned By” with the value returned by the function LoginName()
Contd...
Message 2
2/23. In a Siebel Operation Step Customer wanted to use a bitweise operator “|” in the search specification.
However such operator would not work for Workflow. One reason for this is that a search specification in the Siebel Operation step is similar to a where clause of a database query. The operator “|” cannot be executed by a Database Management System even though you are able to use it in a custom code. Customer was then suggested to review Siebel Developer’s Reference in the chapter Operators, Expressions, and Conditions where you will find all supported Operators and also detailed information on Search Specification.
Siebel Technical Support
No comments:
Post a Comment