Salesforce DX に関する制限事項
Salesforce CLI
- High Sierra にアップグレードすると Salesforce CLI インストールが動作しなくなる
-
説明: Mac ユーザが CLI のインストールに .pkg インストーラを使用した場合、Mac OS X を High Sierra
にアップグレードするとその CLI インストールが動作しなくなります。
回避策: CLI をアンインストールして再インストールする前に、Salesforce の優れたアーキテクトの 1 人が提供する修正プログラムが機能するかどうか確認してください。詳細は、こちらのブログを参照してください。
機能しない場合、CLI をアンインストールしてから再インストールします。
NPM を使用するインストールを選択すると、自動更新の効果は得られません。DMG インストーラを使用した場合、CLI をアンインストールするには、次の場所から GIST アンインストールスクリプトをダウンロードして実行します。https://gist.github.com/dcarroll/318e5f2d44fb6c2e612dd8d817473cdb
NPM インストール手順: https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_install_cli_npm.htm
- CLI を 5.7.6 から 6.0 にアップグレードするとスタック追跡が発生する場合がある
-
説明:
sfdx update を実行して Salesforce CLI をバージョン
5.7.6 から 6.0 にアップグレードすると、次の正常な完了メッセージではなく、スタック追跡が表示される場合があります。
1$ sfdx update 2sfdx-cli: Updating plugins... done回避策: この不具合は一時的なものです。sfdx update を再実行してください。
- Windows のシェル環境の制限付きサポート
-
説明: Salesforce CLI は、コマンドプロンプト (cmd.exe)、Powershell、および Ubuntu の Windows Subsystem for Linux
(WSL) でテストされています。cygwin および Min-GW
環境では既知の問題があります。これらの環境は、今後のリリースでテストおよびサポートされる可能性があります。現時点では、代わりにサポートされているシェルを使用してください。
回避策: なし。
- force:apex:test:run コマンドの実行が終了しない
-
説明: 特定の状況では、force:apex:test:run
コマンドの実行が終了しません。この状況の例として、別のコンパイルの進行中にプリコンパイルをトリガする Apex テストまたは Apex
テストで発生するコンパイルエラーがあります。
回避策: Ctrl-C キーを押してコマンドの実行を停止します。コマンドが継続的インテグレーション (CI) ジョブの一部である場合、環境変数 SFDX_PRECOMPILE_DISABLE=true を設定してください。
Dev Hub およびスクラッチ組織
- Salesforce CLI でコミュニティを含むスクラッチ組織が認識されないことがある
-
説明: Salesforce CLI が、コミュニティ機能を含むスクラッチ組織の作成を認識しないことがあります
(毎回ではありません)。Dev Hub にそのスクラッチ組織がリストされていても、CLI を使用して開くことはできません。
回避策: 次の回避策を試すことができます。ただし、問題が修正されない場合もあります。Dev Hub でスクラッチ組織を削除してから、CLI を使用して新しいスクラッチ組織を作成します。スクラッチ組織の削除と再作成は、1 日あたりのスクラッチ組織の制限にカウントされます。
- 空の Enterprise Edition スクラッチ組織で一部のソースを取り込めない
-
説明: デフォルトでは、スクラッチ組織にサンプルデータはありません。空の Enterprise Edition
スクラッチ組織を作成すると、カスタムプロファイルなど、一部のソースを取り込むとエラーが表示されます。回避策: スクラッチ組織定義ファイルに、hasSampleData を追加します。
1"hasSampleData": "true", - コミュニティを取り込んでリリースするとエラーが発生する
-
説明: このエラーは、スクラッチ組織には必要なゲストライセンスがないために発生します。
回避策: スクラッチ組織定義ファイルにコミュニティ機能を指定する場合、サイト機能も指定します。
ソース管理
- force:source:convert でインストール後スクリプトが package.xml に追加されない
-
説明:
force:source:convert を実行しても、package.xml
にインストール後スクリプトが追加されません。
回避策: この問題を修正するには、force:source:convert で作成されるメタデータディレクトリの package.xml か、リリース組織またはパッケージのリリース先組織のパッケージに、<postInstallClass> 要素を手動で追加します。
- カスタムオブジェクトのメタデータファイルでフィード追跡を手動で有効にする必要がある
-
説明: カスタムオブジェクトに対するフィード追跡を有効にし、force:source:pull を実行すると、フィード追跡が有効になりません。
回避策: Salesforce DX プロジェクトで、カスタムオブジェクトのメタデータファイル (-meta.xml) に <enableFeeds>true</enableFeeds> を追加して、そのカスタムオブジェクトへのフィード追跡を手動で有効にします。
- カスタムオブジェクトに細かい変更を加えた後の状況メッセージが正しくない
-
説明: たとえば、スクラッチ組織でカスタムオブジェクトに細かい変更 (1 つの項目セットの変更など) を加えるとします。force:source:status または force:source:pull
を実行すると、変更した項目に関する状況メッセージが正しくない場合があります。この例では、項目セットがすでにソースに含まれている場合でも、リモート追加としてマークされる可能性があります。
回避策: なし。
- ローカルで権限セットを削除した後に転送すると、「Unknown」エラーが発生する
-
説明: ローカルプロジェクトから権限セットを削除してから force:source:push コマンドを実行すると、エラーメッセージ Unknown が表示されます。
回避策: なし。
- ルックアップ検索条件をスクラッチ組織に転送できない
-
説明: force:source:push
コマンドを実行してルックアップ検索条件のあるリレーション項目のソースを転送すると、次のエラーが発生する場合があります。
duplicate value found: <unknown> duplicates value on record with id: <unknown> at line num, col num.
回避策: なし。
第一世代パッケージ
- スクラッチ組織にパッケージをインストールするときに、テストが実行されない
-
説明:
継続的インテグレーションプロセスの一部としてテストを含めている場合、スクラッチ組織にパッケージをインストールするときにそれらのテストは実行されません。
回避策: パッケージがインストールされた後に手動でテストを実行できます。
- CLI での管理パッケージパスワードに対する新しい用語
-
説明: CLI
を使用してパッケージバージョンにインストールキーを追加するとき、またはキーで保護されたパッケージバージョンをインストールするときに、そのキーのパラメータ名は
--installationkey です。Salesforce
ユーザインターフェースで管理パッケージバージョンを表示する場合、この同じパッケージ属性の名前は「パスワード」です。API
での対応する項目名「password」は変更されません。
回避策: なし。ユーザインターフェースのパスワード項目名は今後のリリースで変更されます。
第二世代パッケージ
- API バージョン 41.0 以降が必要
-
説明: API バージョン 41.0 未満は、第二世代パッケージではサポートされていません。
回避策: 第二世代パッケージを作成する前に、sfdx-project.json の sourceApiVersion を 41.0 以降に設定します。
- ロック済み開発者制御パッケージをスクラッチ組織か Sandbox 組織にしかインストールできない
-
説明: 3
種類の第二世代パッケージを作成できます。管理パッケージまたはロック解除済み開発者制御パッケージはどの組織にもインストールできます。ロック済みパッケージはパイロットリリースに含まれており、Sandbox
組織またはスクラッチ組織にのみインストールできます。
回避策: なし。
- パッチバージョンを指定できない
-
説明: 4 部構成のパッケージバージョン番号には、major.minor.patch.build
として定義されたパッチセグメントが含まれます。ただし、第二世代パッケージのパッチは作成できません。パッケージ記述子でパッチ番号を設定すると、パッケージの作成に失敗します。今後のリリースのパッチバージョンをお待ちください。
回避策: バージョン番号のパッチセグメントを常に 0 に設定します。たとえば、1.2.0.1 は有効ですが、1.2.1.1 は無効です。
- インストール済みパッケージが名前空間を共有している場合、保護されたカスタムメタデータとカスタム設定がスクラッチ組織の開発者に表示される
-
説明:
保護されたカスタムメタデータまたは保護されたカスタム設定を使用して第二世代パッケージに秘密を保存する場合は注意が必要です。同じ名前空間を使用して複数の第二世代パッケージを作成できます。ただし、これらのパッケージをスクラッチ組織にインストールする場合は、名前空間を共有しているスクラッチ組織で作業している開発者全員に秘密が表示されます。今後のリリースで、このような状況でパッケージの秘密にアクセスすることを防ぐ「パッケージ保護」キーワードの追加を検討中です。
回避策: なし。