StatusChangeHandler.commitWOStatusChange 的自定义 mixin 最佳实践
Customization mixin Best Practice for StatusChangeHandler.commitWOStatusChange
我尝试了此处发布的最佳实践:https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/best_practices_for_customizing_maximo_anywhere_javascript?lang=en
用于自定义 StatusChangeHandler.commitWOStatusChange 函数。
按照描述复制原始函数:
var originalCommitWOStatusChange = StatusChangeHandler.commitWOStatusChange
然后想这样使用它:
commitWOSTatusChange: function(eventContext) {
if(conditionsAreFalse) {
Message to User to Fix Conditions;
}
else {
originalCommitWOStatusChange(eventContext);
}
基本上我想确保允许他们根据自定义条件执行状态更改(以工作日志为例)。
然而,当框架命中我的代码时,它会立即执行原始功能,而不会测试我的条件。似乎存储函数的变量导致它 运行 并忽略我的代码的其余部分。
我这样做的方式是否正确,或者我们是否需要遵循不同的流程来控制更改状态的运行?
如果我删除变量,我可以让它命中我的代码,但在这引发错误后直接调用原始函数。
谢谢
比尔
我们的应用程序处理程序是 Dojo "declare" classes,因此必须以不同于其他 Javascript 文件的方式覆盖它们。
下面是一个覆盖现有 StatusChangeHandler.js 方法的示例 class。
define("application/handlers/ExtendedStatusChangeHandler",
[ "dojo/_base/declare",
"application/handlers/StatusChangeHandler",
],
function(declare, StatusChangeHandler) {
return declare( StatusChangeHandler, {
/**
* Commit changes to WO Status (handle OK button clicked)
* @function
* @param {string} eventContext - javascript variables context.
*/
commitWOStatusChange: function(eventContext){
if (true)
console.error("Custom WO Status Change");
else {
this.inherited(arguments);
}
},
});
});
您需要用此 ExtendedStatusChangeHandler 替换 app.xml 中对 StatusChangeHandler 的引用,以使其由应用加载。
我尝试了此处发布的最佳实践:https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/best_practices_for_customizing_maximo_anywhere_javascript?lang=en 用于自定义 StatusChangeHandler.commitWOStatusChange 函数。
按照描述复制原始函数:
var originalCommitWOStatusChange = StatusChangeHandler.commitWOStatusChange
然后想这样使用它:
commitWOSTatusChange: function(eventContext) {
if(conditionsAreFalse) {
Message to User to Fix Conditions;
}
else {
originalCommitWOStatusChange(eventContext);
}
基本上我想确保允许他们根据自定义条件执行状态更改(以工作日志为例)。
然而,当框架命中我的代码时,它会立即执行原始功能,而不会测试我的条件。似乎存储函数的变量导致它 运行 并忽略我的代码的其余部分。
我这样做的方式是否正确,或者我们是否需要遵循不同的流程来控制更改状态的运行?
如果我删除变量,我可以让它命中我的代码,但在这引发错误后直接调用原始函数。
谢谢
比尔
我们的应用程序处理程序是 Dojo "declare" classes,因此必须以不同于其他 Javascript 文件的方式覆盖它们。
下面是一个覆盖现有 StatusChangeHandler.js 方法的示例 class。
define("application/handlers/ExtendedStatusChangeHandler",
[ "dojo/_base/declare",
"application/handlers/StatusChangeHandler",
],
function(declare, StatusChangeHandler) {
return declare( StatusChangeHandler, {
/**
* Commit changes to WO Status (handle OK button clicked)
* @function
* @param {string} eventContext - javascript variables context.
*/
commitWOStatusChange: function(eventContext){
if (true)
console.error("Custom WO Status Change");
else {
this.inherited(arguments);
}
},
});
});
您需要用此 ExtendedStatusChangeHandler 替换 app.xml 中对 StatusChangeHandler 的引用,以使其由应用加载。