You are here

Siebel

Troubleshooting – Common Workflow Errors

The following lists some commonly encountered errors for Workflow Process Manager.

1. Problem: You activated your workflow but it is not executing

Solution: Verify if <Reload Runtime Events> performed. In order to tell if a process has been triggered, Turn workflow logging (EngInv, DfnLoad, StpExec, PrcExec) on. See the Business Process Administration Guide in Siebel Bookshelf for procedures on how to do this.

2. Problem: You revised the workflow process and re-activated it, but somehow the previous workflow information was read.

Solution: Restart Siebel Server service to refresh the cached version.

3. Problem: When workflow is triggered by runtime event Display Applet, the workflow is triggered the first time but not subsequently? Why?

Solution: Since the DisplayApplet event is a UI event, and the default web UI framework design is to use cache, the event only got fired when the first time a non-cached view is accessed. The workflow gets triggered whenever the event is fired and worked correctly. To make the trigger work each time, you could explicitly set EnableViewCache to FALSE in .cfg file. NOTE: Setting EnableViewCache to FALSE is not recommended as this may severely impact performance.

4. Problem: If a business component has code on WriteRecord and the runtime event fires on Writerecord, which occurs first?

Solution: Runtime events fire before any script events.

5. Problem: After you triggered workflow from a runtime event, you do not get the row-id of the record on which the event occurred.

Solution: Runtime event passes the row-id of the object BO (i.e. primary BC) and not the row-id of the BC. Retrieve the row-id of the active BC using searchspecs (e.g. Active_row-id (process property) = [Id] defined as Type = Expression and BC = BC name)

6. Problem: Encountered the error <Cannot resume Process <x-xxxxx> for Object-id <x-xxxxx>. Please verify that the process exists and has a waiting status.

Solution: This error typically occurs in the following scenario:
(1) A workflow instance is started and paused, waiting for a runtime event
(2) The runtime event fires. The workflow instance is resumed and run to completion.
(3) The runtime event fires for a second time. Workflow engine tries to resume the workflow instance and fails, since the workflow instance is no longer in a Waiting state.
Deleting existing instances will not help. You should ignore the error message and proceed. Steps (1)-(3) need to occur, in that order, in the same user session for the error message to be reported. As a result, the error message would disappear when the application is re-started.
Also, Purge only works on stopped/completed instances. In order to delete persisted/incomplete instances, you will need to manually stop the instances first.

7. Problem: How do you access a different business object (BO) from a workflow process?

Solution: Workflow architecture restricts the use of 1 BO to a workflow. Use a sub process step to access a different BO.

8. Cannot initiate process definition <process name>

Solution: Verify that the workflow process exists, process status is set to Active, and the process has not expired.

9. Problem: OMS-00107: (: 0) error code = 4300107, system error = 27869, msg1 = Could not find 'Class' named 'Test Order Part A'
OMS-00107: (: 0) error code = 4300107, system error = 28078, msg1 = Unable to create the Business Service 'Test Order Part A„

Solution: Make sure at least one .srf file is copied to SIEBEL_INSTALL\objects\<lang> directory

Actuate e.Report Designer File types
Actuate has 5 types of files namely, basic source (.bas) files design (.rod) files executable (.rox) files library (.rol) files report document (.roi) files Basic Source (.bas) Files Basic source files contain Actuate Basic code associated with a specific report design. You can store source files in the Encyclopedia as backups or to share with other developers. You can open and edit a source file only on the desktop environment. You do not need access to source files to run, view, or print reports. You compile basic source files to create a program or define functions that Expression Builder can use. Your Config folder contains the following basic source files: 1.FrontEndFunctions.bas – functions for request pages 2.Functions.bas – functions for .act reports Use e.Report Designer Professional to create basic source files. Design (.rod) Files Design files contain components that specify the format and content of a finished report. You can store design files in the Encyclopedia as backups or to share with other developers. You can open and edit a design file only on a desktop machine. You do not need access to design files to run, view, or print reports. Use e.Report Designer or e.Report Designer Professional to create report designs. Executable (.rox) Files Executable files generate report documents with current data when you run them. You compile design (.rod) files to generate executable (.rox) files. Use e.Report Designer Professional or e.Report Designer to create report executable files. Library (.rol) Files Library files contain reusable report components. Library files are typically included with different report design files. You can store library files in the Encyclopedia as backups or to share with other developers. You can open and edit a source file only on the desktop environment. You do not need access to source files to run, review, or print reports. Report Document (.roi) Files Report document files are the finished reports you view through Internet Explorer. Executable (.rox) files produce (.roi) files. You can view Actuate reports on the Web in DHTML format.
Automating "Generate Reporting Relationship" on the Position applet

