Skip to main content

Lattice - Complete Entity Reference

Set-based import entities. The 15 import-only entities that load journals and high-volume masters with data management's Set-based processing are not public and are not on this page; see Set-based imports.

Cross-reference keys. Several entities on this page (the sales and purchase order lines, the vendor contact person and the document attachment entities other than the quality order attachment entity) also accept ExternalSystem plus ...ExternalKey fields in place of lookup values. These fields are unmapped and are not listed in the tables below; see Cross-reference keys and the data entity reference.

This document provides comprehensive metadata for 28 core data entities and the composite entity of the Lattice model, which has 133 public data entities in total.


Table of Contents​


General Document Attachments​

MGCLatticeDocuRefEntity​

The generic attachment entity is not on the OData surface: it would let a caller attach a document to any record of any table by table id and record id, which are not portable between environments. The typed document attachment entities below are the public surface; each names its parent record by its business key. This entity remains the internal base those entities read file content through.

PropertyValue
Label@MGCLattice:DocuRefEntityLabel
Read/WriteRead-Write
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging Table(none)
ODataNot public (internal helper of the typed attachment entities)
Primary Company ContextActualCompanyId

Data Sources:

Data SourceTableJoin Type
DocuRef (root)DocuRef--
DocuValueDocuValueOuterJoin (ValueRecId = RecId on DocuRef via DocuValue relation)

Fields:

Entity FieldDataSource.DataFieldType
DocumentIdDocuRef.DocumentIdMapped
ActualCompanyIdDocuRef.ActualCompanyIdMapped (Private)
TypeIdDocuRef.TypeIdMapped
RefCompanyIdDocuRef.RefCompanyIdMapped
RefRecIdDocuRef.RefRecIdMapped
RefTableIdDocuRef.RefTableIdMapped
NameDocuRef.NameMapped
RestrictionDocuRef.RestrictionMapped
NotesDocuRef.NotesMapped
ValueRecId(computed)Unmapped Int64 (Private, defineValueRecId)
DocuValueTypeDocuValue.TypeMapped (Private)
FileName(computed)Unmapped String (defineFileName)
FileType(computed)Unmapped String (defineFileType)
FileContents(computed)Unmapped Container (defineFileContents)
DefaultAttachmentDocuRef.DefaultAttachmentMapped
StorageProviderIdDocuValue.StorageProviderIdMapped

Entity Key: DocumentId

Relations:

  • DocuTypeEntity (Association: ActualCompanyId = DataAreaId, TypeId = ID)

Custom X++ Methods:

  • initValue - Generates a new GUID for DocumentId on new records
  • insertEntityDataSource - Skips DocuValue insert; uses skipDataMethods on DocuRef then attaches file content via DocuAction
  • postLoad - Populates FileContents container from Document Management for file-type attachments
  • getWhitelistedFields - Returns set of fields (Notes, Name, Restriction) allowed for update
  • hasAttachmentFile - Checks whether a document type is file-backed
  • update - Restricts update to whitelisted fields only; throws error for non-whitelisted changes
  • validateWrite - Validates DocuType exists and file fields are consistent
  • defineFileName - Computed column exposing DocuValue.FileName (bypasses AllowEdit restriction)
  • defineFileType - Computed column exposing DocuValue.FileType (bypasses AllowEdit restriction)
  • defineValueRecId - Computed column for DocuRef.ValueRecId
  • defineFileContents - Computed null expression for FileContents virtual field
  • setAttachmentFile - Static helper to read attachment file content into a container field
  • setAttachmentFileInCompany - Loads the attachment file content in the current company; see setAttachmentFile
  • checkAttachmentValidity - Validates attachment with cross-company support
  • hasValidAttachmentFile - Checks file type and storage provider validity
  • persistEntity - Skips validation on RefRecId, ValueRecId, RefCompanyId, RefTableId

Customers​

MGCLatticeCustomerContactInfoEntity​

PropertyValue
Label@MGCLattice:CustomerContactInfo
Read/WriteRead-Write
Configuration KeyLogisticsBasic
Entity CategoryDocument
Staging TableMGCLatticeCustomerContactInfoStaging
OData Entity NameLatticeCustomerContactInfo
OData CollectionLatticeCustomerContactInfos
Primary Company ContextCustomerDataAreaId
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeRelations
DirPartyContactEntity (root)DirPartyContactEntity----
DirPartyTableDirPartyTableInnerJoinPartyNumber = PartyNumber on DirPartyContactEntity
CustTableCustTableInnerJoinRecId = Party on DirPartyTable

Fields:

Entity FieldDataSource.DataField
TypeDirPartyContactEntity.Type
LocatorDirPartyContactEntity.Locator
DescriptionDirPartyContactEntity.Description
PurposeDirPartyContactEntity.Purpose
LocatorExtensionDirPartyContactEntity.LocatorExtension
CountryRegionCodeDirPartyContactEntity.CountryRegionCode
IsPrimaryDirPartyContactEntity.IsPrimary
IsMobilePhoneDirPartyContactEntity.IsMobilePhone
IsPrivateDirPartyContactEntity.IsPrivate
LocationIdDirPartyContactEntity.LocationId
PartyNumberDirPartyContactEntity.PartyNumber
CustomerAccountCustTable.AccountNum
CustomerDataAreaIdCustTable.DataAreaId

Entity Key: CustomerAccount, CustomerDataAreaId, Type, Locator, Description

Custom X++ Methods:

  • initializeEntityDataSource - Sets PartyNumber and LocationId from CustTable on insert; resolves DirPartyContactEntity buffer on update
  • resolveDirPartyContactEntity - Finds the DirPartyContactEntity record matching key fields (PartyNumber, LocationId, Type, Description, Locator)
  • setPartyNumberAndLocationId - Resolves party number from CustTable.Party and creates DirPartyLocation if LocationId is blank

MGCLatticeCustomerContactPersonEntity​

PropertyValue
Label@MGCLattice:CustomerContactPersons
Read/WriteRead-Write
Configuration KeyLogisticsBasic
Entity CategoryDocument
Staging TableMGCLatticeCustomerContactPersonStaging
OData Entity NameLatticeCustomerContactPerson
OData CollectionLatticeCustomerContactPersons
Primary Company ContextCustomerDataAreaId
SubscriberAccessLevelRead=Allow

Each row pairs a contact person with the customer account of the same legal entity. When AssociatedPartyNumber is not sent, it is set to the customer account's party; a party that is not the account's party is refused.

Data Sources:

Data SourceTableJoin Type
smmContactPersonV2Entity (root)smmContactPersonV2Entity--
DirPartyTable (read-only)DirPartyTableInnerJoin (PartyNumber = AssociatedPartyNumber on smmContactPersonV2Entity)
CustTable (read-only)CustTableInnerJoin (Party = RecId on DirPartyTable, in the contact person's legal entity)

Fields (59):

Entity FieldDataSource.DataField
AddressBookNamessmmContactPersonV2Entity.AddressBookNames
AlternateComplimentaryClosingPhrasesmmContactPersonV2Entity.AlternateComplimentaryClosingPhrase
AlternateSalutationPhrasesmmContactPersonV2Entity.AlternateSalutationPhrase
AnniversaryDaysmmContactPersonV2Entity.AnniversaryDay
AnniversaryMonthsmmContactPersonV2Entity.AnniversaryMonth
AnniversaryYearsmmContactPersonV2Entity.AnniversaryYear
AssistantNamesmmContactPersonV2Entity.AssistantName
AssistantPhoneNumbersmmContactPersonV2Entity.AssistantPhoneNumber
AssociatedPartyNumbersmmContactPersonV2Entity.AssociatedPartyNumber
AvailableFromTimesmmContactPersonV2Entity.AvailableFromTime
AvailableToTimesmmContactPersonV2Entity.AvailableToTime
BillingInformationsmmContactPersonV2Entity.BillingInformation
BirthDaysmmContactPersonV2Entity.BirthDay
BirthMonthsmmContactPersonV2Entity.BirthMonth
BirthYearsmmContactPersonV2Entity.BirthYear
ChildrenNamessmmContactPersonV2Entity.ChildrenNames
ContactActivitySensitivityLevelsmmContactPersonV2Entity.ContactActivitySensitivityLevel
ContactInformationLanguageIdsmmContactPersonV2Entity.ContactInformationLanguageId
ContactPersonIdsmmContactPersonV2Entity.ContactPersonId
ContactPersonNamesmmContactPersonV2Entity.ContactPersonName (ReadOnly)
ContactPersonPartyNumbersmmContactPersonV2Entity.ContactPersonPartyNumber (Internal)
ContactPersonPartyTypesmmContactPersonV2Entity.ContactPersonPartyType (Internal, ReadOnly)
ContactPersonResponsiblePersonnelNumbersmmContactPersonV2Entity.ContactPersonResponsiblePersonnelNumber
DecisionMakingRoleCodesmmContactPersonV2Entity.DecisionMakingRoleCode
DisplayNameSequencePatternNamesmmContactPersonV2Entity.DisplayNameSequencePatternName
ElectronicLocationIdsmmContactPersonV2Entity.ElectronicLocationId
EmploymentComputerNetworkNamesmmContactPersonV2Entity.EmploymentComputerNetworkName
EmploymentDepartmentsmmContactPersonV2Entity.EmploymentDepartment
EmploymentJobFunctionNamesmmContactPersonV2Entity.EmploymentJobFunctionName
EmploymentJobTitlesmmContactPersonV2Entity.EmploymentJobTitle
EmploymentOfficeLocationsmmContactPersonV2Entity.EmploymentOfficeLocation
EmploymentProfessionsmmContactPersonV2Entity.EmploymentProfession
FirstNamesmmContactPersonV2Entity.FirstName
FormattedPrimaryAddresssmmContactPersonV2Entity.FormattedPrimaryAddress
GendersmmContactPersonV2Entity.Gender
GovernmentIdentificationNumbersmmContactPersonV2Entity.GovernmentIdentificationNumber
HasRequestedInternetAccesssmmContactPersonV2Entity.HasRequestedInternetAccess
HobbiessmmContactPersonV2Entity.Hobbies
IdentityCardNumbersmmContactPersonV2Entity.IdentityCardNumber
InitialssmmContactPersonV2Entity.Initials
IsContactPersonExternallyMaintainedsmmContactPersonV2Entity.IsContactPersonExternallyMaintained
IsDefaultContactPersonsmmContactPersonV2Entity.IsDefaultContactPerson
IsImportedsmmContactPersonV2Entity.IsImported
IsInactivesmmContactPersonV2Entity.IsInactive
LastNamesmmContactPersonV2Entity.LastName
MiddleNamesmmContactPersonV2Entity.MiddleName
PrimaryAddressCitysmmContactPersonV2Entity.PrimaryAddressCity
PrimaryAddressCountryRegionIdsmmContactPersonV2Entity.PrimaryAddressCountryRegionId
PrimaryAddressCountryRegionISOCodesmmContactPersonV2Entity.PrimaryAddressCountryRegionISOCode
PrimaryAddressStateIdsmmContactPersonV2Entity.PrimaryAddressStateId
PrimaryAddressStreetsmmContactPersonV2Entity.PrimaryAddressStreet
PrimaryAddressZipCodesmmContactPersonV2Entity.PrimaryAddressZipCode
PrimaryEmailAddresssmmContactPersonV2Entity.PrimaryEmailAddress
PrimaryPhoneNumbersmmContactPersonV2Entity.PrimaryPhoneNumber
PrimaryFaxNumbersmmContactPersonV2Entity.PrimaryFaxNumber
PrimaryURLsmmContactPersonV2Entity.PrimaryURL
SearchNamesmmContactPersonV2Entity.SearchName
CustomerAccountCustTable.AccountNum
CustomerDataAreaIdCustTable.DataAreaId

Entity Key: CustomerAccount, CustomerDataAreaId, ContactPersonId

Custom X++ Methods:

  • validateWrite - Resolves the associated party from the customer account before validating
  • persistEntity - Resolves the associated party from the customer account before any data source is written
  • resolveAssociatedParty - Sets AssociatedPartyNumber to the customer account's party (in the row's legal entity) when it is not sent; refuses a different party
  • initializeEntityDataSource - Skips ContactPersonId validation; resolves smmContactPersonV2Entity buffer on update
  • resolveContactPersonEntity - Finds smmContactPersonV2Entity by ContactPersonId under the customer account's party, in the row's legal entity

MGCLatticeCustomerPackingSlipJournalHeaderEntity​

PropertyValue
Label@MGCLattice:CustomerPackingSlipJournalHeader
Read/WriteRead-Only
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticeCustomerPackingSlipJournalHeaderStaging
OData Entity NameLatticeCustomerPackingSlipJournalHeader
OData CollectionLatticeCustomerPackingSlipJournalHeaders
Primary Company ContextDataAreaId

Data Sources:

Data SourceTableJoin TypeRelations
CustPackingSlipJour (root)CustPackingSlipJour-- (ReadOnly)--
HcmWorker_OrderTakerHcmWorkerOuterJoinWorkerSalesTaker = RecId on CustPackingSlipJour
DefaultDimensionDAVSDimensionSetEntityOuterJoinDefaultDimension = RecId on CustPackingSlipJour
LogisticsPostalAddressBaseEntityLogisticsPostalAddressBaseEntityOuterJoinDeliveryPostalAddress = AddressRecId on CustPackingSlipJour

Fields (64): Weight, BillOfLadingId, BOLAddress, BOLCarrierName, BOLFreightedBy, BOLPackageAppearance, ContactPersonId, CustomerRef, DeliveryDate, DeliveryName, DeliveryModeCode (DlvMode), DeliveryReasonId (DlvReason), DeliveryTermsId (DlvTerm), DocumentDate, ExportReason, FreightSlipNumber (FreightSlipNum), FreightSlipType, IntercompanyLegalEntityId (InterCompanyCompanyId), IntercompanyPosted (InterCompanyPosted), IntercompanyPurchaseOrderNumber (InterCompanyPurchId), IntrastatDispatch, InventoryWarehouseId (InventLocationId), InvoiceAccount, InvoicingName, LanguageId, LedgerVoucher, CustomerAccount (OrderAccount), PackingSlipId, PurchaseOrder, Quantity (Qty), ReturnItemNumber (ReturnItemNum), ReturnPackingSlipId, SalesOrderNumber (SalesId), SalesOrderType (SalesType), ShipCarrierAccount, ShipCarrierBlindShipment, ShipCarrierDeliveryContact, ShipCarrierEmail, ShipCarrierId, ShipCarrierPhone, Volume, PersonnelNumber, DefaultDimensionDisplayValue (DisplayValue), DeliveryAddressCity (City), DeliveryAddressCountryRegionId (CountryRegionId), DeliveryAddressCountryRegionISOCode (CountryRegionISOCode), DeliveryAddressCountyId (County), DeliveryAddressDescription (Description), DeliveryAddressDistrictName (DistrictName), DeliveryAddressDunsNumber (DunsNumber), IsDeliveryAddressPrivate (IsPrivate), DeliveryAddressLatitude (Latitude), DeliveryAddressLocationId (LocationId), DeliveryAddressLongitude (Longitude), DeliveryAddressPostBox (PostBox), DeliveryAddressStateId (State), DeliveryAddressStreet (Street), DeliveryAddressStreetNumber (StreetNumber), DeliveryAddressTimeZone (TimeZone), DeliveryAddressZipCode (ZipCode), DeliveryAddressCityInKana (CityInKana), DeliveryAddressStreetInKana (StreetInKana), ValidTo, ValidFrom

