Last updated on AUGUST 03, 2017
Applies to:Siebel eCommunications - Version 184.108.40.206 SIA  and later
Information in this document applies to any platform.
On : 220.127.116.11 SIA  version, System Admin
Serious issues on the eCommunications module were causing the system to go down:
1 - The sort spec contains the Status field which is translated using S_LST_OF_VAL. When this is the case, after we have setup the BC with the normal fields, we will look at the sort spec and when finding that a field in the sort spec is translated we will setup the corresponding fields to contain the translation among them this Status.TransValJoin on which we are going to sort. But we only need this field for the order by. So we will setup this field as SearchOnly. This means that this field will be used in the order by but will not be part of the select list. In the select list we will have the normal Status field and the translation will be performed in the code using the LOV cache etc.... So in 'normal' usage, that field is only used for the Order and is not part of the SELECT so we don't have its value.
2 - But when in a task context, we will have to read all records and perform the sort in the code (as opposed to do it in the DB) so we need those field values in the SELECT. And that is expected. So when we are going to use a BC in a task context we are going to activate all those fields which were only used for the Order by. They will be selected and will have a valid physical index, etc... But we only do this for the BC that we are setting in the task.
3 - In this specific case, the BC Asset Mgmt - Asset (Order Mgmt) on which they have set Status in the sort spec is used by the view used before calling the task in one of the applet and was a child BC of the main BC Account. In that context since we were out of task context we were in the situation of case 1 and the fields were only used for the order by and not part of the Select list. We call the task which is based on Account and keep the context of that BC Account and are going to a view which does not contain any applet using Asset Mgmt - Asset (Order Mgmt). So the work of reactivating fields will only be done on Account and the BCs used in the applets in the task view (Contact...) but not for the Asset Mgmt - Asset (Order Mgmt). But then we reposition the BC Account and call UpdateLinks which will find among the other children BC our BC Asset Mgmt - Asset (Order Mgmt) will reexecute it and call Home on it. There it will read all the records and try to order them using the fields in the sort spec and among them the field Status. TransValJoin but we haven't selected this field so we find an invalid value and that's the cause of the crash.
Logs that can indicate the issue:
2021 2016-01-29 07:53:42 0000-00-00 00:00:00 +0100 00000000 001 003f 0001 09 eCommunicationsObjMgr_enu 115343373 16572 17 /ora/product/oracle/sbl_home/siebsrvr/enterprises/fiberpp/A_PPAPP1/log/eCommunicationsObjMgr_enu_0110_115343373.log 18.104.22.168  ENU
Line 74932: ObjMgrBusCompLog Warning 2 0000000a56aa6fc6:41421 2016-01-29 07:54:48 (buscomp.cpp (22477)) SBL-DAT-00322: The specialized method 'CalculateForHI' is not supported on Business Component 'Asset Mgmt - Asset (Order Mgmt)' used by Business Object 'Account'.
Line 79146: ObjMgrBusServiceLog Error 1 0000000a56aa6fc6:41761 2016-01-29 07:54:55 (taskuisvc.cpp (2795)) SBL-EXL-00137: Screen '<?>' has no valid views!
Line 80115: ObjMgrLog Error 1 0000000a56aa6fc6:41762 2016-01-29 07:54:55 (acrscengine.cpp (1710)) SBL-DAT-00825: Access to Resource FS Asset To Contract Task of type TASK is denied
Line 83547: ObjMgrLog Debug 5 0000000a56aa6fc6:41866 2016-01-29 07:55:02 (sweframe.cpp (9617)) SBL-EXL-00145: User choosed to interrupt the subsequent operations on Object <Custom name> Asset Mgmt - Asset List Applet by returning CancelOperation in event PreCanInvokeMethod.
Line 83569: ObjMgrBusCompLog Warning 2 0000000a56aa6fc6:41866 2016-01-29 07:55:02 (sqlobj.cpp (29379)) SBL-DAT-00398: Field 'Promotion Item Flag' does not exist in definition for business component 'Asset Mgmt - Asset (Order Mgmt)'.
Line 83862: ObjMgrSRFLog Warning 2 0000000a56aa6fc6:41979 2016-01-29 07:55:02 (objdef.cpp (14368)) SBL-DAT-00144: Could not find 'Table' named 'Position'. This object is inactive or nonexistent.
/ora/product/oracle/sbl_home/siebsrvr/lib/libsscfdm.so:bool CompareRow::operator()(const void*,const void*)const+0x428 [ Signal 11 (SEGV)]
/ora/product/oracle/sbl_home/siebsrvr/lib/libsscfdm.so:void SortAnArrayOfPointers(CCFArray >&,LessComparison)+0x54
/ora/product/oracle/sbl_home/siebsrvr/lib/libsscfom.so:unsigned CSSBusComp::PositionById(const unsigned short*,int,int,int)+0x31c
Removing Status from the sort spec if you don't need it will fix the problem since will not have anymore in the Sort Spec a translated field.
Adding an applet based on Asset Mgmt - Asset (Order Mgmt) to the task view will also fix the problem because when going to the task view that BC will be setup in the task and its fields activated and our Status.
TransValJoin will be in the select list and its value will be available for the sort.
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
Million Knowledge Articles and hundreds of Community platforms