{
  "title": "Table 9650 Custom Report Layout",
  "url": "https://jonas-paprotka.de/ref/table/9650-custom-report-layout/",
  "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/table/9650-custom-report-layout/source/29/",
        "repo": "https://github.com/microsoft/BCApps",
        "branch": "releases/29.x",
        "commit": "a66254c3b8b5bb1cea290dc8f9d097aec4381153",
        "path": "src/Layers/W1/BaseApp/Foundation/Reporting/CustomReportLayout.Table.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": "table",
    "id": 9650,
    "name": "Custom Report Layout",
    "app": "Base Application",
    "appByVersion": [
      {
        "app": "Base Application",
        "from": 17
      }
    ],
    "nameByVersion": [
      {
        "name": "Custom Report Layout",
        "from": 17
      }
    ],
    "namespace": "Microsoft.Foundation.Reporting",
    "versions": "17-28",
    "majors": [
      17,
      18,
      19,
      20,
      21,
      22,
      23,
      24,
      25,
      26,
      27,
      28
    ],
    "extends": null,
    "sourceTable": null,
    "sourceFile": "Foundation/Reporting/CustomReportLayout.Table.al",
    "obsolete": null,
    "obsoleteSeenFrom": null,
    "byVersion": {
      "17": {
        "app": "base-application",
        "name": "Custom Report Layout",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 14,
          "keys": 2,
          "methods": 49,
          "values": 0
        },
        "stub": false
      },
      "18": {
        "app": "base-application",
        "name": "Custom Report Layout",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 14,
          "keys": 2,
          "methods": 49,
          "values": 0
        },
        "stub": false
      },
      "19": {
        "app": "base-application",
        "name": "Custom Report Layout",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 14,
          "keys": 2,
          "methods": 51,
          "values": 0
        },
        "stub": false
      },
      "20": {
        "app": "base-application",
        "name": "Custom Report Layout",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 14,
          "keys": 2,
          "methods": 45,
          "values": 0
        },
        "stub": false
      },
      "21": {
        "app": "base-application",
        "name": "Custom Report Layout",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 14,
          "keys": 2,
          "methods": 46,
          "values": 0
        },
        "stub": false
      },
      "22": {
        "app": "base-application",
        "name": "Custom Report Layout",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 14,
          "keys": 2,
          "methods": 47,
          "values": 0
        },
        "stub": false
      },
      "23": {
        "app": "base-application",
        "name": "Custom Report Layout",
        "ns": "Microsoft.Foundation.Reporting",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 14,
          "keys": 2,
          "methods": 44,
          "values": 0
        },
        "stub": false
      },
      "24": {
        "app": "base-application",
        "name": "Custom Report Layout",
        "ns": "Microsoft.Foundation.Reporting",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 14,
          "keys": 2,
          "methods": 44,
          "values": 0
        },
        "stub": false
      },
      "25": {
        "app": "base-application",
        "name": "Custom Report Layout",
        "ns": "Microsoft.Foundation.Reporting",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 14,
          "keys": 2,
          "methods": 44,
          "values": 0
        },
        "stub": false
      },
      "26": {
        "app": "base-application",
        "name": "Custom Report Layout",
        "ns": "Microsoft.Foundation.Reporting",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 14,
          "keys": 2,
          "methods": 44,
          "values": 0
        },
        "stub": false
      },
      "27": {
        "app": "base-application",
        "name": "Custom Report Layout",
        "ns": "Microsoft.Foundation.Reporting",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 14,
          "keys": 2,
          "methods": 44,
          "values": 0
        },
        "stub": false
      },
      "28": {
        "app": "base-application",
        "name": "Custom Report Layout",
        "ns": "Microsoft.Foundation.Reporting",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 14,
          "keys": 2,
          "methods": 44,
          "values": 0
        },
        "stub": false
      }
    },
    "fields": [
      {
        "id": 1,
        "name": "Code",
        "type": "Code[20]",
        "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,
            "name": "Code",
            "type": "Code[20]",
            "obsolete": null
          }
        ]
      },
      {
        "id": 2,
        "name": "Report ID",
        "type": "Integer",
        "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,
            "name": "Report ID",
            "type": "Integer",
            "obsolete": null
          }
        ]
      },
      {
        "id": 3,
        "name": "Report Name",
        "type": "Text[250]",
        "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": 22,
            "name": "Report Name",
            "type": "Text[80]",
            "obsolete": null
          },
          {
            "from": 23,
            "to": 28,
            "name": "Report Name",
            "type": "Text[250]",
            "obsolete": null
          }
        ]
      },
      {
        "id": 4,
        "name": "Company Name",
        "type": "Text[30]",
        "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,
            "name": "Company Name",
            "type": "Text[30]",
            "obsolete": null
          }
        ]
      },
      {
        "id": 6,
        "name": "Type",
        "type": "Enum Custom Report Layout Type",
        "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,
            "name": "Type",
            "type": "Enum Custom Report Layout Type",
            "obsolete": null
          }
        ]
      },
      {
        "id": 7,
        "name": "Layout",
        "type": "Blob",
        "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,
            "name": "Layout",
            "type": "Blob",
            "obsolete": null
          }
        ]
      },
      {
        "id": 8,
        "name": "Last Modified",
        "type": "DateTime",
        "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,
            "name": "Last Modified",
            "type": "DateTime",
            "obsolete": null
          }
        ]
      },
      {
        "id": 9,
        "name": "Last Modified by User",
        "type": "Code[50]",
        "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,
            "name": "Last Modified by User",
            "type": "Code[50]",
            "obsolete": null
          }
        ]
      },
      {
        "id": 10,
        "name": "File Extension",
        "type": "Text[30]",
        "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,
            "name": "File Extension",
            "type": "Text[30]",
            "obsolete": null
          }
        ]
      },
      {
        "id": 11,
        "name": "Description",
        "type": "Text[250]",
        "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,
            "name": "Description",
            "type": "Text[250]",
            "obsolete": null
          }
        ]
      },
      {
        "id": 12,
        "name": "Custom XML Part",
        "type": "Blob",
        "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,
            "name": "Custom XML Part",
            "type": "Blob",
            "obsolete": null
          }
        ]
      },
      {
        "id": 13,
        "name": "App ID",
        "type": "Guid",
        "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,
            "name": "App ID",
            "type": "Guid",
            "obsolete": null
          }
        ]
      },
      {
        "id": 14,
        "name": "Built-In",
        "type": "Boolean",
        "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,
            "name": "Built-In",
            "type": "Boolean",
            "obsolete": null
          }
        ]
      },
      {
        "id": 15,
        "name": "Layout Last Updated",
        "type": "DateTime",
        "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,
            "name": "Layout Last Updated",
            "type": "DateTime",
            "obsolete": null
          }
        ]
      }
    ],
    "keys": [
      {
        "name": "Key1",
        "fields": [
          "Code"
        ],
        "clustered": true,
        "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,
            "fields": [
              "Code"
            ],
            "clustered": true
          }
        ]
      },
      {
        "name": "Key2",
        "fields": [
          "Report ID",
          "Company Name",
          "Type"
        ],
        "clustered": false,
        "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,
            "fields": [
              "Report ID",
              "Company Name",
              "Type"
            ],
            "clustered": false
          }
        ]
      }
    ],
    "procedures": [
      {
        "name": "InitBuiltInLayout",
        "sig": "(Integer, Option)",
        "returns": "Code[20]",
        "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": "Code[20]",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "CopyBuiltInLayout",
        "sig": "()",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by CopyBuildInReportLayout()",
          "tag": "17.0"
        },
        "majors": [
          17,
          18,
          19
        ],
        "range": "17-19",
        "first": 17,
        "last": 19,
        "obsoleteSince": 17,
        "spans": [
          {
            "from": 17,
            "to": 19,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by CopyBuildInReportLayout()",
              "tag": "17.0"
            }
          }
        ]
      },
      {
        "name": "CopyBuiltInReportLayout",
        "sig": "()",
        "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": "GetCustomRdlc",
        "sig": "(Integer)",
        "returns": "Text",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "This procedure is replaced by the report event FetchReportLayoutByCode. Subscribe to it to retrieve a selected custom layout.",
          "tag": "20.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22
        ],
        "range": "17-22",
        "first": 17,
        "last": 22,
        "obsoleteSince": 20,
        "spans": [
          {
            "from": 17,
            "to": 19,
            "returns": "Text",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          },
          {
            "from": 20,
            "to": 22,
            "returns": "Text",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "This procedure is replaced by the report event FetchReportLayoutByCode. Subscribe to it to retrieve a selected custom layout.",
              "tag": "20.0"
            }
          }
        ]
      },
      {
        "name": "CopyRecord",
        "sig": "()",
        "returns": "Code[20]",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by CopyReportLayout()",
          "tag": "17.0"
        },
        "majors": [
          17,
          18,
          19
        ],
        "range": "17-19",
        "first": 17,
        "last": 19,
        "obsoleteSince": 17,
        "spans": [
          {
            "from": 17,
            "to": 19,
            "returns": "Code[20]",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by CopyReportLayout()",
              "tag": "17.0"
            }
          }
        ]
      },
      {
        "name": "CopyReportLayout",
        "sig": "()",
        "returns": "Code[20]",
        "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": "Code[20]",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "ImportLayout",
        "sig": "(Text)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by ImportReportLayout()",
          "tag": "17.0"
        },
        "majors": [
          17,
          18,
          19
        ],
        "range": "17-19",
        "first": 17,
        "last": 19,
        "obsoleteSince": 17,
        "spans": [
          {
            "from": 17,
            "to": 19,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by ImportReportLayout()",
              "tag": "17.0"
            }
          }
        ]
      },
      {
        "name": "ImportReportLayout",
        "sig": "(Text)",
        "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": "ImportLayoutBlob",
        "sig": "(var Codeunit Temp Blob, Text[30])",
        "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": "ExportLayout",
        "sig": "(Text, Boolean)",
        "returns": "Text",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by ExportReportLayout()",
          "tag": "17.0"
        },
        "majors": [
          17,
          18,
          19
        ],
        "range": "17-19",
        "first": 17,
        "last": 19,
        "obsoleteSince": 17,
        "spans": [
          {
            "from": 17,
            "to": 19,
            "returns": "Text",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by ExportReportLayout()",
              "tag": "17.0"
            }
          }
        ]
      },
      {
        "name": "ExportReportLayout",
        "sig": "(Text, Boolean)",
        "returns": "Text",
        "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": "Text",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "ValidateLayout",
        "sig": "(Boolean, Boolean)",
        "returns": "Boolean",
        "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": "Boolean",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "UpdateLayout",
        "sig": "(Boolean, Boolean)",
        "returns": "Boolean",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by UpdateReportLayout()",
          "tag": "17.0"
        },
        "majors": [
          17,
          18,
          19
        ],
        "range": "17-19",
        "first": 17,
        "last": 19,
        "obsoleteSince": 17,
        "spans": [
          {
            "from": 17,
            "to": 19,
            "returns": "Boolean",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by UpdateReportLayout()",
              "tag": "17.0"
            }
          }
        ]
      },
      {
        "name": "UpdateReportLayout",
        "sig": "(Boolean, Boolean)",
        "returns": "Boolean",
        "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": "Boolean",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "TryUpdateLayout",
        "sig": "(Boolean)",
        "returns": "Text",
        "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": "Text",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "ExportSchema",
        "sig": "(Text, Boolean)",
        "returns": "Text",
        "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": "Text",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "EditLayout",
        "sig": "()",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by EditReportLayout()",
          "tag": "17.0"
        },
        "majors": [
          17,
          18,
          19
        ],
        "range": "17-19",
        "first": 17,
        "last": 19,
        "obsoleteSince": 17,
        "spans": [
          {
            "from": 17,
            "to": 19,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by EditReportLayout()",
              "tag": "17.0"
            }
          }
        ]
      },
      {
        "name": "EditReportLayout",
        "sig": "()",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "The codeunits run in this procedure are being removed as they use .NET which do not work on the web client. The procedure will be removed.",
          "tag": "17.3"
        },
        "majors": [
          17,
          18,
          19
        ],
        "range": "17-19",
        "first": 17,
        "last": 19,
        "obsoleteSince": 17,
        "spans": [
          {
            "from": 17,
            "to": 19,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "The codeunits run in this procedure are being removed as they use .NET which do not work on the web client. The procedure will be removed.",
              "tag": "17.3"
            }
          }
        ]
      },
      {
        "name": "GetWordXmlPart",
        "sig": "(Integer)",
        "returns": "Text",
        "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": "Text",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "RunCustomReport",
        "sig": "()",
        "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": "ApplyUpgrade",
        "sig": "(var DotNet ReportUpgradeSet, var DotNet IReportChangeLogCollection, 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": "LookupLayoutOK",
        "sig": "(Integer)",
        "returns": "Boolean",
        "kind": "procedure",
        "access": "public",
        "obsolete": {
          "state": "Pending",
          "reason": "This procedure is obsolete because the lookup page 9650 Custom Report Layouts is obsoleted.",
          "tag": "28.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": 28,
        "spans": [
          {
            "from": 17,
            "to": 27,
            "returns": "Boolean",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          },
          {
            "from": 28,
            "to": 28,
            "returns": "Boolean",
            "kind": "procedure",
            "access": "public",
            "obsolete": {
              "state": "Pending",
              "reason": "This procedure is obsolete because the lookup page 9650 Custom Report Layouts is obsoleted.",
              "tag": "28.0"
            }
          }
        ]
      },
      {
        "name": "GetDefaultCode",
        "sig": "(Integer)",
        "returns": "Code[20]",
        "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": "Code[20]",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "CanBeModified",
        "sig": "()",
        "returns": "Boolean",
        "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": "Boolean",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "NewExtensionLayout",
        "sig": "(Guid, DotNet DataTable)",
        "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": "HasLayout",
        "sig": "()",
        "returns": "Boolean",
        "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": "Boolean",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "HasCustomXmlPart",
        "sig": "()",
        "returns": "Boolean",
        "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": "Boolean",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "GetLayout",
        "sig": "()",
        "returns": "Text",
        "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": "Text",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "GetCustomXmlPart",
        "sig": "()",
        "returns": "Text",
        "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": "Text",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "GetLayoutBlob",
        "sig": "(var Codeunit Temp Blob)",
        "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": "ClearLayout",
        "sig": "()",
        "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": "ClearCustomXmlPart",
        "sig": "()",
        "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": "TestLayout",
        "sig": "()",
        "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": "TestCustomXmlPart",
        "sig": "()",
        "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": "SetLayout",
        "sig": "(Text)",
        "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": "SetCustomXmlPart",
        "sig": "(Text)",
        "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": "SetDefaultCustomXmlPart",
        "sig": "()",
        "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": "SetLayoutBlob",
        "sig": "(var Codeunit Temp Blob)",
        "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": "SetLayoutLastUpdated",
        "sig": "()",
        "returns": "",
        "kind": "procedure",
        "access": "internal",
        "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": "internal",
            "obsolete": null
          }
        ]
      },
      {
        "name": "CanModify",
        "sig": "()",
        "returns": "Boolean",
        "kind": "procedure",
        "access": "public",
        "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": "Boolean",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "GetFileExtension",
        "sig": "()",
        "returns": "Text[4]",
        "kind": "procedure",
        "access": "public",
        "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": "Text[4]",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      }
    ],
    "events": [
      {
        "name": "OnAfterReportGetCustomRdlc",
        "sig": "(Integer, var Text)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "This event is replaced by the report event FetchReportLayoutByCode. Subscribe to it to retrieve a selected custom layout.",
          "tag": "20.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22
        ],
        "range": "17-22",
        "first": 17,
        "last": 22,
        "obsoleteSince": 20,
        "spans": [
          {
            "from": 17,
            "to": 19,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 20,
            "to": 22,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "This event is replaced by the report event FetchReportLayoutByCode. Subscribe to it to retrieve a selected custom layout.",
              "tag": "20.0"
            }
          }
        ]
      },
      {
        "name": "OnBeforeUpdateLayout",
        "sig": "(var Boolean, 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": "OnCopyRecordOnBeforeInsertLayout",
        "sig": "(var Record Custom Report Layout, Record Custom Report Layout)",
        "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": "OnGetNonBuiltInLayout",
        "sig": "(Record Custom Report Layout, var InStream)",
        "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": "OnGetFileExtension",
        "sig": "(Record Custom Report Layout, var Text[4])",
        "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": "OnImportLayoutBlob",
        "sig": "(Record Custom Report Layout, var Codeunit Temp Blob, Text[30], Text, OutStream)",
        "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": "OnImportLayoutSetFileFilter",
        "sig": "(Record Custom Report Layout, var Text)",
        "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": "OnInitBuiltInLayout",
        "sig": "(var Record Custom Report Layout, Integer, 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": "OnLookupLayoutOKOnBeforePageRun",
        "sig": "(var Record Custom Report Layout)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "This procedure is obsolete because the procedure LookupLayoutOK is obsoleted.",
          "tag": "28.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "17-28",
        "first": 17,
        "last": 28,
        "obsoleteSince": 28,
        "spans": [
          {
            "from": 17,
            "to": 27,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 28,
            "to": 28,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "This procedure is obsolete because the procedure LookupLayoutOK is obsoleted.",
              "tag": "28.0"
            }
          }
        ]
      },
      {
        "name": "OnGetCustomRdlcOnAfterSelectCustomLayoutCode",
        "sig": "(Integer, var Code[20])",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "This event is replaced by the report event SelectReportLayoutCode. Subscribe to it to select a custom layout.",
          "tag": "20.0"
        },
        "majors": [
          17,
          18,
          19,
          20,
          21,
          22
        ],
        "range": "17-22",
        "first": 17,
        "last": 22,
        "obsoleteSince": 20,
        "spans": [
          {
            "from": 17,
            "to": 19,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 20,
            "to": 22,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "This event is replaced by the report event SelectReportLayoutCode. Subscribe to it to select a custom layout.",
              "tag": "20.0"
            }
          }
        ]
      },
      {
        "name": "OnBeforeExportReportLayout",
        "sig": "(Record Custom Report Layout, var Text, Boolean)",
        "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": "OnBeforeExportSchema",
        "sig": "(Record Custom Report Layout, var Text, Boolean, var Boolean)",
        "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": "OnBeforeCanBeModified",
        "sig": "(var Record Custom Report Layout, var Boolean)",
        "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
          }
        ]
      }
    ],
    "values": []
  }
}