2014-11-24 1 views
1

Я хочу создать какой-то процесс по требованию в Dynamics CRM 2013, который будет работать на нескольких записях того же типа. Процесс создаст равное количество записей другого типа, и все они будут относиться к одной и той же родительской записи. Я могу представить, как рабочий процесс будет использоваться для создания новых дочерних записей, но я не уверен, как создать родительскую запись и связать ее с дочерними записями.Как запустить процесс по нескольким записям?

+0

Какова цель создания записи? ЕСЛИ вы пытаетесь создать отчет, вы можете создать вместо него загрузку XML/CSV? – indofraiser

+0

Идея состоит в том, что существующие записи - это службы (настраиваемые, а не встроенные объекты службы), и этот процесс преобразует каждую выбранную службу в экземпляр позиции рабочего заказа. Родительская запись будет общим рабочим заказом. – tlee

+0

Чтобы уточнить, вы хотите запустить рабочий процесс для выбранных служб, и для каждой службы он создаст рабочий заказ, связанный со многими элементами заказа на работу, затем установите службу в качестве родителя для заказа на работу? – Zach

ответ

2

Если вы работаете с несколькими записями, то я предполагаю, что вы начинаете с какого-либо вида сетки. Если это так, то решение легко.Просто создайте настраиваемую ленточную кнопку, которая принимает выбранные записи в качестве параметра и запускает собственный javascript. Это поможет вам в элегантном решении.

Поскольку у него работает javascript, у вас будет полный контроль, чтобы иметь возможность делать все, что вам нужно. Одна из особенностей кнопок ленты - они могут принимать выбранные записи в параметре в виде массива.
Но если вы не хотите выполнять всю работу в javascript, вы можете передать сценарий параметрам в собственный рабочий процесс или действие.

Как уже упоминалось, рабочий процесс не сможет сделать это один, поскольку он может работать только на одной записи и не может принимать несколько записей в качестве входного параметра.

0

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

  1. Если он не существует, создать поле в вашей организации службы (Позиционный Work Order) называется new_MasterWorkOrder (или нечто подобное), которая ссылка на Основной рабочий заказ объект.
  2. Создайте свою основную запись - это будет ваш Общий рабочий заказ.
  3. От вашего Номер заказа на обслуживание запись записи запись, выберите все элементы, которые вы хотите добавить в Мастерский рабочий заказ запись создана на предыдущем шаге. В качестве альтернативы вы можете использовать расширенный поиск для поиска целевых записей.
  4. Нажмите кнопку «Редактировать», чтобы начать редактирование формы CRM/записи с несколькими записями.
  5. В поле new_MasterWorkOrder выберите Общий рабочий заказ ранее созданный.
  6. Сохранить.

Когда процесс завершен, все работы на заказ предметов выбранных теперь будет связан с вашим Общий Порядок работы.

Это звучит, как вы, возможно, необходимо шаг до этого, чтобы создать пункт Порядок работы от выбранных Service лиц. Вы должны сделать это легко, выполнив рабочий процесс, который запускает в качестве объекта Service как параметр и создает из него номер заказа. После того, как вы построили эти вы можете связать их с общий рабочий заказ, используя вышеприведенный процесс.

1

Jason Я думаю, что здесь нужно автоматизировать процесс. Ли, вы правы в своей оценке, что создание рабочего порядка с шагом рабочего процесса легко сделать, создавая элементы заказа на работу с детьми, либо сложно, либо невозможно. Даже если вам удалось взломать это вместе с несколькими рабочими процессами, вызванными различными событиями во время процесса, конечным результатом будет кошмар UX/maintenance.

Самое простое и лучшее решение - иметь кусок логики плагина, который вы запускаете с помощью рабочего процесса. Этот код плагина создаст новый порядок работы и связанные с ним элементы заказа на работу в зависимости от контекста службы, с которой выполняется рабочий процесс. Если вы хотите, чтобы это действие было инициировано операцией базы данных вместо ручного запуска, это было бы просто сделать.