1
- section eStatGoJpConnector;
1
+ // This file contains your Data Connector logic
2
+ section eStatGoJpConnector;
2
3
3
4
[DataSource.Kind="eStatGoJpConnector", Publish="eStatGoJpConnector.Publish"]
4
- shared eStatGoJpConnector.Nav = Value.ReplaceType(eStatGoJpConnectorNavImpl, eStatGoJpConnectorNavType );
5
+ shared eStatGoJpConnector.Contents = Value.ReplaceType(eStatGoJpConnectorImpl, eStatGoJpConnectorType );
5
6
6
- eStatGoJpConnectorNavType = type function (
7
- searchKind as (type text meta [
8
- Documentation.FieldCaption = Extension.LoadString("Type.searchKind.Documentation.FieldCaption"),
9
- Documentation.FieldDescription = Extension.LoadString("Type.searchKind.Documentation.FieldDescription"),
10
- Documentation.AllowedValues = { "1: 統計情報", "2: 小地域・地域メッシュ", "3: 社会・人口統計体系(都道府県・市区町村のすがた)"}
11
- ]),
12
- optional lang as (type text meta [
13
- Documentation.FieldCaption = Extension.LoadString("Type.lang.Documentation.FieldCaption"),
14
- Documentation.FieldDescription = Extension.LoadString("Type.lang.Documentation.FieldDescription"),
15
- Documentation.AllowedValues = { "J: 日本語 (Japanese)", "E: 英語 (English)" }
16
- ]))
17
- as table meta [
18
- Documentation.Name = Extension.LoadString("Type.table.Documentation.Name"),
19
- Documentation.LongDescription = Extension.LoadString("Type.table.Documentation.LongDescription"),
20
- Documentation.Examples = {}
21
- ];
22
7
23
- eStatGoJpConnectorNavImpl = (searchKind as text, optional lang as text) as table =>
8
+ eStatGoJpConnectorImpl = (optional searchKind as text, optional lang as text)=>
24
9
let
25
10
credentials = Extension.CurrentCredential(),
26
11
apiKey = credentials[Password],
27
12
_lang = if (lang <> null) then Text.At(lang, 0) else "J",
28
- _url = "https://api.e-stat.go.jp/rest/2.1/app/json/getStatsList?appId=" & apiKey & "&statsNameList=Y&searchKind=" & Text.At(searchKind, 0),
13
+ _searchKind = if (searchKind <> null) then searchKind else Text.From("1: 統計情報"),
14
+ _url = "https://api.e-stat.go.jp/rest/2.1/app/json/getStatsList?appId=" & apiKey & "&statsNameList=Y&searchKind=" & Text.At(_searchKind, 0),
29
15
_response = Web.Contents(_url, [Timeout = #duration(0,0,0,2000), Headers=[#"Authorization" = ""]]),
30
16
objects1 = Json.Document(_response),
31
17
objects2 = Table.FromRecords(objects1[GET_STATS_LIST][DATALIST_INF][LIST_INF]),
@@ -34,15 +20,31 @@ eStatGoJpConnectorNavImpl = (searchKind as text, optional lang as text) as table
34
20
objects5 = Table.AddColumn(objects4, "Name", each [STATNAME_] & " - " & [GOVORG_] & " (" & [STATID_] & ")"),
35
21
objects6 = Table.AddColumn(objects5, "Key", each [STATID_]),
36
22
objects7 = Table.AddColumn(objects6, "ItemKind", each "Folder"),
37
- objects8 = Table.AddColumn(objects7, "Data", each CreateNavTableLevel1(Extension.CurrentCredential() , [STATID_], _lang)),
23
+ objects8 = Table.AddColumn(objects7, "Data", each CreateNavTableLevel1(credentials , [STATID_], _lang)),
38
24
objects9 = Table.AddColumn(objects8, "ItemName", each "Folder"),
39
25
objects10 = Table.AddColumn(objects9, "IsLeaf", each false),
40
- objects11 = Table.RemoveColumns (objects10, {"@id ", "STATID_ ", "STATNAME_ ", "GOVORG_ ", "STATISTICS_NAME_SPEC ", "TITLE_SPEC "}),
26
+ objects11 = Table.SelectColumns (objects10, {"Name ", "Key ", "Data ", "ItemKind ", "ItemName ", "IsLeaf "}),
41
27
NavTable = Table.ToNavigationTable(objects11, {"Key"}, "Name", "Data", "ItemKind", "ItemName", "IsLeaf")
42
28
in
43
29
NavTable;
44
30
45
31
32
+ eStatGoJpConnectorType = type function (
33
+ optional searchKind as (type text meta [
34
+ Documentation.FieldCaption = Extension.LoadString("Type.searchKind.Documentation.FieldCaption"),
35
+ Documentation.FieldDescription = Extension.LoadString("Type.searchKind.Documentation.FieldDescription"),
36
+ Documentation.AllowedValues = { "1: 統計情報", "2: 小地域・地域メッシュ", "3: 社会・人口統計体系(都道府県・市区町村のすがた)"}
37
+ ]),
38
+ optional lang as (type text meta [
39
+ Documentation.FieldCaption = Extension.LoadString("Type.lang.Documentation.FieldCaption"),
40
+ Documentation.FieldDescription = Extension.LoadString("Type.lang.Documentation.FieldDescription"),
41
+ Documentation.AllowedValues = { "J: 日本語 (Japanese)", "E: 英語 (English)" }
42
+ ]))
43
+ as table meta [
44
+ Documentation.Name = Extension.LoadString("Type.table.Documentation.Name"),
45
+ Documentation.LongDescription = Extension.LoadString("Type.table.Documentation.LongDescription"),
46
+ Documentation.Examples = {}
47
+ ];
46
48
47
49
// Data Source Kind description
48
50
eStatGoJpConnector = [
@@ -56,7 +58,8 @@ eStatGoJpConnector = [
56
58
Label = Extension.LoadString("DataSourceLabel")
57
59
];
58
60
59
- // Data Source UI publishing description
61
+
62
+ //Data Source UI publishing description
60
63
eStatGoJpConnector.Publish = [
61
64
Beta = true,
62
65
Category = "Other",
@@ -88,7 +91,7 @@ CreateNavTableLevel1 = (credentials as any, statId as text, optional lang as tex
88
91
objects8 = Table.AddColumn(objects7, "ItemKind", each "View"),
89
92
objects9 = Table.AddColumn(objects8, "ItemName", each "View"),
90
93
objects10 = Table.AddColumn(objects9, "IsLeaf", each false),
91
- objects11 = Table.RemoveColumns (objects10, {"SURVEY_DATE "}),
94
+ objects11 = Table.SelectColumns (objects10, {"Name", "Key", "Data", "ItemKind", "ItemName", "IsLeaf "}),
92
95
NavTable = Table.ToNavigationTable(objects11, {"Key"}, "Name", "Data", "ItemKind", "ItemName", "IsLeaf")
93
96
in
94
97
NavTable;
0 commit comments