設定JSONのカスタマイズ

はじめに

Edison Matchでは、表示する項目やEdison Matchから起動するフローの指定など、アプリの設定全般をJSONに定義します。
人材と募集をマッチングする設定JSONをデフォルトで人材オブジェクトレコードページに設定していますが、画面に表示する項目や操作するオブジェクトを変更する場合は、このページを参考に変更してください。

設定JSONサンプル

{
  "search": {
    "base": "MatchingTargets__c",
    "target": "MatchingCandidates__c",
    "icon":{"category":"standard","name":"search"},
    "query": {
      "sections": [
        {
          "title": "Base Infomation",
          "items": [
            {
              "type": "normal",
              "field": "Name",
              "operator": "=",
              "default": "Name"
            }
          ]
        }
      ]
    }
  },
  "searchResult": {
    "icon":{"category":"standard","name":"record"},
    "output": {
      "sobject": "MatchingResults__c",
      "targetIdField": "MatchedCandidate__c",
      "baseIdField": "MatchedTarget__c"
    },
    "flows": [
      {
        "label": "Sample Flow",
        "apiName": "SampleFlow",
        "inputVariable": "ids"
      }
    ],
    "columns": ["Name","Text__c","Url__c"]
  },
  "matchResult": {
    "icon":{"category":"standard","name":"app"},
    "columns": ["Name","MatchedTarget__c","MatchedCandidate__c"]
  }
}

設定JSONレイアウト

設定JSONの各項目の説明を記します。

※表中の【リレーション】マーク
オブジェクトのカスタマイズ」で用意した「マッチング候補データ格納オブジェクト 」がリレーションオブジェクトパターンの場合の設定値

フィールド名必須/任意説明
search.titlestring任意検索フォーム欄のタイトル

未設定の場合は「検索条件」と表示

表示例は「≪補足≫ コンポーネントのタイトル」参照
search.iconobject任意検索フォーム欄のタイトルに表示するアイコン

未設定ならcategory=”standard”, name=”search”
が適用
search.icon.categorystring必須
※search.iconを設定するなら必須
検索フォーム欄のタイトルに表示するアイコン

指定方法は「≪補足≫ コンポーネントのicon」参照
search.icon.namestring必須
※search.iconを設定するなら必須
search.basestring必須オブジェクトのカスタマイズで用意したマッチング先データ格納オブジェクト(※)のAPI参照名
search.targetstring必須オブジェクトのカスタマイズで用意したマッチング候補データ格納オブジェクト(※)のAPI参照名

【リレーション】
子オブジェクトのAPI参照名
search.queryobject必須検索フォームに表示する検索条件
search.query.sectionsarray<object>必須セクションごとに表示する検索条件

詳細は「≪補足≫ 検索フォームのセクション」参照
search.query.sections[].titlestring必須セクションのタイトル

詳細は「≪補足≫ 検索フォームのセクション」参照
search.query.sections[].itemsarray<object>必須検索項目
search.query.sections[].items[].typestring必須固定値”normal”
search.query.sections[].items[].fieldstring必須検索項目のAPI参照名

検索条件に指定できないデータ型は「≪補足≫ 検索フォームの項目(fields)」を参照

【リレーション】
親オブジェクトと子オブジェクトのAPI参照名を指定可能