To Automate "Generate Reporting Relationship" on the Position applet, you could :

1. Create the script as a Siebel business service.
2. Create a workflow process that calls this business service.
3. Schedule this workflow process to run at the interval you desire, by using Siebel's Repeating Component Request feature with the component "Workflow Process Manager".

function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
{
var busobj;
var buscomp;

busobj = TheApplication().GetBusObject("Assignment");
buscomp = busobj.GetBusComp("Assignment Group");
buscomp.InvokeMethod("Release");

return (CancelOperation);
}

Note:Work flow Process Manager (Server Request) Business Service instead. This would fire the workflow process which runs on wfprocmgr component. This will then take the SADMIN username to invoke.

(OR)

Business Service script below:

function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
{

try
{

var AsgnBO = TheApplication().GetBusObject("Assignment");
var AsgnBC = AsgnBO.GetBusComp("Assignment Group");
AsgnBC..InvokeMethod("Release");
}
catch (e)
{
Outputs.SetProperty("Error Message", e.toString())
}

finally
{
AsgnBC = null;
AsgnBO = null;
}

return (CancelOperation);
}

What to expect from Open UI for Siebel CRM
Year 2012 is promising to bring some exiting changes to Siebel CRM, Cross browser compatibility has been a major usability concern for Siebel CRM. With Siebel high interactivity frame work build using the ancient ActiveX format has been a road block to unleash the potential of the Siebel rich functionality. Oracles new promise to introduce the Open UI to address the browser compatibility, 2011 has been a year for tablets with Android devices with 27% market share and iPad gaining 68% of tablet market share and Apple becoming the biggest pc manufacture. When we look at the Browser shares IE is loosing the ground faster then ever. Every one is looking to achieve more with less clicks and taps. Siebel has been little behind in adopting the emerging user’s interactivity changes lately. Open UI for Siebel is intended to address this very concern, Open UI transforms Siebel CRM into a truly Open platform prebuilt to work across browsers and mobile devices, with out any loss of business logic or functionality. The Promise: Oracle is promising the open UI will work on Laptops, iPhone, Ipad, Android and other mobile devices. When it comes to iPhone and Black Berry devices the application with be connected applications which are extensible. One change strikes on iPad with disconnected client allowing the users of use Siebel CRM even with no internet access; it’s like the Siebel CRM desktop client. CRM Desktop: CRM desktop appears to stay same from user experience angle, except the browser compatibility. Native Application for Mobile devices: With native device support for iPhone, Android and black berry devices is going to be a major breakthrough for Siebel CRM applications. The proximity search of CRM data is another impressive change. With rich interactive presentations integrated with Siebel CRM optimized for mobile devices call planning and call execution will be much faster and enjoyable to field sales force with integrated GPS and telephony. Migration to Siebel Open UI: Siebel Open UI is optional and can coexist with ActiveX high interactivity frame work; there will be no changes to the Siebel Tools configuration. Custom web templates stay the same. Browser scripting with be refactored in JavaScript.
Siebel Enterprise Integration Manager - EIM Most frequently asked Interview Questions – Part 3

This is Siebel EIM Interview Q&A Part 3 We have collected the Siebel real time interview questions related to EIM ( enterprise integration manager) , these are asked in real interviews in most of the companies. All the best for your job interview!

1.What is the behavior of the EIM merge process?

Ans: Data from the record you select as the surviving record are preserved. Data from the other records are lost. If there are other records associated with the records you merge, those records—with the exception of duplicates—are associated with the surviving record.

