---
id: object/codeunit/9120
type: object
title: Codeunit 9120 "SharePoint Graph Client Impl."
summary: Codeunit 9120 "SharePoint Graph Client Impl." in System Application (System.Integration.Sharepoint). 58 public procedures. Introduced in BC28, still in BC30, changed in BC29.
tier: official
language: en
tags:
  - codeunit
  - system application
versions:
  introduced: "28"
  last_changed: "29"
  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: 581972dcbc89f1f7076d10d2eaa6e83c8378089d3764a86f46a0a4a847c58771
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/SharePoint/src/graph/SharePointGraphClientImpl.Codeunit.al
    title: src/System Application/App/SharePoint/src/graph/SharePointGraphClientImpl.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/8318
object_type: codeunit
object_id: 9120
name: SharePoint Graph Client Impl.
namespace: System.Integration.Sharepoint
app: System Application
extends: null
first_version: "28"
last_version: "30"
present_in:
  - "28"
  - "29"
  - "30"
changed_in:
  - "29"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 67
  events: 0
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 7
  called_by: 1
  implements: 0
---

# Codeunit 9120 "SharePoint Graph Client Impl."

> Codeunit 9120 "SharePoint Graph Client Impl." in System Application (System.Integration.Sharepoint). 58 public procedures. Introduced in BC28, still in BC30, changed in BC29.

System Application · System.Integration.Sharepoint · BC28-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/SharePoint/src/graph/SharePointGraphClientImpl.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Access | Internal |

## Procedures

