SalesLogix ERP Link- How the sales order push to MAS determines which warehouse to use

If you have worked with ERP Link you have probably gotten use to seeing validation errors when attempting to push a sales order to MAS from SalesLogix. Something like this:

SalesLogix ERP Link Sales Order validation errors

But how do you know what the problem is?  What is ERP Link using to populate the warehouse value, causing it to fail?

ERP Link can be very confusing as to what value gets used, if it comes from data in SalesLogix, from one or more templates, or from MAS itself.  This is especially true of the Sales Order push and how the warehouse value is determined by ERP Link.  The following will hopefully help you understand how the warehouse values are set and what may cause a problem.

First of all you need to understand MAS has a warehouse value defined at both the header and line level of the sales orders.  ERP Link uses different logic at each level to determine what warehouse is used.  Here is the logic flow:

Header level

  • ERP Link first populates the warehouse with the value in the customer template.
  • It then checks to see if the address template has a warehouse value, if it does, it uses that value instead.
  • Finally, if neither the customer nor address template have a warehouse defined,  it uses the Warehouse of the default shipping address in MAS for the customer, using this query:

select timWarehouse.WhseID
from
timWarehouse INNER JOIN
tarCustAddr ON timWarehouse.WhseKey = tarCustAddr.WhseKey RIGHT OUTER JOIN
tarCustomer ON tarCustAddr.AddrKey = tarCustomer.DfltShipToAddrKey
where
tarCustomer.CustID = {Current customer}
And tarCustomer.CompanyID = {Current Company}

Line item level

  • If the address template warehouse is defined ERP Link uses this.
  • If the address does not have a warehouse defined ERP Link uses the customer template warehouse.
  • If neither template has a warehouse defined it uses the default warehouse defined at the product level, using this query:

select WhseID
from
timItem INNER JOIN
timWarehouse ON timItem.DfltWhseKey = timWarehouse.WhseKey
where
timItem.ItemID = {Line Item}
And timItem.CompanyID = {Company}

  • If it is still empty it will then pass an empty value.
ABOUT THE AUTHOR

Kris Halsrud

Kris Halsrud is a Senior Analyst / Developer for Customer FX Corporation.

Submit a Comment

Your email address will not be published. Required fields are marked *

Subscribe To Our Newsletter

Join our mailing list to receive the latest Infor CRM (Saleslogix) and Creatio (bpm'online) news and product updates!

You have Successfully Subscribed!