Veeva Vault Connector 1.5 の追加設定情報 - Mule 4

Invoke Rest API

Invoke Rest API​ 操作は、リクエストボディとして Mule メッセージペイロードを送信します。

リクエストボディに加えて、DataWeave スクリプトまたは式を使用して以下を設定できます。

ヘッダーを設定する

  1. Anypoint Studio で、​[General (一般)] > [Request (要求)] > [Query Parameters (クエリパラメーター)]​ に移動します。

  2. プラスアイコン (+) をクリックしてヘッダーを要求に追加します。

    たとえば、DataWeave 式を使用して、ヘッダー名 ​HeaderName1​ および ​HeaderName2​ とヘッダー値 ​HeaderValue1​ および ​HeaderValue2​ を追加します。

    #[{'HeaderName1' : 'HeaderValue1', 'HeaderName2' : 'HeaderValue2'}].

URI パラメーターを設定する

要求のパスにプレースホルダー (​/objects/documents/{doc_id}​ など) を使用する場合は、URI パラメーターを設定します。

  1. Anypoint Studio で、​[Path (パス)]​ 項目にプレースホルダーを中括弧で囲んで入力します。

  2. [URI Parameters (URI パラメーター)]​ を選択します。

  3. プラス記号 (+) をクリックして、名前と値を入力します。

クエリパラメーターを設定する

  1. Anypoint Studio で、​[General (一般)] > [Request (要求)] > [Query Parameters (クエリパラメーター)]​ に移動します。

  2. プラスアイコン (+) をクリックして、パラメーターを要求に追加します。パラメーターの名前と値を入力するか、DataWeave 式を使用して名前と値を定義します。

POST 要求での form (フォーム) パラメーターの送信

POST 要求でパラメーターを送信する方法:

  1. [General (一般)] > [Request (要求)]​ で、​POST​ メソッドを選択します。

  2. [Body (本文)]​ に、Mule メッセージのペイロードを入力します。

    1. application/x-www-form-urlencoded​ などで送信するパラメーターの名前と値を入力します。

      #[output application/x-www-form-urlencoded --- {'key1':'value1', 'key2':'value2'}]
    2. multipart/form-data​ で、​Content-Type​ 値に DataWeave 出力と同じ境界属性値が含まれていることを確認してください。例: multipart/form-data; boundary=abcdefg​。

      %dw 2.0
      output multipart/form-data boundary='abcdefg'
      ---
      {
      	parts: {
      		file: {
      			headers: {
      				"Content-Disposition": {
      					"name": "file",
      					"filename": attributes.fileName
      				},
      				"Content-Type": payload.^mimeType
      			},
      			content : payload
      		},
      		name__v: {
      			headers: {
      
      			},
      			content: 'Test Document'
      		},
      		type__v: {
      			headers: {
      
      			},
      			content: 'Trial Management'
      		},
      		subtype__v: {
      			headers: {
      
      			},
      			content: 'Meetings'
      		},
      		classification__v: {
      			headers: {
      
      			},
      			content: 'Kick-off Meeting Material'
      		},
      		lifecycle__v: {
      			headers: {
      
      			},
      			content: 'Base Doc Lifecycle'
      		},
      		study__v: {
      			headers: {
      
      			},
      			content: '0ST000000000301'
      		},
      		comments__c: {
      			headers: {
      
      			},
      			content: 'Test Document'
      		}
      	}
      }

コネクタ操作の SUCCESS および FAILURE 応答

Veeva Vault Connector 操作の応答は、Veeva Vault API の成功または失敗応答とエラーに基づきます。

コネクタは ​SUCCESS​ 応答を ​HIGH LEVEL​ で返し、​SUCCESS​ または ​FAILURE​ を ​LOW LEVEL​ で返します。つまり、コネクタ操作が正常に終了しても、要求に渡された関連のない一部のデータのために一部のドキュメントまたはオブジェクトレコードの作成または更新が失敗していることがあります。

SUCCESS を含む SUCCESS 応答​:

{
	"responseStatus": "SUCCESS",
	"data": [{
			"id": 239026,
			"name__v": "E22611234--38483",
			"responseStatus": "SUCCESS"
		},
		{
			"id": 239025,
			"name__v": "Kick-off Meeting Material Updated12341234--81032",
			"responseStatus": "SUCCESS"
		}
	]
}

FAILURE を含む SUCCESS 応答​:

{
	"data": [
		{
			"external_id__v": "TEST-238924",
			"rendition_type__v": "imported_rendition__c",
			"id": 238924,
			"responseStatus": "FAILURE",
			"minor_version_number__v": 1,
			"errors": [
				{
					"type": "INVALID_DATA",
					"message": "Document not found [238924/0/1]."
				}
			],
			"major_version_number__v": 0
		},
		{
			"external_id__v": "TEST-238925",
			"rendition_type__v": "imported_rendition__c",
			"id": 238925,
			"responseStatus": "FAILURE",
			"minor_version_number__v": 1,
			"errors": [
				{
					"type": "INVALID_DATA",
					"message": "Document not found [238925/0/1]."
				}
			],
			"major_version_number__v": 0
		}
	],
	"responseStatus": "SUCCESS"
}

Veeva Vault API で ​FAILURE​ 応答が返されると、Veeva Vault Connector 操作で例外がスローされます。次に例を示します。

ERROR を含む FAILURE 応答

{
	"responseStatus": "FAILURE",
	"errors": [
		{
			"type": "INVALID_DATA",
			"message": "Unknown relationship [reviewer__v]"
		}
	]
}

Veeva Vault API から ​FAILURE​ 応答を受信すると、コネクタ操作で例外がスローされ、Mule フロー内の ​Error Handling​ コンポーネントでキャッチされます。

**********************************************************************************
Message : An error occurred from the Veeva Vault API.
Error Code: INVALID_DATA.
Original Error Message: Unknown relationship [reviewer__v].
Error type : VEEVAVAULT:INVALID_DATA
**********************************************************************************

Error Handling​ コンポーネントでキャッチされるエラーコードを次に示します。

  • VEEVAVAULT:API_LIMIT_EXCEEDED

  • VEEVAVAULT:ATTRIBUTE_NOT_SUPPORTED

  • VEEVAVAULT:INACTIVE_USER

  • VEEVAVAULT:INVALID_DATA

  • VEEVAVAULT:INVALID_DOCUMENT

  • VEEVAVAULT:INSUFFICIENT_ACCESS

  • VEEVAVAULT:MALFORMED_URL

  • VEEVAVAULT:METHOD_NOT_SUPPORTED

  • VEEVAVAULT:NO_PERMISSION

  • VEEVAVAULT:OPERATION_NOT_ALLOWED

  • VEEVAVAULT:PARAMETER_REQUIRED

ストリーミングおよびページネーション

Download Document​ を除くすべてのコネクタ操作で、操作の出力に基づく各結果を含むペイロードとして入力ストリームが返されます。このため、デフォルトでは、Mule ではストリーミング戦略が適用されます。詳細は、​Mule ストリーミング戦略​を参照してください。ストリーミング戦略の設定項目は、コネクタ操作の ​[Advanced (詳細)]​ タブにあります。

image

コネクタ内の次の操作では、Mule 標準ページネーションに基づくページネーションメカニズムが提供されます。

  • Get Documents

  • Get Object Records

  • Query

  • Get Audit Details

ページ分割操作を使用していますが、各オブジェクトを取得するには必ず ​For-Each/Splitter​ 要素を含めてください。ページネーション操作には、​[Fetch Size (フェッチサイズ)]​ 項目と ​[Batch Size (バッチサイズ)]​ 項目があります。

  • Fetch Size (フェッチサイズ)
    1 つのページで取得できるレコードの制限数。操作は、フェッチサイズの数の JSON オブジェクトレコードを含むページを返します。
    場合によって、Veeva API でレコードサイズに基づいてフェッチサイズ (各ページのレコード数) が自動計算され、その計算で標準レコードサイズを超えることがあります。操作は、各ページで計算されたレコード数を返します。

  • Batch Size (バッチサイズ)
    各バッチで返されるページの数。各ページには、フェッチサイズの数のレコードが含まれます。操作はバッチごとに多数のレコード (JSON 形式のメタデータ) を返し、計算は次の例のように行われます。

Fetch Size set as *1000*
Batch Size set as *10*

If the total records in the vault are *100,000*, then:

Number of pages = Total records/Fetch Size
				= 100000/1000
				= 100 pages.

Number of pages per batch 	= Number of pages/Batch Size
							= 100/10
							= 10 pages per batch.

Number of Records per batch = Number of pages per batch * Fetch Size
							= 10 * 1000
							= 10,000 records.

Therefore, the number of records returned per batch would be 10,000 records.

反復可能ストリームはバッファサイズをバイト単位で測定します。オブジェクトを処理するときに、ランタイムはインスタンス数を使用してバッファサイズを測定します。

反復不可能ストリームの、コネクタ操作では、ストリームはバッチごとのレコード数として返されます。反復可能ストリームでは、すべてのレコードが一度に返されるため、反復可能自動ページングでメモリ内のバッファサイズを計算する場合は、メモリ不足にならないように、各インスタンスが使用するメモリ量を見積もる必要があります。

次のステップ

コネクタの設定が完了したら、​​を試すことができます。