Skip to content

Commit 096b669

Browse files
authored
Merge pull request #2 from kerski/development-scale-out
Adding SyncStatus EndPoint for Dataset Scale-out
2 parents e95ad5d + 399f11f commit 096b669

File tree

4 files changed

+86
-25
lines changed

4 files changed

+86
-25
lines changed

PBIRESTAPIComm.pq

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ let
5454
{"GetDatasetRefreshExecutionDetailsInGroup","GetDatasetRefreshExecutionDetailsInGroup",PBIRESTAPIComm.GetDatasetRefreshExecutionDetailsInGroup,"Function","GetDatasetRefreshExecutionDetailsInGroup",true},
5555
{"GetDatasetRefreshHistoryInGroup","GetDatasetRefreshHistoryInGroup",PBIRESTAPIComm.GetDatasetRefreshHistoryInGroup,"Function","GetDatasetRefreshHistoryInGroup",true},
5656
{"GetDatasetRefreshScheduleInGroup","GetDatasetRefreshScheduleInGroup",PBIRESTAPIComm.GetDatasetRefreshScheduleInGroup,"Function","GetDatasetRefreshScheduleInGroup",true},
57+
{"GetDatasetSyncStatusInGroup","GetDatasetSyncStatusInGroup",PBIRESTAPIComm.GetDatasetSyncStatusInGroup,"Function","GetDatasetSyncStatusInGroup",true},
5758
{"ExecuteQuery","ExecuteQuery",PBIRESTAPIComm.ExecuteQuery,"Function","ExecuteQuery",true},
5859
{"ExecuteQueryInGroup","ExecuteQueryInGroup",PBIRESTAPIComm.ExecuteQueryInGroup,"Function","ExecuteQueryInGroup",true},
5960
/* Reports */
@@ -1269,6 +1270,49 @@ GetDatasetRefreshScheduleInGroup = (optional groupId as text , optional datasetI
12691270
result;
12701271
/*** End GetDatasetRefreshScheduleInGroup***/
12711272

1273+
/*** GetDatasetSyncStatusInGroup ***/
1274+
shared PBIRESTAPIComm.GetDatasetSyncStatusInGroup = Value.ReplaceType(
1275+
GetDatasetSyncStatusInGroup,
1276+
GetDatasetSyncStatusInGroupType
1277+
);
1278+
1279+
GetDatasetSyncStatusInGroupType = type function (
1280+
optional groupId as (
1281+
type text meta [
1282+
Documentation.FieldCaption = "Group ID",
1283+
Documentation.FieldDescription = "The workspace ID.",
1284+
Documentation.SampleValues = {
1285+
"xxx-xxxx-abcd..."
1286+
}
1287+
]
1288+
),
1289+
optional datasetId as (
1290+
type text meta [
1291+
Documentation.FieldCaption = "Dataset ID",
1292+
Documentation.FieldDescription = "The Dataset ID.",
1293+
Documentation.SampleValues = {
1294+
"xxx-xxxx-efgh..."
1295+
}
1296+
]
1297+
)
1298+
) as table meta [
1299+
Documentation.Name = "PBIRESTAPIComm.GetDatasetSyncStatusInGroup",
1300+
Documentation.LongDescription = "Returns the sync status information of the read-only replica and read/write dataset.",
1301+
Documentation.Examples = {
1302+
[
1303+
Code = "=PBIRESTAPIComm.GetDatasetSyncStatusInGroup(""xxx-xxxx-abcd..."",""xxx-xxxx-efgh..."")",
1304+
Result = "Defined as "
1305+
]
1306+
}
1307+
];
1308+
1309+
GetDatasetSyncStatusInGroup = (optional groupId as text , optional datasetId as text) =>
1310+
let
1311+
result = GetJSON("v1.0/myorg/groups/" & groupId & "/datasets/" & datasetId & "/syncStatus")
1312+
in
1313+
result;
1314+
/*** End GetDatasetSyncStatusInGroup ***/
1315+
12721316
/*** ExecuteQuery ***/
12731317
shared PBIRESTAPIComm.ExecuteQuery = Value.ReplaceType(
12741318
ExecuteQuery,

PBIRESTAPIComm.query.pq

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,31 @@ shared MyExtension.UnitTest =
66
Source = PBIRESTAPIComm.FunctionCatalog(),
77

88
/*Variables*/
9-
AppTestID = "{APP TEST ID}",
10-
AppDashboardTestID = "{APP DASHBOARD TEST ID}",
11-
AppDashboardTileTestID = "{APP DASHBOARD TILE TEST ID}",
12-
AppReportTestID = "{APP REPORT TEST ID}",
13-
GroupTestID = "{GROUP TEST ID}",
9+
AppTestID = "{INSERT VALUE}",
10+
AppDashboardTestID = "{INSERT VALUE}",
11+
AppDashboardTileTestID = "{INSERT VALUE}",
12+
AppReportTestID = "{INSERT VALUE}",
13+
GroupTestID = "{INSERT VALUE}",
1414
GroupNameFilter = "name eq 'Custom Connector Test'",
15-
DatasetTestID = "{DATASET TEST ID}",
16-
ReportTestID = "{REPORT Test ID}",
15+
DatasetTestID = "{INSERT VALUE}",
16+
ReportTestID = "{INSERT VALUE}",
1717
ReportTestName = "SampleModel",
18-
PipelineTestID = "{PIPELINE TEST ID}",
19-
EnchancedRefreshTestID = "{REFRESH TEST ID}",
20-
DashboardTestID = "{DASHBOARD TEST ID}",
21-
DashboardTileTestID = "{DASHBOARD TILE TEST ID}",
22-
DataFlowTestID = "{DATAFLOW TEST ID}",
23-
DownstreamDataflowTestID = "{DOWNSTREAM DATAFLOW TEST ID}",
24-
ScorecardOneTestID = "{SCORECARD ONE TEST ID}",
25-
ScorecardOneGoalTestID = "{SCORECARD ONE GOAL TEST ID}",
26-
ScorecardOneGoalWithRefreshTestID = "{SCORECARD ONE GOAL WITH REFRESH TEST ID}",
27-
ScorecardTwoTestID = "{SCORECARD TWO TEST ID}",
28-
ScorecardInternalReportId = "{SCORECARD INTERNAL REPORT ID}",
29-
ScorecardOneGoalTimestampID = "{SCORECARD ONE GOAL TIMESTAMP ID}",
30-
18+
PipelineTestID = "{INSERT VALUE}",
19+
EnchancedRefreshTestID = "{INSERT VALUE}",
20+
DashboardTestID = "{INSERT VALUE}",
21+
DashboardTileTestID = "{INSERT VALUE}",
22+
DataflowTestID = "{INSERT VALUE}",
23+
DownstreamDataflowTestID = "{INSERT VALUE}",
24+
ScorecardOneTestID = "{INSERT VALUE}",
25+
ScorecardOneGoalTestID = "{INSERT VALUE}",
26+
ScorecardOneGoalWithRefreshTestID = "{INSERT VALUE}",
27+
ScorecardTwoTestID = "{INSERT VALUE}",
28+
ScorecardInternalReportId = "{INSERT VALUE}",
29+
ScorecardOneGoalTimestampID = #datetimezone(2023,2,18,0,0,0,0,0),
30+
// Sync Status Workspace ID
31+
ScaleOutWorkspaceID = "{INSERT VALUE}",
32+
ScaleOutDatasetID = "{INSERT VALUE}",
33+
3134
// Extracts Function from group
3235
_GetFunction = (_func_key as text) =>
3336
let
@@ -63,6 +66,7 @@ shared MyExtension.UnitTest =
6366
GetDatasetsInGroup = _GetFunction("GetDatasetsInGroup"),
6467
GetDatasetDatasourcesInGroup = _GetFunction("GetDatasetDatasourcesInGroup"),
6568
GetDatasetDirectQueryRefreshScheduleInGroup = _GetFunction("GetDatasetDirectQueryRefreshScheduleInGroup"),
69+
GetDatasetSyncStatusInGroup = _GetFunction("GetDatasetSyncStatusInGroup"),
6670
GetDatasetParametersInGroup = _GetFunction("GetDatasetParametersInGroup"),
6771
GetDatasetRefreshExecutionDetailsInGroup = _GetFunction("GetDatasetRefreshExecutionDetailsInGroup"),
6872
GetDatasetRefreshHistoryInGroup = _GetFunction("GetDatasetRefreshHistoryInGroup"),
@@ -339,7 +343,17 @@ shared MyExtension.UnitTest =
339343
true,
340344
Value.Is(GetDatasetDirectQueryRefreshScheduleInGroup,Function.Type)
341345
),
342-
/*Fact("GetDatasetDirectQueryRefreshScheduleInGroup Should Be Correct Metadata",
346+
/* GetDatasetSyncStatusInGroup */
347+
Fact("GetDatasetSyncStatusInGroup Should Be a Function",
348+
true,
349+
Value.Is(GetDatasetSyncStatusInGroup,Function.Type)
350+
),
351+
Fact("GetDatasetSyncStatusInGroup Should Have a CommitVersion Property and Value",
352+
true,
353+
Text.Length(Number.ToText(Json.Document(GetDatasetSyncStatusInGroup(ScaleOutWorkspaceID,ScaleOutDatasetID))[#"commitVersion"])) > 0
354+
),
355+
/*
356+
Fact("GetDatasetDirectQueryRefreshScheduleInGroup Should Be Correct Metadata",
343357
"datasources",
344358
Text.AfterDelimiter(Json.Document(GetDatasetDirectQueryRefreshScheduleInGroup(GroupTestID,DatasetTestID))[#"@odata.context"],"#")
345359
),*/
@@ -523,15 +537,15 @@ shared MyExtension.UnitTest =
523537
/*****************
524538
GOALS STATUS RULES
525539
*****************/
526-
/* GetScorecardGoalsStatusRulesInGroup */
540+
/* GetScorecardGoalsStatusRulesInGroup */
527541
Fact("GetScorecardGoalsStatusRulesInGroup Should Be a Function",
528542
true,
529543
Value.Is(GetScorecardGoalsStatusRulesInGroup,Function.Type)
530544
),
531545
Fact("GetScorecardGoalsStatusRulesInGroup Should Be Correct Metadata",
532546
"scorecards(" & ScorecardOneTestID & ")/metrics(" & ScorecardOneGoalTestID & ")/statusRules",
533547
Text.AfterDelimiter(Json.Document(GetScorecardGoalsStatusRulesInGroup(GroupTestID,ScorecardOneTestID,ScorecardOneGoalTestID))[#"@odata.context"],"#")
534-
),
548+
),
535549
/*****************
536550
GROUPS
537551
*****************/
@@ -657,10 +671,12 @@ shared MyExtension.UnitTest =
657671
true,
658672
Value.Is(GetScorecardInGroup,Function.Type)
659673
),
674+
/*
675+
Disable after odatacontext dissappeared
660676
Fact("GetScorecardInGroup Should Be Correct Metadata",
661677
"scorecards/$entity",
662678
Text.AfterDelimiter(Json.Document(GetScorecardInGroup(GroupTestID,ScorecardOneTestID))[#"@odata.context"],"#")
663-
),
679+
),*/
664680
Fact("GetScorecardInGroup Should Return a goals property",
665681
true,
666682
List.Count(Json.Document(GetScorecardInGroup(GroupTestID,ScorecardOneTestID,"goals($expand=goalValues)"))[#"goals"]) > 0

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ Not all functions from the Power BI REST API have been implemented. Here are th
127127
| GetDatasetParametersInGroup | Returns a list of parameters for the specified dataset from the specified workspace. | [Datasets - Get Parameters In Group](https://learn.microsoft.com/en-us/rest/api/power-bi/datasets/get-parameters-in-group) |
128128
| GetDatasetRefreshExecutionDetailsInGroup | Returns execution details of an enhanced refresh operation for the specified dataset from the specified workspace. | [Datasets - Get Refresh Execution Details In Group](https://learn.microsoft.com/en-us/rest/api/power-bi/datasets/get-refresh-execution-details-in-group) |
129129
| GetDatasetRefreshHistoryInGroup| Returns the refresh history for the specified dataset from the specified workspace. | [Datasets - Get Refresh History](https://learn.microsoft.com/en-us/rest/api/power-bi/datasets/get-refresh-history-in-group) |
130-
| GetDatasetRefreshScheduleInGroup| Description | [Datasets - Get Refresh Schedule In Group](https://learn.microsoft.com/en-us/rest/api/power-bi/datasets/get-refresh-schedule-in-group) |
130+
| GetDatasetRefreshScheduleInGroup| Returns the refresh schedule for the specified dataset from the specified workspace. | [Datasets - Get Refresh Schedule In Group](https://learn.microsoft.com/en-us/rest/api/power-bi/datasets/get-refresh-schedule-in-group) |
131+
|GetDatasetSyncStatusInGroup | Returns the sync status information of the read-only replica and read/write dataset. (<b>Preview</b>: Power BI Dataset Scale-Out) | [Datasets - Get Dataset Sync Status In Group ](https://learn.microsoft.com/en-us/power-bi/enterprise/service-premium-scale-out#enable-scale-out-for-your-workspace) |
131132

132133
### GoalValues (Preview)
133134
| End Point | Description | MSDN Documentation |
Binary file not shown.

0 commit comments

Comments
 (0)