You are here

Siebel

Making a View "Read Only" based on a criteria: Aspect User Property
Whenever Quote Status is set to "Actual" or "Turndown"  for instance, the View should become read-only (Both Parent and Child applets). This criteria is evaluated using a Calculated field as it has several other conditions apart from Quote Status. The Applet is referred in multiple Views, but the "Read Only" functionality was intended to work only in certain Views.
 

Solution:
 
Step 1: Create a Calculated Field (Specify your criteria) in the Parent BC of the Target View

Step 2: Add the following BC User Prop
       
           Name: Aspect BC ReadOnly: <IDENTIFIER 1>
           Value: Calculated Field Name (Created in Step 1)
 
           Name: Aspect Child BC ReadOnly: <IDENTIFIER 2>
           Value: Calculated Field Name (Same as created in Step 1 or Any other Calculated field   which drives the Child Applet in the Target View)

Step 3: Add the following User Prop at Applet Level
          
           Parent Applet User Prop
           Name: "View Aspect: <View Name>"
           Value: <IDENTIFIER 1>
           
           Child Applet User Prop
           Name:"View Aspect: <View Name>"
           Value: <IDENTIFIER 2>

Note: The aspect user properties are restricted to business component classes based on CSSBCBase. This property provides a dynamic way to use the CSSBCBase class. When a particular aspect has been set from the applet level or CSSBCBase’s default, CSSBCBase changes its behavior based on the aspect-related setting described in the user property.
Predefault a Field based on Applets

A user wants to set different Predefault Values for a Field exposed in different Applets. 

Solution: A Vanilla Applet User Property ‘PostInvokeMethod’ Can be used in the above Scenario   

PropertyPostInvokeMethod
ValueNewRecord:SetFieldValue:First Name:'DirecTutor'

Trigger: NewRecord Method: SetFieldValue Field Name: First Name Value: 'DirecTutor'    As the BC level Pre-Default will set the value in all the applets based on that BC.

This user property gives an advantage of defaulting a field either in One Applet or with different values in multiple Applets.   

Limitation: The above user property only works if the Class of Applet is CSSINSFrameListUP which is a child of CSSFrameListBase

Loop through Multiple Records in a Workflow

User wants to loop through multiple records in workflow which are returned after execution of query .

Solution : A Vanilla Business Service  can be used to loop through records in a workflow
 
Business Service
SIA BC Utility Service
MethodName
BCNextRecord
 
 Input Arguments:
Business Component Name
Name of BC for which you want to loop records.
Forward Only
Value will be “Y” if you want to loop records in Forward Only Mode.
From First
Value will be “Y”, which should be read from Process Property, and in the Output of the BS , the Process Property needs to be changed to “N” so that the looping occurs.
Search Specification
Search Specification if any.
 
Output Arguments:
Row Id
Row Id returned by the Search Spec
Process Property
Used in “From First” needs to be updated to “N”
 
Sample:
sia-bc-utility-service-example
 
  1. Query Records:- This step uses the “SIA BC Utility Service” as explained above
  2. IsRecord?:- Decision point which checks the value of “Siebel Operation Object Id” and routes the flow.
  3. Process Records:- Any Operation you want to perform on the record 
Note :The BS will raise an error if no record is found in the stated query
BCHasRows : Validation Without Scripting
To check/search in child Bus comp field values for some validation  without scripting.           
For Example:

When the Specified Account has any "Active" child Activity, the Activity flag should be true

 
Implementation without scripting:

Create a calculated field: Check Activity

  • Calc Expression: BCHasRows("Account", "Action", '[Account Id] ="' + [Id] +'" AND  [Type] = "Active"',"All")

  • Returns Y, if any child activity found.

  • Create a User property “On Field Update Set” to set the Activity Flag ; Value : “Check Activity”, “Activity Flag”          

 
Syntax:  BCHasRows ( BO , BC , search_expr, visibility)

EIM Column Extension in Siebel 8.x

When extending a custom column in Siebel 8.X which have case and accent insensitive (CIAI) enabled, running EIM mapping wizard creates corresponding mapping in EIM  table. After which running an EIM job will cause the job to fail with the following error

 "SBL-EIM-00205: NULL target table for relation!" followed by "Failed to load the application dictionary"

Root Cause :

This issue is caused by EIM Mapping wizard which creates mapping for the custom column and also for CI Columns onthe EIM table. EIM mappings should not be existing in the EIM table, as CI columns are not supported by EIM

Solution :

This can be fixed by adopting the following steps

·         Delete/inactivate the CI columns under EIM table

·         Delete diccache.dat (dictionary) file from SiebSrvr\Bin directory so that fresh file will be created following the deletion of CI column mappings.

Trillium Data quality Solutions

Trillium provides an end-to-end Total Data Quality solution.  For this specific project, Siebel accesses Trillium via the Trillium Connector API.  The Trillium client running on the Solaris server cleanses the data.

The Trillium Software™ Data Quality Connector for Siebel provides a seamless integration of Trillium Software System® Data Cleansing and Matching modules with the Siebel Enterprise Application 7 suite of products.

The Trillium Software™ Data Quality Connector consists of two predefined components – the Batch Connector and the RealTime Connector.  Both components are highly configurable, via a supplied configuration file, to accommodate a wide variety of cleansing and matching business rules, as well as, changes to the Siebel application environment. 

The Batch Connector allows the end user to cleanse Siebel business components “in place” without the need to unload/reload the Siebel database.  It also provides the ability to detect duplicate entities within a business component and report on duplicates via a Siebel client application in conjunction with a Trillium Software™ supplied match results table and views.  Using the standard Siebel merge facility the end-user may consolidate candidate matches and their related entities into a single business component. 

The Batch Connector is implemented using the Siebel COM Data Server.  It may be run either interactively or in a background mode.  The interactive version of the Batch Connector allows the end user to view the results of the data cleansing process as it progresses.  It also allows the end user to start and stop the process or step through the process a record at a time. The background mode of the Batch Connector may be used to initiate cleansing or matching of the Siebel database from either a command line or .bat file.  Both interactive and background modes support a checkpoint restart feature that allows restarting the cleansing or matching process from the last successfully processed row.

The RealTime Connector provides the ability to seamlessly cleanse data at the point of entry.  As entities are added or modified, they are immediately cleansed and standardized. Any improvement in the entity is written to Siebel.  These improvements include street address correction, postal code assignment, upper and lower case determination, and name parsing. 

The basic trillium components employed for data cleansing are Converter, Parser, Geocoder. The basic data cleansing steps are Data scrubbing, Customer type identification, segregation of customer data, Address cleansing, Enrichment and error reporting. Converter uses the input file and generates standardized output file and a statistics file. It converts the data into desired cases, performs find, replace, and scan operations and also simple arithmetic operations bases on values in fields.

Parser uses converter file as output and produces a parsed file, a statistics file and a report containing parsed details. It identifies the customer type, locates and identifies individual data elements in the input file and then isolates these data elements in the output file and also identifies and provides information on nick names, short forms used in input data.

Geocoder verifies the incoming address data with Postal Address Files. It takes parsed files and produces a better addressed output file. Geocoder also produces a statistics file that contains basic statistics include percentage of verified addresses etc.

Informatica Code review checklist

Project Name/Code:

Name of the Programmer:

Mapping Name:

Supporting Documents :

Reviewer Name:

Review Date:

 

Number of Defects Identified:

Number of Defects Fixed:

 

MAPPING

 

S.NO.

DESCRIPTION

COMMENTS

YES/NO/NA

GENERAL

1

Is there any design requirements that is not mapped to the Code?

 

 

2

Are there appropriate COMMENTS provided for each transformation?

 

3

Are the Source, Target tables & any reusable transformation used, available in the SHARED folder and the appropriate shortcuts are used in the Mapping?

 

4

Are all the NAMING conventions for ports and transformations followed as described in the naming convention document?

 

5

Are all ports not required in passive transformations excluded in the transformation? (Example: Lookup, expression etc)

 

6

Are all the ports taken through the Active transformations?

 

7

Are all the new Changes made in program code reflected back in Design document and Unit test document? (Design and Testing Docs are in sync with the code)?

 

FLAT FILES (SOURCE)

8

Check for the FLAT FILE and the TABLE STRUCTURE from which it is derived (if used)?

 

