Monday, June 21, 2021

#862 OIC Recipe - SFDC Opportunity to Fusion ERP Order

 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.

No comments: