tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Force.com IDEによるページレイアウトのデプロイ

VisualforceページやApexクラスなどはForce.com IDEを使ってSandbox環境から本番環境へデプロイすることができますが、ページレイアウトも同様にデプロイすることができます。ただし、ページやクラスと違いデプロイ可能な条件があります。


通常ページレイアウトをデプロイしようとすると次のようにエラーが発生します。

Metadataの情報を取得

f:id:tyoshikawa1106:20130903211304p:plain

取得時のエラーメッセージ

f:id:tyoshikawa1106:20130903211512p:plain


このとき無理やり進めるとpackage.xmlでは次のようになっています。
f:id:tyoshikawa1106:20130903211627p:plain

レイアウト名が文字化けしてしまっているため、デプロイすることができません。
ちなみに次のように正しい名称に書き換えてもエラーが発生してしまいます。
f:id:tyoshikawa1106:20130903211754p:plain


この現象はレイアウト名に日本語が使用されていることが原因で発生します。なので、ページレイアウト名を英語で指定するとMetadataの情報を取得することができます。

AccountTestを取得

f:id:tyoshikawa1106:20130903211946p:plain

正常に取得できています。

f:id:tyoshikawa1106:20130903211955p:plain

文字化けはありません。

f:id:tyoshikawa1106:20130903212203p:plain

デプロイ対象にも選択できます。

f:id:tyoshikawa1106:20130903212001p:plain

デプロイが正常に実行されました。

f:id:tyoshikawa1106:20130905211627p:plain

デプロイ先の環境にレイアウトが追加されています。

f:id:tyoshikawa1106:20130905211655p:plain

レイアウト情報も正しく登録されていました。

f:id:tyoshikawa1106:20130905211721p:plain

という感じでレイアウト名を英語表記にすることでForce.com IDEからもページレイアウトのデプロイが可能になります。

おまけ

Force.com IDEからページレイアウトのデプロイができることは上記の手順で確認することができました。
では Force.com IDE からのページレイアウト削除はどうでしょうか。

Apexクラスと同様の手順で削除を実行

f:id:tyoshikawa1106:20130905211945p:plain

サーバからの削除も許可

f:id:tyoshikawa1106:20130905212006p:plain


・・・結果は正常に削除が実行できました。


ということでApexクラスなどと同じようにページレイアウトもForce.com IDEからデプロイや削除の実行が可能です。