Добрый день, прошу вашей помощи.
Два дня пытаюсь решить проблему. Нужно создавать задачу из почты. Более или менее все заработало.
Есть такой код
Часть задач успешно создается, часть нет, отлавливаю такую ошибку:
Error Result success = NO Fatals:
* Операция над задачей запрещена: обновление
Два дня пытаюсь решить проблему. Нужно создавать задачу из почты. Более или менее все заработало.
Есть такой код
| Код |
|---|
if (CModule::IncludeModule("tasks")) {
$from = CMailUtil::ExtractMailAddress($arMessageFields['FIELD_FROM']);
$arrFilter = array("ACTIVE" => "Y","GROUPS_ID" => array($USER_GROUP_ID));
$sort_by = "ID";
$sort_ord = "ASC";
$dbUsers = CUser::GetList($sort_by, $sort_ord, $arrFilter);
while ($arUser = $dbUsers->Fetch()) {
$USERS_for_TASK[] = $arUser["ID"];
}
if(count($USERS_for_TASK)>0) {
$task = new \Bitrix\Tasks\Item\Task();
$task['TITLE'] = $from.':Обработка обращения от '.date('d.m.Y H:i:s');
$task['GROUP_ID'] = $USER_WS_GROUP_ID;
$task['DESCRIPTION'] = $arMessageFields['TITLE'].'<br>'.$arMessageFields['BODY'];
$task["RESPONSIBLE_ID"] = $USER_RES_ID;
$task["ACCOMPLICES"] = $USERS_for_TASK;
$task["STATUS"] = 2;
$task["CREATED_BY"] = $USER_RES_ID;
}
$newFiles = array();
$storage = \Bitrix\Disk\Driver::getInstance()->getStorageByGroupId($USER_WS_GROUP_ID);
if ($storage && $arMessageFields['ID'] > 0) {
$folder = $storage->getFolderForUploadedFiles();
//добавляем к задаче вложения
$dbr_attach = CMailAttachment::GetList(Array("NAME" => "ASC", "ID" => "ASC"), Array("MESSAGE_ID" => $arMessageFields['ID']));
while ($dbr_attach_arr = $dbr_attach->GetNext()) {
if ($dbr_attach_arr["FILE_NAME"]=='1.tmp' ||
preg_match_all('/\\.(?:exe|html|phtml|pl|js|htm|py|php|php4|php3|phtml|shtml)$/i', $dbr_attach_arr["FILE_NAME"], $p_matches, PREG_PATTERN_ORDER))
continue;
$dbr = CMailAttachment::GetByID($dbr_attach_arr["ID"]);
if($dbr_arr = $dbr->Fetch()) {
$fname = $_SERVER['DOCUMENT_ROOT']."/upload/from_mail/".$date.$dbr_arr["FILE_NAME"];
$handle = fopen($fname, 'wb');
fwrite($handle, $dbr_arr["FILE_DATA"]);
fclose($handle);
$arFile = CFile::MakeFileArray($fname);
$file = $folder->uploadFile($arFile, array(
'NAME' => $arFile["name"],
'CREATED_BY' => $USER_RES_ID
),
array(), true);
$newFiles[] = "n".$file->getId();
$task["UF_TASK_WEBDAV_FILES"] = $newFiles;
}
}
}
$result = $task->save();
AddMessage2Log($result, $task['TITLE'].' resultTask');
AddMessage2Log($result->dump(), $task['TITLE'].'resultTask->dump');
AddMessage2Log($result->isSuccess(), $task['TITLE'].'resultTask->isSuccess');
}
|
Error Result success = NO Fatals:
* Операция над задачей запрещена: обновление