Externally Maintained Fields Dynamics 365 For Finance and Operations

Externally Maintained Fields Dynamics 365 for Finance and Operations

In this article, we are going to understand what Externally Maintained Fields Dynamics 365 for Finance and Operations are and what are its considerations. Lets get started!

External Maintained Fields in Dynamics 365 for Finance and Operations:

When an integration is triggered between Dynamics 365 for Sales (D365 Sales) or Customer Service(D365 CE) and Dynamics 365 for Finance and Operations(D365 FO) through the Common Data Service (CDS) or directly, there is an identification mechanism through which the implementation team can determine whether the record is created manually in D365 FO or through CDS. This concept is called externally maintained fields in Dynamics 365 FO.

Common Data Service (CDS) and PowerApps:

Common Data Service (CDS) and PowerApps are two cloud services available, as a part of the Dynamics 365 Suite of products and services.

Common Data Service (CDS):

Common Data Service (CDS) is a service through which data is securely stored and managed as entity stores. In addition to this, CDS serves as the backbone to unify data and enables flexibility of data.

PowerApps:

PowerApps is an integrated environment on the cloud, which enables businesses to build applications, connect data across multiple systems through those applications and automate data flow and business processes across those systems.

D365 Application Explorer Objects Used:

The following are the list of fields that are triggered in Dynamics 365 FO. The tables that are used here include the following:

  • DirPartyTable
  • DirOrganization
  • LogisticsLocation
  • LogisticsPostalAddress
  • LogisticsElectronicAddress

The fields are classified as editable and non-editable after the customer details are created in D365 FO from D365 CE or D365 Sales.

PurposeTableFields
Customer Details(non-editable)
Customer NameDirPartyTableName
If Primary Contact Point is set to FaxDirPartyTablePrimaryContactFax
If Primary Contact Point is set to EmailDirPartyTablePrimaryContactEmail
If Primary Contact Point is set to PhoneDirPartyTablePrimaryContactPhone
If Primary Contact Point is set to URLDirPartyTablePrimaryContactURL
Number of Employees (if the Type is set to Organization)DirOrganizationNumberOfEmployees
Customer Name (if the Type is set to Organization)DirOrganizationName
First name (If the customer is a Person)DirPersonPhoneticFirstName
Middle Name (if the customer is a Person)DirPersonPhoneticMiddleName
Last Name (if the customer is a Person)DirPersonPhoneticLastName
Name (If the customer is a Person. The name is set to non-editable at the DirPerson level itself)DirPersonName
First name (If the customer is a Person)DirPersonNameFirstName
Middle Name (if the customer is a Person)DirPersonNameMiddleName
Last Name (if the customer is a Person)DirPersonNameLastName
Last Name Prefix (if the customer is a Person)DirPersonNameLastNamePrefix

Customer Address Details (non-editable)

DescriptionLogisticsLocationDescription
CountyLogisticsPostalAddressCounty
LatitudeLogisticsPostalAddressLatitude
LongitudeLogisticsPostalAddressLongitude
TimeZoneLogisticsPostalAddressTimeZone
CityLogisticsPostalAddressCity
CountryLogisticsPostalAddressCountryRegionId
Street NameLogisticsPostalAddressStreet
Postal CodeLogisticsPostalAddressZipCode
StateLogisticsPostalAddressState

Table 1 – Non-editable fields

The contact information fields are also considered as externally maintained fields, but these fields are editable.

PurposeTableField
Customer Contact Information (editable fields)
Type of Contact (Email,Phone number, Fax etc)LogisticsElectronicAddressType
Extension (if any in the Contact information section)LogisticsElectronicAddressLocatorExtension
Description of the contact pointLogisticsElectronicAddressDescription
If the contact type is the primary contact typeLogisticsElectronicAddressIsPrimary
Contact details of the person/organizationLogisticsElectronicAddressLocator
Country or region the contact belongs toLogisticsElectronicAddressCountryRegionCode

Table 2 – Editable Fields

X++ Classes Used:

The X++ classes that are triggered on overriding method called active() in the CustTable Form datasource. The class triggered is DirPartyRoleIsExternallyMaintained.

// Set field restrictions for the shared party fields and the additional customer specific fields registered through the shared call.

DirPartyRoleIsExternallyMaintained::setRestrictionForExternallyMaintainedFields(CustTable.Party,element);

ClassMethods Used
DirPartyRoleIsExternallyMaintainedsetRestrictionForExternallyMaintainedFields()
 

DirPartyRoleIsExternallyMaintained

getExternallyMaintainedFields()
addDirPartyFields()

Table 3 – Methods and Classes Used 

Call Stack:

Fig 1 – Externally Maintained Fields 

Abbreviations in Fig 1 – Externally Maintained Fields: 
Fig 1 – Externally Maintained Fields highlights the sequence in which the externally maintained fields are populated in D365 FO. The fields that are populated are highlighted in Table 1 – Non-editable fields and Table 2 – Editable fields. Use() means there is an object of that class being instantiated and used. Call() depicts the call to a method that is defined in a class.

References:

Disclaimer: The Questions and Answers provided on https://www.gigxp.com are for general information purposes only. We make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services, or related graphics contained on the website for any purpose.
Avatar

Navneeth Nagrajan is a Technical Consultant at Avanade Australia focusing on implementation, pre-sales and support of Microsoft Dynamics 365 for Operations/ Microsoft Dynamics Ax ERP. Before Avanade, Navneeth worked as a Solutions Consultant at LM WindPower focusing on implementation and support of Microsoft Dynamics Ax Enterprise Resource Planning solution. Prior to LM WindPower, he worked as a Lead Consultant for ITC Infotech India Limited focusing on Enterprise Solutions like Microsoft Dynamics AX & Microsoft Dynamics CRM. He has worked for Microsoft as a Partner Technical Consultant. His primary focus area is Microsoft Dynamics AX and he specializes on Trade & Logistics, CRM, Service Management and Project Management functionalities. His secondary focus area is Microsoft Dynamics CRM and he specializes on Sales Management, Marketing Management and Service Management sections. He has successfully assisted more than 100 Microsoft partners and customers. At Microsoft, He has successfully written and published papers on '​'​ Needs for Microsoft Dynamics CRM in the Education Sector''. Prior to Microsoft, he has worked as a Functional Consultant and has implemented Microsoft Dynamics AX in the Manufacturing and Services Segment. He has also worked as a Business Development Executive implementing Document Management Systems for Security Broking and Manufacturing Organizations.