ロケーションデータについて
Work.com では、ロケーションを使用して、従業員を物理的なロケーションおよび抽象的なロケーションに関連付けます。従業員のロケーションを追跡する別のデータモデルがすでに既存のソリューションにある場合があります。Work.com を最大限に活用するために、ソリューションのデータをロケーションデータに相関付けたり、同期したりすることが必要になる場合があります。
ロケーションは、建物、農場、工場など、通常の仕事日に従業員が普段集まる物理的なサイトにすることができます。ロケーションを抽象的なロケーションにして、同じ営業地域に属するロケーションなど、特性が共通であるために一緒に表示する必要がある子ロケーションの集計を表すこともできます。ソリューションですでに別のエンティティまたはデータソースを使用してロケーションを定義しており、この情報を Work.com に相関付ける必要がある場合、データを Location オブジェクトに同期する必要があります。従業員データを同期する場合と同じような同期戦略をロケーションデータでも使用できます。
ロケーション階層の照会
ロケーションはモデル化されて、階層ツリー構造として使用されるため、構造内のサブツリーを効率的に照会できることが重要です。これは、ロケーショントリガーと共に wkcc__LocationPath__c 項目を使用して実現できます。wkcc__LocationPath__c は、「<レベル 1 ID>,<レベル 2 ID>,<レベル 3 ID>」の形式になります。
次の SOQL の例では、ロケーション階層のサブツリーを照会します。
1SELECT Id, Name, wkcc__LocationPath__c FROM Location
2WHERE wkcc__LocationPath__c LIKE '1314R000000PZ0eQAG,1314R000000PZ0jQAG,%'通常のフローでは、目的のサブツリーの最上位のロケーションを照会してから、次のように照会します。
1Schema.Location parentLoc = [SELECT Id, wkcc__LocationPath__c FROM Location
2 WHERE LocationLevel = 2 LIMIT 1];
3String parentLikeClause = parentLoc.wkcc__LocationPath__c + ',%';
4List<Schema.Location> locs = [SELECT Id, Name, wkcc__LocationPath__c FROM Location
5 WHERE wkcc__LocationPath__c LIKE :parentLikeClause];