- Модуль: workflow
- Путь к файлу: ~/bitrix/modules/workflow/classes/general/workflow.php
- Класс: CAllWorkflow
- Вызов: CAllWorkflow::CleanUpHistoryCopies
static function CleanUpHistoryCopies($DOCUMENT_ID=false, $HISTORY_COPIES=false)
{
$err_mess = (CAllWorkflow::err_mess())."
Function: CleanUpHistoryCopies
Line: ";
global $DB;
if($HISTORY_COPIES===false)
{
$HISTORY_COPIES = intval(COption::GetOptionString("workflow","HISTORY_COPIES","10"));
}
$DOCUMENT_ID = intval($DOCUMENT_ID);
if ($DOCUMENT_ID > 0)
{
$strSqlSearch = " and ID = $DOCUMENT_ID ";
}
else
{
$strSqlSearch = "";
}
$strSql = "SELECT ID FROM b_workflow_document WHERE 1=1 ".$strSqlSearch;
$z = $DB->Query($strSql, false, $err_mess.__LINE__);
while ($zr=$z->Fetch())
{
$DID = $zr["ID"];
$strSql = "
SELECT
ID
FROM
b_workflow_log
WHERE
DOCUMENT_ID = $DID
ORDER BY
ID desc
";
$t = $DB->Query($strSql, false, $err_mess.__LINE__);
$i = 0;
$str_id = "0";
while ($tr = $t->Fetch())
{
$i++;
if ($i > $HISTORY_COPIES)
{
$str_id .= ",".$tr["ID"];
}
}
$strSql = "DELETE FROM b_workflow_log WHERE ID in ($str_id)";
$DB->Query($strSql, false, $err_mess.__LINE__);
}
}