• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/lib/workflow/template/packer/robopackage.php
  • Класс: BitrixBizprocWorkflowTemplatePackerRoboPackage
  • Вызов: RoboPackage::unpack
public function unpack($data)
{
	$result = new ResultUnpack();
	$datumTmp = $this->uncompress($data);

	if (is_string($datumTmp))
	{
		try
		{
			$datumTmp = MainWebJson::decode($data);
		}
		catch (MainArgumentException $e)
		{
			//do nothing
		}
	}

	if (is_array($datumTmp) && is_array($datumTmp['ROBOTS']))
	{
		$robotTemplate = new AutomationEngineTemplate($datumTmp['DOCUMENT_TYPE']);
		try
		{
			$robotTemplate->setRobots($datumTmp['ROBOTS']);
		}
		catch (MainArgumentException $e)
		{
			$result->addError(new MainError(Loc::getMessage("BIZPROC_WF_TEMPLATE_ROBOPACKAGE_WRONG_DATA")));

			return $result;
		}

		/** @var Tpl $tpl */
		$tpl = WorkflowTemplateTable::createObject();
		$tpl->set('MODULE_ID', $datumTmp['DOCUMENT_TYPE'][0]);
		$tpl->set('ENTITY', $datumTmp['DOCUMENT_TYPE'][1]);
		$tpl->set('DOCUMENT_TYPE', $datumTmp['DOCUMENT_TYPE'][2]);
		$tpl->set('DOCUMENT_STATUS', $datumTmp['DOCUMENT_STATUS']);
		$tpl->set('NAME', $datumTmp['NAME']);
		$tpl->set('DESCRIPTION', $datumTmp['DESCRIPTION']);
		$tpl->set('TEMPLATE', $robotTemplate->getActivities());
		$tpl->set('PARAMETERS', $datumTmp['PARAMETERS']);
		$tpl->set('VARIABLES', $datumTmp['VARIABLES']);
		$tpl->set('CONSTANTS', $datumTmp['CONSTANTS']);
		$tpl->set('SYSTEM_CODE', $datumTmp['SYSTEM_CODE']);
		$tpl->set('ORIGINATOR_ID', $datumTmp['ORIGINATOR_ID']);
		$tpl->set('ORIGIN_ID', $datumTmp['ORIGIN_ID']);

		return $result->setTpl($tpl)
			->setDocumentFields($datumTmp['DOCUMENT_FIELDS'])
			->setRequiredApplications($datumTmp['REQUIRED_APPLICATIONS']);
	}

	$result->addError(new MainError(Loc::getMessage("BIZPROC_WF_TEMPLATE_ROBOPACKAGE_WRONG_DATA")));

	return $result;
}