Source ERP · 9 of 27

CRMPro → Zoho CRM — Microsoft Dynamics AX: what the shipped templates set up

Read it in the terminal with "dlake skills show dlake-crmpro-zohocrm/erps/microsoft-dynamics-ax". It extends the dlake-crmpro-zohocrm skill, which holds what is true whatever the source ERP.

CRMPro → Zoho CRM — Microsoft Dynamics AX: what the shipped templates set up

Keep this skill current. dlake ships updates often and this text is embedded in the CLI you have installed. Before relying on it, compare dlake --version with npm view @commercient/dlake version; if they differ, run npm install -g @commercient/dlake@latest and then dlake skills install, which overwrites the installed skill files with the current text.

dlake-crmpro is the parent skill and the authority for everything general: the crmpro_* tools, CRM_Configuration and CRM_FieldList, TimeStampRepository, the three kinds of source view, the NULL-cursor rule and the silent zero-record run. Read it first; this page does not repeat it. dlake-crmpro-zohocrm is the destination skill this page is a child of, and the authority for the Zoho CRM conventions that hold across every ERP: read it first, then come back here for what this source’s own templates set. This page is dlake-crmpro-zohocrm/erps/microsoft-dynamics-ax.md, and that skill’s ERP table is what points at it. What follows is only what the shipped Microsoft Dynamics AX → Zoho CRM templates themselves set, read from their Insert_Query, CreateViewQuery and MappingJson. This page grows as the catalogue does.

1. What the templates deliver

