Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 受付・アダプタ定義編


2.10.3 フォルト電文フォーマットを修正する

gRPC受付では,gRPCのメッセージ内容に沿ったフォルト電文フォーマットを提供しています。このフォルト電文フォーマット(XMLスキーマファイル)は,gRPC受付を作成したときに,ユーザ定義受付定義画面(基本)のフォルト電文フォーマットに自動的に設定されます。

注※

gRPCを利用した通信では,google.rpc.Statusのメッセージの処理方式によってエラー処理を行っています。google.rpc.Statusのメッセージ内容,およびエラー処理については,Google社のgoogle.rpc.Statusに関するサイトを参照してください。

gRPC受付を作成したあと,必要に応じてフォルト電文フォーマットのXMLスキーマファイルを修正し,再登録できます。再登録することで,XMLスキーマファイルの記述を簡略化できます。

〈この項の構成〉

(1) フォルト電文フォーマットを修正する手順

XMLスキーマファイルを修正する手順を次に示します。

  1. 次のXMLスキーマファイルを任意の場所にコピーします。

    <サービスプラットフォームのインストールディレクトリ>\CSC\custom-reception\gRPC\schema\urecp_grpc_fault.xsd

  2. コピーしたXMLスキーマファイルをテキストエディタで開きます。

  3. XMLスキーマファイルに定義されている,/fault/status/details要素以下に定義されている次の要素のうち,使用しない要素を削除します。

    • retry-info

    • debug-info

    • quota-failure

    • error-info

    • precondition-failure

    • bad-request

    • request-info

    • resource-info

    • help

    • localized-message

    • additional-message

    処理に必要な要素を削除した場合の動作は保証されません。

    これらの要素は,Google社が提供するgoogle/rpc/error_details.protoの内容に対応しています。google/rpc/error_details.protoの内容については,Google社のgoogle/rpc/error_details.protoに関するサイトを参照してください。

    なお,additional-messageは,google/rpc/error_details.protoに定義されていない任意の型のメッセージを格納する場合に使用します。

  4. 使用しない要素(子要素を含む)を削除したXMLスキーマファイルを保存します。

  5. 修正したXMLスキーマファイルを,ユーザ定義受付定義画面(基本)の[フォルト電文]に設定します。

    修正したXMLスキーマファイル以外を設定した場合,動作は保証されません。

(2) フォルト電文フォーマットの形式

gRPC受付のフォルト電文フォーマットの形式について説明します。

名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/grpc/fault」です。

表2‒37 gRPC受付のフォルト電文フォーマット

タグ名

種別

出現回数

説明

<fault>

1回

<status>

1回

ステータス情報を指定します。

<code>

文字列

1回

ステータスコードを指定します。

<message>

文字列

0〜1回

開発者向けのエラーメッセージを指定します。

設定値は英字で設定してください。英字以外の値を指定した場合の動作は保証されません。

<details>

0〜1回

詳細エラーのメッセージのリストを指定します。子要素として「error_details.proto」のメッセージ構造体に応じた要素が出現します。

<retry-info>

0回以上

メッセージ構造体「RetryInfo」の定義内容を指定します。

<retry-delay>

文字列

0〜1回

引数「retry_delay」が設定されます。

<seconds>

文字列

0〜1回

引数「retry_delay」の秒を指定します。

設定値は「-315,576,000,000〜315,576,000,000」の範囲で指定してください。

<nanos>

文字列

0〜1回

引数「retry_delay」のナノ秒を指定します。設定値は「-999,999,999〜999,999,999」の範囲で指定してください。

<debug-info>

0回以上

メッセージ構造体「DebugInfo」の定義内容を指定します。

<stack-entries>

文字列

0回以上

引数「stack_entries」が設定されます。

<detail>

文字列

0〜1回

引数「detail」が設定されます。

<quota-failure>

0回以上

メッセージ構造体「QuotaFailure」の定義内容を指定します。

<violation>

0回以上

メッセージ構造体「Violation」の定義内容を指定します。

<subject>

文字列

0〜1回

引数「subject」が設定されます。

<description>

文字列

0〜1回

引数「description」が設定されます。

<error-info>

0回以上

メッセージ構造体「ErrorInfo」の定義内容を指定します。

<reason>

文字列

0〜1回

引数「reason」を指定します。