2.Why is the IF_ROW_STAT column set to the value NO_SUCH_RECORD after running a merge process?

Ans: If you do not correctly populate all the user key columns, the merge process will fail and the IF_ROW_STAT column in the interface table will be set to the value NO_SUCH_RECORD. This indicates that EIM cannot find the appropriate rows to merge using the specified user keys.

3.Can EIM be used to merge rows from secondary tables?

Ans: EIM can only be used to merge rows from target base tables, and not secondary tables. For example, the target base table for EIM_ASSET is S_ASSET. EIM can only be used to merge two or more S_ASSET rows into single S_ASSET rows. You cannot use EIM to merge two or more S_ASSET_CON rows into single S_ASSET_CON rows. During EIM merge, EIM will merge rows from the target base table, and update the rows from the secondary tables to reference the surviving target base table rows. If you try to merge two secondary tables rows into one row by populating the interface table with user keys of the secondary table rows, the interface table victim and survivor rows will have the same target base table user keys values, which will cause the target base table row to be deleted.

4.What is the recommended number of rows that can be loaded in a single batch?

Ans: For an initial load, you can use 30,000 rows for a large batch. For ongoing loads, you can use 20,000 rows for a large batch. You should not exceed 100,000 rows in a large batch. Furthermore, you should limit the number of records in the interface tables to those that are being processed. For example, if you have determined that the optimal batch size for your system is 19,000 rows per patch and you are going to be running 8 parallel EIM processes, then you should have 152,000 rows in the interface table. Under no circumstances should you have more than 250,000 rows in any single interface table, since this will have a tremendous negative performance impact. NOTE: The number of rows you can load in a single batch may vary depending on your physical machine setup. To reduce demands on system resources and improve performance, you should always try to use smaller batch sizes.

5. Should EIM stop processing when multiple rows fail a pass?

Ans: EIM is designed to import large volumes of data. Most failures are caused by data errors. It is usually faster and easier to correct the data errors and resubmit the corrected rows as part of a subsequent batch than to reprocess an entire batch. EIM does not stop when failures occur.

CRM Siebel Application on iPad and iPhone
Oracle has extended its support for Siebel Application on apple ipad. Continuing its commitment to provide customers with open, flexible options for their mobile CRM needs, Oracle today announced the support of Oracle’s Siebel CRM for Apple iPad. By leveraging Oracle's server-based REST API and the open development platform provided by Apple’s iPhone OS SDK, Siebel CRM customers can take full advantage of iPad to easily access powerful Siebel CRM data in real-time. With the combination of the REST API and iPhone 3.2 OS SDK, Siebel CRM customers can immediately begin to build and deploy their own CRM applications for the iPad. Siebel CRM on the iPad enables organizations to add another option to their mobile CRM line-up, collaborate more effectively and lower total cost of ownership with an improved user experience and more productive time spent out of the office and in the field. Oracle is providing a recorded demo of the sample application built with the REST API and the iPhone OS 3.2 SDK in order for Siebel CRM customers to see and experience the power of Siebel CRM on the iPad.
Siebel Pricing – Component Based Pricing
Siebel Component-based pricing is a pricing method that will allow you to price a customizable product. You need to have a good understanding of customizable product and eConfigurator to understand the possibilities of Siebel Component-based pricing. A customizable product is a product that has one of several component(s). Each of these components can also be a customizable product. In Siebel, you can define a product structure with as many customizable products you need, at any level (well, except at the last level!). Please note: Readers must know what a CxP is to understand this series of articles. These articles will contain several screenshots of Siebel. Note that We have modified the Applets’ Layout to better show relevant information. Functionalities: Follows this (high level) workflow: “Component-Based Pricing” is implemented in the “Dynamic Pricing Procedure” (WP) workflow process, at step “Customizable Product Adjustment”. That unique step contains all the logic required for this type of pricing. This workflow is typically used to calculate the Start Price in the Quote/Order. This is important to know because it means that “Component-Based Pricing” is designed to calculate the price of a customizable product based on the different components selected in the product configurator. The price can change based on selected components, but this price will still be seen as the “normal” price, i.e. a price that does not include any discount you may receive (Volume discount, Promotions…) This is why it is shown in the Start Price and not in the Net Price. All forms of discount are calculated in the Net Price by a different WP: “Pricing Procedure – Calculate Net Price”. Following are 3 different scenarios to illustrate Component-Based Pricing” There are more variations but those 3 I hope, should cover most situations: 1. Fixed Pricing : Your CxP has a fixed price, changes in the components will not affect the price.This is a possible solution when you want to bundle products together. 2. Roll-Up Pricing : The CxP has a price of zero, selection of components will define the CxP’s price. This is the approach to consider when you require BOM Pricing. 3. Combination of Fixed and Roll-Up Pricing : The CxP has a base price that can change depending of the configuration of the product.This can be used to implement some sort of discount rules ,Components can be purchased separately but at a different price.
Dynamic User defined Error Message in Siebel

