スクラッチ組織で開発時に便利なSFDXコマンド一覧

### スクラッチ組織で開発時に利用頻度の高いSFDXコマンドをメモっておきます。

***

### ■組織関連

**組織一覧を表示：**
sf org list

**組織接続：**
sf org web login -r <ログインURL> -d -a <別名>

**組織をブラウザーで開く：**
sf org open -u <別名>

**プロジェクトを作成：**
sf project create -n <プロジェクト名>

**スクラッチ組織を作成：**
sf org create scratch -f config/project-scratch-def.json -y 30 -a scratch01 -v devhub-d 
--admin-email <メールアドレス>
※：project-scratch-def.jsonにadmin-emailとusernameを定義すると便利

### ■ソースコードの取得とコミット

**ソース取得**
sfdx force:source:pull
sf project retrieve preview/start -c
-c | --ignore-conflicts

**ソース送信**
sfdx force:source:push
sf project deploy preview/start -c
-c | --ignore-conflicts

**ソース削除**
sfdx force:source:delete

**ソース状況**
sfdx force:source:status

**検証**
sf project deploy validate -d <ソースフォルダ>

### ■パッケージ関連

**管理パッケージ作成**
sf package create --name <パッケージ名> -v \<DevHub\> --description <パッケージの説明> --packagetype Managed --path force-app

**パッケージバージョン作成**
sf package version create --package <パッケージ名> --path force-app --installationkey <パスワード> --wait 10 --targetdevhubusername \<DevHub\> --codecoverage –f <スクラッチ組織要素ファイル> --postinstallscript=\<APEXクラス\>

**パッケージバージョン昇格**
sf package　version　promote -v \<devhub\> -p <パッケージバージョン>
確認メッセージが表示されるので「y」を入力し、確定する。

**パッケージリスト表示：**
sf package list -v <devhub>
``` Shell
> sf package list -v devhub-a
Namespace Prefix Name                   Id                 Alias                  Description               Type    
 ──────────────── ────────────────────── ────────────────── ────────────────────── ───────────────────────── ─────── 
 NS_ABC           FunnyWorld             0Ho2w000000XXXXXZZZ                        Funny App                 Managed
```

**パッケージバージョンリスト表示：**
sf package version list -v \<devhub\> -p <パッケージID> 
``` Shell
> sf package version list -v devhub-a -p 0Ho2w000000XXXXXZZZ
=== Package Versions [2]

 Package Name   Namespace Version Name Version Subscriber Package Version Id Alias Installation Key Released Validation Skipped Ancestor           Ancestor Version Branch 
 ────────────── ───────── ──────────── ─────── 
 FunnyWorld   NS_ABC    ver 0.1      0.1.0.1 04t2w00000XXXX1ZZZ                  true             true     false
 FunnyWorld   NS_ABC    ver 0.2      0.2.0.1 04t2w00000XXXX2ZZZ                  true             true     false              04t2w00000XXXX1ZZZ 0.1.0.1
PS > 
```
Subscriber Package Version Id : 04t2w00000XXXX2ZZZ

**パッケージ作成時の情報を表示：**
sf package version create list -v \<DevHub\> --status Success
①パッケージバージョンリスト表示で表示されるSubscriber Package Version IDを元にIDを確定)

``` Shell
> sf package create version list -v devhub-d -s Success
=== Package Version Create Requests  [48]

 Id                 Status  Package Id         Package Version Id Subscriber Package Version Id Tag Branch Created Date     Created By
 ────────────────── ─────── ────────────────── ────────────────── ──────────────────────────── 
 08c2w000000L2pLYYY Success 0Ho2w000000L0cIAAA 05i2w000000L1RFBBB 04t2w000009aeMLCCC                       2023-08-03 14:05 0052w00000GYJ0BDDD
 08c2w000000L2pGYYY Success 0Ho2w000000L0cIAAA 05i2w000000L1RABBB 04t2w000009aeMGCCC                       2023-08-03 11:03 0052w00000GYJ0BDDD
 08c2w000000XcnZYYY Success 0Ho2w000000bmWGAAA 05i2w000000XbklBBB 04t2w00000XXXX2ZZZ                       2023-07-18 12:58 0052w00000GYJ0BDDD
``` 
Subscriber Package Version Id : 04t2w00000XXXX2ZZZ より
Id :  08c2w000000XcnZYYY 確定

**パッケージ作成時の情報を表示：**
sf package version create report -v \<devhub\> -i \<ID\>
①でのIDを利用して、レポート確認、該当パッケージのインストール用のURLが確認可能。

``` Shell
PS >  sf package version create report -v devhub-a -i 08c2w000000XcnZYYY
=== Package Version Create Request

 Name                          Value
 ───────────────────────────── ──────────────────────────────────────────
 ID                            08c2w000000XcnZYYY
 Status                        Success
 Package Id                    0Ho2w000000bmWGAAA
 Package Version Id            05i2w000000XbklBBB
 Subscriber Package Version Id 04t2w00000XXXX2ZZZ
 Tag
 Branch
 Created Date                  2023-07-20 10:25
 Installation URL              https://login.salesforce.com/packaging/installPackage.apexp?p0=04t2w00000XXXX2ZZZ
 Created By                    0052w00000GYJ0BYYY
PS > 
``` 

インストール先URLをゲット。


**パッケージ依存関係表示：**
sf package version displayancestry -v \<devhub\> -p <パッケージ名>