Спецификации дочернего заказа на работу не сохраняются

Я пытаюсь сохранить значения спецификации дочернего заказа на работу, и это не работает должным образом. Вот чего я пытался достичь.

Я получаю список родительских и дочерних заказов вместе, чтобы поддерживать плоскую структуру и фильтровать родительские заказы, которые будут отображаться в представлении «Мой назначенный заказ», например. Ниже приведены рабочие задания, назначенные конкретному пользователю для определенного сайта. родительский WO - 1000 имеет дочерний wos - 1001, 1002, 1003 родительский WO - 2000 имеет дочерний wos - 2001, 2002

  1. Представление «Назначенные заказы на работу» показывает только заказы на 1000 и 2000 работ.
  2. После того, как вы выберете заказ на работу, он отобразит детали заказа на работу и список дочерних заказов.
  3. На экране сведений о рабочем задании есть вкладка, такая же, как вложение, задачи или рабочие журналы.
  4. Таким образом, поток выбирает родительский WO -> Открывает представление сведений о рабочем задании -> Щелкните вкладку «Дочерние WO» -> отображает список дочерних WO, например. выберите 1000 -> нажмите на вкладку Child WO -> отображает 1001, 1002, 1003
  5. Выберите дочерний WO, и он отобразит его атрибуты спецификации один за другим.
  6. Введите значение атрибутов спецификации, а затем вернитесь назад (переход к экрану списка дочерних заказов -> возврат (переход к экрану сведений о рабочем задании) -> возврат назад (переход к представлению «Мои назначенные заказы»).
  7. Вот в чем проблема. Выберите родительский ЗН, а затем Дочерний ЗН, все спецификации дочернего заказа на работу будут потеряны.
  8. В файле js я получаю рабочий заказ и ресурс workorderSpec.

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"); возвращает значение null, даже если var workOrder содержит правильную информацию о заказе на работу.

Дайте мне знать, если у вас есть путаница вокруг сценария. Буду признателен за любую оказанную помощь.


person Sakshi Joshi    schedule 01.06.2017    source источник


Ответы (1)


Я сделал аналогичную вещь. В структуру объекта я добавил новое представление рабочего заказа (WOCHIILDREN) и изменил отношение workorderspec, чтобы включить все спецификации из WorkOrder и спецификации дочерних элементов. Вы должны знать, что после загрузки спецификаций на свой мобильный телефон эта связь теряется (все спецификации по-прежнему ссылаются на исходное рабочее задание).

Затем я использовал eventContext.ui.viewHistory, чтобы определить, где я находился в приложении. Затем решите, нужна ли мне текущая запись workorderResource currentRecord или wochildrenResource. И получить идентификатор из этой записи.

Теперь вам нужно использовать этот идентификатор (workorderid) для фильтрации списка спецификаций заказов.

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

Проблема с этим подходом заключается в том, что фильтрация ресурса изменяет состояние этого набора. Это означает, что все несохраненные изменения будут потеряны. Поэтому я добавил дополнительную проверку, чтобы увидеть, что набор был отфильтрован и грязный (т.е. изменен), и если это так, сохранить набор.

person Jeroen    schedule 17.07.2017