Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Статус
titleЧЕРНОВИК

...

панель

На этой странице:

Оглавление

Описание

Обработка клиентских сценариев для универсальных объектов с контент типом application/json.  

Настраиваемые действия передаются как НР-действия (view.type=action) c actionType=script.  Настраиваемые действия для универсальных объектов с контент типом application/json. Для остальных типов прикладных объектов СМ, например, РКК, применяется настройка произвольной операции (п.7. по ссылке Инструкция по использованию универсального объекта с типом TUNABLE_OBJECT в разработке функционала CMJ.). 

Перечень команд: 

...

Алиас действия

(поле script)

...

Краткое название

действия

...

createForm

...

Получение заготовки нового объекта

Один из вариантов:

1) коллекция без выделенного документа,

2) один или более выделенных документов в коллекции

3) документ, открытый в режиме чтения, редактирования

...

  1. В элементе link ресурса "Действие" (см. описание ресурса "Действие" по ссылке 07. Кастомизированные кнопки на панели действий) клиент находит ссылку с rel=http://intertrust.ru/cmj/relations#createForm.

  2. Если контекстный документ открыт в режиме редактирования и признак saveContextObject=true или признак не передан, то клиент сохраняет контекстный объект по алгоритму savePost (savePut) в зависимости от признака new ресурса (если new=true, то savePost, иначе savePut). Если сервер не выполнит сохранение, то и  операция прекращается. Далее клиент для получения заготовки объекта выполняет Get запрос на ссылку rel=http://intertrust.ru/cmj/relations#createForm. Дальнейшие действия клиента в зависимости от ответа сервера:

    1. Сервер присылает ресурс, схема которого содержит ссылку на форму+ элемент mode<>"dialog" или отсутствует.

      Действие клиента: клиент отображает объект в режиме редактирования на весь экран. Сценарий завершен.

    2. Сервер присылает ресурс, схема которого содержит ссылку на форму+ элемент mode="dialog" .

      Действие клиента: клиент отображает диалог. Ресурс диалога клиент получает из ответа сервера. В урл формы передается значение mode="dialog". Далее клиент работает со стандартным НР-диалогом.

    3. Сервер присылает ресурс, схема которого НЕ содержит ссылку на форму.

      Действие клиента: клиент выполняет Post запрос на ссылку с rel=http://intertrust.ru/cmj/relations#createForm, в тело запроса передает данные в соответствие с правилом по ссылке Передача параметров операции (выделенные документы, диалог) с клиента на сервер.  

  3. При нажатии на кнопку submit в диалоге клиент отправляет post запрос на ссылку rel=http://intertrust.ru/cmj/relations#createForm. В тело запроса передает ресурс диалога + данные клиентского контекста в соответствии с правилом по ссылке Передача параметров операции (выделенные документы, диалог) с клиента на сервер.  Дальнейшие действия клиента в зависимости от ответа сервера (см. п.2).

...

Один из вариантов:

1) один выделенный документ в коллекции

2) документ, открытый в режиме чтения, редактирования

...

Обработка такая же, как и для View.action=createForm, но в п .2.а) добавляются действия (подобные действия с формой copy уже реализованы в клиенте):

    1. Клиент запрашивает форму для mode="сopy".

      1. Если сервер не возвращает форму, то клиент завершает сценарий без выдачи сообщения об ошибке.
    2. Клиент копирует поля из контекстного документа в новый в соответствии с полученной формой. Сценарий завершен.

...

Один из вариантов:

1) один выделенный документ в коллекции

2) документ, открытый в режиме чтения или редактирования

...

Правило выделения документов в коллекции:

Выделенным считается только документ в фокусе (не галка).

...

Один из вариантов:

1) один выделенный документ в коллекции  

или

более выделенных документов в коллекции

2) документ, открытый в режиме чтения или редактирования

