June 28, 2013

Date manipulation in Siebel Workflows - Contd

In continuation of Incrementing date in workflows.
See latest post on Date functions Siebel eScript

This article explains how to compare two dates type process property in Siebel Workflows.

Everything seems to work as expected, the only point is to make sure you have set the property type of the property holding date as "Date"

To add number of days to a date: [&Date] +30
To subtract number of days from a date : [&Date] - 4
To find if date is passed: [&Date] < Today()
To find if date is future date: [&Date] > Today()
To Add 1 Sec to a date: [&Date] + (1/(24*60*60))

Comparing Date in Siebel Workflow Expression
Comparing Date in Siebel Workflow Expression

Julian days also seems to work perfectly in Siebel Workflow Expression.

To get current Julian month use: JulianMonth(Today())
To get Julian Year: JulianYear(Today())
To get Julian Week: JulianWeek(Today())

Julian Month in Siebel Workflow Expression
Julian Month in Siebel Workflow Expression
Output:
Siebel Workflow Process Output
Workflow Process Output
Today(): returns current system date without timestamp.
Timestamp(): returns date with time stamp

hth

June 24, 2013

How to increment date in Siebel workflows?

It is supposed to be the one of the toughest task in e-script is to handle date fields and manipulate the data. Recently I learned it is fairly simple to manipulate the date values in Siebel Workflows as compared to e-script.

This revelation goes to Naresh Lalam from siebel.ittoolbox . After his one of the comments I went up and verified that date fields can be simply manipulated from expression of Workflow Process

Provided :
1: Process Proerty storing Date is of type : Date
2: Number of days which needs to subtracted to added should be integer.
Output Arguments








On simulating these expression it results extremely simple output.

Workflow Process Properties












Credit : Naresh

cheers :)

How to make field conditionally editable in Siebel?

Requirement: To make Siebel Fields editable only from certain views or certain users?

This sort of customization could come up when business would like to update fields from certain views only and make then read only from elsewhere.

Solution: This requirement can be achieved in many ways, listing script-less solutions here:

1. Clone the Applet and views and make the control read only by setting the read only flag on Applet

Benefits: As the solution makes copy of UI layer, it does not impact the business layer. If there is any script which is updating the field as part of another process it wont require any changes as field on the BC remains unchanged.
Drawbacks: Duplicate objects make application complex and difficult to manage.


2. Create Field Read Only Field user property to make the read only if the active view name is not same as the intended view.
This can be done by using : GetProfileAttr('ActiveViewName').
Benefits: No new object created thus keep the keep maintenance simple and keep the business logic at one location.

3. Use GetProfileAttrAsList in calculated field to check the responsibility of user.
If user has the responsibility then field will be editable and for all other users field will be read only. This responsibility can be added to SADMIN as well so that background workflows can only update this field.

syntax of calculated field:
IIf(InList(“EditableField”,GetProfileAttrAsList(“User Responsibilities”)))
If you have come across any other  scenario in which you were forced to write script then please share it with us in comments below.

Restrict certain queries on BC/EBC/VBC : GetSearchExpr()

Recently someone posted requirement on it toolbox to capture and change the queries executed by user on certain Siebel business components.

Few consultant suggested use pre query event of business component to change the search spec using GetSearchExpr and SetSearchExpr, however it is not possible to achieve this without releasing srf.

Perhaps there was a solution which could be achieved without releasing srf.In such type of requirements we can use Siebel Run Time events and client side business services which are independent of srf release.

June 22, 2013

Siebel Tools and Client is not responding?

Have you done something innovative and Siebel Client have stopped responding? Even task manager is stuck?

Do not restart your machine, instead try these commands from command prompt to force kill the exe:

taskkill /IM siebel.exe /F
taskkill /IM siebdev.exe /F
taskkill /IM iexplore.exe /F
taskkill /IM taskmgr.exe /F

Force kill siebel.exe