@ind-rcg/modeler-sfdx-cli-plugin 250.1019.0 → 252.1021.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/lib/constants.js +1 -1
  2. package/lib/utils/packageHelper.js +1 -1
  3. package/oclif.manifest.json +1 -1
  4. package/package.json +7 -6
  5. package/templates/contractTemplates/Plugins/ComplexPricingEngine/ComplexPricingEngine_UserExits.md +17 -0
  6. package/templates/contractTemplates/Plugins/ComplexPricingEngine/MyUserExitComplexPricingEngine.UserExitAffectCalculationResult.bl.js +96 -0
  7. package/templates/contractTemplates/Plugins/ComplexPricingEngine/MyUserExitComplexPricingEngine.UserExitAffectCurrentConditionBase.bl.js +103 -0
  8. package/templates/contractTemplates/Plugins/ComplexPricingEngine/MyUserExitComplexPricingEngine.UserExitSkipCurrentCalcStep.bl.js +77 -0
  9. package/templates/contractTemplates/Plugins/ComplexPricingEngine/MyUserExitComplexPricingEngine.UserExitSkipCurrentSearchStrategyStep.bl.js +78 -0
  10. package/templates/contractTemplates/YourModule Section/BO/BO_BusinessObject/businessobject/Bo${NAME}/Mv2/CreateAsync/Bo${NAME}.AfterCreateAsync.bl.js +0 -1
  11. package/templates/contractTemplates/YourModule Section/BO/BO_BusinessObject/businessobject/Bo${NAME}/Mv2/CreateAsync/Bo${NAME}.BeforeCreateAsync.bl.js +0 -1
  12. package/templates/contractTemplates/YourModule Section/BO/BO_BusinessObject/businessobject/Bo${NAME}/Mv2/DoValidateAsync/Bo${NAME}.AfterDoValidateAsync.bl.js +0 -1
  13. package/templates/contractTemplates/YourModule Section/BO/BO_BusinessObject/businessobject/Bo${NAME}/Mv2/DoValidateAsync/Bo${NAME}.BeforeDoValidateAsync.bl.js +0 -1
  14. package/templates/contractTemplates/YourModule Section/BO/BO_BusinessObject/businessobject/Bo${NAME}/Mv2/Initialize/Bo${NAME}.AfterInitialize.bl.js +0 -1
  15. package/templates/contractTemplates/YourModule Section/BO/BO_BusinessObject/businessobject/Bo${NAME}/Mv2/Initialize/Bo${NAME}.BeforeInitialize.bl.js +0 -1
  16. package/templates/contractTemplates/YourModule Section/BO/BO_BusinessObject/businessobject/Bo${NAME}/Mv2/LoadAsync/Bo${NAME}.AfterLoadAsync.bl.js +0 -1
  17. package/templates/contractTemplates/YourModule Section/BO/BO_BusinessObject/businessobject/Bo${NAME}/Mv2/LoadAsync/Bo${NAME}.BeforeLoadAsync.bl.js +0 -1
  18. package/templates/contractTemplates/YourModule Section/BO/BO_BusinessObject/businessobject/Bo${NAME}/Mv2/SaveAsync/Bo${NAME}.AfterSaveAsync.bl.js +0 -1
  19. package/templates/contractTemplates/YourModule Section/BO/BO_BusinessObject/businessobject/Bo${NAME}/Mv2/SaveAsync/Bo${NAME}.BeforeSaveAsync.bl.js +0 -1
  20. package/templates/contractTemplates/YourModule Section/BO/LO_ListObject/Lo${NAME}/Mv2/DoValidateAsync/Lo${NAME}.AfterDoValidateAsync.bl.js +0 -1
  21. package/templates/contractTemplates/YourModule Section/BO/LO_ListObject/Lo${NAME}/Mv2/DoValidateAsync/Lo${NAME}.BeforeDoValidateAsync.bl.js +0 -1
  22. package/templates/contractTemplates/YourModule Section/BO/LO_ListObject/Lo${NAME}/Mv2/LoadAsync/Lo${NAME}.AfterLoadAsync.bl.js +0 -1
  23. package/templates/contractTemplates/YourModule Section/BO/LO_ListObject/Lo${NAME}/Mv2/LoadAsync/Lo${NAME}.BeforeLoadAsync.bl.js +0 -1
  24. package/templates/contractTemplates/YourModule Section/BO/LO_ListObject/Lo${NAME}/Mv2/SaveAsync/Lo${NAME}.AfterSaveAsync.bl.js +0 -1
  25. package/templates/contractTemplates/YourModule Section/BO/LO_ListObject/Lo${NAME}/Mv2/SaveAsync/Lo${NAME}.BeforeSaveAsync.bl.js +0 -1
  26. package/templates/contractTemplates/YourModule Section/BO/LU_LookupObject/Lu${NAME}/Mv2/LoadAsync/Lu${NAME}.AfterLoadAsync.bl.js +0 -1
  27. package/templates/contractTemplates/YourModule Section/BO/LU_LookupObject/Lu${NAME}/Mv2/LoadAsync/Lu${NAME}.BeforeLoadAsync.bl.js +0 -1
  28. package/templates/contractTemplates/YourModule Section/BO/Methods_or_BusinessLogic/${REFERENCE_OBJECT}.${NAME}.bl.js +0 -1
  29. package/templates/contractTemplates/YourModule Section/BO/Methods_or_BusinessLogic/${REFERENCE_OBJECT}.${NAME}Async.bl.js +0 -1
  30. package/templates/contractTemplates/YourModule Section/BO/Methods_or_BusinessLogic/${REFERENCE_OBJECT}.${VALIDATION_NAME}.bl.js +0 -1
