Lattice - Page Reference
Every page Lattice adds to Dynamics 365 Finance and Operations, in one place: what the page is for, where it lives in the menu, what its buttons do, what its columns mean, and which security artifacts grant access to it. Use this when you have landed on a page and want to know what it does; use the operator guides - Integration operations, Data entities, Business events - when you have a task to complete and want the ordered steps.
The model ships 42 pages: 30 you can open from the menu, the Recurring integration details page that opens from Recurring integration health, the Cross references page and Cross references FactBox that open from records on standard pages, and 9 list parts that appear only inside the file ingestion operations and integration operations workspaces. All page names, button labels, column headings and help text below are the strings the application displays.
Every page below carries a Help icon on its command bar that opens that page's entry in this reference. The icon appears once an administrator sets Lattice's documentation website address in System administration > Setup > Siren > Documentation help; until the address is set, the icon is not shown.
How to find a page
Every path below starts at System administration, which is omitted from the table for width.
| Page | Menu path | Area | Purpose |
|---|---|---|---|
| Database access grants | Inquiries > Lattice > Database access | Integration | Request, re-retrieve and revoke just-in-time database access. |
| File ingestion monitor | Inquiries > Lattice > File ingestion | Integration | Browse ingested bundles with their segments and log entries. |
| File ingestion operations | Inquiries > Lattice > File ingestion | Integration | Workspace summarizing the whole ingestion pipeline. |
| File ingestion simulator | Inquiries > Lattice > File ingestion | Integration | Run the pipeline against a pasted payload, with no live source. |
| Liquid template tester | Inquiries > Lattice > File ingestion | Integration | Render a Liquid template against a JSON payload. |
| Dead-letter fix and resubmit | Inquiries > Lattice > Integration operations | Integration | Correct a failed request payload and resubmit it. |
| Inbound message inquiry | Inquiries > Lattice > Integration operations | Integration | Inspect inbound bundles, segments, async operations and dead letters, and download payloads. |
| Inbound order policy state | Inquiries > Lattice > Integration operations | Integration | Browse the guardrail policy evaluation of each inbound sales order, including holds and edit locks. |
| Integration operations | Inquiries > Lattice > Integration operations | Integration | Workspace summarizing the whole integration surface; also on the default dashboard. |
| Integration operations console | Inquiries > Lattice > Integration operations | Integration | Work the dead-letter queue: retry, hold, release, discard. |
| Recurring integration health | Inquiries > Lattice > Integration operations | Integration | See the health of every recurring data job and why it is unhealthy; activate, deactivate or repair jobs. |
| Recurring integration details | Not in the menu: select a job on Recurring integration health | Integration | Everything about one recurring data job: health, schedule, messages, row errors, client applications and health thresholds. |
| OData entity metadata explorer | Inquiries > Lattice > OData | Integration | Browse public OData entities, their fields and methods. |
| Service call log | Inquiries > Lattice > Services | Integration | Browse individual service calls with their outcome, duration and error code. |
| Service call statistics | Inquiries > Lattice > Services | Integration | Daily per-operation call counts, outcomes and durations. |
| Service idempotency log | Inquiries > Lattice > Services | Integration | Browse idempotency claims with their status, reconciliation state and completion time. |
| Service metadata explorer | Inquiries > Lattice > Services | Integration | Browse service groups, services and operations with sample payloads. |
| Service test console | Inquiries > Lattice > Services | Integration | Invoke a service operation in-process from a JSON request. |
| APIM configurator | Setup > Lattice | Integration | Group endpoints into Azure API Management APIs and generate the artifact bundle. |
| Async operation registry | Setup > Lattice | Integration | Turn off service operations that callers may submit for asynchronous processing. |
| Inbound order policy parameters | Setup > Lattice | Integration | Configure the inbound order guardrail policy. |
| Sales-origin financial dimension mapping | Setup > Lattice | Integration | Map a sales origin to the financial dimension stamped on orders. |
| Service operation logging configuration | Setup > Lattice | Integration | Set call-log verbosity and retention per operation. |
| File ingestion connections | Setup > Lattice > File ingestion | Integration | Create and maintain the file ingestion connections. |
| New file ingestion connection | Setup > Lattice > File ingestion | Integration | Guided setup of a connection, with a test before it is saved. |
| Sample payloads | Setup > Lattice > File ingestion | Integration | Store reusable sample payloads and replay them. |
| External systems | Setup > Lattice | Cross references | List the external systems whose keys for D365 records are stored. |
| Cross references | Not in the menu: the Cross references button on a covered record | Cross references | View and maintain one record's keys in external systems. |
| Table data and entity coverage | Inquiries > Lattice data entities | Data entities | Browse the latest table row-count and entity-coverage snapshot. |
| Business event catalog | Inquiries > Lattice business events | Business events | Browse the discovered business events and their payload fields. |
| Business event log | Inquiries > Lattice business events | Business events | Browse the business events Lattice has sent or received, with their status and reconciliation state. |
| Batch job event filters | Setup > Lattice business events | Business events | Choose which batch jobs to leave out of the status-changed event. |
Integration pages
Database access grants
Administers just-in-time db_owner access to the application database. An administrator requests a
grant for a public IPv4 address, re-retrieves the credential while the grant is active, and revokes it
when the work is finished.
- Menu path: System administration > Inquiries > Lattice > Database access
- Opens:
MGCLatticeDbAccessGrantManager - Editable: read-only list; the actions provision and revoke grants.
- Security: privilege
MGCLatticeDbAccessAdminPrivilege→ dutyMGCLatticeDbAccessAdminDuty→ roleMGCLatticeDatabaseAccessAdministrator.
What you can do
| Action | What it does |
|---|---|
| Request access | Provision a new just-in-time database access grant for a public IPv4 address and show the credentials once. |
| Show password | Show the credentials of the selected active grant again. Works only on a grant you requested yourself: a grant another administrator requested is refused, even though you hold the same role. Refused once the grant is past its expiry. |
| Revoke | Revoke the selected grant, whoever requested it: end the database user's open sessions, then drop the user and its firewall rule, and clear the stored password. If the revoke fails, the grant stays active with its expiry moved to now, and the expiry sweep retries it. |
What you see - one list of grants: Database user, IP address, Requested by, Issued, Expires, Status (dates and times in your time zone).
Related periodic task - grants expire only when the expiry sweep runs: System administration > Periodic tasks > Lattice > Run database access expiry sweep revokes every active grant past its Expires time, marks it Expired and clears its stored password. The same privilege grants it. Issuing a grant schedules a one-time sweep for its expiry, and each sweep schedules the next one only while grants are still active, so no setup is needed and no job keeps running once no grant is active; the page's menu entry runs it on demand.
See also: Integration operations · Security model - this is a high-risk role and is documented there in full.
File ingestion monitor
The detail view over ingested files: every bundle with the per-record segments it decomposed into and the log entries written while it was processed. Failed segments can be held back from automatic reprocessing and released again.
- Menu path: System administration > Inquiries > Lattice > File ingestion
- Opens:
MGCLatticeFileIngestBundleInquiry - Editable: read-only; the Hold and Release actions change segment state.
- Security: privilege
MGCLatticeFileIngestView→ dutyMGCLatticeFileIngestDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do
| Action | What it does |
|---|---|
| Hold | Moves the selected segment to the Held state. The segment sweep processes only queued segments, so a held segment is excluded from automatic reprocessing until it is released. |
| Release | Returns the selected held segment to the queued state so the sweep picks it up again. |
What you see - a bundle list (Bundle ID, Connection ID, Source file name, Received) with the selected bundle's Segments, File size (bytes) and Document reference above two tabs:
- Segments - Segment ID, Request ID (the request the record was sent with), Sequence, State, Processing attempts, error category and code, Error message.
- Log - Level, Connection ID, Bundle ID, Segment ID, Message, Details.
See also: User guide · Integration operations
File ingestion operations
The workspace over the whole ingestion pipeline: counts at the top, recent activity in the middle, and links to every related page. Start here when you want to know whether ingestion is healthy. It is registered under Workspaces in System administration, so it also appears on the default dashboard and in the navigation pane's Workspaces list, and the Integration operations workspace links to it.
- Menu path: System administration > Inquiries > Lattice > File ingestion
- Opens:
MGCLatticeFileIngestOperations - Editable: read-only. The workspace has no data of its own; each list is a hosted part.
- Security: privilege
MGCLatticeFileIngestOperationsView→ dutyMGCLatticeFileIngestDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do
| Action | What it does |
|---|---|
| Active connections (count tile) | Shows the number of enabled file ingestion connections and opens the connection list filtered to them. |
| Dead letters awaiting action (count tile) | Shows the number of dead-letter items that are retrying, parked or held, and opens the integration operations console filtered to them. |
| File ingestion monitor (tile) | Opens the file ingestion monitor. |
| New file ingestion connection (tile) | Opens the connection wizard. |
| Links section | Opens File ingestion connections, New file ingestion connection, Sample payloads, File ingestion monitor, Inbound message inquiry, Integration operations console, Dead-letter fix and resubmit, File ingestion simulator and Liquid template tester. |
What you see - a Summary tile section, a Pipeline activity section whose vertical tabs are Recent bundles, Segments, Ingestion log and Dead-letter queue, and a Links section. Each activity tab is one of the hosted list parts described at the end of this document.
See also: User guide · Integration operations
File ingestion simulator
Runs the inbound pipeline against a payload you paste, without contacting a live source. Use it to see where a file would fail before wiring a connection to real data.
- Menu path: System administration > Inquiries > Lattice > File ingestion
- Opens:
MGCLatticeFileIngestSimulator - Editable: read-only results; you type the inputs, and the page itself stores nothing.
- Security: privilege
MGCLatticeFileIngestSimulatorPrivilege→ dutyMGCLatticeFileIngestSimulatorDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole.
What you can do
| Action | What it does |
|---|---|
| Run | Simulates the inbound pipeline for the entered connection and payload, then fills the results grid and the read-only outputs. It warns instead of running if no connection is selected, no payload is pasted, or the connection ID is not found. The payload is split into records with the connection's parser settings, as the pull splits a file, and only the first record is transformed; the parse step reports how many records it found. Nothing is posted: the Preview step checks the envelope, the allowed service operations and the request with a new random RequestId, and calls the operation in preview mode when it supports preview; otherwise only the request is checked. A custom target class is not called. |
What you see - two tabs.
- Input - Connection ID (the connection whose routing configures the run) and Raw payload (one record or a whole file, in the connection's file format).
- Results - a step grid (Sequence, Step, Succeeded, Message) plus Produced contract (what the Liquid transform produced for the first record) and Response (the preview's response).
See also: User guide · Integration operations
Liquid template tester
Renders a Liquid template against a JSON payload and shows the result, so a transformation can be authored and corrected before it is assigned to a connection.
- Menu path: System administration > Inquiries > Lattice > File ingestion
- Opens:
MGCLatticeLiquidTester - Editable: no stored data; the inputs and the result are unbound.
- Security: privilege
MGCLatticeFileIngestMaintain→ dutyMGCLatticeFileIngestDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do
| Action | What it does |
|---|---|
| Render | Render the Liquid template against the JSON payload and show the result. |
What you see - an Input tab with Liquid template and Data (JSON), and a Result tab holding Result, which shows the rendered output or the error message when rendering fails.
See also: Liquid transformer · User guide
Dead-letter fix and resubmit
For a failed integration item whose payload was wrong: edit the request payload and resubmit it in-process. Use it when a retry alone will not help because the message itself needs correcting.
- Menu path: System administration > Inquiries > Lattice > Integration operations
- Opens:
MGCLatticeIntegrationDlqEditReplay - Editable: the edited payload can be changed; dead-letter rows cannot be created or deleted here.
- Security: privilege
MGCLatticeIntegrationDlqEditReplayMaintain→ dutyMGCLatticeIntegrationServiceHighRiskDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do
| Action | What it does |
|---|---|
| Fix and resubmit | Review dead-letter items, correct the failed request payload, and resubmit it in-process. For a file ingestion item the payload is the record as received: the edited payload replaces the segment's stored record and the segment is re-queued, so the segment processor transforms and dispatches the correction on its next run. Original payload keeps what arrived; with no edit, the original record is used. Only a retrying, parked or held item can be resubmitted. An async item ends Reprocessed on success; a file ingestion item ends Requeued until its record is processed. A failure parks the item. |
What you see - a list of dead-letter items (Dead-letter ID, Status, Service, Operation, Error category, Attempts, First failed), the selected item's Error code and Failure message in the header, and a Payload tab holding Original payload and Edited payload.
See also: Integration operations · Idempotency reconcile runbook
Inbound message inquiry
One place to inspect everything that arrived: ingested bundles and their segments, asynchronous operations, and dead-letter items - with the original payload downloadable from each list.
- Menu path: System administration > Inquiries > Lattice > Integration operations
- Opens:
MGCLatticeIntegrationInboundInquiry - Editable: read-only.
- Security: privilege
MGCLatticeIntegrationInboundInquiryPrivilege→ dutyMGCLatticeIntegrationInboundInquiryDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole.
What you can do
| Action | What it does |
|---|---|
| Download bundle payload | Download the original payload of the selected inbound message. |
| Download segment payload | Download the original payload of the selected inbound message. |
| Download request payload | Download the original payload of the selected inbound message. |
| Download dead-letter payload | Download the original payload of the selected inbound message. |
Each download button belongs to the tab it sits on and acts on that tab's selected row.
What you see - four tabs, each a list with its own quick filter and download action:
| Tab | Columns |
|---|---|
| Bundles | Bundle ID, Source file name, Connection ID, Segments, File size (bytes), Received |
| Segments | Segment ID, Bundle ID, Sequence, State, error category and code, Processing attempts, Max attempts, Error message |
| Async operations | Tracking ID, Service, Operation, Status, Submitted time, Completed time, Message |
| Dead letter | Dead-letter ID, Source, Service, Operation, error code and category, Status, Attempts, Max attempts, First failed, Last attempt, Failure message |
See also: Integration operations · User guide
Inbound order policy state
The guardrail policy's verdict for each inbound sales order: whether it is pending, held, flagged, released, auto-confirmed or processed, why it was held or flagged, and until when it is edit-locked. Open it from the Inbound orders on hold tile to see only the held orders.
- Menu path: System administration > Inquiries > Lattice > Integration operations
- Opens:
MGCLatticeInboundOrderPolicyStateInquiry - Editable: read-only. A held order is released by clearing its standard order hold on the Order holds page, not here.
- Security: privilege
MGCLatticeIntegrationOperationsView→ dutyMGCLatticeIntegrationServiceMonitoringDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole.
What you can do
| Action | What it does |
|---|---|
| Inbound order policy parameters | Opens the guardrail policy setup. |
| Inbound order policy evaluation | Runs the policy evaluation batch for the orders awaiting it. Needs privilege MGCLatticeInboundOrderPolicyEvaluationBatchExecute → duty MGCLatticeBatchMaintenanceDuty → role MGCLatticeIntegrationAdministratorRole. |
What you see - one list, newest evaluation first: Sales order, Policy status, On policy hold, Hold reason, Standard hold code, Edit-locked until, Evaluated.
Each new order is evaluated once. An order priced outside the tolerance is never auto-confirmed, and its status depends on whether a standard order hold could be placed:
| Policy status | Meaning |
|---|---|
| Held | The policy parameters name a Price hold code, the standard Advanced Order Hold status change feature is enabled in Feature management, and the order got that standard order hold (Standard hold code). Clear the hold on the standard Order holds page (Sales and marketing > Sales orders > Open orders > Order holds). |
| Flagged | No standard hold was placed (no Price hold code, or the feature is off), so nothing stops the order. Review it and confirm it yourself. |
| Released | The price hold was cleared or removed on Order holds. The next evaluation run takes the order on. |
| Auto-confirmed | Confirmed by the policy: a hold-free order, or a released order, with Auto-confirm hold-free orders on. |
| Processed | Evaluated and left for the user: within the tolerance with auto-confirm off or not possible, or released with auto-confirm off or not possible (for example, still on another standard hold). |
A released order is not checked against the tolerance again. The Hold reason and Standard hold code stay on the row after the release. The Inbound orders on hold tile counts Held orders only, so an order leaves it as soon as its price hold is cleared.
See also: Integration operations
Integration operations
The workspace over the whole integration surface: counts at the top for everything that needs a person, recent activity in the middle, and links to every monitoring, action, explorer and setup page. Start here for the daily check. It is registered under Workspaces in System administration, so it also appears on the default dashboard and in the navigation pane's Workspaces list.
- Menu path: System administration > Inquiries > Lattice > Integration operations
- Opens:
MGCLatticeIntegrationOperations - Editable: read-only. The workspace has no data of its own; each list is a hosted part.
- Security: privilege
MGCLatticeIntegrationOperationsView→ dutyMGCLatticeIntegrationServiceMonitoringDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole. The two link tiles follow the security of the pages they open. The three recurring job tiles needMGCLatticeRecurringJobHealthView(in the same duty); a user without it does not see them.
What you can do
| Action | What it does |
|---|---|
| Dead letters awaiting action (count tile) | Shows the number of dead-letter items that are retrying, parked or held, and opens the integration operations console filtered to them. |
| Failed service calls (24 h) (count tile) | Shows the number of service calls that failed in the last 24 hours and opens the service call log filtered to them. |
| Inbound orders on hold (count tile) | Shows the number of inbound sales orders on a standard price hold placed by the guardrail policy (status Held) and opens the policy state list filtered to them. Clearing the price hold on Order holds releases the order and takes it off the count. Flagged orders, which got no standard hold, are not counted. |
| Stale idempotency claims (count tile) | Shows the number of idempotency claims still processing after more than an hour and opens the idempotency log filtered to them. |
| Claims needing manual reconciliation (count tile) | Shows the number of idempotency claims the reconciliation sweep has parked for a person and opens the idempotency log filtered to them. |
| Unresolved business event errors (count tile) | Shows the number of business event log entries in error that are not yet resolved and opens the business event log filtered to them. |
| Recurring jobs failing or broken (count tile) | Shows the number of recurring data jobs whose health was Failing or Broken when last evaluated, and opens Recurring integration health filtered to them. |
| Recurring jobs with a backlog (count tile) | Shows the number of recurring data jobs that had messages waiting when last evaluated (import messages not yet processed, or exported messages not yet acknowledged), and opens Recurring integration health filtered to them. |
| Silent recurring jobs (count tile) | Shows the number of active recurring data jobs that had no message for longer than their silence period when last evaluated, and opens Recurring integration health filtered to them. Only jobs with a silence period set are counted. |
| Service test console (tile) | Opens the service test console. |
| Dead-letter fix and resubmit (tile) | Opens the dead-letter fix and resubmit page. |
| Links section | Opens Integration operations console, Recurring integration health, Inbound message inquiry, Service call statistics, Service call log, Service idempotency log, Business event log, Inbound order policy state, File ingestion operations, Dead-letter fix and resubmit, Service test console, the periodic tasks Run integration dead-letter retry sweep, Idempotency reconciliation sweep, Business event reconciliation sweep, Service call statistics rollup and Clean up integration logs, the explorers Service metadata explorer, OData entity metadata explorer and Business event catalog, and the setup pages Service operation logging configuration, Inbound order policy parameters and APIM configurator. A link is shown only when the user is allowed to open its target. |
What you see - a Summary tile section, a Recent activity section whose vertical tabs are Dead-letter queue, Recent service calls, Idempotency claims, Business event log and Inbound order policy state, and a Links section. Each activity tab is one of the hosted list parts described at the end of this document.
See also: Integration operations · Idempotency reconcile runbook
Integration operations console
The working queue for failed integration items. Retry one now, hold it back from the automatic sweep, release it again, or discard it. Replay re-uses the original request identifier, so idempotency prevents a double post.
- Menu path: System administration > Inquiries > Lattice > Integration operations
- Opens:
MGCLatticeIntegrationOpsConsole - Editable: read-only list; the actions change item status.
- Security: privilege
MGCLatticeIntegrationOpsConsoleViewPrivilege→ dutyMGCLatticeIntegrationServiceMonitoringDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole; privilegeMGCLatticeIntegrationOpsPrivilege→ dutyMGCLatticeIntegrationOpsDutyopens it too. The management actions (Retry now, Hold, Release, Discard) come only from privilegeMGCLatticeIntegrationOpsManagePrivilege→ dutyMGCLatticeIntegrationServiceHighRiskDuty→ roleMGCLatticeIntegrationAdministratorRole. View payload works for anyone who can open the console and records who viewed which item. Through theLatticeIntegrationDeadLettersentity, onlyMGCLatticeIntegrationAdministratorRolereads the payload fields; the operator and read-only roles get the entity without them.
What you can do
| Action | What it does |
|---|---|
| Retry now | Schedule the selected dead-letter item for an immediate retry. Refused for a reprocessed, discarded or requeued item. |
| Hold | Put the selected dead-letter item on hold so the automatic retry sweep skips it. |
| Release | Release the selected held item back to retrying. |
| Discard | Discard the selected dead-letter item so it is no longer retried. |
| View payload | Show the original payload and failure message of the selected item. Who viewed which item is recorded as a read audit event (sent to Application Insights when telemetry is configured). |
| Refresh | Re-read the list and recompute the queue status. |
Retry now, Hold, Release and Discard record the acting user on the item. The page does not
show that user: read it in the LastActionedBy field of the LatticeIntegrationDeadLetters data entity.
What you see - a Queue status line beside the filter showing counts of dead-letter items by status and the age of the oldest parked item, over a list of Dead-letter ID, Source, Service, Operation, Error category, Error code, Status, Attempts, First failed and Next retry.
See also: Integration operations · Idempotency reconcile runbook
Recurring integration health
One row per recurring data job (the data management recurring integrations) with its health, worst first: Broken, Failing, Warning, Healthy or Inactive, and the reason. Start here when a recurring integration misbehaves, or from the recurring job tiles of the Integration operations workspace, which open this page filtered. The list shows the health stored by the last evaluation; jobs created since then are evaluated when the page opens, and the Lattice recurring data job health alerts background process evaluates every job every 15 minutes.
- Menu path: System administration > Inquiries > Lattice > Integration operations
- Opens:
MGCLatticeRecurringJobHealth - Editable: read-only list; the actions change the jobs.
- Security: privilege
MGCLatticeRecurringJobHealthView→ dutyMGCLatticeIntegrationServiceMonitoringDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole. It includes Refresh health and Refresh all. Activate, Deactivate and Repair needMGCLatticeRecurringJobHealthMaintain→ dutyMGCLatticeIntegrationServiceHighRiskDuty→ roleMGCLatticeIntegrationAdministratorRole; other users do not see them.
What you can do
| Action | What it does |
|---|---|
| Recurring integration details (or the job name in the list) | Opens the details of the selected job. |
| Refresh health | Evaluates the selected jobs now and reports each job's health. |
| Refresh all | Evaluates every job now and reports how many changed health. Jobs that no longer exist leave the list. |
| Activate | Schedules the selected jobs and their monitoring jobs. A job needs a schedule and an enabled client application; otherwise it is refused and stays inactive. |
| Deactivate | After a confirmation, puts the batch jobs of the selected jobs on hold. Waiting messages are not processed until the job is activated again. |
| Repair | After a confirmation, deactivates and activates the selected active jobs, which puts their batch jobs back to waiting with the job's current schedule. Use it when a job is active but its batch jobs are on hold, in error, ended or canceled. An inactive job has nothing to repair: activate it instead. |
| Manage recurring data job | Opens the standard Manage scheduled data jobs page (Data management > Recurring data jobs) for the job. |
| Needs attention only | Shows only the Warning, Failing and Broken jobs. |
Refreshing the health of a job whose health alerts are on raises the Recurring data job health changed business event when its health changes, as the background process does.
What you see: one list of Name (the recurring data job), Health, Reasons (the worst reason, and
how many more), Direction, Job state, Processing group (the job's data project), Recurrence
(in words), Last message, Next run (the scheduled start of the processing batch job while it is
waiting), Waiting messages, Oldest waiting since, Failed messages, Partially processed
messages, Stuck messages, Enabled clients and Evaluated. What each health state means is in
Reading the states; the full rules are in the API
reference for the LatticeRecurringJobHealths entity.
What it cannot do
- Repair cannot bring back a batch job that was deleted. It refuses such a job: delete the recurring data job and create it again, for example by applying its configuration specification.
- The page does not resubmit, skip or delete a failed message. Fix the cause and let the client application submit the file again.
See also: Integration operations
Recurring integration details
Everything about one recurring data job on one page: its health and why, its schedule and next runs, its messages, what each message did, the rows that failed, who may submit to it, and its health thresholds.
- Menu path: none. Select a job on Recurring integration health and choose Recurring integration details, or click the job's name.
- Opens:
MGCLatticeRecurringJobDetails - Editable: the Health thresholds FastTab only, with
MGCLatticeRecurringJobHealthMaintain. Saving evaluates the job again with the new values. A negative value is refused. - Security: as Recurring integration health. Users with only
MGCLatticeRecurringJobHealthViewsee the page read-only and without the job and client application actions. The standard pages it opens follow their own security.
What you can do
| Action | What it does |
|---|---|
| Refresh health, Activate, Deactivate, Repair, Manage recurring data job | As on Recurring integration health, for this job. |
| Processing batch job, Monitoring batch job | Open the standard batch job page on the job's batch job. A warning says when the job has no such batch job. |
| Execution details (Messages) | Opens the standard execution details of the data management execution that processed the selected message. A warning says when the message has no execution yet. |
| Download file (Messages) | Downloads the file the selected message carried: the submitted file of an import, or the exported file of an export. |
| Failed messages only, Period (days) (Messages) | Show only the messages that were processed with errors or failed before or after processing; show the messages enqueued in the last number of days (7 when the page opens, 0 for every message). |
| View staging data (Executions, Row errors) | Opens the staging data of the selected entity for that execution. |
| Add client application (Client applications) | Asks for a client ID and allows that client application to submit messages to the job. A client application can be added to a job only once. |
| Enable client application, Disable client application (Client applications) | Allow the selected client application to submit again, or stop it without removing it. |
| Manage authorization policy (Client applications) | Opens the standard page, where a client application can also be removed. |
What you see
| FastTab | Content |
|---|---|
| Health | Health, Previous health, Health changed and Evaluated; the Reasons, one per line, worst first; and the signals: Waiting messages, Oldest waiting since, Failed messages, Partially processed messages, Stuck messages, Last message, Enabled clients and Mapping errors. |
| Recurring data job | The job's name, description, direction, Job state and processing group; its Recurrence in words, Next run and Next runs (the next five runs projected from the schedule, in your time zone); and the status of its processing and monitoring batch jobs. |
| Messages | The job's messages, newest first: Message ID, status, entity, Enqueued, Enqueued by, Processing started, Processing completed, Company, Retries, error details, External correlation ID, the execution ID and Execution status. |
| Executions | For the selected message, each entity's staging and target status, the new, updated, deleted and error counts, and the start and end times. |
| Row errors | For the selected execution, the failed rows by entity, column and error message, with Staging row (the key fields and values of the staging row), its record ID, whether the error was in staging or in the target, and the error category. |
| Client applications | The client IDs allowed to submit to the job and whether each is enabled. |
| Health thresholds | The job's own Failure window (hours), Backlog age (minutes), Silence period (minutes), Stuck after (minutes), Failure threshold and Alerts enabled, and beside them the values in use. A threshold of 0 uses the default (24 hours, three recurrence intervals and at least 15 minutes, 60 minutes, 1); a silence period of 0 switches the silence check off. Alerts enabled raises the Recurring data job health changed business event when the job's health changes. |
What it cannot do
- Download file works only while the platform still holds the file. Data management keeps submitted and exported files in its temporary file storage, which expires; after that the page says the file is no longer in storage.
- It does not resubmit, skip or delete a failed message, and it does not edit the job's mapping or schedule. Use Manage recurring data job or the data project for those.
See also: Integration operations
OData entity metadata explorer
Browses every public OData data entity in the environment with its fields and bound methods, and
exports a Postman collection or an OpenAPI specification - for the entities you select, or for the
whole public catalog. It also downloads the environment's own OData service document (/data) and
metadata document (/data/$metadata).
- Menu path: System administration > Inquiries > Lattice > OData
- Opens:
MGCLatticeODataEntityMetadataExplorer - Editable: read-only.
- Security: privilege
MGCLatticeODataEntityMetadataExplorerPrivilege→ dutyMGCLatticeODataEntityMetadataExplorerDuty→ roleMGCLatticeIntegrationAdministratorRole. - Also opened from: the OData entity metadata explorer tile on the standard Data management workspace (full catalog), and the OData metadata button in the Lattice group of the standard Data entities page, which opens the explorer filtered to the entity selected there. If that entity is not in the catalog yet, an info message tells you to run Refresh OData metadata first.
What you can do
| Action | What it does |
|---|---|
| Refresh OData metadata | Discover all public OData data entities and their fields. Opens the refresh's batch dialog. With Batch processing Yes the refresh runs in the background: reopen the page once the job finishes. With Batch processing No the page waits until the refresh finishes and then shows the new Catalog status line and entity list. Run it after every deployment; nothing schedules it automatically. |
| Postman > Selected entities | Generates and downloads a Postman collection for the entities marked in the list. |
| Postman > All entities | Generates and downloads a Postman collection covering every public OData entity in the catalog. |
| OpenAPI > Selected entities | Generates and downloads an OpenAPI 3.0.3 specification for the entities marked in the list. |
| OpenAPI > All entities | Generates and downloads an OpenAPI 3.0.3 specification covering every public OData entity in the catalog. |
| OData service > Service document (/data) | Downloads odata_service_document.xml: the list of entity sets, exactly as /data returns it to a browser. |
| OData service > Metadata document ($metadata) | Downloads odata_metadata.xml: the OData metadata document (CSDL), exactly as /data/$metadata returns it. |
Postman, OpenAPI and OData service are split buttons: choose from the drop-down.
Selected entities acts on the marked rows, so mark the entities you want before choosing it. If nothing is marked, the entity under the cursor is used. Above 200 marked rows it asks for confirmation first.
All entities ignores the selection and the filter and exports the entire public catalog. It always asks for confirmation and quotes the entity count, because the result is big: a stock environment has roughly 4,500 public entities, which produces a Postman collection and an OpenAPI specification of about 55 MB each and takes several minutes to build. Both are valid and import correctly at that size, but Postman is slow to import a collection that large - prefer Selected entities unless you genuinely need the whole surface. If the catalog is empty the page tells you to run Refresh OData metadata first.
Only public entities are exported. The list itself is unfiltered, so it can show more rows than the count quoted in the confirmation.
The OData service downloads do not use the catalog, the list, its filter or the selection, and they ask
no questions. Both files are written from the OData model the environment is serving at that moment, with the
endpoints' own serialization, so they match what the two endpoints return, work before Refresh OData
metadata has ever run, and need no access token or app registration. On a standard environment the service document lists roughly
4,700 entity sets (about 650 KB) and the metadata document is about 54 MB. If the AOS has restarted and
nothing has called OData since, the first download waits while the environment builds its OData model, which
takes a minute or more. The service document is the XML a browser receives from /data; a client that asks
/data for JSON gets the same entity sets as a standard OData JSON service document.
What you see - a Catalog status line beside the filter (its tooltip explains the counts and points to Refresh OData metadata), then the entity list: Entity name, Collection name, Public entity name, Category, Module, Package, Custom, Fields, Obsolete. Below it, three tabs describe the selected entity:
- Details - Entity table, Primary key, Description.
- Fields - one row per field: Field name, Data type, Extended data type, Enum type, Label, Mandatory, Key, Allow edit, Obsolete and Position.
- Methods - the entity's methods (Method, Action name, Bound, Type, Parameters) and the parameters of the selected method.
See also: Integration operations · API reference
Service call log
Every individual service call with its outcome, duration and error code, newest first. Use it to find the calls behind a failure count, or to follow one request by its correlation identifier. Open it from the Failed service calls (24 h) tile to see only the recent failures.
- Menu path: System administration > Inquiries > Lattice > Services
- Opens:
MGCLatticeServiceCallLogInquiry - Editable: read-only.
- Security: privilege
MGCLatticeIntegrationOperationsView→ dutyMGCLatticeIntegrationServiceMonitoringDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole.
What you can do
| Action | What it does |
|---|---|
| Service call statistics | Opens the daily per-operation rollup. |
| Service operation logging configuration | Opens the per-operation verbosity and retention setup. |
| Clean up integration logs | Runs the service log cleanup batch. |
What you see - one list: Service, Operation, Status, Success, Start date/time, End date/time, Duration (ms), Error code, Document ID, Legal Entity, User Context, Preview, Message, Error details, Request ID, Correlation ID, Execution ID. Message is the outcome summary the caller received ("Sales order confirmation failed due to validation or business rule constraints."); Error details holds the reasons, the response's error messages separated by semicolons ("Sales order LT-1001 was not found."), and is empty when the call returned none. How much each operation writes here is set on Service operation logging configuration.
See also: Integration operations
Service call statistics
The daily rollup of service call activity per operation: how many calls, how many succeeded and failed, and how long they took. Use it to spot a degrading or newly failing operation.
- Menu path: System administration > Inquiries > Lattice > Services
- Opens:
MGCLatticeServiceCallStatistics - Editable: read-only.
- Security: privilege
MGCLatticeServiceCallStatisticsView→ dutyMGCLatticeIntegrationServiceMonitoringDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole.
What you can do
| Action | What it does |
|---|---|
| Service call statistics rollup | Aggregates the service call log into the daily per-operation statistics table for a configurable trailing window. |
What you see - one list: Service, Operation, Date, Calls, Successes, Failures, Total duration (ms), Minimum duration (ms), Maximum duration (ms), Average duration (ms), Last call.
See also: Integration operations
Service idempotency log
Every idempotency claim a service call has taken, with its status, reconciliation state and completion time, newest first. Open it from the Stale idempotency claims or Claims needing manual reconciliation tiles to see only the claims that need attention.
- Menu path: System administration > Inquiries > Lattice > Services
- Opens:
MGCLatticeServiceIdempotencyLogInquiry - Editable: read-only.
- Security: privilege
MGCLatticeIntegrationOperationsView→ dutyMGCLatticeIntegrationServiceMonitoringDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole.
What you can do
| Action | What it does |
|---|---|
| Idempotency reconciliation sweep | Runs the reconciliation sweep that resolves or parks stale claims. Needs privilege MGCLatticeIdempotencyReconciliationSweepExecute → duty MGCLatticeBatchMaintenanceDuty → role MGCLatticeIntegrationAdministratorRole. |
| Integration operations console | Opens the dead-letter queue. |
| Mark succeeded | After confirmation, closes the selected open (processing) claim as succeeded: use it when the original request's document exists and is posted. A repeated request with the same request ID then returns the recorded result instead of posting again. |
| Release claim | After confirmation, deletes the selected open (processing) claim: use it when the original request committed nothing. The caller can send the same request ID again. |
What you see - one list: Service, Operation, Status, Success, Reconciliation state, Claimed date/time, Completed time, Document table, Document ID, Legal Entity, Message, Request ID, Correlation ID.
See also: Idempotency reconcile runbook · Integration operations
Service metadata explorer
A tree of every service group, service and operation discovered in the environment, with the sample request and response payloads for the selected operation and downloads for each.
- Menu path: System administration > Inquiries > Lattice > Services
- Opens:
MGCLatticeServiceMetadataExplorer - Editable: read-only.
- Security: privilege
MGCLatticeServiceMetadataExplorerPrivilege→ dutiesMGCLatticeIntegrationServiceMonitoringDutyandMGCLatticeServiceMetadataExplorerDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole. Refresh metadata needs privilegeMGCLatticeServiceMetadataRefreshExecute→ dutyMGCLatticeServiceMetadataExplorerDuty→ roleMGCLatticeIntegrationAdministratorRole, and is shown only to users who hold it.
What you can do
| Action | What it does |
|---|---|
| Refresh metadata | Discover all service groups, services, and operations and regenerate sample contract payloads. Opens the refresh's batch dialog. With Batch processing Yes, the refresh runs as a batch job: reopen the page once the job finishes. With Batch processing No, the page waits until the refresh finishes and then shows the refreshed catalog, keeping the selected operation when it still exists. Run it after every deployment; nothing schedules it automatically. Integration administrators only. |
| Download request / Download response (JSON) | Downloads the selected operation's sample request or response JSON as a file. |
| Download request / Download response (XML) | Downloads the selected operation's sample request or response XML as a file. |
| Service metadata refresh log | Opens the Service metadata refresh log: the information, warnings and errors the last refresh wrote. |
| Postman | Generates and downloads a Postman collection for the service operations in the catalog. |
| OpenAPI | Generates and downloads an OpenAPI specification for the service operations in the catalog. |
The download buttons are enabled only when an operation (a leaf node) is selected in the tree.
What you see - a filterable tree on the left, the selected Service group, Service and Operation in the header, and five tabs: Service group, Service and Operation describe the selected node, while Request schema and Response schema show the sample payloads.
See also: Integration operations · API reference · Endpoint payload specification
Service metadata refresh log
The information, warnings and errors written by each service metadata refresh: one row per stage summary, per element that could not be read, and per run-level failure. Use it when Refresh metadata reports a failure or the explorer is missing a service or operation.
- Menu path: System administration > Inquiries > Lattice > Services > Service metadata explorer > Service metadata refresh log
- Opens:
MGCLatticeServiceMetadataRefreshLogInquiry - Editable: read-only.
- Security: privilege
MGCLatticeServiceMetadataExplorerPrivilege(the same as the explorer) → dutiesMGCLatticeIntegrationServiceMonitoringDutyandMGCLatticeServiceMetadataExplorerDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole.
What you see - a grid, newest entry first, with a quick filter: Created date and time, Level (Information, Warning or Error), Service group, Service, Operation, Message, and the exception text or detail of the entry in the last column (headed Sample payload). Filter Level on Error to find the element and step that failed. Entries are kept until the service log cleanup job removes the entries older than its metadata refresh retention.
See also: Service metadata explorer · API reference
Service test console
Invokes a service operation in-process from a JSON request so an operation can be exercised without an external client, and saves named requests for replay. Only Lattice service operations can be run, and only by a user who holds a privilege granting the operation.
- Menu path: System administration > Inquiries > Lattice > Services
- Opens:
MGCLatticeServiceTestConsole - Editable: saved requests can be deleted from the grid; they are created and updated by Save request.
- Security: privilege
MGCLatticeServiceTestConsoleExecute→ dutyMGCLatticeServiceTestConsoleDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do
| Action | What it does |
|---|---|
| Run | Invoke a custom integration service operation in-process with a JSON request payload. Both modes confirm first: a preview validates (or runs and aborts) without posting, a normal run may post live transactions. |
| Load sample | Fills the request JSON with the generated sample payload for the entered service and operation. |
| Save request | Saves the current service, operation and request JSON under the entered request name, updating the row if the name already exists. |
| Load selected | Loads the saved request selected in the grid back into the input fields. |
| Delete | Deletes the selected saved request. |
What you see - three tabs.
- Request - Request name, Service name, Operation name (both offer lookups over the discovered metadata), Preview mode (validate / run-and-abort - no posting) and Request JSON.
- Response - Status (result, duration and message of the last run) and Response JSON.
- Saved requests - the saved list: Test case name, Service, Operation.
See also: Integration operations · Posting preview · Endpoint payload specification
APIM configurator
Defines publication profiles that select Finance and Operations endpoints, group them into Azure API Management APIs and products, choose policies and output formats, and then generate the artifact bundle for deployment.
- Menu path: System administration > Setup > Lattice
- Opens:
MGCLatticeApimConfigurator - Editable: full maintenance - create, edit and delete profiles and their child rows.
- Security: privilege
MGCLatticeApimConfiguratorPrivilege→ dutyMGCLatticeApimConfiguratorDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do
| Action | What it does |
|---|---|
| Validate | Validates the selected profile against the live metadata and reports the result. Warns if no profile is selected. |
| Generate bundle | Generates the API Management artifact bundle for the selected profile and downloads it as a ZIP. Warns if no profile is selected. |
| APIM bundle bulk export | Regenerate and export the artifact bundle for one or all publication profiles, schedulable as a batch. |
| New / Delete | Add or remove a row on the APIs, endpoints, policy overrides and environments tabs. Each of those tabs has its own pair. |
What you see - a list of publication profiles (Profile name, Description, and the default
product), the profile identity in the header, and eight tabs. Four hold the profile's own
settings - Target (Default product, Subscription required, Include OData
API, OData API name), Output formats (Bicep templates, APIOps artifacts, ARM
templates), Default policy (Validate JWT, Rate limit and quota, Backend authentication,
IP restriction, CORS, Application Insights logging) and Rate limits (call and quota counts
with their renewal windows). Each check box has a tooltip that explains it. Four tabs
hold child records with their own toolbars: APIM profile API, APIM profile endpoint (where
Excluded leaves an endpoint out of the generated API), APIM profile policy (the same six policy
check boxes for one product, API or operation; a scope is required, and the Default policy applies to
everything else) and APIM profile environment (one row per Environment tier, a name such as dev,
test, uat or prod made of letters, digits and hyphens, with the APIM instance and backend settings;
the backend client secret field takes only an Azure Key Vault secret URI). Profile name and API name
cannot be changed after a record is saved. Deleting a profile deletes its APIs, endpoints, policies and
environments; deleting an API deletes its endpoints.
See also: Integration operations · Deployment
Async operation registry
Lists the service operations that callers can submit for asynchronous processing through
MGCLatticeAsyncOperationService.submitAsyncOperation, and lets an administrator turn individual ones off.
The operations are part of the product: each needs its own processing code, so they cannot be added or
deleted here. The list fills itself the first time the page or the async service is used.
- Menu path: System administration > Setup > Lattice
- Opens:
MGCLatticeAsyncOperationRegistry - Editable: only Enabled; rows cannot be created or deleted.
- Security: privilege
MGCLatticeAsyncOperationRegistryMaintain(read and update) → dutyMGCLatticeSetupDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do - no page-specific actions. Clear Enabled to stop accepting an operation, and set it again to resume. The change takes effect on the next submission:
- a new submission of a disabled operation is refused with a message that says it is disabled, and nothing is queued;
- a submission that was already queued is not run: it ends as Failed with the reason and is parked in the dead-letter queue, where it can be replayed from Integration operations console once the operation is enabled again.
Updates to Lattice add new operations enabled and never re-enable one you disabled.
What you see - one list: Service, Operation, Enabled, Handler class, Request contract class. The two class columns are read from the product code. The quick filter searches Service.
See also: submitAsyncOperation · Integration operations
Inbound order policy parameters
The guardrail policy applied to inbound sales orders: whether the policy runs at all, the price tolerance that puts an order on hold, and what happens after confirmation.
- Menu path: System administration > Setup > Lattice
- Opens:
MGCLatticeInboundOrderPolicyParameters - Editable: editable; a single parameters record that cannot be created or deleted, plus per-customer override rows on the Customers page.
- Security: privilege
MGCLatticeInboundOrderPolicyMaintain→ dutyMGCLatticeSetupDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do - no actions; this is a parameters page, and changes take effect when saved. The Customers page has its own New and Delete buttons.
What you see - a General page whose FastTabs group the settings: Policy holds Inbound order policy enabled; Price tolerance holds Price tolerance (%), Price hold reason and Price hold code (a standard order-hold code placed on an order priced outside the tolerance, when the standard Advanced Order Hold status change feature is enabled; the order is Held until that hold is cleared, and the next evaluation run then takes it on. Leave it blank to only flag such an order for review (status Flagged), which does not stop it from being processed); Confirmation holds Auto-confirm hold-free orders (which also confirms an order once its price hold is cleared) and Post-confirmation edit lock (minutes). A Customers page overrides the policy for specific customers: one row per customer account with Enabled and the same tolerance, hold reason, hold code, auto-confirm and edit-lock settings. An enabled row replaces the legal-entity values for that customer's orders; Inbound order policy enabled always comes from the legal entity.
See also: Integration operations · Deployment
Sales-origin financial dimension mapping
Maps each sales origin to the financial dimensions and values that are stamped on new sales orders carrying that origin. An origin can have one row for each of several financial dimensions, and every mapped dimension is stamped.
- Menu path: System administration > Setup > Lattice
- Opens:
MGCLatticeSalesOriginDimensionMap - Editable: full maintenance - create, edit and delete rows.
- Security: privilege
MGCLatticeSalesOriginDimensionMaintain→ dutyMGCLatticeSetupDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do - no page-specific actions; rows are added and removed with the standard New and Delete buttons.
What you see - the Sales-origin dimension stamping enabled check box above the grid, and one list: Sales origin, Financial dimension, Dimension value. Each column has a lookup: the company's sales origins, the active ledger financial dimensions (not the main account), and the values of the dimension chosen on the row. A value that does not exist for its dimension is refused when the row is saved, and changing the dimension clears the value. Deleting a sales origin deletes its rows here.
Sales-origin dimension stamping enabled is the master switch for the current legal entity. It is off by default, and the rows have no effect on new orders until it is selected. A change is saved as soon as you make it. If a mapped value is deleted later, orders are still created and only that dimension is left unstamped.
See also: Integration operations
Service operation logging configuration
Overrides how much is logged for an individual service operation, and for how long. Operations with no row here use the default policy.
- Menu path: System administration > Setup > Lattice
- Opens:
MGCLatticeServiceOperationLogConfig - Editable: full maintenance - create, edit and delete rows.
- Security: privilege
MGCLatticeServiceOperationLogConfigMaintain→ dutyMGCLatticeServiceOperationLogConfigDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do - no page-specific actions; rows are added and removed with the standard New and Delete buttons.
What you see - one list: Service, Operation, Logging level, Retention (days) - and, below it, the reminder that Operations without a row below are logged at level 'All' - every service call is persisted - using the global retention window. Add a row to lower the logging level or retention for a specific operation.
See also: Integration operations · Deployment
File ingestion connections
The connection is the unit of configuration for file ingestion: where files come from, how they are parsed and transformed, which service receives them, and how often the pull runs.
- Menu path: System administration > Setup > Lattice > File ingestion
- Opens:
MGCLatticeFileIngestConnection - Editable: full maintenance - create, edit and delete connections.
- Security: privilege
MGCLatticeFileIngestMaintain→ dutyMGCLatticeFileIngestDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do
| Action | What it does |
|---|---|
| Run file ingestion | Runs the file ingestion pull job, which can also be scheduled as a batch. |
| Test connection | Runs a live, read-only connectivity probe for the selected connection and reports the outcome. The secret is decrypted and exercised server-side and never shown in the result. Warns if no connection is selected. |
What you see - a list of connections (Connection ID, Name) with Enabled in the header, and four tabs of settings: Source (storage type, endpoint, container, folder, file pattern, the write-only Authentication field and the read-only Secret storage field, the SFTP host key fingerprint, archive and error folders), File format (format, record path, the CSV and fixed-width options, with CSV has header set to Yes on a new connection, and the PGP decryption settings), Processing (target class and operation, the Allowed service operations the service-invoke target may call, and the Liquid template) and Schedule (Minimum file age (seconds), Wait until the file size is stable, files per run, and retention, 30 days on a new connection). A fifth tab, Ingested files, lists the files the connection already ingested (path, bundle, time) with a Delete button that lets an identical file be ingested again. A connection that has bundles cannot be deleted. Every field is described in the feature guide.
Related periodic tasks - both are at System administration > Periodic tasks > Lattice, and the same privilege grants them:
- Process file ingestion segments transforms each queued record with the connection's template and sends it to the connection's target service. Schedule it as a recurring batch; add several tasks to one batch job to process records in parallel. Started from the menu it checks the Lattice license first.
- Clean up file ingestion bundles deletes the claim-checked file and the staging records of bundles whose records are all processed and that are older than the retention days of their connection, and the records of ingested files older than that; a connection with a retention of 0 days is skipped. It also removes the file sizes recorded for Wait until the file size is stable that were not refreshed for 7 days. Schedule it to run nightly.
The Source and File format tabs each open with a read-only guidance panel that shows what
belongs in every field below it for the option currently selected - change Storage type or
File format and the examples change with it. Azure Blob, File share and SFTP each get their own
endpoint, container, folder, file pattern and authentication examples. On the format tab the panel
shows the Record path forms the format accepts (an element name or element path such as
/Orders/Order for XML, a JSON path such as $.orders[*] for JSON, unused for CSV and fixed width), what a
blank record path means, and which of the CSV and fixed-width settings apply. For SFTP, Container or share
is the remote root path that Folder path is placed under. Each individual field also has its own help text
on hover.
See also: User guide · Key Vault secrets · Integration operations
New file ingestion connection
The guided alternative to the connections page: five steps that collect the same settings, test the connection, and create the record only at the end.
- Menu path: System administration > Setup > Lattice > File ingestion
- Opens:
MGCLatticeFileIngestConnectionWizard - Editable: no data source of its own; the connection record is created when you finish the wizard.
- Security: privilege
MGCLatticeFileIngestMaintain→ dutyMGCLatticeFileIngestDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do
| Action | What it does |
|---|---|
| Insert routing template (Processing step) | Writes the Liquid template that wraps each record in the { "service", "operation", "request" } envelope for the Lattice service and Service operation picked from the discovered metadata, seeded with the operation's sample request. |
| Test connection (Review step) | Runs every check the pull job depends on and lists one line per check in Test result: required settings for the storage type, endpoint or host/port shape, connectivity and sign-in, folder listing, file-pattern matches with sample names, record path (a warning for a blank path, with what blank means for the format, and for a path the parser cannot use), target class and operation (a class that does not implement the file-ingest target interface fails), Liquid template rendering and envelope shape. Nothing is saved. |
Navigation uses the standard wizard buttons; each step is validated before the wizard advances (identity, the source fields the storage type needs, the credentials of the chosen authentication option, the target and the record and retention counts), and the connection is created when you finish. The wizard does not collect the CSV settings: a new connection uses a comma, a header row and a double quote.
What you see - five steps, each introduced by a heading that states the step number and a read-only What to enter panel that explains every field on the step with examples and follows the options you select. Only the fields the selection needs are shown.
| Step | Collects |
|---|---|
| Basics | Connection ID, Name, Storage type (Azure Blob, File share, SFTP), Enabled |
| Source location | Azure: Blob endpoint or File endpoint, Container or Share; SFTP: Host, Port (22), Remote root path; always Folder path and File pattern |
| Credentials | An Authentication drop-down per storage family - Azure: Connection string, Account name and key, SAS token or Managed identity (no secret) (Blob only); SFTP: User name and password or User name and private key - showing only the inputs of the chosen option; for SFTP also SFTP host key fingerprint, which the test and the new connection pin the server key to |
| Processing | File format, Record path (XML and JSON only), Target service class and Target service operation (drop-downs over the classes implementing the file-ingest target interface and that class's single-string methods; default MGCLatticeFileIngestServiceInvokeTarget.handleIngestedContent), the Routing template helper (Lattice service, Service operation, Insert routing template), Liquid template. With the default target, the Lattice service and Service operation picked in the helper become the new connection's Allowed service operations; add others on the connections page |
| Review and create | Retention (days) (30), Wait until the file size is stable (set for File share and SFTP, cleared for Azure Blob), Test connection with its Test result panel, and the read-only Summary of the connection about to be created |
See also: User guide
Sample payloads
A library of named payloads with the routing they should be replayed against. Keeps a representative file from each partner available for testing without going back to the source system.
- Menu path: System administration > Setup > Lattice > File ingestion
- Opens:
MGCLatticeFileIngestSamplePayload - Editable: full maintenance - create, edit and delete samples.
- Security: privilege
MGCLatticeFileIngestSimulatorPrivilege→ dutyMGCLatticeFileIngestSimulatorDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole.
What you can do
| Action | What it does |
|---|---|
| Load sample library | Add a curated set of example inbound payloads. The service-invoke envelopes are replayable through the pipeline; the raw JSON, XML, CSV and fixed-width rows are format references that need a connection before they can be replayed. The envelopes set LegalEntityId (USMF) and no requestKey. Samples that already exist are left unchanged. |
| Replay | Run this sample's stored payload through the file ingestion simulator, with its connection or, without one, its target and file format, then report the per-step outcome. Nothing is posted, as in the simulator. |
What you see - a list of samples (Sample ID, Name, Replayable, which is set when the sample has the routing a replay needs) with Connection ID in the header, and two tabs: Target (File format, Class name, Operation) and Content (Sample payload, Notes).
See also: User guide · Integration operations
Data entity pages
Table data and entity coverage
Shows the most recent coverage snapshot: for every eligible table, how many rows it holds and which data entities cover it. Use it to find tables carrying data that no entity exposes.
- Menu path: System administration > Inquiries > Lattice data entities
- Opens:
MGCLatticeTableEntityCoverage - Editable: read-only.
- Security: privilege
MGCLatticeTableEntityCoverageView→ dutyMGCLatticeIntegrationServiceMonitoringDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole.
What you can do
| Action | What it does |
|---|---|
| Analyze table data and entity coverage | Run the analyzer to snapshot per-table row counts, scope, model and covering data entities. |
| Refresh | Re-read the most recent snapshot and refresh the list. |
What you see - a View filter beside the quick filter that chooses which tables to show (all tables, tables with data but no covering entity, tables covered by multiple entities, or non-empty tables only), over a list of Snapshot run ID, Snapshot date and time, Table name, Row count, Shared table, Table group, Model or module, Has data entity, Covering entity count and Covering entities.
The page opens on the most recent snapshot; each analyzer run writes a new one.
See also: Table and entity coverage · Data entities
Business event pages
Business event catalog
Lists the business events discovered in the environment with the fields each one carries in its payload, so a subscriber can be built against a known shape.
- Menu path: System administration > Inquiries > Lattice business events
- Opens:
MGCLatticeBusinessEventCatalogExplorer - Editable: read-only.
- Security: privilege
MGCLatticeBusinessEventCatalogView→ dutyMGCLatticeIntegrationServiceMonitoringDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole.
What you can do
| Action | What it does |
|---|---|
| Refresh catalog | Re-scans the application for business events and rebuilds the catalog. |
| Download sample payload | Builds a JSON document in the shape the selected event publishes, one property per payload field with a representative value of the right type, and downloads it as <event>_sample.json. |
What you see - an event list with the event identifier and Name, the selected event's Category, Lattice indicator and Payload fields count in the header, and two tabs: Details (Description, Contract class, Last refreshed) and Payload fields (Sequence, JSON field, Display label, Type).
See also: Business events · Event catalog
Business event log
Every business event Lattice has sent or received, with its status, retries and reconciliation state, newest first. Open it from the Unresolved business event errors tile to see only the entries that still need attention.
- Menu path: System administration > Inquiries > Lattice business events
- Opens:
MGCLatticeBusinessEventLogInquiry - Editable: read-only.
- Security: privilege
MGCLatticeIntegrationOperationsView→ dutyMGCLatticeIntegrationServiceMonitoringDuty→ rolesMGCLatticeIntegrationAdministratorRole,MGCLatticeIntegrationOperatorRole,MGCLatticeIntegrationReadOnlyRole.
What you can do
| Action | What it does |
|---|---|
| Business event catalog | Opens the catalog of discovered events. |
| Business event reconciliation sweep | Runs the sweep that retries or parks failed events. Needs privilege MGCLatticeBusinessEventReconciliationSweepExecute → duty MGCLatticeBatchMaintenanceDuty → role MGCLatticeIntegrationAdministratorRole. |
What you see - one list: Business event ID, Event class, Contract class, Direction, Business event log status, Status details, Reconciliation state, Retry count, Last retry, Identifier, Identifier type, Created date and time, Modified date and time.
See also: Business events
Batch job event filters
Lists the batch jobs to leave out of the batch job status changed business event: a job that matches an enabled row does not raise it. With no rows, every status change made through the job record raises it.
- Menu path: System administration > Setup > Lattice business events
- Opens:
MGCLatticeBatchJobEventFilter - Editable: full maintenance - create, edit and delete filters.
- Security: privilege
MGCLatticeBatchJobEventFilterMaintain→ dutyMGCLatticeSetupDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do - no page-specific actions; rows are added and removed with the standard New and Delete buttons.
What you see - one list: Enabled, Description, Caption contains, Task class, Match any status, On status. Description takes up to 500 characters and Caption contains up to 200. The same rule - caption text, task class, any status and status - can be entered only once.
See also: Business events
Cross-reference pages
These pages hold the keys other systems use for D365 records. Cross-reference keys explains the feature: concepts, setup, the data entities, and how services, File Ingestion and business events use the keys.
External systems
The list of external systems whose keys Lattice stores, such as SHOP, CRM or LEGACYERP. The list is
shared by all legal entities.
- Menu path: System administration > Setup > Lattice
- Opens:
MGCLatticeExternalSystem - Editable: full maintenance - create, edit and delete external systems.
- Security: privilege
MGCLatticeExternalSystemView(read) → dutyMGCLatticeCrossReferenceViewDuty→ rolesMGCLatticeIntegrationOperatorRoleandMGCLatticeIntegrationReadOnlyRole; privilegeMGCLatticeExternalSystemMaintain(full) → dutyMGCLatticeCrossReferenceMaintainDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do - no page-specific actions. Add a row per external system. Clear Active to stop keys being added or changed for that system; its existing keys are kept and still resolve. Deleting a system is refused while any legal entity has keys or cross-reference settings for it, with a message naming the legal entity.
What you see - one list: External system, Description, Active. The quick filter searches External system.
See also: Cross-reference keys
Cross references
One record's keys in external systems: a customer's CRM account id, a sales order's marketplace order number. The page title names the record, for example Cross references - US-001.
- Menu path: none. Open it with the Cross references button (or Line cross references, Version cross references) on a covered standard page; see Cross references on standard pages. Opened any other way, it refuses with "Open cross-references from a record."
- Opens:
MGCLatticeCrossReference - Editable: only the keys of external systems set up as Editable on forms for the record kind, and only with a module's Maintain privilege. Other rows are read-only.
- Security: one menu item per module -
MGCLatticeCrossReferenceAccountsReceivable,MGCLatticeCrossReferenceProcurement,MGCLatticeCrossReferenceInventory,MGCLatticeCrossReferenceFixedAssets,MGCLatticeCrossReferenceProjects,MGCLatticeCrossReferenceGeneralLedger,MGCLatticeCrossReferenceProduction- granted read by the module'sMGCLatticeCrossReference<Module>Viewprivilege → dutyMGCLatticeCrossReferenceViewDuty→ rolesMGCLatticeIntegrationOperatorRoleandMGCLatticeIntegrationReadOnlyRole, and in full byMGCLatticeCrossReference<Module>Maintain→ dutyMGCLatticeCrossReferenceMaintainDuty→ roleMGCLatticeIntegrationAdministratorRole.
What you can do - no page-specific actions. New is available only when at least one external system is editable on forms for the record kind, and its External system lookup offers only the active ones among them. Saving is refused for an empty key, a system that is not editable on this page, an inactive system, a second key from the same system, and - where the settings enforce uniqueness - a key another record of the same kind already holds.
What you see - one list: External system, External key, Key kind (Alternate key or Historical, from the module's settings; read-only). Only systems set up as Visible on forms for the record kind are listed. The quick filter searches External system.
See also: Cross-reference keys
Cross references FactBox
A read-only FactBox on the covered standard pages listing the selected record's keys: External system and External key. Pages with lines also show it for the selected line. It is hidden unless at least one external system is set up as Visible on forms for the record kind, and it lists only those systems.
Granted read by menu item MGCLatticeCrossReferenceFactBox, which every cross-reference View and Maintain
privilege includes, so everyone who can open a module's Cross references page also sees the FactBox.
Cross references on standard pages
Lattice adds a Cross references button and FactBox to 25 standard pages, and a Cross references tab to 7 module parameters pages. None of them gets the Lattice Help icon. The buttons and FactBoxes appear only when at least one external system is set up as visible on forms for the record kind; where the page has lines, a Line cross references button and FactBox work on the selected line.
| Standard page | Form | Button |
|---|---|---|
| Customers | CustTable | Customer tab > Set up |
| Sales order | SalesTable | Sales order tab > View; lines strip |
| Return order | ReturnTable | Return order tab > Attachments; lines strip |
| Sales quotation | SalesQuotationTable | Sales quotation tab > View; lines strip |
| Free text invoice | CustFreeInvoice | Invoice tab > Related information; lines strip |
| Sales agreement | SalesAgreement | Sales agreement tab > Related information; lines strip |
| Vendors | VendTable | Vendor tab > Set up |
| Purchase order | PurchTable | General tab > Related information; lines strip |
| Purchase requisition | PurchReqTable | Purchase requisition tab > Summary; lines strip |
| Purchase agreement | PurchAgreement | Purchase agreement tab > Related information; lines strip |
| Released product details | EcoResProductDetailsExtended | General tab, next to External codes |
| Released product variants | EcoResProductVariantsPerCompany | General tab, next to External codes |
| Batches | InventBatch | View group |
| Transfer orders | InventTransferOrders | Transfer order tab > View; lines strip |
| Fixed assets | AssetTable | Fixed asset tab > Maintain |
| Projects | ProjTable | Project tab > Set up |
| Project contracts | ProjInvoiceTable | Project contract tab > Set up |
| Journals (all journal list pages) | LedgerJournalTable | Main button strip |
| General journal lines | LedgerJournalTransDaily | Lines strip (line keys) |
| All production orders | ProdTableListPage | Manage tab > Order details |
| Production order details | ProdTable | Manage tab > Order details |
| Bills of materials | BOMTable | Maintain tab; Versions strip (Version cross references) |
| Released product BOM versions | BOMConsistOf | Maintain BOM version group |
| All routes | RouteTable | Route tab > Maintain; Versions strip (Version cross references) |
| Released product route versions | RouteInventProd | Maintain route version group |
Cross references tab on the parameters pages. Accounts receivable (CustParameters), Procurement and
sourcing (SrmParameters), Inventory and warehouse management (InventParameters), Fixed assets
(AssetParameters), Project management and accounting (ProjParameters), General ledger
(LedgerParameters) and Production control (ProdParameters) parameters each get a Cross references
tab: one row per record kind of that module and external system, with Record kind, External system,
Key kind, Visible on forms, Editable on forms and Enforce unique, and New and
Delete buttons. A row for another module's record kind is refused with a message naming the right page,
and Enforce unique cannot be turned on while duplicate keys exist; the duplicates are listed.
Lattice on standard pages
Lattice adds buttons and tiles to two standard Microsoft Data management pages rather than replacing them. The cross-reference buttons, FactBoxes and parameters tabs on standard pages are listed under Cross references on standard pages. Neither of the two pages below gets the Lattice Help icon - that appears on Lattice pages only - but both are documented here, and this section is what the generated help route for either page opens.
| Standard page | What Lattice adds | Where it goes |
|---|---|---|
Data entities (DMFEntity, Data management workspace > Data entities) | Action pane group Lattice with OData metadata, Export data entity template and Export entity data to Excel (wide) | OData metadata opens the OData entity metadata explorer filtered to the selected entity; Export data entity template opens the template dialog with the first marked (or the selected) entity filled in; Export entity data to Excel (wide) opens the wide export dialog for the selected entity and downloads its records to an Excel workbook, one column per field (every field unless you list a subset, beyond the 255-column limit of the standard export; every record unless you set a maximum). Both exports accept only data entities that the user can read in Data management. The wide export needs privilege MGCLatticeWideEntityExcelExportPrivilege → duty MGCLatticeDataEntitiesMaintain (operator and administrator roles) |
Data management workspace (DataManagementWorkspace) | Two tiles: Data entity template and OData entity metadata explorer | The same two destinations, opened without a selected entity |
Both are granted by the menu items behind them, so a user without the Lattice privileges sees the standard page unchanged. See Security model.
Pages hosted inside other pages
Eight list parts have no menu entry of their own. They appear as the vertical tabs of the Pipeline activity section on the File ingestion operations workspace and of the Recent activity section on the Integration operations workspace, each showing recent rows newest first, with a quick filter and - where a full page exists - a link to it. The dead-letter part is hosted by both workspaces.
| Part | Appears as | Columns | Links to |
|---|---|---|---|
MGCLatticeFileIngestBundleListPart | Recent bundles | Bundle ID, Connection ID, Source file name, Segments, File size (bytes), Received | View all bundles → File ingestion monitor |
MGCLatticeFileIngestSegmentListPart | Segments | Segment ID, Bundle ID, Sequence, State, Processing attempts, error category and code, Error message | View all segments → Inbound message inquiry |
MGCLatticeFileIngestLogListPart | Ingestion log | Level, Connection ID, Bundle ID, Segment ID, Message, Details | - |
MGCLatticeIntegrationDeadLetterListPart | Dead-letter queue | Dead-letter ID, Source, Service, Operation, Status, error category and code, Attempts, Max attempts, Next retry, First failed, Failure message | View all dead-letter items → Integration operations console |
MGCLatticeServiceCallLogListPart | Recent service calls | Service, Operation, Status, Start date/time, Duration (ms), Error code, Document ID, Message, Error details | View all service calls → Service call log |
MGCLatticeServiceIdempotencyLogListPart | Idempotency claims | Service, Operation, Status, Reconciliation state, Claimed date/time, Completed time, Document ID, Message | View all claims → Service idempotency log |
MGCLatticeBusinessEventLogListPart | Business event log | Event class, Direction, Business event log status, Reconciliation state, Retry count, Last retry, Identifier, Status details, Created date and time | View all business events → Business event log |
MGCLatticeInboundOrderPolicyStateListPart | Inbound order policy state | Sales order, Policy status, On policy hold, Hold reason, Edit-locked until, Evaluated | View all inbound orders → Inbound order policy state |
All eight are read-only. The file ingestion parts are granted by privilege
MGCLatticeFileIngestOperationsView → duty MGCLatticeFileIngestDuty → role
MGCLatticeIntegrationAdministratorRole, the same privilege that grants that workspace; the four
integration parts, and the dead-letter part when hosted there, are granted by privilege
MGCLatticeIntegrationOperationsView → duty MGCLatticeIntegrationServiceMonitoringDuty → the three
integration roles. Double-clicking a row in the parts that have a link opens the corresponding full page.
Menu items that are not navigation
Some display menu items exist to give another object something to point at rather than to appear in the menu. Finding them in the security setup is expected; they are not missing from the navigation by mistake.
| Menu item | Exists for |
|---|---|
MGCLatticeFileIngestConnectionEnabled | The Active connections count tile on the file ingestion operations workspace. Opens the connection list filtered to enabled connections. |
MGCLatticeIntegrationOpsConsoleOpen | The Dead letters awaiting action count tile. Opens the integration operations console filtered to items that are retrying, parked or held. |
MGCLatticeServiceCallLogFailedRecent | The Failed service calls (24 h) count tile. Opens the service call log filtered to calls that failed in the last 24 hours. |
MGCLatticeInboundOrderPolicyStateHeld | The Inbound orders on hold count tile. Opens the inbound order policy state list filtered to held orders. |
MGCLatticeServiceIdempotencyLogStale | The Stale idempotency claims count tile. Opens the service idempotency log filtered to claims still processing after more than an hour. |
MGCLatticeServiceIdempotencyLogManualRequired | The Claims needing manual reconciliation count tile. Opens the service idempotency log filtered to claims parked for a person. |
MGCLatticeBusinessEventLogErrorUnresolved | The Unresolved business event errors count tile. Opens the business event log filtered to unresolved errors. |
MGCLatticeCrossReferenceAccountsReceivable, MGCLatticeCrossReferenceProcurement, MGCLatticeCrossReferenceInventory, MGCLatticeCrossReferenceFixedAssets, MGCLatticeCrossReferenceProjects, MGCLatticeCrossReferenceGeneralLedger, MGCLatticeCrossReferenceProduction | The Cross references buttons on standard pages. All seven open the Cross references page; one per module so that each module's View and Maintain privileges can grant its own. |
MGCLatticeCrossReferenceFactBox | The Cross references FactBox parts on standard pages. |
MGCLatticeFileIngestBundleListPart, MGCLatticeFileIngestSegmentListPart, MGCLatticeFileIngestLogListPart, MGCLatticeIntegrationDeadLetterListPart, MGCLatticeServiceCallLogListPart, MGCLatticeServiceIdempotencyLogListPart, MGCLatticeBusinessEventLogListPart, MGCLatticeInboundOrderPolicyStateListPart | The eight hosted list parts above. A workspace part control resolves its target through a display menu item of the same name. |
See also: Security model for the full privilege, duty and role model.