Antes de empezar a escribir el plugin de acción de datos personalizado, debe decidir cuál de las clases de acción de datos existentes desea ampliar. Elija la clase de acción de datos que proporcione las funciones que más coincidan con lo que desea que realice la acción de datos
Cada acción de datos hereda de la clase AbstractDataAction
, como se muestra en el diagrama de clases. El diagrama de clases muestra las dos clases abstractas de acción de datos (AbstractDataAction
y AbstractHTTPDataAction
) y las cuatros clases concretas de acción de datos (CanvasDataAction
, URLNavigationDataAction
, HTTPAPIDataAction
y EventDataAction
) que puede ampliar. Cada acción de datos que proporcione debe ampliar una de estas clases. La clase que amplíe dependerá del comportamiento que desee implantar cuando llame a la acción de datos. Es probable que la mayoría de las acciones de datos de terceros amplíen URLNavigationDataAction
, HTTPAPIDataAction
o EventDataAction
.
Independientemente de la clase que amplíe, cuando se llama a su acción de datos, se le proporcionan metadatos que describen el contexto completo del punto de datos desde el que se llama a la acción de datos. Consulte Contexto de acción de datos.
AbstractDataAction
es la clase base abstracta de la que heredan todos los tipos de acción de datos. Es responsable de proporcionar las funciones comunes y el comportamiento por defecto que pueden utilizar las subclases.
AbstractDataAction
Todos los tipos de acción de datos son subclases de la clase base AbstractDataAction
. Proporciona el juego principal de funciones comunes a todas las acciones de datos. A menos que esté creando una acción de datos compleja que realice varios tipos de acción al ser llamada o que necesite realizar alguna acción no admitida por las clases concretas, no debe ampliar esta clase directamente. Si necesita crear una acción de datos compleja, considere la opción de ampliar la clase concreta que proporcione la funcionalidad que más coincida con la que necesita.
Sintaxis de 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
Es probable que cada subclase de AbstractDataAction
cree su propia subclase de DataActionKOModel
. La clase base DataActionKOModel
proporciona las siguientes propiedades:
DataActionKOModel, ValuePassingMode
sID:String
Identificador único que se proporciona a la instancia de acción de datos.
sClass:String
Nombre de clase de este tipo específico de acción de datos.
sName:String
Nombre mostrado que se proporciona a la instancia de acción de datos.
sVersion
sScopeID
eValuePassingMode:ValuePassingMode
Modo que se utiliza al transferir valores de contexto. El modo puede ser uno de los valores de ValuePassingMode
(ALL, ANCHOR_DATA, NONE, CUSTOM
).
aAnchorToColumns: ColumnKOViewModel[]
Columnas a las que está anclada la acción de datos. Es opcional. Si no se proporciona, la acción de datos estará disponible en todas las columnas.
aContextColumns : ColumnKOViewModel[]
Columnas que incluye esta acción de datos en el contexto que se transfiere al destino de la acción de datos cuando se llama a la acción de datos. Si no se proporciona, se incluirán todas las columnas en el contexto.
CanvasDataAction
es una subclase de la clase base AbstractDataAction
. Puede ampliar esta clase concreta para que proporcione la funcionalidad que necesite.
CanvasDataAction
Utilice la clase CanvasDataAction
para desplazarse desde un punto de datos de una visualización a un lienzo diferente. El lienzo al que se desplaza puede estar en el mismo libro de trabajo o en uno diferente. Todos los filtros activos de la visualización de origen se transfieren al lienzo de destino junto con los nuevos filtros que describen la referencia de datos cualificada del propio punto de datos. Si la acción de datos necesita desplazarse a un lienzo diferente, esta es la clase que debe ampliar la acción de datos.
+ 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
es una subclase de la clase base AbstractDataAction
. Puede ampliar esta clase concreta para que proporcione la funcionalidad que necesite.
EventDataAction
Utilice la clase EventDataAction
para publicar un evento del cliente. A continuación, puede registrar uno o más suscriptores que reciban ese evento y realicen sus propias acciones. Utilice este tipo de acción de datos en más casos de uso complejos en los que tenga una gran cantidad de código y puede beneficiarse de mantener el código de acción de datos débilmente acoplado al código que realiza las acciones necesarias cuando se llama a la acción de datos.
+ EventDataAction(oKOModel)
+ create(sID_sName) : EventDataAction + upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) + getGadgetInfos(oReport) : AbstractGadgetInfo[] + validate() : DataActionError
# createEventGadgetInfo(oReport) : AbstractGadgetInfo
AbstractHTTPDataAction
es la clase base abstracta de la que las subclases URLNavigationDataAction
y HTTPAPIDataAction
heredan las funciones comunes y el comportamiento por defecto.
AbstractHTTPDataAction
La clase base abstracta AbstractHTTPDataAction
la comparten las clases URLNavigationDataAction
y HTTPAPIDataAction
. Si la acción de datos necesita abrir una página web en un nuevo separador del explorador, debe ampliar URLNavigationDataAction
. Si la acción de datos necesita llamar a una API HTTP, debe ampliar HTTPAPIDataAction
. Puede que decida que es mejor ampliar AbstractHTTPDataAction
directamente.
+ HTTPDataAction(oKOModel)
+ validate() : DataActionError
# createURLGadgetInfo(oReport) : AbstractGadgetInfo
URLNavigationDataAction
es una subclase de la clase base AbstractHTTPDataAction
.
URLNavigationDataAction
Utilice la clase URLNavigationDataAction
para abrir una URL específica en un nuevo separador del explorador. Defina la URL mediante tokens que se sustituyen por valores derivados de puntos de datos que selecciona el usuario al llamar a la acción de datos. Los valores de punto de datos se transfieren como parte del contexto de acción de datos a la página web externa. Por ejemplo, cree una acción de datos a la que se llama utilizando una columna CustomerID
que abre la página web de un cliente en la aplicación de Administración de relaciones con el cliente, como Oracle Sales Cloud.
+ URLNavigationDataAction(oKOModel)
+ create(sID_sName) : URLNavigationDataAction + upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) + getGadgetInfos(oReport) : AbstractGadgetInfo[]
HTTPAPIDataAction
es una subclase o la clase base de AbstractHTTPDataAction
. Puede ampliar esta clase concreta para que proporcione la funcionalidad que necesite.
HTTPAPIDataAction
Utilice la clase HTTPAPIDataAction
para llamar a las API HTTP mediante la creación de una XMLHTTPRequest
(XHR) asíncrona y su envío a la URL especificada. El código de respuesta HTTP permite que se muestre el mensaje brevemente en el lienzo. Por ejemplo, puede personalizar la solicitud para que envíe cargas útiles JSON o XML a un servidor REST o SOAP, y personalizar el manejador de respuestas para que muestre una interfaz de usuario personalizada.
Para que funcione la acción de datos HTTPAPIDataAction
, debe agregar la URL de la API HTTP a la que desea acceder a la lista de dominios seguros y otorgarle acceso para Conectar. Consulte Registro de dominios seguros.
+ HTTPAPIDataAction(oKOModel)
+ create(sID_sName) : HTTPAPIDataAction + upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) + getGadgetInfos(oReport) : AbstractGadgetInfo[]
# createHTTPMethodGadgetInfo(oReport) : AbstractGadgetInfo # createPostParamGadgetInfo(oReport) : AbstractGadgetInfo