a!sblInvoke() Function

Function

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

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.

Parameters

Keyword Type Description

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 application server host of the SAP server (ASHOST). The value can be an IP address, a fully-qualified domain name, or SAP's router string format. For example, "/H/sap_router/W/password/H/app_host/S/service_port".

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".

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
=a!localVariables(
  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))
      )
  }
)
Open in Github Built: Fri, Sep 17, 2021 (04:05:09 PM)

On This Page

FEEDBACK