9

Are the data types of all the PORTS in the source FLATFILE and TARGET similar?

 

SOURCE QUALIFIER TRANSFORMATION

10

Is the SQL override (if used) in the SQL qualifier valid?

                     

 

11

Are the output ports and the selection of fields in the SQL query of the SQL override specified (if used) in the same order?

 

12

Are there proper LINKS between all the required ports from the SOURCE to the SQL qualifier?

 

13

If multiple Source Qualifiers are used to connect to multiple targets, check if the Target Load Order is designated as required?

 

 

 

SEQUENCE GENERATORS

14

Are the NEXTVAL and the CURRVAL output ports linked correctly (If used)?

 

15

Are the START VALUE (= 0), CURRENT VALUE (= MAX NO.OF RECORDS IN TARGET) + 1) and INCREMENT BY fields in the Properties tab set to the required values?

 

LOOK UP TRANSFORMATION

16

Check for the LOCATION INFORMATION (properties) in the LOOK UP transformations.

 

17

Are the INPUT and OUTPUT ports of LOOKUP transformations properly linked?

 

18

For connected lookups, are the LOOKUP conditions for the LOOKUP transformations given properly?

 

 19

Is the Lookup OVERRIDE (if used) in the Lookup transformation valid?

 

20

In case of Unconnected lookups, is one of the ports designated as RETURN port?

 

21

If Dynamic cache is specified, check if the NewLookupRow Port is correctly used? The data should be flagged appropriately for inserting/updating/do nothing based on the NewLookupRow.

 

22

For Dynamic lookups, check if each of the lookup port (that is not a part of the lookup condition) is associated with an input port or sequence ID?

 

AGGREGATOR TRANSFORMATION

23

Is the GROUP BY ports for the AGGREGATOR transformations being specified appropriately (if used)?

 

24

In case the SORTED INPUT option is specified, is the data that enters the Aggregator is sorted on the Group by ports in the order they appear in the Aggregator transformation.

 

STORED PROCEDURE TRANSFORMATIONS

25

 

Is the CONNECTION Information specified correctly in the Stored Procedure transformation (if used)?

 

26

For Connected Stored Procedure transformations, check if the input and output PORTS are mapped correctly.

 

27

For Unconnected Stored Procedure transformations, check if it is configured to run pre or post session, or configured to run from another Expression transformation.

 

JOINER TRANSFORMATIONS

28

Is the Joining CONDITIONS specified for the Joiner transformation (if used)?

 

29

Is the TYPE of join (Normal, Master outer, and Detail outer or Full outer) specified correctly in the Joiner transformation?

 

FILTER TRANSFORMATIONS

30

Are the FILTER conditions for the FILTER transformations parsed successfully (if used)?

 

 

 

EXPRESSION TRANSFORMATIONS

31

Are the data types and field lengths of all the PORTS specified correctly (if used)?

 

 

32

Are the expressions in the expression transformation parsed successfully?

 

 

UPDATE STRATEGY

33

Is the condition for the UPDATE strategy specified (if used)?

 

34

Are the ports in UPDATE strategy and the TARGET table linked in the correct order?

 

TARGET

35

Check whether the source of all the input ports of TARGET is specified.

 

 

 

SESSION & WORKFLOW

 

S.NO.

DESCRIPTION

COMMENTS

YES/NO/NA

SESSION

1

Are the $Source & $Target connection value in the Properties tab pointing correctly to the SOURCE & TARGET Database respectively?

 

2

In case Mapping parameters are used, check if the PARAMETER file along with the full path is specified in the Properties tab?

 

3

Check if the Save Session Log by option is set to Session timestamp in the log options - config object tab?

 

4

In the source tab, check if the CONNECTION value for source(s) are correctly selected?

 

5

In the targets tab, check if the CONNECTION value for target(s) are correctly selected?

 

6

For Oracle sources/targets, in case the OWNER prefix is required to access the table, check if that is specified in the Table Name Prefix property.

 

7

For Oracle targets check if the Target Load type is set to NORMAL load in the Target Properties.

 

8

For Flat file sources, are the Source file directory, Source File name and File properties correctly specified?

 

9

