Knowledge Base - Cloud Connect

Custom Revise Process

CloudConnect Microsoft Dynamics 365 CE supports the standard Microsoft Dynamics 365 CE revise process. If the standard process does not suffice, some Microsoft Dynamics 365 CE clients use a custom revise process. Experlogix supports this, but it does require custom development from the partner/client.

Assumptions / limitations

For correct copying configuration work:

  • You must first save the destination record. Therefore, custom API must be called twice with different values for the processStates parameter:

    • The first call should be made synchronously with processStates=false

    • The second call should be made asynchronously with processStates=true

CE-TraceLogs.png
  • If a root record has child records that are used in the configuration, those child records must also be saved in Dataverse (the transaction should be committed to the database) before the configuration copy operation is executed.

Responsibilities

Experlogix

  • Experlogix is responsible for calling the integration API from Microsoft Dynamics 365 CE.

  • Experlogix is responsible for copying a configuration and creating a process state.

  • Experlogix is responsible for informing the calling application whether the copy was successful or not.

Partner/client

  • Partner/client is responsible for copying the root-record and related records to the revised quote. Ensure that all records are copied and saved in Dataverse before starting the next step. (call xpl_CopyConfiguration)

  • Partner/client is responsible for the calls to the xpl_CopyConfiguration endpoint.

  • Partner is responsible for error handling based on the response from the copy configuration endpoint.

Authentication and Authorization

Please read this documentation from Microsoft for information on the requirements for Bearer token-based Authentication and Authorization.

Request URL

{instance_url}/api/data/{web_api_version}/xpl_CopyConfiguration

HTTP method: POST

Content-type: application/json

Example: https://myinstance.crm4.dynamics.com/api/data/v9.2/xpl_CopyConfiguration

Request Parameters

The request data fields form the body of the request. All request parameters are required.

Unique Name

Type

Description

sourceEntity

String

Contains name of the source entity.

sourceRecordId

String

Contains id of the source record.

destinationEntity

String

Contains name of the destination entity.

destinationRecordId

String

Contains id of the destination record.

replace

Boolean

If true, overwrites existing configuration.

processStates

Boolean

If true, indicates that process status be derived.

HTTP Status Codes

HTTP Status

Description

200 OK

Indicates that the request has succeeded.

400 Bad Request

The request could not be understood by the server due to incorrect syntax.

401 Unauthorized

Indicates that the request requires user authentication information.

403 Forbidden

Unauthorized request. The client does not have access rights to the content.

404 Not Found

The server can not find the requested resource.

500 Internal Server Error

The server encountered an unexpected condition that prevented it from fulfilling the request.

Response Data

Unique Name

Type

Description

response

string

Contains response information.

Potential Response Messages

HTTP Status

Response/Error Message

200 OK

"response": "{ "code": "204", "message": "Copy was successful" }"

304 Not Modified

"response": "{ "code": "304", "message": "Copy not executed. Source configuration does not exists or the destination may not be overwritten" }"

400 Bad Request

"message" : "{"SourceEntity":["The SourceEntity field is required."],"SourceRecordId":["The SourceRecordId field is required."],"DestinationEntity":["The DestinationEntity field is required."],"DestinationRecordId":["The DestinationRecordId field is required."]}"

404 Not Found

"message": "Configuration settings or ConnectionId not found"

Power Automate

An unbound action can be used for testing the Copy Configuration functionality. Please see Microsoft's documentation on unbound actions. The unbound action is called xpl_CopyConfiguration.

Automate_PerformUnboundAction.png