Questions Siebel developers are googling

Every now and then I inspect my google analytics to see what other siebel developers are searching when google shows up this blog in the search list. Some of them are quite intriguing. Feel free to answer them in the comments below.



Question : when to use subprocess in workflow in siebel?

Answer : Sub-processes are are standalone workflows which are developed to perform task on one instance of the business object. They are usually used when primary workflow is working on one business object and there is a need to work on data in another business object.

For example there is a workflow configured on button click of Quote record, you would use Quote BO to handle the request. However if there is a need to get Asset information, you would create another workflow based on Asset BO and send Asset Id as Object Id to handle the request.

Question :how to cheat siebel sadmin password through bs run

Answer : That's an interesting question. I think someone is trying obfuscate the user id of the current user and act like SADMIN. Well in that case user can create asynchronous server request to execute business service which will login via standard SADMIN profile in most of the implementations. Hope this helps πŸ˜ƒ

Question : how to proceed the code after raiseerrortext in siebel escript?

Answer : RaiseErrorText method on application object is an special function, it serves two purpose,
  1. It stops the current thread of execution, if loop is getting executed control will come out of the loop
  2. Throws an exception to the parent calling thread.
  3. Shows the error on screen if user has initiated the transaction.
One can try placing try catch around Raise Error Text to trap the execution, but I wonder when someone would want to do that.

Question : how to hide applet in pr file siebel?

Answer : Applets can be hidden using CSS, JS in PR file by finding the div tag of the applet. However best place to do that would be in the View SWT files.

Question : what are escripts limitation in siebel

Answer : Looks like someone form salesforce have joined back Siebel Projects πŸ˜ƒ well there is no governor limits in Siebel which needs to be taken into account while designing any solution.One can execute the script as long as you want, just keep in mind you can only work on 10K records for one query, and one can query again to work on next 10K records. So overall I don't think there is any major limitations.


Run Time Events not working on Applets

Runtime Events - Pre Write Record and Write Record Event defined at the applet level is not working. Validations created on business compoenent works fine, however if same validation is applied on applet wrote record or pre write record, validation does not work especially when run query and go button is used.

Explanation from Oracle:


Run Time events Pre Write Record or Write Record event must work for all the scenarios. But After Defining Runtime Event at Applet Object Pre Write Reord, and if user try to click on any other option for ex: Run Query from menu item, RTE is not getting triggering successfully.

Reason being the runtime events, has been implemented on the UI layer. Please note that Write Record event is BC event which needs to be used for Buscomp object only. So tracking the write record event at Applet level is not recommended approach because might be missing all the scenarios which are apiplicable. This is also applicable for 8.1.1.11 version. So its recommended to review all run time events where PreWrite Record and Write Record events at Applet Object are used, you need to change the same to Business Component Object to work this effectively.

Such a lame excuse. 😐

Workspace Icon Missing From Siebel Web Tools For Users Other Than SADMIN

When you have just enabled workspace and created new developer logins to get your hands dirty, this the first thing you can face 😊

Unless you have following responsibilities assigned to the user, you wont be able to see the workspace icon and use the workspace for development.

Siebel Responsibilities
Siebel Responsibilities

SBL-DAT-00144: Could not find 'Integration Object' named 'MBL Order IO'. SBL-EAI-11500: Empty Output Property Set.

SBL-DAT-00144: Could not find 'Integration Object' named 'MBL Order IO'. SBL-EAI-11500: Empty Output Property Set.


In IP2013 there is lot of cowboy code implemented in EAI and this is one of those examples. You will get this error if your web service is returning only one string and you have turned the EnableServiceArgTracing to True. Due to this property Siebel will try to log the input and output arguments of EAI Siebel Adapter. In this case as the service is only returning a string, siebel runs into error as it is trying to find Integration Object.

(objdef.cpp (14624)) SBL-DAT-00144: Could not find 'Integration Object' named 'MBL Order IO'. This object is inactive or nonexistent.
(xmlcnvsv.cpp (595)) SBL-EAI-11500: Empty output property set. Check to verify the input XML is valid.


To resolve the error simply remove the setting or turn it to false:

EnableServiceArgTracing : False

Its a shame that you wont be able to take advantage of argument tracing of the entire transaction in such scenarios.

SBL-DAT-00500 On view load

SBL-DAT-00500 error is displayed when Quote Item List View is opened. 


View has Quote Header Form Applet and Quote Line Item List Applet. Usually this will work most of the times, however when number of records is more than 10K 'Hirarchy Parent Field' property causes this error.


Solution 1: Clong Quote Item List Applet and disable hierarchy functionality by adding a user property :
Name: Disable Buscomp Hierarchy
Value : TRUE

Solution 2: Disable hierarchy functionality on quote item business component, by disabling
User property : 'Hierarchy Parent Field' from Business Component.
This would remove hierarchy from entire application.

