Anypoint Studio を使用した Veeva Vault Connector 1.2 の設定

Veeva Vault Connector を Anypoint Studio の Mule プロジェクトに追加し、Mule フローの入力元を設定して、コネクタを設定します。

Studio でコネクタを追加および設定する手順は、次のとおりです。

  1. Mule プロジェクトを作成します。

  2. コネクタを Mule プロジェクトに追加します

  3. コネクタのフローの入力元を設定します。

  4. コネクタのグローバル要素を設定します。

Studio で初めて Anypoint Connector を設定する場合は、​「Anypoint Studio を使用したコネクタの設定」​を参照してください。

Mule プロジェクトを作成する

Anypoint Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。

  1. Anypoint Studio で、メインメニューから ​[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)]​ を選択します。

  2. Mule プロジェクトの名前を入力して、​[Finish (完了)]​ をクリックします。

Mule プロジェクトへのコネクタの追加

Veeva Vault Connector を Mule プロジェクトに追加すると、XML コードにコネクタの名前空間とスキーマの場所が自動的に入力され、プロジェクトの ​pom.xml​ ファイルに必要な連動関係が追加されます。

  1. [Mule Palette (Mule パレット)] ビューで、​[(X) Search in Exchange ((X) Exchange 内を検索)]​ をクリックします。

  2. [Add Modules to Project (モジュールをプロジェクトに追加)]​ で、検索項目に「veeva」と入力します。

  3. [Available modules (使用可能なモジュール)]​ で ​[Veeva Vault Connector - Mule 4]​ をクリックし、​[Add (追加)]​ をクリックします。

  4. [Finish (完了)]​ をクリックします。

Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。

フローの入力元の設定

コネクタを Mule プロジェクトに追加したら、フローの入力元 (​HTTP リスナー​ (HTTP Connector)、​スケジューラー​など) を設定します。

コネクタの設定