GroupBusiness outcomeObjectsSource tables and views
MSDYNAMICSAX PaymentTermsThe templates push commercientdynamicsax__MSDYAX_Payment_Terms to Zoho CRM.commercientdynamicsax__MSDYAX_Payment_TermsSF_ERP_Salesforce_Clone_PAYMTERM
AccountsThe templates push Accounts to Zoho CRM.AccountsSF_ERP_Salesforce_Clone_CUSTTABLE, SF_ERP_Salesforce_Clone_MCRCustTable, SF_ERP_Salesforce_Clone_DirPartyTable, vw_MSDYNAMICAX_ShippingAddress, SF_ERP_Salesforce_Clone_MRM_MetasAsesores_V2, SF_ERP_Salesforce_Clone_CUSTAGING
MSDYNAMICAX CustomerThe templates push commercientdynamicsax__MSDYAX_Customer to Zoho CRM.commercientdynamicsax__MSDYAX_CustomerSF_ERP_Salesforce_Clone_CUSTTABLE, SF_ERP_Salesforce_Clone_DirPartyTable
ProductsThe templates push Products to Zoho CRM.ProductsSF_ERP_Salesforce_Clone_INVENTTABLE, SF_ERP_Salesforce_Clone_GRWStatusOrdenado, SF_ERP_Salesforce_Clone_EcoResProductTranslation, SF_ERP_Salesforce_Clone_EcoResTrackingDimensionGroupItem, SF_ERP_Salesforce_Clone_ECORESTRACKINGDIMENSIONGROUP, SF_ERP_Salesforce_Clone_INVENTTABLEMODULE
MSDYNAMICAX ItemThe templates push commercientdynamicsax__MSDYAX_Inventory to Zoho CRM.commercientdynamicsax__MSDYAX_InventorySF_ERP_Salesforce_Clone_INVENTTABLE, SF_ERP_Salesforce_Clone_GRWStatusOrdenado
MSDYNAMICAX Shipping AddressThe templates push commercientdynamicsax__MSDYAX_ShippingAddress to Zoho CRM.commercientdynamicsax__MSDYAX_ShippingAddressSF_ERP_Salesforce_Clone_CUSTTABLE, SF_ERP_Salesforce_Clone_DirPartyTable, SF_ERP_Salesforce_Clone_DIRPARTYLOCATION, SF_ERP_Salesforce_Clone_LOGISTICSPOSTALADDRESS, SF_ERP_Salesforce_Clone_LOGISTICSADDRESSCOUNTRYREGION, SF_ERP_Salesforce_Clone_LOGISTICSADDRESSSTATE
ContactsThe templates push Contacts to Zoho CRM.ContactsSF_ERP_Salesforce_Clone_CONTACTPERSON, SF_ERP_Salesforce_Clone_CUSTTABLE, SF_ERP_Salesforce_Clone_DirPartyTable, SF_ERP_Salesforce_Clone_DirPersonName, SF_ERP_Salesforce_Clone_DIRPARTYLOCATION, SF_ERP_Salesforce_Clone_LOGISTICSPOSTALADDRESS
MSDYNAMICAX WarehouseThe templates push commercientdynamicsax__MSDYAX_Warehouse to Zoho CRM.commercientdynamicsax__MSDYAX_WarehouseSF_ERP_Salesforce_Clone_INVENTLOCATION
MSDYNAMICAX Sales Quotation HeaderThe templates push commercientdynamicsax__MSDYAX_SalesQuotationHead to Zoho CRM.commercientdynamicsax__MSDYAX_SalesQuotationHeadSF_ERP_Salesforce_Clone_SalesQuotationTable, CommercientFlags
MSDYNAMICAX Sales Quotation LineThe templates push commercientdynamicsax__MSDYAX_SalesQuotation to Zoho CRM.commercientdynamicsax__MSDYAX_SalesQuotationSF_ERP_Salesforce_Clone_SalesQuotationLine
MSDYNAMICAX Sales Order HeaderThe templates push commercientdynamicsax__MSDYAX_SalesOrderHeader to Zoho CRM.commercientdynamicsax__MSDYAX_SalesOrderHeaderSF_ERP_Salesforce_Clone_SALESTABLE, CommercientFlags
MSDYNAMICAX Sales Order DetailThe templates push commercientdynamicsax__MSDYAX_SalesOrderDetail to Zoho CRM.commercientdynamicsax__MSDYAX_SalesOrderDetailSF_ERP_Salesforce_Clone_SALESLINE
MSDYNAMICAX Invoice HeaderThe templates push commercientdynamicsax__MSDYAX_InvoiceHeader to Zoho CRM.commercientdynamicsax__MSDYAX_InvoiceHeaderSF_ERP_Salesforce_Clone_CUSTINVOICEJOUR, CommercientFlags
MSDYNAMICAX Invoice DetailThe templates push commercientdynamicsax__MSDYAX_InvoiceDetail to Zoho CRM.commercientdynamicsax__MSDYAX_InvoiceDetailSF_ERP_Salesforce_Clone_CUSTINVOICETRANS
MSDYAX Cust Pur HistoryThe templates push MSDYAX_Cust_Pur_History to Zoho CRM.MSDYAX_Cust_Pur_HistorySF_ERP_Salesforce_Clone_MRM_CustTablePurchaseHist, SF_ERP_Salesforce_Clone_CUSTTABLE
Product PricebooksThe templates push Products:Price_Books to Zoho CRM.Products:Price_BooksSF_ERP_Salesforce_Clone_INVENTTABLE, SF_ERP_Salesforce_Clone_GRWStatusOrdenado, SF_ERP_Salesforce_Clone_PRICEDISCTABLE
MSDYAX Dispatch ShippingThe templates push MSDYAX_Dispatch_Shipping to Zoho CRM.MSDYAX_Dispatch_ShippingSF_ERP_Salesforce_Clone_CUSTPACKINGSLIPTRANS, SF_ERP_Salesforce_Clone_GRWAOSIATIVEGUIDESLINES, SF_ERP_Salesforce_Clone_GRWGUIES, SF_ERP_Salesforce_Clone_SALESTABLE, SF_ERP_Salesforce_Clone_LOGISTICSPOSTALADDRESS, SF_ERP_Salesforce_Clone_LOGISTICSADDRESSSTATE
MSDYAX ContactPersonThe templates push commercientdynamicsax__MSDYAX_Salesperson to Zoho CRM.commercientdynamicsax__MSDYAX_SalespersonSF_ERP_Salesforce_Clone_CONTACTPERSON, SF_ERP_Salesforce_Clone_CUSTTABLE, SF_ERP_Salesforce_Clone_DirPartyTable, SF_ERP_Salesforce_Clone_DIRPARTYLOCATION, SF_ERP_Salesforce_Clone_LOGISTICSPOSTALADDRESS, SF_ERP_Salesforce_Clone_LOGISTICSADDRESSCOUNTRYREGION

2. The process rows the templates create

Each template’s Insert_Query writes one CRM_Configuration row. These are the values it sets; a column the inserts never set is not listed.

