Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
768a064
Add support for Microsoft Graph API in SharePoint Connector
Dec 15, 2025
8e7bd91
Fix parameter assignment for certificate in SetParameters method
Dec 15, 2025
a57ebea
Refactor SharePoint file operations to use SharePointAccount record i…
Dec 28, 2025
4c5b219
Implement file upload size handling in SharePoint Graph Helper
Dec 29, 2025
24f05d8
Update file upload size threshold to 4MB in SharePoint Graph Helper
Dec 29, 2025
dfbd7e5
Remove unused namespace
Dec 29, 2025
10cd320
Add validation trigger for "Use Graph API" field in SharePoint Accoun…
Bertverbeek4PS Jan 9, 2026
05295dd
Merge branch 'main' into EFS-SharepointGraphConnector
JesperSchulz Feb 11, 2026
04e3ad6
Enhance SharePoint Account table: add DataClassification for Graph AP…
Bertverbeek4PS Feb 13, 2026
fc73fe0
Rename "Use Graph API" to "Use legacy REST API" across SharePoint acc…
Bertverbeek4PS Mar 13, 2026
84a8b99
Merge branch 'main' of https://github.com/microsoft/BCApps into pr/5833
Bertverbeek4PS Mar 13, 2026
7ece6ca
Add Ext. SharePoint Upgrade codeunit to handle legacy REST API migration
Bertverbeek4PS Mar 13, 2026
5511e0b
Refactor SharePoint helper code: remove unused ReverseString procedur…
Mar 23, 2026
ba0ee04
Refactor SharePoint helper code: streamline file operations by removi…
Mar 23, 2026
cb18457
Merge branch 'main' into EFS-SharepointGraphConnector
Apr 7, 2026
7e2f755
Fix Sharepoint table variables to use the Temp prefix
Apr 7, 2026
bfd7077
Reorder using directives in ExtSharePointConnectorImpl
JesperSchulz Apr 8, 2026
a85859f
Merge branch 'main' of https://github.com/microsoft/BCApps into EFS-S…
JesperSchulz Apr 15, 2026
3c7cbba
Update con
JesperSchulz Apr 15, 2026
73bf49e
Update idRanges in app.json to extend the range to 4610
JesperSchulz Apr 16, 2026
f2d62b4
Enhance authentication tooltips and improve error handling in SharePo…
Apr 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"idRanges": [
{
"from": 4580,
"to": 4589
"to": 4610
}
],
"resourceExposurePolicy": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,15 @@ page 4580 "Ext. SharePoint Account"
}
}
field(Disabled; Rec.Disabled) { }
field("Use legacy REST API"; Rec."Use legacy REST API")
{
trigger OnValidate()
var
CheckBasePathMsg: Label 'The API type has been changed. Please verify that the Base Relative Folder Path is still correct for the selected API type.';
begin
Message(CheckBasePathMsg);
Comment thread
tinestaric marked this conversation as resolved.
end;
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ table 4580 "Ext. SharePoint Account"
field(5; "Base Relative Folder Path"; Text[2048])
{
Caption = 'Base Relative Folder Path';
ToolTip = 'Specifies the folder path relative to the site collection. Start with the document library or folder name (e.g., Shared Documents/Reports). This path can be copied from the URL of the folder in SharePoint after the site collection (e.g., /Shared Documents/Reports from https://mysharepoint.sharepoint.com/sites/ProjectX/Shared%20Documents/Reports).';
ToolTip = 'Specifies the base folder path. For SharePoint REST API: Use the full server-relative path including the site (e.g., /sites/ProjectX/Shared Documents/Reports). For Microsoft Graph API: Use only the path relative to the document library (e.g., Reports). When using Graph API, the path should not include the site or document library root, only the folders within the library.';
}
field(6; "Tenant Id"; Guid)
{
Expand All @@ -50,6 +50,7 @@ table 4580 "Ext. SharePoint Account"
}
field(8; "Client Secret Key"; Guid)
{
Caption = 'Client Secret Key';
Access = Internal;
DataClassification = SystemMetadata;
}
Expand All @@ -61,18 +62,28 @@ table 4580 "Ext. SharePoint Account"
field(10; "Authentication Type"; Enum "Ext. SharePoint Auth Type")
{
Caption = 'Authentication Type';
ToolTip = 'Specifies the authentication flow used for this SharePoint account. Client Secret uses User grant flow, which means that the user must sign in when using this account. Certificate uses Client credentials flow, which means that the user does not need to sign in when using this account.';
ToolTip = 'Specifies the authentication method used for this SharePoint account. When using the legacy REST API, Client Secret uses the Authorization Code (user grant) flow, which requires an interactive sign-in, while Certificate uses the Client Credentials (app-only) flow, which does not require a user sign-in. When using Microsoft Graph API, both Client Secret and Certificate always use the Client Credentials (app-only) flow, so no interactive sign-in is required regardless of the selected type.';
InitValue = "Client Secret";
}
field(11; "Certificate Key"; Guid)
{
Caption = 'Certificate Key';
Access = Internal;
AllowInCustomizations = Never;
DataClassification = SystemMetadata;
}
field(12; "Certificate Password Key"; Guid)
{
Caption = 'Certificate Password Key';
Access = Internal;
AllowInCustomizations = Never;
DataClassification = SystemMetadata;
}
field(13; "Use legacy REST API"; Boolean)
Comment thread
JesperSchulz marked this conversation as resolved.
{
Caption = 'Use legacy REST API';
DataClassification = SystemMetadata;
Comment thread
JesperSchulz marked this conversation as resolved.
ToolTip = 'Specifies whether to use Microsoft Graph API or SharePoint REST API. Microsoft Graph API supports downloading files larger than 150 MB through chunked transfers. Note: Requires Microsoft Graph permissions (Sites.ReadWrite.All) configured in your app registration instead of SharePoint permissions.';
}
Comment thread
tinestaric marked this conversation as resolved.
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ page 4581 "Ext. SharePoint Account Wizard"
Caption = 'Account Name';
NotBlank = true;
ShowMandatory = true;
ToolTip = 'Specifies a descriptive name for this SharePoint storage account connection.';

trigger OnValidate()
begin
Expand All @@ -54,7 +53,6 @@ page 4581 "Ext. SharePoint Account Wizard"
field("Tenant Id"; Rec."Tenant Id")
{
ShowMandatory = true;
ToolTip = 'Specifies the Microsoft Entra ID Tenant ID (Directory ID) where your SharePoint site and app registration are located.';

trigger OnValidate()
begin
Expand All @@ -65,7 +63,6 @@ page 4581 "Ext. SharePoint Account Wizard"
field("Client Id"; Rec."Client Id")
{
ShowMandatory = true;
ToolTip = 'Specifies the Client ID (Application ID) of the App Registration in Microsoft Entra ID.';

trigger OnValidate()
begin
Expand All @@ -75,7 +72,6 @@ page 4581 "Ext. SharePoint Account Wizard"

field("Authentication Type"; Rec."Authentication Type")
{
ToolTip = 'Specifies the authentication flow used for this SharePoint account. Client Secret uses User grant flow, which means that the user must sign in when using this account. Certificate uses Client credentials flow, which means that the user does not need to sign in when using this account.';
trigger OnValidate()
begin
UpdateAuthTypeVisibility();
Expand Down Expand Up @@ -134,6 +130,9 @@ page 4581 "Ext. SharePoint Account Wizard"
IsNextEnabled := SharePointConnectorImpl.IsAccountValid(Rec);
end;
}
field("Use legacy REST API"; Rec."Use legacy REST API")
{
}

field("Base Relative Folder Path"; Rec."Base Relative Folder Path")
{
Expand Down
Loading