N
N
Nentra2022-03-14 12:13:58
Bitrix24
Nentra, 2022-03-14 12:13:58

How to write down and get the value of a global variable in a PHP code block in a Business Process?

Bitrix24 box
1. How to write a value to a global variable in a PHP code block in a Business Process?
2. How to get the value of a global variable in a PHP code block in a Business Process?

//вот это не работает
  $this->SetVariable('VarDocumentNumberForAct', $docNum); // пробую записать глобальную переменную
$docNum = $rootActivity->GetVariable('VarDocumentNumberForAct'); //пробую получить глобальную  переменную

Answer the question

In order to leave comments, you need to log in

2 answer(s)
N
Nentra, 2022-03-15
@Nentra

In the end this helped.

Boris, [22.11.2021 0:56]
[В ответ на Andrey DEV(Джейс) ↑]
/*
 * Комментарии к изменению глобальных переменных через БП PHP блок
 * Если указывать из БП глобальную переменную с _ будет ошибка исполнения (просто флоу до конца не дойдет, без каких то ошибок в логи)
 * Если \Bitrix\Bizproc\Workflow\Type\GlobalVar::getById возвращает пустоту, значит глобальная переменная в недопуступом имени
 * Если в \Bitrix\Bizproc\Workflow\Type\GlobalVar::upsert отдать что-то недопустимое, будет ошибка без логов
 * Если создать произвольный массив типа $var['idGlobVar'] = ['Name'=>'Имя глобальной переменной','Description'=>'','Type'=>bool,'Required'=>'','Multiple'=>'','Options'=>'','Default'=>'Y'];
 *   а после скормить этот массив в \Bitrix\Bizproc\Workflow\Type\GlobalVar::upsert то создастся ещё одна глобальная переменная idGlobVar несмотря на то, что она уже будет (да, две переменные будут, с одинаковыми идентификаторами)
 * Изменение значения происходит через изменение Default параметра
*/

$var = \Bitrix\Bizproc\Workflow\Type\GlobalVar::getById('orderVacancy');
$var['Default'] = 'Y';
if($var)
{
  \Bitrix\Bizproc\Workflow\Type\GlobalVar::upsert('orderVacancy', $var);
}

I
IgorVader, 2022-03-14
@IgorVader

//в начале объявляем текущий бизнес-процесс
$rootActivity = $this->GetRootActivity(); 
 
//достаем переменную из бизнес-процесса в php
$varPHP = $rootActivity->GetVariable("var1"); 
//или
$varPHP = '{=Variable:zolkina_printable}';
 
//и наоборот
//присваиваем переменной в бизнес-процессе из php
$rootActivity->SetVariable("var1", 'переменная1');

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question