Implement a Data Provider
A data provider is a reference to a source of data. It's implemented as a function within an Apex class.
To pull data into a view, bind the view to a data provider. To reference the data throughout a view, use an expression.
You can use these data types for input and output in Apex methods.
Data Type | Description | Examples |
---|---|---|
Primitive | Boolean, Date, DateTime, Decimal, Double, Integer, Long, and String | - Primitive Input and Primitive Output - Primitive Input and List<Primitive> Output |
sObject | A row of data declared using the SOAP API name of the object. Both standard and custom objects are supported. | - Standard Object Input and List Output - Custom Object Output - List<sObject> Output - Map with Contact List Output |
Apex | An instance of an Apex class | Apex Class Output |
Collection | A list, set, or map | - Standard Object Input and List Output -List<sObject> Output - Primitive Input and List<Primitive> Output - Map with Contact List Output |
To bind a data provider to a component, follow this syntax for the definition value.
For example:
The arguments passed to the Apex method are specified as properties to the data provider. The property key must match the name of the parameter in the Apex method signature.
The Select component uses the dataproviders
property to bind a data provider to the view.
To create a data provider for a Select component, construct a List<Slack.Option>
or List<Slack.OptionGroup>
for your view definition.
The External Select component uses the datasource
property to bind a data provider to the view. For the External Select component, your Apex methods must follow certain method signature restrictions.
- Must have a String value as the first parameter in addition to any other parameters already present.
- Must return
Slack.OptionDataResponse
. ConstructSlack.OptionDataResponse
withList<Slack.OptionGroup>
orList<Slack.Option>
. All items in the sameSlack.OptionDataResponse
must be of the same type.
Constructing a Slack.OptionDataResponse
with a combination of Slack.Option
and Slack.OptionGroup
isn’t supported.
The optional value
parameter provides the input string entered into the select component that's used to perform the lookup. The value
you provide preselects an option from the options
identifier or from your data provider.
These examples show you how to create a data provider with Apex data types.
Apex method:
View:
Apex method:
View:
Apex method:
View:
Apex method:
View:
Apex method:
View:
Apex method:
View:
Apex method:
View:
This example is from view_contact.view
in the sample app.
Apex data provider using List<Slack.Option>
and returning Slack.OptionDataResponse
:
Apex data provider using List<Slack.OptionGroup>
and returning Slack.OptionDataResponse
:
View:
This example is from create_opportunity.view
in the sample app.