Display nameCRM_Object_API_NameCRM_PK_API_NameSync_OrderTimeStamp_PrefixSQL_Query targetfield prefix / postfix
MSDYNAMICSAX PaymentTermscommercientdynamicsax__MSDYAX_Payment_TermsCommercient_ExternalKey1vw_MSDYNAMICAX_PaymentTerms:vw_MSDYNAMICAX_PaymentTermscommercientdynamicsax__ / __c
AccountsAccountsCommercient_ArCustomer_Code2vw_MSDYNAMICAX_Account:vw_MSDYNAMICAX_Account'' / ''
MSDYNAMICAX Customercommercientdynamicsax__MSDYAX_CustomerCommercient_ExternalKey3vw_MSDYNAMICAX_Customer:vw_MSDYNAMICAX_Customercommercientdynamicsax__ / __c
ProductsProductsCommercient_ExternalKey4vw_MSDYNAMICAX_Product:vw_MSDYNAMICAX_Product'' / ''
MSDYNAMICAX Itemcommercientdynamicsax__MSDYAX_InventoryCommercient_ExternalKey5vw_MSDYNAMICAX_Item:vw_MSDYNAMICAX_Itemcommercientdynamicsax__ / __c
MSDYNAMICAX Shipping Addresscommercientdynamicsax__MSDYAX_ShippingAddressCommercient_ExternalKey5vw_MSDYNAMICAX_DeliveryAddress:vw_MSDYNAMICAX_DeliveryAddresscommercientdynamicsax__ / __c
ContactsContactsCommercient_ExternalKey5vw_MSDYNAMICAX_Contacts:vw_MSDYNAMICAX_Contacts'' / ''
MSDYNAMICAX Warehousecommercientdynamicsax__MSDYAX_WarehouseCommercient_ExternalKey6vw_MSDYNAMICAX_Warehouse:vw_MSDYNAMICAX_Warehousecommercientdynamicsax__ / __c
MSDYNAMICAX Sales Quotation Headercommercientdynamicsax__MSDYAX_SalesQuotationHeadCommercient_ExternalKey7vw_MSDYNAMICAX_SQHeader:vw_MSDYNAMICAX_SQHeadercommercientdynamicsax__ / __c
MSDYNAMICAX Sales Quotation Linecommercientdynamicsax__MSDYAX_SalesQuotationCommercient_ExternalKey8vw_MSDYNAMICAX_SQDetail:vw_MSDYNAMICAX_SQDetailcommercientdynamicsax__ / __c
MSDYNAMICAX Sales Order Headercommercientdynamicsax__MSDYAX_SalesOrderHeaderCommercient_ExternalKey9vw_MSDYNAMICAX_SOHeader:vw_MSDYNAMICAX_SOHeadercommercientdynamicsax__ / __c
MSDYNAMICAX Sales Order Detailcommercientdynamicsax__MSDYAX_SalesOrderDetailCommercient_ExternalKey10vw_MSDYNAMICAX_SODetail:vw_MSDYNAMICAX_SODetailcommercientdynamicsax__ / __c
MSDYNAMICAX Invoice Headercommercientdynamicsax__MSDYAX_InvoiceHeaderCommercient_ExternalKey11vw_MSDYNAMICAX_InvoiceHeader:vw_MSDYNAMICAX_InvoiceHeadercommercientdynamicsax__ / __c
MSDYNAMICAX Invoice Detailcommercientdynamicsax__MSDYAX_InvoiceDetailCommercient_ExternalKey12vw_MSDYNAMICAX_InvoiceDetail:vw_MSDYNAMICAX_InvoiceDetailcommercientdynamicsax__ / __c
MSDYAX Cust Pur HistoryMSDYAX_Cust_Pur_HistoryCommercient_ExternalKey13vw_MSDYNAMICAX_CustPurHistory:vw_MSDYNAMICAX_CustPurHistory'' / ''
Product PricebooksProducts:Price_BooksCommercient_ExternalKey17vw_MSDYNAMICAX_ProductPricebook:vw_MSDYNAMICAX_ProductPricebook'' / ''
MSDYAX Dispatch ShippingMSDYAX_Dispatch_ShippingCommercient_ExternalKey18vw_MSDYNAMICAX_Dispatch_Shipping:vw_MSDYNAMICAX_Dispatch_Shipping'' / ''
MSDYAX ContactPersoncommercientdynamicsax__MSDYAX_SalespersonCommercient_ExternalKey19vw_MSDYNAMICAX_CustomerContact:vw_MSDYNAMICAX_CustomerContactcommercientdynamicsax__ / __c

