本文整理汇总了PHP中CBPDocument::SendExternalEvent方法的典型用法代码示例。如果您正苦于以下问题:PHP CBPDocument::SendExternalEvent方法的具体用法?PHP CBPDocument::SendExternalEvent怎么用?PHP CBPDocument::SendExternalEvent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBPDocument
的用法示例。
在下文中一共展示了CBPDocument::SendExternalEvent方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: StartWorkflow
public function StartWorkflow($ID, $arBizProcParametersValues = false)
{
if (!CModule::IncludeModule('bizproc')) {
return true;
}
global $USER;
$arBizProcWorkflowId = array();
$bresult = true;
foreach ($this->arDocumentStates as $arDocumentState) {
if (strlen($arDocumentState['ID']) <= 0) {
$arErrorsTmp = array();
$arBizProcWorkflowId[$arDocumentState['TEMPLATE_ID']] = CBPDocument::StartWorkflow($arDocumentState['TEMPLATE_ID'], array('crm', $this->sDocument, $this->sEntityType . '_' . $ID), $arBizProcParametersValues[$arDocumentState['TEMPLATE_ID']], $arErrorsTmp);
if (count($arErrorsTmp) > 0) {
$this->LAST_ERROR = '';
foreach ($arErrorsTmp as $e) {
$this->LAST_ERROR .= $e['message'] . '<br />';
}
$bresult = false;
}
}
}
if ($bresult) {
$bizprocIndex = (int) $_REQUEST['bizproc_index'];
if ($bizprocIndex > 0) {
for ($i = 1; $i <= $bizprocIndex; $i++) {
$bpId = trim($_REQUEST['bizproc_id_' . $i]);
$bpTemplateId = intval($_REQUEST['bizproc_template_id_' . $i]);
$bpEvent = trim($_REQUEST['bizproc_event_' . $i]);
if (strlen($bpEvent) > 0) {
if (strlen($bpId) > 0) {
if (!array_key_exists($bpId, $this->arDocumentStates)) {
continue;
}
} else {
if (!array_key_exists($bpTemplateId, $this->arDocumentStates)) {
continue;
}
$bpId = $arBizProcWorkflowId[$bpTemplateId];
}
$arErrorTmp = array();
CBPDocument::SendExternalEvent($bpId, $bpEvent, array('Groups' => $this->arCurrentUserGroups, 'User' => $USER->GetID()), $arErrorTmp);
if (count($arErrorsTmp) > 0) {
foreach ($arErrorsTmp as $e) {
$this->LAST_ERROR .= $e['message'] . '<br />';
}
$bresult = false;
}
}
}
}
}
return $bresult;
}
示例2: trim
}
if (strlen($arResult["FatalErrorMessage"]) <= 0) {
if ($_SERVER["REQUEST_METHOD"] == "GET" && strlen($_REQUEST["process_state_event"]) > 0 && check_bitrix_sessid()) {
$bizprocId = trim($_REQUEST["bizproc_id"]);
$bizprocEvent = trim($_REQUEST["bizproc_event"]);
if (strlen($bizprocEvent) > 0) {
$arState = CBPStateService::GetWorkflowState($bizprocId);
if (count($arState) > 0) {
list($dbRecordsList, $dbRecordsList1) = CBPVirtualDocument::GetList(array(), array("IBLOCK_ID" => $arParams["BLOCK_ID"], "ID" => $arState["DOCUMENT_ID"][2]), false, false, array("ID", "IBLOCK_ID", "CREATED_BY"));
if ($arRecord = $dbRecordsList->Fetch()) {
$arCurrentUserGroups = $GLOBALS["USER"]->GetUserGroupArray();
if ("user_" . $GLOBALS["USER"]->GetID() == $arRecord["CREATED_BY"]) {
$arCurrentUserGroups[] = "author";
}
$arErrorTmp = array();
CBPDocument::SendExternalEvent($bizprocId, $bizprocEvent, array("Groups" => $arCurrentUserGroups, "User" => $GLOBALS["USER"]->GetID()), $arErrorTmp);
if (count($arErrorsTmp) > 0) {
foreach ($arErrorsTmp as $e) {
$arResult["FatalErrorMessage"] .= $e["message"] . ". ";
}
}
} else {
$arResult["FatalErrorMessage"] .= GetMessage("BPWC_WLC_MISSING_DOCUMENT") . ". ";
}
} else {
$arResult["FatalErrorMessage"] .= GetMessage("BPWC_WLC_MISSING_DOCUMENT") . ". ";
}
if (strlen($arResult["FatalErrorMessage"]) <= 0) {
LocalRedirect($APPLICATION->GetCurPageParam("", array("sessid", "stop_bizproc_id", "process_state_event", "bizproc_event", "bizproc_id", "delete_bizproc_id")));
}
}
示例3: trim
$bpId = trim($_REQUEST["bizproc_id_" . $i]);
$bpTemplateId = intval($_REQUEST["bizproc_template_id_" . $i]);
$bpEvent = trim($_REQUEST["bizproc_event_" . $i]);
if (strlen($bpEvent) > 0) {
if (strlen($bpId) > 0) {
if (!array_key_exists($bpId, $arDocumentStates)) {
continue;
}
} else {
if (!array_key_exists($bpTemplateId, $arDocumentStates)) {
continue;
}
$bpId = $arBizProcWorkflowId[$bpTemplateId];
}
$arErrorTmp = array();
CBPDocument::SendExternalEvent($bpId, $bpEvent, array("Groups" => $arParams["USER_GROUPS"], "User" => $GLOBALS["USER"]->GetID()), $arErrorTmp);
if (count($arErrorsTmp) > 0) {
foreach ($arErrorsTmp as $e) {
$strWarning .= $e["message"] . "<br />";
}
$arError[] = array("id" => "update_workfow", "text" => $strWarning);
}
}
}
}
if (!empty($arError)) {
$e = new CAdminException($arError);
$arResult["ERROR_MESSAGE"] = $e->GetString();
} else {
$url = !empty($arParams["back_url"]) ? $arParams["back_url"] : $APPLICATION->GetCurPageParam("", array("action", "id", "sessid"));
$url = empty($_POST["apply"]) ? $url : $APPLICATION->GetCurPageParam("", array("action", "id", "sessid"));
示例4: array
if (strlen($bpId) > 0)
{
if (!array_key_exists($bpId, $arDocumentStates))
continue;
}
else
{
if (!array_key_exists($bpTemplateId, $arDocumentStates))
continue;
$bpId = $arBizProcWorkflowId[$bpTemplateId];
}
$arErrorTmp = array();
CBPDocument::SendExternalEvent(
$bpId,
$bpEvent,
array("Groups" => $arCurrentUserGroups, "User" => $USER->GetID()),
$arErrorTmp
);
if (!empty($arErrorsTmp))
{
foreach ($arErrorsTmp as $e)
$strWarning .= $e["message"]."<br />";
}
}
}
}
$arDocumentStates = null;
CBPDocument::AddDocumentToHistory(array(MODULE_ID, ENTITY, $ID), $BP_HISTORY_NAME, $GLOBALS["USER"]->GetID());
}
示例5: ChangeStatus
function ChangeStatus($taskId, $newStatus, $userId = 0)
{
CModule::IncludeModule("socialnetwork");
$taskId = intval($taskId);
$userId = intval($userId);
if ($userId == 0) {
$userId = $GLOBALS["USER"]->GetID();
}
$arTask = CIntranetTasks::GetById($taskId);
if (!$arTask) {
return;
}
$arDocumentStates = CBPDocument::GetDocumentStates(array("intranet", "CIntranetTasksDocument", "x" . $arTask["IBLOCK_ID"]), array("intranet", "CIntranetTasksDocument", $taskId));
$arCurrentUserGroups = array();
if ($arTask["TaskType"] == "group") {
$arCurrentUserGroups[] = SONET_ROLES_ALL;
if ($GLOBALS["USER"]->IsAuthorized()) {
$arCurrentUserGroups[] = SONET_ROLES_AUTHORIZED;
}
$r = CSocNetUserToGroup::GetUserRole($userId, $arTask["OwnerId"]);
if (strlen($r) > 0) {
$arCurrentUserGroups[] = $r;
}
}
if ($userId == $arTask["CREATED_BY"]) {
$arCurrentUserGroups[] = "author";
}
if ($userId == $arTask["PROPERTY_TaskAssignedTo"]) {
$arCurrentUserGroups[] = "responsible";
}
if (is_array($arTask["PROPERTY_TaskTrackers"]) && in_array($userId, $arTask["PROPERTY_TaskTrackers"])) {
$arCurrentUserGroups[] = "trackers";
}
$arStateCommand = array("NotAccepted" => array("NotStarted" => array("HEEA_NotAccepted_ApproveEvent"), "InProgress" => array("HEEA_NotAccepted_InProgressEvent"), "Completed" => array("HEEA_NotAccepted_CompleteEvent"), "Closed" => array("HEEA_NotAccepted_CloseEvent"), "Waiting" => array("HEEA_NotAccepted_ApproveEvent", "HEEA_NotStarted_WaitingEvent"), "Deferred" => array("HEEA_NotAccepted_ApproveEvent", "HEEA_NotStarted_DeferredEvent")), "NotStarted" => array("InProgress" => array("HEEA_NotStarted_InProgressEvent"), "Completed" => array("HEEA_NotStarted_CompleteEvent"), "Closed" => array("HEEA_NotStarted_CloseEvent"), "Waiting" => array("HEEA_NotStarted_WaitingEvent"), "Deferred" => array("HEEA_NotStarted_DeferredEvent")), "InProgress" => array("Completed" => array("HEEA_InProgress_CompleteEvent"), "Closed" => array("HEEA_InProgress_CloseEvent"), "Waiting" => array("HEEA_InProgress_WaitingEvent"), "Deferred" => array("HEEA_InProgress_DeferredEvent")), "Completed" => array("InProgress" => array("HEEA_Completed_InProgressEvent"), "Closed" => array("HEEA_Completed_CloseEvent")), "Waiting" => array("NotStarted" => array("HEEA_Waiting_NotStartedEvent"), "InProgress" => array("HEEA_Waiting_InProgressEvent"), "Completed" => array("HEEA_Waiting_CompleteEvent"), "Closed" => array("HEEA_Waiting_CloseEvent"), "Deferred" => array("HEEA_Waiting_DeferredEvent")), "Deferred" => array("NotStarted" => array("HEEA_Deferred_NotStartedEvent"), "InProgress" => array("HEEA_Deferred_InProgressEvent"), "Completed" => array("HEEA_Deferred_CompleteEvent"), "Closed" => array("HEEA_Deferred_CloseEvent"), "Waiting" => array("HEEA_Deferred_WaitingEvent")));
foreach ($arDocumentStates as $documentState) {
$oldState = $documentState["STATE_NAME"];
if (!array_key_exists($oldState, $arStateCommand) || count($arStateCommand[$oldState]) <= 0) {
continue;
}
if (!array_key_exists($newStatus, $arStateCommand[$oldState]) || count($arStateCommand[$oldState][$newStatus]) <= 0) {
continue;
}
foreach ($arStateCommand[$oldState][$newStatus] as $sc) {
CBPDocument::SendExternalEvent($documentState["ID"], $sc, array("Groups" => $arCurrentUserGroups, "User" => $userId), $arErrorTmp);
}
}
}
示例6: array
$TEMPLATE_ID = 0;
$dbWorkflowTemplate = CBPWorkflowTemplateLoader::GetList(array(), array("DOCUMENT_TYPE" => array("iblock", "CIBlockDocument", "iblock_" . $IBLOCK_ID), "SYSTEM_CODE" => "status.php", "ACTIVE" => "Y"), false, false, array("ID"));
if ($arWorkflowTemplate = $dbWorkflowTemplate->Fetch()) {
$TEMPLATE_ID = $arWorkflowTemplate["ID"];
}
$arElement = array("IBLOCK_ID" => $IBLOCK_ID, "NAME" => GetMessage("DEMO_IBLOCK_CONTENT_ARTICLES_NAME"), "PREVIEW_TEXT" => GetMessage("DEMO_IBLOCK_CONTENT_ARTICLES_PREVIEW_TEXT"), "WF_STATUS_ID" => 2, "WF_NEW" => "Y", "PROPERTY_VALUES" => array("KEYWORDS" => GetMessage("DEMO_IBLOCK_CONTENT_ARTICLES_KEYWORDS"), "THEMES" => 4));
$obElement = new CIBlockElement();
$element_id = $obElement->Add($arElement);
if ($element_id && $TEMPLATE_ID > 0) {
$arErrorsTmp = array();
$bpId = CBPDocument::StartWorkflow($TEMPLATE_ID, array("iblock", "CIBlockDocument", $element_id), array("Creators" => array("author"), "Approvers" => array(1)), $arErrorsTmp);
if (count($arErrorsTmp) <= 0) {
$arDocumentStates = CBPDocument::GetDocumentStates(array("iblock", "CIBlockDocument", "iblock_" . $IBLOCK_ID), array("iblock", "CIBlockDocument", $element_id));
$arCurrentUserGroups = $GLOBALS["USER"]->GetUserGroupArray();
$arCurrentUserGroups[] = "Author";
$arEvents = CBPDocument::GetAllowableEvents($GLOBALS["USER"]->GetID(), $arCurrentUserGroups, array_pop($arDocumentStates));
CBPDocument::SendExternalEvent($bpId, $arEvents[0]["NAME"], array("Groups" => $arCurrentUserGroups, "User" => $GLOBALS["USER"]->GetID()), $arErrorTmp);
}
}
}
//Include language one more time (after forum creation)
__IncludeLang(GetLangFileName(dirname(__FILE__) . "/lang/", "/" . basename(__FILE__)));
//Create directory and copy files
$search = array("#IBLOCK.ID(XML_ID=content-articles)#", "#IBLOCK.ID(XML_ID=content-news)#", "#MODULE.INSTALLED(ID=forum)#", "#FORUM.ID(NAME=content-articles)#");
$replace = array($IBLOCK_ID, CIBlockCMLImport::GetIBlockByXML_ID("content-news"), IsModuleInstalled("forum") ? "Y" : "N", $arForum["ID"]);
DEMO_IBlock_CopyFiles("/public/content/articles/", "/content/articles/", false, $search, $replace);
CopyDirFiles(dirname(__FILE__) . "/public/language/" . LANGUAGE_ID . "/content/articles/", $_SERVER["DOCUMENT_ROOT"] . "/content/articles", false, true);
//Add menu item
DEMO_IBlock_AddMenuItem("/content/.left.menu.php", array(GetMessage("DEMO_IBLOCK_CONTENT_ARTICLES_MENU"), "/content/articles/", array(), array(), ""));
CUrlRewriter::Add(array("CONDITION" => "#^/content/articles/#", "RULE" => "", "ID" => "bitrix:news", "PATH" => "/content/articles/index.php"));
}
示例7: StartWorkflowsExecuting
/**
* Метод - просто агрегатор действий, запускающий БП и выполняющий события
*
* @param string $documentId - код документа.
* @param array $arDocumentStates - массив шаблонов БП документа.
* @param array $arBizProcParametersValues - массив входных параметров для шаблонов.
* @param array $arUserGroups - массив групп пользователей.
* @param array $arErrors - массив ошибок.
*/
public function StartWorkflowsExecuting($documentId, $arDocumentStates, $arBizProcParametersValues, $arUserGroups, &$arErrors)
{
$documentId = $documentId;
$arErrors = array();
$arBizProcWorkflowId = array();
$arDocumentStates = is_array($arDocumentStates) ? $arDocumentStates : array();
$arBizProcParametersValues = is_array($arBizProcParametersValues) ? $arBizProcParametersValues : array();
$arUserGroups = is_array($arUserGroups) ? $arUserGroups : array();
foreach ($arDocumentStates as $arDocumentState) {
if (strlen($arDocumentState["ID"]) <= 0) {
$arErrorsTmp = array();
$arBizProcWorkflowId[$arDocumentState["TEMPLATE_ID"]] = CBPDocument::StartWorkflow($arDocumentState["TEMPLATE_ID"], $documentId, $arBizProcParametersValues[$arDocumentState["TEMPLATE_ID"]], $arErrorsTmp);
foreach ($arErrorsTmp as $e) {
$arError[] = array("id" => "bizproc_start_workflow", "text" => $e["message"]);
}
}
}
if (empty($arError) && intval($_REQUEST["bizproc_index"]) > 0) {
if (empty($arUserGroups)) {
$arUserGroups = call_user_func_array(array($this->wfParams['DOCUMENT_TYPE'][1], "GetUserGroups"), array(null, $documentId, $GLOBALS["USER"]->GetID()));
}
$bizprocIndex = intval($_REQUEST["bizproc_index"]);
for ($i = 1; $i <= $bizprocIndex; $i++) {
$bpId = trim($_REQUEST["bizproc_id_" . $i]);
$bpTemplateId = intval($_REQUEST["bizproc_template_id_" . $i]);
$bpEvent = trim($_REQUEST["bizproc_event_" . $i]);
if (strlen($bpEvent) > 0) {
if (strlen($bpId) > 0) {
if (!array_key_exists($bpId, $arDocumentStates)) {
continue;
}
} else {
if (!array_key_exists($bpTemplateId, $arDocumentStates)) {
continue;
}
$bpId = $arBizProcWorkflowId[$bpTemplateId];
}
$arErrorTmp = array();
CBPDocument::SendExternalEvent($bpId, $bpEvent, array("Groups" => $arUserGroups, "User" => $GLOBALS["USER"]->GetID()), $arErrorTmp);
foreach ($arErrorsTmp as $e) {
$arError[] = array("id" => "bizproc_send_external_event", "text" => $e["message"]);
}
}
}
}
return empty($arError);
}
示例8: CIBlockElement
}
}
if ($USER->GetID() == $arTaskTmp["CREATED_BY"]) {
$arCurrentUserGroups[] = "author";
}
if ($USER->GetID() == $arTaskTmp["PROPERTY_TaskAssignedTo"]) {
$arCurrentUserGroups[] = "responsible";
}
if (is_array($arTaskTmp["PROPERTY_TaskTrackers"]) && in_array($USER->GetID(), $arTaskTmp["PROPERTY_TaskTrackers"])) {
$arCurrentUserGroups[] = "trackers";
}
}
if (count($arErrorsTmp) <= 0) {
$iblockElementObject = new CIBlockElement();
$iblockElementObject->Update(intval($actionTaskId), array("MODIFIED_BY" => $GLOBALS["USER"]->GetID()));
CBPDocument::SendExternalEvent($wf, $_GET['action'], array("Groups" => $arCurrentUserGroups, "User" => $GLOBALS["USER"]->GetID()), $arErrorTmp);
}
if (count($arErrorsTmp) > 0) {
foreach ($arErrorsTmp as $e) {
$arResult["ErrorMessage"] .= $e["message"] . "<br />";
}
}
}
}
if (strlen($arResult["ErrorMessage"]) <= 0) {
if (array_key_exists("back_url", $_REQUEST) && strlen($_REQUEST["back_url"]) > 0) {
$redirectPath = $_REQUEST["back_url"];
} else {
$redirectPath = $APPLICATION->GetCurPageParam("", array("action", "del_task_id", "del_view_id", 'action_task_id', 'wf'));
}
LocalRedirect($redirectPath);
示例9: array
}
if ($taskAssignedToUserId <= 0) {
$taskAssignedToUserId = $arResult["Task"]["PROPERTY_TaskAssignedTo"];
}
}
if (strlen($arResult["ErrorMessage"]) <= 0) {
$arErrorsTmp = array();
foreach ($arDocumentStates as $arDocumentState) {
CBPDocument::SendExternalEvent($arDocumentState["ID"], $_POST["bizproc_event"], array("Groups" => $arCurrentUserGroups, "User" => $GLOBALS["USER"]->GetID()), $arErrorTmp);
if (count($arErrorsTmp) > 0) {
foreach ($arErrorsTmp as $e) {
$arResult["ErrorMessage"] .= $e["message"] . "<br />";
}
}
if ($bizProcEvent == "SetResponsibleEvent" && $GLOBALS["USER"]->GetID() == $taskAssignedToUserId) {
CBPDocument::SendExternalEvent($arDocumentState["ID"], "HEEA_NotAccepted_ApproveEvent", array("Groups" => $arCurrentUserGroups, "User" => $GLOBALS["USER"]->GetID()), $arErrorTmp);
if (count($arErrorsTmp) > 0) {
foreach ($arErrorsTmp as $e) {
$arResult["ErrorMessage"] .= $e["message"] . "<br />";
}
}
}
}
}
}
}
if ($bTextModified) {
$arFields = array("MODIFIED_BY" => $GLOBALS["USER"]->GetID(), "DETAIL_TEXT" => $detailText);
$arErrorsTmp = array();
CIntranetTasks::Update($arParams["TASK_ID"], $arFields, $arErrorsTmp);
if (count($arErrorsTmp) > 0) {