package/lib/constants.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.WorkspaceConstants=exports.PACKAGE_NAME=void 0,exports.PACKAGE_NAME="@ind-rcg/modeler-sfdx-cli-plugin";class WorkspaceConstants{}exports.WorkspaceConstants=WorkspaceConstants,WorkspaceConstants.WORKSPACE_APPLICATION_FOLDER="appl",WorkspaceConstants.WORKSPACE_APPLICATION_BUILD_FOLDER="build",WorkspaceConstants.WORKSPACE_APPLICATION_CONFIG_FOLDER="config",WorkspaceConstants.WORKSPACE_APPLICATION_DATA_FOLDER="data",WorkspaceConstants.WORKSPACE_APPLICATION_LOCALE_SNIPPETS_FOLDER="localeSnippets",WorkspaceConstants.WORKSPACE_SNIPPETS_FOLDER="contractSnippets",WorkspaceConstants.WORKSPACE_TEMP_FOLDER="temp",WorkspaceConstants.WORKSPACE_CONTRACTS_FOLDER="contracts",WorkspaceConstants.WORKSPACE_SOURCE_FOLDER="src",WorkspaceConstants.WORKSPACE_TEST_FOLDER="test",WorkspaceConstants.WORKSPACE_IDE_SETTINGS_FOLDER=".vscode",WorkspaceConstants.WORKSPACE_IDENTIFIER_FILE=".modeler-workspace",WorkspaceConstants.WORKSPACE_GITIGNORE_FILE=".gitignore",WorkspaceConstants.WORKSPACE_README_FILE="README.md",WorkspaceConstants.WORKSPACE_BRANCH_CONFIG_FILE="branch.config.json",WorkspaceConstants.WORKSPACE_APPLICATION_CONFIG_FILE="config.json",WorkspaceConstants.WORKSPACE_IDE_SETTINGS_FILE="settings.json",WorkspaceConstants.XML_XSD_MAPPING_FILE="xmlXsdMapping.json",WorkspaceConstants.WORKSPACE_APPLICATION_BUILD_STATUS_FILE="status.json",WorkspaceConstants.WORKSPACE_APPLICATION_VALIDATION_RESULT_FILE="generatorValidationResult.json",WorkspaceConstants.WORKSPACE_APPLICATION_GENERATOR_HANDOVER_FILE="generatorHandoverFile.json",WorkspaceConstants.MANIFEST_FILE="manifest.json",WorkspaceConstants.VERSION_FILE="version.xml",WorkspaceConstants.APP_DB="app.db3",WorkspaceConstants.APP_CONFIG="appConfig.json",WorkspaceConstants.BACKEND_SERVER_CONFIG="serverConfig.json",WorkspaceConstants.BACKEND_LOGGING_CONFIG="serverLogConfig.json",WorkspaceConstants.WORKSPACE_APPLICATION_TMP_FOLDER="tmp",WorkspaceConstants.PROCESS_FLOW_FILE_ENDING=".processflow.xml";
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.WorkspaceConstants=exports.PACKAGE_NAME=void 0,exports.PACKAGE_NAME="@ind-rcg/modeler-sfdx-cli-plugin";class WorkspaceConstants{}exports.WorkspaceConstants=WorkspaceConstants,WorkspaceConstants.WORKSPACE_APPLICATION_FOLDER="appl",WorkspaceConstants.WORKSPACE_APPLICATION_BUILD_FOLDER="build",WorkspaceConstants.WORKSPACE_APPLICATION_CONFIG_FOLDER="config",WorkspaceConstants.WORKSPACE_APPLICATION_DATA_FOLDER="data",WorkspaceConstants.WORKSPACE_APPLICATION_LOCALE_SNIPPETS_FOLDER="localeSnippets",WorkspaceConstants.WORKSPACE_SNIPPETS_FOLDER="contractSnippets",WorkspaceConstants.WORKSPACE_TEMP_FOLDER="temp",WorkspaceConstants.WORKSPACE_CONTRACTS_FOLDER="contracts",WorkspaceConstants.WORKSPACE_SOURCE_FOLDER="src",WorkspaceConstants.WORKSPACE_TEST_FOLDER="test",WorkspaceConstants.WORKSPACE_IDE_SETTINGS_FOLDER=".vscode",WorkspaceConstants.WORKSPACE_IDENTIFIER_FILE=".modeler-workspace",WorkspaceConstants.WORKSPACE_GITIGNORE_FILE=".gitignore",WorkspaceConstants.WORKSPACE_README_FILE="README.md",WorkspaceConstants.WORKSPACE_BRANCH_CONFIG_FILE="branch.config.json",WorkspaceConstants.WORKSPACE_APPLICATION_CONFIG_FILE="config.json",WorkspaceConstants.WORKSPACE_IDE_SETTINGS_FILE="settings.json",WorkspaceConstants.XML_XSD_MAPPING_FILE="xmlXsdMapping.json",WorkspaceConstants.WORKSPACE_APPLICATION_BUILD_STATUS_FILE="status.json",WorkspaceConstants.WORKSPACE_APPLICATION_VALIDATION_RESULT_FILE="generatorValidationResult.json",WorkspaceConstants.WORKSPACE_APPLICATION_GENERATOR_HANDOVER_FILE="generatorHandoverFile.json",WorkspaceConstants.WORKSPACE_APPLICATION_LOCALIZATION_FILE="localization.json",WorkspaceConstants.MANIFEST_FILE="manifest.json",WorkspaceConstants.VERSION_FILE="version.xml",WorkspaceConstants.APP_DB="app.db3",WorkspaceConstants.APP_CONFIG="appConfig.json",WorkspaceConstants.BACKEND_SERVER_CONFIG="serverConfig.json",WorkspaceConstants.BACKEND_LOGGING_CONFIG="serverLogConfig.json",WorkspaceConstants.WORKSPACE_APPLICATION_TMP_FOLDER="tmp",WorkspaceConstants.PROCESS_FLOW_FILE_ENDING=".processflow.xml";
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,a,s){void 0===s&&(s=a);var r=Object.getOwnPropertyDescriptor(t,a);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,s,r)}:function(e,t,a,s){void 0===s&&(s=a),e[s]=t[a]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&__createBinding(t,e,a);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createDeploymentPackage=exports.normalizeFilePath=exports.PackageConstants=void 0;const jszip_1=__importDefault(require("jszip")),klaw_sync_1=__importDefault(require("klaw-sync")),fs=__importStar(require("fs-extra")),path=__importStar(require("path")),lodash_1=__importDefault(require("lodash")),fsHelper=__importStar(require("./fsHelper")),validationHelper=__importStar(require("./validationHelper")),messageHelper=__importStar(require("./messageHelper")),errors_1=require("../types/errors"),messages_1=require("../types/messages"),constants_1=require("../constants");class PackageConstants{static getSupportedAppFolders(){return[fsHelper.joinPaths(this.PACKAGE_APP_FOLDER_NAME,this.PACKAGE_APP_CLOCKWORK_FOLDER_NAME),fsHelper.joinPaths(this.PACKAGE_APP_FOLDER_NAME,this.PACKAGE_APP_EXTERNAL_FILES_FOLDER_NAME),fsHelper.joinPaths(this.PACKAGE_APP_FOLDER_NAME,this.PACKAGE_APP_REPLICATION_FILES_FOLDER_NAME)]}static getUnsupportedFiles(){return[constants_1.WorkspaceConstants.WORKSPACE_APPLICATION_GENERATOR_HANDOVER_FILE,constants_1.WorkspaceConstants.WORKSPACE_APPLICATION_VALIDATION_RESULT_FILE,this.PACKAGE_DS_STORE_FILE]}static formatVersion(e){return`${e.getUTCFullYear()}${e.getUTCMonth().toString().padStart(2,"0")}${e.getUTCDate().toString().padStart(2,"0")}${e.getUTCHours().toString().padStart(2,"0")}${e.getUTCMinutes().toString().padStart(2,"0")}${e.getUTCSeconds().toString().padStart(2,"0")}${e.getUTCMilliseconds().toString().padStart(3,"0")}`}}function normalizeFilePath(e,t){const a=new RegExp("\\"+t,"g");return e.replace(a,path.posix.sep)}function __normalizeFilePath(e){return normalizeFilePath(e,path.sep)}async function createDeploymentPackage(e,t,a){if(!validationHelper.isDefined(e))throw new errors_1.ArgumentError("workspace");if(!validationHelper.isDefined(t)||!lodash_1.default.isDate(t))throw new errors_1.ArgumentError("versionDate");if(!validationHelper.isDefined(a)||!lodash_1.default.isArray(a))throw new errors_1.ArgumentError("components");if(!e.exists())throw new Error(messageHelper.getMessage(messages_1.MessagesBundle.Workspace,messages_1.MessagesBundle_Workspace.WorkspaceNotFound,[e.getBasePath()]));e.getLastBuildStatus().ensureSuccess();let s=new jszip_1.default,r=t,n=PackageConstants.formatVersion(t);const o=PackageConstants.getSupportedAppFolders(),i=PackageConstants.getUnsupportedFiles();let _=e.getApplicationBuildPath(),l=path.resolve(_),p=fsHelper.joinPaths(_,PackageConstants.PACKAGE_APP_FOLDER_NAME),c={nodir:!0,filter:e=>{let t=e.path.substring(l.length+1),a=lodash_1.default.toLower(t);if(lodash_1.default.some(o,(e=>lodash_1.default.startsWith(a,e)))){return!lodash_1.default.some(i,(e=>lodash_1.default.endsWith(a,e)))}return!1}},A=[];(0,klaw_sync_1.default)(p,c).forEach((e=>{let t=__normalizeFilePath(e.path.substring(l.length+1));s.file(t,fs.readFileSync(e.path)),A.push({path:t})}));let u={deploymentVersion:n,files:A},P={deploymentVersion:n,creationDate:r.toUTCString(),components:a,automatedTest:!1,inputValidationActive:!1};s.file(PackageConstants.PACKAGE_MANIFEST_FILE_NAME,JSON.stringify(u)),s.file(PackageConstants.PACKAGE_INFO_FILE_NAME,JSON.stringify(P));let E=fsHelper.joinPaths(e.getApplicationBuildPath(),PackageConstants.PACKAGE_FILE_NAME);await s.generateAsync({type:"nodebuffer",compression:"DEFLATE"}).then((e=>{fs.writeFileSync(E,e)}))}exports.PackageConstants=PackageConstants,PackageConstants.PACKAGE_INFO_FILE_NAME="info.json",PackageConstants.PACKAGE_MANIFEST_FILE_NAME="manifest.json",PackageConstants.PACKAGE_FILE_NAME="deployment.zip",PackageConstants.PACKAGE_APP_FOLDER_NAME="app",PackageConstants.PACKAGE_APP_CLOCKWORK_FOLDER_NAME="clockwork",PackageConstants.PACKAGE_APP_EXTERNAL_FILES_FOLDER_NAME="externalfiles",PackageConstants.PACKAGE_APP_REPLICATION_FILES_FOLDER_NAME="replicationfiles",PackageConstants.PACKAGE_DS_STORE_FILE=".ds_store",exports.normalizeFilePath=normalizeFilePath,exports.createDeploymentPackage=createDeploymentPackage;
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,a,s){void 0===s&&(s=a);var r=Object.getOwnPropertyDescriptor(t,a);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,s,r)}:function(e,t,a,s){void 0===s&&(s=a),e[s]=t[a]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&__createBinding(t,e,a);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createDeploymentPackage=exports.normalizeFilePath=exports.PackageConstants=void 0;const jszip_1=__importDefault(require("jszip")),klaw_sync_1=__importDefault(require("klaw-sync")),fs=__importStar(require("fs-extra")),path=__importStar(require("path")),lodash_1=__importDefault(require("lodash")),fsHelper=__importStar(require("./fsHelper")),validationHelper=__importStar(require("./validationHelper")),messageHelper=__importStar(require("./messageHelper")),errors_1=require("../types/errors"),messages_1=require("../types/messages"),constants_1=require("../constants");class PackageConstants{static getSupportedAppFolders(){return[fsHelper.joinPaths(this.PACKAGE_APP_FOLDER_NAME,this.PACKAGE_APP_CLOCKWORK_FOLDER_NAME),fsHelper.joinPaths(this.PACKAGE_APP_FOLDER_NAME,this.PACKAGE_APP_EXTERNAL_FILES_FOLDER_NAME),fsHelper.joinPaths(this.PACKAGE_APP_FOLDER_NAME,this.PACKAGE_APP_REPLICATION_FILES_FOLDER_NAME)].map((e=>lodash_1.default.toLower(e)))}static getUnsupportedFiles(){return[constants_1.WorkspaceConstants.WORKSPACE_APPLICATION_GENERATOR_HANDOVER_FILE,constants_1.WorkspaceConstants.WORKSPACE_APPLICATION_VALIDATION_RESULT_FILE,constants_1.WorkspaceConstants.WORKSPACE_APPLICATION_LOCALIZATION_FILE,this.PACKAGE_DS_STORE_FILE].map((e=>lodash_1.default.toLower(e)))}static formatVersion(e){return`${e.getUTCFullYear()}${e.getUTCMonth().toString().padStart(2,"0")}${e.getUTCDate().toString().padStart(2,"0")}${e.getUTCHours().toString().padStart(2,"0")}${e.getUTCMinutes().toString().padStart(2,"0")}${e.getUTCSeconds().toString().padStart(2,"0")}${e.getUTCMilliseconds().toString().padStart(3,"0")}`}}function normalizeFilePath(e,t){const a=new RegExp("\\"+t,"g");return e.replace(a,path.posix.sep)}function __normalizeFilePath(e){return normalizeFilePath(e,path.sep)}async function createDeploymentPackage(e,t,a){if(!validationHelper.isDefined(e))throw new errors_1.ArgumentError("workspace");if(!validationHelper.isDefined(t)||!lodash_1.default.isDate(t))throw new errors_1.ArgumentError("versionDate");if(!validationHelper.isDefined(a)||!lodash_1.default.isArray(a))throw new errors_1.ArgumentError("components");if(!e.exists())throw new Error(messageHelper.getMessage(messages_1.MessagesBundle.Workspace,messages_1.MessagesBundle_Workspace.WorkspaceNotFound,[e.getBasePath()]));e.getLastBuildStatus().ensureSuccess();let s=new jszip_1.default,r=t,n=PackageConstants.formatVersion(t);const o=PackageConstants.getSupportedAppFolders(),i=PackageConstants.getUnsupportedFiles();let _=e.getApplicationBuildPath(),l=path.resolve(_),p=fsHelper.joinPaths(_,PackageConstants.PACKAGE_APP_FOLDER_NAME),A={nodir:!0,filter:e=>{let t=e.path.substring(l.length+1),a=lodash_1.default.toLower(t);if(lodash_1.default.some(o,(e=>lodash_1.default.startsWith(a,e)))){return!lodash_1.default.some(i,(e=>lodash_1.default.endsWith(a,e)))}return!1}},c=[];(0,klaw_sync_1.default)(p,A).forEach((e=>{let t=__normalizeFilePath(e.path.substring(l.length+1));s.file(t,fs.readFileSync(e.path)),c.push({path:t})}));let P={deploymentVersion:n,files:c},u={deploymentVersion:n,creationDate:r.toUTCString(),components:a,automatedTest:!1,inputValidationActive:!1};s.file(PackageConstants.PACKAGE_MANIFEST_FILE_NAME,JSON.stringify(P)),s.file(PackageConstants.PACKAGE_INFO_FILE_NAME,JSON.stringify(u));let E=fsHelper.joinPaths(e.getApplicationBuildPath(),PackageConstants.PACKAGE_FILE_NAME);await s.generateAsync({type:"nodebuffer",compression:"DEFLATE"}).then((e=>{fs.writeFileSync(E,e)}))}exports.PackageConstants=PackageConstants,PackageConstants.PACKAGE_INFO_FILE_NAME="info.json",PackageConstants.PACKAGE_MANIFEST_FILE_NAME="manifest.json",PackageConstants.PACKAGE_FILE_NAME="deployment.zip",PackageConstants.PACKAGE_APP_FOLDER_NAME="app",PackageConstants.PACKAGE_APP_CLOCKWORK_FOLDER_NAME="clockwork",PackageConstants.PACKAGE_APP_EXTERNAL_FILES_FOLDER_NAME="externalFiles",PackageConstants.PACKAGE_APP_REPLICATION_FILES_FOLDER_NAME="replicationFiles",PackageConstants.PACKAGE_DS_STORE_FILE=".DS_Store",exports.normalizeFilePath=normalizeFilePath,exports.createDeploymentPackage=createDeploymentPackage;
@@ -648,5 +648,5 @@
648
648
  ]