- `Initialize(NewSharePointUrl: Text; GraphAuthorization: Interface "Graph Authorization")`: Initializes SharePoint Graph client.
- `Initialize(NewSharePointUrl: Text; ApiVersion: Enum "Graph API Version"; GraphAuthorization: Interface "Graph Authorization")`: Initializes SharePoint Graph client with a specific API version.
- `Initialize(NewSharePointUrl: Text; BaseUrl: Text; GraphAuthorization: Interface "Graph Authorization")`: Initializes SharePoint Graph client with a custom base URL.
- `Initialize(NewSharePointUrl: Text; ApiVersion: Enum "Graph API Version"; GraphAuthorization: Interface "Graph Authorization"; HttpClientHandler: Interface "Http Client Handler")`: Initializes SharePoint Graph client with an HTTP client handler for testing.
- `GetLists(var GraphLists: Record "SharePoint Graph List" temporary): Codeunit "SharePoint Graph Response"`: Gets all lists from the SharePoint site.
- `GetLists(var GraphLists: Record "SharePoint Graph List" temporary; GraphOptionalParameters: Codeunit "Graph Optional Parameters"): Codeunit "SharePoint Graph Response"`: Gets all lists from the SharePoint site.
- `GetList(ListId: Text; var GraphList: Record "SharePoint Graph List" temporary): Codeunit "SharePoint Graph Response"`: Gets a SharePoint list by ID.
- `GetList(ListId: Text; var GraphList: Record "SharePoint Graph List" temporary; GraphOptionalParameters: Codeunit "Graph Optional Parameters"): Codeunit "SharePoint Graph Response"`: Gets a SharePoint list by ID.
- `CreateList(DisplayName: Text; Description: Text; var GraphList: Record "SharePoint Graph List" temporary): Codeunit "SharePoint Graph Response"`: Creates a new SharePoint list.
- `CreateList(DisplayName: Text; ListTemplate: Text; Description: Text; var GraphList: Record "SharePoint Graph List" temporary): Codeunit "SharePoint Graph Response"`: Creates a new SharePoint list.
- `GetListItems(ListId: Text; var GraphListItems: Record "SharePoint Graph List Item" temporary): Codeunit "SharePoint Graph Response"`: Gets items from a SharePoint list.
- `GetListItems(ListId: Text; var GraphListItems: Record "SharePoint Graph List Item" temporary; GraphOptionalParameters: Codeunit "Graph Optional Parameters"): Codeunit "SharePoint Graph Response"`: Gets items from a SharePoint list.
- `CreateListItem(ListId: Text; FieldsJsonObject: JsonObject; var GraphListItem: Record "SharePoint Graph List Item" temporary): Codeunit "SharePoint Graph Response"`: Creates a new item in a SharePoint list.
- `CreateListItem(ListId: Text; Title: Text; var GraphListItem: Record "SharePoint Graph List Item" temporary): Codeunit "SharePoint Graph Response"`: Creates a new item in a SharePoint list with a simple title.
- `GetListItem(ListId: Text; ItemId: Text; var GraphListItem: Record "SharePoint Graph List Item" temporary): Codeunit "SharePoint Graph Response"`: Gets a single item from a SharePoint list.
- `GetListItem(ListId: Text; ItemId: Text; var GraphListItem: Record "SharePoint Graph List Item" temporary; GraphOptionalParameters: Codeunit "Graph Optional Parameters"): Codeunit "SharePoint Graph Response"`: Gets a single item from a SharePoint list.
- `UpdateListItem(ListId: Text; ItemId: Text; FieldsJsonObject: JsonObject; var GraphListItem: Record "SharePoint Graph List Item" temporary): Codeunit "SharePoint Graph Response"`: Updates an existing list item's fields.
- `GetDefaultDrive(var DriveId: Text): Codeunit "SharePoint Graph Response"`: Gets the default document library (drive) for the site.
- `GetDrives(var GraphDrives: Record "SharePoint Graph Drive" temporary): Codeunit "SharePoint Graph Response"`: Gets all drives (document libraries) available on the site with detailed information.
- `GetDrives(var GraphDrives: Record "SharePoint Graph Drive" temporary; GraphOptionalParameters: Codeunit "Graph Optional Parameters"): Codeunit "SharePoint Graph Response"`: Gets all drives (document libraries) available on the site with detailed information.
- `GetDrive(DriveId: Text; var GraphDrive: Record "SharePoint Graph Drive" temporary): Codeunit "SharePoint Graph Response"`: Gets a drive (document library) by ID with detailed information.
- `GetDrive(DriveId: Text; var GraphDrive: Record "SharePoint Graph Drive" temporary; GraphOptionalParameters: Codeunit "Graph Optional Parameters"): Codeunit "SharePoint Graph Response"`: Gets a drive (document library) by ID with detailed information.
- `GetDefaultDrive(var GraphDrive: Record "SharePoint Graph Drive" temporary): Codeunit "SharePoint Graph Response"`: Gets the default document library (drive) for the site with detailed information.
- `GetRootItems(var GraphDriveItems: Record "SharePoint Graph Drive Item" temporary): Codeunit "SharePoint Graph Response"`: Gets items in the root folder of the default drive.
- `GetRootItems(var GraphDriveItems: Record "SharePoint Graph Drive Item" temporary; GraphOptionalParameters: Codeunit "Graph Optional Parameters"): Codeunit "SharePoint Graph Response"`: Gets items in the root folder of the default drive.
- `GetFolderItems(FolderId: Text; var GraphDriveItems: Record "SharePoint Graph Drive Item" temporary): Codeunit "SharePoint Graph Response"`: Gets children of a folder by the folder's ID.
- `GetFolderItems(FolderId: Text; var GraphDriveItems: Record "SharePoint Graph Drive Item" temporary; GraphOptionalParameters: Codeunit "Graph Optional Parameters"): Codeunit "SharePoint Graph Response"`: Gets children of a folder by the folder's ID.
- `GetItemsByPath(FolderPath: Text; var GraphDriveItems: Record "SharePoint Graph Drive Item" temporary): Codeunit "SharePoint Graph Response"`: Gets items from a path in the default drive.
- `GetItemsByPath(FolderPath: Text; var GraphDriveItems: Record "SharePoint Graph Drive Item" temporary; GraphOptionalParameters: Codeunit "Graph Optional Parameters"): Codeunit "SharePoint Graph Response"`: Gets items from a path in the default drive.
- `UploadFile(DriveId: Text; FolderPath: Text; FileName: Text; FileInStream: InStream; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary; ConflictBehavior: Enum "Graph ConflictBehavior"): Codeunit "SharePoint Graph Response"`: Uploads a file to a folder in a specific drive (document library) with specified conflict behavior.
- `UploadFile(DriveId: Text; FolderPath: Text; FileName: Text; FileInStream: InStream; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary): Codeunit "SharePoint Graph Response"`: Uploads a file to a folder in a specific drive (document library).
- `UploadLargeFile(DriveId: Text; FolderPath: Text; FileName: Text; FileInStream: InStream; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary): Codeunit "SharePoint Graph Response"`: Uploads a large file to a folder on SharePoint using chunked upload for better performance and reliability.
- `UploadLargeFile(DriveId: Text; FolderPath: Text; FileName: Text; FileInStream: InStream; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary; ConflictBehavior: Enum "Graph ConflictBehavior"): Codeunit "SharePoint Graph Response"`: Uploads a large file to a folder on SharePoint using chunked upload with specified conflict behavior.
- `CreateFolder(DriveId: Text; FolderPath: Text; FolderName: Text; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary; ConflictBehavior: Enum "Graph ConflictBehavior"): Codeunit "SharePoint Graph Response"`: Creates a new folder in a specific drive (document library) with specified conflict behavior.
- `CreateFolder(DriveId: Text; FolderPath: Text; FolderName: Text; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary): Codeunit "SharePoint Graph Response"`: Creates a new folder in a specific drive (document library).
- `DownloadFile(ItemId: Text; var TempBlob: Codeunit "Temp Blob"): Codeunit "SharePoint Graph Response"`: Downloads a file.
- `DownloadFileByPath(FilePath: Text; var TempBlob: Codeunit "Temp Blob"): Codeunit "SharePoint Graph Response"`: Downloads a file by path.
- `DownloadLargeFile(ItemId: Text; var TempBlob: Codeunit "Temp Blob"): Codeunit "SharePoint Graph Response"`: Downloads a large file using chunked download to overcome Business Central's 150MB HTTP response limit.
- `DownloadLargeFileByPath(FilePath: Text; var TempBlob: Codeunit "Temp Blob"): Codeunit "SharePoint Graph Response"`: Downloads a large file by path using chunked download to overcome Business Central's 150MB HTTP response limit.
- `GetDriveItem(ItemId: Text; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary): Codeunit "SharePoint Graph Response"`: Gets a file or folder by ID.
- `GetDriveItemByPath(ItemPath: Text; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary): Codeunit "SharePoint Graph Response"`: Gets a file or folder by path.
- `GetDriveItemByPath(ItemPath: Text; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary; GraphOptionalParameters: Codeunit "Graph Optional Parameters"): Codeunit "SharePoint Graph Response"`: Gets a file or folder by path.
- `GetDriveItem(ItemId: Text; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary; GraphOptionalParameters: Codeunit "Graph Optional Parameters"): Codeunit "SharePoint Graph Response"`: Gets a file or folder by ID.
- `DeleteItem(ItemId: Text): Codeunit "SharePoint Graph Response"`: Deletes a drive item (file or folder) by ID.
- `DeleteItemByPath(ItemPath: Text): Codeunit "SharePoint Graph Response"`: Deletes a drive item (file or folder) by path.
- `ItemExists(ItemId: Text; var Exists: Boolean): Codeunit "SharePoint Graph Response"`: Checks if a drive item (file or folder) exists by ID.
- `ItemExistsByPath(ItemPath: Text; var Exists: Boolean): Codeunit "SharePoint Graph Response"`: Checks if a drive item (file or folder) exists by path.
- `CopyItem(ItemId: Text; TargetFolderId: Text; NewName: Text): Codeunit "SharePoint Graph Response"`: Copies a drive item (file or folder) to a new location by ID.
- `CopyItemByPath(ItemPath: Text; TargetFolderPath: Text; NewName: Text): Codeunit "SharePoint Graph Response"`: Copies a drive item (file or folder) to a new location by path.
- `MoveItem(ItemId: Text; TargetFolderId: Text; NewName: Text): Codeunit "SharePoint Graph Response"`: Moves a drive item (file or folder) to a new location by ID.
- `MoveItemByPath(ItemPath: Text; TargetFolderPath: Text; NewName: Text): Codeunit "SharePoint Graph Response"`: Moves a drive item (file or folder) to a new location by path.
- `UpdateDriveItem(ItemId: Text; UpdatePropertiesJsonObject: JsonObject; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary): Codeunit "SharePoint Graph Response"`: Updates a drive item's properties (name, description, etc.) by ID.
- `UpdateDriveItemByPath(ItemPath: Text; UpdatePropertiesJsonObject: JsonObject; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary): Codeunit "SharePoint Graph Response"`: Updates a drive item's properties (name, description, etc.) by path.
- `RenameDriveItem(ItemId: Text; NewName: Text; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary): Codeunit "SharePoint Graph Response"`: Renames a drive item by ID.
- `RenameDriveItemByPath(ItemPath: Text; NewName: Text; var GraphDriveItem: Record "SharePoint Graph Drive Item" temporary): Codeunit "SharePoint Graph Response"`: Renames a drive item by path.
- `GetDiagnostics(): Interface "HTTP Diagnostics"`: Returns detailed information on last API call.
- `SetSiteIdForTesting(NewSiteId: Text)` (internal): Sets the site ID directly for testing purposes.
- `SetDefaultDriveIdForTesting(NewDefaultDriveId: Text)` (internal): Sets the default drive ID directly for testing purposes.

