連携グラフ

連携グラフは、Guidewire App Events で使用されるデータモデルグラフです。送信連携の一環として外部アプリケーションに送信される一連のビジネス情報を定義します。例えば、クレームグラフは、クレームに関して送信される情報を定義します。連携グラフの詳細については、『App Events Guide』を参照してください。

カスタムエンティティのエンドポイントを生成する際、リソースに親リソースが含まれていて、その親リソースが連携グラフに属する場合には、連携グラフにカスタムリソースを追加することもできます。グラフにカスタムリソースを追加するには、最後のプロンプト(「Should <CustomEntity> be added to an integration graph?(連携グラフに <CustomEntity> を追加する必要がありますか)」)に「y」と回答します。追加のプロンプトで、グラフの名前を尋ねられます。

連携グラフにカスタムエンティティが追加されると、REST エンドポイントジェネレータは次のファイルを変更します。

  • <graphName>_graph_ext-1.0.schema.json ファイル
  • <graphName>_graph_ext-1.0.mapping.json ファイル
  • shared_ext-1.0.apiconfig.yaml ファイル

グラフスキーマファイルをコンフィギュレーションする必要はありません。ただし、グラフマッパーファイルと apiconfig.yaml ファイルにはコンフィギュレーションが必要です。

グラフスキーマファイル

グラフスキーマファイルは、連携グラフの構造を定義します。特定のグラフにカスタムリソースを追加するよう指定すると、REST エンドポイントジェネレータは対応する <graphName>_graph_ext-1.0.schema.json ファイルにコードを追加します。

例えば、CustomEntity_Ext データモデルエンティティのエンドポイントを生成して、対応するリソースをクレームグラフに追加したとします。claim_graph_ext-1.0.schema.json ファイルには、次の(太字で示した)コードが追加されます。

{ 
  "$schema": "http://json-schema.org/draft-07/schema#", 
  "x-gw-combine": [ 
    "ext.claim.v1.claim_combined_ext-1.0", 
    "gw.content.cc.claim.v1.claim_graph_content-1.0" 
  ], 
  "definitions": { 
    "Claim": { 
      "properties": { 
        "customEntitiesExt": { 
          "title": "Custom entities ext", 
          "description": "The collection of custom entities ext on this claim", 
          "type": "array", 
          "items": { 
            "$ref": "#/definitions/CustomEntityExt" 
          } 
        } 
      } 
    } 
  } 
} 

通常、グラフスキーマファイルにコンフィギュレーションは不要です。

グラフマッパーファイル

グラフマッパーファイルは、連携グラフのプロパティに情報が書き込まれる方法を定義します。特定のグラフにカスタムリソースを追加するよう指定すると、REST エンドポイントジェネレータは対応する <graphName>_graph_ext-1.0.mapping.json ファイルにコードを追加します。

例えば、CustomEntity_Ext データモデルエンティティのエンドポイントを生成して、対応するリソースをクレームグラフに追加したとします。claim_graph_ext-1.0.mapping.json ファイルには、次の(太字で示した)コードが追加されます。

{ 
  "schemaName": "ext.claim.v1.claim_graph_ext-1.0", 
  "combine": [ 
    "ext.claim.v1.claim_combined_ext-1.0", 
    "gw.content.cc.claim.v1.claim_graph_content-1.0" 
  ], 
  "mappers": { 
    "Claim": { 
      "schemaDefinition": "Claim", 
      "root": "entity.Claim", 
      "properties": { 
        "customEntitiesExt": { 
          "path": "TODO RestEndpointGenerator provide a collection  
                   of CustomEntities_Ext", 
          "mapper": "#/mappers/CustomEntityExt" 
        } 
      } 
    } 
  } 
} 

カスタムエンティティのコレクションプロパティの path を指定して、ファイルをコンフィギュレーションする必要があります。これは通常、親データモデルエンティティの対応する配列に設定されます。

前の例に続いて、claim_graph_ext-1.0.mapping.json ファイルのパス属性を次のように設定する必要があります。

{ 
  "schemaName": "ext.claim.v1.claim_graph_ext-1.0", 
  "combine": [ 
    "ext.claim.v1.claim_combined_ext-1.0", 
    "gw.content.cc.claim.v1.claim_graph_content-1.0" 
  ], 
  "mappers": { 
    "Claim": { 
      "schemaDefinition": "Claim", 
      "root": "entity.Claim", 
      "properties": { 
        "customEntitiesExt": { 
          "path": "Claim.CustomEntities_Ext", 
          "mapper": "#/mappers/CustomEntityExt" 
        } 
      } 
    } 
  } 
} 

apiconfig ファイル内のマッピング

shared_ext-1.0.apiconfig.yaml は、共有の要素リソースとコレクションリソースを Gosu Resource ファイルにマッピングします。また、連携グラフの URI マッピングも指定します。グラフにカスタムリソースを追加するよう指定すると、REST エンドポイントジェネレータは対応する shared_ext-1.0.apiconfig.yaml ファイルにコードを追加します。

例えば、CustomEntity_Ext データモデルエンティティのエンドポイントを生成して、対応するリソースをクレームグラフに追加したとします。shared_ext-1.0.apiconfig.yaml ファイルには、次の(太字で示した)コードが追加されます。
entityURIMappings:
 CustomEntity_Ext:
    uri: "${parentUri}/custom-entities-ext/${CustomEntity_Ext.RestId}"
    parent: "TODO RestEndpointGenerator link to the parent of CustomEntity_Ext"

カスタムエンティティの parent を指定して、ファイルをコンフィギュレーションする必要があります。これは通常、カスタムデータモデルエンティティの対応する外部キーに設定されます。

前の例に続いて、shared_ext-1.0.apiconfig.yaml ファイルのパス属性を次のように設定する必要があります。

entityURIMappings:
  CustomIEntity_Ext:
    uri: "${parentUri}/custom-entities-ext/${CustomEntity_Ext.RestId}"
    parent: "CustomEntity_Ext.Claim"