Extension d'une classe de base d'action de données

Une fois que vous avez choisi la sous-classe d'action de données à étendre et généré les dossiers et fichiers nécessaires, vous êtes prêt à écrire le code propre à la nouvelle action de données.

Le code d'action de données récemment généré se trouve sous %PLUGIN_DEV_DIR%\src\dataaction. Reportez-vous à Dossiers et fichiers générés pour plus d'informations sur la structure des fichiers et des dossiers. Le principal fichier à modifier est le fichier JavaScript. Par exemple, si l'ID de l'action de données personnalisée est company.MyDataaction, le fichier recherché est %PLUGIN_DEV_DIR%\src\dataaction\company-mydataaction\mydataaction.js.

Extension du modèle Knockout de l'action de données

Si l'action de données comporte des propriétés supplémentaires à stocker, vous devez les ajouter au modèle Knockout en tant que propriétés observables. Si l'action de données reçoit l'ID company.MyDataaction, le modèle Knockout est appelé mydataaction.MyDataActionKOModel et se trouve vers le haut de mydataaction.js. Par défaut, le modèle Knockout est configuré pour étendre celui utilisé par la superclasse de l'action de données. Vous avez donc seulement besoin d'y ajouter des propriétés supplémentaires.

Pour une action de données étendant la classe de base HTTPAPIDataAction, utilisez un code semblable à ce qui suit :

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);
  • Ligne 1 : il s'agit du constructeur du modèle Knockout. Il accepte les propriétés que le modèle doit stocker.
  • Ligne 3 : il s'agit du constructeur de la superclasse, également appelé baseConstructor. Vous lui transmettez les valeurs de toutes les propriétés gérées par l'une des superclasses du modèle Knockout.
  • Ligne 5 : cette ligne définit la superclasse de la classe de modèle Knockout considérée.

Utilisez un code semblable à ce qui suit pour ajouter une chaîne et un tableau, et définir des propriétés rendues persistantes par l'action de données.

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);