Referencia de archivo de plugin de acción de datos

Cada plugin de acción de datos requiere un archivo plugin.xml y cada archivo plugin.xml puede contener cualquier número de acciones de datos.

Archivo plugin.xml de acción de datos de ejemplo

El archivo plugin.xml consta de tres secciones principales, tns:obiplugin, tns:resources y tns:extension.

Archivo plugin.xml de ejemplo

En este ejemplo se muestra un archivo plugin.xml típico para una acción de datos.

1 <?xml version="1.0" encoding="UTF-8"?>
2 <tns:obiplugin xmlns:tns="http://plugin.frameworks.tech.bi.oracle"
3                id="obitech-currencyconversion"
4                name="Oracle BI Currency Conversion"
5                version="0.1.0.@qualifier@"
6                optimizable="true"
7                optimized="false">
8 
9 
10   <tns:resources>
11      <tns:resource id="currencyconversion" path="scripts/currencyconversion.js" type="script" optimizedGroup="base"/>
12      <tns:resource-folder id="nls" path="resources/nls" optimizable="true">
13         <tns:extensions>
14            <tns:extension name="js" resource-type="script"/>
15         </tns:extensions>
16      </tns:resource-folder>
17   </tns:resources>
18  
19 
20   <tns:extensions>
21      <tns:extension id="oracle.bi.tech.currencyconversiondataaction" point-id="oracle.bi.tech.plugin.dataaction" version="1.0.0">
22         <tns:configuration>
23         {
24            "host": { "module": "obitech-currencyconversion/currencyconversion" },
25            "resourceBundle": "obitech-currencyconversion/nls/messages",
26            "properties":
27            {
28               "className": "obitech-currencyconversion/currencyconversion.CurrencyConversionDataAction",
29               "displayName": { "key" : "CURRENCY_CONVERSION", "default" : "Currency Conversion" },
30               "order": 100
31            }
32         }
33         </tns:configuration>
34      </tns:extension>
35   </tns:extensions>
36 
37 </tns:obiplugin>

Sección de propiedades del archivo plugin.xml de acción de datos: "tns:obiplugin"

La sección tns:obiplugin define las propiedades comunes en todos los tipos de plugins.

Propiedades de plugin

La sección tns:obiplugin define las propiedades comunes en todos los tipos de plugins.

1 <?xml version="1.0" encoding="UTF-8"?>
2 <tns:obiplugin xmlns:tns="http://plugin.frameworks.tech.bi.oracle"
3                id="obitech-currencyconversion"
4                name="Oracle BI Currency Conversion"
5                version="0.1.0.@qualifier@"
6                optimizable="true"
7                optimized="false">
  • Línea 1: declaración XML.
  • Línea 2: etiqueta de apertura del XMLElement raíz del plugin y declaración del espacio de nombre tns que se utiliza en los archivos plugin.xml.
  • Línea 3: identificador único del plugin.
  • Línea 4: nombre mostrado por defecto del plugin (se utiliza cuando no hay ninguna versión localizada disponible).
  • Línea 5: número de versión del plugin.
  • Línea 6: booleano que indica si JS/CSS se puede optimizar (comprimir) o no.
  • Línea 7: booleano que indica si JS/CSS se ha optimizado (comprimido) o no.

Sección de recursos del archivo plugin.xml de acción de datos: "tns:resources"

En la sección tns:resources se registran todos los archivos que se incluyen en el plugin.

Recursos

1 <tns:resources>
2    <tns:resource id="currencyconversion" path="scripts/currencyconversion.js" type="script" optimizedGroup="base"/>
3    <tns:resource-folder id="nls" path="resources/nls" optimizable="true">
4       <tns:extensions>
5          <tns:extension name="js" resource-type="script"/>
6       </tns:extensions>
7    </tns:resource-folder>
8 </tns:resources>