...

  1. В элементе link ресурса "Действие" клиент находит ссылку с rel= http://intertrust.ru/cmj/relations#operation.
  2. Если контекстный документ открыт в режиме редактирования и признак saveContextObject=true или признак не передан, то клиент сохраняет контекстный объект по алгоритму savePost (savePut) в зависимости от признака new ресурса (если new=true, то savePost, иначе savePut). Если сервер не выполнит сохранение, то и  операция прекращается.  Далее клиент отправляет Get запрос на ссылку с rel= http://intertrust.ru/cmj/relations#operation.
  3. Дальнейшие действия клиента в зависимости от ответа сервера:
    1. Сервер присылает ресурс, схема которого содержит ссылку на форму+ элемент mode="dialog".

      Действие клиента: клиент отображает диалог. Ресурс диалога клиент получает из ответа сервера. В урл формы передается значение mode="dialog". Далее клиент выполняет работает со стандартным НР-диалогом.

    2. Сервер присылает ресурс, схема которого НЕ содержит ссылку на форму.

      Действие клиента: клиент выполняет Post запрос на ссылку   с rel= http://intertrust.ru/cmj/relations#operation. В тело запроса передает данные в соответствие с правилом по ссылке Передача параметров операции (выделенные документы, диалог) с клиента на сервер. Дальнейшие действия клиента в зависимости от ответа сервера (см. п.3).

    3. Сервер не присылает ресурс (данный пустой ответ сервер присылает только на Post запросы данного сценария).

      Действие клиента: клиент переполучает коллекцию, если контекст - коллекция, закрывает окно объекта, если контекст - объект. Сценарий завершен.

    4. Сервер присылает ресурс, схема которого содержит ссылку на форму+ элемент mode="read" или mode="edit". Если mode отсутствует, то считаем,что режим чтения.

      Действие клиента:

      Клиент отображает присланный ресурс с режиме, соответствующем значению mode. Если в присланном ресурсе реквизит closeContextObject=true, то перед отображением итогового ресурса клиент закрывает контекстный объект (закрытие контекстного объекта актуально только для случая, когда контекстом является открытий ресурс документа, т.е. не коллекция). Сценарий завершен.

    5. Сервер присылает ресурс результата поиска("application/vnd.intertrust.cm.search-wait-results+json").

      Действие клиента: клиент отображает присланный ресурс как результат простого/расширенного поиска.

    6. [M] Сервер присылает монитор ("application/vnd.intertrust.cm.processes.monitor+json").

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

  4. При нажатии на кнопку submit в диалоге клиент отправляет Post запрос на ссылку из ресурса диалога с rel=http://intertrust.ru/cmj/relations#operation. В тело запроса передает ресурс диалога+ данные клиентского контекста в соответствии с правилом по ссылке Передача параметров операции (выделенные документы, диалог) с клиента на сервер.    Дальнейшие действия клиента в зависимости от ответа сервера (см. п.3).

...

В ресурсе контекстного документа клиент находит ссылку с rel= edit.

...

Клиент отправляет post запрос на ссылку с rel= edit. В тело запроса передает ресурс. В данном случае клиент выполняет стандартную операцию сохранения ресурса, при которой в ресурс передаются вложения.

  1. Если в ответ на post сервер присылает ресурс, в котором элемент mode<>"dialog" или отсутствует, то клиент отображает ресурс по ссылке self, которая приходит в ответе. Клиент открывает ресурс в режиме чтения на весь экран. Сценарий завершен.

  2. Если в ответ на post сервер присылает ресурс, в котором элемент mode="dialog",  то клиент отображает диалог. Ресурс диалога клиент получает из ответа сервера. В урл формы передается значение mode=dialog. Далее клиент выполняет работает со стандартным НР-диалогом.

При нажатии на кнопку submit в диалоге клиент отправляет post запрос на ссылку c rel= edit. ,   В тело запроса передает основной ресурс+ данные клиентского контекста в соответствии с правилом по ссылке Передача параметров операции (выделенные документы, диалог) с клиента на сервер.  В данном случае клиент выполняет стандартную операцию сохранения ресурса, при которой в ресурс передаются вложения.

      1. Далее действия клиента такие же как в п. 2a, b.

...

  1. В ресурсе контекстного документа клиент находит ссылку с rel= edit.

  2. Клиент отправляет put запрос на ссылку с rel= edit. В тело запроса передает ресурс. В данном случае клиент выполняет стандартную операцию сохранения ресурса, при которой в ресурс передаются вложения.

    1. Если в ответ на put сервер присылает ресурс, в котором элемент mode<>"dialog" или отсутствует, то клиент отображает ресурс по ссылке self, которая приходит в ответе. Клиент открывает ресурс в режиме чтения на весь экран. Сценарий завершен.

    2. Если в ответ на put сервер присылает ресурс, в котором элемент mode="dialog", то клиент отображает диалог.Ресурс диалога клиент получает из ответа сервера. В урл формы передается значение mode=dialog. Далее клиент выполняет работает со стандартным НР-диалогом.

  3. При нажатии на кнопку submit в диалоге клиент отправляет put запрос на ссылку c rel= edit. , В тело запроса передает основной ресурс+ данные клиентского контекста в соответствии с правилом по ссылке Передача параметров операции (выделенные документы, диалог) с клиента на сервер.  

        1. Далее действия клиента такие же как в п. 2a, b.

...

Модификация без сохранения документа с использованием recalc

(см. 03. Вызов операций через recalс)