Mule アプリケーションで Veeva Vault Connector を使用するには、アプリケーションのすべての Veeva Vault Connector 操作で使用できるグローバル Veeva Vault 要素を設定します。

  1. グローバル Veeva Vault 要素を作成するには、Studio キャンバスの下部にある ​[Global Elements (グローバル要素)]​ タブをクリックし、​[Create (作成)]​ をクリックします。

  2. [Choose Global Type (グローバル種別を選択)]​ ウィンドウで、​[Connector Configuration (コネクタ設定)]​ を展開し、​[Veeva Vault Config (Veeva Vault 設定)]​ をクリックして ​[OK]​ をクリックします。

  3. [Veeva Vault Config (Veeva Vault 設定)] ウィンドウの ​[General (一般)]​ タブで次の設定値を入力します。

    veevavault connector basic authentication general
    項目 説明

    Name (名前)

    後ほど参照するために設定の名前を入力します。

    Vault URL

    Veeva Vault インスタンスの URL を入力します。

    Username (ユーザー名)

    Veeva Vault インスタンスのユーザー名を入力します。

    Password (パスワード)

    ユーザー名に対応するパスワードを入力します。

    Version (バージョン)

    Veeva Vault インスタンスのバージョンを入力します。

    Client Id (クライアント ID)

    追跡目的で各要求と共に送信するクライアント ID をヘッダーに {organization}-{company|team} の形式で入力します。
    クライアント ID には「mulesoft」のプレフィックスと「client-vaultconnector」のサフィックスが内部的に付けられます (例: mulesoft-abcpharma-clinicalprod-client-vaultconnector​)。

    前の画像では、プレースホルダーの値は、プロジェクトのフォルダー (​src/main/resources​) にある設定ファイルを参照します。ログイン情報をグローバル設定プロパティにハードコードすることもできますが、その値が含まれる設定ファイルを代わりに参照した場合、メンテナンスを簡略化し、プロジェクトの再利用性を向上できます。これらの値を別個のファイルに保存しておくと、アクセスログイン情報が異なるさまざまな環境 (本番、開発、QA など) にデプロイする必要がある場合に便利です。
    次の例は、​src/main/resources/config​ フォルダーの下の ​configuration.yaml​ ファイルのスニペットを示しています。

    	#Veeva Vault details
    	veeva:
    		vaultURL: "https://xxxx-xxxx.veevavault.com"
    		username: "someone@example.com"
    		password: "xxxxxxx"
    		version : "v20.1"
    		clientId: "mulesoft-abcpharma-clinicalprod-client-vaultconnector"

    この接続設定では基本認証が実行されます。つまり、Veeva Vault インスタンスに接続するために必要な Vault URL、ユーザー名、およびパスワードパラメーターを受け入れて、セッションを取得します。取得したセッションは、Mule アプリケーションで設定された各操作で要求を送信するために使用されます。

  4. [Veeva Vault Config (Veeva Vault 設定)] ウィンドウの ​[Advanced (詳細)]​ タブでバースト API 制限を設定します。

    veevavault connector basic authentication advanced

    Burst API Limit Profile (バースト API 制限プロファイル)

    [Burst API Limit Profile (バースト API 制限プロファイル)] 設定は、Veeva Vault API の指定されたバースト API 制限が、設定されたしきい値に達するか、超えた場合に機能します。

    [Burst API limit config (バースト API 制限の設定)]​ が有効になっている場合 (デフォルト)、コネクタは、指定された API 制限しきい値に対して Veeva Vault API のレスポンスヘッダー (​X-VaultAPI-BurstLimitRemaining​) 値を評価します。残りのバースト API 制限がこのしきい値に達するかこのしきい値を超えた場合、コネクタは指定された時間待機して ​[Burst Limit Remaining (残りのバースト制限)]​ の計数を再開します。

    次に、アプリケーションログの例を示します。これは、​2019-06-06 10:34:45,096​ の警告メッセージの後、​2019-06-06 10:39:45,098​ の次のメッセージで示されているように再実行まで 5 分間待機していることを示しています。

    WARN 2019-06-06 10:34:45,096 [[MuleRuntime].io.27: [veevavault-connector-demo].get-documents-operationFlow.BLOCKING @2dd2ffaf] [event: 99716950-8818-11e9-90e2-d61515f42856] org.mule.extension.veevavault.internal.service.HttpRequestService: Burst API Limit remaining calls [1997] has exceeded/reached an API Limit Profile threshold set as [1997]. As per API Limit Profile, Veeva Vault Connector will wait for [5] MINUTES.
    
    WARN 2019-06-06 10:39:45,098 [[MuleRuntime].io.27: [veevavault-connector-demo].get-documents-operationFlow.BLOCKING @2dd2ffaf] [event: 99716950-8818-11e9-90e2-d61515f42856] org.mule.extension.veevavault.internal.operations.VeevaVaultOperations: Properties or Fields is not available for api [/api/v18.2/metadata/objects/documents/types/site_management__c] , will use input list [[name__v, type__v, subtype__v, classification__v, lifecycle__v, status__v, study__v, product__v, id]] if configured to build VQL query
    
    INFO 2019-06-06 10:39:45,098 [[MuleRuntime].io.27: [veevavault-connector-demo].get-documents-operationFlow.BLOCKING @2dd2ffaf] [event: 99716950-8818-11e9-90e2-d61515f42856] org.mule.extension.veevavault.internal.pagination.GetDocumentsPagingProvider: Query Build :: SELECT name__v, type__v, subtype__v, classification__v, lifecycle__v, status__v, study__v, product__v, id FROM documents WHERE name__v= 'F22611234--6764'
    
    INFO 2019-06-06 10:39:46,024 [[MuleRuntime].io.27: [veevavault-connector-demo].get-documents-operationFlow.BLOCKING @2dd2ffaf] [event: 99716950-8818-11e9-90e2-d61515f42856] org.mule.extension.veevavault.internal.service.HttpRequestService: Response received for sync http request :: 'https://[vault-domain]/api/v18.2/query?q=SELECT+name__v%2C+type__v%2C+subtype__v%2C+classification__v%2C+lifecycle__v%2C+status__v%2C+study__v%2C+product__v%2C+id+FROM+documents+WHERE+name__v%3D+%27F22611234--6764%27++LIMIT+1000+OFFSET+0' in 925 milliseconds.
    項目 説明

    API Limit Threshold (API 制限しきい値)

    Veeva Vault API しきい値制限を入力します。このしきい値に達するかこのしきい値を超えた場合、コネクタは指定された時間待機します。デフォルトは ​200​ です。

    Wait Time (待機時間)

    API 制限しきい値に達するか API 制限しきい値を超えた場合にコネクタが待機する時間を入力します。デフォルトは ​5​ です。

    Time Unit (時間単位)

    待機時間の時間単位を選択します。デフォルトは ​MINUTES​ です。

    Daily API Limit Exceed Profile (1 日の API 制限超過プロファイル):

    [Daily API Limit Exceed Profile (1 日の API 制限超過プロファイル)] 設定 (​[Connector Configuration (コネクタ設定)] > [Advanced (詳細)] タブ​) は、Veeva Vault API の 1 日の API 制限が、設定されたしきい値に達するかしきい値を超えた場合に使用されます。1 日の制限とは、1 日の連続期間における任意の 24 時間枠内の総 API コール数です。

    [Daily API Limit Exceed Profile (1 日の API 制限超過プロファイル)]​ が有効になっている場合 (デフォルト)、コネクタは、指定されたしきい値に対して Veeva Vault API のレスポンスヘッダー (​X-VaultAPI-DailyLimitRemaining​) を評価し、1 日の API 制限を超えていることを示す例外をスローします。1 日の制限がリセットされるか、翌日に繰り越されるまで、ジョブまたは要求が作成されるたびに例外が引き続きスローされます。

    次のサンプルログは、​2019-06-06 10:47:31,698​ に警告が発生し、​2019-06-06 10:47:31,699​ にエラーが発生したことを示しています。

    WARN 2019-06-06 10:47:31,698 [[MuleRuntime].io.44: [veevavault-connector-demo].get-documents-operationFlow.BLOCKING @108e7f43] [event: 624cfa50-881a-11e9-90e2-d61515f42856] org.mule.extension.veevavault.internal.service.HttpRequestService: Veeva Daily API Limit remaining calls [10000] has exceeded/reached an Daily API Limit Profile threshold set as [10000]. As per API Limit Profile, Veeva Vault Connector will throw an exception.
    
    ERROR 2019-06-06 10:47:31,699 [[MuleRuntime].io.44: [veevavault-connector-demo].get-documents-operationFlow.BLOCKING @108e7f43] [event: 624cfa50-881a-11e9-90e2-d61515f42856] org.mule.extension.veevavault.internal.service.HttpRequestService: Exception caught while processing Sync request ::: https://xxxxx-xxxxx.veevavault.com/api/v20.1/metadata/vobjects/site__v, Exception ::: \{"responseStatus":"FAILURE","errors":[\{"type":"API_LIMIT_EXCEED","message":"The Veeva Vault Connector has reached/exceeded daily API limit remaining calls [10000]. The configured daily api limit threshold is \(10000\)"}\]}
    
    ERROR 2019-06-06 10:47:31,767 [[MuleRuntime].io.44: [veevavault-connector-demo].get-documents-operationFlow.BLOCKING @108e7f43] [event: 624cfa50-881a-11e9-90e2-d61515f42856] org.mule.runtime.core.internal.exception.OnErrorPropagateHandler:
    
    **********************************************************************************
    
    Message : An error occurred from the Veeva Vault API.
    Error Code: API_LIMIT_EXCEED.
    Original Error Message: The Veeva Vault Connector has reached/exceeded daily API limit remaining calls [10000]. The configured daily api limit threshold is (10000).
    Error type : VEEVAVAULT:API_LIMIT_EXCEED
    
    **********************************************************************************
    項目 説明

    API Limit Threshold (API 制限しきい値)

    API しきい値制限を入力します。指定された制限に達するか制限を超えた場合、コネクタは指定された時間待機します。デフォルトは ​10000​ です。

    Response Timeout (応答タイムアウト):

    コネクタが Veeva Vault の応答を待機する最大時間 (ミリ秒単位)。この最大時間を超えると、タイムアウト例外がスローされます。デフォルト値は 30,000 ミリ秒です。

    項目 説明

    Response Timeout (応答タイムアウト)

    コネクタが Veeva Vault インスタンスからの応答を待機するタイムアウト値を入力します。デフォルト値は 30 秒です。

次のステップ

Studio で使用する Veeva Vault Connector を設定したら、​「追加設定情報」​トピックで詳細な設定手順を参照してください。