本記事はSalesforce のリリース中に 「In field: utilityBar - no FlexiPage named UtilityBar found.」 というエラーメッセージに悩まされた時の備忘録です。
エラー原因
多くの場合、カスタムアプリケーションを実装してデプロイしようとした時に、FlexiPageメタデータの UtilityBar を入れていないことが原因です。
カスタムアプリケーションを設定する際に、「ユーティリティ」を設定していなくとも、デフォルトとしてメタデータ内部には設定が行われます。
そして、そのアプリケーション内で、使っていなくとも UtilityBar が自動的に定義されます。
メタデータを組織からリトリーブする際に、これを意識していないとリリースモジュールから漏れてしまう可能性がありますね。
対応方法
多くの開発者は Visual Studio Code でリリースを行うのではないでしょうか。
※変更セット派の方はスミマセン
Visual Studio Code の拡張プラグインである、Salesforce Extension Pack では、Salesforce プロジェクトで組織を認証しているとリトリーブなどがスムーズに行えますよね。
その際に、以下のように package.xml に指定すればリトリーブできます。
<types>
<member>FlexiPage</member>
<name>UtilityBar</name>
</types>
UtilityBar は FlexiPage の一種として扱われます。
しかし、残念ながら、Salesforce プロジェクトの flexipages
ディレクトリから一括でリトリーブしようとしても、なぜか UtilityBar は取得できません。
(必ずとは言い切れませんが)、多くの場合、先述のように package.xml に指定してリトリーブする必要があります。
おわりに
このエラー、遭遇する時は遭遇するのですが、ググっても真っ当な情報には辿り着けません。 お役に立ちますように。
コメント