...

  1. В элементе link ресурса "Действие" (см. описание ресурса "Действие" по ссылке 07. Кастомизированные кнопки на панели действий) клиент находит ссылку с rel= http://intertrust.ru/cmj/relations#param.
  2. Клиент запрашивает с сервера по ссылке с rel= http://intertrust.ru/cmj/relations#param ресурс параметров с полем mode=dialog.
  3.  В соответствии с мэппингом полей (по совпадению имен полей) клиент копирует значение полей из контекстного ресурса в ресурс параметров (03. Вызов операций, которые изменяют (без сохранения) поля документа, открытого в режиме редактирования через recalс).
  4. При наличии среди измененных полей ресурса параметров recalc-полей, выполняется recalc для ресурса параметров.
  5. Клиент отображает форму и редактирует ресурс параметров.
  6. При нажатии на кнопку submit в диалоге выполняется обратный мэппинг данных из ресурса параметров в контекстный ресурс. При наличии среди измененных полей контекстного ресурса recalc-полей, выполняется recalc для контекстного ресурса. В случае, когда измененных recalc полей более одного клиент передает в параметр changedField несколько полей.

...

Выбор документов через диалог "Добавлдение связи" без сохранения документа с использованием recalc

(см. 03. Вызов операций через recalс)

...

  1. В элементе link ресурса "Действие" (см. описание ресурса "Действие" по ссылке 07. Кастомизированные кнопки на панели действий) клиент находит ссылку с rel= http://intertrust.ru/cmj/relations#param.
  2. Клиент запрашивает с сервера по ссылке с rel= http://intertrust.ru/cmj/relations#param ресурс параметров.
  3. Клиент отображает диалог "добавления связей", но с учётом параметров переданных в ресурсе, для получения областей поиска и коллекций для выбора документа клиент использует ссылки которые пришли в поле link ресурса параметров, а не из точки входа. Ссылки берутся по тем же relation, что и при типовой операции добавления связей.
  4. При нажатии на кнопку "Выбрать" в диалоге клиент вкладывает данные из ресурса параметров в поле контекстного ресурса, которое было указано в ref в кнопке и, если в этом поле установлен признак recalcIfChanged= true, вызывает recalc с измененным этого поля.

...

1) Документ, выделенный в коллекции

2) Документ, открытый в режиме чтения

...

  1. Для документа из коллекции клиент считывает объект из node.
  2. Клиент ищет в линках документа ссылку с rel=edit.
  3. Если ссылка с rel=edit присутствует, то клиент выполняет полноэкранное открытие документа в режиме редактирования. Повторно считывать объект по ссылке rel=edit в этом пункте не нужно.
  4. Если ссылка с rel=edit отсутствует, то клиент выдает сообщение "Недостаточно прав для выполнения операции."

...

Правило выделения документов в коллекции:

Выделенным считается только документ в фокусе (не галка).

Для контекста " Документ, открытый в режиме чтения", если данное действие будет передано в меню, то со стороны сервера системная кнопка "Редактировать" должна быть скрыта. Скрытие системных кнопок задается признаком hidden для кнопки с соот. кодом из таблицы Таблица общесистемных действий меню.

...

Применяется в рамках асинхронных процессов.

  1. [M] в объекте "монитор", переданном от сервера, клиент находит поле command = showDialog
  2. клиент находит в поле link в мониторе ссылку с rel = http://intertrust.ru/cmj/relations#operation и запрашивает по ней ресурс с mode="dialog"(с типом application/json).
  3. по ссылке из ресурса клиент запрашивает схему и форму. Показывает пользователю диалог.
  4. При нажатии пользователем кнопки submit клиент отправляет на сервер POST-запрос по ссылке, взятой из ресурса с rel = http://intertrust.ru/cmj/relations#operation. В теле запроса передаётся заполненный ресурс
  5. [M] Сервер возвращает клиенту либо объект "монитор", либо новый ресурс с mode="dialog", который нужно показать в диалоге, в котором также должна быть ссылка с rel = http://intertrust.ru/cmj/relations#operation.

Применяется в рамках асинхронных процессов, не может быть привязан к НР-кнопке в ActionBar-e.

[M] Работа с мониторами асинхронных процессов.

...

Применяется в рамках асинхронных процессов.

...

Применяется в рамках асинхронных процессов, не может быть привязан к НР-кнопке в ActionBar-e.

[M] Работа с мониторами асинхронных процессов.

Если в диалоге требуется наличие нескольких кнопок submit, то НР-кнопки Submit должны быть привязаны к любому свойству с типом boolean. При нажатии на одну из кнопок submit клиент должен установить в поле, которое привязано к кнопке, значение true.

...

панель
Отображение дочерних