拡張するために最適なデータ・アクション・クラスの選択

カスタム・データ・アクション・プラグインの記述を開始する前に、拡張する既存のデータ・アクション・クラスを決定します。データ・アクションで実行しようとする操作に最も近い機能を提供するデータ・アクション・クラスを選択してください。

各データ・アクションは、クラス図に示すように、AbstractDataActionクラスから継承されます。このクラス図は、拡張可能な2つの抽象データ・アクション・クラス(AbstractDataActionAbstractHTTPDataAction)および4つの具象データ・アクション・クラス(CanvasDataActionURLNavigationDataActionHTTPAPIDataActionおよびEventDataAction)を示しています。提供する各データ・アクションは、これらのクラスのいずれかを拡張する必要があります。どのクラスを拡張するかは、データ・アクションの起動時に実装する動作によります。ほとんどのサード・パーティ・データ・アクションは、URLNavigationDataActionHTTPAPIDataActionまたはEventDataActionのいずれかを拡張することになります。

拡張できるクラスを示したデータ・アクション・クラス図。

拡張するクラスとは関係なく、データ・アクションを起動すると、データ・アクションの起動元であるデータ・ポイントの完全なコンテキストを説明したメタデータが提供されます。「データ・アクション・コンテキスト」を参照してください。

AbstractDataActionクラス

AbstractDataActionは、すべてのタイプのデータ・アクションの継承元となる抽象ベース・クラスです。これは、サブクラスで使用できる共通機能およびデフォルト動作を提供する役割を果たします。

AbstractDataAction

すべてのタイプのデータ・アクションは、AbstractDataActionベース・クラスのサブクラスです。これは、すべてのデータ・アクションに共通する機能のコア・セットを提供します。起動時に複数のタイプのアクションを実行する複雑なデータ・アクションを作成する場合や具象クラスでサポートされない操作を実行する場合を除き、このクラスを直接拡張しないでください。複雑なデータ・アクションを作成する必要がある場合は、必要な機能に最も近い機能を提供する具象クラスを拡張することを検討してください。

AbstractDataActionの構文

+ AbstractDataAction(oKOModel)

+ getKOViewModel():DataActionKOModel

+ createFromJS(fDataActionConstructor, sClassName, oDataActionKOModelUS) : AbstractDataAction
+ invoke(oActionContext, oDataActionContext)
+ getGadgetInfos(oReport) : AbstractGadgetInfo[]
+ validate() : DataActionError
+ getSettings() : Object
+ requiresActionContextToInvoke() : Boolean
+ isAllowedHere() : Boolean
# createNameGadgetInfo(oReport) : AbstractGadgetInfo
# createAnchorToGadgetInfo(oReport) : AbstractGadgetInfo
# createPassValuesGadgetInfo(oReport) : AbstractGadgetInfo

DataActionKOModelクラス

AbstractDataActionの各サブクラスは、その独自のサブクラスであるDataActionKOModelを作成することが多くあります。DataActionKOModelベース・クラスには、次のプロパティがあります:

DataActionKOModel、ValuePassingMode

  • sID:String

    データ・アクション・インスタンスに割り当てられる一意のID。

  • sClass:String

    この特定タイプのデータ・アクションのクラス名。

  • sName:String

    データ・アクション・インスタンスに割り当てられる表示名。

  • sVersion
  • sScopeID
  • eValuePassingMode:ValuePassingMode

    コンテキスト値を渡すときに使用されるモード。モードは、ValuePassingMode値(ALL、ANCHOR_DATA、NONE、CUSTOM)のいずれかです。

  • aAnchorToColumns: ColumnKOViewModel[]

    このデータ・アクションのアンカー先の列。これはオプションです。指定しない場合、データ・アクションはすべての列で使用できます。

  • aContextColumns : ColumnKOViewModel[]

    このデータ・アクションが、その起動時にデータ・アクション・ターゲットに渡されるコンテキストに含める列。指定しない場合、マークされたすべての列がコンテキストに含まれます。

CanvasDataActionクラス

CanvasDataActionは、AbstractDataActionベース・クラスのサブクラスです。この具象クラスを拡張して、必要な機能を提供できます。

CanvasDataAction

CanvasDataActionクラスを使用して、ビジュアライゼーションのデータ・ポイントから別のキャンバスにナビゲートします。ナビゲート先のキャンバスは、同じプロジェクト内でも別のプロジェクト内でもかまいません。ソース・ビジュアライゼーションのすべてのアクティブ・フィルタは、データ・ポイント自体の修飾データ参照を説明する新しいフィルタとともにターゲット・キャンバスに渡されます。データ・アクションを別のキャンバスにナビゲートする必要がある場合、それはデータ・アクションで拡張する必要のあるクラスです。

