1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
trackingservice.php
См. документацию.
1<?
2include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/bizproc/classes/general/trackingservice.php");
3
5 extends CBPAllTrackingService
6{
7 public function Write($workflowId, $type, $actionName, $executionStatus, $executionResult, $actionTitle = "", $actionNote = "", $modifiedBy = 0)
8 {
9 global $DB;
10
11 if (!$this->canWrite($type, $workflowId))
12 return;
13
14 $workflowId = trim($workflowId);
15 if (strlen($workflowId) <= 0)
16 throw new Exception("workflowId");
17
18 $actionName = trim($actionName);
19 if (strlen($actionName) <= 0)
20 throw new Exception("actionName");
21
22 $type = intval($type);
23 $executionStatus = intval($executionStatus);
24 $executionResult = intval($executionResult);
25 $actionNote = trim($actionNote);
26
27 $modifiedBy = intval($modifiedBy);
28
29 $DB->Query(
30 "INSERT INTO b_bp_tracking(WORKFLOW_ID, TYPE, MODIFIED, ACTION_NAME, ACTION_TITLE, EXECUTION_STATUS, EXECUTION_RESULT, ACTION_NOTE, MODIFIED_BY) ".
31 "VALUES('".$DB->ForSql($workflowId, 32)."', ".intval($type).", ".$DB->CurrentTimeFunction().", '".$DB->ForSql($actionName, 128)."', '".$DB->ForSql($actionTitle, 255)."', ".intval($executionStatus).", ".intval($executionResult).", ".(strlen($actionNote) > 0 ? "'".$DB->ForSql($actionNote)."'" : "NULL").", ".($modifiedBy > 0 ? $modifiedBy : "NULL").")"
32 );
33 }
34
35 public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
36 {
37 global $DB;
38
39 if (count($arSelectFields) <= 0)
40 $arSelectFields = array("ID", "WORKFLOW_ID", "TYPE", "MODIFIED", "ACTION_NAME", "ACTION_TITLE", "EXECUTION_STATUS", "EXECUTION_RESULT", "ACTION_NOTE", "MODIFIED_BY");
41
42 static $arFields = array(
43 "ID" => Array("FIELD" => "T.ID", "TYPE" => "int"),
44 "WORKFLOW_ID" => Array("FIELD" => "T.WORKFLOW_ID", "TYPE" => "string"),
45 "TYPE" => Array("FIELD" => "T.TYPE", "TYPE" => "int"),
46 "ACTION_NAME" => Array("FIELD" => "T.ACTION_NAME", "TYPE" => "string"),
47 "ACTION_TITLE" => Array("FIELD" => "T.ACTION_TITLE", "TYPE" => "string"),
48 "MODIFIED" => Array("FIELD" => "T.MODIFIED", "TYPE" => "datetime"),
49 "EXECUTION_STATUS" => Array("FIELD" => "T.EXECUTION_STATUS", "TYPE" => "int"),
50 "EXECUTION_RESULT" => Array("FIELD" => "T.EXECUTION_RESULT", "TYPE" => "int"),
51 "ACTION_NOTE" => Array("FIELD" => "T.ACTION_NOTE", "TYPE" => "string"),
52 "MODIFIED_BY" => Array("FIELD" => "T.MODIFIED_BY", "TYPE" => "int"),
53 );
54
55 $arSqls = CBPHelper::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
56
57 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
58
59 if (is_array($arGroupBy) && count($arGroupBy)==0)
60 {
61 $strSql =
62 "SELECT ".$arSqls["SELECT"]." ".
63 "FROM b_bp_tracking T ".
64 " ".$arSqls["FROM"]." ";
65 if (strlen($arSqls["WHERE"]) > 0)
66 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
67 if (strlen($arSqls["GROUPBY"]) > 0)
68 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
69
70 $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
71 if ($arRes = $dbRes->Fetch())
72 return $arRes["CNT"];
73 else
74 return False;
75 }
76
77 $strSql =
78 "SELECT ".$arSqls["SELECT"]." ".
79 "FROM b_bp_tracking T ".
80 " ".$arSqls["FROM"]." ";
81 if (strlen($arSqls["WHERE"]) > 0)
82 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
83 if (strlen($arSqls["GROUPBY"]) > 0)
84 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
85 if (strlen($arSqls["ORDERBY"]) > 0)
86 $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." ";
87
88 if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) <= 0)
89 {
90 $strSql_tmp =
91 "SELECT COUNT('x') as CNT ".
92 "FROM b_bp_tracking T ".
93 " ".$arSqls["FROM"]." ";
94 if (strlen($arSqls["WHERE"]) > 0)
95 $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
96 if (strlen($arSqls["GROUPBY"]) > 0)
97 $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";
98
99 $dbRes = $DB->Query($strSql_tmp, false, "File: ".__FILE__."<br>Line: ".__LINE__);
100 $cnt = 0;
101 if (strlen($arSqls["GROUPBY"]) <= 0)
102 {
103 if ($arRes = $dbRes->Fetch())
104 $cnt = $arRes["CNT"];
105 }
106 else
107 {
108 // only for MySQL
109 $cnt = $dbRes->SelectedRowsCount();
110 }
111
112 $dbRes = new CDBResult();
113 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
114 }
115 else
116 {
117 if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) > 0)
118 $strSql .= "LIMIT ".intval($arNavStartParams["nTopCount"]);
119
120 $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
121 }
122
123 return $dbRes;
124 }
125
126 function ClearOld($days = 0)
127 {
128 global $DB;
129
130 $days = intval($days);
131 if ($days <= 0)
132 $days = 90;
133
134 $strSql = "DELETE t ".
135 "FROM b_bp_tracking t ".
136 " LEFT JOIN b_bp_workflow_instance i ON (t.WORKFLOW_ID = i.ID) ".
137 "WHERE i.ID IS NULL ".
138 " AND t.MODIFIED < DATE_SUB(NOW(), INTERVAL ".$days." DAY) ".
139 " AND t.TYPE <> 6";
140 $bSuccess = $DB->Query($strSql, true);
141
142 return $bSuccess;
143 }
144
145}
146?>
$type
Определения options.php:106
ClearOld($days=0)
Определения trackingservice.php:126
static GetList($arOrder=array("ID"=> "DESC"), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения trackingservice.php:35
canWrite($type, $workflowId)
Определения trackingservice.php:325
Write($workflowId, $type, $actionName, $executionStatus, $executionResult, $actionTitle="", $actionNote="", $modifiedBy=0)
Определения trackingservice.php:7
$arFields
Определения dblapprove.php:5
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
$arRes
Определения options.php:104
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168