Entity Key: PackingSlipId, SalesOrderNumber


MGCLatticeCustomerPackingSlipJournalLinesEntity​

PropertyValue
Label@MGCLattice:CustomerPackingSlipJournalLines
Read/WriteRead-Only
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticeCustomerPackingSlipJournalLinesStaging
OData Entity NameLatticeCustomerPackingSlipJournalLine
OData CollectionLatticeCustomerPackingSlipJournalLines
Primary Company ContextDataAreaId

Data Sources:

Data SourceTableJoin TypeRelations
CustPackingSlipTrans (root)CustPackingSlipTrans-- (ReadOnly)--
DefaultDimensionDAVSDimensionSetEntityOuterJoinDefaultDimension = RecId on CustPackingSlipTrans
LogisticsPostalAddressBaseEntityLogisticsPostalAddressBaseEntityOuterJoinDeliveryPostalAddress = AddressRecId on CustPackingSlipTrans
InventDimInventDimOuterJoinInventDim relation on CustPackingSlipTrans

Fields (73): Amount (AmountCur), CountryRegionOfShipment, CurrencyCode, DeliveryDate, DeliveryType, DeliveryTermsId (DlvTerm), ExternalItemId, FullyMatched, IntercompanyInventoryLotId (InterCompanyInventTransId), IntrastatDispatchId, InventoryQuantity (inventQty), InventoryRefId (InventRefId), InventoryRefTransId (InventRefTransId), InventoryRefType (InventRefType), InventoryLotId (InventTransId), ItemNumber (ItemId), LineHeader, LineNumber (LineNum), ItemName (Name), OrderedQuantity (Ordered), OriginalCountryRegionId (OrigCountryRegionId), OriginalSalesOrderNumber (OrigSalesId), OriginalStateId (OrigStateId), PackingSlipId, Quantity (Qty), RemainingQuantity (Remain), RemainingInventoryQuantity (RemainInvent), SalesGroup, SalesOrderNumber (SalesId), SalesLineShippingDateConfirmed, SalesLineShippingDateRequested, SalesUnitSymbol (SalesUnit), Scrap, IntrastatProcId (StatProcId), IntrastatValueMST (StatValueMST), StockedProduct, IntrastatTransactionCode (TransactionCode), IntrastatTransport (Transport), ValueMST, Weight, DefaultDimensionDisplayValue (DisplayValue), DeliveryAddressCountryRegionId (CountryRegionId), DeliveryAddressStreetNumber (StreetNumber), DeliveryAddressZipCode (ZipCode), DeliveryAddressCityInKana (CityInKana), DeliveryAddressLongitude (Longitude), DeliveryAddressDescription (Description), DeliveryAddressDunsNumber (DunsNumber), DeliveryAddressLocationId (LocationId), DeliveryAddressStateId (State), DeliveryAddressLatitude (Latitude), DeliveryAddressCountryRegionISOCode (CountryRegionISOCode), DeliveryAddressStreet (Street), DeliveryAddressTimeZone (TimeZone), DeliveryAddressCountyId (County), DeliveryAddressPostBox (PostBox), IsDeliveryAddressPrivate (IsPrivate), DeliveryAddressCity (City), DeliveryAddressStreetInKana (StreetInKana), DeliveryAddressDistrictName (DistrictName), ValidTo, ValidFrom, ItemBatchNumber (inventBatchId), ItemSerialNumber (inventSerialId), OrderedInventoryStatusId (InventStatusId), ProductColorId (InventColorId), ProductConfigurationId (configId), ProductSizeId (InventSizeId), ProductStyleId (InventStyleId), ProductVersionId (InventVersionId), ShippingSiteId (InventSiteId), ShippingWarehouseId (InventLocationId), ShippingWarehouseLocationId (wMSLocationId)

Entity Key: SalesOrderNumber, DeliveryDate, PackingSlipId, LineNumber, InventoryLotId

Relations:

  • MGCLatticeCustomerPackingSlipJournalHeaderEntity (Association: SalesOrderNumber, PackingSlipId, DeliveryDate)

Vendors​

MGCLatticeVendorContactInfoEntity​

PropertyValue
Label@MGCLattice:VendorContactInfo
Read/WriteRead-Write
Configuration KeyLogisticsBasic
Entity CategoryDocument
Staging TableMGCLatticeVendorContactInfoStaging
OData Entity NameLatticeVendorContactInfo
OData CollectionLatticeVendorContactInfos
Primary Company ContextVendorDataAreaId
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeRelations
DirPartyContactEntity (root)DirPartyContactEntity----
DirPartyTableDirPartyTableInnerJoinPartyNumber = PartyNumber on DirPartyContactEntity
VendTableVendTableInnerJoinRecId = Party on DirPartyTable

Fields:

Entity FieldDataSource.DataField
VendorAccountNumberVendTable.AccountNum
VendorDataAreaIdVendTable.DataAreaId
TypeDirPartyContactEntity.Type
LocatorDirPartyContactEntity.Locator
DescriptionDirPartyContactEntity.Description
PurposeDirPartyContactEntity.Purpose
LocatorExtensionDirPartyContactEntity.LocatorExtension
CountryRegionCodeDirPartyContactEntity.CountryRegionCode
IsPrimaryDirPartyContactEntity.IsPrimary
IsMobilePhoneDirPartyContactEntity.IsMobilePhone
IsPrivateDirPartyContactEntity.IsPrivate
LocationIdDirPartyContactEntity.LocationId
PartyNumberDirPartyContactEntity.PartyNumber (Internal)

Entity Key: VendorAccountNumber, VendorDataAreaId, Type, Locator, Description

Custom X++ Methods:

  • initializeEntityDataSource - Sets PartyNumber and LocationId from VendTable on insert; resolves DirPartyContactEntity buffer on update
  • setPartyNumberAndLocationId - Resolves party number from VendTable.Party and creates DirPartyLocation if LocationId is blank
  • resolveDirPartyContactEntity - Finds DirPartyContactEntity by PartyNumber, LocationId, Type, Description, Locator

MGCLatticeVendorContactPersonEntity​

PropertyValue
Label@MGCLattice:VendorContactPersons
Read/WriteRead-Write
Configuration KeyLogisticsBasic
Entity CategoryDocument
Staging TableMGCLatticeVendorContactPersonStaging
OData Entity NameLatticeVendorContactPerson
OData CollectionLatticeVendorContactPersons
Primary Company ContextVendorDataAreaId
SubscriberAccessLevelRead=Allow

Each row pairs a contact person with the vendor account of the same legal entity. When AssociatedPartyNumber is not sent, it is set to the vendor account's party; a party that is not the account's party is refused.

Data Sources:

Data SourceTableJoin Type
smmContactPersonV2Entity (root)smmContactPersonV2Entity--
DirPartyTable (read-only)DirPartyTableInnerJoin (PartyNumber = AssociatedPartyNumber on smmContactPersonV2Entity)
VendTable (read-only)VendTableInnerJoin (Party = RecId on DirPartyTable, in the contact person's legal entity)

Fields (61; the two cross-reference key fields are not listed):

Entity FieldDataSource.DataField
AddressBookNamessmmContactPersonV2Entity.AddressBookNames
AlternateComplimentaryClosingPhrasesmmContactPersonV2Entity.AlternateComplimentaryClosingPhrase
AlternateSalutationPhrasesmmContactPersonV2Entity.AlternateSalutationPhrase
AnniversaryDaysmmContactPersonV2Entity.AnniversaryDay
AnniversaryMonthsmmContactPersonV2Entity.AnniversaryMonth
AnniversaryYearsmmContactPersonV2Entity.AnniversaryYear
AssistantNamesmmContactPersonV2Entity.AssistantName
AssistantPhoneNumbersmmContactPersonV2Entity.AssistantPhoneNumber
AssociatedPartyNumbersmmContactPersonV2Entity.AssociatedPartyNumber
AvailableFromTimesmmContactPersonV2Entity.AvailableFromTime
AvailableToTimesmmContactPersonV2Entity.AvailableToTime
BillingInformationsmmContactPersonV2Entity.BillingInformation
BirthDaysmmContactPersonV2Entity.BirthDay
BirthMonthsmmContactPersonV2Entity.BirthMonth
BirthYearsmmContactPersonV2Entity.BirthYear
ChildrenNamessmmContactPersonV2Entity.ChildrenNames
ContactActivitySensitivityLevelsmmContactPersonV2Entity.ContactActivitySensitivityLevel
ContactInformationLanguageIdsmmContactPersonV2Entity.ContactInformationLanguageId
ContactPersonIdsmmContactPersonV2Entity.ContactPersonId
ContactPersonNamesmmContactPersonV2Entity.ContactPersonName (ReadOnly)
ContactPersonPartyNumbersmmContactPersonV2Entity.ContactPersonPartyNumber (Internal)
ContactPersonPartyTypesmmContactPersonV2Entity.ContactPersonPartyType (Internal, ReadOnly)
ContactPersonResponsiblePersonnelNumbersmmContactPersonV2Entity.ContactPersonResponsiblePersonnelNumber
DecisionMakingRoleCodesmmContactPersonV2Entity.DecisionMakingRoleCode
DisplayNameSequencePatternNamesmmContactPersonV2Entity.DisplayNameSequencePatternName
ElectronicLocationIdsmmContactPersonV2Entity.ElectronicLocationId
EmploymentComputerNetworkNamesmmContactPersonV2Entity.EmploymentComputerNetworkName
EmploymentDepartmentsmmContactPersonV2Entity.EmploymentDepartment
EmploymentJobFunctionNamesmmContactPersonV2Entity.EmploymentJobFunctionName
EmploymentJobTitlesmmContactPersonV2Entity.EmploymentJobTitle
EmploymentOfficeLocationsmmContactPersonV2Entity.EmploymentOfficeLocation
EmploymentProfessionsmmContactPersonV2Entity.EmploymentProfession
FirstNamesmmContactPersonV2Entity.FirstName
FormattedPrimaryAddresssmmContactPersonV2Entity.FormattedPrimaryAddress
GendersmmContactPersonV2Entity.Gender
GovernmentIdentificationNumbersmmContactPersonV2Entity.GovernmentIdentificationNumber
HasRequestedInternetAccesssmmContactPersonV2Entity.HasRequestedInternetAccess
HobbiessmmContactPersonV2Entity.Hobbies
IdentityCardNumbersmmContactPersonV2Entity.IdentityCardNumber
InitialssmmContactPersonV2Entity.Initials
IsContactPersonExternallyMaintainedsmmContactPersonV2Entity.IsContactPersonExternallyMaintained
IsDefaultContactPersonsmmContactPersonV2Entity.IsDefaultContactPerson
IsImportedsmmContactPersonV2Entity.IsImported
IsInactivesmmContactPersonV2Entity.IsInactive
LastNamesmmContactPersonV2Entity.LastName
MiddleNamesmmContactPersonV2Entity.MiddleName
PrimaryAddressCitysmmContactPersonV2Entity.PrimaryAddressCity
PrimaryAddressCountryRegionIdsmmContactPersonV2Entity.PrimaryAddressCountryRegionId
PrimaryAddressCountryRegionISOCodesmmContactPersonV2Entity.PrimaryAddressCountryRegionISOCode
PrimaryAddressStateIdsmmContactPersonV2Entity.PrimaryAddressStateId
PrimaryAddressStreetsmmContactPersonV2Entity.PrimaryAddressStreet
PrimaryAddressZipCodesmmContactPersonV2Entity.PrimaryAddressZipCode
PrimaryEmailAddresssmmContactPersonV2Entity.PrimaryEmailAddress
PrimaryPhoneNumbersmmContactPersonV2Entity.PrimaryPhoneNumber
PrimaryFaxNumbersmmContactPersonV2Entity.PrimaryFaxNumber
PrimaryURLsmmContactPersonV2Entity.PrimaryURL
SearchNamesmmContactPersonV2Entity.SearchName
VendorAccountNumberVendTable.AccountNum
VendorDataAreaIdVendTable.DataAreaId

Entity Key: VendorAccountNumber, VendorDataAreaId, ContactPersonId

To update an existing vendor contact person through Data management, send VendorAccountNumber: the vendor's external key alone does not find the existing row.

Custom X++ Methods:

  • validateWrite - Resolves the external keys and the associated party before validating
  • persistEntity - Resolves the external keys and the associated party; skips validation on DisplayNameSequencePatternName (auto-generated field)
  • resolveExternalKeys - Resolves VendorAccountNumber from ExternalSystem + VendorAccountNumberExternalKey
  • resolveAssociatedParty - Sets AssociatedPartyNumber to the vendor account's party (in the row's legal entity) when it is not sent; refuses a different party
  • initializeEntityDataSource - Resolves smmContactPersonV2Entity buffer on update
  • mapEntityToDataSource - Maps entity fields to smmContactPersonV2Entity data source
  • resolveContactPersonEntity - Finds smmContactPersonV2Entity by ContactPersonId under the vendor account's party, in the row's legal entity

Sales​

MGCLatticeSalesConfirmationDocumentAttachmentEntity​

PropertyValue
Label@MGCLattice:SalesConfirmationDocumentAttachment
Read/WriteRead-Write
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticeSalesConfirmationDocumentAttachmentStaging
OData Entity NameLatticeSalesConfirmationDocumentAttachment
OData CollectionLatticeSalesConfirmationDocumentAttachments
Primary Company ContextActualCompanyId
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeRelations
DocuRefEntity (root)DocuRefEntity----
CustConfirmJourCustConfirmJourInnerJoin (read-only)RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity

Fields:

Entity FieldDataSource.DataField
DocumentIdDocuRefEntity.DocumentId
ActualCompanyIdDocuRefEntity.ActualCompanyId (Private)
DocumentAttachmentTypeCodeDocuRefEntity.TypeId
AttachmentDescriptionDocuRefEntity.Name
NotesDocuRefEntity.Notes
AccessRestrictionDocuRefEntity.Restriction
AttachmentDocuRefEntity.FileContents
FileNameDocuRefEntity.FileName
FileTypeDocuRefEntity.FileType
IsDefaultAttachmentDocuRefEntity.DefaultAttachment
SalesOrderNumberCustConfirmJour.SalesId
ConfirmationIdCustConfirmJour.ConfirmId
ConfirmationDateCustConfirmJour.ConfirmDate
CustomerAccountCustConfirmJour.OrderAccount
InvoiceAccountCustConfirmJour.InvoiceAccount

