Ampliación de una clase base de acción de datos

Una vez que haya elegido la subclase de acción de datos que desea ampliar y generado las carpetas y los archivos necesarios, estará listo para empezar a escribir el código específico de la nueva acción de datos.

Puede encontrar el código de acción de datos recién generado en %PLUGIN_DEV_DIR%\src\dataaction. Consulte Carpetas y archivos generados para obtener una explicación de la estructura de archivos y carpetas. El principal archivo que debe editar es el archivo JavaScript. Por ejemplo, si su identificador de acción de datos personalizado es company.MyDataaction, el archivo que busca es %PLUGIN_DEV_DIR%\src\dataaction\company-mydataaction\mydataaction.js.

Ampliación del modelo Knockout de la acción de datos

Si la acción de datos tiene propiedades adicionales que deben almacenarse, debe agregarlas como propiedades observables al modelo Knockout. Si la acción de datos recibe el identificador company.MyDataaction, el modelo Knockout se denominará mydataaction.MyDataActionKOModel y estará ubicado cerca de la parte superior de mydataaction.js. Por defecto, este modelo Knockout está configurado para ampliar el modelo Knockout que utiliza la superclase de la acción de datos de modo que solo necesita agregar propiedades adicionales al modelo.

Para una acción de datos que amplía la clase base HTTPAPIDataAction, utilice un código similar al siguiente:

1 - mydataaction.MydataactionKOModel = function (sClass, sID, sName, sVersion, sScopeID, aAnchorToColumns, eValuePassingMode, sURL,
        eHTTPMethod, sPOSTParams)
2 - {   
3 - mydataaction.MydataactionKOModel.baseConstructor.call(this, sClass, sID, sName, sVersion, sScopeID, aAnchorToColumns, eValuePassingMode, sURL, eHTTPMethod, sPOSTParams);
4 - };
5 - jsx.extend(mydataaction.MydataactionKOModel, dataaction.HTTPAPIDataActionKOModel);
  • Línea 1: es el constructor del modelo Knockout. Acepta las propiedades que necesita almacenar el modelo.
  • Línea 3: es el constructor de la superclase, también conocido como baseConstructor, al cual transfiere los valores de todas las propiedades que maneja una de las superclases del modelo Knockout.
  • Línea 5: define la superclase de esta clase de modelo Knockout.

Utilice un código similar al siguiente para agregar una cadena y una matriz a fin de definir las propiedades que guarda la acción de datos.

1   mydataaction.MydataactionKOModel = function (sClass, sID, sName, sVersion, sScopeID, aAnchorToColumns, eValuePassingMode, sURL, eHTTPMethod, sPOSTParams)
2   {   
3   mydataaction.MydataactionKOModel.baseConstructor.call(this, sClass, sID, sName, sVersion, sScopeID, aAnchorToColumns, eValuePassingMode, sURL, eHTTPMethod, sPOSTParams);
4   
5  
6   // Set Defaults   
7   sMyString = sMyString || "My default string value";   
8   aMyArray = aMyArray || [];     
9  
10
11  // Asserts   
12  jsx.assertString(sMyString, "sMyString");   
13  jsx.assertArray(aMyArray, "aMyArray");
14 
15
16  // Add observable properties   
17  this.sMyString = ko.observable(sMyString);   
18  this.aMyArray = ko.observableArray(aMyArray);
19  };
20  jsx.extend(mydataaction.MydataactionKOModel, dataaction.HTTPAPIDataActionKOModel);