Getting started Community Training Tutorials Documentation APIs, AI & Tools
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:dynamics="http://www.mulesoft.org/schema/mule/dynamics"
xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/dynamics
http://www.mulesoft.org/schema/mule/dynamics/current/mule-dynamics.xsd">
<configuration-properties file="mule-artifact.properties" />
<http:listener-config
name="HTTP_Listener_config"
doc:name="HTTP Listener config" >
<http:listener-connection
host="0.0.0.0"
port="8081" />
</http:listener-config>
<dynamics:dynamics-config
name="Dynamics_365_config"
doc:name="Dynamics 365 Dynamics 365" >
<dynamics:oauth-user-pass-connection
username="${config-oauth-user-pass.username}"
password="${config-oauth-user-pass.password}"
resource="${config-oauth-user-pass.resource}"
clientId="${config-oauth-user-pass.clientId}"
clientSecret="${config-oauth-user-pass.clientSecret}"
tokenRequestEndpoint="${config-oauth-user-pass.tokenRequestEndpoint}" />
</dynamics:dynamics-config>
<flow name="PARSE_DEMO_TEMPLATE">
<http:listener
config-ref="HTTP_Listener_config"
doc:name="HTTP"
path="/"/>
<parse-template
location="form.html"
doc:name="Parse Template"/>
</flow>
<flow name="CREATE_EMPTY_CONTACT_DEMO">
<http:listener
config-ref="HTTP_Listener_config"
path="/createContact" doc:name="HTTP"/>
<logger message="Requested 'Create Contact Operation'"
level="INFO" doc:name="Logger"/>
<dynamics:create config-ref="Dynamics_365_config"
logicalName="contact" doc:name="Microsoft Dynamics 365">
<dynamics:attributes ><![CDATA[#[{}]]]></dynamics:attributes>
</dynamics:create>
<logger message="#['Received Response from "Create Contact Operation":' ++ payload]" level="INFO" doc:name="Logger"/>
</flow>
<flow name="CREATE_EMPTY_OPPORTUNITY_DEMO">
<http:listener config-ref="HTTP_Listener_config"
path="/createOpportunity" doc:name="HTTP"/>
<logger message="Requested 'Create Opportunity Operation'"
level="INFO" doc:name="Logger"/>
<dynamics:create config-ref="Dynamics_365_config"
logicalName="opportunity" doc:name="Microsoft Dynamics 365">
<dynamics:attributes ><![CDATA[#[{}]]]></dynamics:attributes>
</dynamics:create>
<logger message="#['Received Response from "Create Opportunity Operation": ' ++ payload]" level="INFO" doc:name="Logger"/>
</flow>
<flow name="CREATE_ACCOUNT_DEMO">
<http:listener config-ref="HTTP_Listener_config"
path="/createAccount" doc:name="HTTP"/>
<logger message="Requested 'Create Account Operation'"
level="INFO" doc:name="Logger"/>
<ee:transform doc:name="Transform Message">
<ee:message>
<ee:set-payload>
<![CDATA[%dw 2.0
output application/java
---
{
name: payload.AccountName,
creditonhold: payload.CreditOnHold,
creditlimit: payload.CreditLimit,
"primarycontactid@odata.bind": "/contacts(" ++ payload.ContactID ++ ")"
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<dynamics:create config-ref="Dynamics_365_config"
logicalName="account" doc:name="Microsoft Dynamics 365">
<dynamics:attributes>#[payload]</dynamics:attributes>
</dynamics:create>
<logger message="#['Received Response from "Create Account Operation" : ' ++ payload]" level="INFO" doc:name="Logger"/>
</flow>
<flow name="CREATE_MULTIPLE_ENTITIES_DEMO">
<http:listener config-ref="HTTP_Listener_config"
path="/createMultipleAccounts" doc:name="HTTP"/>
<logger message="Requested 'Create Multiple Accounts Operation'"
level="INFO" doc:name="Logger"/>
<ee:transform doc:name="Transform Message">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
input payload application/json
output application/java
---
payload map {
name: $.AccountName,
creditlimit : $.CreditLimit,
creditonhold : $.CreditOnHold
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<dynamics:create-multiple config-ref="Dynamics_365_config"
logicalName="account" doc:name="Microsoft Dynamics 365">
<dynamics:entities-attributes>#[payload]</dynamics:entities-attributes>
</dynamics:create-multiple>
<logger message="Received Response from 'Create Multiple Entities Operation'"
level="INFO" doc:name="Logger"/>
<ee:transform doc:name="Response to JSON" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
</flow>
<flow name="UPDATE_ENTITY_DEMO">
<http:listener config-ref="HTTP_Listener_config"
path="/updateAccount" doc:name="HTTP"/>
<logger message="Requested 'Update Entity Operation'"
level="INFO" doc:name="Logger"/>
<ee:transform doc:name="Transform Message">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/java
---
{
entityId: payload.EntityId,
attributes: {
creditlimit: payload.CreditLimit,
name: payload.AccountName
}
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<dynamics:update config-ref="Dynamics_365_config"
logicalName="account" doc:name="Microsoft Dynamics 365">
<dynamics:attributes>#[payload]</dynamics:attributes>
</dynamics:update>
<logger message="'Update Entity Operation' has ended with success"
level="INFO" doc:name="Logger"/>
<ee:transform doc:name="Response to JSON" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
</flow>
<flow name="UPDATE_MULTIPLE_ENTITIES_DEMO">
<http:listener config-ref="HTTP_Listener_config"
path="/updateMultipleAccounts" doc:name="HTTP"/>
<logger message="Requested 'Update Multiple Entities Operation'"
level="INFO" doc:name="Logger"/>
<ee:transform doc:name="Transform Message">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
input payload application/json
output application/java
---
payload map {
entityId: $.EntityId,
attributes: {
name: $.AccountName
}
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<dynamics:update-multiple config-ref="Dynamics_365_config"
logicalName="account" doc:name="Microsoft Dynamics 365">
<dynamics:entities-attributes>#[payload]</dynamics:entities-attributes>
</dynamics:update-multiple>
<logger message="Received Response from 'Update Multiple Entities Operation'"
level="INFO" doc:name="Logger"/>
<ee:transform doc:name="Response to JSON" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
</flow>
<flow name="DELETE_ENTITY_DEMO">
<http:listener config-ref="HTTP_Listener_config"
path="/deleteAccount" doc:name="HTTP"/>
<logger message="Requested 'Delete Entity Operation'"
level="INFO" doc:name="Logger"/>
<dynamics:delete config-ref="Dynamics_365_config"
logicalName="account" doc:name="Microsoft Dynamics 365">
<dynamics:id>#[payload.EntityId]</dynamics:id>
</dynamics:delete>
<logger message="'Delete Entity Operation' has ended with success"
level="INFO" doc:name="Logger"/>
</flow>
<flow name="RETRIEVE_ENTITY_DEMO">
<http:listener config-ref="HTTP_Listener_config"
path="/retrieveAccount" doc:name="HTTP"/>
<logger message="Requested 'Retrieve Entity Operation'"
level="INFO" doc:name="Logger"/>
<dynamics:retrieve config-ref="Dynamics_365_config"
logicalName="account" doc:name="Microsoft Dynamics 365">
<dynamics:id>#[payload.EntityId]</dynamics:id>
</dynamics:retrieve>
<logger message="Received Response from 'Retrieve Entity Operation'"
level="INFO" doc:name="Logger"/>
<ee:transform doc:name="Response to JSON" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
</flow>
<flow name="RETRIEVE_ENTITIES_BY_URL_DEMO">
<http:listener config-ref="HTTP_Listener_config"
path="/retrieveAccountsByURL" doc:name="HTTP"/>
<logger message="Requested 'Retrieve Multiple Operation'"
level="INFO" doc:name="Logger"/>
<dynamics:retrieve-multiple config-ref="Dynamics_365_config"
doc:name="Microsoft Dynamics 365">
<dynamics:data-query-url>${config-oauth-user-pass.resource}/api/data/v8.2/accounts?$select=name,accountnumber&$top=3</dynamics:data-query-url>
</dynamics:retrieve-multiple>
<logger message="Received Response from 'Retrieve Multiple Operation'"
level="INFO" doc:name="Logger"/>
<ee:transform doc:name="Response to JSON" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
</flow>
<flow name="RETRIEVE_ENTITIES_BY_QUERY_DEMO">
<http:listener config-ref="HTTP_Listener_config"
path="/retrieveAccountsByQuery" doc:name="HTTP"/>
<logger message="Requested 'Retrieve Multiple By Query Operation'"
level="INFO" doc:name="Logger"/>
<dynamics:retrieve-multiple-by-query
config-ref="Dynamics_365_config" doc:name="Microsoft Dynamics 365">
<dynamics:query>dsql:SELECT accountid,accountnumber,name FROM accounts LIMIT 2</dynamics:query>
</dynamics:retrieve-multiple-by-query>
<logger message="Received Response from 'Retrieve Multiple By Query Operation'"
level="INFO" doc:name="Logger"/>
<ee:transform doc:name="Response to JSON">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
</flow>
<flow name="DISASSOCIATE_ENTITIES_DEMO">
<http:listener config-ref="HTTP_Listener_config"
path="/disassociateEntities" doc:name="HTTP"/>
<logger level="INFO" doc:name="Logger"
message="Requested 'Disassociate Entities Operation'"/>
<ee:transform doc:name="Transform Message">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/java
---
{
entityId: payload.EntityId,
attributes: payload.EntityLinkKeys
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<dynamics:disassociate config-ref="Dynamics_365_config"
logicalName="account" doc:name="Microsoft Dynamics 365">
<dynamics:attributes>#[payload]</dynamics:attributes>
</dynamics:disassociate>
<logger level="INFO" doc:name="Logger"
message="Finished 'Disassociate Entities Operation' with success"/>
</flow>
<flow name="DO_ACTION_DEMO">
<http:listener config-ref="HTTP_Listener_config"
path="/doAction" doc:name="HTTP"/>
<logger message="Requested 'Do Action Operation'"
level="INFO" doc:name="Logger"/>
<ee:transform doc:name="Transform Message">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/java
---
{
OpportunityClose: {
subject: payload.Subject,
"opportunityid@odata.bind": "/opportunities(" ++ payload.OpportunityId ++ ")"
},
Status: payload.Status
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<dynamics:do-action config-ref="Dynamics_365_config"
actionName="WinOpportunity" doc:name="Microsoft Dynamics 365"/>
<logger message="Finished 'Do Action Operation'"
level="INFO" doc:name="Logger"/>
</flow>
</mule>



