Wednesday 23 December 2015

Making a Field Readonly Based on User's Responsibility

Hi All,

I had a requirement wherein i had to make a field Editable only for certain user and read only for others.
the requirement is very easy and can be achieved with configuration.


  • Create a Responsibility and Assign it to Users for whom to make Field Editable.
  • Create a calculated field on BC with the following expression .

IIf((GetProfileAttr("User Responsibilities") = "Your New Responsibility"),"N","Y")

name this field as ReadOnlyFlag.

  • Create a User Property Field Read Only with the following value,

Name :Field Read Only Field: Email Address
Value :ReadOnlyFlag

and you are done now the field Email Address will be editable for users with responsibility Your New Responsibility.

Limitations : The Expression "IIf((GetProfileAttr("User Responsibilities") = "Your New Responsibility"),"N","Y")" get the of users primary responsibility only so you have to make the new responsibility as Primary responsibility of User.

the alternative for this is using another method

GetProfileAttrAsList("User Responsibilities")
and make the calculate field as ,
IIF(InList("Your New Responsibility",GetProfileAttrAsList("User Responsibilities")), "Y", "N")

this method gets the list of user responsibility and the expression above checks if the New Created Responsibility is in this list and based on this check returns Y or N.

Hope this was helpful ...


Configuring Constraint Picklist in Siebel

Hi All,

This sort of requirement is very common in projects, where we want to show only restricted data in Dropdown based on value of Other field or dropdown.
for achieving this we are actually constraining the data based on some field ,so the value based on which we are restricting the data can be called as constrained.

for example suppose we have a case of Country and States and we want to restrict the value of states depending the country ,in this case since the value of State which will appear in dropdown depends on the value of Country so we can say the constrain is on County.

Configuring this is very simple in Tools ,

1. Under Field Pickmap ,select the value of field on which to apply constraint.(Country in our Case)












2. Enter the field with which to match the constraint in Picklist Field. In My case since the LOV was not based on PickList Hierarchical  BC so we can not use Parent value directly, here i have provided Description in the Field.

3. The Last step now is to enter Country Name in Description field in List Of Value for the State LOV.











and you are done Now for County India , state with Value Defined in LOV will only appear.

Note: There is some major difference between Constrain Picklist and Hierarchical Picklist

Hierchial Picklist are based on PickList Hierarchical BC can only be constrained on value in Parent LIC in LOV.
where as Constraint Picklist we need to Specify the Picklist field on which to apply constraint.




Friday 11 December 2015

How to Add new Node in XML in Siebel

Hello All,

This post is in continuation of my prevoius post http://siebelfoundation.blogspot.qa/2015/12/how-to-get-value-of-xml-node-from-ioxml.html , where i was getting the value of a particular node in XML and based on certain condition resetting its value.
here instead of resetting the value of node i will update the value in new XML element(Node).

The approach is Prety simple:

  1. Need a way to get the XML Hierchy/IO Hierarchy 
  2. Get the value of particular Node in XML/IO Hierarchy
  3. Set the value in a new Node in the Hierarchy.
you can refer the solution for first 2 points in the previous posts, for the third one we will use the same BS Workflow Utility set the value in a new Node.


Set the value in a new Node Points.

Business Service : Workflow Utilities
Method : Echo

In input pass the XMLHierarchy as input, and the value of node which is to be set you can ether use a literal value or any expression for that, the only difference is that if the node you are setting value in already there in Hierarchy then it will update its value and if node is different it will add a new node with the provided value in Hierarchy.

Input Argument :







Here i am adding a new node with some custom value

Input Argument is :
XMLHierarchy.ListOfMember.Member.PointsValue.<Value>

value is :
2*[&Points]

Output Argument :






here we are just returning the XML Output which will contain the XMLHierarchy with modified node value.

the output will be something like ,

<ListOfMember>
<Member>
<Name>ABC</Name>
<Age>30</Age>
<Email>A@B.C</Email>
<Points>1000</Points>
<PointsValue>2000</PointsValue>
.....
</Member>
</ListOfMember>

you could also see the new Node in the watch window during simulation.
Hope this was helpful , cheers ...



Friday 4 December 2015

How to Get value of XML node from IO/XML Hierarchy in Siebel workflows

Hello All,

Recently i got a new requirement where in i have to get the value of a Node of Output XML Hierarchy and depending on some condition change the value of the node. ie. say, I have Queried on LOY Member IO and i got Output Member points, now i need to return money value of Member Points.

<ListOfMember>
<Member>
<Name>ABC</Name>
<Age>30</Age>
<Email>A@B.C</Email>
<Points>10000</Points>
.....
</Member>
</ListOfMember>

here i needed to return the Amount equivalent of points, ie, say 100 points equals 200 rupee so, for 1000 points it should return 2000 in Points, as customer is concerned only with the Money value of points in all not the actual point balance.

The approach is Prety simple:

  1. Need a way to get the XML Hierchy/IO Hierarchy 
  2. Get the value of particular Node in XML/IO Hierarchy
  3. Set the value of Node in the Hierarchy.

Here i use a very common BS Workflow Utility to get and set the value of the Node.

1.Get the value of Node Points.

Business Service : Workflow Utilities
Method : Echo

Create a Process Property of type Hierarchy , name it say XML Output.
I my case i am first Querying data using EAI Siebel Adapter and Converting the IO output hierchy in XML hierarchy and Storing the output in XML Output.

Input Argument :









Output Argument :



The path is given in Dot notation till to node whose value we want to fetch.

as in this case it is XMLHierarchy.ListOfMember.Member.Points.<Value> , and we can store this value in any Process Property in my case Points.

2.Set the value of Node Points.

Business Service : Workflow Utilities
Method : Echo

In input pass the XMLHierarchy as input, and the value of node which is to be set you can ether use a literal value or any expression for that,

Input Argument :









Here i am setting the value the value of Node Points as Points*2 ,

Input Argument is :
XMLHierarchy.ListOfMember.Member.Points.<Value>

value is :
2*[&Points]

Output Argument :






here we are just returning the XML Output which will contain the XMLHierarchy with modified node value.

the output will be something like ,

<ListOfMember>
<Member>
<Name>ABC</Name>
<Age>30</Age>
<Email>A@B.C</Email>
<Points>20000</Points>
.....
</Member>
</ListOfMember>

you could also see the modified values in the watch window during simulation.
Hope this was helpful , cheers ...

I will also share how to Add a new node in the Output XML Hierarchy in case the requirement is to show the Calculated/New value as a new entry in XML in upcoming post.

Siebel GoTo View - Handling Realtime cases

 Hello All,  We all must have used GoTo view functionality of siebel to navigate to a particular view from current view. What if the require...