Aquí necesita registrar todos los archivos JavaScript, CSS, de imagen y de recursos de traducción. La sección se incluye en el elemento <tns:resources> y contiene cualquier cantidad de los elementos siguientes:

  • <tns:resource>

    Estos elementos se usan para registrar un solo archivo (por ejemplo, un archivo JavaScript o CSS).

  • <tns:resource-folder>

    Estos elementos se usan para registrar todos los archivos de una carpeta especificada a la vez. Por ejemplo, una carpeta de imagen o la carpeta que contiene los archivos de recursos para Soporte de idioma nativo.

En las siguientes secciones se proporciona información adicional sobre cómo registrar cada tipo de archivo.

Archivos JavaScript

Cada archivo JavaScript de su plugin se debe registrar con una línea similar a la que se muestra a continuación.

<tns:resource id="currencyconversion" path="scripts/currencyconversion.js" type="script" optimizedGroup="base"/>

Dónde:

  • id es el ID asignado al archivo.

    Defina el ID con el que hacer coincidir el nombre de archivo JavaScript sin la extensión .js.

  • path es la ruta relativa al archivo JavaScript desde el archivo plugin.xml. Los archivos JavaScript se deben almacenar en el directorio scripts del plugin.

    Use siempre minúsculas para los archivos JavaScript sin caracteres especiales (por ejemplo, caracteres de subrayado, guiones).

  • type es el tipo de archivo que se está registrando. Se debe definir en script para los archivos JavaScript.
  • optimizedGroup agrupa varios archivos JavaScript en un solo archivo comprimido. Los plugins de terceros deben dejar este valor definido en base.

Archivos CSS

Cada archivo CSS del plugin se debe registrar con una línea similar a la que se muestra a continuación.

<tns:resource id="currencyconversionstyles" path="resources/currencyconversion.css" type="css"/>

Dónde:

  • id es el ID asignado al archivo.

    Defina el ID con el que hacer coincidir el nombre de archivo CSS sin la extensión .css.

  • path es la ruta relativa al archivo CSS desde el archivo plugin.xml. Los archivos CSS se deben almacenar en el directorio resources del plugin.

    Use siempre minúsculas para los archivos CSS si caracteres especiales (por ejemplo, caracteres de subrayado, guiones).

  • type es el tipo de archivo que se está registrando. Siempre se debe definir en css con archivos CSS.

Carpeta de imágenes

Si el plugin incluye imágenes a las que debe hace referencia desde el código JavaScript, colóquelas en un directorio resources/images en la estructura de directorios del plugin y agregue un elemento <tns:resource-folder> al archivo plugin.xml como se muestra a continuación:

<tns:resource-folder id="images" path="resources/images" optimizable="false"/>

Si a las imágenes solo se les hace referencia en los archivos CSS, no es necesario que agregue este elemento <tns:resource-folder> a su archivo plugin.xml. En este caso, aún tendrá que agregarlos al directorio resources/images para que, posteriormente, pueda hacer referencia a ellos con una ruta relativa desde el archivo CSS.

Carpetas de recursos del soporte de idioma nativo

Oracle Analytics implanta el soporte de idioma nativo. Esto exige a los desarrolladores externalizar las cadenas que muestran en su interfaz de usuario en distintos archivos de recursos JSON. A continuación, puede proporcionar distintas versiones localizadas de esos archivos en una estructura de directorios indicada y Oracle Analytics usa automáticamente el archivo correcto para el idioma elegido del usuario. Puede proporcionar tantas versiones traducidas de los archivos de recursos como desee. Una carpeta de recursos Soporte de idioma nativo hace que Oracle Analytics apunte a la raíz de la estructura de directorios del Soporte de idioma nativo indicada que use su plugin. Todos los plugins que usen los archivos de recursos de Soporte de idioma nativo deben tener una entrada <tns:resource-folder> que tenga exactamente el siguiente aspecto.

