Вопрос

Передача в бизнес-процесс значения ДатаВремя

Всем доброго времени суток. Версия 7.12.

Есть бизнес-процесс с параметрами, вызывается из клиентской схемы.

Среди параметров есть параметр типа "Дата/Время". Попробовал передать туда обычную дату this.get("WSStartDate"), в результате при запуске процесс выдаёт ошибку: "Строка не распознана как действительное значение DateTime".

Как правильно передавать такие параметры в бизнес-процессы?

У меня такой же вопрос

3 комментария
Лучший ответ

Это ошибка ядра.

Обойти её можно таким образом. На входе в БП или перед тем, как Вы собираетесь работать с этим параметром нужно добавить элемент скрипт-таск и прописать приблизительно такой код:

var shipmentDateString = Get<string>("ShipmentDateString");
if (!string.IsNullOrEmpty(shipmentDateString)) {
    var shipmentDate = DateTime.ParseExact(shipmentDateString.Substring(0, 24), "ddd MMM d yyyy HH:mm:ss",
        CultureInfo.InvariantCulture);
    Set("ShipmentDate", shipmentDate);
}

и в БП использовать уже другой параметр с установленным значением.

В моем примере на входе у нас параметр "ShipmentDateString", который мы передаем в процесс с клиента, а на выходе параметр "ShipmentDate", с которым мы работаем уже в самом БП.

Это ошибка ядра.

Обойти её можно таким образом. На входе в БП или перед тем, как Вы собираетесь работать с этим параметром нужно добавить элемент скрипт-таск и прописать приблизительно такой код:

var shipmentDateString = Get<string>("ShipmentDateString");
if (!string.IsNullOrEmpty(shipmentDateString)) {
    var shipmentDate = DateTime.ParseExact(shipmentDateString.Substring(0, 24), "ddd MMM d yyyy HH:mm:ss",
        CultureInfo.InvariantCulture);
    Set("ShipmentDate", shipmentDate);
}

и в БП использовать уже другой параметр с установленным значением.

В моем примере на входе у нас параметр "ShipmentDateString", который мы передаем в процесс с клиента, а на выходе параметр "ShipmentDate", с которым мы работаем уже в самом БП.

Алла Савельева,

Спасибо за ответ. Я правильно понимаю, что параметр ShipmentDateString - строковый? И как всё-таки в него дата передаётся? В виде строки формата "dd MM yyyy HH:mm:ss"? Или просто можно значение колонки туда из клиентской схемы передать как есть?

Смородинов Денис,

Да, передаете, как есть:

this.get("ShipmentDate")

Войдите или зарегистрируйтесь, чтобы комментировать