コード例 #1
0
 public static function OnEvent($workflowId, $eventName, $arEventParameters = array())
 {
     $num = func_num_args();
     if ($num > 3) {
         for ($i = 3; $i < $num; $i++) {
             $arEventParameters[] = func_get_arg($i);
         }
     }
     if ($arEventParameters["EntityId"] != null && $arEventParameters["EntityId"] != $arEventParameters[0]) {
         return;
     }
     try {
         CBPRuntime::SendExternalEvent($workflowId, $eventName, $arEventParameters);
     } catch (Exception $e) {
     }
 }
コード例 #2
0
ファイル: documentservice.php プロジェクト: rasuldev/torino
 public static function OnUnlockDocument($workflowId, $eventName, $documentId = array())
 {
     CBPRuntime::SendExternalEvent($workflowId, $eventName, array());
 }
コード例 #3
0
 public static function PostTaskForm($arTask, $userId, $arRequest, &$arErrors, $userName = "", $realUserId = null)
 {
     $arErrors = array();
     try {
         $userId = intval($userId);
         if ($userId <= 0) {
             throw new CBPArgumentNullException("userId");
         }
         $arEventParameters = array("USER_ID" => $userId, "REAL_USER_ID" => $realUserId, "USER_NAME" => $userName, "COMMENT" => isset($arRequest["task_comment"]) ? $arRequest["task_comment"] : '');
         if (isset($arRequest['INLINE_USER_STATUS']) && $arRequest['INLINE_USER_STATUS'] != CBPTaskUserStatus::Ok) {
             throw new CBPNotSupportedException(GetMessage("BPAA_ACT_NO_ACTION"));
         }
         CBPRuntime::SendExternalEvent($arTask["WORKFLOW_ID"], $arTask["ACTIVITY_NAME"], $arEventParameters);
         return true;
     } catch (Exception $e) {
         $arErrors[] = array("code" => $e->getCode(), "message" => $e->getMessage(), "file" => $e->getFile() . " [" . $e->getLine() . "]");
     }
     return false;
 }
コード例 #4
0
 public static function PostTaskForm($arTask, $userId, $arRequest, &$arErrors, $userName = "", $realUserId = null)
 {
     $arErrors = array();
     $runtime = CBPRuntime::GetRuntime();
     $runtime->StartRuntime();
     $documentService = $runtime->GetService("DocumentService");
     try {
         $userId = intval($userId);
         if ($userId <= 0) {
             throw new CBPArgumentNullException("userId");
         }
         $arEventParameters = array("USER_ID" => $userId, "REAL_USER_ID" => $realUserId, "USER_NAME" => $userName, "COMMENT" => $arRequest["task_comment"], "RESPONCE" => array());
         if ($arTask["PARAMETERS"] && is_array($arTask["PARAMETERS"]) && count($arTask["PARAMETERS"]) > 0 && $arTask["PARAMETERS"]["REQUEST"] && is_array($arTask["PARAMETERS"]["REQUEST"]) && count($arTask["PARAMETERS"]["REQUEST"]) > 0) {
             $arRequest = $_REQUEST;
             foreach ($_FILES as $k => $v) {
                 if (array_key_exists("name", $v)) {
                     if (is_array($v["name"])) {
                         $ks = array_keys($v["name"]);
                         for ($i = 0, $cnt = count($ks); $i < $cnt; $i++) {
                             $ar = array();
                             foreach ($v as $k1 => $v1) {
                                 $ar[$k1] = $v1[$ks[$i]];
                             }
                             $arRequest[$k][] = $ar;
                         }
                     } else {
                         $arRequest[$k] = $v;
                     }
                 }
             }
             foreach ($arTask["PARAMETERS"]["REQUEST"] as $parameter) {
                 $arErrorsTmp = array();
                 $arEventParameters["RESPONCE"][$parameter["Name"]] = $documentService->GetFieldInputValue($arTask["PARAMETERS"]["DOCUMENT_TYPE"], $parameter, $parameter["Name"], $arRequest, $arErrorsTmp);
                 if (count($arErrorsTmp) > 0) {
                     $m = "";
                     foreach ($arErrorsTmp as $e) {
                         $m .= $e["message"] . "<br />";
                     }
                     throw new CBPArgumentException($m);
                 }
                 if (CBPHelper::getBool($parameter['Required']) && CBPHelper::isEmptyValue($arEventParameters['RESPONCE'][$parameter['Name']])) {
                     throw new CBPArgumentNullException($parameter["Name"], str_replace("#PARAM#", htmlspecialcharsbx($parameter["Title"]), GetMessage("BPRIA_ARGUMENT_NULL")));
                 }
             }
         }
         CBPRuntime::SendExternalEvent($arTask["WORKFLOW_ID"], $arTask["ACTIVITY_NAME"], $arEventParameters);
         return true;
     } catch (Exception $e) {
         $arErrors[] = array("code" => $e->getCode(), "message" => $e->getMessage(), "file" => $e->getFile() . " [" . $e->getLine() . "]");
     }
     return false;
 }
コード例 #5
0
 public static function PostTaskForm($arTask, $userId, $arRequest, &$arErrors, $userName = "")
 {
     $arErrors = array();
     try {
         $userId = intval($userId);
         if ($userId <= 0) {
             throw new CBPArgumentNullException("userId");
         }
         $arEventParameters = array("USER_ID" => $userId, "USER_NAME" => $userName, "COMMENT" => $arRequest["task_comment"]);
         if (strlen($arRequest["approve"]) > 0) {
             $arEventParameters["APPROVE"] = true;
         } elseif (strlen($arRequest["nonapprove"]) > 0) {
             $arEventParameters["APPROVE"] = false;
         } else {
             throw new CBPNotSupportedException(GetMessage("BPAA_ACT_NO_ACTION"));
         }
         CBPRuntime::SendExternalEvent($arTask["WORKFLOW_ID"], $arTask["ACTIVITY_NAME"], $arEventParameters);
         return true;
     } catch (Exception $e) {
         $arErrors[] = array("code" => $e->getCode(), "message" => $e->getMessage(), "file" => $e->getFile() . " [" . $e->getLine() . "]");
     }
     return false;
 }
コード例 #6
0
ファイル: document.php プロジェクト: ASDAFF/bitrix-5
	/**
	* Метод отправляет событие рабочему потоку.
	*
	* @param string $workflowId - код рабочего потока.
	* @param string $workflowEvent - событие.
	* @param array $arParameters - параметры события.
	* @param array $arErrors - массив ошибок, которые произошли при отправке события в виде array(array("code" => код_ошибки, "message" => сообщение, "file" => путь_к_файлу), ...).
	*/
	public function SendExternalEvent($workflowId, $workflowEvent, $arParameters, &$arErrors)
	{
		$arErrors = array();

		try
		{
			CBPRuntime::SendExternalEvent($workflowId, $workflowEvent, $arParameters);
		}
		catch(Exception $e)
		{
			$arErrors[] = array(
				"code" => $e->getCode(),
				"message" => $e->getMessage(),
				"file" => $e->getFile()." [".$e->getLine()."]"
			);
		}
	}