Choix de la meilleure classe d'action de données à étendre

Avant de commencer à écrire votre module d'extension d'action de données personnalisé, déterminez les classes d'action de données existantes à étendre. Choisissez la classe d'action de données fournissant les fonctionnalités correspondant le plus à ce que l'action de données doit faire.

Chaque action de données hérite de la classe AbstractDataAction, comme illustré dans le diagramme de classes. Le diagramme de classes montre les deux classes d'action de données abstraites (AbstractDataAction et AbstractHTTPDataAction) et les quatre classes d'action de données concrètes (CanvasDataAction, URLNavigationDataAction, HTTPAPIDataAction et EventDataAction) que vous pouvez étendre. Chaque action de données fournie doit étendre l'une de ces classes. La classe à étendre dépend du comportement que vous voulez implémenter lorsque vous appelez l'action de données. La plupart des actions de données tierces sont susceptibles d'étendre URLNavigationDataAction, HTTPAPIDataAction ou EventDataAction.

Quelle que soit la classe étendue, lorsque l'action de données est appelée, des métadonnées décrivant l'intégralité du contexte du point de données à partir duquel elle est appelée vous sont fournies. Reportez-vous à Contexte d'action de données.

Classe AbstractDataAction

AbstractDataAction est la classe de base abstraite dont tous les types d'action de données héritent. Elle est en charge de la fourniture des fonctionnalités communes et du comportement par défaut utilisables par les sous-classes.

AbstractDataAction

Tous les types d'action de données sont des sous-classes de la classe de base AbstractDataAction. Cette classe fournit l'ensemble de fonctionnalités commun à toutes les actions de données. A moins que vous ne créiez une action de données complexe effectuant plusieurs types d'action lorsqu'elle est appelée ou que vous ne deviez réaliser une opération non prise en charge par les classes concrètes, vous ne devez pas étendre cette classe directement. Si vous avez besoin de créer une action de données complexe, il est conseillé d'étendre la classe concrète correspondant le plus aux fonctionnalités requises.

Syntaxe d'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

Classe DataActionKOModel

Chaque sous-classe d'AbstractDataAction est susceptible de créer sa propre sous-classe de DataActionKOModel. La classe de base DataActionKOModel fournit les propriétés suivantes :

DataActionKOModel, ValuePassingMode

  • sID:String

    ID unique donné à l'instance d'action de données.

  • sClass:String

    Nom de classe du type d'action de données spécifique.

  • sName:String

    Nom d'affichage donné à l'instance d'action de données.

  • sVersion
  • sScopeID
  • eValuePassingMode:ValuePassingMode

    Mode utilisé pour transmettre des valeurs de contexte. Il peut s'agir de l'une des valeurs ValuePassingMode (ALL, ANCHOR_DATA, NONE, CUSTOM).

  • aAnchorToColumns: ColumnKOViewModel[]

    Colonnes auxquelles l'action de données est ancrée. Propriété facultative. Si elle n'est pas précisée, l'action de données est disponible pour toutes les colonnes.

  • aContextColumns : ColumnKOViewModel[]

    Colonnes que l'action de données inclut dans le contexte transmis à la cible d'action de données lorsqu'elle est appelée. Si cette propriété n'est pas précisée, toutes les colonnes marquées sont incluses dans le contexte.

Classe CanvasDataAction

CanvasDataAction est une sous-classe de la classe de base AbstractDataAction. Vous pouvez étendre cette classe concrète pour fournir les fonctionnalités requises.

CanvasDataAction

Utilisez la classe CanvasDataAction pour passer d'un point de données dans une visualisation à un autre canevas. Le canevas auquel vous accédez peut se trouver dans le même classeur ou dans un autre. Tous les filtres actifs de la visualisation source sont transmis au canevas cible, ainsi que de nouveaux filtres décrivant la référence de données qualifiée du point de données proprement dit. Si l'action de données doit accéder à un autre canevas, il s'agit de la classe qu'elle doit étendre.

+ 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

Classe EventDataAction

EventDataAction est une sous-classe de la classe de base AbstractDataAction. Vous pouvez étendre cette classe concrète pour fournir les fonctionnalités requises.

EventDataAction

Utilisez la classe EventDataAction pour publier un événement côté client. Vous pouvez ensuite inscrire des abonnés écoutant l'événement et effectuant leurs propres actions. Utilisez ce type d'action de données pour les cas d'emploi plus complexes où vous avez une grande quantité de code et pouvez tirer profit du fait de conserver un lien souple entre votre code d'action de données et le code qui effectue les actions nécessaires lorsque l'action de données est appelée.

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

Classe AbstractHTTPDataAction

AbstractHTTPDataAction est la classe de base abstraite d'où proviennent les fonctionnalités communes et le comportement par défaut dont héritent les sous-classes URLNavigationDataAction et HTTPAPIDataAction.

AbstractHTTPDataAction

La classe de base abstraite AbstractHTTPDataAction est partagée par les classes URLNavigationDataAction et HTTPAPIDataAction. Si l'action de données doit ouvrir une page Web dans un nouvel onglet du navigateur, vous devez étendre URLNavigationDataAction. Si l'action de données doit appeler une API HTTP, vous devez étendre HTTPAPIDataAction. Vous pouvez considérer qu'il est préférable d'étendre directement AbstractHTTPDataAction.

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

Classe URLNavigationDataAction

URLNavigationDataAction est une sous-classe de la classe de base AbstractHTTPDataAction.

URLNavigationDataAction

Utilisez la classe URLNavigationDataAction pour ouvrir une URL spécifique dans un nouvel onglet de navigateur. Vous composez l'URL à l'aide de jetons remplacés par des valeurs dérivées des points de données sélectionnés par l'utilisateur lorsqu'il appelle l'action de données. Les valeurs de point de données sont transmises à la page Web externe dans le cadre du contexte d'action de données. Par exemple, créez une action de données appelée à l'aide d'une colonne CustomerID ouvrant une page Web de client dans votre application Customer Relations Management, telle qu'Oracle Sales Cloud.

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

Classe HTTPAPIDataAction

HTTPAPIDataAction est une sous-classe de la classe de base AbstractHTTPDataAction. Vous pouvez étendre cette classe concrète pour fournir les fonctionnalités requises.

HTTPAPIDataAction

Utilisez la classe HTTPAPIDataAction pour appeler des API HTTP en créant une demande XMLHTTPRequest (XHR) asynchrone et en la soumettant à l'URL indiquée. Le code de réponse HTTP permet d'afficher brièvement un message sur le canevas. Par exemple, vous pouvez personnaliser la demande pour envoyer des charges utiles JSON ou XML à un serveur REST ou SOAP. Vous pouvez également personnaliser le gestionnaire de réponses pour qu'il affiche une interface utilisateur personnalisée.

Pour que l'action de données HTTPAPIDataAction fonctionne, vous devez ajouter l'URL de l'API HTTP à laquelle accéder à la liste des domaines sécurisés et lui accorder un accès de type Connexion. Reportez-vous à Inscription de domaines sécurisés.

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