{
  "title": "Codeunit 5870 Calculate BOM Tree",
  "url": "https://jonas-paprotka.de/ref/codeunit/5870-calculate-bom-tree/",
  "author": "Jonas Paprotka",
  "license": "Content © 2026 Jonas Paprotka. Quote freely with attribution and a link.",
  "subject": "Microsoft Dynamics 365 Business Central",
  "checked": "2026-09-20",
  "source": {
    "feed": "https://dynamicssmb2.pkgs.visualstudio.com/DynamicsBCPublicFeeds/_packaging/MSSymbols/nuget/v3/index.json",
    "package": "Microsoft.BaseApplication.symbols.437dbf0e-84ff-417a-965d-ed2bb9650972",
    "build": "28.5.54151.54365",
    "code": {
      "29": {
        "url": "https://jonas-paprotka.de/ref/codeunit/5870-calculate-bom-tree/source/29/",
        "repo": "https://github.com/microsoft/BCApps",
        "branch": "releases/29.x",
        "commit": "a66254c3b8b5bb1cea290dc8f9d097aec4381153",
        "path": "src/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al",
        "license": "MIT"
      }
    },
    "note": "Presence per major, highest build of each; 17 is the oldest major on the feed. Local procedures are not listed."
  },
  "object": {
    "type": "codeunit",
    "id": 5870,
    "name": "Calculate BOM Tree",
    "app": "Base Application",
    "appByVersion": [
      {
        "app": "Base Application",
        "from": 17
      }
    ],
    "nameByVersion": [
      {
        "name": "Calculate BOM Tree",
        "from": 17
      }
    ],
    "namespace": "Microsoft.Inventory.BOM.Tree",
    "versions": "17-28",
    "majors": [
      17,
      18,
      19,
      20,
      21,
      22,
      23,
      24,
      25,
      26,
      27,
      28
    ],
    "extends": null,
    "sourceTable": null,
    "sourceFile": "Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al",
    "obsolete": null,
    "obsoleteSeenFrom": null,
    "byVersion": {
      "17": {
        "app": "base-application",
        "name": "Calculate BOM Tree",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 19,
          "values": 0
        },
        "stub": false
      },
      "18": {
        "app": "base-application",
        "name": "Calculate BOM Tree",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 23,
          "values": 0
        },
        "stub": false
      },
      "19": {
        "app": "base-application",
        "name": "Calculate BOM Tree",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 29,
          "values": 0
        },
        "stub": false
      },
      "20": {
        "app": "base-application",
        "name": "Calculate BOM Tree",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 29,
          "values": 0
        },
        "stub": false
      },
      "21": {
        "app": "base-application",
        "name": "Calculate BOM Tree",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 31,
          "values": 0
        },
        "stub": false
      },
      "22": {
        "app": "base-application",
        "name": "Calculate BOM Tree",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 33,
          "values": 0
        },
        "stub": false
      },
      "23": {
        "app": "base-application",
        "name": "Calculate BOM Tree",
        "ns": "Microsoft.Inventory.BOM.Tree",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 34,
          "values": 0
        },
        "stub": false
      },
      "24": {
        "app": "base-application",
        "name": "Calculate BOM Tree",
        "ns": "Microsoft.Inventory.BOM.Tree",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 34,
          "values": 0
        },
        "stub": false
      },
      "25": {
        "app": "base-application",
        "name": "Calculate BOM Tree",
        "ns": "Microsoft.Inventory.BOM.Tree",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 35,
          "values": 0
        },
        "stub": false
      },
      "26": {
        "app": "base-application",
        "name": "Calculate BOM Tree",
        "ns": "Microsoft.Inventory.BOM.Tree",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 35,
          "values": 0
        },
        "stub": false
      },
      "27": {
        "app": "base-application",
        "name": "Calculate BOM Tree",
        "ns": "Microsoft.Inventory.BOM.Tree",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 69,
          "values": 0
        },
        "stub": false
      },
      "28": {
        "app": "base-application",
        "name": "Calculate BOM Tree",
        "ns": "Microsoft.Inventory.BOM.Tree",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 72,
          "values": 0
        },
        "stub": false
      }
    },
    "fields": [],
    "keys": [],
    "procedures": [
      {
        "name": "GenerateTreeForItems",
        "sig": "(var Record Item, var Record BOM Buffer, Option)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by procedure GenerateTreeForManyItems",
          "tag": "27.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 17,
            "to": 26,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by procedure GenerateTreeForManyItems",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "GenerateTreeForItem",
        "sig": "(var Record Item, var Record BOM Buffer, Date, Option)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by procedure GenerateTreeForOneItem()",
          "tag": "27.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 17,
            "to": 26,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by procedure GenerateTreeForOneItem()",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "GenerateTreeForAsm",
        "sig": "(Record Assembly Header, var Record BOM Buffer, Option)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by procedure GenerateTreeForAssemblyHeader()",
          "tag": "27.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 17,
            "to": 26,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by procedure GenerateTreeForAssemblyHeader()",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "GenerateTreeForProdLine",
        "sig": "(Record Prod. Order Line, var Record BOM Buffer, Option)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by procedure GenerateTreeForProdOrderLine",
          "tag": "27.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 17,
            "to": 26,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by procedure GenerateTreeForProdOrderLine",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "SetShowTotalAvailability",
        "sig": "(Boolean)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 17,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "SetItemFilter",
        "sig": "(var Record Item)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 17,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "InitVars",
        "sig": "()",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "InitBOMBuffer",
        "sig": "(var Record BOM Buffer)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "InitTreeType",
        "sig": "(Enum BOM Tree Type)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "GetTreeType",
        "sig": "()",
        "returns": "Enum BOM Tree Type",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "Enum BOM Tree Type",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "GenerateTreeForManyItems",
        "sig": "(var Record Item, var Record BOM Buffer, Enum BOM Tree Type)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "GenerateTreeForOneItem",
        "sig": "(var Record Item, var Record BOM Buffer, Date, Enum BOM Tree Type)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "GenerateTreeForSource",
        "sig": "(Variant, var Record BOM Buffer, Enum BOM Tree Type, Enum BOM Structure Show By, Date)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "GenerateTreeForAssemblyHeader",
        "sig": "(Record Assembly Header, var Record BOM Buffer, Enum BOM Tree Type)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit AsmCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit AsmCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "GenerateTreeForProdOrderLine",
        "sig": "(Record Prod. Order Line, var Record BOM Buffer, Enum BOM Tree Type)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "CalculateTreeType",
        "sig": "(var Record BOM Buffer, Boolean, Enum BOM Tree Type)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "GenerateItemSubTree",
        "sig": "(Code[20], var Record BOM Buffer)",
        "returns": "Boolean",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "Boolean",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "CalcCompDueDate",
        "sig": "(Date, Record Item, DateFormula)",
        "returns": "Date",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "Date",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "SetLocationSpecific",
        "sig": "(Boolean)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "GetShowTotalAvailability",
        "sig": "()",
        "returns": "Boolean",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "Boolean",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnAfterGenerateProdCompSubTree",
        "sig": "(var Record Item, var Record BOM Buffer, var Record BOM Buffer)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnAfterTransferFromProdItem",
        "sig": "(var Record BOM Buffer, Record Production BOM Line, var Integer)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnAfterTransferFromProdBOM",
        "sig": "(var Record BOM Buffer, Record Production BOM Line)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnAfterTransferFromProdRouting",
        "sig": "(var Record BOM Buffer, var Record Routing Line)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnBeforeCalcRoutingLineCosts",
        "sig": "(var Record Routing Line, var Decimal, var Decimal, Record Item)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnBeforeFilterByQuantityPer",
        "sig": "(var Record Production BOM Line, var Boolean, Record BOM Buffer)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnBeforeTransferFromProdBOM",
        "sig": "(var Record BOM Buffer, var Record Production BOM Line, var Record Item, var Record BOM Buffer, var Integer, Option)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnBeforeTransferProdBOMLine",
        "sig": "(var Record BOM Buffer, var Record Production BOM Line, var Record Item, var Record BOM Buffer, var Integer, Option, var Boolean)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnGenerateAsmHeaderSubTreeOnAfterAsmLineLoop",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnGenerateProdCompSubTreeOnBeforeExitForNonProdOrder",
        "sig": "(Record Item, var Record BOM Buffer, var Boolean)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnGenerateProdCompSubTreeOnAfterGenerateItemSubTree",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnGenerateProdCompSubTreeOnAfterProdBOMLineLoop",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnGenerateProdCompSubTreeOnBeforeBOMBufferModify",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer, Record Item)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnCalcRoutingLineCostsOnBeforeBOMBufferAdd",
        "sig": "(Record Routing Line, Decimal, Decimal, var Decimal, var Decimal, var Decimal, var Record BOM Buffer)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnGenerateProdCompSubTreeOnAfterBOMBufferModify",
        "sig": "(var Record BOM Buffer, Record Routing Line, Decimal, Record Item, Record BOM Buffer, Option)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnGenerateProdCompSubTreeOnBeforeRoutingLineLoop",
        "sig": "(var Record Routing Line, var Record BOM Buffer, var Boolean)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunOnBeforeGenerateProdOrderLineSubTree",
        "sig": "(Record Prod. Order Line, var Record BOM Buffer, var Record BOM Buffer, var Boolean, var Boolean)",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          }
        ]
      }
    ],
    "events": [
      {
        "name": "OnAfterFilterBOMBuffer",
        "sig": "(var Record Item, var Record BOM Buffer, Date, Option)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 17,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnAfterGenerateProdCompSubTree",
        "sig": "(var Record Item, var Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          17,
          18
        ],
        "range": "17-18",
        "first": 17,
        "last": 18,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 17,
            "to": 18,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnAfterTransferFromProdItem",
        "sig": "(var Record BOM Buffer, Record Production BOM Line)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          17
        ],
        "range": "17",
        "first": 17,
        "last": 17,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 17,
            "to": 17,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnAfterTransferFromProdBOM",
        "sig": "(var Record BOM Buffer, Record Production BOM Line)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 17,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnAfterTransferFromProdRouting",
        "sig": "(var Record BOM Buffer, Record Routing Line)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          17,
          18,
          19,
          20
        ],
        "range": "17-20",
        "first": 17,
        "last": 20,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 17,
            "to": 20,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnBeforeCalcRoutingLineCosts",
        "sig": "(var Record Routing Line, var Decimal, var Decimal, Record Item)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 17,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnBeforeFilterBOMBuffer",
        "sig": "(var Record Item, var Record BOM Buffer, Date, Option, var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 17,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnBeforeFilterByQuantityPer",
        "sig": "(var Record Production BOM Line, var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23
        ],
        "range": "17-23",
        "first": 17,
        "last": 23,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 17,
            "to": 23,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnBeforeTransferFromProdBOM",
        "sig": "(var Record BOM Buffer, var Record Production BOM Line, var Record Item, var Record BOM Buffer, var Integer, Option)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 17,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnBeforeTransferProdBOMLine",
        "sig": "(var Record BOM Buffer, var Record Production BOM Line, var Record Item, var Record BOM Buffer, var Integer, Option, var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 17,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnTraverseCostTreeOnAfterAddCost",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced with a more generic OnTraverseCostTreeOnAfterAddCosts",
          "tag": "22.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24
        ],
        "range": "17-24",
        "first": 17,
        "last": 24,
        "obsoleteSince": 21,
        "spans": [
          {
            "from": 17,
            "to": 20,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 21,
            "to": 24,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced with a more generic OnTraverseCostTreeOnAfterAddCosts",
              "tag": "22.0"
            }
          }
        ]
      },
      {
        "name": "OnCalcRoutingLineCostsOnBeforeBOMBufferAdd",
        "sig": "(Record Routing Line, Decimal, Decimal, var Decimal, var Decimal, var Decimal, var Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 17,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnGenerateProdCompSubTreeOnAfterBOMBufferModify",
        "sig": "(var Record BOM Buffer, Record Routing Line, Decimal, Record Item, Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23
        ],
        "range": "17-23",
        "first": 17,
        "last": 23,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 17,
            "to": 23,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnAfterTransferFromProdItem",
        "sig": "(var Record BOM Buffer, Record Production BOM Line, var Integer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "18-28",
        "first": 18,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 18,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnBeforeGenerateTreeForItems",
        "sig": "(var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "18-28",
        "first": 18,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 18,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnGenerateProdCompSubTreeOnBeforeRoutingLineLoop",
        "sig": "(var Record Routing Line, var Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          18,
          19
        ],
        "range": "18-19",
        "first": 18,
        "last": 19,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 18,
            "to": 19,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnGenerateTreeForItemLocalOnBeforeCalculateTreeType",
        "sig": "(var Record Item, var Record BOM Buffer, var Option, var Integer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "18-28",
        "first": 18,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 18,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnInitItemAvailDatesOnBeforeCalcAvailableQty",
        "sig": "(var Record Item)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "18-28",
        "first": 18,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 18,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnAfterGenerateProdCompSubTree",
        "sig": "(var Record Item, var Record BOM Buffer, var Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 19,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnBeforeGenerateTreeForItemLocal",
        "sig": "(var Record Item, Date, Option)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          19
        ],
        "range": "19",
        "first": 19,
        "last": 19,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 19,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnGenerateAsmHeaderSubTreeOnAfterAsmLineLoop",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit AsmCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 19,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit AsmCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnGenerateProdCompSubTreeOnAfterGenerateItemSubTree",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 19,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnGenerateProdCompSubTreeOnAfterProdBOMLineLoop",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 19,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnGenerateItemSubTreeOnAfterParentItemGet",
        "sig": "(var Record Item)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnGenerateProdCompSubTreeOnBeforeBOMBufferModify",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer, Record Item)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 19,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnBeforeGenerateTreeForItemLocal",
        "sig": "(var Record Item, Date, Option, var Record BOM Buffer, var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "20-28",
        "first": 20,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 20,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnGenerateProdCompSubTreeOnBeforeRoutingLineLoop",
        "sig": "(var Record Routing Line, var Record BOM Buffer, var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "20-28",
        "first": 20,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 20,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnAfterTransferFromProdRouting",
        "sig": "(var Record BOM Buffer, var Record Routing Line)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "21-28",
        "first": 21,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 21,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnGenerateProdCompSubTreeOnBeforeExitForNonProdOrder",
        "sig": "(Record Item, var Record BOM Buffer, var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "21-28",
        "first": 21,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 21,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnTraverseCostTreeOnAfterAddCosts",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "21-28",
        "first": 21,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 21,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnTraverseTreeOnBeforeCalcAbleToMakeParentAndTopItem",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer, var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "22-28",
        "first": 22,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 22,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnGenerateBOMCompSubTreeOnBeforeLoopBOMComponents",
        "sig": "(Record Item, var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "22-28",
        "first": 22,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 22,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnBeforeInitBOMBuffer",
        "sig": "(var Record BOM Buffer, var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "23-28",
        "first": 23,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 23,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnBeforeFilterByQuantityPer",
        "sig": "(var Record Production BOM Line, var Boolean, Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          24,
          25,
          26,
          27,
          28
        ],
        "range": "24-28",
        "first": 24,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 24,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnGenerateProdCompSubTreeOnAfterBOMBufferModify",
        "sig": "(var Record BOM Buffer, Record Routing Line, Decimal, Record Item, Record BOM Buffer, Option)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          24,
          25,
          26,
          27,
          28
        ],
        "range": "24-28",
        "first": 24,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 24,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnCalcAvailabilityOnBeforeUpdateAvailableQty",
        "sig": "(var Record BOM Buffer, Decimal, Decimal, var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          25,
          26,
          27,
          28
        ],
        "range": "25-28",
        "first": 25,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 25,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnBeforeGenerateProdOrderLineSubTree",
        "sig": "(Record Prod. Order Line, var Record BOM Buffer, var Record BOM Buffer, var Boolean, var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Moved to codeunit MfgCalculateBOMTree",
          "tag": "27.0"
        },
        "majors": [
          25,
          26,
          27,
          28
        ],
        "range": "25-28",
        "first": 25,
        "last": 28,
        "obsoleteSince": 27,
        "spans": [
          {
            "from": 25,
            "to": 26,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Moved to codeunit MfgCalculateBOMTree",
              "tag": "27.0"
            }
          }
        ]
      },
      {
        "name": "OnGenerateTreeForSource",
        "sig": "(Variant, var Record BOM Buffer, Enum BOM Tree Type, Enum BOM Structure Show By, Date, var Record Item, var Integer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "public",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnGenerateItemSubTreeOnSetIsLeaf",
        "sig": "(var Record Item, var Record BOM Buffer, var Record Item, var Integer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnHasBOMStructure",
        "sig": "(var Record Item, var Boolean)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          27,
          28
        ],
        "range": "27-28",
        "first": 27,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 27,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnAfterCalcCompDueDate",
        "sig": "(var Date, Date, Record Item, DateFormula)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          28
        ],
        "range": "28",
        "first": 28,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 28,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnTraverseCostTreeOnBeforeAddCosts",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          28
        ],
        "range": "28",
        "first": 28,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 28,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      },
      {
        "name": "OnTraverseCostTreeOnBeforeLastUpdateNodeCosts",
        "sig": "(var Record BOM Buffer, var Record BOM Buffer)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": null,
        "majors": [
          28
        ],
        "range": "28",
        "first": 28,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 28,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          }
        ]
      }
    ],
    "values": []
  }
}