1 <tns:resource-folder id="nls" path="resources/nls" optimizable="true">
2    <tns:extensions>
3       <tns:extension name="js" resource-type="script"/>
4    </tns:extensions>
5 </tns:resource-folder>

Consulte Carpetas y archivos generados para obtener información sobre el contenido de los archivos y la estructura de directorios indicada que debe seguir.

Sección de extensiones del archivo plugin.xml de acción de datos: "tns:extension"

Para cada acción de datos que desee que proporcione su plugin, debe registrar una extensión de acción de datos mediante un elemento <tns:extension> similar a esto:

<tns:extension id="oracle.bi.tech.currencyconversiondataaction" point-id="oracle.bi.tech.plugin.dataaction" version="1.0.0">
   <tns:configuration>
   {
      "host": { "module": "obitech-currencyconversion/currencyconversion" },
      "resourceBundle": "obitech-currencyconversion/nls/messages",
      "properties":
      {
         "className": "obitech-currencyconversion/currencyconversion.CurrencyConversionDataAction",
         "displayName": { "key" : "CURRENCY_CONVERSION", "default" : "Currency Conversion" },
         "order": 100
      }
   }
   </tns:configuration>
</tns:extension>

Dónde:

  • id es el ID único que haya asignado a la acción de datos.
  • point-id es el tipo de extensión que desee registrar. Para las extensiones de acciones de datos, se debe definir en oracle.bi.tech.plugin.dataaction.
  • version es la versión de API de extensión que usa la definición de extensión (deje este valor definido en 1.0.0).

El elemento <tns:configuration> contiene una cadena JSON que define:

  • host.module: se trata del nombre totalmente cualificado del módulo que contiene su acción de datos. Este nombre de módulo totalmente cualificado se formula como %PluginID%/%ModuleName%, donde:
    • %PluginID% se debe sustituir por el ID de plugin especificado en el atributo id del elemento <tns:obiplugin>.
    • %ModuleName% se debe sustituir por el ID de recurso especificado en el atributo id del elemento <tns:resource> para el archivo JavaScript que contiene la acción de datos.
  • resourceBundle: es la ruta de soporte de idioma nativo al archivo de recursos que contiene los recursos localizados de esta acción de datos. Si los archivos de recursos se denominan messages.js y están almacenados correctamente en la estructura de directorios nls indicada, defina esta propiedad en %PluginID%/nls/messages (donde %PluginID% se debe sustituir por el ID del ID plugin especificado en el atributo id del elemento <tns:obiplugin> en la parte superior del archivo plugin.xml).
  • properties.className: es el nombre de clase totalmente cualificado asignado a la acción de datos que está registrando. Este nombre de clase totalmente cualificado se formula como %PluginID%/%ModuleName%.%ClassName%, donde:
    • %PluginID% se debe sustituir por el ID de plugin especificado en el atributo id del elemento <tns:obiplugin>.
    • %ModuleName% se debe sustituir por el ID de recurso especificado en el atributo id del elemento <tns:resource> para el archivo JavaScript que contiene la acción de datos.
    • %ClassName% se debe sustituir por el nombre que asigne a la clase de acción de datos en su archivo JavaScript.
  • properties.displayName: esta propiedad contiene un objeto y dos propiedades adicionales:
    • key es la clave de mensaje de soporte de idioma nativo que se puede usar para buscar el nombre mostrado localizado de la acción de datos del resourceBundle especificado.
    • default es el nombre mostrado por defecto que usar si, por algún motivo, no se ha encontrado la versión localizada del nombre mostrado.
  • properties.order: esta propiedad le permite proporcionar una indicación que sirve para determinar la posición en que deben aparecer esos datos cuando se muestren en una lista de acciones de datos. Las acciones de datos con números menores en su propiedad de orden aparecen antes que las acciones de datos con números mayores. Cuando haya alguna vinculación, las acciones de datos se muestran en el orden en que las carga el sistema.