Every one of these inserts Is_Active as 0, so an imported process is inactive until an operator activates it. Across the set they insert Is_Create_Entity 0, Is_Create_Fields 0, Is_Active_Get_Records 0, Is_Active_Delete_Records 0. The insert column lists do not include Sync_Operation_Type, Sync_Batch_Size, IsAccountMatching, Document_Source_Path, so those columns take their CRM_Configuration defaults. Text columns a template does not use are inserted as '' rather than left NULL. Get_SOQL_Query carries a query on Accounts — those rows read records back from Zoho CRM as well as pushing.

3. The views

Each template creates its view with CreateViewQuery, in the gateway dbo schema. “Change detection” names which of the three kinds dlake-crmpro defines the view’s own WHERE makes it; where a view’s shape is not one of those three the column is left empty and the view’s own WHERE is the authority.

ViewChange detectionRepository keyReads other prefixesIdentity columnSource tables
vw_MSDYNAMICAX_PaymentTermsinsert-onlyvw_MSDYNAMICAX_PaymentTerms:Commercient_ExternalKey__c, Commercient_ExternalKeySF_ERP_Salesforce_Clone_PAYMTERM
vw_MSDYNAMICAX_Accountinsert-onlyvw_MSDYNAMICAX_Account:Commercient_ArCustomer_CodeSF_ERP_Salesforce_Clone_CUSTTABLE, SF_ERP_Salesforce_Clone_MCRCustTable, SF_ERP_Salesforce_Clone_DirPartyTable, vw_MSDYNAMICAX_ShippingAddress, SF_ERP_Salesforce_Clone_MRM_MetasAsesores_V2
vw_MSDYNAMICAX_Customerinsert-onlyvw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_PaymentTerms:, vw_MSDYNAMICAX_Customer:Commercient_ExternalKey__c, Commercient_ExternalKeySF_ERP_Salesforce_Clone_CUSTTABLE, SF_ERP_Salesforce_Clone_DirPartyTable
vw_MSDYNAMICAX_Productinsert-onlyvw_MSDYNAMICAX_Product:Commercient_ExternalKeySF_ERP_Salesforce_Clone_INVENTTABLE, SF_ERP_Salesforce_Clone_GRWStatusOrdenado, SF_ERP_Salesforce_Clone_EcoResProductTranslation, SF_ERP_Salesforce_Clone_EcoResTrackingDimensionGroupItem, SF_ERP_Salesforce_Clone_ECORESTRACKINGDIMENSIONGROUP
vw_MSDYNAMICAX_Iteminsert-onlyvw_MSDYNAMICAX_Product:, vw_MSDYNAMICAX_Item:Commercient_ExternalKey__c, Commercient_ExternalKeySF_ERP_Salesforce_Clone_INVENTTABLE, SF_ERP_Salesforce_Clone_GRWStatusOrdenado
vw_MSDYNAMICAX_DeliveryAddressinsert-onlyvw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_DeliveryAddress:Commercient_ExternalKey__c, Commercient_ExternalKeySF_ERP_Salesforce_Clone_CUSTTABLE, SF_ERP_Salesforce_Clone_DirPartyTable, SF_ERP_Salesforce_Clone_DIRPARTYLOCATION, SF_ERP_Salesforce_Clone_LOGISTICSPOSTALADDRESS, SF_ERP_Salesforce_Clone_LOGISTICSADDRESSCOUNTRYREGION
vw_MSDYNAMICAX_Contactsinsert-onlyvw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Contacts:Commercient_ExternalKeySF_ERP_Salesforce_Clone_CONTACTPERSON, SF_ERP_Salesforce_Clone_CUSTTABLE, SF_ERP_Salesforce_Clone_DirPartyTable, SF_ERP_Salesforce_Clone_DirPersonName, SF_ERP_Salesforce_Clone_DIRPARTYLOCATION
vw_MSDYNAMICAX_Warehouseinsert + updatevw_MSDYNAMICAX_Warehouse:Commercient_ExternalKey__c, Commercient_ExternalKeySF_ERP_Salesforce_Clone_INVENTLOCATION
vw_MSDYNAMICAX_SQHeaderinsert-onlyvw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_SQHeader:Commercient_ExternalKey__c, Commercient_ExternalKeySF_ERP_Salesforce_Clone_SalesQuotationTable, CommercientFlags
vw_MSDYNAMICAX_SQDetailinsert-onlyvw_MSDYNAMICAX_SQHeader:, vw_MSDYNAMICAX_Item:, vw_MSDYNAMICAX_SQDetail:Commercient_ExternalKey__c, Commercient_ExternalKeySF_ERP_Salesforce_Clone_SalesQuotationLine
vw_MSDYNAMICAX_SOHeaderinsert-onlyvw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_SOHeader:Commericent_ExternalKey__c, Commercient_ExternalKey__c, Commercient_ExternalKeySF_ERP_Salesforce_Clone_SALESTABLE, CommercientFlags
vw_MSDYNAMICAX_SODetailinsert-onlyvw_MSDYNAMICAX_SOHeader:, vw_MSDYNAMICAX_Item:, vw_MSDYNAMICAX_SODetail:Commercient_ExternalKey__c, Commercient_ExternalKeySF_ERP_Salesforce_Clone_SALESLINE
vw_MSDYNAMICAX_InvoiceHeaderinsert-onlyvw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_InvoiceHeader:Commercient_ExternalKey__c, Commercient_ExternalKeySF_ERP_Salesforce_Clone_CUSTINVOICEJOUR, CommercientFlags
vw_MSDYNAMICAX_InvoiceDetailinsert-onlyvw_MSDYNAMICAX_InvoiceHeader:, vw_MSDYNAMICAX_Item:, vw_MSDYNAMICAX_InvoiceDetail:Commercient_ExternalKey__c, Commercient_ExternalKeySF_ERP_Salesforce_Clone_CUSTINVOICETRANS
vw_MSDYNAMICAX_CustPurHistoryinsert-onlyvw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_CustPurHistory:Commercient_ExternalKeySF_ERP_Salesforce_Clone_MRM_CustTablePurchaseHist, SF_ERP_Salesforce_Clone_CUSTTABLE
vw_MSDYNAMICAX_ProductPricebookinsert-onlyvw_MSDYNAMICAX_Product:, vw_MSDYNAMICAX_PriceBooks:, vw_MSDYNAMICAX_ProductPricebook:Commercient_ExternalKeySF_ERP_Salesforce_Clone_INVENTTABLE, SF_ERP_Salesforce_Clone_GRWStatusOrdenado, SF_ERP_Salesforce_Clone_PRICEDISCTABLE
vw_MSDYNAMICAX_Dispatch_Shippinginsert-onlyvw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_Dispatch_Shipping:Commercient_ExternalKeySF_ERP_Salesforce_Clone_CUSTPACKINGSLIPTRANS, SF_ERP_Salesforce_Clone_GRWAOSIATIVEGUIDESLINES, SF_ERP_Salesforce_Clone_GRWGUIES, SF_ERP_Salesforce_Clone_SALESTABLE, SF_ERP_Salesforce_Clone_LOGISTICSPOSTALADDRESS
vw_MSDYNAMICAX_CustomerContactinsert-onlyvw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_CustomerContact:Commercient_ExternalKey__c, Commercient_ExternalKeySF_ERP_Salesforce_Clone_CONTACTPERSON, SF_ERP_Salesforce_Clone_CUSTTABLE, SF_ERP_Salesforce_Clone_DirPartyTable, SF_ERP_Salesforce_Clone_DIRPARTYLOCATION, SF_ERP_Salesforce_Clone_LOGISTICSPOSTALADDRESS

