none
Задать поле ID в элементе другого списка. RRS feed

  • Вопрос

  • Есть три списка. 1-й список заявок, 2 и 3й списки - списки задач.

    После создания элемента списка, создаются задача в список 1.. После проставления статусов в списке задач 1, создается задача в списке 2.

    Статусы обновляются через РП обновление элемента списка. Обновляется через ID. Если в случае создания задачи для списка задач 1 все хорошо, то вот со вторым списком могут быть проблемы.

    Например. Создается три заявки. Сотрдуники отдела, в списке задач 1 сначала принимают в работу 3 заявки. И третья завка решается быстрее чем 1 и 2. Соответственно создается задача в списке задач 2, и после этого ID заявки уже другой, и соответственно статус, который проставляется в СЗ 2, обновится не у того элемента списка. Как можно обойти это решение?

    6 октября 2015 г. 8:21

Ответы

  • Спасибо. Обязательно сейчас прочитаю. Вот тогда вопрос, если сделать поле №заявки, то Как его можно передать в задачу?

    Ваша подзадача - это правильно вернуться по цепочке задач к первоначальной, следовательно вам нужен идентификатор - Номер заявки. Чтобы проставить этот идентификатор, вам нужно как-то идентифицировать созданные элементы в списках 1 и 2.

    Делаем:

    1. Создается элемент в списке (нулевой у вас). Генерируем номер заявки и проставляем.

    2. Создаем задачу в списке 1, при этом проставляем ей название = номеру нашей заявки. Находим наш созданный элемент по названию (при создании нам ID не известен и можно сделать такой фокус с названием). Проставляем в найденной задачи поле "Номер заявки" и заполняем поле "Название" правильным значением.

    3. При необходимости создать задачу в списке 2 поступаем аналогично.

    Что в итоге имеем: два идентификатора - список и номер заявки (считайте матрицу строка столбец, данные дополнят нам до куба), что позволяет нам при необходимости найти заявку в нужном нам списке по полю "Номер заявки". Если вы привяжитесь к ID, то вам нужно хранить 3 ID(по количеству списков), а так мы обойдемся одним дополнительным полем.

    ВАРИАНТ РЕШЕНИЯ НОМЕР 2:

    А почему бы не использовать действие "Скопировать элемент"???

    Получаем красивую работу. В списке заводится заявка, в РП проставляется "Номер заявки". При необходимости завести заявку в списке 1 - копируем элемент и получаем уже заполненные поля с исходными значениями. Находим элемент по полю "Номер заявки" и изменяем значения требуемых полей.

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

    Может коллеги дополнят.

    • Помечено в качестве ответа AndreySV 6 октября 2015 г. 12:49
    6 октября 2015 г. 9:41
  • Опять сам разобрался с проблемой. Сделал по другому. Сделал столбец префикс. В Рп задал переменную для префикса и ИД. И потом задать элемент [Текущий Элемент:Префикс][Текущий элемент:ИД].

    Единственное номер заявки К-1 и ИД по возрастанию

    7 октября 2015 г. 14:35

Все ответы

  • Добрый день,

    ни в коем случае нельзя привязывать к ID!

    Добавьте свое поле - номер заявки например и копируйте его в создаваемые элементы в других списках (можно обойтись и ID, но тогда нам нужно будет заводить поля для ID связанных элементов по количеству списков, а так обойдемся одним дополнительным полем).

    А вообще вы напутали с логикой.

    Учтите, что:

    1. ID элементов только нового списка начинается с 0.
    2. ID всегда только увеличивается.
    3. Начальный ID элементов разных списков может отличаться.
    4. ID удаленных элементов просто отсутствует.

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

    6 октября 2015 г. 8:39
  • Нашел почитать онлайн: ОСНОВЫ ПРОЕКТИРОВАНИЯ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ

    Посмотрите основные понятия, сущности, связи.

    6 октября 2015 г. 8:44
  • Спасибо. Обязательно сейчас прочитаю. Вот тогда вопрос, если сделать поле №заявки, то Как его можно передать в задачу?
    6 октября 2015 г. 9:13
  • Спасибо. Обязательно сейчас прочитаю. Вот тогда вопрос, если сделать поле №заявки, то Как его можно передать в задачу?

    Ваша подзадача - это правильно вернуться по цепочке задач к первоначальной, следовательно вам нужен идентификатор - Номер заявки. Чтобы проставить этот идентификатор, вам нужно как-то идентифицировать созданные элементы в списках 1 и 2.

    Делаем:

    1. Создается элемент в списке (нулевой у вас). Генерируем номер заявки и проставляем.

    2. Создаем задачу в списке 1, при этом проставляем ей название = номеру нашей заявки. Находим наш созданный элемент по названию (при создании нам ID не известен и можно сделать такой фокус с названием). Проставляем в найденной задачи поле "Номер заявки" и заполняем поле "Название" правильным значением.

    3. При необходимости создать задачу в списке 2 поступаем аналогично.

    Что в итоге имеем: два идентификатора - список и номер заявки (считайте матрицу строка столбец, данные дополнят нам до куба), что позволяет нам при необходимости найти заявку в нужном нам списке по полю "Номер заявки". Если вы привяжитесь к ID, то вам нужно хранить 3 ID(по количеству списков), а так мы обойдемся одним дополнительным полем.

    ВАРИАНТ РЕШЕНИЯ НОМЕР 2:

    А почему бы не использовать действие "Скопировать элемент"???

    Получаем красивую работу. В списке заводится заявка, в РП проставляется "Номер заявки". При необходимости завести заявку в списке 1 - копируем элемент и получаем уже заполненные поля с исходными значениями. Находим элемент по полю "Номер заявки" и изменяем значения требуемых полей.

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

    Может коллеги дополнят.

    • Помечено в качестве ответа AndreySV 6 октября 2015 г. 12:49
    6 октября 2015 г. 9:41
  • Да в Visio  уже сделал.  Второй вариант мне нравится.. А задача была изначально отнять права на редактирование заявки у Службы СБ и Андеррайтинга. Сделать им отдельные списки задач. И чтобы документы элемента списка заявок хранились в одном месте. Мне понравилось как в задачах сделано. Там есть связанный элемент, сотрудник открывает связанный элемент в режиме просмотра, смотрит документы. Я нашел тип контента связанный элемент. Можно ли его добавить в список при копировании элемента?

    6 октября 2015 г. 10:03
  • Ответил сам же на свой вопрос, можно просто добавить ссылку на заявку в список. Сейчас посмотрел вот это видео http://www.youtube.com/watch?v=roXmA7vMl-M по автоматизации заявок. В принципе теперь у меня каши в голове нет.
    6 октября 2015 г. 12:49
  • Максим, есть еще вопрос по поводу генерации номера заявки. Как лучше сделать?  У меня в голове такая мысль. Есть ID элемента, копировать его в столбец NewID, создать столбец Prefix, и столбец НомерЗаявки тип вычисляемый, чтобы совмещался префикс + 1, и получалось что-то типа КЗ-0, КЗ-1 и т.д.

    При создании элемента создается номер заявки и подставляется в поле. Или есть более простое решение?

    7 октября 2015 г. 9:12
  • Все верно, РП на создание элементов. Другой путь - через ресиверы, но это уже кодом.
    7 октября 2015 г. 9:21
  • Сделал так.

    В списке заявки создал столбецы, Prefix (однострочный текст, значение по умолчанию КЗ-), NewID (тип число), RequestNumber (тип вычисляемый - формула =Prefix&ЕСЛИ(NewID<10;"0000";ЕСЛИ(NewID<100;"000";ЕСЛИ(NewID<1000;"00";)))&NewID)

    РП выглядит так:

    Для NewID задать Текущий элемент:ИД.

    затем Скопировать элемент из Текущий элемент в Задачи для СБ

    Т.е. сначала добавляется в newID - ID элемента, появляется номер

    И копируется элемент в задачи СБ.

    В задачах появляется скопированный элемент, но без значений из родительского списка.


    • Изменено AndreySV 7 октября 2015 г. 12:54
    7 октября 2015 г. 12:49
  • Опять сам разобрался с проблемой. Сделал по другому. Сделал столбец префикс. В Рп задал переменную для префикса и ИД. И потом задать элемент [Текущий Элемент:Префикс][Текущий элемент:ИД].

    Единственное номер заявки К-1 и ИД по возрастанию

    7 октября 2015 г. 14:35