設定値は,63文字以内の「A-Z」「0-9」「_」の範囲の文字列を指定してください。範囲外の値を指定した場合の動作は保証されません。

<domain>

文字列

0〜1回

引数「domain」が設定されます。

<metadata>

0回以上

引数「metadata」が設定されます。

<key>

文字列

1回

メタデータのキーを指定します。キーの省略(空文字含む)はできません。

設定値は,64文字以内の「a-z」「A-Z」「0-9」「-」「_」の範囲の文字列を指定してください。範囲外の値を指定した場合の動作は保証されません。

<value>

文字列

1回

メタデータの値を指定します。

<precondition-failure>

0回以上

メッセージ構造体「PreconditionFailure」の定義内容を指定します。

<violation>

0回以上

メッセージ構造体「Violation」の定義内容を指定します。

<type>

文字列

0〜1回

引数「type」が設定されます。

<subject>

文字列

0〜1回

引数「subject」が設定されます。

<description>

文字列

0〜1回

引数「description」が設定されます。

<bad-request>

0回以上

メッセージ構造体「BadRequest」の定義内容を指定します。

<field-violation>

0回以上

メッセージ構造体「FieldViolation」の定義内容を指定します。

<field>

文字列

0〜1回

引数「field」が設定されます。

<description>

文字列

0〜1回

引数「description」が設定されます。

<request-info>

0回以上

メッセージ構造体「RequestInfo」の定義内容を指定します。

<request-id>

文字列

0〜1回

引数「request_id」が設定されます。

<serving-data>

文字列

0〜1回

引数「serving_data」が設定されます。

<resource-info>

0回以上

メッセージ構造体「ResourceInfo」の定義内容を指定します。

<resource-type>

文字列

0〜1回

引数「resource_type」が設定されます。

<resource-name>

文字列

0〜1回

引数「resource_name」が設定されます。

<owner>

文字列

0〜1回

引数「owner」が設定されます。

<description>

文字列

0〜1回

引数「description」が設定されます。

<help>

0回以上

メッセージ構造体「Help」の定義内容を指定します。

<link>

0回以上

メッセージ構造体「Link」の定義内容を指定します。

<description>

文字列

0〜1回

引数「description」が設定されます。

<url>

文字列

0〜1回

引数「url」が設定されます。

<localized-message>

0回以上

メッセージ構造体「LocalizedMessage」の定義内容を指定します。

<locale>

文字列

0〜1回

引数「locale」を指定します。

設定値は,IETFのBCP47に準拠してください。IETFのBCP47に準拠していない場合の動作は保証されません。

<message>

文字列

0〜1回

引数「message」が設定されます。

<additional-message>

0回以上

「error_details.proto」のメッセージ構造体に定義されていないメッセージの定義内容を指定します。Any型のメッセージとして扱われます。

<type-url>

文字列

1回

メッセージのタイプ(URL/resource name)を指定します。

<value>

文字列

1回

メッセージの値をBase64エンコードしたデータを指定します。

<metadata>

0回以上

gRPCクライアントに送信するメタデータを指定します。

<key>

文字列

1回

gRPCクライアントに送信するメタデータのキーを指定します。キーの省略(空文字含む)はできません。

バイナリ形式で送信する場合,この要素値は「-bin」で終了してください。

<value>

文字列

1回

メタデータのキーに対する値を指定します。

テキスト形式の場合,0x20および0x21-0x7Eの範囲の文字列が指定できます。ただし,空白(0x20)を値の最初または最後に置くことはできません。

指定できない値を指定した場合の動作は保証されません。

バイナリ形式の場合,Base64でエンコードした値を設定します。

(凡例)

−:該当しません。

注※

フォルト電文に設定できるステータスコードを次に示します。次に示すステータスコード以外の値が設定された場合,リクエストがエラーとなります。

・CANCELLED

・UNKNOWN

・INVALID_ARGUMENT

・DEADLINE_EXCEEDED

・NOT_FOUND

・ALREADY_EXISTS

・PERMISSION_DENIED

・RESOURCE_EXHAUSTED

・FAILED_PRECONDITION

・ABORTED

・OUT_OF_RANGE

・UNIMPLEMENTED

・INTERNAL

・UNAVAILABLE

・DATA_LOSS

・UNAUTHENTICATED