4. Order of work

The templates set Sync_Order from 1 to 19. A run processes active rows in ascending Sync_Order, which is the order the templates put them in:

  • 1 — MSDYNAMICSAX PaymentTerms
  • 2 — Accounts
  • 3 — MSDYNAMICAX Customer
  • 4 — Products
  • 5 — MSDYNAMICAX Item, MSDYNAMICAX Shipping Address, Contacts
  • 6 — MSDYNAMICAX Warehouse
  • 7 — MSDYNAMICAX Sales Quotation Header
  • 8 — MSDYNAMICAX Sales Quotation Line
  • 9 — MSDYNAMICAX Sales Order Header
  • 10 — MSDYNAMICAX Sales Order Detail
  • 11 — MSDYNAMICAX Invoice Header
  • 12 — MSDYNAMICAX Invoice Detail
  • 13 — MSDYAX Cust Pur History
  • 17 — Product Pricebooks
  • 18 — MSDYAX Dispatch Shipping
  • 19 — MSDYAX ContactPerson

Several of these rows share a Sync_Order value: each template group carries its own numbering, so give the imported processes an order across the whole set rather than taking the template values as one.

These views read another process’s repository prefix, which is what makes the order a dependency order: the row appears in the view only once the process that writes that prefix has run, so a parent flows on one run and its children on the next.

  • vw_MSDYNAMICAX_PaymentTerms reads vw_MSDYNAMICAX_PaymentTerms:; no template in this set writes vw_MSDYNAMICAX_PaymentTerms:
  • vw_MSDYNAMICAX_Account reads vw_MSDYNAMICAX_Account:; no template in this set writes vw_MSDYNAMICAX_Account:
  • vw_MSDYNAMICAX_Customer reads vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_PaymentTerms:, vw_MSDYNAMICAX_Customer:; no template in this set writes vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_PaymentTerms:, vw_MSDYNAMICAX_Customer:
  • vw_MSDYNAMICAX_Product reads vw_MSDYNAMICAX_Product:; no template in this set writes vw_MSDYNAMICAX_Product:
  • vw_MSDYNAMICAX_Item reads vw_MSDYNAMICAX_Product:, vw_MSDYNAMICAX_Item:; no template in this set writes vw_MSDYNAMICAX_Product:, vw_MSDYNAMICAX_Item:
  • vw_MSDYNAMICAX_DeliveryAddress reads vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_DeliveryAddress:; no template in this set writes vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_DeliveryAddress:
  • vw_MSDYNAMICAX_Contacts reads vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Contacts:; no template in this set writes vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Contacts:
  • vw_MSDYNAMICAX_Warehouse reads vw_MSDYNAMICAX_Warehouse:; no template in this set writes vw_MSDYNAMICAX_Warehouse:
  • vw_MSDYNAMICAX_SQHeader reads vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_SQHeader:; no template in this set writes vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_SQHeader:
  • vw_MSDYNAMICAX_SQDetail reads vw_MSDYNAMICAX_SQHeader:, vw_MSDYNAMICAX_Item:, vw_MSDYNAMICAX_SQDetail:; no template in this set writes vw_MSDYNAMICAX_SQHeader:, vw_MSDYNAMICAX_Item:, vw_MSDYNAMICAX_SQDetail:
  • vw_MSDYNAMICAX_SOHeader reads vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_SOHeader:; no template in this set writes vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_SOHeader:
  • vw_MSDYNAMICAX_SODetail reads vw_MSDYNAMICAX_SOHeader:, vw_MSDYNAMICAX_Item:, vw_MSDYNAMICAX_SODetail:; no template in this set writes vw_MSDYNAMICAX_SOHeader:, vw_MSDYNAMICAX_Item:, vw_MSDYNAMICAX_SODetail:
  • vw_MSDYNAMICAX_InvoiceHeader reads vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_InvoiceHeader:; no template in this set writes vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_InvoiceHeader:
  • vw_MSDYNAMICAX_InvoiceDetail reads vw_MSDYNAMICAX_InvoiceHeader:, vw_MSDYNAMICAX_Item:, vw_MSDYNAMICAX_InvoiceDetail:; no template in this set writes vw_MSDYNAMICAX_InvoiceHeader:, vw_MSDYNAMICAX_Item:, vw_MSDYNAMICAX_InvoiceDetail:
  • vw_MSDYNAMICAX_CustPurHistory reads vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_CustPurHistory:; no template in this set writes vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_CustPurHistory:
  • vw_MSDYNAMICAX_ProductPricebook reads vw_MSDYNAMICAX_Product:, vw_MSDYNAMICAX_PriceBooks:, vw_MSDYNAMICAX_ProductPricebook:; no template in this set writes vw_MSDYNAMICAX_Product:, vw_MSDYNAMICAX_PriceBooks:, vw_MSDYNAMICAX_ProductPricebook:
  • vw_MSDYNAMICAX_Dispatch_Shipping reads vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_Dispatch_Shipping:; no template in this set writes vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_Dispatch_Shipping:
  • vw_MSDYNAMICAX_CustomerContact reads vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_CustomerContact:; no template in this set writes vw_MSDYNAMICAX_Account:, vw_MSDYNAMICAX_Customer:, vw_MSDYNAMICAX_CustomerContact:

