儿童工作单规范未保存

时间:2017-06-01 08:56:48

标签: maximo maximo-anywhere

我正在尝试保存子工作订单规范值,但它没有按预期工作。这就是我一直在努力实现的目标。

我正在检索父项和子项工作单的列表,以便维护平面结构并过滤要在My Assigned Workorder视图上显示的父工作程序 例如以下是分配给特定用户的特定用户的工作人员。 父母WO - 1000有孩子wos - 1001,1002,1003 父母WO - 2000有孩子wos - 2001年,2002年

  1. 已分配的工作人员视图仅显示1000和2000工作单。
  2. 选择工作订单后,它会显示工作订单详细信息和Child WO列表。
  3. workorder detial屏幕上有一个与Attachment或Tasks或WorkLogs相同的选项卡
  4. 因此流程选择父WO - >打开工作单详细信息视图 - >点击Child WOs标签 - >显示子WO列表 例如选择1000 - >点击Child WO标签 - >显示1001,1002,1003
  5. 选择子WO并逐一显示其规范属性
  6. 输入规格属性的值,然后返回(带您进入Child WO列表屏幕 - >返回(带您到工作订单详细信息屏幕) - >返回(带您进入My Assigned WOrkorders视图)
  7. 问题出现了。选择父WO,然后选择Child WO,所有子工单都会丢失。
  8. 在js文件中,我正在检索workorder和workorderSpec资源
  9. initialize: function (eventContext) {
        			
    		var workOrder = eventContext.application.getResource('workOrder').getCurrentRecord();
    		
    		var identifier = workOrder.get('identifier');
    				
    		var workorderSpecs = eventContext.application.getResource("workOrder.workOrderSpec");
       }

    令人惊讶的是,此代码首次正常运行。但第二次 eventContext.application.getResource( “workOrder.workOrderSpec”);即使var workOrder保存正确的工作订单信息,也会返回null。

    如果你对这个场景感到困惑,请告诉我。 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我做了类似的事情。在对象结构中,我添加了关于工作订单的新视图(WOCHILDREN),并且我已经改变了workorderspec关系,以包括WorkOrder中的所有规范和子项下的规范。您应该知道,在将规格下载到您的手机后,此关系将丢失(所有规格仍然引用原始工单)。

然后我使用eventContext.ui.viewHistory来确定我在应用程序中的位置。然后决定我是否需要workorderResource currentRecord或wochildrenResource当前记录。并从该记录中获取标识符。

现在您需要使用该标识符(workorderid)来过滤工作程序规范列表。

var specs = eventContext.application.getResource('workOrder.workOrderSpec');
specs.filter("refobjectid = $1", workorderid);

此方法的问题是过滤资源会更改该集的状态。这意味着任何未保存的更改都将丢失。因此,我添加了一个额外的检查,以查看一组过滤和脏(即更改),如果是这样,保存集。