Создать номер прокукта, используя дату.

Здравствуйте.
Интересует вопрос как в бизнес-процесе в элементе формула присвоить текстовому полю ProductId значение вида "72_16032016" где 72 это код продукта а 16032016 - текущая дата. Мне нужно чтобы был именно такой формат (без точек). Как это мне написать.

Вот такой вариант "72_"+[#Системная переменная.Текущее значение даты#].ToString() не работает. И еще не понятно как мне убрать точки в 16.03.2016.
Ошибка - cannot convert string to DataTime.
Подскажите пожалуйста. Спасибо!

Нравится

6 комментариев

Поле ProductId имеет тип данных GUID (глобальный уникальный идентификатор). Это идентификатор записи в базе данных. Поэтому вы не сможете присвоить ему пользовательское значение. Вы можете присвоить какой-то уникальный код вашему продукту, несколько модифицировав пример, предлагаемый в Документации разработчика-Примеры решения типовых задач-Разработка бизнес-логики-
Как добавить автонумерацию к полю страницы редактирования

Здравствуйте Роман. Я не использую поле ProductId которое заложено в системе. Я создал в бизнесс процессе строковый параметр ProductId и в Формуле хочу ему присвоить значение вида "72_16032016" где 72 это код продукта а 16032016 - текущая дата. Мне нужно чтобы был именно такой формат (без точек).
Как мне модифицировать эту формулу "72_"+[#Системная переменная.Текущее значение даты#].ToString() чтобы не выдавало ошибки cannot convert string to DataTime и записывало значение именно в таком формате(без точек) "72_16032016".
Автонумерация мне не нужна, ибо это будет поле номер счета (и оно не обязательно будет уникальным)
Спасибо.

Здравствуйте!

Вариант DateTime.Today.ToString не пробовали? (https://msdn.microsoft.com/en-us/library/system.datetime.today(v=vs.110… - получение строки с датой).
Замена символов в строке - https://msdn.microsoft.com/en-us/library/kxbw3kwc(v=vs.110).aspx (для того, чтобы убрать разделитель)

Здравствуйте Алексей.
Видимо я не понимаю где я могу писать э С# код.
Ибо если в Формуле написать "72_"+DateTime.Today.ToString то система ругается и выдает Operator '+' canot be applied to operands of type 'string' and 'metod group'.
Подскажите, пожалуйста, как это полностью прописать и где.

Вот я сделал так

и получил такой результат

Остается убрать точки и нули, которые зашли от времени.

Это пробую сделать в задании-сценарии.
Беру OrderId и пробую уубрать точки.

И получаю ошибку.

OrderId лежит в параметрах бизнесс процесса.

Здравствуйте Алексей!
Прошу вас помочь мне в одном вопросе.
Вот у меня на скрине, что у предыдущем посте название 72_17.03.2016 10:22:32.
Подскажите, как мне убрать пробел. У меня это строковое поле. Функции С# для этого я знаю. Я не знаю где и как я могу их задействовать. Можете сделать скрин в каком месте и как мне это сделать (в бизнес процессе). Благодарен вам очень!

Здравствуйте, Сергей!

В версии 770 немного изменилось обращение к параметрам процесса.

Пример:
Для получение значения параметра процесса OrderId:
var orderId= Get("OrderId");
Для того, чтобы задать параметру процесса значение:
Set("OrderId", "Some value");

Показать все комментарии