Страница 1 из 1

Автоматизация "После изменения записи": не работает конкатенация

Добавлено: 23 июл 2024, 19:04
Andres
Добрый день Сергей,
Автоматизация "Выполнить после изменения записи" (происходит конкатенация) записывает данные в поле "не доконца":
Т.е. записанные данные есть, но не отображаются в поле. После сохранения записи вручную без изменений - все отображается как надо. Воссоздал ситуацию в демо здесь
Использовать формулу или функцию CONCAT - не вариант, т.к. нужно соединять по условию (если одно из полей пустое, то запятая не ставится), чтобы избегать вариантов конкатенации типа: "Имя, Фамилия, , , , г."

Имеем запись без изменений:
Изображение

Жмем "Изменить название":
Изображение

Выбранное изменение есть, но не дописалось к названию:
Изображение

Пересохраняем без изменений:
Изображение

Все есть как надо:
Изображение

Код автоматизации:

Код: Выделить всё

$project_name=[158];
$change_name=[207];
$string=$project_name.' + изменение: '.$change_name;
db_query("update app_entity_21 set field_209='$string' where id={$item_id}");

Re: Автоматизация "После изменения записи": не работает конкатенация

Добавлено: 23 июл 2024, 21:22
Fait
Попробуйте этот код, ваш не совсем правильно составлен:

Код: Выделить всё

$item_id=[id];
$project_name=[158];
$change_name=[207];
$string=$project_name.' + изменение: '.$change_name;
db_query('update app_entity_21 set field_209="'$string'" where id='$item_id);

Re: Автоматизация "После изменения записи": не работает конкатенация

Добавлено: 23 июл 2024, 21:47
Andres
Спасибо Fait, попробовал. К сожалению, не помогло. После ручного сохранения ошибку выкинуло.
В демо логин-пароль стандартные, можно "покликать" и увидеть изменения

{$item_id} - всегда работает для текущей записи

Re: Автоматизация "После изменения записи": не работает конкатенация

Добавлено: 24 июл 2024, 07:49
support
"Выполнить процесс после изменения записи" срабатывает если вы делаете изменения в основной форме, но не после автоматизации.

Re: Автоматизация "После изменения записи": не работает конкатенация

Добавлено: 24 июл 2024, 12:41
Andres
support писал(а): 24 июл 2024, 07:49 "Выполнить процесс после изменения записи" срабатывает если вы делаете изменения в основной форме, но не после автоматизации.
ОК...
А возможно ли написать какой-то скрипт, эмулирующий изменение в основной форме (обновление скрытого числового поля, например)?
Наподобие такого, толко не открытие формы добавления, а открытие, изменение поля, сохранение (взял из ветки "Плагины"):

Код: Выделить всё

<script>
var sp = new URLSearchParams(window.location.search)
action = sp.get("action_on_page");
if (action) {
  if (action == "add") {
   bn_add =  $("[onclick*='=items/form&path=']")
   if (bn_add) {bn_add.click();} 
  }
}
</script>