Entity Key: DocumentId

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • initializeEntityDataSource - Resolves the CustConfirmJour record the new attachment belongs to on insert
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves SalesOrderNumber from ExternalSystem + SalesOrderNumberExternalKey; a key that does not resolve is an error

MGCLatticeSalesPackingSlipDocumentAttachmentEntity​

PropertyValue
Label@MGCLattice:SalesPackingSlipDocumentAttachment
Read/WriteRead-Write
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticeSalesPackingSlipDocumentAttachmentStaging
OData Entity NameLatticeSalesPackingSlipDocumentAttachment
OData CollectionLatticeSalesPackingSlipDocumentAttachments
Primary Company ContextActualCompanyId
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeRelations
DocuRefEntity (root)DocuRefEntity----
CustPackingSlipJourCustPackingSlipJourInnerJoin (read-only)RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity

Fields:

Entity FieldDataSource.DataField
DocumentIdDocuRefEntity.DocumentId
ActualCompanyIdDocuRefEntity.ActualCompanyId (Private)
DocumentAttachmentTypeCodeDocuRefEntity.TypeId
AttachmentDescriptionDocuRefEntity.Name
NotesDocuRefEntity.Notes
AccessRestrictionDocuRefEntity.Restriction
AttachmentDocuRefEntity.FileContents
FileNameDocuRefEntity.FileName
FileTypeDocuRefEntity.FileType
IsDefaultAttachmentDocuRefEntity.DefaultAttachment
SalesOrderNumberCustPackingSlipJour.SalesId
PackingSlipIdCustPackingSlipJour.PackingSlipId
DeliveryDateCustPackingSlipJour.DeliveryDate
CustomerAccountCustPackingSlipJour.OrderAccount
InvoiceAccountCustPackingSlipJour.InvoiceAccount

Entity Key: DocumentId

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • initializeEntityDataSource - Resolves the CustPackingSlipJour record the new attachment belongs to on insert
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves SalesOrderNumber from ExternalSystem + SalesOrderNumberExternalKey; a key that does not resolve is an error

MGCLatticeSalesInvoiceDocumentAttachmentEntity​

PropertyValue
Label@MGCLattice:SalesInvoiceDocumentAttachment
Read/WriteRead-Write
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticeSalesInvoiceDocumentAttachmentStaging
OData Entity NameLatticeSalesInvoiceDocumentAttachment
OData CollectionLatticeSalesInvoiceDocumentAttachments
Primary Company ContextActualCompanyId
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeRelations
DocuRefEntity (root)DocuRefEntity----
CustInvoiceJourCustInvoiceJourInnerJoin (read-only)RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity

Fields:

Entity FieldDataSource.DataField
DocumentIdDocuRefEntity.DocumentId
ActualCompanyIdDocuRefEntity.ActualCompanyId (Private)
DocumentAttachmentTypeCodeDocuRefEntity.TypeId
AttachmentDescriptionDocuRefEntity.Name
NotesDocuRefEntity.Notes
AccessRestrictionDocuRefEntity.Restriction
AttachmentDocuRefEntity.FileContents
FileNameDocuRefEntity.FileName
FileTypeDocuRefEntity.FileType
IsDefaultAttachmentDocuRefEntity.DefaultAttachment
SalesOrderNumberCustInvoiceJour.SalesId
InvoiceIdCustInvoiceJour.InvoiceId
InvoiceDateCustInvoiceJour.InvoiceDate
CustomerAccountCustInvoiceJour.OrderAccount
InvoiceAccountCustInvoiceJour.InvoiceAccount

Entity Key: DocumentId

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • initializeEntityDataSource - Resolves the CustInvoiceJour record the new attachment belongs to on insert
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves SalesOrderNumber from ExternalSystem + SalesOrderNumberExternalKey; a key that does not resolve is an error

MGCLatticeIntercompanyOrderEntity​

PropertyValue
Label@MGCLattice:IntercompanyOrder
Read/WriteRead-Only
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticeIntercompanyOrderStaging
OData Entity NameLatticeIntercompanyOrder
OData CollectionLatticeIntercompanyOrders
Primary Company ContextDataAreaId
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeRanges
SalesTable (root)SalesTable-- (ReadOnly)InterCompanyOrder = 1

Fields:

Entity FieldDataSource.DataField
SalesOrderNumberSalesTable.SalesId
CustomerAccountSalesTable.CustAccount
InvoiceAccountSalesTable.InvoiceAccount
SalesOrderStatusSalesTable.SalesStatus
CurrencyCodeSalesTable.CurrencyCode
IntercompanyOrderSalesTable.InterCompanyOrder
IntercompanyLegalEntityIdSalesTable.InterCompanyCompanyId
IntercompanyPurchaseOrderNumberSalesTable.InterCompanyPurchId
IntercompanyOriginalSalesOrderNumberSalesTable.InterCompanyOriginalSalesId
IntercompanyDirectDeliverySalesTable.InterCompanyDirectDelivery
CreatedDateSalesTable.CreatedDateTime
DeliveryModeSalesTable.DlvMode

Entity Key: SalesOrderNumber


MGCLatticeIntercompanyPurchaseOrderEntity​

PropertyValue
Label@MGCLattice:IntercompanyPurchaseOrder
Read/WriteRead-Only
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticeIntercompanyPurchaseOrderStaging
OData Entity NameLatticeIntercompanyPurchaseOrder
OData CollectionLatticeIntercompanyPurchaseOrders
Primary Company ContextDataAreaId
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeRanges
PurchTable (root)PurchTable-- (ReadOnly)InterCompanyOrder = 1

Fields:

Entity FieldDataSource.DataField
PurchaseOrderNumberPurchTable.PurchId
VendorAccountNumberPurchTable.OrderAccount
InvoiceAccountPurchTable.InvoiceAccount
PurchaseOrderStatusPurchTable.PurchStatus
CurrencyCodePurchTable.CurrencyCode
IntercompanyOrderPurchTable.InterCompanyOrder
IntercompanyLegalEntityIdPurchTable.InterCompanyCompanyId
IntercompanySalesOrderNumberPurchTable.InterCompanySalesId
IntercompanyDirectDeliveryPurchTable.InterCompanyDirectDelivery
CreatedDatePurchTable.CreatedDateTime
DeliveryModePurchTable.DlvMode

Entity Key: PurchaseOrderNumber


Purchasing​

MGCLatticePurchaseOrderConfirmationDocumentAttachmentEntity​

PropertyValue
Label@MGCLattice:PurchOrderConfirmDocumentAttachment
Read/WriteRead-Write
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticePurchaseOrderConfirmationDocumentAttachmentStaging
OData Entity NameLatticePurchaseOrderConfirmationDocumentAttachment
OData CollectionLatticePurchaseOrderConfirmationDocumentAttachments
Primary Company ContextActualCompanyId
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeRelations
DocuRefEntity (root)DocuRefEntity----
VendPurchOrderJourVendPurchOrderJourInnerJoin (read-only)RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity

Fields:

Entity FieldDataSource.DataField
DocumentIdDocuRefEntity.DocumentId
ActualCompanyIdDocuRefEntity.ActualCompanyId (Private)
DocumentAttachmentTypeCodeDocuRefEntity.TypeId
AttachmentDescriptionDocuRefEntity.Name
NotesDocuRefEntity.Notes
AccessRestrictionDocuRefEntity.Restriction
AttachmentDocuRefEntity.FileContents
FileNameDocuRefEntity.FileName
FileTypeDocuRefEntity.FileType
IsDefaultAttachmentDocuRefEntity.DefaultAttachment
StorageProviderIdDocuRefEntity.StorageProviderId (Private)
PurchaseOrderNumberVendPurchOrderJour.PurchId
ConfirmationNumberVendPurchOrderJour.PurchOrderDocNum
ConfirmationDateVendPurchOrderJour.PurchOrderDate
VendorAccountNumberVendPurchOrderJour.OrderAccount

Entity Key: DocumentId

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • initializeEntityDataSource - Resolves the VendPurchOrderJour record the new attachment belongs to on insert
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves PurchaseOrderNumber from ExternalSystem + PurchaseOrderNumberExternalKey; a key that does not resolve is an error

MGCLatticePurchasePackingSlipDocumentAttachmentEntity​

PropertyValue
Label@MGCLattice:PurchPackingSlipDocumentAttachment
Read/WriteRead-Write
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticePurchasePackingSlipDocumentAttachmentStaging
OData Entity NameLatticePurchasePackingSlipDocumentAttachment
OData CollectionLatticePurchasePackingSlipDocumentAttachments
Primary Company ContextActualCompanyId
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeRelations
DocuRefEntity (root)DocuRefEntity----
VendPackingSlipJourVendPackingSlipJourInnerJoin (read-only)RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity

Fields:

Entity FieldDataSource.DataField
DocumentIdDocuRefEntity.DocumentId
ActualCompanyIdDocuRefEntity.ActualCompanyId (Private)
DocumentAttachmentTypeCodeDocuRefEntity.TypeId
AttachmentDescriptionDocuRefEntity.Name
NotesDocuRefEntity.Notes
AccessRestrictionDocuRefEntity.Restriction
AttachmentDocuRefEntity.FileContents
FileNameDocuRefEntity.FileName
FileTypeDocuRefEntity.FileType
IsDefaultAttachmentDocuRefEntity.DefaultAttachment
StorageProviderIdDocuRefEntity.StorageProviderId (Private)
PurchaseOrderNumberVendPackingSlipJour.PurchId
PackingSlipIdVendPackingSlipJour.PackingSlipId
DeliveryDateVendPackingSlipJour.DeliveryDate
VendorAccountNumberVendPackingSlipJour.OrderAccount

Entity Key: DocumentId

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • initializeEntityDataSource - Resolves the VendPackingSlipJour record the new attachment belongs to on insert
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves PurchaseOrderNumber from ExternalSystem + PurchaseOrderNumberExternalKey; a key that does not resolve is an error

MGCLatticePurchaseInvoiceDocumentAttachmentEntity​

PropertyValue
Label@MGCLattice:PurchInvoiceDocumentAttachment
Read/WriteRead-Write
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticePurchaseInvoiceDocumentAttachmentStaging
OData Entity NameLatticePurchaseInvoiceDocumentAttachment
OData CollectionLatticePurchaseInvoiceDocumentAttachments
Primary Company ContextActualCompanyId
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeRelations
DocuRefEntity (root)DocuRefEntity----
VendInvoiceJourVendInvoiceJourInnerJoin (read-only)RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity

Fields:

Entity FieldDataSource.DataField
DocumentIdDocuRefEntity.DocumentId
ActualCompanyIdDocuRefEntity.ActualCompanyId (Private)
DocumentAttachmentTypeCodeDocuRefEntity.TypeId
AttachmentDescriptionDocuRefEntity.Name
NotesDocuRefEntity.Notes
AccessRestrictionDocuRefEntity.Restriction
AttachmentDocuRefEntity.FileContents
FileNameDocuRefEntity.FileName
FileTypeDocuRefEntity.FileType
IsDefaultAttachmentDocuRefEntity.DefaultAttachment
PurchaseOrderNumberVendInvoiceJour.PurchId
InvoiceIdVendInvoiceJour.InvoiceId
InvoiceDateVendInvoiceJour.InvoiceDate
VendorAccountNumberVendInvoiceJour.OrderAccount
InvoiceAccountVendInvoiceJour.InvoiceAccount

Entity Key: DocumentId

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • initializeEntityDataSource - Resolves the VendInvoiceJour record the new attachment belongs to on insert
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves PurchaseOrderNumber from ExternalSystem + PurchaseOrderNumberExternalKey; a key that does not resolve is an error

MGCLatticePurchaseReceiptsListDocumentAttachmentEntity​

PropertyValue
Label@MGCLattice:PurchReceiptsListDocumentAttachment
Read/WriteRead-Write
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticePurchaseReceiptsListDocumentAttachmentStaging
OData Entity NameLatticePurchaseReceiptsListDocumentAttachment
OData CollectionLatticePurchaseReceiptsListDocumentAttachments
Primary Company ContextActualCompanyId
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeRelations
DocuRefEntity (root)DocuRefEntity----
VendReceiptsListJourVendReceiptsListJourInnerJoin (read-only)RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity

Fields:

Entity FieldDataSource.DataField
DocumentIdDocuRefEntity.DocumentId
ActualCompanyIdDocuRefEntity.ActualCompanyId (Private)
DocumentAttachmentTypeCodeDocuRefEntity.TypeId
AttachmentDescriptionDocuRefEntity.Name
NotesDocuRefEntity.Notes
AccessRestrictionDocuRefEntity.Restriction
AttachmentDocuRefEntity.FileContents
FileNameDocuRefEntity.FileName
FileTypeDocuRefEntity.FileType
IsDefaultAttachmentDocuRefEntity.DefaultAttachment
StorageProviderIdDocuRefEntity.StorageProviderId (Private)
PurchaseOrderNumberVendReceiptsListJour.PurchId
ReceiptsListIdVendReceiptsListJour.ReceiptsListId
VendorAccountNumberVendReceiptsListJour.VendAccount

Entity Key: DocumentId

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • initializeEntityDataSource - Resolves the VendReceiptsListJour record the new attachment belongs to on insert
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves PurchaseOrderNumber from ExternalSystem + PurchaseOrderNumberExternalKey; a key that does not resolve is an error

Order Lines​