5. Field mapping

CRM_FieldList carries one row per pushed column, with Object_Name equal to the CRM_Object_API_Name value — as dlake-crmpro puts it, an object with no CRM_FieldList rows pushes nothing and records no error. Each template carries its intended mapping in MappingJson. Read that with dlake admin crmpro_templates, then check crmpro_field_mapping on the created process before activating it.

TemplateObjectMapped fieldsFirst ERP → Zoho CRM pairs
MSDYNAMICSAX PaymentTermscommercientdynamicsax__MSDYAX_Payment_Terms17DATAAREAID, PAYMTERMID, PARTITIONCommercient_ExternalKey__c, CASHCASH, CREDITCARDCREDITCHECKCREDIT_CARD_CREDIT_CHECK, DATAAREAIDDATA_AREA_ID, DESCRIPTIONDESCRIPTION
AccountsAccounts51DATAAREAID, ACCOUNTNUM, PARTITIONCommercient_ArCustomer_Code, NAMEAccount_Name, ADDRESSBilling_Street, ZIPCODEBilling_Code, COUNTRYREGIONIDBilling_Country
MSDYNAMICAX Customercommercientdynamicsax__MSDYAX_Customer66DATAAREAID, ACCOUNTNUM, PARTITIONCommercient_ExternalKey__c, ACCOUNTNUMACCOUNT_NUMBER, NAMEName, ACCOUNTSTATEMENTACCOUNT_STATEMENT, AGENCYLOCATIONCODEAGENCY_LOCATION_CODE
ProductsProducts13DATAAREAID, ITEMIDCommercient_ExternalKey, NAMEProduct_Name, DATAAREAID, ITEMIDProduct_Code, ITEMIDArticulo, DESCRIPTIONDescription
MSDYNAMICAX Itemcommercientdynamicsax__MSDYAX_Inventory38DATAAREAID, ITEMIDCommercient_ExternalKey__c, DATAAREAID, ITEMIDName, BATCHNUMGROUPIDBATCH_NUMBER_GROUP_ID, BOMMANUALRECEIPTBOM_MANUAL_RECEIPT, BOMUNITIDBOM_UNIT_ID
MSDYNAMICAX Shipping Addresscommercientdynamicsax__MSDYAX_ShippingAddress17RECIDCommercient_ExternalKey__c, RECIDName, SFDCIDAccount_R, SFDCIDCustomer_R, ISROLEDELIVERYIs_Delivery_Address
ContactsContacts15CONTACTPERSONID,DATAAREAID,PARTITIONCommercient_ExternalKey, CONTACTPERSONIDId_de_Contacto, FIRSTNAMEFirst_Name, LASTNAMELast_Name, MIDDLENAMESegundo_Nombre
MSDYNAMICAX Warehousecommercientdynamicsax__MSDYAX_Warehouse72DATAAREAID,INVENTLOCATIONID,PARTITIONCommercient_ExternalKey__c, NAMEName, ACTIVITYTYPE_RUACTIVITY_TYPE_RU, ALLOWLABORSTANDARDSALLOW_LABOR_STANDARDS, ALLOWMARKINGRESERVATIONREMOVALALLOW_MARKING_RESERVATION_REMOVAL
MSDYNAMICAX Sales Quotation Headercommercientdynamicsax__MSDYAX_SalesQuotationHead113CUSTACCOUNTAccount, CUSTACCOUNTMSDYAX_Customer, DATAAREAID, QUOTATIONID, PARTITIONCommercient_ExternalKey__c, DATAAREAID, QUOTATIONID, PARTITIONName, ADDRESSREFRECIDADDRESS_REFRENCE_ID
MSDYNAMICAX Sales Quotation Linecommercientdynamicsax__MSDYAX_SalesQuotation66TQuot.SFDCIDMSDYAX_SalesQuotationHeader, sfid.SFDCIDMSDYAX_Inventory, A.DATAAREAID, A.INVENTTRANSID, A.PARTITIONCommercient_ExternalKey__c, A.DATAAREAID, A.INVENTTRANSID, A.PARTITIONName, A.ADDRESSREFRECIDADDRESS_REF_REC_ID
MSDYNAMICAX Sales Order Headercommercientdynamicsax__MSDYAX_SalesOrderHeader128SFDCIDAccount_R, SFDCIDCustomer_R, DATAAREAID, SALESID, PARTITIONCommericent_ExternalKey__c, DATAAREAID, SALESID, PARTITIONName, ADDRESSREFRECIDADDRESS_REF_REC_ID
MSDYNAMICAX Sales Order Detailcommercientdynamicsax__MSDYAX_SalesOrderDetail94DATAAREAID,INVENTTRANSID,PARTITIONCommercient_ExternalKey__c, DATAAREAID,INVENTTRANSID,PARTITIONName, ACTIVITYNUMBERACTIVITY_NUMBER, NAMENAME1, ADDRESSREFRECIDADDRESS_REF_REC_ID
MSDYNAMICAX Invoice Headercommercientdynamicsax__MSDYAX_InvoiceHeader81DATAAREAIDAccount_R, INVOICEACCOUNTCustomer_R, INVOICEID,INVOICEDATECommercient_ExternalKey__c, INVOICEID,INVOICEDATEName, BACKORDERBACK_ORDER
MSDYNAMICAX Invoice Detailcommercientdynamicsax__MSDYAX_InvoiceDetail79INVOICEID, INVOICEDATE, LINENUMCommercient_ExternalKey__c, INVOICEID, INVOICEDATE, LINENUMName, ASSETBOOKIDASSET_BOOK_ID, NAMEName1, ASSETIDASSET_ID
MSDYAX Cust Pur HistoryMSDYAX_Cust_Pur_History30COMPRAPROMEDIOCompra_Promedio, CUSTTABLECUSTTABLE, FACTURACIONMES01FACTURACIONMES01, FACTURACIONMES02FACTURACIONMES02, FACTURACIONMES03FACTURACIONMES03
Product PricebooksProducts:Price_Books6SFDCID, SFDCIDCommercient_ExternalKey, SFDCIDPRODUCT_ID, SFDCIDZOHO_PriceBookID, ITEMIDArticulo, AMOUNTlist_price
MSDYAX Dispatch ShippingMSDYAX_Dispatch_Shipping15SFDCIDClient, SFDCIDMSDYAX_Customer, RECIDCommercient_ExternalKey, SALESIDBASEName, SALESIDBASEOV
MSDYAX ContactPersoncommercientdynamicsax__MSDYAX_Salesperson9CONTACTPERSONID, DATAAREAID, PARTITIONCommercient_ExternalKey__c, CREATEDBYCreated_By, NAMELAST_NAME, NAMEFIRST_NAME, CREATEDDATETIMECREATED_DATETIME

