Dynamics 365 for Sales Upsert
In this article
Overview
You can use this Snap to update an existing record or insert a new record in MS Dynamics 365 for Sales based on the input document field values that match the Microsoft Dynamics 365 for Sales object schema field names.
Snap Type
Dynamics 365 for Sales Upsert Snap is a Write-type Snap that upserts records in Microsoft Dynamics 365.
Prerequisites
You must have a Dynamics 365 OAuth2 for an Online account, data to query, and access to the objects concerned.
Support for Ultra Pipelines
Works in Ultra Pipelines. However, we recommend that you not use this Snap in an Ultra Pipeline. To know the list of Snaps that work in Ultra and the related caveats, refer to Snap Support for Ultra Pipelines.
Limitations and Known Issues
When deleting more than one object in batches, the Batch Size range is from 1 to 1000. This is a limitation of Microsoft Dynamics 365 for Sales.
Microsoft Dynamics 365 for Sales limits the number of API calls to 60,000 per minute per user org. This should be considered when configuring the size of any batch process.
The Object Type suggestions are limited to the object types available within MS Dynamics 365 for Sales v8.2 and v9.0. There is no current ability to suggest custom object types.
This Snap cannot create relationships using collection-valued navigation properties, such as contact_customer_accounts, due to current WebAPI limitations; however, it works correctly with single-valued navigation properties, such as primarycontactid.
The following limitations are due to the API limitations from the Microsoft Dynamics 365 for Sales application:
The Snap fails with an error when the number of requests exceeds 6000 within 300 seconds. We recommend that you limit the number of requests you make within 300 seconds (5 minutes). You can gradually increase the requests that reduce the retry-after duration, optimize your throughput, and minimize resource spikes on the server.
The Snap fails with an error when the combined execution time of incoming requests exceeds the limit of 1,200,000 milliseconds within the window of 300 seconds. We recommend that you reduce the number of concurrent requests or reduce the duration of requests and try later.
The Snap fails with an error when the number of concurrent requests exceeds the limit of 52. We recommend that you reduce the number of concurrent requests.
Snap Views
Type | View | Number of Views | Examples of Upstream and Downstream Snaps | Description |
---|---|---|---|---|
Input | Document | Min: 1 | Mapper Snap | Fields of the MS Dynamics 365 for Sales object to be updated or created. It is optional to provide either the ID of the object or to use a query. If an ID or query is provided, then the corresponding record is updated; else new record(s) are created. The typical configuration is to have an upstream Snap that contains the mandatory fields for updating the existing MS Dynamics 365 for Sales object. Mapper Snap is a preferred upstream Snap as it populates the input schema for the selected MS Dynamics 365 for Sales object type. |
Output | Document | Min: 1 | None. | A document with the result set. If the update is successful, then the output document contains the GUID of the updated or inserted MS Dynamics 365 for Sales object. |
Error | Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter while running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab. The available options are:
Learn more about Error handling in Pipelines. |
Snap Settings
Asterisk (*): Indicates a mandatory field.
Suggestion icon (): Indicates a list that is dynamically populated based on the configuration.
Expression icon (): Indicates whether the value is an expression (if enabled) or a static value (if disabled). Learn more about Using Expressions in SnapLogic.
Add icon (): Indicates that you can add fields in the field set.
Remove icon (): Indicates that you can remove fields from the field set.
Field Name | Field Type | Description | |
---|---|---|---|
Label*
Default Value: Dynamics 365 for Sales Upsert | String | Specify the name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your Pipeline. | |
Object Type*
Default Value: account | String/Expression | Specify the Microsoft Dynamics 365 for Sales object type.
| |
ID*
Default Value: N/A | String/Expression | Specify the GUID of the Microsoft Dynamics 365 for Sales object. You can either enter the ID in this field, or you can select it from the drop-down list displayed when you click the Suggest icon. | |
Alternate Key | Use this fieldset to configure columns to use as the alternate key for entities. | ||
Key Columns
Default Value: N/A | String/Expression | Specify a name for the column to use in an alternate key.
Learn more about Configuring Alternate Keys in MS Dynamics 365 For Sales (Power Apps) . | |
Related Object Type
Default Value: N/A | String/Expression | Specify the Microsoft Dynamics 365 Sales object type of the object to which it must be related.
| |
Related Object Relationship
Default Value: N/A | String/Expression | Specify the Relationship Schema between the Microsoft Dynamics 365 Sales object to be created with the related object. This Snap cannot create relationships using collection-valued navigation properties, such as contact_customer_accounts, due to current WebAPI limitations; however, it works correctly with single-valued navigation properties, such as primarycontactid. | |
Related Object ID
Default Value: N/A | String/Expression | Specify the GUID of the related Microsoft Dynamics 365 Sales object.
| |
Update Multiple Objects
Default Value: Deselected | Checkbox | Select this to update multiple records per object type if the query returns more than one CRM record. | |
Upsert Query Fields | Use this field set to include the query fields. | ||
Upsert Query Field
Default Value: None | String | Specify the query fields to use to upsert the corresponding CRM records.
| |
Batch Size
Default Value: 200 | Integer/Expression | Specify the number of records processed in each request. Batch size range is from 1 to 1000. | |
Number of Retries
Default Value: 0 | Integer | Specify the maximum number of attempts to be made to receive a response. The request is terminated if the attempts do not result in a response. | |
Retry Interval (seconds)
Default Value: 1 | Integer | Specify the time interval between two successive retry requests. A retry happens only when the previous attempt resulted in an exception. | |
HTTP Header | Use this field set to add additional HTTP headers to pass when sending requests to the Dynamics 365 for Sales instance. | ||
Key
Default Value: N/A | String/Expression | Specify an HTTP header key. | |
Value
Default Value: N/A | String/Expression | Specify an HTTP header value. | |
Enable continue on error
Default Value: Deselected | Checkbox | Select this checkbox to enable the service to continue processing the remaining requests in a batch when an error occurs. The code continues to execute until all requests are processed. It then returns the response to the output view. When this checkbox is deselected, the batch process errors out immediately on the first failed request. It then returns a response in the error view that includes the error message. | |
Snap Execution
Default Value: Validate & Execute | Dropdown list |
Troubleshooting
For troubleshooting purposes, try performing a similar operation directly on the Microsoft Dynamics 365 for Sales console and collect the necessary data. Compare the data used in the user interface with the SnapLogic pipelines to see if there are any inconsistencies.
Error code | Reason | Resolution |
---|---|---|
| The number of requests exceeded the limit of 6000 within 300 seconds. | Limit the number of requests to 6000 you make within the window of 300 seconds (5 minutes). |
| The execution time of all the incoming requests exceeded the limit of 1,200,000 milliseconds within the window of 300 seconds. | Reduce the number of concurrent requests or reduce the duration of requests (20 minutes (1200 seconds) within the window of 5 minutes) and try later. |
| The number of concurrent requests exceeded the limit of 52. | Limit the number of concurrent requests. |
| There are too many requests sent to Dynamics 365 For Sales endpoint. | The Microsoft Dynamics 365 For Sales related Snaps, include |
Examples
Updating customer details using Dynamics 365 for Sales Upsert Snap
Following is a detailed example that uses Upsert Query. The following Pipeline uses Snaps like Dynamics 365 for Sales Create, Dynamics 365 for Sales Read and Dynamics 365 for Sales Delete Snaps to create customer details from the sales report, read them, upsert them whenever required, and delete them if required.
First, in this Pipeline, using the Mapper Snap, the details of the customer like Account ID, Batch size, and Page number are given as inputs.
Settings | Output |
---|---|
Create these details from the Mapper Snap with the help of Dynamics 365 for Sales Create Snap.
Settings | Output |
---|---|
Next, another Mapper Snap to add more details to the list of customer details:
Settings | Output |
---|---|
Update these details using Dynamics 365 for Sales for Upsert Snap.
Settings | Output |
---|---|
These results are copied and routed into two outputs. One output is to get these details and save them for further use, and another output is used to delete the details using Dynamics 365 for Sales Delete Snap.
Settings | Output |
---|---|
Updating the Attributes of an Object
Basic use case, using the Dynamics 365 for Sales Upsert Snap with a Mapper
Downloads
Related Links
Have feedback? Email documentation@snaplogic.com | Ask a question in the SnapLogic Community
© 2017-2024 SnapLogic, Inc.