How a line is identified. A sales order line, return order line or sales quotation line is identified by its inventory lot id (InventoryLotId, the line's InventTransId) in every Lattice entity that keys on one line: LatticeSalesOrderLines, LatticeSalesOrderLineCharges, LatticeOpenSalesOrderLines, LatticeIntercompanyOrderLines and the sales order, return order and sales quotation line cross-reference entities. The order number and line number are returned as ordinary fields but are not unique: lines created by Commerce statement posting all carry line number 0. Purchase order lines are identified by PurchaseOrderNumber + LineNumber, which Microsoft keeps unique for purchase lines; LatticePurchaseOrderLines keys on InventoryLotId as Microsoft's purchase order line entity does, and both forms address the same line.

MGCLatticeSalesOrderLineEntity​

PropertyValue
Label@MGCLattice:SalesOrderLine
Read/WriteRead-Write
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticeSalesOrderLineStaging
OData Entity NameLatticeSalesOrderLine
OData CollectionLatticeSalesOrderLines
Primary Company ContextDataAreaId
TagsSales

Data Sources:

Data SourceTableJoin Type
SalesLine (root)SalesLine-- (DynamicFields=Yes)
InventDimInventDimOuterJoin (via InventDim relation on SalesLine)

Fields:

Entity FieldDataSource.DataField
SalesOrderNumberSalesLine.SalesId
LineNumberSalesLine.LineNum
ItemNumberSalesLine.ItemId
OrderedSalesQuantitySalesLine.QtyOrdered
SalesPriceSalesLine.SalesPrice
LineAmountSalesLine.LineAmount
CurrencyCodeSalesLine.CurrencyCode
SalesUnitSymbolSalesLine.SalesUnit
SalesStatusSalesLine.SalesStatus
RequestedReceiptDateSalesLine.ShippingDateRequested
ShippingSiteIdInventDim.InventSiteId
ShippingWarehouseIdInventDim.InventLocationId
InventoryLotIdSalesLine.InventTransId

Entity Key: InventoryLotId

Design Notes:

  • Uses DynamicFields=Yes on the root SalesLine data source for performance
  • InventDim is joined as a read-only outer join to provide site/warehouse dimensions without blocking records that lack InventDim
  • ShippingSiteId/ShippingWarehouseId set the line's site and warehouse on create and update (mapEntityToDataSource resolves the line's inventory dimension); a warehouse sent without a site uses the warehouse's site
  • The staging key is InventoryLotId. To import new lines through Data management, send a lot ID per row or set the InventoryLotId mapping to auto-generated; a lot ID that is sent is kept
  • Resolves the sales order and item from ExternalSystem + SalesOrderNumberExternalKey / ItemNumberExternalKey before the line is written
  • Lightweight alternative to the standard SalesOrderLineV2Entity for high-volume OData reads

MGCLatticePurchaseOrderLineEntity​

PropertyValue
Label@MGCLattice:PurchaseOrderLine
Read/WriteRead-Write
Configuration KeyLedgerBasic
Entity CategoryDocument
Staging TableMGCLatticePurchaseOrderLineStaging
OData Entity NameLatticePurchaseOrderLine
OData CollectionLatticePurchaseOrderLines
Primary Company ContextDataAreaId

Data Sources:

Data SourceTableJoin Type
PurchLine (root)PurchLine-- (DynamicFields=Yes)
InventDimInventDimOuterJoin (via InventDim relation on PurchLine)

Fields:

Entity FieldDataSource.DataField
PurchaseOrderNumberPurchLine.PurchId
LineNumberPurchLine.LineNumber
ItemNumberPurchLine.ItemId
OrderedPurchaseQuantityPurchLine.PurchQty
PurchasePricePurchLine.PurchPrice
LineAmountPurchLine.LineAmount
CurrencyCodePurchLine.CurrencyCode
PurchaseUnitSymbolPurchLine.PurchUnit
PurchaseStatusPurchLine.PurchStatus
RequestedDeliveryDatePurchLine.DeliveryDate
ReceivingSiteIdInventDim.InventSiteId
ReceivingWarehouseIdInventDim.InventLocationId
InventoryLotIdPurchLine.InventTransId

Entity Key: InventoryLotId

Design Notes:

  • Uses DynamicFields=Yes on the root PurchLine data source for performance
  • InventDim is joined as a read-only outer join to provide site/warehouse dimensions without blocking records that lack InventDim
  • ReceivingSiteId/ReceivingWarehouseId set the line's site and warehouse on create and update (mapEntityToDataSource resolves the line's inventory dimension); a warehouse sent without a site uses the warehouse's site
  • Resolves the purchase order and item from ExternalSystem + PurchaseOrderNumberExternalKey / ItemNumberExternalKey before the line is written
  • Lightweight alternative to the standard PurchaseOrderLineV2Entity for high-volume OData reads

Document Attachments -- Master Data​

MGCLatticeCustomerDocumentAttachmentEntity​

PropertyValue
Read/WriteRead-Write
Entity CategoryDocument
Staging TableMGCLatticeCustomerDocumentAttachmentStaging
OData Entity NameLatticeCustomerDocumentAttachment
OData CollectionLatticeCustomerDocumentAttachments
Primary Company ContextActualCompanyId

Data Sources:

Data SourceTableJoin Type
DocuRefEntity (root)DocuRefEntity--
CustTableCustTableInnerJoin (read-only) (RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity)

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves CustomerAccount from ExternalSystem + CustomerAccountExternalKey; a key that does not resolve is an error

MGCLatticeFreeTextInvoiceDocumentAttachmentEntity​

PropertyValue
Read/WriteRead-Write
Entity CategoryDocument
Staging TableMGCLatticeFreeTextInvoiceDocumentAttachmentStaging
OData Entity NameLatticeFreeTextInvoiceDocumentAttachment
OData CollectionLatticeFreeTextInvoiceDocumentAttachments
Primary Company ContextActualCompanyId

Data Sources:

Data SourceTableJoin Type
DocuRefEntity (root)DocuRefEntity--
CustInvoiceTableCustInvoiceTableInnerJoin (read-only) (RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity)

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • initializeEntityDataSource - Resolves the CustInvoiceTable record the new attachment belongs to on insert
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves InvoiceId from ExternalSystem + InvoiceIdExternalKey; a key that does not resolve is an error

MGCLatticeProjectDocumentAttachmentEntity​

PropertyValue
Read/WriteRead-Write
Entity CategoryDocument
Staging TableMGCLatticeProjectDocumentAttachmentStaging
OData Entity NameLatticeProjectDocumentAttachment
OData CollectionLatticeProjectDocumentAttachments
Primary Company ContextActualCompanyId

Data Sources:

Data SourceTableJoin Type
DocuRefEntity (root)DocuRefEntity--
ProjTableProjTableInnerJoin (read-only) (RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity)

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves ProjectId from ExternalSystem + ProjectIdExternalKey; a key that does not resolve is an error

Document Attachments -- Manufacturing​

MGCLatticeProductionOrderDocumentAttachmentEntity​

PropertyValue
Read/WriteRead-Write
Entity CategoryDocument
Staging TableMGCLatticeProductionOrderDocumentAttachmentStaging
OData Entity NameLatticeProductionOrderDocumentAttachment
OData CollectionLatticeProductionOrderDocumentAttachments
Primary Company ContextActualCompanyId

Data Sources:

Data SourceTableJoin Type
DocuRefEntity (root)DocuRefEntity--
ProdTableProdTableInnerJoin (read-only) (RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity)

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves ProductionOrderNumber from ExternalSystem + ProductionOrderNumberExternalKey; a key that does not resolve is an error

MGCLatticeQualityOrderDocumentAttachmentEntity​

PropertyValue
Read/WriteRead-Write
Entity CategoryDocument
Staging TableMGCLatticeQualityOrderDocumentAttachmentStaging
OData Entity NameLatticeQualityOrderDocumentAttachment
OData CollectionLatticeQualityOrderDocumentAttachments
Primary Company ContextActualCompanyId

Data Sources:

Data SourceTableJoin Type
DocuRefEntity (root)DocuRefEntity--
InventQualityOrderTableInventQualityOrderTableInnerJoin (read-only) (RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity)

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company

Document Attachments -- Transfer​

MGCLatticeTransferOrderDocumentAttachmentEntity​

PropertyValue
Read/WriteRead-Write
Entity CategoryDocument
Staging TableMGCLatticeTransferOrderDocumentAttachmentStaging
OData Entity NameLatticeTransferOrderDocumentAttachment
OData CollectionLatticeTransferOrderDocumentAttachments
Primary Company ContextActualCompanyId

