Search This Blog

SBL-BPR-00120: Cannot get value of business component field '%2' at step '%1'.

Applies to:

Error Message Area:Business Processes/Workflow - BPR
Version:Siebel 7.7

Purpose

This document is intended to provide cause and corrective action information about Siebel Error Message SBL-BPR-00120: Cannot get value of business component field '%2' at step '%1'.

Scope

This document is informational and intended for any user.

SBL-BPR-00120: Cannot get value of business component field '%2' at step '%1'.

Explanation

This error is returned by the business component when one of its fields is invalid or inactive. The business component field '%2' is used for the input arguments, the output arguments or the branch conditions at step '%1'.

Corrective Action

This error message should be followed by a business component specific error message. Check the business component specific error message and take the recommended corrective action.


Applies to:

Siebel Workflow - Version: 8.0.0.5 SIA [20420] - Release: V8

Information in this document applies to any platform.

Symptoms

A Siebel Operation - Query step in a workflow causes the below error when the workflow is running in a custom workflow process manager component:

Cannot get value of business component field 'Primary Contact Id' at step 'Get Contact from service account'.(SBL-BPR-00120).

The workflow process manager component was created by copying the existing "WfProcMgr" component.

Reviewing the SQL select statments in the log file shows that only a subset of the columns that are expected in the selects are actually appearing. The selectstatements are incomplete comparing them with the selects when they are running in the standard WfProcMgr component.

Cause

When copying the server component WfProcMgr the advanced parameter CFGRepositoryFile is set to "siebel.srf" instead of "siebel_sia.srf". 

Solution


The problem is resolved by changing the following component parameter using the server manager command line utility:

change param CFGRepositoryFile=siebel_sia.srf for comp alias name of the custom WfProcMgr component

alias /Or by changing the parameter in the Server Configuration GUI.

You need to restart the Siebel Servers after this change.

References

BUG:10561478 - SERVER REQUEST BUSINESS SERVICE - ERROR IN CALLING A CHILD WORKFLOW

Applies to:

Product Release: V7 (Enterprise)
Version: 7.7.2.2 [18356] Com/Med
Database: Oracle 9.2.0.5
Application Server OS: Sun Solaris 5.8
Database Server OS: Sun Solaris 5.8

This document was previously published as Siebel SR 38-3245099461.

Symptoms

SBL-BPR-00120

In my workflow I added a Siebel Operation step to query for a value.   I set all the fields correctly, specifying Operation of type Query. I set a valid Search Specification and Output argument to capture a value from the result. Only when the search specification does not return any rows, I get this error message:

Cannot get value of business component field 'Id' at step 'Query'. (SBL-BPR-00120)

If rows exist, I do not get this error message, and my workflow works. But as I cannot guarantee there will be any rows found in my scenario, this behaviour is totally wrong. I need the workflow to go down a different branch when no rows are found. Having looked at all parameters etc. there does not appear to be any way of getting around this. The only thing that works is to specify an exception branch but this is very poor as there doesnt seem to be a way of specifying what type of exception on a particular branch.

Is there any way of doing this.?

Please advise.

Thanks

Solution

Message 1

For the benefit of other users, the customer created a Siebel Operation query step that included a search specification and an output argument to retrieve a record’s Id field and assign it to a process property. When a record did not match the search specification, the workflow failed with the following error:

“Cannot get value of business component field 'Id' at step 'Query'. (SBL-BPR-00120)”

I was able to reproduce the reported behavior. When I removed the output argument, an error did not occur when a record did not match the search specification. This shows that the error is related to the output argument and, as the error message indicates, occurs because the application cannot get the value assigned to the Id field.

CR 10517511 has been raised to enhance the application so that it does not try to get the output argument if a record is not returned by the siebel operation query.

In terms of implementing the required functionality, a possibility was to add an exception to capture any errors. When an exception occurs, the error code is written to the Error Code process property and the error message is written to Error Message. You could use a Decision step to check whether the exception occurred because it “Cannot get value” and direct the flow accordingly.

[Continued]

Message 2

Another option is to remove the output argument. You could use a Decision step to determine whether or not the Siebel Operation returned a record and, if it did, retrieve the value assigned to the field and assign it to a process property.

Keywords: Siebel Operation Query Search Specification Output Argument Cannot Get Value Business Component Field

- Siebel Technical Support


Applies to:

Product Release: V7 (Enterprise)
Version: 7.7.2 [18325] Hi Tech
Database: Oracle 9.2.0.4
Application Server OS: Microsoft Windows 2003 Server
Database Server OS: Microsoft Windows 2003 Server

This document was previously published as Siebel SR 38-1732060971.

Symptoms

SBL-DAT-00398, SBL-BPR-00120, SBL-BPR-00183

NOTE - the issue is related to Field Service Functionality within the 7-7 HTIM application

On the Agreement screen, charges view, and charge plan view a button exists with the label Charge.
When this button is pressed, a process kicks in to evaluate the charge plan settings. The output should be charge table entries.
This does work as expected, with one exception. I created the Charge Amount. The Amount field ends up with a currency set to system default and not to the currency linked to the NRC Amount field which is the base for the charge amount.

background info
Line Item Charge Plan settings. NRC Amount is set to 200 euro. NRC Quantity was set to 2.
Siebel creates a charge with Amount 200 SEK (SEK is the system default).

As we will go in to UAT within a few days this is a critical issue.

Solution

Message 1

For the benefit of other users:

The behaviour has been reproduced in a standard environment.
Change Request 12-T7Z02X ("Agreement Item Charge generation uses wrong currency") has been logged to request that this be corrected in a future version of the Siebel application.

The following configuration solution was developed for this Change Request:

1. In Siebel Tools, go to business component "FS Agreement Item".
   Create a joined field with
   - Name: Agreement Currency Code
   - Join: S_DOC_AGREE
   - Column: BL_CURCY_CD (this refers to field Currency Code in business component "Service Agreement")
   - Force Active: TRUE.
2. Still in Siebel Tools, go to business component "FS Charge".
   Select field "Currency Code".
   Set the pre default value to the following (make sure to use the exact same syntax):
   Parent: 'FS Agreement Item.Agreement Currency Code', 'Service Request.Currency Code', 'Action.Currency Code', System: Currency

3. Compile the changes and test agreement item charging with the new configuration.

Please test this thoroughly before applying it to your production environment.

... continued in next update

Message 2

continued from previous update ...

In the process of testing this behaviour the following additional issue was discovered:
After activating the workflow processes in group "Service" that are connected to agreement charge generation, when clicking on the Charge button in an agreement item the following error is generated:

=> Error:
[1] Error running sub-process 'FS - Generate Usage Charge' at step 'Generate Usage Charge'.(SBL-BPR-00183)
[2] Cannot get value of business component field 'Usage Last Invoiced Date' at step 'Convert Use Last Date'.(SBL-BPR-00120)
[3] Field 'Usage Last Invoiced Date' does not exist in definition for business component 'FS Agreement Item'.
Please ask your Systems administrator to check your application configuration.(SBL-DAT-00398)

Cause:
This is a mistake in the input argument definition. From Siebel v7.5 to v7.7 the field has been renamed to "Usage Last Charged Date".

Solution:
Siebel Tools for v7.7, connected to Sample DB as SADMIN.
Workflow Process: FS - Generate Usage Charge
Revise.
Edit Workflow Process.
Select step: Convert Use Last Date.
Show Input Arguments => LocaleDate with Business Component Field: Usage Last Invoiced Date.
Change this to Business Component Field: Usage Last Charged Date.
Go back to the list of workflow processes and click on Deploy.

... continued in next update

Message 3

continued from previous update ...

Change Request 12-T7WI30 ("Error in workflow process: FS - Generate Usage Charge") has been logged to request that this be corrected in a future version of the Siebel application.


Kind regards from
Siebel Technical Support


Additional Keywords: system currency, currency conversion.


Applies to:

Siebel Workflow - Version: 8.1 [21039] and later   [Release: V8 and later ]
Information in this document applies to any platform.
Release(s):V7 (Professional), V6 (Siebel 2000-Enterprise), V7 (Enterprise), V8 (Enterprise),
Database(s):All Supported Databases
App Server OS(s):All Supported Platforms
Latest release tested against:V8 (Enterprise)
Keywords:Primary Row Found, Primary Id, Operation

This document was previously published as Siebel FAQ 1788.

Goal

What does “No Primary Row Found...” Error in Workflow Process or Workflow Monitor Agent Log or Workflow Process Simulator Convey and How can Users Troubleshoot this Error?.

Solution

Errors similar to the following are either reported in the Workflow Process Simulator or in the Workflow Process Manager (WfProcMgr) or Workflow Monitor Agent (WorkMon) log, during workflow process execution:
 