649
649
  }
650
650
  },
651
- "version": "250.1019.0"
651
+ "version": "252.1021.0"
652
652
  }
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@ind-rcg/modeler-sfdx-cli-plugin",
3
3
  "displayName": "modeler-sfdx-cli-plugin",
4
- "version": "250.1019.0",
4
+ "version": "252.1021.0",
5
5
  "author": "Salesforce",
6
6
  "license": "BSD-3-Clause",
7
7
  "description": "This plugin is an enhancement of the sfdx cli and provide you features to customize the Consumer Goods Cloud Mobility application. This version will be the replacement for the Consumer Goods Mobile Modeler which was hosted on a Windows Server machine.",
8
8
  "dependencies": {
9
- "@ind-rcg/backend": "250.1005.0",
10
- "@ind-rcg/framework": "250.1039.0",
11
- "@ind-rcg/generator": "250.1012.0",
9
+ "@ind-rcg/backend": "252.1003.0",
10
+ "@ind-rcg/framework": "252.1041.0",
11
+ "@ind-rcg/generator": "252.1010.0",
12
12
  "@oclif/core": "3.19.5",
13
13
  "@salesforce/core": "6.5.5",
14
14
  "@salesforce/sf-plugins-core": "5.0.13",
@@ -127,8 +127,9 @@
127
127
  "readme": "oclif readme",
128
128
  "uglify": "uglifyjs-folder lib -e -x .js -o lib --log-level error"
129
129
  },
