DataSense

DataSense は Anypoint Studio の機能で、Mule イベントメタデータを使用してアプリケーションの設計を容易にします。メタデータをユーザーが手動で見つけるのではなく、Anypoint Studio が自動的に取得し、ユーザーはアプリケーション内でこのデータをマップまたは使用できます。

DataSense での Mule イベントメタデータの使用の理解

コンポーネントがフロー内でどのようにメタデータを使用するかを理解することは、プロジェクト設計の早期にエラーを検出することでデータの信頼性を確保し、スコープ内で公開されていないメタデータがコンポーネントで必要な場合を検出することによって Mule アプリケーション内のデータの再利用性を確保するために重要です。

Datasense を使用したデータのマッピング

Anypoint Connector を含めてその前または後に Transform Message コンポーネントを配置したフローについて考えます。Mule Runtime Engine は、リソースへの稼働中の接続を使用して、ペイロードとプロパティに関する DataWeave メタデータの取得と指定を行い、Mule イベント構造を手動で調べる手間を省くことができます。

たとえば、組織の Salesforce 取引先を Slack に接続して、新しい商談についてチームに通知する必要があるとします。これを実現するには、Studio キャンバスに Salesforce Connector と Slack Connector の両方をドロップし、それらを組織の取引先に接続するように設定します。次に、これらのコネクタの間に Transform Message コンポーネントをドロップします。Mule によって各プロバイダーからのデータ型と構造の情報が自動的に取得され、データマッピングの入力と出力が規定されます。この規定が作成されると、マッピングを設定し、DataWeave コードを入力できます。

datasense perceptive flow design concept cf42d

Datasense を使用したオートコンプリート

たとえば、Slack Connector から状況更新データを取得するとします。Slack に送信するメッセージを記録したいと考えていますが、このコネクタで使用されているプロパティ名に慣れていません。その場合、Slack のドキュメントを参照する代わりに、Logger メッセージプロセッサーを Slack Connector の後に挿入し、入力を開始すればオートコンプリートがアクティブ化されます。たとえば、「​#[payload.​」と入力して ​ctrl + space bar​ を押すと、Slack Connector への要求から返されるプロパティを含め、ペイロードに関連付けられたすべてのプロパティとメソッドのリストが表示されます。

payload autocomplete

メタデータを手動で定義する状況

Mule アプリケーションのすべてのコンポーネントで、公開されるメタデータを手動で定義できますが、手動での定義は、絶対に必要な場合 (たとえば、メタデータ型を自分で定義した場合) や、アノテーション付きの値への密着度が非常に高い場合 (たとえば、コンポーネントで特定のメタデータ型が使用または想定される場合) にのみ行うことをお勧めします。

たとえば、フローやサブフローを使用している場合、メタデータコントラクトを宣言して、必要なイベントの形状と、呼び出し元に返すイベントの形状を具体的に指定する必要があります。一方、Transform Message コンポーネントを使用している場合は、DataWeave によってデータのプロデューサーとコンシューマーの間のコントラクトが定義されるため、ユーザーがメタデータを定義するべきではありません。この場合は、メタデータ型を明示的に宣言することで、Transform Message コンポーネントから出力されるデータの実際のメタデータ型をマスクすることになります。