Thursday, September 29, 2011

Siebel CRM: Updating parent BC depending on the status of child BC using configuration

In this case

· Parent BC: Service Request

· Child BC: Action

Requirement: When all the Actions corresponding to an SR are closed the SR status should be “Closed”

Solution: In this case we will take the count of child records on the parent BC. There will be two counts count of all child records and count of Closed child records. When this two counts are equal we will change the status of parent BC to closed.

1. Create a new link between Service Request and Action BC with Search Spec [Status]=LookupValue('EVENT_STATUS', 'Closed') in this case with name “Service Request/Action1”

clip_image002

2. Add this link in the MVL of Service Request BC in this case with MVL name “Action1”

clip_image004

3. Create two calculated fields to get number of records fetched by each link. When the count returned by both the links is equal, all the Activities are closed, and we can change the SR status to Closed.

clip_image006

4. For testing you can show these two fields in UI in applet.

5. On the Action BC create a new user property “On Field Update Invoke 1”. This user property will call the method “CheckClosed” from Service Request BC when the “Status” field from Action BC is updated.

clip_image008

6. On the Service Request BC add a new user property Named Method with the following value. When the method “CheckClosed” is called it will check if the count returned by both the links is equal, if yes it will set the Service Request Status to “Closed” else nothing.

"CheckClosed", "SET", "Status", "IIf ([Calc Activity Status] = [Calc Activity Status1],LookupValue('EVENT_STATUS', 'Closed'),[Status])"

clip_image010

7. Compile all the above items and check the configuration by creating new Activities and closing them.

8. You will observe that the parent BC is not getting refreshed properly and thus the configuration is not working as expected.

9. So add a new user property “Named Method” to the Service Request BC. Please note that this user property should be called before the Closing step 6. Named Method 2 will be called before Named Method 3 in this case.

The value for this user property is as below

"CheckClosed", "INVOKE", "Service Request", "RefreshBusComp"

When the method “CheckClosed” is called it will invoke the method “RefreshBusComp” on Service Request BC.

clip_image012

10. Compile the Service Request BC again and test the results, everything should work smoothly.

clip_image014

No comments:

Post a Comment