Вопрос

Добавить значение в системную настройку

Есть системная настройка с числовым значением 

Как в данную системную настройку можно записать значение например +1 при каждом запуске бп.

 

Так как мы через БП можем прочитать значение системной настройки, можно ли изменить ее и при запуске БП добавить к уже записаному значение +1.

Например в системной настройке уже есть число 20 и при запуске процесса будет записано 21 и так далее при каждом запуске.

Нравится

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

Добрый день!

Получить текущее значение системной настройки можно разными способами, например элементом "Читать данные" (объект "Значение системной настройки") или же создать параметр с нужным типом данных и указать значением параметра нужную системную настройку.
Далее добавляете элемент "Формула", в котором проводите нужную вам математическую операцию и записываете результат в параметр процесса.
После чего необходим элемент "Изменить данные" по объекту "Значение системной настройки".
 

Добрый день!

Получить текущее значение системной настройки можно разными способами, например элементом "Читать данные" (объект "Значение системной настройки") или же создать параметр с нужным типом данных и указать значением параметра нужную системную настройку.
Далее добавляете элемент "Формула", в котором проводите нужную вам математическую операцию и записываете результат в параметр процесса.
После чего необходим элемент "Изменить данные" по объекту "Значение системной настройки".
 

Aleksei Efimenko,
Спасибо

Но учтите, что если системная настройка кешируется, то элемент процесса Изменит значение в БД, но не изменит значение в кеше и при повторном считывании значения (через параметр, т.е. второй способ из комментария выше, а не через Читать данные) вы все ровно получите старое значение из кеша.

Чтобы предусмотреть это нужно или всегда читать и изменять через соответствующие элементы БП, или отключить кеширование настройки или добавит элемент БП Задание-сценарий и вставить код на C#, который будет не только изменять значение в БД, но и в кеше:

Terrasoft.Core.Configuration.SysSettings.SetDefValue(context.UserConnection, "SysSettingsCode", Get<int>("BPParameterName"));

 

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