ロック解除済みパッケージからの連動関係情報の抽出
インストールされたロック解除済みパッケージに対して簡単な SOQL クエリを実行し、その連動関係情報を抽出できるようになりました。また、スクリプトを作成し、連動関係を持つロック解除済みパッケージのインストールを自動化することもできます。
SubscriberPackageVersion Tooling API オブジェクトで連動関係情報が提供されるようになりました。SubscriberPackageVersion に対する SOQL クエリを使用して、ロック解除済みパッケージの連動元のパッケージを特定できます。これらのパッケージの (04t) ID と、正しいインストール順序を取得できます。
例
パッケージ B にはパッケージ A との連動関係があります。パッケージ D はパッケージ B と C に連動します。パッケージバージョンの作成時に指定されたサンプルの sfdx-project.json を次に示します。パッケージ D の連動関係はパッケージ A、B および C として記述されています。
pkgD (ID=04txx000000082hAAA) をインストールする前に次の SOQL クエリを実行して連動関係を確認します。通常、ユーザ名は、ロック解除済みパッケージのインストール先の登録者組織です。
クエリを実行すると、pkgA、pkgB、pkgC の (04t) ID がこの順序で含まれている次の出力が表示されます。
1{
2 "packageDirectories": [
3 {
4 "path": "pkg-a-workspace",
5 "package": "pkgA",
6 "versionName": "ver 4.9",
7 "versionNumber": "4.9.0.NEXT",
8 "default": true
9 },
10 {
11 "path": "pkg-b-workspace",
12 "package": "pkgB",
13 "versionName": "ver 3.17",
14 "versionNumber": "3.17.0.NEXT",
15 "default": false,
16 "dependencies": [
17 {
18 "package": "pkgA",
19 "versionNumber": "3.3.0.LATEST"
20 }
21 ]
22 },
23 {
24 "path": "pkg-c-workspace",
25 "package": "pkgC",
26 "versionName": "ver 2.1",
27 "versionNumber": "2.1.0.NEXT",
28 "default": false
29 },
30 {
31 "path": "pkg-d-workspace",
32 "package": "pkgD",
33 "versionName": "ver 1.1",
34 "versionNumber": "1.1.0.NEXT",
35 "default": false,
36 "dependencies": [
37 {
38 "package": "pkgA",
39 "versionNumber": "3.3.0.LATEST"
40 },
41 {
42 "package": "pkgB",
43 "versionNumber": "3.12.0.LATEST"
44 },
45 {
46 "package": "pkgC",
47 "versionNumber": "2.1.0.LATEST"
48 }
49 ]
50 }
51 ],
52 "namespace": "",
53 "sfdcLoginUrl": "https://login.salesforce.com",
54 "sourceApiVersion": "44.0",
55 "packageAliases": {
56 "pkgA": "0HoB00000008Oq6KAE",
57 "pkgB": "0HoB00000008OqBKAU",
58 "pkgC": "0HoB00000008OqGKAU",
59 "pkgD": "0HoB00000008OqGKAQ"
60 }
61}1sfdx force:data:soql:query -u {USERNAME} -t
2 -q "SELECT Dependencies FROM SubscriberPackageVersion
3 WHERE Id='04txx000000082hAAA'" --json1"Dependencies":{"Ids":[
2 {"subscriberPackageVersionId":"04txx000000080vAAA"},
3 {"subscriberPackageVersionId":"04txx000000082XAAQ"},
4 {"subscriberPackageVersionId":"04txx0000000AiGAAU"}]}