+ CanvasDataAction(oKOModel)

+ create(s)ID_sName) : CanvasDataAction
+ upgrade(oOldDataActionJS) : Object

+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext)
+ getGadgetInfos(oReport) : AbstractGadgetInfo[]
+ validate() : DataActionError
# createProjectGadgetInfo(oReport) : AbstractGadgetInfo
# createCanvasGadgetInfo(oReport) : AbstractGadgetInfo

EventDataActionクラス

EventDataActionは、AbstractDataActionベース・クラスのサブクラスです。この具象クラスを拡張して、必要な機能を提供できます。

EventDataAction

EventDataActionクラスを使用してクライアント側イベントを公開します。その後、そのイベントをリスニングして独自のアクションを実行する1つ以上のサブスクライバを登録できます。このタイプのデータ・アクションは、大量のコードがあって、データ・アクションの起動時に必要なアクションを実行するコードと疎結合されたデータ・アクション・コードを維持することでメリットを得ることのできる複雑なユースケースで使用してください。

+ EventDataAction(oKOModel)

+ create(sID_sName) : EventDataAction
+ upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext)
+ getGadgetInfos(oReport) : AbstractGadgetInfo[]
+ validate() : DataActionError
# createEventGadgetInfo(oReport) : AbstractGadgetInfo

AbstractHTTPDataActionクラス

AbstractHTTPDataActionは、URLNavigationDataActionおよびHTTPAPIDataActionサブクラスが共通機能とデフォルト動作を継承する抽象ベース・クラスです。

AbstractHTTPDataAction

AbstractHTTPDataAction抽象ベース・クラスは、URLNavigationDataActionクラスとHTTPAPIDataActionクラスの両方で共有されます。データ・アクションでWebページを新しいブラウザ・タブで開く場合、URLNavigationDataActionを拡張する必要があります。データ・アクションでHTTP APIを起動する場合、HTTPAPIDataActionを拡張する必要があります。状況によっては、AbstractHTTPDataActionを直接拡張することも可能です。

+ HTTPDataAction(oKOModel)
+ validate() : DataActionError
# createURLGadgetInfo(oReport) : AbstractGadgetInfo

URLNavigationDataActionクラス

URLNavigationDataActionは、AbstractHTTPDataActionベース・クラスのサブクラスです。

URLNavigationDataAction

URLNavigationDataActionクラスを使用して、特定のURLを新しいブラウザ・タブで開きます。データ・アクションの起動時にユーザーが選択したデータ・ポイントから導出される値に置き換えられるトークンを使用して、URLを構成します。データ・ポイント値は、データ・アクション・コンテキストの一部として外部Webページに渡されます。たとえば、Oracle Sales Cloudなどのカスタマ・リレーションシップ・マネジメント・アプリケーションで顧客のWebページが表示されるように、CustomerID列を使用して起動されるデータ・アクションを作成します。

+ URLNavigationDataAction(oKOModel)
+ create(sID_sName) : URLNavigationDataAction
+ upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext)
+ getGadgetInfos(oReport) : AbstractGadgetInfo[]

HTTPAPIDataActionクラス

HTTPAPIDataActionは、AbstractHTTPDataActionベース・クラスのサブクラスです。この具象クラスを拡張して、必要な機能を提供できます。

HTTPAPIDataAction

HTTPAPIDataActionクラスを使用し、非同期XMLHTTPRequest (XHR)を作成してそれを指定したURLに送信することで、HTTP APIを起動します。HTTPレスポンス・コードによって、キャンバスにメッセージが簡潔に表示されます。たとえば、JSONまたはXMLペイロードをRESTまたはSOAPサーバーに送信するようにリクエストをカスタマイズしたり、カスタム・ユーザー・インタフェースを表示するようにレスポンス・ハンドラをカスタマイズできます。

HTTPAPIDataActionデータ・アクションを動作させるには、アクセスするHTTP APIのURLを「安全ドメイン」のリストに追加し、「接続」アクセス権を付与する必要があります。安全ドメインの登録を参照してください。

+ HTTPAPIDataAction(oKOModel)
+ create(sID_sName) : HTTPAPIDataAction
+ upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext)
+ getGadgetInfos(oReport) : AbstractGadgetInfo[]
# createHTTPMethodGadgetInfo(oReport) : AbstractGadgetInfo
# createPostParamGadgetInfo(oReport) : AbstractGadgetInfo