親オブジェクトの項目のAPI参照名は
[「{親オブジェクトリレーション名}.{項目のAPI参照名}」形式で指定してください

例:
ParentObj__r.ParentItem__c
search.query.sections[].items[].operatorstring必須画面初期表示時の比較演算子

fieldsに指定した項目のデータ型に応じて指定可能なoperatorが異なります。「≪補足≫ 検索フォームの比較演算子(operator)」を参照してください。
search.query.sections[].items[].defaultstring必須画面初期表示時の検索初期値

詳細は「≪補足≫ 検索フォームの初期値(default)」を参照
searchResult.titlestring任意検索結果欄のタイトル

未設定の場合は「検索結果」と表示

表示例は「≪補足≫ コンポーネントのタイトル」参照
searchResult.iconobject任意検索結果欄のタイトルに表示するアイコン

未設定ならcategory=”standard”, name=”record”
が適用
searchResult.icon.categorystring必須
※searchResult.iconを設定するなら必須
検索結果欄のタイトルに表示するアイコン

指定方法は「≪補足≫ コンポーネントのicon」参照
searchResult.icon.namestring必須
※searchResult.iconを設定するなら必須
searchResult.outputobject必須検索結果を出力するマッチング結果格納オブジェクトについての設定
searchResult.output.sobjectstring必須オブジェクトのカスタマイズで用意した、マッチング結果格納オブジェクトのAPI参照名
searchResult.output.baseIdFieldstring必須マッチング結果格納オブジェクト上のマッチング先データ格納オブジェクト参照項目
searchResult.output.targetIdFieldstring必須マッチング結果格納オブジェクト上のマッチング候補データ格納オブジェクト参照項目
searchResult.columnsarray<string>必須検索結果に表示するマッチング候補データ格納オブジェクトの項目のAPI参照名の配列

最大50項目指定可能。
ただし、項目数が少ないほどスムーズに検索結果が表示されるため、20項目程度が推奨

【リレーション】
親オブジェクトの項目のAPI参照名の配列
searchResult.flowsarray<object>任意
フローの準備で用意したフローを呼び出す場合のみ設定要。
検索結果のレコードIDを受け渡すフローの設定

呼び出すフローの分だけ以下のオブジェクトを指定
searchResult.flows[].labelstring必須
※searchResult.flowsを設定するなら必須
画面上に表示するフローの名称

表示例は「≪補足≫検索結果から呼び出すフロー」参照
searchResult.flows[].apiNamestring必須
※searchResult.flowsを設定するなら必須
起動するフローのAPI参照名
searchResult.flows[].inputVariablestring必須
※searchResult.flowsを設定するなら必須
フローの準備で用意したフローに応じて以下のどちらか設定

・recordId:画面フローに渡すレコードIDが1件だけの場合。
recordIdを入力値として指定したフローに、Edison Matchから複数件のレコードを渡した場合、レコードの件数と同じ回数フローが繰り返し呼び出される。

・ids:画面フローに渡すレコードIDが複数件の場合
matchResult.titlestring任意マッチング結果欄のタイトル

未設定の場合は「マッチング結果」と表示

表示例は「≪補足≫ コンポーネントのタイトル」参照
matchResult.iconobject任意マッチング結果欄のタイトルに表示するアイコン

未設定ならcategory=”standard”, name=”app”
が適用
matchResult.icon.categorystring必須
※matchResult.iconを設定するなら必須
検索フォーム欄のタイトルに表示するアイコン

指定方法は「≪補足≫ コンポーネントのicon」参照
matchResult.icon.namestring必須
※matchResult.iconを設定するなら必須
matchResult.columnsarray<string>必須マッチング結果欄に表示するマッチング結果格納オブジェクトの項目のAPI参照名の配列

≪補足≫ コンポーネントのicon

iconはLightning Design Systemページにあるnameとcategoryの組み合わせで指定できます。
categoryは画面右下のCategoriesから選択できます。

≪補足≫ コンポーネントのタイトル

設定JSONのsearch.titleに設定した文言は、検索フォーム冒頭のアイコンの横に表示されます。
searchResult.title、matchResult.titleも同様です。

≪補足≫ 検索フォームのセクション

sectionsで要素を分けて設定すると、検索フォーム画面上も別々のセクションとして表示されます。
titleに各セクションの表題を設定し、itemsの中に各セクションに検索条件として表示させたい項目を設定してください。

≪補足≫ 検索フォームの項目(fields)

以下のデータ型は検索条件として指定できません。

  • テキスト (暗号化)
  • テキストエリア
  • テキストエリア (リッチ)
  • ロングテキストエリア

≪補足≫ 検索フォームの比較演算子(operator)

データ型ごとの使用可能な比較演算子は以下の通りです。

データ型使用可能な比較演算子
テキスト
URL
電話
メール
= (次と一致する)
!= (次と一致しない)
LIKE (次を含む)
BEGIN_WITH (次で始まる)
END_WITH (次で終わる)
IS_NULL (値が空である)
IS_NOT_NULL (値が空ではない)
チェックボックス
参照項目
= (次と一致する)
!= (次と一致しない)
IS_NULL (値が空である)
IS_NOT_NULL (値が空ではない)
日付
日付/時間
時間
地理位置情報
通貨
数値
パーセント
選択リスト
IN (次の範囲に含まれる)
NOT IN (次の範囲に含まれない)
IS_NULL (値が空である)
IS_NOT_NULL (値が空ではない)
選択リスト (複数選択)= (次と一致する)
!= (次と一致しない)
INCLUDES (次を含む)
EXCLUDES (次を含まない)
IS_NULL (値が空である)
IS_NOT_NULL (値が空ではない)

≪補足≫ 検索フォームの初期値(default)

検索フォームの初期値には、以下3パターンの表示が可能です。

【パターン1】マッチング先データ格納オブジェクトの項目の値

【画面表示例】
マッチング先データ格納オブジェクトのテキストという項目の値を
検索フォームの検索条件テキストの初期値として設定する例。

【設定JSON設定方法】
search.query.sections[].items.defaultに、表示させたいマッチング先データ格納オブジェクト項目のAPI参照名を設定します。
以下は検索フォームに表示しているマッチング候補データ格納オブジェクトのEdisonMatch__ConditionText__cに、マッチング先データ格納オブジェクトのEdisonMatch__Text__cの値を表示する設定例です。

{
  "search": {
    "title": "案件検索",
    "base": "EdisonMatch__MatchingTargets__c",
    "target": "EdisonMatch__MatchingCandidates__c",
    "query": {
      "sections": [
        {
          "title": "文字列系",
          "items": [
             {
              "type": "normal",
              "field": "EdisonMatch__ConditionText__c",
              "operator": "=",
              "default": "EdisonMatch__Text__c"
            }
          ]
        },
   以下略

【パターン2】固定値

【画面表示例】
検索フォームの検索条件テキストの初期値に「StaticText」という固定値を表示する例。

【設定JSON設定方法】
search.query.sections[].items.defaultに、固定値を定義するvalueというkeyを持ったオブジェクトを定義します。
以下は検索フォームに表示しているマッチング候補データ格納オブジェクトのEdisonMatch__ConditionText__cに、「StaticText」という固定値を表示する例です。

{
  "search": {
    "title": "案件検索",
    "base": "EdisonMatch__MatchingTargets__c",
    "target": "EdisonMatch__MatchingCandidates__c",
    "query": {
      "sections": [
        {
          "title": "文字列系",
          "items": [
             {
              "type": "normal",
              "field": "EdisonMatch__ConditionText__c",
              "operator": "=",
              "default": {
                "value": "StaticText"
              }
            }
          ]
        },
   以下略

尚、search.query.sections[].items.default.valueの定義方法は、検索対象のマッチング候補データ格納オブジェクトのデータ型に応じて異なります。

データ型設定例説明
Name
テキスト
電話
URL
“default”: {
            “value”: “sample”
}
valueには文字列を設定
メール“default”: {
     “value”:”sample@test.co.jp”
 }
valueにはメールアドレス形式の文字列を設定
チェックボックス“default”: {
     “value”: true
}
valueには真偽値(true/false)を設定
ダブルクォーテーションは不要
日付“default”: {
     “value”: “2023-10-02”
}
valueにはyyyy-mm-dd形式の文字列を設定
日付/時間“default”: {
     “value”: “2023-10-02 02:10”
}
valueにはyyyy-mm-dd HH:mm形式の文字列を設定
時間“default”: {
     “value”: “12:10”
}
valueにはHH:mm形式の文字列を設定
数値
通貨
パーセント
“default”: {
     “value”: “1234567.001”
 }
valueには数値をダブルクォーテーションで囲んだ文字列を設定
小数、マイナス値設定可能
選択リスト“default”: {
      “value”: “A”
}
valueには指定した項目の選択肢にある値を設定
選択肢にない項目が入力された場合、画面に表示されない
選択リスト (複数選択)“default”: {
       “value”: “A;B;C”
}
valueには指定した項目の選択肢にある値を設定

複数の選択肢を設定する場合は、セミコロンで連結すること。
選択肢にない項目が入力された場合、画面に表示されない。選択肢に存在する項目のみ表示される。
地理位置情報“default”: {
        “value”: {
              “latLng”: {“latitude”:35.53278253295881,
                              “longitude”:139.69711350599303
             },
             “radius”: 80
        }
}
valueには以下それぞれ数値設定
(ダブルクォーテーション不要)

default.value.latLng.latitudeは検索中心地点の緯度、
default.value.latLng.longitudeは検索中心地点の軽度、
default.value.radiusは検索範囲の半径(単位:キロメートル)。

【パターン3】空白

【画面表示例】
検索フォームの検索条件テキストの初期値を空白で表示する例。

【設定JSON設定方法】
search.query.sections[].itemsのdefaultをkeyごと除去します。
以下は検索フォームに表示しているマッチング候補データ格納オブジェクトのEdisonMatch__ConditionText__cを空白表示する例。
field=EdisonMatch__ConditionText__cのitemsにdefaultが存在しないことがわかります。

{
  "search": {
    "title": "案件検索",
    "base": "EdisonMatch__MatchingTargets__c",
    "target": "EdisonMatch__MatchingCandidates__c",
    "query": {
      "sections": [
        {
          "title": "文字列系",
          "items": [
             {
              "type": "normal",
              "field": "EdisonMatch__ConditionText__c",
              "operator": "="`
            }
          ]
        },
   以下略

≪補足≫検索結果から呼び出すフロー

searchResult.flows[].labelには、画面でフローボタンを押した際に表示されるラベルを設定します。

searchResult.flows[].apiNameには、フローのAPI参照名を設定します。

設定JSONをアプリに設定

デフォルトでは人材オブジェクトのレコードページで「ページの編集」を押して、Lightningアプリケーションビルダーを表示します。検索フォームコンポーネントのプロパティに「設定JSON」という項目があるので、そちらに入力してください。(Record Id,Object Nameは入力不要です。)
オブジェクトのカスタマイズで人材以外のオブジェクトを使用するようにした場合は、そのオブジェクトのレコードページに設定してください。
コンポーネントをまだ配置していない場合はコンポーネントの配置をカスタマイズを参考に配置してから設定JSONを設定してください。

他のページに移動

TOP