This error is duly recorded in case of execution thread is a business service or workflow. However it confuses a bit when it happen just after view is accessed. 

https://support.oracle.com/knowledge/Siebel/524329_1.html




Hope this helps. 

SBL-DAT-00222: An error has occurred creating business component 'FINS Activity Contact Securities'

Opposite to my liking my new role is to oversee two complex Siebel projects, and do fire fighting and keep SLA under agreed limits. That means checking support web more than my email.

I have decided share some support tickets which can help others and some of them are quite amusing from software engineering point of view. Do let me know what you feel in comments below.


SBL-DAT-00222: An error has occurred creating business component 'FINS Activity Contact Securities' used by business object 'Channel Partner'. Please ask your systems administrator to check your application configuration.

 

 

Solution 1: Inactivate Business Component User Property "IS Autofill: Intersection Table BC"
Solution 2: Create a new Link which we called "Channel Partner/FINS Activity Contact Securities" and create an new Business Object Component under BO "Channel Partner" for BC "FINS Activity Contact Securities" which uses the new Link.

Oracle Support :

Turns out the user property IS Autofill: Intersaction Table BC doesnt do anything and is available only for Siebel Product engineering.πŸ˜€πŸ˜€πŸ˜€πŸ˜€πŸ˜€Someone left internal only user property in production code.

They also recommended using second solution,that means there is very low coverage of Siebel unit testing in the product engineering.



When will I go back to salesforce projects 😐😞😞😞Missing Salesforce so much.

SBL-DAT-00276: No association list is available in this applet.

This error usually occurs when s ript is trying to associate record to a parent record in siebel.

Scenario 1 : Active BO used in script to create association however current context does not contain child BO details.

var opty_bo = TheApplication().ActiveBusObject();
var opty_bc = opty_bo.GetBusComp("Opportunity");
var opty_con_bc = opty_bo.GetBusComp("Contact");
var opty_con_assoc_bc = opty_con_bc.GetAssocBusComp();

In this case the last instruction will error out and result into this error.
Resolution use GetMVGBusComp().GetAssocBusComp()

Scenario 2 : Parent BC has no update flag as set

Solution create thin BC which has no update flag as N, and use that bc to associate the records.

Hope it helps, please leave comments below if you face this error in some other scenario and some other trick helped you out.

Cheers!


The ability to insert records is not available in this screen or applet.(SBL-DAT-00279)

The ability to insert records is not available in this screen or applet.(SBL-DAT-00279)

This error can happen when script or a workflow tries to insert activity under closed service request.

To insert activity under closed service request, one can create activity using activity business object and stamp service request id on it.

Please share your comment below on how to resolve this issue.

What is Dynamic picklist in Siebel?

To answer this question let me explain you what is picklist in Siebel first.

What is a picklist in Siebel?

Picklist is a field is field with a drop down in Siebel. For example status field on order is a pick list field. User is allowed to pick values only from available list of values. These list of values are decided at the time of development of application. Any changes to the list needs change to be made by developer and needs to be tested.
Static PickList in Siebel

And mostly all drop down values are stored in S_LIST_OF_VAL table.

What is dynamic picklist in Siebel?

Dynamic picklist is a field in Siebel which can accept values from a ever changing dynamic list. For example price list field on order BC. This field will accept any price list from Pricelist BC. Some users are allowed to create new price list in Siebel without developer's help. As soon as price list is created in adminstration pricing screen that price list becomes available to pick on any order record.
Dynamic Pick List in Siebel

Another example of dynamic picklist could be agreement pick list on opportunity BC. Any available agreement can be selected by user in opportunity record, and this list of agreement keep growing as users keep on creating agreements.

Hope it clears the doubt. Feel free to ask any questions related to picklist in comments below.

What is OUT OF THE BOX Siebel means?

This question was asked by my agile guru PM who never came across Siebel before and was little confused with acronym OOB.
Out Of the Box Siebel


This is how i explained him. Siebel is a packaged CRM application sold by Oracle for various industries.

Package application means that application is pre-built to support best business practices. There are some basic functionalities which already exist in application(like contacts, accounts and activities etc.... For specific industries it may have orders, quotes, cases , incidents etc..)

Thus when first time Siebel CRM is installed on server, the application you get is known as Out of the box Siebel application. Literally like straight out if the box.

You might have heard from Siebel consultants saying that email processing is available out of the box in Siebel, that means oracle has already developed support for email processing and there is no need for development.

Development is required only when some different functionality is required than "OUT OF THE BOX" Siebel or sometime referred as OOB. This development is known as customization.

Hope this might help you in answering your PMs.

Workspace Icon Missing From Siebel Web Tools For Users Other Than SADMIN

When you have just enabled workspace and created new developer logins to get your hands dirty, this the first thing you can face 😊 Unless...