Flex Gateway新着情報
Governance新着情報
Monitoring API Manager次の例は、Anypoint Studio でコネクタを設定する方法を示しています。
次の例では、外部ソース (データベース) からフェッチしたドキュメントメタデータを使用してドキュメントを一括で作成します。Veeva Vault でドキュメントを作成する前に、Veeva Vault FTP サーバーを使用してドキュメントファイルをアップロードします。ドキュメントの created
状況がデータベースに挿入されます。
次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。
[Mule Palette (Mule パレット)] ビューから、[HTTP] を選択して [Listener] ソースをキャンバスにドラッグします。
使用する環境に応じて HTTP リスナーを設定します。
[Mule Palette (Mule パレット)] ビューから、[Database (データベース)] を選択して [Select] 操作をキャンバスにドラッグし、テーブルからドキュメントメタデータをフェッチします。
接続ログイン情報を使用するように Database Connector を設定します。
[SQL Query Text (SQL クエリテキスト)] 項目に「>SELECT * FROM createdocuments
」と入力します。
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [Flow Reference] コンポーネントをキャンバスにドラッグし、サブフロー upload-files-on-vault-ftp-server
を参照します。
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [For Each] スコープを次の要素が含まれるキャンバスにドラッグします。
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Transform Message] コンポーネントをキャンバスにドラッグし、ドキュメントメタデータを CSV 形式に変換します。
[Mule Palette (Mule パレット)] ビューから、[Veeva Vault] を選択して [Create Documents] 操作をキャンバスにドラッグします。
Veeva Vault 接続の次の値を入力します。
Username (ユーザー名)
Password (パスワード)
Vault URL
Vault version (Vault バージョン)
Vault client ID (Vault クライアント ID)
[Mule Palette (Mule パレット)] ビューから、[Database (データベース)] を選択して [Bulk insert] 操作をキャンバスにドラッグし、ドキュメント作成済み状況データをデータベーステーブルに挿入します。
接続ログイン情報を使用するように Database Connector を設定します。
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [Logger] コンポーネントをキャンバスにドラッグし、コンソールまたはログファイルに情報を記録します。
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Logger] コンポーネントをキャンバスにドラッグし、このサブフローの情報を記録します。
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [For Each] スコープを次の要素が含まれるキャンバスにドラッグします。
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Logger] コンポーネントをキャンバスにドラッグします。
[Mule Palette (Mule パレット)] ビューから、[FTPS] を選択して [Read] 操作をキャンバスにドラッグします。
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Logger] コンポーネントをキャンバスにドラッグします。
[Mule Palette (Mule パレット)] ビューから [FTPS] を選択して [Write] 操作をキャンバスにドラッグし、ファイルを Veeva Vault FTP サーバーに書き込みます。
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して別の [Logger] コンポーネントをキャンバスにドラッグします。
Veeva Vault FTP サーバーのログイン情報を使用するように FTPS Connector を設定します。
この例の 2 つのフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。
<flow name="create-documents-operationFlow" >
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/create-documents"/>
<db:select doc:name="Select" config-ref="Database_Config">
<db:sql >SELECT * FROM createdocuments</db:sql>
</db:select>
<flow-ref doc:name="upload-files-on-vault-ftp-server" name="upload-files-on-vault-ftp-server"/>
<ee:transform doc:name="Transform Message" >
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/csv headerLineNumber = 0 , header = true
---
payload map ( payload01 , indexOfPayload01 ) -> {
lifecycle__v: payload01.lifecycle__v,
study__v: payload01.study__v,
subtype__v: payload01.subtype__v,
name__v: payload01.name__v ++ '--' ++ randomInt(10000) as String,
type__v: payload01.type__v,
classification__v: payload01.classification__v,
product__v: payload01.product__v,
file: payload01.file as String
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<veevavault:create-documents metadataFormat="CSV" doc:name="Create Documents" config-ref="Veeva_Vault_Config"/>
<db:bulk-insert doc:name=__"Bulk insert" config-ref="Database_Config">
<db:bulk-input-parameters ><![CDATA[#[output application/java
---
payload.data map () -> {
'id': $.id as String,
'external_id__v': $.external_id__v as String,
'responseStatus': $.responseStatus
}]]]>
</db:bulk-input-parameters>
<db:sql >INSERT into documents (id, external_id__v, responseStatus) VALUES (:id: external_id__v, :responseStatus)
</db:sql>
</db:bulk-insert>
<logger level="INFO" doc:name="Logger" message="Document Created :: #[output application/json --- payload]"/>
<error-handler >
<on-error-propagate enableNotifications="true" logException="true" doc:name="On Error Propagate" type="ANY" >
<logger level="INFO" doc:name="Logger" message="Flow Exception Handled -- #[payload]" />
</on-error-propagate>
</error-handler>
</flow>
この例では、ドキュメント種別、サブタイプ、分類に基づいてドキュメントの詳細を取得してデータベースに保存します。
次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。
[Mule Palette (Mule パレット)] ビューから、[HTTP] を選択して [Listener] ソースをキャンバスにドラッグします。
使用する環境に応じて HTTP リスナーを設定します。
[Mule Palette (Mule パレット)] ビューから、[Veeva Vault] を選択して [Get Documents] 操作をキャンバスにドラッグします。
Veeva Vault 接続の次の値を入力します。
Username (ユーザー名)
Password (パスワード)
Vault URL
Vault version (Vault バージョン)
Vault client ID (Vault クライアント ID)
各更新ボタンをクリックして、ドキュメント種別、サブタイプ、および分類のリストをフェッチします。
各ドロップダウンリストからドキュメント種別、サブタイプ、および分類を選択します。
ビジネス要件に応じてドキュメントプロパティを [Document Properties (ドキュメントプロパティ)] リストに追加し、プロパティ名を VQL クエリに組み込んで、VQL クエリを動的にビルドします。
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [For Each] スコープを次の要素が含まれるキャンバスにドラッグします。
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Transform Message] コンポーネントをキャンバスにドラッグします。
[Mule Palette (Mule パレット)] ビューから、[Database (データベース)] を選択して [Insert] 操作をキャンバスにドラッグします。
接続ログイン情報を使用して、Database Connector を設定します。
ビジネス要件に従って、DataWeave を使用して変換を設定します。
データをテーブルに挿入するように Insert 操作を設定します。
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [Set Payload] トランスフォーマーをキャンバスにドラッグし、トリガーソースに返すペイロードを設定します。
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [Logger] コンポーネントをキャンバスにドラッグし、コンソールまたはログファイルに情報を記録します。
この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。
<flow name="get-documents-operationFlow" >
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/get-documents" />
<veevavault:get-documents doc:name="Get Documents" config-ref="Veeva_Vault_Config" >
<veevavault:documents type="site_management__c">
<veevavault:document-properties >
<veevavault:document-property value=__"name__v"__ />
<veevavault:document-property value=__"type__v"__ />
<veevavault:document-property value=__"subtype__v"__ />
<veevavault:document-property value=__"classification__v"__ />
<veevavault:document-property value=__"lifecycle__v"__ />
<veevavault:document-property value=__"status__v"__ />
<veevavault:document-property value=__"study__v"__ />
<veevavault:document-property value=__"product__v"__ />
</veevavault:document-properties>
</veevavault:documents>
</veevavault:get-documents>
<foreach doc:name="For Each" >
<ee:transform doc:name="Transform Message" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
<db:insert doc:name="Insert" config-ref="Database_Config">
<db:sql >INSERT INTO [.underline]#createdocuments# (name__v, type__v, subtype__v, classification__v, lifecycle__v,
product__v, status__v, study__v, file) VALUES (:name__v, :type__v, :subtype__v, :classification__v, :lifecycle__v, :product__v, :status__v, :study__v, :file)</db:sql>
<db:input-parameters ><![CDATA[#[%dw 2.0
output application/json
---
{
'name__v': payload.name__v as String,
'type__v': payload.type__v as String,
'subtype__v': payload.subtype__v as String,
'classification__v': payload.classification__v as String,
'lifecycle__v': payload.lifecycle__v as String,
'product__v': payload.product__v[0],
'status__v': payload.status__v as String,
'study__v': payload.study__v[0],
'file': "CDA.docx"
}]]]></db:input-parameters>
</db:insert>
</foreach>
<set-payload value="#[output application/json --- payload.payload]" doc:name="Set Payload" />
<logger level=__"INFO" doc:name="Logger" message="Document Details :: #[payload]"/>
<error-handler >
<on-error-propagate enableNotifications="true" logException="true" doc:name="Error Propagate" type="ANY" >
<logger level="INFO" doc:name="Logger" message="Flow Exception Handled -- #[payload]" />
</on-error-propagate>
</error-handler>
</flow>
この例では、VQL クエリを使用して Veeva Vault からドキュメントまたはオブジェクトデータをフェッチします。
次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。
[Mule Palette (Mule パレット)] ビューから、[HTTP] を選択して [Listener] ソースをキャンバスにドラッグします。
使用する環境に応じて HTTP リスナーを設定します。
[Mule Palette (Mule パレット)] ビューから、[Veeva Vault] を選択して [Query] 操作をキャンバスにドラッグします。
Veeva Vault 接続の次の値を入力します。
Username (ユーザー名)
Password (パスワード)
Vault URL
Vault version (Vault バージョン)
Vault client ID (Vault クライアント ID)
ビジネス要件に従って VQL クエリを定義します。
VQL クエリで使用する場合は、入力プレースホルダーを追加して、実行時に VQL で動的に組み込みます。
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [For Each] スコープを次の要素が含まれるキャンバスにドラッグします。
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Transform Message] コンポーネントをキャンバスにドラッグします。
[Mule Palette (Mule パレット)] ビューから、[File (ファイル)] を選択して [Write] 操作をキャンバスにドラッグします。
ビジネス要件に従って、DataWeave を使用して変換を設定します。
作業ファイルのパスを使用して、File Connector を設定します。
指定したファイルにペイロードデータを書き込むように Write 操作を設定します。
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [Set Payload] トランスフォーマーをキャンバスにドラッグし、トリガーソースに返すペイロードを設定します。
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [Logger] コンポーネントをキャンバスにドラッグし、コンソールまたはログファイルに情報を記録します。
この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。
<flow name="query-operation-with-database-operationFlow" >
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/query"/>
<veevavault:query doc:name="Query" fetchSize="1000" config-ref="Veeva_Vault_Config">
<veevavault:vql >SELECT id, name__v, type__v, subtype__v, classification__v, lifecycle__v, status__v, study__v, product__v from :table WHERE name__v= 'F22611234--6764'</veevavault:vql>
<veevavault:input-parameters ><![CDATA[#[{
'table': 'documents'
}]]]></veevavault:input-parameters>
</veevavault:query>
<foreach doc:name="For Each" >
<ee:transform doc:name="Transform Message" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
<file:write doc:name="Write" path="query.json" config-ref="File_Config" mode="APPEND">
<file:content><![CDATA[#[output application/json
---
payload]]]></file:content>
</file:write>
</foreach>
<set-payload value="#['Flow Completed']" doc:name="Set Payload" />
<logger level="INFO" doc:name="Logger" message="Query Operation flow Completed - #[payload]"/>
<error-handler >
<on-error-propagate enableNotifications="true" logException="true" doc:name="On Error Propagate" type="ANY">
<logger level="INFO" doc:name="Logger" message="Flow Exception Handled -- #[payload]"/>
</on-error-propagate>
</error-handler>
</flow>
この例では、Veeva Vault の Spark メッセージをトリガーし、Spark メッセージを検証します。
次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。
[Mule Palette (Mule パレット)] ビューから、[HTTP] を選択して [Listener] ソースをキャンバスにドラッグします。
HTTP Connector 用の JKS 証明書には、Veeva Vault との TLS 接続を介して Spark メッセージを受信するための HTTP リスナー用の .jks
ファイルが必要です。
次の手順は、<JDK_HOME>/bin
ディレクトリにある Java Keytool を使用して .jks
ファイルを作成する方法を示しています。
<JDK_HOME>/bin
ディレクトリから次のコマンドを実行します。
`keytool -genkey -keyalg RSA -alias mule -keystore spark-listener.jks -storepass password -validity 360 -keysize 2048`
これにより、現在のディレクトリに `spark-listener.jks` ファイルが作成されます。
src/main/resources
プロジェクトディレクトリの spark-listener.jks
ファイルをコピーしてインポートします。
HTTP リスナーを次のように設定します。
[General (一般)] タブで、次のように設定します。
Protocol (プロトコル): HTTPS
Host (ホスト): 0.0.0.0
Port (ポート): 8082
[TLS] タブで、次のように設定します。
Type (種別): JKS
Path (パス): spark-listener.jks
Alias (別名): mule
Key Password (キーパスワード): password
Password (パスワード): password
[Mule Palette (Mule パレット)] ビューから、[Veeva Vault] を選択して [Spark Validator] 操作をキャンバスにドラッグします。
Veeva Vault 接続の次の値を入力します。
Username (ユーザー名)
Password (パスワード)
Vault URL
Vault version (Vault バージョン)
Vault client ID (Vault クライアント ID)
Spark Validator パラメーターを次のように設定します。
Include Spark Header (Spark ヘッダーを含める): FALSE
Public Key Path (公開キーのパス): ${file.keyPath}
公開キーファイル (00001.pem) の保存場所へのパスを使用して、configuration.yaml
の file.keyPath
プロパティを定義します。
Spark Headers (Spark ヘッダー): #[attributes.headers]
Spark Message (Spark メッセージ): #[payload]
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [Set Payload] 操作をキャンバスにドラッグし、[Value (値)] 項目で次のように定義します。
---- output application/json --- { "payload" : payload, "attributes": attributes } ----
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Logger] コンポーネントをキャンバスにドラッグし、次のメッセージを使用してペイロードを記録します。
Spark Message :: #[payload]
この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。
<flow name="spark-message-validator-operationFlow" >
<http:listener doc:name="Listener" config-ref="Spark_Listener" path="/"/>
<veevavault:spark-message-validator doc:name="Spark Validator" config-ref="Veeva_Vault_Config" publicKeyPath="${file.keyPath}" includeSparkHeader="TRUE"/>
<set-payload value='#[output application/json --- {
"payload" : payload,
"attributes": attributes
}]' doc:name="Set Payload" />
<logger level="INFO" doc:name="Logger" message="Spark Message :: #[payload]"/>
</flow>
この例では、REST API を呼び出して、単一ドキュメントを作成します。
次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。
Veeva Vault REST API を呼び出すには、要件に従ってパラメーターを設定する必要があります。 |
[Mule Palette (Mule パレット)] ビューから、[HTTP] を選択して [Listener] ソースをキャンバスにドラッグします。
使用する環境に応じて HTTP リスナーを設定します。
[Mule Palette (Mule パレット)] ビューから、[File (ファイル)] を選択して [Read] 操作をキャンバスにドラッグし、Veeva Vault ドキュメントに関連付けられたファイルのコンテンツから読み取るようにファイルパスを設定します。
[Mule Palette (Mule パレット)] ビューから、[Veeva Vault] を選択して [Invoke REST API] 操作をキャンバスにドラッグします。
Veeva Vault 接続の次の値を入力します。
Username (ユーザー名)
Password (パスワード)
Vault URL
Vault version (Vault バージョン)
Vault client ID (Vault クライアント ID)
POST 要求を設定します。
Method: POST, Path: "/objects/documents", Headers: Key: "Accept" Value: "application/json" Key: "Content-Type" Value: "multipart/form-data; boundary=abcdefg" URI Parameters: Leave it empty. Query Parameters: Leave it empty.
%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' } } }
PUT 要求を設定します。
Method: PUT, Path: "/objects/documents/{doc_id}", Headers: Key: "Accept" Value: "application/json" Key: "Content-Type" Value: "application/x-www-form-urlencoded" URI Parameters: Key: "doc_id" Value: "259592" Query Parameters: Leave it empty.
%dw 2.0 output application/x-www-form-urlencoded --- { "id": "259592", "name__v": "Kick-off Meeting Material Updated", "product__v": "00P000000000403", "study__v": "0ST000000000202", "notes__v": "Notes Updated" }
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Logger] コンポーネントをキャンバスにドラッグし、次のメッセージを使用してペイロードを記録します。
Invoke Veeva API response :: #[payload]
この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。
<flow name="invoke-veeva-api-operationFlow" > <http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/invoke-veeva-api"/> <file:read doc:name="Read" config-ref="File_Config" path="#['testdata/Test Document Renditions.pdf']" outputMimeType="application/octet-stream"/> <veevavault:invoke-rest-api doc:name="Invoke REST API" config-ref="Veeva_Vault_Config" path="/objects/documents" method="POST"> <veevavault:body ><![CDATA[#[%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' } } }]]]></veevavault:body> <veevavault:headers ><![CDATA[#[output application/java --- { "Accept" : "application/json", "Content-Type" : "multipart/form-data; boundary=abcdefg" }]]]></veevavault:headers> </veevavault:invoke-rest-api> <logger level="INFO" doc:name="Logger" message="Invoke Veeva API response :: #[payload]" /> </flow>
次のユースケースでは、Exchange テンプレートを使用できます。
File System to Veeva Vault を統合する
Veeva Vault to File System を統合する
Spark message end solution (Spark メッセージ終了ソリューション) を使用してローンアプリケーションを自動承認する