tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:未管理パッケージを作成・配布したいときに気をつけること

SalesforceではDeveloper環境で開発したコードなどの一式をパッケージ化して別環境に配布することが可能です。

f:id:tyoshikawa1106:20131208111125p:plain


パッケージには「未管理パッケージ」と「管理パッケージ」の2種類が用意されています。未管理パッケージの場合はインストール先の組織でコードの参照や編集が可能です。管理パッケージの場合はインストール先の組織でコードの参照や編集が不可能となっています。

f:id:tyoshikawa1106:20131208113052p:plain


この未管理パッケージをインストールする際にパッケージ内のPageやClassの名称がインストール先の組織で既に使用されている場合、エラーが発生する仕組みとなっています。

f:id:tyoshikawa1106:20131208111440p:plain


特にCommonUtilなどの共通クラスの名称が重複しやすいと思います。未管理パッケージを作成して別組織に配布したい場合は名称の付け方にルールをつけたりして重複をさけるように注意が必要です。


また、未管理パッケージの再配布にも注意が必要です。既にインストール済みの未管理パッケージの修正版を再配布したい場合、先ほどの名称の重複エラーが発生してしまいます。

一度古いバージョンのパッケージを削除してからでないとインストールはできないようになっています。コードだけなら大きな問題はありませんが、オブジェクトなどがパッケージに含まれている場合、パッケージ削除時に作成したレコードが削除されてしまう問題が発生すると思います。

この場合、レコードのエクスポートを行い、パッケージを再インストール後に再度インポートし直すか、変更されたコードを手動で更新するなどの手間が発生してしまいます。


以上のように未管理パッケージを作成・配布する場合は上記の問題を考慮して行う必要があります。


ちなみに「管理パッケージ」の場合はパッケージ化する際に名前プレフィックスをつけることができるので名称の重複などの問題を回避することが可能です。ただし、インストール先の組織ではコードの参照・編集が不可能になるので各組織毎に個別のカスタマイズを行いたい場合などにはあまり向いていません。