2.12Put the entire flow together
Conceptually:
<flow name="customer-api-flow">
<http:listener
config-ref="HTTP_Listener_config"
path="/customers"
allowedMethods="POST"/>
<set-variable
variableName="originalCustomer"
value="#[payload]"/>
<ee:transform doc:name="Map Customer to Salesforce Account">
<ee:message>
<ee:set-payload><![CDATA[
%dw 2.0
output application/java
---
[
{
External_Customer_ID__c: payload.customerId,
Name: payload.companyName,
Phone: payload.phone,
BillingCity: payload.billing.city,
BillingState: payload.billing.state
}
]
]]></ee:set-payload>
</ee:message>
</ee:transform>
<salesforce:upsert
config-ref="Salesforce_Config"
type="Account"
externalIdFieldName="External_Customer_ID__c"/>
<ee:transform doc:name="Build API Response">
<ee:message>
<ee:set-payload><![CDATA[
%dw 2.0
output application/json
---
{
customerId: vars.originalCustomer.customerId,
salesforceId: payload[0].id,
success: payload[0].success
}
]]></ee:set-payload>
</ee:message>
</ee:transform>
</flow>
Again:
Don't memorize the XML.
Memorize:
Listener
↓
preserve
↓
transform
↓
connector
↓
transform