Lattice -- Data Entity Catalog
Lattice is a Microsoft Dynamics 365 Finance & Operations package published by Magicite. This catalog covers its data entities: the Lattice model provides 149 data entities plus 1 composite entity. 133 of them expose ERP data through OData and, for 116 of them, the Data Management Framework (DMF); 15 are set-based import entities, import-only through DMF. All entity OData collection names use the Lattice prefix (e.g., LatticeCustomerContactInfos). Every DMF-enabled entity has a dedicated staging table, and the entities with custom X++ business logic are listed under Summary Statistics.
Cross-reference keys. 33 entities maintain the keys other systems use for D365 records; see Cross-Reference Keys and Cross-reference keys. Twenty more entities also accept
ExternalSystemand...ExternalKeyfields that accept an external key in place of a lookup value (sales and purchase order lines, the free text invoice template line, payment requests, the vendor contact person and the document attachment entities). Their staging tables carry the same columns: after the database sync, regenerate the mappings of the data projects that use them.
This catalog is organized by functional area. Each entity table lists the OData collection name, read/write access, a description of what the entity exposes, the recommended integration scenario, and a concrete business use case.
Table of Contents
- Contact & Address
- Finance Transactions
- General Ledger & Tax
- General Ledger & Period Close Setup
- Accounts Receivable Setup
- Accounts Payable
- Payment Requests
- Customer Packing Slips
- Intercompany Orders
- Intercompany Order Lines
- Order Lines
- Sales Order Charges
- Sales & Procurement Setup
- Trade Agreements
- Inventory & Product (High-Performance)
- Inventory & Supply Chain Transactions
- Product & Inventory Setup
- Warehouse Management
- Warehouse Mobile Device Setup
- Production & Projects
- Project Management
- Sales & Marketing
- Retail
- Human Resources
- Document Attachments -- Sales
- Document Attachments -- Purchase
- Document Attachments -- Vendor
- Document Attachments -- Master & Manufacturing
- Document Attachments -- Transfer
- General-Purpose Document Attachments
- Integration Monitoring
- Data Management & Migration Planning
- Set-Based Import Entities
- Cross-Reference Keys
- Composite Entities
- OData Navigation Properties
- Summary Statistics
Contact & Address
Customer and vendor contact information and contact person records.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeCustomerContactInfoEntity | LatticeCustomerContactInfos | Read/Write | Exposes customer contact information (phone, email, fax) without requiring knowledge of the party number; resolves party number automatically from the customer account. | Data migration, master data sync | A distributor migrating from a legacy ERP imports all customer phone numbers and email addresses into D365 using customer account numbers, without needing to look up party numbers first. |
| MGCLatticeCustomerContactPersonEntity | LatticeCustomerContactPersons | Read/Write | Exposes customer contact person records with full demographic and employment details. 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. On update, the existing contact person is found by its ID under the customer account's party, in the row's legal entity. Key: CustomerAccount + CustomerDataAreaId + ContactPersonId. | Data migration, CRM integration | A manufacturer syncs contact persons from Salesforce CRM into D365 by customer account, so the contacts attach to the right customer for sales follow-up and order communication. |
| MGCLatticeVendorContactInfoEntity | LatticeVendorContactInfos | Read/Write | Exposes vendor contact information (phone, email, fax) without requiring knowledge of the party number; resolves party number automatically from the vendor account. | Data migration, master data sync | A procurement team imports vendor phone numbers and email addresses from a legacy purchasing system during an ERP migration, using vendor account numbers as the key. |
| MGCLatticeVendorContactPersonEntity | LatticeVendorContactPersons | Read/Write | Exposes vendor contact person records with demographic and employment details. 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. On update, the existing contact person is found by its ID under the vendor account's party, in the row's legal entity. To update an existing contact person through Data management, send VendorAccount: the vendor's external key alone does not find the existing row. Key: VendorAccount + VendorDataAreaId + ContactPersonId. | Data migration, supplier management | A global sourcing team loads vendor contact persons (buyer contacts, account managers) from a supplier portal export into D365 for all active vendors. |
Finance Transactions
Read-only, lean feeds of posted ledger, bank, customer and fixed asset transactions for reporting, reconciliation and data-warehouse export, each keyed on the source record ID and enabled for both OData and Data management.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeGeneralLedgerEntryEntity | LatticeGeneralLedgerEntries | Read-only | Exposes posted general ledger lines (GeneralJournalAccountEntry) with the voucher, accounting date and journal number of their journal entry (GeneralJournalEntry), posting type, main account, ledger dimension display value, description, and amounts in transaction, accounting and reporting currency. The entity is shared across companies and returns lines from every legal entity; the LegalEntityId column (the legal entity that owns the ledger, from Ledger.PrimaryForLegalEntity) tells them apart and can be filtered, for example $filter=LegalEntityId eq 'USMF'. Key: GeneralJournalAccountEntryRecId. | Nightly export to a data warehouse or BYOD | A finance data team at a single-company distributor exports each day's posted ledger lines (voucher, main account, dimension string and amounts) into its data warehouse for daily P&L reporting. |
| MGCLatticeBankAccountTransactionEntity | LatticeBankAccountTransactions | Read-only | Exposes bank account transactions (BankAccountTrans) with bank account, date, voucher, bank transaction type, description, reconciled flag, amounts in accounting and transaction currency, and the bank account name (BankAccountTable, outer join). Key: SysRecId (record ID). | Treasury reconciliation feed, cash reporting | Each morning a treasury analyst's cash-management tool pulls the bank account transactions that are not yet reconciled and matches them against the bank's statement file. |
| MGCLatticeCustomerTransactionEntity | LatticeCustomerTransactions | Read-only | Exposes posted customer transactions (CustTrans) with customer account, voucher, transaction type, date, due date, invoice, document number, payment reference, closed date, amounts and settled amounts, plus the remaining open amount in both currencies, summed over the transaction's open records (CustTransOpen), so a transaction with several open installments is still one row and a fully settled transaction shows 0. Key: SysRecId (record ID). | Receivables extract, collections tooling | A collections platform pulls the customer invoices that still have an open balance every night and prioritizes follow-up calls by due date and remaining amount. |
| MGCLatticeCustomerSettlementEntity | LatticeCustomerSettlements | Read-only | Exposes customer settlement history (CustSettlement): which customer transaction was settled against which offset transaction (record ID, voucher, account and company), the settlement date and voucher, due and closed dates, settled amounts in accounting and transaction currency, and whether the settlement can be reversed. Key: SysRecId (record ID). | Cash application reconciliation, DSO reporting | A shared-services team exports each day's settlements to see which invoices were closed by which payments and feeds the result into its days-sales-outstanding report. |
| MGCLatticeFixedAssetTransactionEntity | LatticeFixedAssetTransactions | Read-only | Exposes fixed asset transactions per book (AssetTrans), such as acquisition, depreciation and disposal, with date, voucher, description, amounts, consumption units, and the posting layer of the book (AssetBookTable, outer join). Key: SysRecId (record ID). | Fixed asset subledger export, tax reconciliation | At year-end a tax department exports the depreciation transactions of its financial and tax books to reconcile the two in its tax provision software. |
General Ledger & Tax
Trial balance snapshots and posted sales tax and withholding tax transactions.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeTrialBalanceEntity | LatticeTrialBalances | Read-only | Exposes trial balance snapshot data (LedgerTrialBalanceSnapshotData with its snapshot header, ledger, fiscal year and fiscal period): per account and dimension combination and period, the opening balance, debit, credit, net change, closing adjustments and closing balance in accounting currency, posting layer, main account category and dimension values 1 to 11, with ledger name, fiscal year, period name, type and dates, and snapshot status. Shared across companies, so it covers every ledger; data exists only for snapshots created on the standard Trial balance snapshots page. Key: SnapshotDataRecId. | Financial reporting, consolidation, BI | A group reporting tool loads the latest trial balance snapshot of every legal entity's ledger at month end to feed its consolidation, instead of recalculating balances from ledger entries. |
| MGCLatticeTaxTransactionEntity | LatticeTaxTransactions | Read-only | Exposes posted sales tax transactions (TaxTrans) with sales tax code, direction, date, voucher, sales tax group and item sales tax group, tax and base amounts in accounting currency, tax amount in transaction currency, tax rate value and currency. Key: SysRecId. | Tax reporting, reconciliation | An indirect-tax reporting tool extracts each month's posted sales tax transactions to prepare VAT returns and reconcile tax by voucher to the general ledger. |
| MGCLatticeWithholdingTaxTransactionEntity | LatticeWithholdingTaxTransactions | Read-only | Exposes withholding tax transactions (TaxWithholdTrans) with vendor or customer account, invoice, invoice amount, base amount and withheld amount in invoice currency, journal number, competence date and withholding tax code. Key: SysRecId. | Tax compliance, year-end reporting | An accounts payable team exports withholding tax transactions at year end to prepare vendor withholding certificates and reconcile the amounts withheld per tax code. |
General Ledger & Period Close Setup
Financial period close setup (closing calendars, roles, resources and task areas), shared across legal entities, and the per-company general ledger parameters, for moving configuration between environments and checking it against a baseline.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeGeneralLedgerParametersEntity | LatticeGeneralLedgerParameters | Read/Write | Exposes the general ledger parameters (LedgerParameters), one row per legal entity: voucher and continuous-number checks, maximum penny differences in accounting and reporting currency, year-end transfer options, posting definitions, error-account interruption, summary account dimension values, and reverse-opposite-sign and journal sorting settings. Key: GeneralLedgerParametersKey. | Configuration baselines, environment setup over OData | After every environment refresh, an implementation team reads the general ledger parameters of all legal entities and compares them with its approved baseline to catch configuration drift. |
| MGCLatticePeriodCloseCalendarEntity | LatticePeriodCloseCalendars | Read/Write | Exposes financial period close closing calendars (LedgerPeriodCloseCalendar): calendar ID, name, start date and end date. Shared across legal entities. Key: Calendar. | Configuration migration between environments | A finance operations lead creates next year's monthly and quarterly closing calendars in the test environment and moves them to production in a data package. |
| MGCLatticePeriodCloseRoleEntity | LatticePeriodCloseRoles | Read/Write | Exposes financial period close closing roles (LedgerPeriodCloseRole) with name and description. Shared across legal entities. Key: ClosingRoleName. | Configuration migration between environments | A shared-services center defines closing roles such as AP accountant, AR accountant and controller once and imports them into each new environment. |
| MGCLatticePeriodCloseResourceEntity | LatticePeriodCloseResources | Read/Write | Exposes financial period close resources (LedgerPeriodCloseWorker), identified by the worker's personnel number rather than an internal record ID, with the task visibility setting (all tasks or assigned tasks only). A resource is added for an existing worker named by WorkerPersonnelNumber; the worker is never created or changed, and an unknown personnel number is refused. Role assignments are not included. Shared across legal entities. Key: WorkerPersonnelNumber. | Onboarding sync from HR, configuration migration | When accountants join the finance team, an onboarding integration adds them as period close resources by personnel number, set to see only the tasks assigned to them. |
| MGCLatticePeriodCloseTaskAreaEntity | LatticePeriodCloseTaskAreas | Read/Write | Exposes financial period close task areas (LedgerPeriodCloseArea) with name and description. Shared across legal entities. Key: TaskAreaName. | Configuration migration between environments | While building its close schedule, a controller's team loads task areas such as Accounts payable, Fixed assets and Consolidation in one import. |
Accounts Receivable Setup
Writable setup entities for free text invoice templates and customer summary update settings, suited to bulk maintenance and to moving configuration between environments.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeFreeTextInvoiceTemplateEntity | LatticeFreeTextInvoiceTemplates | Read/Write | Exposes free text invoice template headers (CustInvoiceTemplate): name, description, currency, language, posting profile, sales tax groups, terms and method of payment, payment schedule and specification, cash discount, delivery terms and the prices-include-sales-tax setting. Default financial dimensions are returned as a display value for reference and cannot be set through the entity; template charges are not included. Key: TemplateName. | Configuration migration between environments | A billing team copies its recurring-service invoice templates from the test environment to production in a data package instead of re-keying currency, payment terms and tax groups. |
| MGCLatticeFreeTextInvoiceTemplateLineEntity | LatticeFreeTextInvoiceTemplateLines | Read/Write | Exposes the standard lines of free text invoice templates (CustInvoiceStandardLineTemplate), linked to their template by template name: description, invoice text, quantity, unit price, amount, sales tax groups and project defaults. A line is added to an existing template named by TemplateName; the template is never created or changed, and an unknown template name is refused. The ledger account and default dimensions are returned as display values for reference and cannot be set through the entity. Key: TemplateName + LineNumber. | Template audits, bulk line maintenance | Ahead of a sales tax change, a billing analyst exports every template line with its ledger account and tax groups, then imports corrected item sales tax groups for the affected lines. |
| MGCLatticeCustomerSummaryUpdateParametersEntity | LatticeCustomerSummaryUpdateParameters | Read/Write | Exposes the customer summary update settings (SalesJournalAutoSummary): for each customer account or sales order and each document type (for example confirmation, packing slip or invoice), whether the document is summary-updated. Importing a row whose key matches an existing setting updates that setting instead of creating a duplicate. Key: CustomerAccount + ModuleType + SalesOrderId + DocumentType. | Bulk configuration via Data management | Before go-live, an accounts receivable lead imports summary update settings for 400 wholesale customers so that orders shipped in the same week can be invoiced together on one invoice. |
Accounts Payable
Posted vendor transactions and settlements for aging, reconciliation and payment reporting.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeVendorTransactionEntity | LatticeVendorTransactions | Read-only | Exposes posted vendor transactions (VendTrans) with voucher, transaction type, date, due date, invoice, document number, closed date, amounts in accounting and transaction currency, currency and settled amounts, plus the remaining open amounts, summed over the transaction's open records (VendTransOpen), so a transaction with several open installments is still one row and a fully settled transaction shows 0. Key: SysRecId. | AP aging, subledger reconciliation, BI | A finance data warehouse pulls vendor transactions nightly to build an AP aging report from due dates and remaining open amounts, and to reconcile the vendor subledger to the general ledger. |
| MGCLatticeVendorSettlementEntity | LatticeVendorSettlements | Read-only | Exposes vendor settlement records (VendSettlement): the settled transaction and its offset (record references, vouchers, accounts and companies), settlement voucher, settlement, due and closed dates, settled amounts in accounting and transaction currency, and whether the settlement can be reversed. Key: SysRecId. | Payment reconciliation, AP reporting | A treasury team exports vendor settlements each day to match payments to the invoices they paid, including settlements against transactions in another legal entity. |
Payment Requests
Cash flow management payment requests and their lines, readable and writable through OData and Data management, with the company taken from the payment request company field.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticePaymentRequestEntity | LatticePaymentRequests | Read/Write | Exposes cash flow management payment request headers (CFMPaymentRequestTable): request ID, due and payment dates, request status and workflow status, account type (vendor, customer or worker) and account, currency and payment currency, and the payment request company and treasury company. Key: PaymentRequestId. | Treasury planning feed, status sync with a payment portal | Each morning a central treasury team pulls confirmed and scheduled payment requests from all subsidiaries to plan the day's payment runs by due date and currency. |
| MGCLatticePaymentRequestLineEntity | LatticePaymentRequestLines | Read/Write | Exposes payment request lines (CFMPaymentRequestLine), linked to their header by payment request ID: line number, original amount, amount to pay, and sales tax groups. Key: PaymentRequestId + LineNumber. | Treasury planning feed (with the header entity) | Alongside the headers, the same treasury feed pulls each request's lines to compare the original amount with the amount to pay before approving partial payments. |
Customer Packing Slips
Customer packing slip journal headers and lines for shipment reporting.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeCustomerPackingSlipJournalHeaderEntity | LatticeCustomerPackingSlipJournalHeaders | Read-only | Exposes customer packing slip journal headers (CustPackingSlipJour) with delivery address, financial dimensions, order taker, shipping carrier, and bill of lading details. | DMF export, warehouse reporting | A logistics team exports daily packing slip headers to a data warehouse to track shipment volumes, delivery performance, and carrier utilization by customer. |
| MGCLatticeCustomerPackingSlipJournalLinesEntity | LatticeCustomerPackingSlipJournalLines | Read-only | Exposes customer packing slip journal line details (CustPackingSlipTrans) including item, quantity, inventory dimensions, delivery address, and financial dimensions. | DMF export, order fulfillment reporting | A warehouse manager exports packing slip line data to analyze pick accuracy, comparing ordered versus shipped quantities at the item and batch level. |
Intercompany Orders
Intercompany sales and purchase order records with cross-entity linkage metadata.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeIntercompanyOrderEntity | LatticeIntercompanyOrders | Read-only | Exposes intercompany sales order records from SalesTable, filtered to intercompany orders only, with linkage metadata to the corresponding purchase order in the other legal entity. | Intercompany reconciliation, reporting | A corporate controller queries intercompany sales orders across legal entities to reconcile intercompany revenue and verify elimination entries during month-end close. |
| MGCLatticeIntercompanyPurchaseOrderEntity | LatticeIntercompanyPurchaseOrders | Read-only | Exposes intercompany purchase order records from PurchTable, filtered to intercompany orders only, with linkage metadata to the corresponding sales order in the other legal entity. | Intercompany reconciliation, reporting | A group finance team exports intercompany purchase orders to match them against intercompany sales orders in the selling entity, verifying transfer prices and eliminating intercompany balances at consolidation. |
Intercompany Order Lines
Read-only, line-level views of intercompany sales and purchase orders that complement the Intercompany Orders header entities, available through OData only (not enabled for Data management).
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeIntercompanyOrderLineEntity | LatticeIntercompanyOrderLines | Read-only | Exposes sales order lines (SalesLine) of intercompany sales orders only (the SalesTable header join is filtered to intercompany orders), with lot ID, item, description, quantity, unit, unit price, net amount and deliver remainder, plus the customer account, intercompany company and intercompany purchase order from the header. Key: SalesOrderNumber + LineNumber. | Intercompany reconciliation over OData | At month-end a group controller compares intercompany sales order lines in the selling company with the purchase order lines in the buying company to find quantity and price mismatches before eliminations. |
| MGCLatticeIntercompanyPurchaseOrderLineEntity | LatticeIntercompanyPurchaseOrderLines | Read-only | Exposes purchase order lines (PurchLine) of intercompany purchase orders only (the PurchTable header join is filtered to intercompany orders), with lot ID, item, description, quantity, unit, unit price, net amount and deliver remainder, plus the vendor account, intercompany company and intercompany sales order from the header. Key: PurchaseOrderNumber + LineNumber. | Intercompany reconciliation over OData | A procurement analyst lists the intercompany purchase lines that still have quantity to receive and follows up with the supplying sister company on late shipments. |
Order Lines
Performance-optimized order line entities with inventory dimension (site/warehouse) joins. These entities use DynamicFields=Yes on the root data source and an outer join to InventDim, providing a lightweight alternative to the standard D365 order line entities for high-volume OData reads.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeSalesOrderLineEntity | LatticeSalesOrderLines | Read/Write | Exposes sales order line records (SalesLine) with core order fields (item, qty, price, amount, status) and inventory site/warehouse dimensions via InventDim outer join. ShippingSiteId and ShippingWarehouseId set the line's site and warehouse on create and update; a warehouse sent without a site uses the warehouse's site. Key: InventoryLotId, which is also the staging key: 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). | OData reporting, order line sync | A BI dashboard queries all open sales order lines with site/warehouse breakdown to track fulfillment status by location in near-real-time. |
| MGCLatticePurchaseOrderLineEntity | LatticePurchaseOrderLines | Read/Write | Exposes purchase order line records (PurchLine) with core order fields (item, qty, price, amount, status) and inventory site/warehouse dimensions via InventDim outer join. ReceivingSiteId and ReceivingWarehouseId set the line's site and warehouse on create and update; a warehouse sent without a site uses the warehouse's site. Key: InventoryLotId. | OData reporting, order line sync | A procurement analytics tool pulls purchase order lines with receiving site/warehouse to monitor open commitments and expected deliveries by location. |
Sales Order Charges
Miscellaneous charges on individual sales order lines.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeSalesOrderLineChargeEntity | LatticeSalesOrderLineCharges | Read/Write | Exposes miscellaneous charges (MarkupTrans, customer module) on sales order lines with charge code, category, fixed, per-unit, percentage and external amounts, currency, sales tax groups, keep flag and intercompany and broker-fee flags. Only lines of orders of type Sales order are included. New charges must carry a charge code and are always created as line-level charges. Key: SalesOrderNumber + SalesOrderLineInventoryLotId + ChargeLineNumber. | Order integration, charge sync | An e-commerce order integration adds a freight charge and a gift-wrap charge to the individual sales order lines it creates, so each charge is invoiced and taxed with its line. |
Sales & Procurement Setup
Company-level parameters and setup that govern sales and purchase processing: module parameters, purchase summary update rules, transport calendars and print management.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeSalesParametersEntity | LatticeSalesParameters | Read/Write | Exposes a subset of the sales parameters (SalesParameters, one row per company): mark order as voided, delete order line invoiced in total, delete order after invoicing, time between shipping date and invoice date, customer quotation type, ATP time fence, ATP including planned orders, and bill of lading. Key: SalesParametersKey. | Configuration migration, parameter audit | An implementation team loads the sales parameter settings of its template legal entity into each newly created company as part of a configuration data package. |
| MGCLatticeProcurementParametersEntity | LatticeProcurementParameters | Read/Write | Exposes procurement parameters (PurchParameters, one row per company): default purchase type and purchase pool, default return action, prices and amounts printed on purchase orders, change management and per-vendor override, discount type, automatic charges for header and lines, price date type, purchase cycle, find purchase agreements, product receipt number check, over- and underdelivery acceptance, product receipt charges, summary update defaults and error tolerance, three-way match, total discount on posting and margin alert. Key: ProcurementParametersKey. | Configuration migration, policy governance | A procurement center of excellence exports the parameters of its reference company, imports them into every legal entity, and then reads them over OData to catch any company whose change management or three-way match settings have drifted. |
| MGCLatticeVendorSummaryUpdateParametersEntity | LatticeVendorSummaryUpdateParameters | Read/Write | Exposes purchase summary update settings (PurchJournalAutoSummary): whether documents of a given type (for example product receipts or invoices) are summarized automatically, set per vendor account or per purchase order. Key: VendorAccount + ModuleType + PurchaseOrderId + DocumentType. | Configuration migration, vendor setup | A company that consolidates product receipts and invoices per vendor imports the automatic summary settings for its 200 highest-volume vendors in one data package instead of setting up each vendor by hand. |
| MGCLatticeTransportCalendarSetupEntity | LatticeTransportCalendarSetups | Read/Write | Exposes transport calendar assignments (CustVendTransportCalendarSetup): the transport calendar that applies to a mode of delivery, optionally for a specific warehouse. Key: ModeOfDeliveryId + InventoryWarehouseId. | Configuration migration, logistics setup | A distributor rolling out carrier holiday calendars imports which transport calendar applies to each mode of delivery at each shipping warehouse across its legal entities. |
| MGCLatticePrintManagementSettingEntity | LatticePrintManagementSettings | Read/Write | Exposes print management settings (PrintMgmtSettings with its PrintMgmtDocInstance node): node and document type, original or copy, name, priorities, description, number of copies and do-not-print flag, plus any customer or vendor override as AccountTableName + AccountNum and the print destination as DestinationType, FileFormat and FileName. Scope: module-level settings (AccountTableName and AccountNum blank) and customer- or vendor-account settings (AccountTableName CustTable or VendTable); order-level settings and settings on any other record are not included. The account columns are computed in the database, so rows can be read, updated and deleted by key, and re-importing an existing setting updates it. When rows are created, the override is resolved to that account in the target company (the row fails if the account does not exist); the account of an existing row cannot be changed. The destination is built from DestinationType, FileFormat and FileName only, so printer and email details are not carried on create; an update that changes the destination keeps the other details already stored. | Configuration migration, document output setup | An implementation team copies print management setup, including customer-specific invoice copies saved as PDF files, from its template company into a new legal entity with a data package; customer overrides are matched by account number in the new company. |
Trade Agreements
Read-only feeds over trade agreements (PriceDiscTable): sales and purchase prices and line, multiline and total discounts. MGCLatticeTradeAgreementEntity is the unified feed: it returns every agreement row, identifies each row's type in PriceType (the relation) and ModuleType (Cust or Vend), and is the only one of the nine enabled for Data management (export projects and BYOD, where change tracking can be enabled for incremental export). The eight split feeds expose the same fields and key (SysRecId) with a fixed filter to one module and one relation, and are available through OData only; LatticeSalesPriceAgreements, for example, returns the rows of LatticeTradeAgreements where ModuleType is Cust and PriceType is PriceSales. Use the unified feed for bulk or incremental export and for consumers that need more than one agreement type; use a split feed for a simple OData read of one type. None of the nine filters on dates, so expired and future agreements are included; filter on FromDate and ToDate to get the agreements in effect. Each split feed has a display name of its own that names its type, for example Sales price trade agreements or Purchase total discount trade agreements; the unified feed is Trade Agreement.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeTradeAgreementEntity | LatticeTradeAgreements | Read-only | Exposes every trade-agreement row in PriceDiscTable, sales and purchase, prices and all discount types: account and item relations (code type plus account or group), inventory dimension ID, unit, currency, quantity or amount range, amount, discount percentages 1 and 2, price charges, price unit, from and to dates, delivery lead time and agreement ID. PriceType and ModuleType identify each row's type. Key: SysRecId. | DMF/BYOD export, incremental price-list sync, multi-type OData reads | A pricing platform takes one full export of all trade agreements, then enables change tracking and pulls only new and changed sales prices, purchase prices and discounts each night. |
| MGCLatticeSalesPriceAgreementEntity | LatticeSalesPriceAgreements | Read-only | Exposes sales price agreements only (ModuleType = Cust, PriceType = PriceSales), with the same fields and key as LatticeTradeAgreements. OData only. | OData price lookup, storefront price sync | A B2B web shop reads the sales price agreements for each customer price group every night to publish contract prices in its storefront. |
| MGCLatticeSalesLineDiscountAgreementEntity | LatticeSalesLineDiscountAgreements | Read-only | Exposes sales line discount agreements only (ModuleType = Cust, PriceType = LineDiscSales), with the same fields and key as LatticeTradeAgreements. OData only. | OData discount lookup, quoting | A CPQ tool reads the line discount agreements for a customer's line discount group to show the discount percentage each quote line will receive. |
| MGCLatticeSalesMultilineDiscountAgreementEntity | LatticeSalesMultilineDiscountAgreements | Read-only | Exposes sales multiline discount agreements only (ModuleType = Cust, PriceType = MultiLineDiscSales), with the same fields and key as LatticeTradeAgreements. OData only. | OData discount lookup, sales enablement | A field-sales app shows reps the quantity breaks at which a customer earns a multiline discount when items from the same multiline discount group are combined on one order. |
| MGCLatticeSalesTotalDiscountAgreementEntity | LatticeSalesTotalDiscountAgreements | Read-only | Exposes sales total discount agreements only (ModuleType = Cust, PriceType = EndDiscSales), with the same fields and key as LatticeTradeAgreements. OData only. | OData discount lookup, customer portal | A customer portal reads total discount agreements to tell buyers the order value at which their order-level discount starts. |
| MGCLatticePurchPriceAgreementEntity | LatticePurchasePriceAgreements | Read-only | Exposes purchase price agreements only (ModuleType = Vend, PriceType = PricePurch), with the same fields and key as LatticeTradeAgreements. OData only. | OData price lookup, supplier collaboration | A supplier portal shows each vendor its current purchase price agreements so the supplier can confirm contract prices before accepting a purchase order. |
| MGCLatticePurchLineDiscountAgreementEntity | LatticePurchaseLineDiscountAgreements | Read-only | Exposes purchase line discount agreements only (ModuleType = Vend, PriceType = LineDiscPurch), with the same fields and key as LatticeTradeAgreements. OData only. | OData discount lookup, spend analytics | A spend-analytics tool reads vendor line discount agreements to check that invoiced purchase lines received the negotiated discount percentages. |
| MGCLatticePurchMultilineDiscountAgreementEntity | LatticePurchaseMultilineDiscountAgreements | Read-only | Exposes purchase multiline discount agreements only (ModuleType = Vend, PriceType = MultiLineDiscPurch), with the same fields and key as LatticeTradeAgreements. OData only. | OData discount lookup, purchase planning | A buyer's planning workbook reads vendor multiline discount agreements to see how many units from one discount group must be combined on a purchase order to reach the next discount tier. |
| MGCLatticePurchTotalDiscountAgreementEntity | LatticePurchaseTotalDiscountAgreements | Read-only | Exposes purchase total discount agreements only (ModuleType = Vend, PriceType = EndDiscPurch), with the same fields and key as LatticeTradeAgreements. OData only. | OData discount lookup, order consolidation | A sourcing team reads vendor total discount agreements to find the order value at which a supplier grants an order-level discount before consolidating its weekly purchase orders. |
Inventory & Product (High-Performance)
Read-only, performance-tuned feeds for high-volume integration and BI workloads. Both entities use DynamicFields=No with explicit minimal field projections, are marked read-only (no write/validation overhead), and apply baked-in range filters so consumers receive smaller, pre-filtered result sets. Both are enabled for Data management, where change tracking can be turned on for incremental export; the entities do not turn it on themselves, and it does not apply to OData reads. These are lean alternatives to the standard on-hand and released-product entities, which are heavy for high-frequency sync.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeInventOnHandEntity | LatticeInventoryOnHands | Read-only | Inventory on-hand snapshot from InventSum joined to InventDim (outer join), filtered to open rows (Closed==No). Projects physical, reserved, picked, received, deducted, on-order, and ordered quantities plus site, warehouse, location, batch, inventory status, and license plate. Key: ItemNumber + InventoryDimensionId. | WMS/3PL stock sync, e-commerce inventory, ATP, BI | A 3PL integration polls the on-hand snapshot for its warehouses every few minutes to keep an external warehouse management system's available-to-promise quantities in sync. |
| MGCLatticeReleasedProductEntity | LatticeReleasedProducts | Read-only | Lean released-product catalog from InventTable + InventTableModule (ModuleType=Invent) + EcoResProductTranslation (LanguageId=en-us, outer join). Exposes item number, search name, product type, inventory unit symbol, and en-us product name/description. Key: ItemNumber. | Catalog/PIM/storefront sync | An e-commerce platform syncs the released-product catalog nightly to refresh storefront product names, descriptions, and units of measure without the overhead of the full released-product entity. |
Inventory & Supply Chain Transactions
Read-only, lean feeds of inventory transactions, open order lines and master planning output with explicit field projections, enabled for both OData and Data management.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeInventTransactionEntity | LatticeInventoryTransactions | Read-only | Exposes inventory transactions (InventTrans) with item number, lot ID and reference category from the transaction origin (InventTransOrigin), issue and receipt status, physical and financial dates, packing slip, invoice, quantity, physical and financial cost amounts, and site, warehouse, location, batch, serial, inventory status and license plate (InventDim). The table is very large, so always filter, for example by item or date. Key: SysRecId (record ID). | Incremental export to a data warehouse | A cost accounting team exports the previous day's financially updated inventory transactions with site, warehouse and batch to analyze cost of goods sold by batch. |
| MGCLatticeOpenSalesOrderLineEntity | LatticeOpenSalesOrderLines | Read-only | Exposes open sales order lines (SalesLine), filtered to lines that still have quantity to ship (deliver remainder greater than zero), with item, remaining quantity, unit, requested ship date, line status, customer account, and shipping site and warehouse (InventDim, outer join). Key: SalesOrderNumber + LineNumber. | Near-real-time open-order feed to a WMS, 3PL or portal | A 3PL integration polls open sales order lines for its warehouse every 15 minutes and plans picking waves by requested ship date. |
| MGCLatticeOpenPurchaseOrderLineEntity | LatticeOpenPurchaseOrderLines | Read-only | Exposes open purchase order lines (PurchLine), filtered to lines that still have quantity to receive (deliver remainder greater than zero), with item, remaining quantity, unit, requested receipt date, line status, vendor account, and receiving site and warehouse (InventDim, outer join). Key: PurchaseOrderNumber + LineNumber. | Inbound receiving schedule feed | A dock scheduling system pulls open purchase order lines for each receiving warehouse every morning to book unloading slots for the quantities still expected. |
| MGCLatticePlannedOrderRequirementEntity | LatticePlannedOrderRequirements | Read-only | Exposes master planning net requirement transactions (ReqTrans) for every plan version: item, coverage dimension ID, direction, coverage quantity, action date and action type, delayed-to date and delay flag, and reference type and number. Rows are not limited to planned orders (on-hand, sales, purchase and other requirements are included), so filter on ReferenceType, and on PlanVersion (the plan version record ID) to read one plan. Key: SysRecId (record ID). | Planning output export to analytics tools | After the nightly master planning run, a supply planner exports planned purchase and production orders with their action dates and delays into Power BI to decide what to expedite. |
Product & Inventory Setup
Writable setup entities for inventory statuses, item group and model group assignments, item order settings, item sales tax groups and inventory parameters, suited to bulk maintenance and to moving configuration between environments.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeInventoryStatusEntity | LatticeInventoryStatuses | Read/Write | Exposes warehouse inventory statuses (WHSInventStatus): status ID, name and whether the status blocks inventory. Key: InventoryStatusId. | Master data sync with a WMS or 3PL | When onboarding a 3PL, a warehouse team imports the partner's status codes (Available, Damaged, Quarantine) and marks the damaged and quarantine statuses as blocking. |
| MGCLatticeItemGroupAssignmentEntity | LatticeItemGroupAssignments | Read/Write | Exposes the assignment of items to item groups (InventItemGroupItem), with the item group and its company. The company comes from the item's company field (ItemDataAreaId), which is part of the key. Key: ItemId + ItemDataAreaId. | Bulk reassignment via Data management | After redesigning its posting setup, a finance team moves 2,000 items to new item groups by importing a spreadsheet of item number, company and item group. |
| MGCLatticeItemModelGroupAssignmentEntity | LatticeItemModelGroupAssignments | Read/Write | Exposes the assignment of items to item model groups (InventModelGroupItem), with the model group and its company. The company comes from the item's company field (ItemDataAreaId), which is part of the key. Key: ItemId + ItemDataAreaId. | Data migration, bulk assignment | During a data migration, item model groups are assigned in bulk right after the released products are created and before any stock is received. |
| MGCLatticeItemPurchOrderSetupEntity | LatticeItemPurchaseOrderSetups | Read/Write | Exposes item purchase order settings (InventItemPurchSetup), both the default row and site-specific rows: purchase lead time and working-days setting, multiple, standard, minimum and maximum order quantities, mandatory site and warehouse, and override and stopped flags. Key: ItemNumber + InventoryDimensionId. | Bulk maintenance from supplier data via Data management | Each quarter a procurement team updates purchase lead times and minimum and multiple order quantities for 5,000 items from its supplier catalog through a data project. |
| MGCLatticeItemSalesOrderSetupEntity | LatticeItemSalesOrderSetups | Read/Write | Exposes item sales order settings (InventItemSalesSetup), both the default row and site-specific rows: sales lead time and its override, delivery date control, ATP time fence and whether ATP includes planned orders, multiple and standard order quantities, mandatory site and warehouse, and the stopped flag. Key: ItemNumber + InventoryDimensionId. | Bulk maintenance via Data management | A sales operations team switches delivery date control to ATP and stops sales of discontinued items by importing updated sales order settings for the affected items. |
| MGCLatticeItemSalesTaxGroupTaxCodeEntity | LatticeItemSalesTaxGroupTaxCodes | Read/Write | Exposes which sales tax codes belong to each item sales tax group (TaxOnItem), with the exempt code. Key: ItemSalesTaxGroup + TaxCode. | Tax configuration migration, bulk maintenance | When a new local sales tax takes effect, a tax team adds the new tax code to 30 item sales tax groups in one import instead of editing each group by hand. |
| MGCLatticeInventoryParametersEntity | LatticeInventoryParameters | Read/Write | Exposes the inventory parameters (InventParameters), one row per legal entity: default unit, default and fallback warehouse, counting journal name, separate ledger accounts by site, end output inventory order, and cost breakdown. Key: InventoryParametersKey. | Environment setup, configuration baselines over OData | A rollout team sets the default unit, fallback warehouse and counting journal for twelve new legal entities from its company-creation script. |
Warehouse Management
Warehouse work headers and lines, reservation quantities and location types from warehouse management.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeWarehouseWorkEntity | LatticeWarehouseWorks | Read-only | Exposes warehouse work headers (WHSWorkTable): work ID, status, work order type (purchase, sales, production, transfer, replenishment, cycle count and others), source order number, shipment, load, wave, work pool, target license plate, container, site, warehouse, work template, priority, creating user and the in-process, closed and canceled date and time. Key: WorkId. | Warehouse KPIs, WMS/3PL monitoring | A distribution center's labor dashboard reads work every few minutes to track the open picking backlog by wave and how long work takes from start to close. |
| MGCLatticeWarehouseWorkLineEntity | LatticeWarehouseWorkLines | Read-only | Exposes warehouse work lines (WHSWorkLine) with work type, status, location and proposed location, item, work and remaining quantities in work and inventory units, unit, lot ID, load, shipment, work class, zone and in-process and closed date and time, plus batch number, serial number, inventory status and license plate from the line's inventory dimensions (InventDim, outer join). Key: WorkId + LineNumber. | Warehouse analytics, traceability | During a recall, a quality team reads the pick lines for the affected shipments to trace which batches and license plates were picked from which locations. |
| MGCLatticeWarehouseReservationEntity | LatticeWarehouseReservations | Read-only | Exposes warehouse management inventory reservations (WHSInventReserve) per item and inventory dimension combination at each level of the reservation hierarchy: available physical, total available, physical reserved and ordered reserved quantities, hierarchy level, site and warehouse. Key: ItemNumber + InventoryDimensionId. | Availability sync, reservation analysis | An order-promising service reads reservation and availability quantities at warehouse level to decide which warehouse can still fulfill a large order before it is released. |
| MGCLatticeWarehouseLocationTypeEntity | LatticeWarehouseLocationTypes | Read/Write | Exposes warehouse location types (WHSLocationType): the location type code and description used to classify warehouse locations. Key: LocationType. | Configuration migration, warehouse setup | A company opening a new distribution center imports its standard location types (bulk, pick, staging, final shipping) before loading location profiles and locations. |
Warehouse Mobile Device Setup
Warehouse mobile device step configurations and their texts, for moving customized steps and translations between environments.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeMobileDeviceStepEntity | LatticeMobileDeviceSteps | Read/Write | Exposes warehouse mobile device step configurations (WHSMobileAppFlowStep): menu item name, step ID and step icon; a blank menu item name is the step's default configuration. Key: MenuItemName + StepId. | Configuration migration between environments | A warehouse solution team moves its customized step icons from the test environment to production in a data package, followed by the step texts. |
| MGCLatticeMobileDeviceStepTextEntity | LatticeMobileDeviceStepTexts | Read/Write | Exposes the customized titles, instructions and descriptions of warehouse mobile device steps (WHSMobileAppText) per language, addressed by menu item name and step ID. When a text is inserted or updated, its step is looked up by menu item name and step ID and the row is rejected if the step does not exist, so import the steps first. Key: MenuItemName + StepId + TextType + LanguageId. | Configuration migration, translation loads | A warehouse operator with sites in Spain and Poland imports translated step titles and instructions for its receiving and picking menu items. |
Production & Projects
Production journal headers and the ledger postings of project transactions.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeProductionJournalHeaderEntity | LatticeProductionJournalHeaders | Read-only | Exposes production journal headers (ProdJournalTable): journal number, journal name, journal type (picking list, route card, job card or report as finished), description, posted flag, posted date and time, posting user and number of lines. Key: ProductionJournalNumber. | Shop-floor monitoring, DMF export | A plant manager's dashboard lists the route card and picking list journals still unposted at the end of each shift so supervisors can clear them. |
| MGCLatticeProjectPostedTransactionEntity | LatticeProjectPostedTransactions | Read-only | Exposes the ledger postings of project transactions (ProjTransPosting, written for every posted project transaction): project, transaction ID and type (hour, expense, item, fee, on-account and others), project date, category, ledger posting type, amount in accounting currency, quantity, lot ID and funding source record ID. Key: SysRecId. | Project cost reporting, BI | A PMO reporting tool pulls project postings weekly to report actual cost and revenue by project, category and posting type against budget. |
Project Management
Estimate projects for project accounting, exposed for data migration and ongoing maintenance.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeEstimateProjectEntity | LatticeEstimateProjects | Read/Write | Exposes estimate projects (ProjWIPTable): estimate project ID, description, cost template, period code, project cost and revenue profile, and the eliminated flag, which cannot be changed through an update. Key: EstimateProjectId. | One-time migration via Data management | During a migration from a legacy project system, a project accounting team creates 150 estimate projects with their cost templates and period codes in one import. |
Sales & Marketing
Sales and marketing opportunities for pipeline reporting and integration with external CRM tools.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeOpportunityEntity | LatticeOpportunities | Read/Write | Exposes sales and marketing opportunities (smmOpportunityTable): opportunity ID, subject, status, sales process, probability, prognosis, sales unit, estimated revenue, and opened and closed dates. The party and owner worker are exposed as record IDs, and the status cannot be changed through an update. Key: OpportunityId. | Pipeline reporting, CRM integration | A sales operations team exports open opportunities with subject, estimated revenue and probability every week into its pipeline dashboard. |
Retail
Commerce transactions recorded by stores and other channels.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeRetailTransactionEntity | LatticeRetailTransactions | Read-only | Exposes retail transaction headers (RetailTransactionTable) with store, register, receipt number, channel record ID, date and time, operator, customer account, entry status, transaction type, and gross, net, cost and payment amounts with currency. Every transaction type is included (sales, payments, logons, shift operations and others), so filter on TransactionType for sales. Key: SysRecId. | Retail analytics, store reconciliation | A retail analytics platform pulls the previous day's sales transactions for every store each morning to report sales by register and reconcile receipts against payment amounts. |
Human Resources
Personnel actions recorded against workers.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeWorkerActionEntity | LatticeWorkerActions | Read-only | Exposes worker action records (HcmWorkerAction) that tie a worker to a personnel action: worker and personnel action record IDs (not personnel numbers), effective date and time, origination point (hire, transfer, compensation change, termination, leave, position assignment and others), created by, created date and time, and modified by. Shared across companies. Key: ActionState. | HR audit, BI | An HR audit team exports worker actions monthly to confirm that each termination and transfer took effect on the approved date and to see who recorded or last changed it. |
Document Attachments -- Sales
Entities for reading and writing document attachments (DocuRef/DocuValue) linked to sales journal types. Each entity links a new attachment to the journal named in the row. Files are imported and returned in the Attachment field (base64 over OData), together with FileName, FileType and a document type whose action is a file.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeSalesConfirmationDocumentAttachmentEntity | LatticeSalesConfirmationDocumentAttachments | Read/Write | Exposes document attachments linked to sales confirmation journal records (CustConfirmJour), including file metadata and content. | Document management, archive integration | A sales team attaches signed order confirmation PDFs received from customers by importing them through DMF, linking each file to the corresponding confirmation journal record. |
| MGCLatticeSalesPackingSlipDocumentAttachmentEntity | LatticeSalesPackingSlipDocumentAttachments | Read/Write | Exposes document attachments linked to sales packing slip journal records (CustPackingSlipJour), including file metadata and content. | Document management, proof of delivery | A logistics provider imports signed proof-of-delivery documents from a mobile scanning app, attaching them to the corresponding packing slip journals in D365. |
| MGCLatticeSalesInvoiceDocumentAttachmentEntity | LatticeSalesInvoiceDocumentAttachments | Read/Write | Exposes document attachments linked to sales invoice journal records (CustInvoiceJour), including file metadata and content. | Document management, invoice archival | An accounts receivable team archives PDF copies of posted sales invoices by importing them as attachments, creating a searchable document trail for audit requests. |
Document Attachments -- Purchase
Entities for reading and writing document attachments (DocuRef/DocuValue) linked to purchase journal types and purchase order lines. Each entity links a new attachment to the journal or order line named in the row. Files are imported and returned in the Attachment field (base64 over OData), together with FileName, FileType and a document type whose action is a file.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticePurchaseOrderConfirmationDocumentAttachmentEntity | LatticePurchaseOrderConfirmationDocumentAttachments | Read/Write | Exposes document attachments linked to purchase order confirmation journal records (VendPurchOrderJour), including file metadata and content. | Document management, vendor compliance | A procurement team imports vendor-signed PO confirmation documents received via email, attaching them to the corresponding confirmation journals for compliance tracking. |
| MGCLatticePurchaseReceiptsListDocumentAttachmentEntity | LatticePurchaseReceiptsListDocumentAttachments | Read/Write | Exposes document attachments linked to purchase receipts list journal records (VendReceiptsListJour), including file metadata and content. | Document management, receiving documentation | A warehouse receiving team attaches inspection certificates and photos of received goods to the purchase receipts list journal via an automated import. |
| MGCLatticePurchasePackingSlipDocumentAttachmentEntity | LatticePurchasePackingSlipDocumentAttachments | Read/Write | Exposes document attachments linked to purchase packing slip journal records (VendPackingSlipJour), including file metadata and content. | Document management, goods receipt records | A quality control team imports lab test results and certificates of analysis as attachments on vendor packing slips, ensuring traceability documentation is linked to specific receipts. |
| MGCLatticePurchaseInvoiceDocumentAttachmentEntity | LatticePurchaseInvoiceDocumentAttachments | Read/Write | Exposes document attachments linked to purchase invoice journal records (VendInvoiceJour), including file metadata and content. | Document management, invoice archival | An AP department imports scanned vendor invoice images from a document management system, linking each image to the posted purchase invoice for three-way match audit trails. |
| MGCLatticePurchaseOrderLineDocumentAttachmentEntity | LatticePurchaseOrderLineDocumentAttachments | Read/Write | Exposes document attachments linked to purchase order line records (PurchLine), including file metadata and content. | Document management, line-level documentation | A buyer attaches supplier quotes or specification sheets to individual PO lines for reference during goods receipt and invoice matching. |
Document Attachments -- Vendor
Document attachments (DocuRef) linked to vendor master records; the vendor counterpart of MGCLatticeCustomerDocumentAttachmentEntity.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeVendorDocumentAttachmentEntity | LatticeVendorDocumentAttachments | Read/Write | Exposes document attachments linked to vendor master records (VendTable) with vendor account, attachment type, description, notes, restriction, file name and type, and default-attachment flag. Files are imported and returned in the Attachment field (base64 over OData) with FileName and FileType. Key: DocumentId. | Document import and export, vendor compliance | A supplier-compliance team exports every vendor's attached insurance certificates and tax forms, with file content, to its compliance archive each quarter. |
Document Attachments -- Master & Manufacturing
Entities for reading and writing document attachments linked to master data and manufacturing records. Files are imported and returned in the Attachment field (base64 over OData), together with FileName, FileType and a document type whose action is a file.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeCustomerDocumentAttachmentEntity | LatticeCustomerDocumentAttachments | Read/Write | Exposes document attachments linked to customer master records (CustTable), including file metadata and content. | Customer documentation, compliance | A credit team attaches signed credit applications, tax exemption certificates, and contracts to customer master records for reference during order processing and audits. |
| MGCLatticeFreeTextInvoiceDocumentAttachmentEntity | LatticeFreeTextInvoiceDocumentAttachments | Read/Write | Exposes document attachments linked to free text invoice records (CustInvoiceTable), including file metadata and content. | Document management, invoice support | An AR team attaches supporting documentation (contracts, service agreements) to free text invoices for audit trail and customer dispute resolution. |
| MGCLatticeProjectDocumentAttachmentEntity | LatticeProjectDocumentAttachments | Read/Write | Exposes document attachments linked to project records (ProjTable), including file metadata and content. | Project documentation, compliance | A project manager attaches scope documents, change orders, and status reports to project records for centralized project documentation. |
| MGCLatticeProductionOrderDocumentAttachmentEntity | LatticeProductionOrderDocumentAttachments | Read/Write | Exposes document attachments linked to production order records (ProdTable), including file metadata and content. | Manufacturing documentation, quality | A production supervisor attaches work instructions, quality check photos, and deviation reports to production orders for traceability. |
| MGCLatticeQualityOrderDocumentAttachmentEntity | LatticeQualityOrderDocumentAttachments | Read/Write | Exposes document attachments linked to quality order records (InventQualityOrderTable), including file metadata and content. | Quality management, compliance | A QA team attaches test results, certificates of analysis, and non-conformance reports to quality orders as part of the quality management workflow. |
Document Attachments -- Transfer
Entities for reading and writing document attachments linked to transfer order records. Files are imported and returned in the Attachment field (base64 over OData), together with FileName, FileType and a document type whose action is a file.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeTransferOrderDocumentAttachmentEntity | LatticeTransferOrderDocumentAttachments | Read/Write | Exposes document attachments linked to transfer order header records (InventTransferTable), including file metadata and content. | Warehouse documentation, inter-site transfers | A logistics coordinator attaches customs documentation and shipping manifests to transfer orders moving goods between warehouses in different countries. |
| MGCLatticeTransferOrderLineDocumentAttachmentEntity | LatticeTransferOrderLineDocumentAttachments | Read/Write | Exposes document attachments linked to transfer order line records (InventTransferLine), including file metadata and content. | Line-level transfer documentation | A warehouse manager attaches item-specific handling instructions or hazmat documentation to individual transfer order lines. |
General-Purpose Document Attachments
An internal entity over DocuRef attachment records on any table. It is not public and not enabled for Data management, so it has no OData collection: the purchase order confirmation, purchase packing slip and purchase receipts list document attachment entities use it as a data source.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeDocuRefEntity | None (not public) | Read/Write | DocuRef records on any table, addressed by table ID and record ID. Generates the DocumentId, accepts file content in a container field, validates document types, handles attachments in other companies, and restricts updates to Notes, Name and Restriction. | Data source of other attachment entities | The purchase receipts list document attachment entity reads its attachment rows through this entity. |
Integration Monitoring
Read-only views of Lattice integration activity for monitoring and support tools: asynchronous operation tracking, file ingestion logs, the dead-letter queue, individual service calls, daily call statistics and request-level idempotency. All six are shared across legal entities and available through OData only; query examples for the service entities are in the API reference.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeAsyncOperationTrackingEntity | LatticeAsyncOperationTrackingRecords | Read-only | Exposes one tracking record per operation submitted through the Lattice asynchronous operation service: tracking, request and correlation IDs, service and operation name, legal entity, user, status (for example Queued, Processing, Succeeded or Failed), submitted and completed times, resulting document ID, message, error details, request payload and batch job ID. Key: TrackingId. | Status polling, operations dashboards | An integration platform submits a month-end depreciation run asynchronously, then polls the tracking record by its TrackingId until the status is Succeeded or Failed. |
| MGCLatticeFileIngestLogEntity | LatticeFileIngestLogs | Read-only | Exposes file ingestion log entries (MGCLatticeFileIngestLog): level (Info, Warning or Error), connection ID, bundle (ingested file) and segment (record) IDs, message, details and the time the entry was logged (LoggedDateTime). Key: FileIngestLogRecId (record ID). | Operations monitoring and alerting | After each ingestion run, an operations team's monitoring job reads the new Error-level entries and raises an alert naming the connection and file bundle that failed. |
| MGCLatticeIntegrationDeadLetterEntity | LatticeIntegrationDeadLetters | Read-only | Exposes the integration dead-letter queue (MGCLatticeIntegrationDeadLetter), which holds failed asynchronous operations and file ingestion items: source, service and operation, request ID, original and edited payloads, error code, category and message, retryable flag, attempt count and maximum, next retry, first failure and last attempt times, status (for example Retrying, Parked, Requeued or Reprocessed) and the user who last acted on it. Key: DeadLetterId. | Operations monitoring and alerting | A support team's dashboard shows dead-letter depth by service, lists parked items that need manual repair, and alerts when items reach their maximum retry attempts. |
| MGCLatticeServiceCallLogEntity | LatticeServiceCallLogs | Read-only | Exposes the Lattice service call log (MGCLatticeServiceCallLog): one row per service operation call with service and operation, legal entity, user, start and end time, duration in milliseconds, success flag, status, message, document ID, request, correlation and execution IDs, machine-readable error code, and a preview flag marking posting-preview (run-and-abort) calls. Rows are kept according to each operation's logging level (every call by default, or failures only, or none). Key: RequestId + ExecutionId. | Integration monitoring, SLA reporting | An integration support team's monitoring tool polls for failed calls every five minutes and opens a ticket carrying the request and correlation IDs, so the failing message can be traced end to end. |
| MGCLatticeServiceCallStatisticsEntity | LatticeServiceCallStatistics | Read-only | Exposes daily per-operation rollups of the service call log (MGCLatticeServiceCallStatistics): call, success and failure counts, total, minimum, maximum and average duration in milliseconds, and last call time, per service, operation and UTC date. Filled by the service call statistics rollup batch job, which rebuilds a trailing window (30 days by default) from the call log, so it counts only the calls the log kept. Key: ServiceName + OperationName + StatisticsDate. | Integration observability, trend dashboards | An operations dashboard charts daily call volume, failure rate and average duration for each posting operation to spot an integration that is slowing down or failing more often. |
| MGCLatticeServiceIdempotencyLogEntity | LatticeServiceIdempotencyLogs | Read-only | Exposes the idempotency log (MGCLatticeServiceIdempotencyLog): one row per request ID a Lattice service has claimed, with correlation ID, service, operation, success flag, document ID, completion time, claim status and claim time, the legal entity and table of the document created inside the claim, and the reconciliation state set by the idempotency reconciliation sweep. A completed request shows Success = Yes, status Succeeded and a completion time, a request still in progress shows status Processing and no completion time, and a failed request's row is removed so the request can be retried with the same request ID. Key: RequestId. | Retry handling, duplicate prevention | After a timeout, a middleware retry handler looks up its request ID before resubmitting a posting; if the request already completed, it records the returned document ID instead of posting again. |
Data Management & Migration Planning
Entities that set up data management recurring data jobs from a data package or script, show how each job is doing and what happened to its messages, and a snapshot of which tables hold data and which data entities read them. Import order and constraints for the recurring data job entities are in the API reference, and the health rules in Recurring data job health entities; the coverage analysis is described in Table data and entity coverage.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeRecurringDataJobEntity | LatticeRecurringDataJobs | Read/Write | Exposes data management recurring data jobs (IntegrationActivityTable, the records behind Manage recurring data jobs): data project, direction, data source type, message processing options and state. The packed schedule is projected into recurrence and monitoring fields (unit, interval, start, end condition, time zone) and repacked on write, keeping pattern detail these fields do not express. Setting State to Active runs the platform scheduler and setting it to Inactive stops the job's batch jobs, as do the bound OData actions Activate and Deactivate; a job is always created inactive, and activation fails unless the job has a recurrence and at least one enabled client application. Shared across companies. Key: Name. | Configuration as code, environment setup | An integration team keeps its recurring data jobs in source control and, after each environment refresh, imports the jobs, then their client authorizations, and activates them with the Activate action instead of recreating them by hand. |
| MGCLatticeRecurringDataJobClientEntity | LatticeRecurringDataJobClients | Read/Write | Exposes the client applications authorized to submit messages to a recurring data job (IntegrationClientMapTable), exchanging the job by name instead of by record ID: JobName is resolved to the job on write, and a name that matches no job fails the row. New rows default to enabled, and a second authorization of the same client for the same job is rejected. Shared across companies. Key: JobName + ClientId. | Configuration as code, integration security | After importing its nightly customer-import job, an integration team imports the Microsoft Entra application ID of its middleware as an enabled client so the job can be activated. |
| MGCLatticeRecurringJobHealthEntity | LatticeRecurringJobHealths | Read/Write | Exposes the health of each recurring data job: state (Inactive, Healthy, Warning, Failing or Broken), the previous state and when it changed, the reasons (worst first), the signal values it was derived from (waiting messages and the oldest one, failed and partially processed messages in the failure window, stuck messages, last message, enabled clients, mapping errors on the data project, the batch jobs and their status), and the job's own thresholds and alert switch. Only the thresholds and the alert switch can be written; the bound OData action Refresh evaluates one job now and RefreshAll evaluates every job. Enabled for Data management, so thresholds travel with the configuration. Shared across companies. Key: JobName. | Integration monitoring, alerting, configuration as code | A monitoring tool reads the jobs whose health is Failing or Broken every quarter of an hour and opens a ticket with the reasons, and the integration team keeps each job's silence period in source control with its recurring data jobs. |
| MGCLatticeRecurringJobMessageEntity | LatticeRecurringJobMessages | Read-only | Exposes the messages of recurring data jobs: job, direction, entity, status (for example Enqueued, Processed or ProcessedWithErrors), enqueue and processing times, user, company, retries, error details, external correlation ID, and the data management execution that processed the message with its status and staging and target error counts. Shared across companies. Key: MessageId. | Integration monitoring, troubleshooting | A support engineer filters the messages of a job processed with errors, then reads the failed rows of each execution through the data management execution APIs. |
| MGCLatticeTableEntityCoverageEntity | LatticeTableEntityCoverages | Read-only | Exposes the table data and entity coverage snapshot (MGCLatticeTableEntityCoverageSnapshot): per analyzed table and run, the row count (current company for per-company tables, 0 when the run skipped counting), shared or per-company scope, table group, owning model, whether any data entity reads the table through its data sources, and how many and which entities do (the name list is cut at 1,000 characters; the count is exact). Each Analyze run adds a new SnapshotId, stored in the company where the analysis ran. Key: SnapshotId + TableName + CompanyId. | Migration planning, gold-configuration review | Before a migration, a data team exports the latest snapshot and filters to tables that hold rows but have no covering entity, to size the custom entities it must build. |
Set-Based Import Entities
Fifteen import-only entities that load journals and high-volume masters with data management's Set-based processing: each rule refuses all the rows that break it in one statement, and the good rows are written with a handful of statements in one transaction. Microsoft ships set-based processing for only the general journal, fixed asset journal, budget register and a few reference entities; these cover the rest of the journal types. They are not published to OData, they are registered set-based by default, and they refuse row-by-row writes. Columns, rules and defaults per entity are in Set-based imports.
| Entity Name | Target | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeSetBasedInventoryJournalLineEntity | InventJournalTrans | Import | Movement, adjustment, transfer, counting, project and ownership change journal lines; new journals per grouping key or lines added to an open journal. Each line still gets its standard estimated inventory transactions. | Store and warehouse feeds, count uploads | A retailer uploads the nightly count of 600 stores as one file and gets one counting journal per store, ready to post. |
| MGCLatticeSetBasedCustomerInvoiceJournalLineEntity | LedgerJournalTrans | Import | Customer invoice lines of general journals. | Billing from external systems, migration of open receivables | A subscription billing platform delivers a month's customer invoices as one import into a general journal. |
| MGCLatticeSetBasedCustomerPaymentJournalLineEntity | LedgerJournalTrans | Import | Customer payment journal lines. | Lockbox and bank file loads | A treasury team loads the morning lockbox file of 20,000 receipts into customer payment journals. |
| MGCLatticeSetBasedVendorPaymentJournalLineEntity | LedgerJournalTrans | Import | Vendor payment journal lines. | Payment runs from an external AP system | An outsourced AP provider returns its payment run as a file that becomes vendor payment journals. |
| MGCLatticeSetBasedVendorInvoiceJournalLineEntity | LedgerJournalTrans | Import | Vendor invoice journal and invoice register lines. | Invoice capture, migration of open payables | An invoice scanning service delivers a day's invoices as one invoice register import. |
| MGCLatticeSetBasedProjectExpenseJournalLineEntity | LedgerJournalTrans + LedgerJournalTrans_Project | Import | Project expense (ledger Cost) journal lines with their project line. | Expense feeds charged to projects | A field-service company loads card transactions charged to projects every night. |
| MGCLatticeSetBasedProjectJournalLineEntity | ProjJournalTrans | Import | Project hour and fee journal lines. | Timesheet feeds from an external time system | A consultancy loads 50,000 weekly timesheet hours from its time-tracking tool into hour journals. |
| MGCLatticeSetBasedTradeAgreementJournalLineEntity | PriceDiscAdmTrans | Import | Price, line, multiline and total discount agreement journal lines. | Price list loads | A distributor loads the yearly price list of 200,000 item prices into one trade agreement journal. |
| MGCLatticeSetBasedProductionPickingListLineEntity | ProdJournalBOM | Import | Production picking list journal lines. | MES consumption feeds | A plant's MES reports material consumption for every order of the shift. |
| MGCLatticeSetBasedProductionReportAsFinishedLineEntity | ProdJournalProd | Import | Report as finished journal lines. | MES output feeds | The MES reports finished quantities per order at the end of each shift. |
| MGCLatticeSetBasedProductionRouteCardLineEntity | ProdJournalRoute | Import | Route card and job card journal lines. | Shop floor time feeds | A shop floor terminal system sends operation hours and good quantities per job. |
| MGCLatticeSetBasedDemandForecastLineEntity | ForecastSales | Import | Demand forecast lines, inserted or updated by entry number. | Forecast loads from a planning tool | A demand planning tool republishes 300,000 forecast lines each week. |
| MGCLatticeSetBasedBomLineEntity | BOM | Import | Lines of existing BOMs (insert only). | Engineering data migration | An engineering team migrates BOM structures from its PLM system. |
| MGCLatticeSetBasedBankStatementLineEntity | BankStmtISOReportEntry | Import | Lines added to an existing open bank statement. | High-volume bank statements | A payment processor's daily statement with tens of thousands of lines is added to the open statement. |
| MGCLatticeSetBasedAssetBookEntity | AssetBook | Import | Fixed asset books, inserted or updated while not acquired. | Fixed asset migration | A migration loads the books of 40,000 assets before their acquisitions are posted. |
Cross-Reference Keys
One entity per record kind for the keys other systems use for D365 records. Each row is one external system's key for one record: the record's business key plus ExternalSystem form the entity key, and ExternalKey is the value. All 33 are company-specific, writable and enabled for OData and Data management, each with its own staging table. The external systems themselves are maintained through LatticeExternalSystems (first row), which is shared across companies. An empty ExternalKey clears the key, and a business key that names no record is refused. Setup, security and the rules are in Cross-reference keys.
| Entity Name | OData Collection | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeExternalSystemEntity | LatticeExternalSystems | Read/Write | The external systems the keys belong to (MGCLatticeExternalSystem), shared across companies. Key: ExternalSystemId. A system still used by a key or a setting cannot be deleted. | Registering a source system | An integration registers its system (for example CRM) once, before it writes any key for it. |
| MGCLatticeCustomerCrossReferenceEntity | LatticeCustomerCrossReferences | Read/Write | External systems' keys for customers (CustTable). Key: CustomerAccount, ExternalSystem. | Customer key mapping | A CRM integration loads each account's CRM id so later orders can name the customer by that id. |
| MGCLatticeVendorCrossReferenceEntity | LatticeVendorCrossReferences | Read/Write | External systems' keys for vendors (VendTable). Key: VendorAccountNumber, ExternalSystem. | Vendor key mapping | A supplier portal stores its supplier number against each D365 vendor account. |
| MGCLatticeReleasedProductCrossReferenceEntity | LatticeReleasedProductCrossReferences | Read/Write | External systems' keys for released products (InventTable). Key: ItemNumber, ExternalSystem. | Item key mapping, data migration | A legacy ERP's item codes are imported with the released products so migrated open orders resolve. |
| MGCLatticeProductVariantCrossReferenceEntity | LatticeProductVariantCrossReferences | Read/Write | External systems' keys for product variants (InventDimCombination). Key: ItemNumber, ProductConfigurationId, ProductSizeId, ProductColorId, ProductStyleId, ProductVersionId, ExternalSystem; unused dimensions are left empty. | Variant (SKU) key mapping | A marketplace's SKU for each size and color is stored against the variant. |
| MGCLatticeBatchCrossReferenceEntity | LatticeBatchCrossReferences | Read/Write | External systems' keys for batches (InventBatch). Key: ItemNumber, BatchNumber, ExternalSystem. | Lot key mapping | A supplier's lot numbers are kept against the D365 batches received from them. |
| MGCLatticeTransferOrderCrossReferenceEntity | LatticeTransferOrderCrossReferences | Read/Write | External systems' keys for transfer orders (InventTransferTable). Key: TransferOrderNumber, ExternalSystem. | 3PL order mapping | A 3PL's shipment number is stored against the transfer order it ships. |
| MGCLatticeTransferOrderLineCrossReferenceEntity | LatticeTransferOrderLineCrossReferences | Read/Write | External systems' keys for transfer order lines (InventTransferLine). Key: TransferOrderNumber, LineNumber, ExternalSystem. | 3PL line mapping | The 3PL's line ids let its ship and receive confirmations name the lines. |
| MGCLatticeSalesOrderCrossReferenceEntity | LatticeSalesOrderCrossReferences | Read/Write | External systems' keys for sales orders (SalesTable). A return order number is refused. Key: SalesOrderNumber, ExternalSystem. | Order key mapping | A web shop's order number is stored against the sales order it created. |
| MGCLatticeSalesOrderLineCrossReferenceEntity | LatticeSalesOrderLineCrossReferences | Read/Write | External systems' keys for sales order lines (SalesLine). Key: SalesOrderNumber, LineNumber, ExternalSystem. | Order line mapping | The web shop's order line ids are kept against the sales order lines. |
| MGCLatticeReturnOrderCrossReferenceEntity | LatticeReturnOrderCrossReferences | Read/Write | External systems' keys for return orders (SalesTable). A sales order number is refused. Key: ReturnOrderNumber, ExternalSystem. | Return (RMA) key mapping | A returns portal's RMA number is stored against the return order. |
| MGCLatticeReturnOrderLineCrossReferenceEntity | LatticeReturnOrderLineCrossReferences | Read/Write | External systems' keys for return order lines (SalesLine). Key: ReturnOrderNumber, LineNumber, ExternalSystem. | Return line mapping | The returns portal's line ids are kept against the return order lines. |
| MGCLatticeSalesQuotationCrossReferenceEntity | LatticeSalesQuotationCrossReferences | Read/Write | External systems' keys for sales quotations (SalesQuotationTable). Key: SalesQuotationNumber, ExternalSystem. | Quote key mapping | A CPQ tool's quote id is stored against the sales quotation. |
| MGCLatticeSalesQuotationLineCrossReferenceEntity | LatticeSalesQuotationLineCrossReferences | Read/Write | External systems' keys for sales quotation lines (SalesQuotationLine). Key: SalesQuotationNumber, LineNumber, ExternalSystem. | Quote line mapping | The CPQ tool's line ids are kept against the quotation lines. |
| MGCLatticeFreeTextInvoiceCrossReferenceEntity | LatticeFreeTextInvoiceCrossReferences | Read/Write | External systems' keys for free text invoices (CustInvoiceTable). Key: InvoiceIdentifier (the invoice record ID), ExternalSystem. | Billing key mapping | A billing platform's invoice id is stored against the free text invoice it created. |
| MGCLatticeFreeTextInvoiceLineCrossReferenceEntity | LatticeFreeTextInvoiceLineCrossReferences | Read/Write | External systems' keys for free text invoice lines (CustInvoiceLine). Key: ParentRecId, LineNumber, ExternalSystem. | Billing line mapping | The billing platform's charge ids are kept against the invoice lines. |
| MGCLatticeSalesAgreementCrossReferenceEntity | LatticeSalesAgreementCrossReferences | Read/Write | External systems' keys for sales agreements (SalesAgreementHeader). Key: SalesAgreementId, ExternalSystem. | Contract key mapping | A contract management system's contract number is stored against the sales agreement. |
| MGCLatticeSalesAgreementLineCrossReferenceEntity | LatticeSalesAgreementLineCrossReferences | Read/Write | External systems' keys for sales agreement lines (AgreementLine). Key: SalesAgreementId, LineNumber, ExternalSystem. | Contract line mapping | The contract system's line ids are kept against the agreement lines. |
| MGCLatticePurchaseOrderCrossReferenceEntity | LatticePurchaseOrderCrossReferences | Read/Write | External systems' keys for purchase orders of every type, including returns (PurchTable). Key: PurchaseOrderNumber, ExternalSystem. | Supplier order mapping | A supplier's sales order number is stored against the purchase order it fulfils. |
| MGCLatticePurchaseOrderLineCrossReferenceEntity | LatticePurchaseOrderLineCrossReferences | Read/Write | External systems' keys for purchase order lines (PurchLine). Key: PurchaseOrderNumber, LineNumber, ExternalSystem. | Supplier line mapping | The supplier's line ids are kept against the purchase order lines. |
| MGCLatticePurchaseRequisitionCrossReferenceEntity | LatticePurchaseRequisitionCrossReferences | Read/Write | External systems' keys for purchase requisitions (PurchReqTable), stored per legal entity. Key: RequisitionNumber, ExternalSystem. | Requisition key mapping | An e-procurement tool's request id is stored against the purchase requisition. |
| MGCLatticePurchaseRequisitionLineCrossReferenceEntity | LatticePurchaseRequisitionLineCrossReferences | Read/Write | External systems' keys for purchase requisition lines (PurchReqLine). Key: RequisitionNumber, RequisitionLineNumber, ExternalSystem. | Requisition line mapping | The e-procurement tool's line ids are kept against the requisition lines. |
| MGCLatticePurchaseAgreementCrossReferenceEntity | LatticePurchaseAgreementCrossReferences | Read/Write | External systems' keys for purchase agreements (PurchAgreementHeader). Key: PurchaseAgreementId, ExternalSystem. | Contract key mapping | A sourcing tool's contract number is stored against the purchase agreement. |
| MGCLatticePurchaseAgreementLineCrossReferenceEntity | LatticePurchaseAgreementLineCrossReferences | Read/Write | External systems' keys for purchase agreement lines (AgreementLine). Key: PurchaseAgreementId, LineNumber, ExternalSystem. | Contract line mapping | The sourcing tool's line ids are kept against the agreement lines. |
| MGCLatticeFixedAssetCrossReferenceEntity | LatticeFixedAssetCrossReferences | Read/Write | External systems' keys for fixed assets (AssetTable). Key: FixedAssetNumber, ExternalSystem. | Asset tag mapping | An asset tracking system's tag numbers are stored against the fixed assets. |
| MGCLatticeProjectCrossReferenceEntity | LatticeProjectCrossReferences | Read/Write | External systems' keys for projects (ProjTable). Key: ProjectId, ExternalSystem. | Project key mapping | A PSA tool's project code is stored against the D365 project so time entries can name it. |
| MGCLatticeProjectContractCrossReferenceEntity | LatticeProjectContractCrossReferences | Read/Write | External systems' keys for project contracts (ProjInvoiceTable). Key: ProjectContractId, ExternalSystem. | Contract key mapping | A CRM's opportunity contract id is stored against the project contract. |
| MGCLatticeLedgerJournalCrossReferenceEntity | LatticeLedgerJournalCrossReferences | Read/Write | External systems' keys for journals (LedgerJournalTable). Key: JournalBatchNumber, ExternalSystem. | Journal batch mapping | A payroll system's batch number is stored against the general journal it produced. |
| MGCLatticeLedgerJournalLineCrossReferenceEntity | LatticeLedgerJournalLineCrossReferences | Read/Write | External systems' keys for journal lines (LedgerJournalTrans). Key: JournalBatchNumber, LineNumber, ExternalSystem. | Journal line mapping | The payroll system's entry ids are kept against the journal lines. |
| MGCLatticeProductionOrderCrossReferenceEntity | LatticeProductionOrderCrossReferences | Read/Write | External systems' keys for production orders (ProdTable). Key: ProductionOrderNumber, ExternalSystem. | MES order mapping | An MES work order number is stored against the production order. |
| MGCLatticeBOMCrossReferenceEntity | LatticeBOMCrossReferences | Read/Write | External systems' keys for bills of materials (BOMTable). Key: BOMId, ExternalSystem. | PLM key mapping | A PLM system's BOM number is stored against the D365 BOM. |
| MGCLatticeBOMVersionCrossReferenceEntity | LatticeBOMVersionCrossReferences | Read/Write | External systems' keys for BOM versions (BOMVersion). Key: ManufacturedItemNumber, BOMId, SequenceId, ExternalSystem. | PLM revision mapping | The PLM revision id is stored against the BOM version it released. |
| MGCLatticeRouteCrossReferenceEntity | LatticeRouteCrossReferences | Read/Write | External systems' keys for routes (RouteTable). Key: RouteId, ExternalSystem. | Routing key mapping | An MES routing id is stored against the D365 route. |
| MGCLatticeRouteVersionCrossReferenceEntity | LatticeRouteVersionCrossReferences | Read/Write | External systems' keys for route versions (RouteVersion). Key: Microsoft's route version key (ItemNumber, RouteId, ProductionSiteId, the product dimensions, IsActive, ValidFromDate, ValidFromQuantity) plus ExternalSystem; a key matching two versions is refused. | Routing revision mapping | The MES routing revision is stored against the route version it applies to. |
Composite Entities
Composite entities bundle related header and line entities into a single DMF-compatible package for atomic import/export operations. Composite entities are used exclusively through the Data Management Framework and are not available via OData.
| Composite Entity | Child Entities | R/W | Description | Best Used For | Scenario |
|---|---|---|---|---|---|
| MGCLatticeCustomerPackingSlipsEntity | MGCLatticeCustomerPackingSlipJournalHeaderEntity, MGCLatticeCustomerPackingSlipJournalLinesEntity | Read-only | Combines customer packing slip journal headers with their associated line records into a single exportable package. | DMF export, data migration | A company migrating to a new analytics platform exports all historical customer packing slips as a single data package, preserving the header-to-line relationship for shipment analysis. |
OData Navigation Properties
Seven relations between Lattice entities are published as OData navigation properties, so a client can read a header with its lines in one request, for example GET /data/LatticePaymentRequests?$expand=PaymentRequestLines. Each relation has a navigation property on both sides: from the child entity to its parent, and from the parent to its children.
| Child entity | Navigation to the parent | Parent entity | Navigation to the children |
|---|---|---|---|
| MGCLatticeCustomerPackingSlipJournalLinesEntity | CustomerPackingSlipJournalHeader | MGCLatticeCustomerPackingSlipJournalHeaderEntity | CustomerPackingSlipJournalLines |
| MGCLatticeFreeTextInvoiceTemplateLineEntity | FreeTextInvoiceTemplate | MGCLatticeFreeTextInvoiceTemplateEntity | FreeTextInvoiceTemplateLines |
| MGCLatticePaymentRequestLineEntity | PaymentRequest | MGCLatticePaymentRequestEntity | PaymentRequestLines |
| MGCLatticePurchaseOrderLineDocumentAttachmentEntity | PurchaseOrderLine | MGCLatticePurchaseOrderLineEntity | PurchaseOrderLineDocumentAttachments |
| MGCLatticeTransferOrderLineDocumentAttachmentEntity | TransferOrderDocumentAttachment | MGCLatticeTransferOrderDocumentAttachmentEntity | TransferOrderLineDocumentAttachments |
| MGCLatticeWarehouseWorkLineEntity | WarehouseWork | MGCLatticeWarehouseWorkEntity | WarehouseWorkLines |
| MGCLatticeSalesOrderLineChargeEntity | SalesOrderLine | MGCLatticeSalesOrderLineEntity | SalesOrderLineCharges |
Summary Statistics
| Metric | Count |
|---|---|
| Total data entities | 149 |
| Read-only entities | 46 |
| Read/Write entities | 103 |
| Composite entities | 1 |
| Enabled for Data management (each with a staging table) | 131 |
| Data management only (the set-based import entities) | 15 |
| OData only | 17 |
| Internal (neither OData nor Data management) | 1 |
| Entities with X++ business logic | 83 |
| Security privileges granting entity access | 212 |
| Security duties that group them | 7 (MGCLatticeDataEntitiesView, MGCLatticeDataEntitiesMaintain, MGCLatticeIntegrationServiceMonitoringDuty, MGCLatticeIntegrationServiceQueryDuty, MGCLatticeIntegrationServiceHighRiskDuty, MGCLatticeCrossReferenceViewDuty, MGCLatticeCrossReferenceMaintainDuty) |
See Security for the privileges and duties, and the data entity reference for each entity's fields and key.
Entities with X++ Business Logic
The following entities contain custom X++ methods (for example resolving journal references or accounts, handling file attachments, packing schedules, or resolving cross-reference keys); the other 66 are defined entirely in metadata. The 15 set-based import entities (not listed one by one) hand each data management execution to their import class through copyCustomStagingToTarget and refuse row-by-row writes. The 15 document attachment entities and the vendor contact person entity listed below also resolve their ExternalSystem + ...ExternalKey fields before a row is written:
- MGCLatticeBatchCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeBOMCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeBOMVersionCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeCustomerContactInfoEntity -- Resolves party number and location ID from customer account
- MGCLatticeCustomerContactPersonEntity -- Sets the associated party from the customer account (refusing a different party), finds the existing contact person under the account's party in the row's legal entity for updates, skips ContactPersonId validation
- MGCLatticeCustomerCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeCustomerDocumentAttachmentEntity -- Loads attachment file content via postLoad from DocuRefEntity
- MGCLatticeCustomerTransactionEntity -- Computes the remaining amounts in accounting and transaction currency in SQL (computed columns)
- MGCLatticeDocuRefEntity -- Generates DocumentId, handles file upload via container field, enforces update whitelist (Notes, Name, Restriction), validates document types, manages cross-company context
- MGCLatticeFixedAssetCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeFreeTextInvoiceCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeFreeTextInvoiceDocumentAttachmentEntity -- Loads attachment file content via postLoad, resolves CustInvoiceTable reference
- MGCLatticeFreeTextInvoiceLineCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeFreeTextInvoiceTemplateLineEntity -- Resolves the project from
ExternalSystem+ProjectIdExternalKeybefore the line is written, links a new line to the existing template itsTemplateNamenames (never writing the template), and refuses an unknown template name - MGCLatticeLedgerJournalCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeLedgerJournalLineCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeMobileDeviceStepTextEntity -- Looks up the mobile device step by menu item name and step ID when a text is inserted or updated, and rejects the row if the step does not exist
- MGCLatticePaymentRequestEntity -- Resolves the customer or vendor account from
ExternalSystem+AccountNumberExternalKey(by AccountType) before the request is written - MGCLatticePeriodCloseResourceEntity -- Links a new resource to the existing worker its personnel number names, never writes the worker, and refuses an unknown personnel number
- MGCLatticePrintManagementSettingEntity -- Computes the customer or vendor account override from the record ID in SQL (so it can be part of the key) and resolves it back to a record ID when rows are created, limits the entity to module-level and account-level settings, unpacks the print destination on read and repacks it when rows are created or the destination is changed
- MGCLatticeProductionOrderCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeProductionOrderDocumentAttachmentEntity -- Loads attachment file content via postLoad from DocuRefEntity
- MGCLatticeProductVariantCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeProjectContractCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeProjectCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeProjectDocumentAttachmentEntity -- Loads attachment file content via postLoad from DocuRefEntity
- MGCLatticePurchaseAgreementCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticePurchaseAgreementLineCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticePurchaseInvoiceDocumentAttachmentEntity -- Resolves VendInvoiceJour reference for attachment linking
- MGCLatticePurchaseOrderConfirmationDocumentAttachmentEntity -- Resolves VendPurchOrderJour reference for attachment linking
- MGCLatticePurchaseOrderCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticePurchaseOrderLineCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticePurchaseOrderLineDocumentAttachmentEntity -- Loads attachment file content via postLoad from DocuRefEntity
- MGCLatticePurchaseOrderLineEntity -- Resolves the purchase order and item from
ExternalSystem+PurchaseOrderNumberExternalKey/ItemNumberExternalKeybefore the line is written, and sets the line's inventory dimension from the receiving site and warehouse the row sends - MGCLatticePurchasePackingSlipDocumentAttachmentEntity -- Resolves VendPackingSlipJour reference for attachment linking
- MGCLatticePurchaseReceiptsListDocumentAttachmentEntity -- Resolves VendReceiptsListJour reference for attachment linking
- MGCLatticePurchaseRequisitionCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticePurchaseRequisitionLineCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeQualityOrderDocumentAttachmentEntity -- Loads attachment file content via postLoad from DocuRefEntity
- MGCLatticeRecurringDataJobClientEntity -- Resolves the job name to the stored job record, defaults new rows to enabled, rejects unknown jobs and duplicate client authorizations
- MGCLatticeRecurringDataJobEntity -- Projects and repacks the recurrence and monitoring schedules, validates name, data project and end condition, starts or stops the job through the platform scheduler when State changes, and provides the Activate and Deactivate OData actions
- MGCLatticeRecurringJobHealthEntity -- Refuses a row for an unknown job and every delete, and provides the Refresh and RefreshAll OData actions, which evaluate the jobs' health and raise the health-changed business event
- MGCLatticeRecurringJobMessageEntity -- Sums the staging and target error counts of the message's execution in SQL (computed columns)
- MGCLatticeReleasedProductCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeReturnOrderCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeReturnOrderLineCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeRouteCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeRouteVersionCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeSalesAgreementCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeSalesAgreementLineCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeSalesConfirmationDocumentAttachmentEntity -- Resolves CustConfirmJour reference for attachment linking
- MGCLatticeSalesInvoiceDocumentAttachmentEntity -- Resolves CustInvoiceJour reference for attachment linking
- MGCLatticeSalesOrderCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeSalesOrderLineChargeEntity -- Requires a charge code on insert, creates charges at line level, limits change tracking to customer charges, and opens the sales order line from a staging record
- MGCLatticeSalesOrderLineCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeSalesOrderLineEntity -- Resolves the sales order and item from
ExternalSystem+SalesOrderNumberExternalKey/ItemNumberExternalKeybefore the line is written, sets the line's inventory dimension from the shipping site and warehouse the row sends, and keeps the lot ID a new row sends - MGCLatticeSalesPackingSlipDocumentAttachmentEntity -- Resolves CustPackingSlipJour reference for attachment linking
- MGCLatticeSalesQuotationCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeSalesQuotationLineCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeTransferOrderCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeTransferOrderDocumentAttachmentEntity -- Loads attachment file content via postLoad from DocuRefEntity
- MGCLatticeTransferOrderLineCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeTransferOrderLineDocumentAttachmentEntity -- Loads attachment file content via postLoad from DocuRefEntity
- MGCLatticeVendorContactInfoEntity -- Resolves party number and location ID from vendor account
- MGCLatticeVendorContactPersonEntity -- Sets the associated party from the vendor account (refusing a different party), finds the existing contact person under the account's party in the row's legal entity for updates, skips DisplayNameSequencePatternName validation
- MGCLatticeVendorCrossReferenceEntity -- Stamps the record kind and target record when a key is written, clears the key when
ExternalKeyis empty, and refuses a business key that names no record - MGCLatticeVendorDocumentAttachmentEntity -- Loads attachment file content via postLoad from DocuRefEntity
- MGCLatticeVendorTransactionEntity -- Computes the remaining amounts in accounting and transaction currency in SQL (computed columns)
Note: MGCLatticeInventOnHandEntity and MGCLatticeReleasedProductEntity contain no custom X++ logic; they are read-only with explicit field projections (DynamicFields=No) and baked-in range filters defined entirely in entity metadata. The eight split trade-agreement feeds differ from MGCLatticeTradeAgreementEntity only by their baked-in range filters.