Были похожие траблы, в итоге затаскиваю все параметры БП и получаю нужных пользователей, обрабатываю по UF_ полю пользовательскую таблицу, заполняю свой Variable
global $USER;
//в начале объявляем текущий бизнес-процесс
$rootActivity = $this->GetRootActivity();
$documentId = $rootActivity->GetDocumentId();
$documentService = $this->workflow->GetService("DocumentService");
// получить все поля документа
$arDocumentFields= $documentService->GetDocument($documentId);
//тащим пользователя
$bpuser =mb_substr($arDocumentFields['CREATED_BY'],5);
file_put_contents('/home/bitrix/www/bp.log', $bpuser.' '.date('d.m.Y H:i:s').PHP_EOL,8);
$arFilter = array('ID' => $user);
$arParams["SELECT"] = array("UF_нужное поле");
$userFields = CUser::GetList($by,$desc,$arFilter,$arParams)->fetch();
$user=$userFields["UF_нужное поле"];
//обработка
$newentity=$user
//и наоборот
//присваиваем переменной в бизнес-процессе из php
$rootActivity->SetVariable("your_variable", $newentity);
file_put_contents('/home/bitrix/www/bp.log', $newentity.PHP_EOL,8);
global $USER;
//в начале объявляем текущий бизнес-процесс
$rootActivity = $this->GetRootActivity();
$documentId = $rootActivity->GetDocumentId();
$documentService = $this->workflow->GetService("DocumentService");
// получить все поля документа
$arDocumentFields= $documentService->GetDocument($documentId);
//тащим пользователя
$bpuser =mb_substr($arDocumentFields['CREATED_BY'],5);
file_put_contents('/home/bitrix/www/bp.log', $bpuser.' '.date('d.m.Y H:i:s').PHP_EOL,8);
$arFilter = array('ID' => $user);
$arParams["SELECT"] = array("UF_нужное поле");
$userFields = CUser::GetList($by,$desc,$arFilter,$arParams)->fetch();
$user=$userFields["UF_нужное поле"];
//обработка
$newentity=$user
//и наоборот
//присваиваем переменной в бизнес-процессе из php
$rootActivity->SetVariable("your_variable", $newentity);
file_put_contents('/home/bitrix/www/bp.log', $newentity.PHP_EOL,8);