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
.
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);
baseConstructor
. Vous lui transmettez les valeurs de toutes les propriétés gérées par l'une des superclasses du modèle Knockout.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);