SBL-BPR-00101: No Primary Row found in '%1' for Siebel Operation.
 
OR
 
SBL-BPR-00120: Cannot get value of the business component field '%2' at step '%1'
 
SBL-BPR-00169: Row '%1' does not exist in business component '%2'.
 
And may or may not be followed by:
 
SBL-BPR-00100: Error processing Siebel Operation for:
Business Object '%1'
Business Component '%2'
Primary Id '%3'
Operation '%4'
 
The error message “No Primary Row found...” is very generic. This usually indicates that the ROW_ID being passed to the workflow process could not be found in the primary business component for the business object which the workflow process uses.
 
Workflow Processes uses object layer logic and configuration. Thus, it abides by how the business object and business components are configured through Siebel Tools.
 
Following are some suggestions, which can be very helpful in troubleshooting such errors:
 
  1. Ensure that the value of %2 in the error message “Error processing Siebel Operation for...” is defined as the primary business component in Siebel Tools for the value of %1, business object, mentioned in the error above.
 
  1. Confirm that the value of %3 (which is a ROW_ID, for example ‘12-12X3’) is visible from the Siebel application and is present in the table corresponding to the business component %2 mentioned in the error message.
 
  1. Ensure that there is no scripting, search specification, user properties on the business component mentioned in the error messages that would prevent the record from satisfying any criteria imposed by the custom script, search specification or user property. This is because such restrictions can block the visibility of the records to the workflow process.
 
  1. If the business object or business component mentioned in the error message is custom configured, validate the business object or business component in Siebel Tools. This can be performed by right clicking on the business object or business component and then selecting the Validate option. This will ensure that the basic configuration is correct.
 
For a workflow process invoked from a workflow policy, the ROW_ID on the workflow object’s primary workflow policy component for the triggered ROW_ID is passed as an input argument to the workflow process being invoked. The workflow process will then search for the ROW_ID. If the ROW_ID is not found by the workflow process in the primary business component used by the workflow process, an error similar to the above will be reported.
 
Detailed information regarding the customization of workflow policy objects can be found in the following Siebel Bookshelf references:
 
  • For Siebel versions 7.0 > Workflow Administration Guide > Customizing Workflow Policies with Siebel Tools.
 
 

 

  • • For Siebel version 8.0 > Siebel Business Process Framework: Workflow Guide > Workflow Policies > About Customizing Workflow Policies with Siebel Tools.
 
NOTE: This error may occur for reasons other than those described above. If the above suggestions have been followed, and no other causes can be found using SupportWeb, log a new service request to Siebel Technical Support detailing the circumstances and the steps to re-produce the behavior.



Applies to:

Siebel Tools - Version: 7.8.2.3 SIA [19221] to 8.1.1.1 SIA [21211] - Release: V7 to V8
z*OBSOLETE: Microsoft Windows Server 2003
Product Release: V7 (Enterprise)
Version: 7.8.2.3 [19221] CHS Com/Med
Database: Oracle 9.2.0.7
Application Server OS: Microsoft Windows 2003 Server SP1
Database Server OS: Microsoft Windows 2003 Server SP1

This document was previously published as Siebel SR 38-3195463951.

Symptoms

I have a question of sale order BC query (BC::Order Entry - Orders).New an Order,add product to line items,verify Order,
Create invoice and goto invoice view, Click dilldown for order number in the invoice view,return Order view.
Click "Revise" in the order view,and execute query in the order applet for new version order,result is no records.

Applet server script(Applet::Order Entry - Order Form Applet Dashboard (Sales)):
--this.BusComp().SetViewMode(AllView);
--this.BusComp().ClearToQuery();
--this.BusComp().SetSearchSpec("Id",OrderId);
--this.BusComp().ExecuteQuery();


Cause

The "Drill Down By Id Named Search"added an extra condition in the generated sql which returned no records.

Solution


Customer is experiencing the following error on clicking “Portal” button in “Order Entry - Line Item List Applet (Sales)” after revising an order:

[1] Cannot get value of business component field 'Account Id' at step "Get Account Info'.(SBL-BPR-00120)
[2] Row '' does not exist in business component 'Order Entry - Orders'.(SBL-BPR-00169)

