- Модуль: bizproc
- Путь к файлу: ~/bitrix/modules/bizproc/lib/Debugger/Session/Session.php
- Класс: BitrixBizprocDebuggerSessionSession
- Вызов: Session::fixateDocument
public function fixateDocument(string $documentId)
{
if (!$this->canAddDocument())
{
$result = new BitrixMainResult();
$error = static::getErrorByCode(self::ERROR_DOCUMENT_ID_ALREADY_FIXED);
$result->addError($error);
return $result;
}
if ($this->getMode() === Mode::EXPERIMENTAL)
{
$addDocumentResult = $this->addDocument($documentId);
if ($addDocumentResult->isSuccess())
{
$this->setFixed(true);
$result = $this->save();
if ($result->isSuccess())
{
$documentService = CBPRuntime::GetRuntime(true)->getDocumentService();
$documentService->onDebugSessionDocumentStatusChanged(
$this->getFixedDocument()->getParameterDocumentId(),
$this->getStartedBy(),
DocumentStatus::IN_DEBUG
);
}
return $result;
}
return $addDocumentResult;
}
$documents = clone($this->getDocuments());
$documentIds = $documents ? $documents->getDocumentIdList() : [];
if (!in_array($documentId, $documentIds, true))
{
$result = new BitrixMainResult();
$error = static::getErrorByCode(self::ERROR_UNKNOWN_DOCUMENT_ID);
$result->addError($error);
$result->setData([
'session' => $this,
'documentId' => $documentId,
]);
return $result;
}
foreach ($documents as $document)
{
if ($document->getDocumentId() === $documentId)
{
$this->setFixed(true);
continue;
}
$this->removeFromDocuments($document);
}
$result = $this->save();
if ($result->isSuccess())
{
$documentService = CBPRuntime::GetRuntime(true)->getDocumentService();
$documentService->onDebugSessionDocumentStatusChanged(
$this->getFixedDocument()->getParameterDocumentId(),
$this->getStartedBy(),
DocumentStatus::IN_DEBUG
);
}
return $result;
}