Data Sources:

Data SourceTableJoin Type
DocuRefEntity (root)DocuRefEntity--
InventTransferTableInventTransferTableInnerJoin (read-only) (RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity)

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves TransferOrderNumber from ExternalSystem + TransferOrderNumberExternalKey; a key that does not resolve is an error

MGCLatticeTransferOrderLineDocumentAttachmentEntity​

PropertyValue
Read/WriteRead-Write
Entity CategoryDocument
Staging TableMGCLatticeTransferOrderLineDocumentAttachmentStaging
OData Entity NameLatticeTransferOrderLineDocumentAttachment
OData CollectionLatticeTransferOrderLineDocumentAttachments
Primary Company ContextActualCompanyId

Data Sources:

Data SourceTableJoin Type
DocuRefEntity (root)DocuRefEntity--
InventTransferLineInventTransferLineInnerJoin (read-only) (RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity)

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves TransferOrderNumber from ExternalSystem + TransferOrderNumberExternalKey and LineNumber from ExternalSystem + LineNumberExternalKey; a key that does not resolve is an error

Document Attachments -- Purchase Order Lines​

MGCLatticePurchaseOrderLineDocumentAttachmentEntity​

PropertyValue
Read/WriteRead-Write
Entity CategoryDocument
Staging TableMGCLatticePurchaseOrderLineDocumentAttachmentStaging
OData Entity NameLatticePurchaseOrderLineDocumentAttachment
OData CollectionLatticePurchaseOrderLineDocumentAttachments
Primary Company ContextActualCompanyId

Data Sources:

Data SourceTableJoin Type
DocuRefEntity (root)DocuRefEntity--
PurchLinePurchLineInnerJoin (read-only) (RefTableId = TableId, RefRecId = RecId, RefCompanyId = DataAreaId on DocuRefEntity)

Custom X++ Methods:

  • postLoad - Loads the file content from Document Management into the Attachment field, in the attachment's own company
  • validateWrite - Resolves the external keys before validating, so an id sent only as an external key counts as filled in
  • persistEntity - Resolves the external keys before any data source is written
  • resolveExternalKeys - Resolves PurchaseOrderNumber from ExternalSystem + PurchaseOrderNumberExternalKey and LineNumber from ExternalSystem + LineNumberExternalKey; a key that does not resolve is an error

Inventory & Product (High-Performance)​

MGCLatticeInventOnHandEntity​

PropertyValue
Label@MGCLattice:InventOnHand
Read/WriteRead-Only
Configuration Key(none)
Entity CategoryTransaction
Staging TableMGCLatticeInventOnHandStaging
OData Entity NameLatticeInventoryOnHand
OData CollectionLatticeInventoryOnHands
Primary Company ContextDataAreaId
TagsInventory
ModulesInventory
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeDynamicFieldsRanges
InventSum (root)InventSum-- (ReadOnly)NoClosed = 0 (open rows only)
InventDimInventDimOuterJoin (via InventDim relation on InventSum)No--

Fields:

Entity FieldDataSource.DataField
ItemNumberInventSum.ItemId
InventoryDimensionIdInventSum.InventDimId
PhysicalInventoryQuantityInventSum.PhysicalInvent
PhysicalReservedQuantityInventSum.ReservPhysical
PickedQuantityInventSum.Picked
ReceivedQuantityInventSum.Received
DeductedQuantityInventSum.Deducted
OnOrderQuantityInventSum.OnOrder
OrderedQuantityInventSum.Ordered
InventorySiteIdInventDim.InventSiteId
InventoryWarehouseIdInventDim.InventLocationId
WarehouseLocationIdInventDim.wMSLocationId
InventoryBatchIdInventDim.InventBatchId
InventoryStatusIdInventDim.InventStatusId
LicensePlateIdInventDim.LicensePlateId

Entity Key: ItemNumber, InventoryDimensionId

Design Notes:

  • DynamicFields=No on both data sources with an explicit minimal field projection -- SQL selects only the mapped columns, minimizing I/O for high-volume snapshot feeds.
  • Read-only (IsReadOnly=Yes) -- no write or validation overhead.
  • Baked-in range Closed == 0 on InventSum restricts the feed to open (non-closed) inventory rows, producing smaller result sets.
  • InventDim is an outer join so on-hand rows are never dropped if the dimension record is missing.
  • Key (ItemNumber + InventoryDimensionId) aligns with the InventSum primary index for efficient $skiptoken keyset paging.
  • Designed to have change tracking enabled (VS designer, "Enable entire entity") for incremental delta export.
  • No custom X++ business logic methods.
  • Workload: high-volume on-hand snapshot feeds -- WMS/3PL stock sync, e-commerce inventory, ATP, BI. A lean alternative to the heavy standard on-hand entities.

MGCLatticeReleasedProductEntity​

PropertyValue
Label@MGCLattice:ReleasedProduct
Read/WriteRead-Only
Configuration Key(none)
Entity CategoryMaster
Staging TableMGCLatticeReleasedProductStaging
OData Entity NameLatticeReleasedProduct
OData CollectionLatticeReleasedProducts
Primary Company ContextDataAreaId
FormRefEcoResProductDetailsExtended
TagsInventory
ModulesInventory
SubscriberAccessLevelRead=Allow

Data Sources:

Data SourceTableJoin TypeDynamicFieldsRanges
InventTable (root)InventTable--No--
InventTableModuleInventTableModuleInnerJoin (ItemId = ItemId on InventTable)NoModuleType = Invent
EcoResProductTranslationEcoResProductTranslationOuterJoin (Product = Product on InventTable)NoLanguageId = en-us

Fields:

Entity FieldDataSource.DataField
ItemNumberInventTable.ItemId
SearchNameInventTable.NameAlias
ProductTypeInventTable.ItemType
InventoryUnitSymbolInventTableModule.UnitId
ProductNameEcoResProductTranslation.Name
ProductDescriptionEcoResProductTranslation.Description

Entity Key: ItemNumber

Design Notes:

  • DynamicFields=No on all data sources with an explicit minimal field projection.
  • Read-only (IsReadOnly=Yes) -- no write or validation overhead.
  • InventTableModule is inner-joined with a baked-in range ModuleType == Invent to surface the inventory unit of measure.
  • EcoResProductTranslation is outer-joined with a fixed range LanguageId == en-us, so ProductName and ProductDescription are the product's en-us translation, and products without one keep their row with empty values. A product that has no en-us translation (for example in a company that maintains product names only in another language) shows empty values; read the translations through Microsoft's product translation entity instead. The language is fixed because a language key would return one row per translation.
  • Designed to have change tracking enabled (VS designer, "Enable entire entity") for incremental delta export.
  • No custom X++ business logic methods.
  • Workload: lean catalog/PIM/storefront sync. Not a replacement for the full released-product entity.

Composite Entities​

MGCLatticeCustomerPackingSlipsEntity​

PropertyValue
Label@MGCLattice:CustomerPackingSlipHeaderAndLines
Read/WriteRead-Only
Entity CategoryTransaction
TypeComposite

Structure:

LevelEntityRelation
RootMGCLatticeCustomerPackingSlipJournalHeaderEntity--
ChildMGCLatticeCustomerPackingSlipJournalLinesEntityMGCLatticeCustomerPackingSlipJournalHeaderEntity (on SalesOrderNumber, PackingSlipId, DeliveryDate)