a!sfcDescribeGlobal() Function

Provides introspection into the objects available in the target Salesforce instance. This function is most useful during development when determining the types of objects available.

Syntax

a!sfcDescribeGlobal( scsExternalSystemKey, usePerUserCredentials, endpoint)

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.

endpoint: (Text) The Salesforce endpoint URL to use for authentication. Possible values are "https://login.salesforce.com/services/Soap/u/27.0", which is used for production and development environments, and "https://test.salesforce.com/services/Soap/u/27.0", which is used for the Salesforce "sandbox" test environment. Update the 27.0 portion of the endpoint URL to match the version of the API that you are accessing. As a best practice, create a constant for this value.

Returns

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

If successful, the function returns a dictionary representation of the Salesforce DescribeGlobalResult within the result field. Refer to Salesforce documentation for details regarding the contents of DescribeGlobalResult.

Notes

If called multiple times in the same expression with the same parameters, only one query is made to Salesforce when the expression is evaluated and the result is reused for each identical call. This caching only applies within a single expression evaluation. Return values are not cached in separate expressions, or in separate evaluations of the same expression.

Examples

Display a Grid of All Salesforce Objects

Copy and paste the expression into the INTERFACE DEFINITION in EXPRESSION MODE, save it, then call the interface in a Tempo Report to test.

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
40
41
42
43
44
45
46
47
48
49
=load(
  local!pagingInfo: a!pagingInfo(startIndex: 1, batchSize: 50), 
  local!describeGlobalResult: a!sfcDescribeGlobal(
    scsExternalSystemKey: cons!SALESFORCE_SCS_KEY,
    usePerUserCredentials: true,
    endpoint: cons!SALESFORCE_ENDPOINT
  ),
  with(
    local!sObjectDataSubset: if(
      local!describeGlobalResult.success, 
      toDataSubset(local!describeGlobalResult.result.salesforceObjects, local!pagingInfo),
      null
    ),
    {
        a!textField(
          label: "An error occurred",
          readOnly:true,
          value: local!describeGlobalResult.error.message,
          showWhen: isnull(local!sObjectDataSubset)
        ),
        a!gridField(
          totalCount: local!sObjectDataSubset.totalCount,
          label:"Salesforce Objects",
          columns:{
            a!gridTextColumn(
              label: "Name",
              field: "Name",
              data: local!sObjectDataSubset.data.Name
            ),
            a!gridTextColumn(
              label: "Label",
              field: "Label",
              data: local!sObjectDataSubset.data.Label
            ),
            a!gridTextColumn(
              label: "Retrievable",
              field: "Retrievable",
              alignment: "CENTER",
              data: local!sObjectDataSubset.data.Retrieveable
            )
          },
          value: local!pagingInfo,
          saveInto: local!pagingInfo,
          rowHeader: 1,
          showWhen: not(isnull(local!sObjectDataSubset))
        )
    }
  )
)
FEEDBACK