a!sblInvoke() Function

Invokes the method in Siebel, returning the result. This function is intended for reads only. To invoke a method that will result in a write to Siebel, use a!sblInvokeWriter.

Syntax

a!sblInvoke( scsExternalSystemKey, usePerUserCredentials, hostname, port, enterpriseApp, appManager, language, businessService, method parameters)

Common Parameters:

scsExternalSystemKey: (Text) The key from the Third Party Credentials admin console page that corresponds to the set of credentials that should be used to authenticate.

usePerUserCredentials: (Boolean) If true the credentials set in the Third-Party Credentials settings page by the current user running the expression will be used. If false the site-wide credential values will be used.

hostname: (Text) The hostname of the Siebel server. For example, siebel.example.com.

port: (Number (Integer)) The port the Siebel server is listening on. For example, 2321.

enterpriseApp: (Text) The enterprise application of the target system. For example, "SBA_82".

appManager: (Text) The active application manager of the target system. For example, "SSEObjMgr_enu".

language: (Text) The target system language. For example, "enu".

Specific Parameters:

businessService: (Text) The name of the Siebel Business Service on which to invoke the method.

method: (Text) The name of the method to invoke.

parameters: (Any Type) The input parameters for the method, given as a dictionary where the parameter names are the dictionary field names and the parameter values are give as the dictionary field values.

Returns

The function returns the standard connector result dictionary described in the main Connectors page.

If successful, the result field contains a dictionary representation of the result of invoking the Siebel method.

Examples

Get Number of Accounts from Siebel

The main expression uses a supporting rule, so let's create that first.

  • parseSeibelInvokeResponse: Parses the data Siebel returns from the invoked method.

Create expression rule parseSeibelInvokeResponse with the following rule input:

  • response (Text)

Enter the following definition for the rule:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
=load(
  local!keys: {
    "success",
    "error",
    "result"
  },
  local!resultKeys: {
    "Value",
    "Type",
    "Count",
    "First RowId"
  },
  local!str: extract(ri!response,"[","]"),
  local!data: split(keyval(local!str,local!keys,":",","),","),
  local!results: split(keyval(local!data[3],local!resultKeys,{" ="},{"> "}),","),
  {
    success: local!data[1],
    error: local!data[2],
    result: {
      value: local!results[1],
      type: local!results[2],
      count: local!results[3],
      firstRowId: local!results[4]
    }
  }
)

Main Expression:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
=load(
  local!accountInfo: a!sblInvoke(
    scsExternalSystemKey: cons!SBL_SCS_KEY,
    usePerUserCredentials: true,
    hostname: cons!SBL_HOSTNAME,
    port: cons!SBL_PORT,
    enterpriseApp: cons!SBL_APP,
    appManager: cons!SBL_APP_MANAGER,
    language: cons!SBL_LANGUAGE,
    businessService: "CUT eSales Order Entry Toolkit Service",
    method: "GetBCCount",
    parameters: {
      'BC Name': "Account",
      'BusObj Name': "Account"
    }
  ), 
  local!parsedResult: rule!parseSiebelInvokeResponse(local!accountInfo),
  {
      a!textField(
        label: "Count",
        value: local!accountInfo.result.count,
        showWhen: toboolean(local!accountInfo.success)
      ),
      a!textField(
        label:"First Row Id",
        value: local!accountInfo.result.firstRowId,
        instructions: "businessService: CUT eSales Order Entry Toolkit Service, 
                      method: GetBCCount,
                      BC Name: Account, 
                      BusObj Name: Account",
        showWhen: toboolean(local!accountInfo.success)
      ),
      a!textField(
        label: "Error",
        value: local!accountInfo.error,
        showWhen: not(toboolean(local!accountInfo.success))
      )
  }
)
FEEDBACK