---
id: object/codeunit/9750
type: object
title: Codeunit 9750 "Web Service Management"
summary: Codeunit 9750 "Web Service Management" in System Application (System.Integration). 23 public procedures. Present since at least BC23, still in BC30.
tier: official
language: en
tags:
  - codeunit
  - system application
versions:
  introduced: null
  last_changed: null
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: b7dd1cbf90c6cd38b54d24377b44ca55bb61fbb60c4a4957079f57bb29a1036c
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/Web%20Service%20Management/src/WebServiceManagement.Codeunit.al
    title: src/System Application/App/Web Service Management/src/WebServiceManagement.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 9750
name: Web Service Management
namespace: System.Integration
app: System Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 23
  events: 0
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 1
  called_by: 8
  implements: 0
---

# Codeunit 9750 "Web Service Management"

> Codeunit 9750 "Web Service Management" in System Application (System.Integration). 23 public procedures. Present since at least BC23, still in BC30.

System Application · System.Integration · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/Web%20Service%20Management/src/WebServiceManagement.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Access | Public |

## Procedures

- `CreateWebService(ObjectType: Option; ObjectId: Integer; ObjectName: Text; Published: Boolean)`: Creates a web service for a given object. If the web service already exists, it modifies the web service accordingly. This method should be used for On-Prem scenarios only. Calling this method in SaaS will throw a runtime error.
- `CreateTenantWebService(ObjectType: Option; ObjectId: Integer; ObjectName: Text; Published: Boolean)`: Creates a tenant web service for a given object. If the tenant web service already exists, it modifies the tenant web service accordingly.
- `GetWebServiceUrl(WebServiceAggregate: Record "Web Service Aggregate"; ClientType: Enum "Client Type"): Text`: Gets the web service URL for a given Web Service Aggregate record and client type.
- `CreateTenantWebServiceColumnsFromTemp(var TenantWebServiceColumns: Record "Tenant Web Service Columns"; var TempTenantWebServiceColumns: Record "Tenant Web Service Columns" temporary; TenantWebServiceRecordId: RecordId)`: Creates tenant web service columns from temporary records.
- `CreateTenantWebServiceFilterFromRecordRef(var TenantWebServiceFilter: Record "Tenant Web Service Filter"; var RecordRef: RecordRef; TenantWebServiceRecordId: RecordId)`: Creates a tenant web service filter from a record reference.
- `GetTenantWebServiceFilter(TenantWebServiceFilter: Record "Tenant Web Service Filter"): Text`: Returns the tenant web service filter for a given record.
- `RetrieveTenantWebServiceFilter(var TenantWebServiceFilter: Record "Tenant Web Service Filter"): Text`: Returns the tenant web service filter for a given record.
- `SetTenantWebServiceFilter(var TenantWebServiceFilter: Record "Tenant Web Service Filter"; FilterText: Text)`: Sets the tenant web service filter for a given record.
- `GetODataSelectClause(TenantWebServiceOData: Record "Tenant Web Service OData"): Text`: Returns the OData select clause for a given record.
- `SetODataSelectClause(var TenantWebServiceOData: Record "Tenant Web Service OData"; ODataText: Text)`: Sets the OData select clause for a given record.
- `GetODataFilterClause(TenantWebServiceOData: Record "Tenant Web Service OData"): Text`: Returns the OData filter clause for a given record.
- `SetODataFilterClause(var TenantWebServiceOData: Record "Tenant Web Service OData"; ODataText: Text)`: Sets the OData filter clause for a given record.
- `GetODataV4FilterClause(TenantWebServiceOData: Record "Tenant Web Service OData"): Text`: Returns the OData V4 filter clause for a given record.
- `SetODataV4FilterClause(var TenantWebServiceOData: Record "Tenant Web Service OData"; ODataText: Text)`: Sets the OData V4 filter clause for a given record.
- `GetObjectCaption(WebServiceAggregate: Record "Web Service Aggregate"): Text[80]`: Gets the name of the object that will be exposed to the web service for a given record.
- `LoadRecords(var WebServiceAggregate: Record "Web Service Aggregate")`: Loads records from Web Service and Tenant Web Service table into given Web Service Aggregate record.
- `LoadRecordsFromTenantWebServiceColumns(var TenantWebService: Record "Tenant Web Service")`: Loads records from Tenant Web Service table if there is a corresponding Tenant Web Service Column.
- `CreateTenantWebServiceColumnForPage(TenantWebServiceRecordId: RecordId; FieldNumber: Integer; DataItem: Integer)`: Creates a tenant web service for a given page.
- `CreateTenantWebServiceColumnForQuery(TenantWebServiceRecordId: RecordId; FieldNumber: Integer; DataItem: Integer; MetaData: DotNet QueryMetadataReader)`: Creates a tenant web service for a given query.
- `InsertSelectedColumns(var TenantWebService: Record "Tenant Web Service"; var ColumnDictionary: DotNet GenericDictionary2; var TargetTenantWebServiceColumns: Record "Tenant Web Service Columns"; DataItem: Integer)`: Inserts selected columns in a given dictionary to the tenant web service columns table.
- `RemoveUnselectedColumnsFromFilter(var TenantWebService: Record "Tenant Web Service"; DataItem: Integer; DataItemView: Text): Text`: Removes filters that are not in the selected columns for the given service.
- `IsServiceNameValid(Value: Text): Boolean`: Checks if given service name is valid.
- `DeleteWebService(var WebServiceAggregate: Record "Web Service Aggregate")`: Deletes a webservice.

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 9751 "Web Service Management Impl."](../codeunit/9751.md) (23 calls: `CreateTenantWebService → CreateTenantWebService`, `CreateTenantWebServiceColumnForPage → CreateTenantWebServiceColumnForPage`, `CreateTenantWebServiceColumnForQuery → CreateTenantWebServiceColumnForQuery`, …)