Plus 9 local procedures.

## 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 9129 "SharePoint Graph Response"](../codeunit/9129.md) (62 calls: `CopyItem → SetError`, `CopyItem → SetRequestHelper`, `CopyItem → SetSuccess`, …)
- [Codeunit 9123 "SharePoint Graph Req. Helper"](../codeunit/9123.md) (38 calls: `CopyItem → GetDiagnostics`, `CopyItem → Post`, `CreateFolder → ConfigureConflictBehavior`, …)
- [Codeunit 9121 "SharePoint Graph Uri Builder"](../codeunit/9121.md) (21 calls: `CopyItem → GetCopyItemEndpoint`, `CreateFolder → GetSpecificDriveItemChildrenByPathEndpoint`, `CreateFolder → GetSpecificDriveRootChildrenEndpoint`, …)
- [Codeunit 9122 "SharePoint Graph Parser"](../codeunit/9122.md) (5 calls: `CreateFolder → ParseDriveItemDetail`, `CreateListItem → ParseListItemDetail`, `UpdateDriveItemAtEndpoint → ParseDriveItemDetail`, …)
- [Codeunit 3061 "Uri Builder"](../codeunit/3061.md) (4 calls: `ExtractHostName → GetHost`, `ExtractHostName → Init`, `ExtractRelativePath → GetPath`, …)
- [Codeunit 4100 "Temp Blob"](../codeunit/4100.md) (4 calls: `DownloadLargeFile → CreateInStream`, `DownloadLargeFile → CreateOutStream`, `DownloadLargeFileByPath → CreateInStream`, …)
- [Codeunit 3060 "Uri"](../codeunit/3060.md) (1 call: `InitializeCommon → IsValidURIPattern`)

## Called by

- [Codeunit 9119 "SharePoint Graph Client"](../codeunit/9119.md) (38 calls: `CopyItem → CopyItem`, `CopyItemByPath → CopyItemByPath`, `CreateFolder → CreateFolder`, …)

## Recent changes

- 2026-08-17 [#8318 SharePoint Graph Module - extend functionality with additional methods](../../changes/bcapps/8318.md) (main, BC30, feature)

## Across versions

- Present in: BC28-30
- Changed (declaration) in: BC29

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: "SharePoint Graph Client Impl.")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