Create a User Defined Error Message which can smartly display dynamic text.

 Solution:  

  1.  Create a User Defined Error with the text ‘%1 …followed by your text’

 

  1.  Add the script behind the button where you want to invoke this error from
 If(MethodName== “Click”) 
{
varMessage= TheApplication().LookupMessage("User Defined Errors","Notification","Fax");
TheApplication().RaiseErrorText(Message);
}

 

If(MethodName== “Click2”) 
{
varMessage= TheApplication().LookupMessage("User Defined Errors","Notification","Letter");
TheApplication().RaiseErrorText(Message);
}

 

The parameter that is substituted in place of %1 is "Letter" or “Fax”, which is present in the message test

Export data using dbisqlc.exe utility

DBISQLC.EXE is the utility used to connect to sample/local database for DML,DDL operations. But how do we export the results of a query to a file?

 Solution:

 By using ‘OUTPUT’ command.

 e.g.

SELECT * FROM SIEBEL.S_CONTACT

To export the data to a file for the above query you have to issue the following query

SELECT * FROM SIEBEL.S_CONTACT ;
OUTPUT TO C:\RESULT.CSV
FORMAT ASCII

 Note:-Don’t forget to add ‘;’ after the query and before OUTPUT TO clause otherwise you will get an error. Also make sure that a blank file exists in the path before you execute the query.

 Syntax:-

OUTPUT TO file-name
[APPEND]
[VERBOSE]
[FORMAT output-format]
[ESCAPE CHARACTER  character]
[ESCAPES ON/OFF]
[DELIMITED BY string]
Duplicate Records after Export in Siebel
This article lists out the steps to identify the Join, which causes the duplicate records during the export.
 
Basically there are two steps involved in the process.
 
  1. Identify the Join returning the duplicate record in the corresponding business component.
 
    1. To start with turn on the SQL Spool functionality for the behavior. See Document 475564.1 for more information.
 
    1. Log into the application and make sure that minimal steps are executed that can replicate the behavior.
 
    1. Log out of the application.
 
    1. From the SQL Spool identify the SQL Statement that performs the Export functionality.
 
    1. From the records exported from the user interface, for one set of duplicate records identify one of the fields that has the same value among them. (For example. the entire duplicate records for that set will have Name=’A’).
 
    1. Now to the SQL Statement identified in step d, append the condition (for example. SNAME = ‘A’) in the WHERE clause of the Statement using ‘AND’. (This is just to constrain the number of records that are retrieved from the database to one set of duplicate records.)
 
    1. Now run this query directly with the database and at this time only one set of duplicate records will be retrieved.
 
    1. From the above query try removing the Join statements one by one and see at the removal of which Join statement only one record is retrieved.
 
    1. This Join statement will be the culprit.
 
  1. Constrain the Join identified in step 1.
 
    1. Once the Join statement causing the duplicate records has been identified, try to redefine the Join Specification in Tools by constraining it according to the business requirements so as to return one single record. This can be done by following the steps below:
 
      1. Navigate to Siebel Tools.
 
      1. Business Component > <Business Component name> > Joins > <Join name> > Join Constraint.
 
      1. Set the properties of this Join Constraint appropriately.
 
However, you can also see duplicate records being created in the standard Siebel application as well.
 
