アカウントの拡張住所モデルの有効化
拡張住所データモデル機能でアカウントの住所テーブルを使用し、重複する場所レコードを作成せずに、1 つの場所を複数のアカウントにリンクします。
始める前に
必要なロール:admin
手順
- 場所 [cmn_location] テーブルからアカウントに関連付けられた場所データのバックアップを取得します。
-
カスタムリレーションシップフィールドが場所テーブルに既に作成されている場合は、アカウントの住所 [account_address_relationship] テーブルにそれらのフィールドを作成します。
アカウントの住所テーブルに新しく作成されるフィールドは、場所テーブルのフィールドと同じ名前とタイプである必要があります。ベースシステムには、2 つのリレーションシップフィールドがあります。
- タイプ
- primary
これらのリレーションシップフィールドは、アカウントの住所 [account_address_relationship] テーブルに作成されます。テーブル内の新しいフィールドの作成の詳細については、「テーブルのフィールドを追加およびカスタマイズする」を参照してください。
-
アカウントの住所テーブルを参照するカスタムコードを更新します。
カスタムコードには、アカウントの住所テーブル内のアカウントの住所を取得する要素を含めることができます。このような要素には、参照修飾子、スクリプトインクルード、ビジネスルール、および場所テーブルを指す ACL があります。
- アカウント関連データを場所テーブルからアカウントの住所テーブルに移動します。
-
次の移行スクリプトを実行します。
var customRelationshipFields = []; //Add custom relationship fields (if any). var account = ""; //You must specify the sys_id of the account if you wish to migrate location data for that account (mostly to be used during re-run). var migrateChildAccountLocations = false; // This value must be set to true if you wish to migrate the locations of the child accounts associated with the specified account (mostly to be used during re-run). new sn_cs_base.CSDataFix().migrateLocationDataToAccountAddress(customRelationshipFields, account, migrateChildAccountLocations);移行する必要があるレコードの数と既に移行されたレコードの数の間に差異がある場合、スクリプトを再実行します。再実行の場合、既に移された場所では再度移行されません。既に移行された場所で移行を再実行するには、アカウントの住所テーブル内の対応するレコードを削除します。
-
場所テーブルの [アカウント] フィールドおよび [カスタムリレーションシップ (Custom Relationship)] フィールドを無効にして、誤ったデータの入力を防止します。
注:[タイプ] および [プライマリ] 属性を非アクティブ化しないでください。この非アクティブ化により、場所関連のフォーム、リスト、および関連リストから [アカウント] フィールドと [カスタムリレーションシップ (Custom Relationship)] フィールドが削除されます。
-
システムプロパティ enable_account_address_sharing を [true] に設定します。
このプロパティを使用して、アカウントの拡張住所データモデルを有効にします。アカウントと場所のフォームに [アカウントの住所] 関連リストが表示されます。