For Flat file targets, are the Target File directory, target file name and file properties correctly specified?

 

10

In the transformation tab, is the LOCATION information for all the lookups specified correctly?

 

11

In the transformation tab, is the CONNECTION information for all the stored procedure transformations specified correctly?

 

12

If UNIX shell scripts are called in pre-session or post-session commands, check if the script name and the path in which the script exist is specified correctly.

 

13

If partitioning is used, check if all the properties in the Partition tab are specified correctly.

 

WORKFLOW

14

Is the Informatica server correctly selected in the Workflow?

 

What Is a Customer Experience?

The sum total of conscious events

  • A supplier cannot avoid creating an experience.
  • Experience means single and multiple events.
  • Experiences are rational and emotional.
  • Experiences involve all five senses.
  • Experiences can be designed.
  • Experienced organizations exist.
  • The wealthy buy more experiences.
  • Product, service and utility-based organizations
  • and governments can design experiences, too.
Scripting High Interactivity vs Standard Interactivity

There are two fundamental modes of deployment for a Siebel Web Client. End user interactivity options are

  • Standard Interactivity Deployment Mode (SI)
  • High Interactivity Deployment Mode (HI)

Standard Interactivity framework refers to the user experience associated with traditional customer facing web applications. In this mode there is no requirement for any installation on the client machines and the application is accessed using the web browser.

 The High Interactivity framework is similar to a traditional Windows Client.

 Before doing scripting the developer has to consider whether the application is deployed in SI, HI or both. This is because the supported events and methods vary in HI and SI modes. For example calling a business service from Browser Script is supported in HI whereas it is not supported in SI.

 Also SI mode does not support any Siebel Object Browser Events (Applet_ChangeRecord). Instead the browser’s Document Object Model (DOM) events are supported (OnBlur, OnFocus etc.). Also please not that there are two applet server events which is supported only in SI and not in HI. They are WebApplet_ShowControl and WebApplet_ShowListColumn, which will be explained later in the document.

Calling Siebel Business Service in Standard Interactivity mode

 

Calling Siebel business services in standard interactivity mode is different from that of calling or executing business services in high interactivity mode as all the objects will not be available standard interactivity mode. Browser scripts are converted into java scripts and executed in browser. Below techniques are used to call business services in SI mode.

 

  • Browser Script executes in and is interpreted by the browser. Browser Scripts are written in JavaScript and interact with the Document Object Model (DOM) as well as with the Siebel Object Model available in the browser through the Browser Interaction Manager.                           

 

  • The supported DOM Events for High Interactivity Mode and Standard Interactivity mode are different for the same control for e.g for a Minibutton, in High Interactivity Mode, OnFocus and OnBlur events are supported while in Standard Interactivity mode OnFocus (Base/Edit)
    1. OnBlur (Base/Edit)
    2. OnMouseOut (Base/Edit)
    3. OnMouseOver (Base/Edit)
    4. OnClick (Base/Edit) events are supported.                                                    

 

  • Our objective is to call the Business Service at the trigger of onclick event but onclick event is not supported in High Interactivity mode, to associate a script with the control_OnClick event (High Interactivity mode only), use the Applet_PreInvokeMethod event associated with the applet.                                          

 

  • In Standrad Interactivity mode, the onclick event is available for all modes (Base/Edit/Edit List etc.) but the scripting code should be written corresponding to the mode in which applet is viewed otherwise the code will not be invoked.

 

  • High Interactivity mode applications have access to Siebel objects like TheApplication(), Applet, BusComp, etc. so a Business Service running on the server can be easily invoked with the help of these objects, however Standard Interactivity mode applications do not have access to Siebel objects so in order to invoke a business service a reference to Seibel application can be obtained by creating a new ActiveXObject in the following manner
    • var SiebelApp = new ActiveXObject("TWSiebel.SiebelWebApplication.1");
    • However, currently this code is working for Siebel sever hosted on Windows platform only; we need to figure out how to make it work for Siebel server hosted on other OS like UNIX, Solaris etc.

 

  • Modify the EnableWebClientAutomation parameter in the relevant .cfg file. This is necessary to run the Automation server which is used to create the ActiveX object.
  • Pages

    Subscribe to Siebel