拡張するために最適なデータ・アクション・クラスの選択
カスタム・データ・アクション・プラグインの記述を開始する前に、拡張する既存のデータ・アクション・クラスを決定します。データ・アクションで実行しようとする操作に最も近い機能を提供するデータ・アクション・クラスを選択してください。
各データ・アクションは、クラス図に示すように、AbstractDataAction
クラスから継承されます。このクラス図は、拡張可能な2つの抽象データ・アクション・クラス(AbstractDataAction
とAbstractHTTPDataAction
)および4つの具象データ・アクション・クラス(CanvasDataAction
、URLNavigationDataAction
、HTTPAPIDataAction
およびEventDataAction
)を示しています。提供する各データ・アクションは、これらのクラスのいずれかを拡張する必要があります。どのクラスを拡張するかは、データ・アクションの起動時に実装する動作によります。ほとんどのサード・パーティ・データ・アクションは、URLNavigationDataAction
、HTTPAPIDataAction
または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