Рет қаралды 1,051
I’m sure you are familiar with standard and custom objects in Salesforce, but have you heard of external objects? External objects are like custom objects, but they define objects that live outside of Salesforce. When we create an external object, we define the external connection to where the object’s data is stored. Several adapter types allow us to make these connections.
• Cross-org is where we access data between Salesforce orgs. We use the Lightning Platform REST API to move data from one Salesforce instance to another. [Light blue box]
• OData is a popular REST-based protocol that allows Salesforce to use OData queries to access external data through external objects.
• Apex Custom Adapter uses the Apex Connector Framework to get data from data sources. Custom code, using is used when we trigger specific functions.
• AWS DynamoDB provides adapters for us to natively access data in the AWS cloud. We can also use GraphQL to work with Amazon RDS via AWS AppSync.
• Salesforce Connect Adapter for SQL allows us to access external data sources that are exposed via REST APIs and offer query operations using SQL. We can tap into Snowflake and Amazon Athena using this adapter.
Once our external object has been defined, it works just like any other object inside Salesforce. We can query it via SOQL and the Salesforce API. Its data can also appear in search results.
As a native integration tool, Salesforce Connect has real benefits that make it a great option for real-time data integration.
• Since our data lives outside of Salesforce, we aren’t pulling it in and risking data duplication. Also, we aren’t getting hit with increased storage costs by Salesforce. We can scale to handle large volumes of data from multiple sources.
• We are creating a live and open channel to the external source system so it allows us real-time access to that data. You’re working with the external data source right through the Salesforce interface.
• We have great flexibility in the use of this external data. We can read, write, update, or delete external objects in real-time. You’re working directly with the data in its source location.
• We can open data to multiple Salesforce Orgs to connect our teams and departments.
• We have a unified view of our data. We don’t have to go searching through multiple systems to find what we are looking for. This can translate into a productivity boost for our organization.
While the benefits are many, we should always consider the limitations before committing to a solution.
• Salesforce Connect is not a free feature. It is an add-on that comes at an additional cost of $4000 per connection per month. It’s available with the Enterprise, Performance, and Unlimited editions of Salesforce. I’ve included a link below to reference add-on pricing, which can change over time.
www.salesforce... web/en_us/www/documents/pricing/all-add-ons.pdf
• Salesforce applies OData callout limits of 20,000 times per hour. Salesforce can raise this limit upon request. This limitation doesn’t apply to cross-org adapter callouts though they do count against your API usage limits. The same applies to AWS, Snowflake, and GraphQL adapters.
• There is a maximum new row retrieval or creation of 100,000 per hour. This limitation doesn’t apply to high-data-volume external data sources.
• You have 100 external objects for your org by default, but you can create a support case with Salesforce to boost this to 200.
• There are SOQL and SOSL limitations that apply to external objects.
o The maximum number of joins per query across external objects is 4, and each join forces a separate round trip to the external source. Expect delayed response times with heavily joined queries.
o The following aggregate functions, clauses, and operators aren’t supported.
o There are additional limits that apply to OData and custom adapters. I’ll post a link for reference below.
developer.sale...
Let’s do a quick walkthrough of creating an external data source in Salesforce. First, go to Setup and search for External Data Sources. You’ll find it under the Integrations category. Click the button for New External Data Source to get started. First, we want to define the external data source which will auto-populate the name. Feel free to update this if you need to. Select the type of connector. In our example, we will set up an OData 4.0 connection. Define the URL we are going to reach out to. We can also select options like whether we want external objects to be writable. Lastly, we define the authentication identity type, authentication protocol, and credentials if necessary. Hit save and our new external data source connection is live. Once we are ready to create external objects, we can click validate and sync to select the endpoint tables we want to sync.
This video is brought to you by Improving (improving.com)