Closing Service Request – Scriptless Siebel
I am back again with scriptless Siebel series, few days ago I came across a requirement which was as following:
Requirement:
We have Service Request (Parent BC) and Activities (Child BC) when all the activities are ‘Closed’ (status set as closed) Status of SR should automatically change to ‘Closed’.
Scriptless Solution:
I thought about the solution on the same lines as described in the previous post of Scriptless Siebel series. Here are steps to achieve that:
Workflow Steps:
- Query for Activities using PRM ANI Utility Service (QueryBusComp method)
- Use following Search Spec [Status] <> ‘Closed’ AND [Activity SR Id] = GetProfileAttr(‘SRId’)
- Decision Step will have following condition
If Number of Records greater than 0 then go to End else use Siebel Operation Step to Update SR status as Closed
Runtime Event Details: Runtime events details are also very similar to last post, so you can refer to last post for screenshots.
- Event Detail:
Sequence: -1
Object Type: BusComp
Object Name: Action
Event: WriteRecord
Conditional Expression: GetProfileAttr(’Me.ActiveViewName’) = ‘Service Request Detail View’
[To limit the execution to just that particular view]
Action Set Name: UpdateServiceRequest
Action Set Details:
You need to create two action records for this action set. One will set a profile attribute and other will call the workflow process
Action Details:
- Name: SRId
Action Type: Attribute Set
Sequence: 1
Profile Attribute: SRId
Set Operator: Set
Value: [Activity SR Id] - Name: CallWF
Action Type: BusService
Sequence: 2
Business Service Name: Workflow Process Manager
Business Service Method: RunProcess
Business Service Context: “ProcessName”, “NewServiceRequestUpdateWF”


(7 votes, average: 4.43 out of 5)
Hi just sharing another thought on the same…
Neel , can you please validate if this method correct for the requirement.
1) Create link between SRequest and Activities.
In Link search spec : giv condition to check status != ‘Closed’
2) Use Count(MVL) , IF Count(MVL)=0 , then update SR as ‘Closed’
There are quite a few things that I would like to say about this approach.
There is already a link that exsists between SR and Activity that is why they are parent and child. You cannot give search spec in that link coz it not display all the activities which is not correct.
You need to create an MVL based on alerady existing link and try to use Type Field and Type value in MVL to restrict record.
then you can use Count(MVL) to get count but then again how will you update SR status… On Field Update user property will not work here as it works only when you manually update a field .. calculated field doesn’t work.
I hope now you understand the glitches in approach that you saying… Workflow approach is lot cleaner and also flexible.
For example in future if they say that SR should only be closed if it has solution record associated to it and also child SR if any should be closed then only you can close SR.
We can extend workflow to include all these things but MVL will not work here
What would I do in that case:
1. Create 2 user properties in Activity:
Name: On Field Update Invoke 1
Value: “Status”, “Activity”, “WriteRecord”
Name: On Field Update Invoke 2
Value: “Status”, “Service Request”, “UpdateStatus”, “[Status] = ‘Closed’”
2. Create an user property in Service Request
Name: Named Method 1
Value: “UpdateStatus”, “SET”, “Status”, “IIF (NOT BCHasRows (‘Action’, ‘Action’, ‘[Activity SR Id] = ” + [Id] + ” AND [Status] ‘Closed’, ‘All’), ‘Closed’, [Status])”
I assume you would you have to put quotes around Id value in “…[Activity SR Id] = ” + [Id] + ” AND…” but I don’t remember the syntax here, double quotes or smthng
Yeah i realize the practical infeasibilty..
Thanks for your detail insights on that.
just one more question athough related to post on scriptless part 2
i just read on comments we can call DVM through WF using
BS : Data Validation Manager and method : validate.
But where do we mention the particular Rule set Name and how do
we capture back the error message to WF
-deepak
Hi All,
Pls try this option.
1. Create a MVL between SR & Activity
2. Create a MVF based on above MVL on Status field
3. Create a calculated field in SR BC as IIf(Exists([Action Status]) “Closed”, “Open”, Closed”)
5. Create a user property as On Field Update in SR BC with Status field based on above calculated field
Hi,
Thanks for this post.
I want to ask you that why you did not used Siebel Operation to query BC instead of PRM ANI Utility Service’s QueryBusComp method ?
Regards.
I guess you didn’t read the previous post in series.
I implemented this in Siebel 7.8 and in this version Siebel Query operation doesn’t return count of records. I needed count to achieve this that is PRM ANI Utility Service
Can you please explain the detailed difference between ContinueOperation and ContinueOperation in Scrpting.
Leave your response!
Polls
Recent Posts
Get updates by Email
Friends
History
Categories
Siebel Unleashed on Twitter
Posting tweet...
Powered by Twitter Tools
Most Voted
Most Commented
Most Viewed
Canonical URL by SEO No Duplicate WordPress Plugin
Powered by WordPress | Log in | Entries (RSS) | Comments (RSS) | Arthemia theme by Michael Hutagalung 68 queries. 2.174 seconds.