130
+ "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e",
130
131
  "sfdx": {
131
- "publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@ind-rcg/modeler-sfdx-cli-plugin/250.1019.0.crt",
132
- "signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@ind-rcg/modeler-sfdx-cli-plugin/250.1019.0.sig"
132
+ "publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@ind-rcg/modeler-sfdx-cli-plugin/252.1021.0.crt",
133
+ "signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@ind-rcg/modeler-sfdx-cli-plugin/252.1021.0.sig"
133
134
  }
134
135
  }
@@ -0,0 +1,17 @@
1
+ ******************************
2
+ ComplexPricing / PPP UserExits
3
+ ******************************
4
+
5
+ In this folder you can find a set of PPP UserExit template methods:
6
+
7
+ * MyUserExitComplexPricingEngine.UserExitAffectCalculationResult.bl.js
8
+ * MyUserExitComplexPricingEngine.UserExitAffectCurrentConditionBase.bl.js
9
+ * MyUserExitComplexPricingEngine.UserExitSkipCurrentCalcStep.bl.js
10
+ * MyUserExitComplexPricingEngine.UserExitSkipCurrentSearchStrategyStep.bl.js
11
+
12
+ These methods need to follow the signatures (parameters and return values) of the provided templates.
13
+ Additional details about the UserExits is available within the corresponding template methods.
14
+ The UserExits are called and orchestrated by the PPP engine when available.
15
+ If you want to use such UserExits, copy the respective template method(s) next to the PPP engine at "src/Plugins/ComplexPricingEngine".
16
+ All UserExits are "optional", meaning if you need one type of UserExit (e.g. 'SkipCurrentCalcStep'), there is no need to take over all four methods.
17
+ Taking over just the "MyUserExitComplexPricingEngine.UserExitSkipCurrentCalcStep.bl.js" method would be sufficient in this scenario.
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ ///////////////////////////////////////////////////////////////////////////////////////////////
4
+ // IMPORTANT - DO NOT MODIFY AUTO-GENERATED CODE OR COMMENTS //
5
+ //Parts of this file are auto-generated and modifications to those sections will be //
6
+ //overwritten. You are allowed to modify: //
7
+ // - the tags in the jsDoc as described in the corresponding section //
8
+ // - the function name and its parameters //
9
+ // - the function body between the insertion ranges //
10
+ // "Add your customizing javaScript code below / above" //
11
+ // //
12
+ // NOTE: //
13
+ // - If you have created PRE and POST functions, they will be executed in the same order //
14
+ // as before. //
15
+ // - If you have created a REPLACE to override core function, only the REPLACE function will //
16
+ // be executed. PRE and POST functions will be executed in the same order as before. //
17
+ // //
18
+ // - For new customizations, you can directly modify this file. There is no need to use the //
19
+ // PRE, POST, and REPLACE functions. //
20
+ // //
21
+ ///////////////////////////////////////////////////////////////////////////////////////////////
22
+
23
+ /**
24
+ * Use the following jsDoc tags to describe the BL function. Setting these tags will
25
+ * change the runtime behavior in the mobile app. The values specified in the tags determine
26
+ * the name of the contract file. The filename format is “@this . @function .bl.js”.
27
+ * For example, LoVisit.BeforeLoadAsync.bl.js
28
+ * -> function: Name of the businessLogic function.
29
+ * -> this: The LO, BO, or LU object that this function belongs to (and it is part of the filename).
30
+ * -> kind: Type of object this function belongs to. Most common value is "businessobject".
31
+ * -> async: If declared as async then the function should return a promise.
32
+ * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
33
+ * -> module: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
34
+ * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
35
+ * -> returns: Type and variable name in which the return value is stored.
36
+ * @function UserExitAffectCalculationResult
37
+ * @this ComplexPricingEngine
38
+ * @kind plugin
39
+ * @namespace CUSTOM
40
+ * @param {Object} OrderAttributes
41
+ * @param {Object} UserExitId
42
+ * @param {Object} CurrentCalcStepAttributes
43
+ * @param {Object} VariantAttributes
44
+ * @param {Object} AffectableResults
45
+ * @param {Object} ProductAttributes
46
+ * @returns AffectedResults
47
+ */
48
+ function UserExitAffectCalculationResult(OrderAttributes, UserExitId, CurrentCalcStepAttributes, VariantAttributes, AffectableResults, ProductAttributes){
49
+ var me = this;
50
+ ///////////////////////////////////////////////////////////////////////////////////////////////
51
+ // //
52
+ // Add your customizing javaScript code below. //
53
+ // //
54
+ ///////////////////////////////////////////////////////////////////////////////////////////////
55
+
56
+ /**
57
+ * Use the UserExitAffectCalculationResult user exit to modify all calculation variables after the calculation. You can edit base, value, result, and the current total in this step.
58
+ * Returns: Object AffectedResults, which contain all four effectible calculation values.
59
+ *
60
+ * PARAMETER DESCRIPTION
61
+ * OrderAttributes Set of order attributes available in the pricing engine by default.
62
+ * UserExitId Id/Name of the user exit. The user exit must have code which holds the algorithm for this ID. Typically a “switch case” statement is used to handle in each case block a different ID.
63
+ * CurrentCalcStepAttributes List of calculation step attributes.
64
+ * VariantAttributes Obsolete … can be ignored because the variant attributes are now part of the ProductAttributes parameter. Just still in because of backward compatibility
65
+ * AffectableResults Holds all the values which can be overwritten by AffectedResults (Values before modification)
66
+ * ProductAttributes Set of product/orderItem attributes available in the pricing engine by default.
67
+ *
68
+ * RETURNS: AffectedResults Holds the modified currentCalculationBase, currentCalculationResult, currentConditionValue and currentTotal.
69
+ * {
70
+ * "currentCalculationBase": <changed calculation base>,
71
+ * "currentCalculationResult": <changed calculation result>
72
+ * "currentConditionValue": <changed condition value>
73
+ * "currentTotal": <changed total>
74
+ * }
75
+ * NOTE: Both values are optional. If you only change cBase no need to add scaleBase to the JSON object vice versa
76
+ *
77
+ * DESCRIPTION AND EXAMPLE:
78
+ * This user exit type can be used to manipulate the inputs used for the calculation and the calculation result itself.
79
+ *
80
+ * NOTE:
81
+ * Theoretically it is possible to manipulate only the calculation result without manipulating the inputs. Best practice is to change the inputs and the results so that output of the user exit is a reasonable calculation. * If that is not done logfile and the pricing monitoring tool will show calculations which are not reasonable and which will lead to confusion of the reviewer.
82
+ *
83
+ * e.g. if you modify the base price result from:
84
+ * 10 (quantity) x 1.99 (condition value) = 19.90 (condition result)
85
+ * to a condition result of 29.90 then you should also change the condition value to 29.99 / 10:
86
+ * 10 (quantity) x 2.99 (condition value) = 29.90 (condition result)
87
+ */
88
+
89
+ ///////////////////////////////////////////////////////////////////////////////////////////////
90
+ // //
91
+ // Add your customizing javaScript code above. //
92
+ // //
93
+ ///////////////////////////////////////////////////////////////////////////////////////////////
94
+
95
+ return AffectedResults;
96
+ }
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ ///////////////////////////////////////////////////////////////////////////////////////////////
4
+ // IMPORTANT - DO NOT MODIFY AUTO-GENERATED CODE OR COMMENTS //
5
+ //Parts of this file are auto-generated and modifications to those sections will be //
6
+ //overwritten. You are allowed to modify: //
7
+ // - the tags in the jsDoc as described in the corresponding section //
8
+ // - the function name and its parameters //
9
+ // - the function body between the insertion ranges //
10
+ // "Add your customizing javaScript code below / above" //
11
+ // //
12
+ // NOTE: //
13
+ // - If you have created PRE and POST functions, they will be executed in the same order //
14
+ // as before. //
15
+ // - If you have created a REPLACE to override core function, only the REPLACE function will //
16
+ // be executed. PRE and POST functions will be executed in the same order as before. //
17
+ // //
18
+ // - For new customizations, you can directly modify this file. There is no need to use the //
19
+ // PRE, POST, and REPLACE functions. //
20
+ // //
21
+ ///////////////////////////////////////////////////////////////////////////////////////////////
22
+
23
+ /**
24
+ * Use the following jsDoc tags to describe the BL function. Setting these tags will
25
+ * change the runtime behavior in the mobile app. The values specified in the tags determine
26
+ * the name of the contract file. The filename format is “@this . @function .bl.js”.
27
+ * For example, LoVisit.BeforeLoadAsync.bl.js
28
+ * -> function: Name of the businessLogic function.
29
+ * -> this: The LO, BO, or LU object that this function belongs to (and it is part of the filename).
30
+ * -> kind: Type of object this function belongs to. Most common value is "businessobject".
31
+ * -> async: If declared as async then the function should return a promise.
32
+ * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
33
+ * -> module: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
34
+ * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
35
+ * -> returns: Type and variable name in which the return value is stored.
36
+ * @function UserExitAffectCurrentConditionBase
37
+ * @this ComplexPricingEngine
38
+ * @kind plugin
39
+ * @namespace CUSTOM
40
+ * @param {Object} OrderAttributes
41
+ * @param {Object} UserExitId
42
+ * @param {Object} CurrentCalcStepAttributes
43
+ * @param {Object} VariantAttributes
44
+ * @param {Object} ModifiedBase
45
+ * @param {Object} CurrentTotal
46
+ * @param {Object} ProductAttributes
47
+ * @returns ModifiedBases
48
+ */
49
+ function UserExitAffectCurrentConditionBase(OrderAttributes, UserExitId, CurrentCalcStepAttributes, VariantAttributes, ModifiedBase, CurrentTotal, ProductAttributes){
50
+ var me = this;
51
+ ///////////////////////////////////////////////////////////////////////////////////////////////
52
+ // //
53
+ // Add your customizing javaScript code below. //
54
+ // //
55
+ ///////////////////////////////////////////////////////////////////////////////////////////////
56
+
57
+ /**
58
+ * Use the UserExitAffectCurrentConditionBase user exit to change the calculation base and the scale base (if step is a scaled step) of the current calculation step.
59
+ * Returns: Object ModifiedBases, which contain the affected calculation base and the affected scale base.
60
+ *
61
+ * PARAMETER DESCRIPTION
62
+ * OrderAttributes Set of order attributes available in the pricing engine by default.
63
+ * UserExitId Id/Name of the user exit. The user exit must have code which holds the algorithm for this ID. Typically a “switch case” statement is used to handle in each case block a different ID.
64
+ * CurrentCalcStepAttributes List of calculation step attributes.
65
+ * VariantAttributes Obsolete … can be ignored because the variant attributes are now part of the ProductAttributes parameter. Just still in because of backward compatibility
66
+ * ModifiedBase Base values of the condition. cBase is the condition base and scale base is the value used to evaluate the scales.
67
+ * CurrentTotal Current Total is the current value of the position.
68
+ * e.g. if it is an order item the current total is changing after each calculation step which found a condition and is granting discounts or surcharges.
69
+ * ProductAttributes Set of product/orderItem attributes available in the pricing engine by default.
70
+ *
71
+ * RETURNS: ModifiedBases Holds the modified cBase and scaleBase values.
72
+ * {
73
+ * "cBase":<changed condition base>,
74
+ * "scaleBase": <changed scale base>
75
+ * }
76
+ * NOTE: Both values are optional. If you only change cBase no need to add scaleBase to the JSON object vice versa
77
+ *
78
+ * DESCRIPTION AND EXAMPLE:
79
+ * This user exit type can be used to manipulate the condition base used for calculation. Depending on the condition type the base can be quantity or value:
80
+ *
81
+ * Example Price Calculation (Base is Quantity):
82
+ * Result = Quantity x Found Condition value
83
+ * → In this scenario the so called condition base is the Quantity
84
+ *
85
+ * Example Percentage Discounts (Base is reference value):
86
+ * Result = Total value of the order item - (Percentage value based on reference value)
87
+ * - For example you have a order item value after base price calculation which is 200 $
88
+ * - Then there are several steps which add surcharges to the order items which result in 210 $
89
+ * - Then the percentage discount calculation step is executed with 10 Percent of but “based” on the price without surcharges
90
+ * In this case the reference value to calculate the 10 percent off is 200 $ and not 210 $
91
+ * The “condition base” is 200 $ → Result = 200 $ x 0.10 % = 20 $
92
+ *
93
+ * NOTE: Manipulating the condition base has impact to the calculation result
94
+ */
95
+
96
+ ///////////////////////////////////////////////////////////////////////////////////////////////
97
+ // //
98
+ // Add your customizing javaScript code above. //
99
+ // //
100
+ ///////////////////////////////////////////////////////////////////////////////////////////////
101
+
102
+ return ModifiedBases;
103
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ ///////////////////////////////////////////////////////////////////////////////////////////////
4
+ // IMPORTANT - DO NOT MODIFY AUTO-GENERATED CODE OR COMMENTS //
5
+ //Parts of this file are auto-generated and modifications to those sections will be //
6
+ //overwritten. You are allowed to modify: //
7
+ // - the tags in the jsDoc as described in the corresponding section //
8
+ // - the function name and its parameters //
9
+ // - the function body between the insertion ranges //
10
+ // "Add your customizing javaScript code below / above" //
11
+ // //
12
+ // NOTE: //
13
+ // - If you have created PRE and POST functions, they will be executed in the same order //
14
+ // as before. //
15
+ // - If you have created a REPLACE to override core function, only the REPLACE function will //
16
+ // be executed. PRE and POST functions will be executed in the same order as before. //
17
+ // //
18
+ // - For new customizations, you can directly modify this file. There is no need to use the //
19
+ // PRE, POST, and REPLACE functions. //
20
+ // //
21
+ ///////////////////////////////////////////////////////////////////////////////////////////////
22
+
23
+ /**
24
+ * Use the following jsDoc tags to describe the BL function. Setting these tags will
25
+ * change the runtime behavior in the mobile app. The values specified in the tags determine
26
+ * the name of the contract file. The filename format is “@this . @function .bl.js”.
27
+ * For example, LoVisit.BeforeLoadAsync.bl.js
28
+ * -> function: Name of the businessLogic function.
29
+ * -> this: The LO, BO, or LU object that this function belongs to (and it is part of the filename).
30
+ * -> kind: Type of object this function belongs to. Most common value is "businessobject".
31
+ * -> async: If declared as async then the function should return a promise.
32
+ * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
33
+ * -> module: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
34
+ * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
35
+ * -> returns: Type and variable name in which the return value is stored.
36
+ * @function UserExitSkipCurrentCalcStep
37
+ * @this ComplexPricingEngine
38
+ * @kind plugin
39
+ * @namespace CUSTOM
40
+ * @param {Object} OrderAttributes
41
+ * @param {Object} UserExitId
42
+ * @param {Object} VariantAttributes
43
+ * @param {Object} ProductAttributes
44
+ * @returns SkipCalcStep
45
+ */
46
+ function UserExitSkipCurrentCalcStep(OrderAttributes, UserExitId, VariantAttributes, ProductAttributes){
47
+ var me = this;
48
+ ///////////////////////////////////////////////////////////////////////////////////////////////
49
+ // //
50
+ // Add your customizing javaScript code below. //
51
+ // //
52
+ ///////////////////////////////////////////////////////////////////////////////////////////////
53
+
54
+ /**
55
+ * Use the UserExitSkipCurrentCalcStep user exit to skip a complete calculation step (for a single product if it’s a product-based step).
56
+ * Returns: Boolean value SkipCalcStep. Specifies whether to skip the step.
57
+ *
58
+ * PARAMETER DESCRIPTION
59
+ * OrderAttributes Set of order attributes available in the pricing engine by default.
60
+ * UserExitId Id/Name of the user exit. The user exit must have code which holds the algorithm for this ID. Typically a “switch case” statement is used to handle in each case block a different ID.
61
+ * CurrentCalcStepAttributes List of calculation step attributes.
62
+ * VariantAttributes Obsolete … can be ignored because the variant attributes are now part of the ProductAttributes parameter. Just still in because of backward compatibility
63
+ * ProductAttributes Set of product/orderItem attributes available in the pricing engine by default.
64
+ *
65
+ * RETURNS: SkipCalcStep Boolean (true/false)
66
+ * If true then the calculation step is skipped.
67
+ * If false then the calculation step is executed
68
+ */
69
+
70
+ ///////////////////////////////////////////////////////////////////////////////////////////////
71
+ // //
72
+ // Add your customizing javaScript code above. //
73
+ // //
74
+ ///////////////////////////////////////////////////////////////////////////////////////////////
75
+
76
+ return SkipCalcStep;
77
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ ///////////////////////////////////////////////////////////////////////////////////////////////
4
+ // IMPORTANT - DO NOT MODIFY AUTO-GENERATED CODE OR COMMENTS //
5
+ //Parts of this file are auto-generated and modifications to those sections will be //
6
+ //overwritten. You are allowed to modify: //
7
+ // - the tags in the jsDoc as described in the corresponding section //
8
+ // - the function name and its parameters //
9
+ // - the function body between the insertion ranges //
10
+ // "Add your customizing javaScript code below / above" //
11
+ // //
12
+ // NOTE: //
13
+ // - If you have created PRE and POST functions, they will be executed in the same order //
14
+ // as before. //
15
+ // - If you have created a REPLACE to override core function, only the REPLACE function will //
16
+ // be executed. PRE and POST functions will be executed in the same order as before. //
17
+ // //
18
+ // - For new customizations, you can directly modify this file. There is no need to use the //
19
+ // PRE, POST, and REPLACE functions. //
20
+ // //
21
+ ///////////////////////////////////////////////////////////////////////////////////////////////
22
+
23
+ /**
24
+ * Use the following jsDoc tags to describe the BL function. Setting these tags will
25
+ * change the runtime behavior in the mobile app. The values specified in the tags determine
26
+ * the name of the contract file. The filename format is “@this . @function .bl.js”.
27
+ * For example, LoVisit.BeforeLoadAsync.bl.js
28
+ * -> function: Name of the businessLogic function.
29
+ * -> this: The LO, BO, or LU object that this function belongs to (and it is part of the filename).
30
+ * -> kind: Type of object this function belongs to. Most common value is "businessobject".
31
+ * -> async: If declared as async then the function should return a promise.
32
+ * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
33
+ * -> module: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
34
+ * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
35
+ * -> returns: Type and variable name in which the return value is stored.
36
+ * @function UserExitSkipCurrentSearchStrategyStep
37
+ * @this ComplexPricingEngine
38
+ * @kind plugin
39
+ * @namespace CUSTOM
40
+ * @param {Object} OrderAttributes
41
+ * @param {Object} UserExitId
42
+ * @param {Object} VariantAttributes
43
+ * @param {Object} ProductAttributes
44
+ * @returns SkipSearchStep
45
+ */
46
+ function UserExitSkipCurrentSearchStrategyStep(OrderAttributes, UserExitId, VariantAttributes, ProductAttributes){
47
+ var me = this;
48
+ ///////////////////////////////////////////////////////////////////////////////////////////////
49
+ // //
50
+ // Add your customizing javaScript code below. //
51
+ // //
52
+ ///////////////////////////////////////////////////////////////////////////////////////////////
53
+
54
+ /**
55
+ * Use the UserExitSkipCurrentSearchStrategyStep user exit to skip one step in a search strategy.
56
+ * This user exit type can be used to skip a search step used in a search strategy. If the search step is skipped the system does not execute the condition search for this search step and proceeds with the next search step.
57
+ * Returns: Boolean value SkipSearchStep. Specifies whether to skip the current search strategy.
58
+ *
59
+ * PARAMETER DESCRIPTION
60
+ * OrderAttributes Set of order attributes available in the pricing engine by default.
61
+ * UserExitId Id/Name of the user exit. The user exit must have code which holds the algorithm for this ID. Typically a “switch case” statement is used to handle in each case block a different ID.
62
+ * VariantAttributes Obsolete … can be ignored because the variant attributes are now part of the ProductAttributes parameter. Just still in because of backward compatibility
63
+ * ProductAttributes Set of product/orderItem attributes available in the pricing engine by default.
64
+ *
65
+ * RETURNS: SkipSearchStep Boolean (true/false)
66
+ * If true then the calculation step is skipped.
67
+ * If false then the calculation step is executed
68
+ */
69
+
70
+
71
+ ///////////////////////////////////////////////////////////////////////////////////////////////
72
+ // //
73
+ // Add your customizing javaScript code above. //
74
+ // //
75
+ ///////////////////////////////////////////////////////////////////////////////////////////////
76
+
77
+ return SkipSearchStep;
78
+ }
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *
@@ -22,7 +22,6 @@
22
22
  * -> async: If declared as async then the function should return a promise.
23
23
  * -> param: List of parameters the function accepts. Make sure the parameters match the function signature.
24
24
  * -> namespace: Use CORE or CUSTOM. If you are a Salesforce client or an implementation partner, always use CUSTOM to enable a seamless release upgrade.
25
-
26
25
  * -> maxRuntime: Maximum time this function is allowed to run, takes integer value in ms. If the max time is exceeded, error is logged.
27
26
  * -> returns: Type and variable name in which the return value is stored.
28
27
  *