Here are the steps to reproduce in standard configuration:
(1) Log in to Siebel eCommunications
(2) Go to Sales Order > List and create a new order.
(3) Add a product to line item and verify order.
(4) create an invoice in Invoices > Invoices.
(5) Drill down on the Invoice number and add a new line item,
(6) Select the order created in (2) into field 'Order#' of the record.
(7) Dilldown 'Order#' to go to order view.
(8) Click 'Revise'on the "Sales Order" applet.
(9) Click 'Portal' on the "Line Details" applet.

On reviewing the siebel.log file, the following SQL statement is found:
SELECT
      T1.CONFLICT_ID,
...
   FROM
       SIEBEL.S_ORDER T1
          LEFT OUTER JOIN SIEBEL.S_ORG_EXT T2 ON T1.BL_OU_ID = T2.PAR_ROW_ID
...
    WHERE
      ((T1.TEST_ORDER_FLG = 'N') AND
      (T1.ORDER_CAT_CD = ?) AND
      (T1.ROW_ID = ?)) AND
      (T1.ROW_ID = ?)

It is observed that an extra condition on “T1.ROW_ID” field is created and this is due to "Drill Down By Id Named Search" system named search. The row Id is carried forward from the drill down when you drill into "Orders" view via "Order#" at the "Invoices" view.

To remove the named search, write a business service to reset the "Drill Down By Id Named Search" system named search. Here is the code example:
    switch(MethodName)
    {
    case "ResetNamedSearch":
    var BO = TheApplication().ActiveBusObject();
    var BC = BO.GetBusComp("Order Entry - Orders");
    BC.ClearToQuery();
    BC.SetNamedSearch("Drill Down By Id Named Search", "");
    
    return (CancelOperation);
    break;
    
    default:
    return (ContinueOperation);
    break;
    }

Revise "CUT Order Portal Process" workflow process and add this business service before "Get Account Info." Siebel operation step. Thereafter, please deploy it and activate in "Administration - Business Process > Workflow Deployment".

Note: The "Portal" button invokes "EventMethodOrderLinePortalSvc" method which calls "CUT Order Portal Process" workflow process.


Applies to:

Product Release: V7 (Enterprise)
Version: 7.5.3.5 [16183]
Database: Oracle 8.1.7.4
Application Server OS: Microsoft Windows 2000 Advanced Server SP 4
Database Server OS: HP-UX 11.0

This document was previously published as Siebel SR 38-1667803104.

Symptoms

SBL-BPR-00169

I have been trying to set up a process to send an email to mobile users who have not synchronized for a period of time. I followed the steps to FAQ 1510. We are version 7.5.3.5, so I followed the version 7 steps. I completed everything, and when I tried to activate the workflow policy I got an error for the condition that LAST-UPD doesn't exist in the BC Sync Client Status.

I set the process up as a repeating component. The process starts, but it sends an email to ALL the mobile users. Moreover, there are many errors in the log file and the component errors out at the end. Please assist.

Solution

Message 1

For the benefit of other customers:

There were two problems seen after following instructions on FAQ 1510:

1) Component exiting with the following error messages seen:

Siebel Error Symbol '1: Unknown'. Siebel Error Message '1: Cannot get value of business component field 'TYPE' at step 'Decision Point'.(SBL-BPR-00120)'.

PrcExec    BatchErr    1    2005-01-03 10:11:59    Siebel Error Symbol '2: Unknown'. Siebel Error Message '2: Row '1-3V4I-4' does not exist in business component 'Sync Dock Status'.(SBL-BPR-00169)'.

2) Emails being sent to ALL remote users and not just the ones that haven’t synchronized in the recent past.

Resolution:
To resolve the issues, following steps have to be taken in Version 7 in addition to FAQ 1510:

a)    Replace the incorrect expression in FAQ 1510 where it uses [LAST_UPD] and replace it with: [Updated]

b) The join to S_CONTACT for Business Component "Sync Dock Status" should be an outer join. Set the Outer Join Flag = TRUE in the configuration to avoid the above error messages.

c)    A Link between the primary and secondary business component (BC) is needed in the Sync Status business object. This link will make sure that emails are sent appropriate to the eligible candidates only. Add a new link in the configuration as follows and then specify it on the Sync Client Status business object component:

...

Message 2

...


Link Name: Sync Dock Status/Sync Client Status
Parent BC: Sync Dock Status
Child BC: Sync Client Status
Source field: Node Id
Destination field: Id


Siebel Technical Support


1 comment:

  1. This is a fantastic job. This site would have been a bit more user friendly if it has a light background and lettering in dark. the library look looks a bit messy.... else the idea is great... add a lot to ur library

    ReplyDelete