Salesforce のデプロイ作業時に、「〇〇」画面の「△△」画面項目がセクションであるため、regionContainerTypeは必須です というエラーが表示された場合の対処方法です。
Salesforce のエラー(特にデプロイ時のエラー)に遭遇した際は、日本語の記事が少ないため、トラブルシューティングに苦労することが多いですよね。
本記事が少しでもお役に立てれば幸いです。
エラーの対象リソース
本エラーメッセージは、フロー(flows)、特に画面フローのデプロイ時に発生する場合があります。
エラー画面では、「フローのバージョン」と表示されます。
flows について
メタデータ デプロイでフロー(Flow)をデプロイする際に利用します。
Package.xml では以下のように記載します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>xxx</members>
<name>Flow</name>
</types>
<version>56.0</version>
</Package>
エラーの原因
エラーメッセージに表示されている、「regionContainerType」をセクションに指定していないためです。
これはフローのメタデータ 情報の一つで、以下の2種類の列挙値から選択します。
- SectionWithHeader
- SectionWithoutHeader
公式開発ガイドを見ると、次のように記載されています。
コンポーネントの種類が Section の場合にのみ使用できます。API バージョン 55.0 以降で利用できます。
メタデータ API 開発者ガイド:Flow
「API バージョン 55.0 以降で利用できます。」とありますが、実際は、画面フローでセクションを利用している場合は「必須」です。

公式ドキュメントにも、本記事執筆時点 (2023年1月) では知る限り記載がありません。デプロイ時に悪戦苦闘しました。
しかし、この「regionContainerType」が含まれたメタデータ は APIバージョン55.0ではリトリーブできません。
そんなバカな・・・と思うのですが。
解決策①
フローをリトリーブする際は、APIバージョン 56.0 でリトリーブしましょう。
原因はわかりませんが、56.0 であれば「regionContainerType」が含まれたメタデータを取得できます。
先ほどの Package.xml の例の通り、以下のようにバージョン指定します。
<version>56.0</version>
解決策②
基本的に、解決策①で解決するはずです。
しかし、何らかの制約がある場合は、手作業でメタデータ を上書きしてしまいましょう。
バージョンアップによって自動で設定される値は以下のとおりです。
<regionContainerType>SectionWithoutHeader</regionContainerType>
そのため、画面フローで特にセクションを指定していない場合は手動で追記してあげれば良いです。
追記する箇所は、以下のようにセクションの <fields> に加えます。
<screens>
<name>hogehogeScreen</name>
<label>ほげほげ画面</label>
・・・ {中略} ・・・
<fields>
<name>fugafuga_Section1</name>
<fieldType>RegionContainer</fieldType>
<fields>
<name>fugafuga_Section1_Column1</name>
・・・ {中略} ・・・
</fields>
<fields>
<name>fugafuga_Section1_Column2</name>
・・・ {中略} ・・・
</fields>
<isRequired>false</isRequired>
<regionContainerType>SectionWithoutHeader</regionContainerType>
</fields>
</screens>
おわりに
Salesforce では、バージョンアップで突然今までのやり方でデプロイに失敗する場合があります。
リリース時に必要な設定も日々変わる可能性があるので、アンテナを広げておく必要がありますね。
実際は、エラーに出会ったら中々日本語の情報がないので苦労しますよね。。
本記事が少しでもお役に立ちますように。
コメント