## Called by

- [Codeunit 5690 "Create Web Services"](../codeunit/5690.md) (67 calls: `CreateAccountantPortalWebServices → CreateWebService`, `CreateExcelTemplateWebServices → CreateTenantWebService`, `CreateExtraWebServices → CreateWebService`, …)
- [Page 6711 "OData Setup Wizard"](../page/6711.md) (6 calls: `CopyTempTableToConcreteTable → SetODataFilterClause`, `CopyTempTableToConcreteTable → SetODataSelectClause`, `CopyTempTableToConcreteTable → SetODataV4FilterClause`, …)
- [Codeunit 6710 "ODataUtility"](../codeunit/6710.md) (5 calls: `CombineFiltersFromTables → RemoveUnselectedColumnsFromFilter`, `GenerateUrl → GetODataFilterClause`, `GenerateUrl → GetODataSelectClause`, …)
- [Page 6713 "OData Fields Export"](../page/6713.md) (5 calls: `OnQueryClosePage → CreateTenantWebServiceColumnsFromTemp`, `OnQueryClosePage → CreateTenantWebServiceFilterFromRecordRef`, `OnQueryClosePage → SetODataFilterClause`, …)
- [Codeunit 104000 "Upgrade - BaseApp"](../codeunit/104000.md) (2 calls: `CreateExcelTemplateWebService → CreateTenantWebService`, `CreateWorkflowWebhookWebServices → CreateTenantWebService`)
- [Table 135 "Acc. Sched. KPI Web Srv. Setup"](../table/135.md) (2 calls: `PublishWebService → CreateTenantWebService`, `PublishWebService → CreateWebService`)
- [Codeunit 7238 "Master Data Mgt. Upgrade"](../codeunit/7238.md) (1 call: `RegisterCrossEnvSourceWebService → CreateTenantWebService`)
- [Page 6712 "Tenant Web Services Lookup"](../page/6712.md) (1 call: `OnOpenPage → LoadRecordsFromTenantWebServiceColumns`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: none

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "Web Service Management")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
