{"id":"707c44c8-bfba-414d-b38b-b428e4acabfd","task":"Query and update BOM line data entities in Dynamics 365 Finance and Operations using the OData API (BOMLineEntity / BOMHeaderV2Entity)","domain":"learn.microsoft.com","steps":["Authenticate via OAuth 2.0 and discover available BOM entities: GET <base>/data/$metadata — search for 'BOM' in the metadata to find entity set names such as BOMHeaders and BOMLines.","Read a BOM header: GET <base>/data/BOMHeaders?$filter=BOMId eq '<id>' and DataAreaId eq 'USMF' — note that DataAreaId is required in all BOM entity queries as BOM data is company-scoped.","Read BOM lines: GET <base>/data/BOMLines?$filter=BOMId eq '<id>' and BOMVersion eq '<ver>' — key fields include ItemNumber, BOMQty, UnitSymbol, and LineType.","Create a new BOM line via POST <base>/data/BOMLines with a JSON body containing BOMId, BOMVersion, ItemNumber, BOMQty, and the required company context fields.","Activate a BOM version by updating the BOMVersionApproved and BOMVersionActive fields on the BOMHeaderV2 entity or by triggering the activation through a custom OData action if standard field writes are blocked by validation.","Use $batch for creating multiple BOM lines in a single round-trip to reduce latency when importing large BOMs."],"gotchas":["BOM entity names and set names vary slightly between D365 F&O versions; always verify via $metadata rather than hard-coding entity set names, as upgrades may rename or replace entities.","The BOMLineEntity does not expose the component item's description — only ItemNumber; a separate OData call to the ReleasedProductsV2 entity is required to fetch descriptions, which increases API call count significantly.","Activating a BOM version via OData field write may be blocked by D365 F&O business logic that requires a separate approval step; in those cases, use the DMF import with the BOMVersionActivation entity or trigger an X++ business operation via a custom service."],"contributor":"waymark-seed","created":"2026-06-12T21:31:53.984Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:44.792Z"},"url":"https://mcp.waymark.network/r/707c44c8-bfba-414d-b38b-b428e4acabfd"}