6. Verifying

# per-prefix counts; every synced record carries its destination id
dlake tool query --profile <tenant> --sql "SELECT LEFT([Key], CHARINDEX(':',[Key])-1) AS prefix, COUNT(*) n, COUNT(NULLIF(SFDCID,'')) withId FROM dbo.TimeStampRepository WHERE CHARINDEX(':',[Key])>0 GROUP BY LEFT([Key], CHARINDEX(':',[Key])-1)"

withId = n for every prefix is the success condition dlake-crmpro defines. The split is on the first colon, which is the prefix boundary whether the key separator is : or ::.

The prefixes these templates set:

  • vw_MSDYNAMICAX_PaymentTerms:
  • vw_MSDYNAMICAX_Account:
  • vw_MSDYNAMICAX_Customer:
  • vw_MSDYNAMICAX_Product:
  • vw_MSDYNAMICAX_Item:
  • vw_MSDYNAMICAX_DeliveryAddress:
  • vw_MSDYNAMICAX_Contacts:
  • vw_MSDYNAMICAX_Warehouse:
  • vw_MSDYNAMICAX_SQHeader:
  • vw_MSDYNAMICAX_SQDetail:
  • vw_MSDYNAMICAX_SOHeader:
  • vw_MSDYNAMICAX_SODetail:
  • vw_MSDYNAMICAX_InvoiceHeader:
  • vw_MSDYNAMICAX_InvoiceDetail:
  • vw_MSDYNAMICAX_CustPurHistory:
  • vw_MSDYNAMICAX_ProductPricebook:
  • vw_MSDYNAMICAX_Dispatch_Shipping:
  • vw_MSDYNAMICAX_CustomerContact:

7. Where this sits

dlake-crmpro is the general operating surface — the crmpro_* tools, the setup and transaction tables, field mapping, and the source-view contract that applies to every destination. This page adds what the shipped Microsoft Dynamics AX → Zoho CRM templates set up. dlake-crmpro-zohocrm is the destination skill this page sits under: its own text is the authority for the Zoho CRM conventions that hold across every ERP, and its ERP table lists this page alongside every sibling ERP page for this destination. For the extract leg that fills the clone tables, see dlake-normalsync; for the on-premises agent that runs it, dlake-syncagent; for the writeback leg, dlake-txdownloaderpro; for standing an integration up, dlake-integration-setup.