本文整理汇总了PHP中CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType方法的典型用法代码示例。如果您正苦于以下问题:PHP CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType方法的具体用法?PHP CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType怎么用?PHP CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBPWorkflowTemplateLoader
的用法示例。
在下文中一共展示了CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getTemplatesIdList
protected function getTemplatesIdList()
{
if (!Loader::includeModule('bizproc') || empty($this->iblockTypeId) || empty($this->iblockId)) {
return array();
}
$documentType = BizprocDocument::generateDocumentComplexType($this->iblockTypeId, $this->iblockId);
$templates = array_merge(\CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType($documentType, CBPDocumentEventType::Create), \CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType($documentType, CBPDocumentEventType::Edit));
$templateData = array();
foreach ($templates as $template) {
$templateData[$template['ID']]['ID'] = $template['ID'];
$templateData[$template['ID']]['NAME'] = $template['NAME'];
}
return $templateData;
}
示例2: HasAutoWorkflows
public static function HasAutoWorkflows($ownerTypeID, $eventType)
{
if (!(IsModuleInstalled('bizproc') && CModule::IncludeModule('bizproc'))) {
return false;
}
$ownerTypeID = (int) $ownerTypeID;
$eventType = (int) $eventType;
$docName = self::ResolveDocumentName($ownerTypeID);
if ($docName === '') {
return false;
}
$ownerTypeName = CCrmOwnerType::ResolveName($ownerTypeID);
if ($ownerTypeName === '') {
return false;
}
$ary = CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType(array('crm', $docName, $ownerTypeName), $eventType);
return !empty($ary);
}
示例3: SaveOrderDataCompanyBP
private function SaveOrderDataCompanyBP($companyId, $isNewCompany, $arParameters = array())
{
$companyId = intval($companyId);
if ($companyId <= 0) {
return;
}
static $isBPIncluded = null;
if ($isBPIncluded === null) {
$isBPIncluded = CModule::IncludeModule("bizproc");
}
if (!$isBPIncluded) {
return;
}
static $arBPTemplates = null;
if ($arBPTemplates === null) {
$arBPTemplates = CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType(array('crm', 'CCrmDocumentCompany', 'COMPANY'), $isNewCompany ? CBPDocumentEventType::Create : CBPDocumentEventType::Edit);
}
if (!is_array($arBPTemplates)) {
return;
}
if (!is_array($arParameters)) {
$arParameters = array($arParameters);
}
if (!array_key_exists("TargetUser", $arParameters)) {
$assignedById = intval(COption::GetOptionString("crm", "sale_deal_assigned_by_id", "0"));
if ($assignedById > 0) {
$arParameters["TargetUser"] = "user_" . $assignedById;
}
}
$runtime = CBPRuntime::GetRuntime();
foreach ($arBPTemplates as $wt) {
try {
$wi = $runtime->CreateWorkflow($wt["ID"], array('crm', 'CCrmDocumentCompany', 'COMPANY_' . $companyId), $arParameters);
$wi->Start();
} catch (Exception $e) {
$this->AddError($e->getCode(), $e->getMessage());
}
}
}
示例4: GetMessage
if (!$canWrite) {
$strError = GetMessage("CC_BLEE_ACCESS_DENIED_STATUS");
}
if (!$strError) {
$arBizProcParametersValues = array();
foreach ($arDocumentStates as $arDocumentState) {
if (strlen($arDocumentState["ID"]) <= 0) {
$templatesOnStartup = true;
$arErrorsTmp = array();
$arBizProcParametersValues[$arDocumentState["TEMPLATE_ID"]] = CBPDocument::StartWorkflowParametersValidate($arDocumentState["TEMPLATE_ID"], $arDocumentState["TEMPLATE_PARAMETERS"], $documentType, $arErrorsTmp);
foreach ($arErrorsTmp as $e) {
$strError .= $e["message"] . "<br />";
}
}
}
$templates = array_merge(\CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType($documentType, CBPDocumentEventType::Create), \CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType($documentType, CBPDocumentEventType::Edit));
$error = false;
foreach ($templates as $template) {
if (!CBPWorkflowTemplateLoader::isConstantsTuned($template["ID"]) && !$error) {
$error = true;
$strError .= GetMessage('CC_BLEE_IS_CONSTANTS_TUNED') . "<br />";
$arResult["isConstantsTuned"] = true;
}
}
}
}
if (!$strError) {
$obElement = new CIBlockElement();
if ($arResult["ELEMENT_ID"]) {
$res = $obElement->Update($arResult["ELEMENT_ID"], $arElement, false, true, true);
if (!$res) {
示例5: AutoStartWorkflows
/**
* Метод запускает рабочие потоки, настроенные на автозапуск.
*
* @param array $documentType - код типа документа в виде массива array(модуль, сущность, код_типа_документа_в_модуле).
* @param int $autoExecute - флаг CBPDocumentEventType типа автозапуска (1 = CBPDocumentEventType::Create, 2 = CBPDocumentEventType::Edit).
* @param array $documentId - код документа в виде массива array(модуль, сущность, код_документа_в_модуле).
* @param array $arParameters - массив параметров запуска рабочего потока.
* @param array $arErrors - массив ошибок, которые произошли при запуске рабочего потока в виде array(array("code" => код_ошибки, "message" => сообщение, "file" => путь_к_файлу), ...).
*/
public static function AutoStartWorkflows($documentType, $autoExecute, $documentId, $arParameters, &$arErrors)
{
$arErrors = array();
$runtime = CBPRuntime::GetRuntime();
if (!is_array($arParameters))
$arParameters = array($arParameters);
if (!array_key_exists("TargetUser", $arParameters))
$arParameters["TargetUser"] = "user_".intval($GLOBALS["USER"]->GetID());
$arWT = CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType($documentType, $autoExecute);
foreach ($arWT as $wt)
{
try
{
$wi = $runtime->CreateWorkflow($wt["ID"], $documentId, $arParameters);
$wi->Start();
}
catch (Exception $e)
{
$arErrors[] = array(
"code" => $e->getCode(),
"message" => $e->getMessage(),
"file" => $e->getFile()." [".$e->getLine()."]"
);
}
}
}
示例6: AutoStartWorkflows
/**
* Метод запускает рабочие потоки, настроенные на автозапуск.
*
* @param array $documentType - код типа документа в виде массива array(модуль, сущность, код_типа_документа_в_модуле).
* @param int $autoExecute - флаг CBPDocumentEventType типа автозапуска (1 = CBPDocumentEventType::Create, 2 = CBPDocumentEventType::Edit).
* @param array $documentId - код документа в виде массива array(модуль, сущность, код_документа_в_модуле).
* @param array $arParameters - массив параметров запуска рабочего потока.
* @param array $arErrors - массив ошибок, которые произошли при запуске рабочего потока в виде array(array("code" => код_ошибки, "message" => сообщение, "file" => путь_к_файлу), ...).
*/
public static function AutoStartWorkflows($documentType, $autoExecute, $documentId, $arParameters, &$arErrors)
{
$arErrors = array();
$runtime = CBPRuntime::GetRuntime();
if (!is_array($arParameters)) {
$arParameters = array($arParameters);
}
if (!isset($arParameters[static::PARAM_TAGRET_USER])) {
$arParameters[static::PARAM_TAGRET_USER] = is_object($GLOBALS["USER"]) ? "user_" . intval($GLOBALS["USER"]->GetID()) : null;
}
if (!isset($arParameters[static::PARAM_MODIFIED_DOCUMENT_FIELDS])) {
$arParameters[static::PARAM_MODIFIED_DOCUMENT_FIELDS] = false;
}
$arWT = CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType($documentType, $autoExecute);
foreach ($arWT as $wt) {
try {
$wi = $runtime->CreateWorkflow($wt["ID"], $documentId, $arParameters);
$wi->Start();
} catch (Exception $e) {
$arErrors[] = array("code" => $e->getCode(), "message" => $e->getMessage(), "file" => $e->getFile() . " [" . $e->getLine() . "]");
}
}
}