Had a request to demo the above integration to a customer, this provided me with an excellent opportunity to try out the OIC recipe -
As you can see, I need to configure the SFDC and ERP connections to point to my instances of those apps. So I replace the SFDC connection with mine -
same with Fusion ERP -
There is some documentation available for this recipe - just click here
SFDC Opportunity to Fusion ERP Order
Let's take a look at the integration itself -
Let's take a look at the scope -
The high level flow is as follows -
Opportunity won event in SFDC triggers an invoke of the OIC integration. The Opportunity object contains a custom field to hold the Fusion ERP Order Id. This field is then checked, if already set - do nothing. If not, then -
- Get the relevant SFDC Account
- Get the SFDC Opportunity Line Items
- Get the SFDC Account contacts data
- selling, billing addresses etc.
- Create the Order in Fusion ERP
If there is an error thrown when inserting the order, then re-open the Opportunity.
If insert is successful - update the SFDC Opportunity object custom field with the newly created order id from Fusion ERP.
A couple of pre-reqs here - Firstly, there needs to be a synchronisation between SFDC Account and Fusion ERP Customer/Account. This requires a custom field in the SFDC Account object for the Fusion ERP customer id.
Secondly, there needs to be a synchronisation between SFDC Opportunity and Fusion ERP Order. This leverages a custom field in SFDC Account object for the Fusion ERP Order id.
Thirdly, we also need a synchronisation for Products between SFDC and Fusion ERP.
Net, net, 3 custom fields are required, along with an Outbound Message and Workflow Rule, to invoke OIC with the won opportunity details.
Let's address these -
Add Custom Fields to Opportunity and Account Objects
The custom field name for Opportunity, used in the recipe, is ERPOrderId__c.
I create a field with this name in the SFDC Opportunity object -
Note the checked boxes -
Now to add the custom field - ERPCustomerId__c field to the SFDC Account object.
Now to add the custom field product2.ERPID__c.
I add this to Product -
Ok, the 3 custom fields are available in SFDC. I have made then visible in the UI.
Now let's look at my demo account, product etc.
Firstly in SFDC - My Account -
Note the ERPCustomerId value - 300000221386141
My Product -
Note the ERPID = AS65003
An Opportunity -
Here are the Fusion ERP equivalents -
I used the following SOAP invoke to retrieve the customer id -
The Product/Item I am using -
For those who remember what they read - yes, the product in SFDC is called Gen Watt Diesel 10kW.
I really should create the same product in SFDC will do, I promise.
So we have seen that product and customer are synced, now to invoking OIC from SFDC.
Create Opportunity Outbound Message and Workflow Rule
Here I need an outbound message
which will be sent to OIC, in this case, the newly won Opportunity object. I also need a workflow rule
, which defines when to send the message. I have covered these in detail in the following post
So here, just the basics -
I save the outbound wsdl for use in OIC -
Create the Workflow Rule -
Amending the Recipe
The only requirement is to edit the SFDC trigger and import the wsdl.
That's it - now to a test!
Testing the Recipe
I create a new Opportunity in SFDC -
I add a Product to the Opportunity -
Now over to OIC Monitoring -
I check the Activity Stream -
Back in SFDC - ERPOrderID has been set in the Opportunity.