Here is the list of a few such behaviors, their workarounds and also the Change Requests associated to them.
 
Duplicate records are exported when Account records are exported from My Accounts view in Siebel version 7.5.x.
 
This is because one or more than one Sales Representative record is associated to an Account record, and the number of duplicate records exported will be proportional to the number of Sales records associated to an Account record. For example, any account record that has two Sales Representatives is duplicated and any account that has three Sales Representatives will appear three times during the export.
 
  1. In Siebel Tools > Business Component > Account
 
  1. Join > S_ACCNT_POSTN > Join Constraint
 
  1. Create a record with following values:
 
Field
Value
Name
Position Id
Destination Column
POSITION_ID
Value
PositionId ()
 
Change Request 12-FD16ZQ had been logged to address this product defect and is fixed in Siebel version 7.7.
 
When the Account list applet exposed the CUT Address Multi Value Group that used a Primary Id field, the SQL statement included a join to S_CON_ADDR based on the Account Id and Address Id. In this case, the client side export would export duplicate records. The Multi Value Link Primary Id Field caused the SQL statement to do the Join to S_CON_ADDR.
 
This is because of the way the business component is implemented.
  
If the Account list applet did not expose the CUT Address Multi Value Group, the SQL statement would not do a join to S_CON_ADDR based on Account Id and the Address Id. Therefore, the client side export would not export duplicates.
 
Change Request 12-LP6VAK was logged to address the duplicate records on export with a valid configuration. This behavior is not reproduced in Siebel version 7.7 because the only join in 7.7 to S_CON_ADDR is: LEFT OUTER JOIN dbo.S_CON_ADDR T14 ON T2.PR_ADDR_ID = T14.ADDR_PER_ID AND T2.ROW_ID = T14.ACCNT_ID. This returns the Primary Address for the current Account. It will not return multiple records.
 
Duplicate records were found by the following configuration changes suggested in Siebel Maintenance Release guide version 7.5.2.210.
 
  1. Modify Business Component > Business Component User Property
 
    1. Open Siebel Tools.
 
    1. Go to Business Component.
 
    1. Query for Business Component Name = “Contact”.
 
    1. Go to Business Component User Property (under Business Component).
 
    1. Create new record as follows:
 
Field
Value
Name
Use My Position or Primary Contact Position for Position Join
Value
TRUE
 
  1. Modify Business Component > Join.
 
    1. Open Siebel Tools.
 
    1. Go to Business Component.
 
    1. Query for Business Component Name = “Contact”.
 
    1. Go to Join (under Business Component).
 
    1. Query for Join Alias = “Position Join”.
 
    1. Go to Join Constraint (under Join).
 
    1. Query for Join Constraint Name = “Position Id” (but there should be one record anyway).
 
    1. Delete Join Constraint record.
 
After removing the suggested configuration (above), export works fine.
 
Change Request 12-FOYV43 has been logged to address this product defect and this behavior has no longer been verified in Siebel versions 7.8.x and above.
 
Duplicate Contact records in Objectives > Contact Status View was found.
 
No Workaround for this issue. Change Request 12-FOYV4I had been logged to address this product defect and is fixed in Siebel version 7.7.
 
Query on a MLOV field that has a hierarchy produces duplicates with File > Export.
 
When an MLOV column is used in Search Specification or Sort Specification, the SQL statement does a join of the Base table to the S_LST_OF_VAL table on the NAME, TYPE and LANG_ID columns. These three columns are unique in most cases, but not for hierarchical LOVs, which may contain multiple entries with the same (NAME, TYPE, LANG_ID) values and as a result, the SQL statement will return duplicate records and therefore the export will have duplicates.
 
A workaround for this behavior is to rename the List of Values to ensure uniqueness by Name, Type and Language. Another workaround is to modify the List of Values value column to be unique for a given name, type, and language id.
 
Note, that the duplicate records on export only happened if the user executed a query with a query condition on a multilingual (MLOV) field. If the query conditions were not on a MLOV field, the SQL statement did not execute the join to S_LST_OF_VAL and therefore the export did not have any duplicate records.

Pages

Subscribe to Siebel