Could not find record ошибка

Добрый день.

ИБ 8.7. Ключ Sentinel 5 users. BDE 5.0.1.
Есть 2-е виртуальные машины Win Server 2008 r2 на одной из которых установлен терминальный сервер. Через терминальный сервер заходят пользователи ИБ, на диске D этой ВМ лежит общая оболочка , пользователям ИБ подключается диск с базой, которая находится на 2-й виртуальной машине.

Если работает один пользователь — все в порядке, если от 2-х то периодически при работе с ИБ выскакивает сообщение — Could not find Record #8710 ($2706), а в протоколе появляется ОШИБКА ОТЛОЖЕННОЙ ЗАПИСИ и ссылается в основном на индексные файлы. Отключение антивируса не помогло.

Может кто сталкивался с этой проблемой ?
Заранее благодарен.

Доброго времени суток. Столкнулся с такой проблемой: добавляю ногового сотрудника в АБД Орион, добавляю фото и т.д. — при сохранении данных выскакивает ошибка: «Непредвиденная ошибка: Could not find record». Данные сотрудника по сути сохранены, после обновления данных в ОЗ, сотрудник в ОЗ появляется, но при прохождении через турникет с помощью Proximity карты, не отображаются данные сотрудника, в окне с фото — пишет «нет имени». Все построено на АРМ Орион 7.6.3. При проверке мастером — ошибок не выявлено. Подскажите, как бороться с данной ошибкой? 
Спасибо.

4 года 8 месяцев назад

avatar

#ссылка

0 ответов

Добавить ответ

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

ЗАДАН

4 года 8 месяцев назад

По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.

I’m trying to delete a record by passing id of that record. The code looks like this:

def destroy_catalogue_entry
    @catalogue_entry = CatalogueEntry.find(params[:catalogue_entry_id])
    if @catalogue_entry.destroy
      flash[:success] = 'Catalogue entry deleted successfully.'
    else
      flash[:error] = 'Failed...'
    end
  end

I’m getting an interesting error. When my function destroy_catalogue_entry is called it shows:

Couldn't find CatalogueEntry with 'id'=16

but as I comment If condition section and render @catalogue_entry as json, the output is printed successfully. So how is it possible? Am I making some silly mistake or is there logical reason. Please enlighten me.

The Whiz of Oz's user avatar

asked Jan 13, 2016 at 7:06

Imran Ahmad's user avatar

2

Solved! All I did is this:

 def destroy_catalogue_entry
    @catalogue_entry = CatalogueEntry.find(params[:catalogue_entry_id])
    if @catalogue_entry.destroy
      flash[:success] = 'Catalogue entry deleted Successfully'
      redirect_to action: :view_catalogue_entries, dc_id: @catalogue_entry.dc_id
    else
      flash[:success] = 'Failed...'
    end
  end

When I notice the console, the record was getting deleted successfully but after that there was a SELECT query for the same record, that is why it was throwing the error Couldn’t find CatalogueEntry with ‘id’=16. As I redirected it, the problem was solved.

answered Jan 13, 2016 at 7:51

Imran Ahmad's user avatar

Imran AhmadImran Ahmad

2,7783 gold badges28 silver badges49 bronze badges

I think destroy method is returning an object. In ruby anything other than false or null will be taken to true in if statement. You can do puts on destroy method and see what its returning.

answered Jan 13, 2016 at 7:40

quazar's user avatar

quazarquazar

5714 silver badges14 bronze badges

i presume your,

@catalogue_entry = CatalogueEntry.find(params[:catalogue_entry_id])

is returning that error because it cant find CatalogueEntry with id 6, make sure you have CatalogueEntry with that id.

answered Jan 13, 2016 at 7:51

Nirajan Pokharel's user avatar

Nirajan PokharelNirajan Pokharel

1,0641 gold badge7 silver badges15 bronze badges

1

Тоже столкнулся, моё решение может не кошерное но рабочее:
На всякий случай делаем архив базы.
бесплатная прога Paradox Data Editor (сайт разработчика

http://www.mitec.cz

) простая как кирпич;
в папке с базой находим таблицу pReaders.DB собственно это и есть таблица считывателей
в столбце DeviceID ищем адрес проблемного прибора, вероятнее всего его там нет;
открываем таблицу pKeys.DB в столбце Name ищем первое реле своего прибора и запоминаем Adress; (для второго считывателя если он есть — соответственно адрес второго реле)
Возвращаемся в pReaders.DB и добавляем туда новую строку где DeviceID- адрес прибора, Adress- тот что запомнили, Index — индекс считывателя любой свободный т.е которого нет в этом столбце, Name — имя считывателя(обязательно!)

Естественно все операции с базой проводятся после выхода из всех приложений Ориона.

Чиним прослушивание звонков

Работающая запись звонков выглядит так:

  1. 1.

    Если включена опция Выгружать записи звонков на портал, то к делу (звонку) прикрепляется файл в mp3 формате;

  2. 2.

    Если включена опция Оставлять записи на сервере, то при открытии дела (звонка) в описании после слов “Длительность звонка” появляется плеер и ссылка “Скачать запись”. При клике на плеер проигрывает запись, при нажатии “Скачать запись” – сохраняется файл.

Если включена запись по ссылке, то плеер внутри звонка

Если включена загрузка файла, то плеер сразу в timeline

Если запись не проигрывается и не скачивается, то выполняем последовательно следующие шаги.

1. Включена ли запись в Астериск?

Проверьте включена ли запись разговоров для всех используемых контекстов в Астериск. Для FreePBX она включается одной настройкой. В других случаях можно воспользоваться

несколькими командами

.

2. Работает ли ссылка в браузере?

Копируем ссылку для скачивания записи и пробуем вставить ее в адресную строку в браузере. Ссылка вида: http://<Asterisk IP>:8077/get_conversation_recording?id=1542785260.1998&from=89222222222&to=101

Если получили запись, значит со ссылкой все хорошо и запись не проигрывается из-за проблем с плеером в браузере на странице Битрикса. Рекомендуем попробовать проиграть в нескольких разных браузерах.
В Google Chrome 80 есть ограничение по получению смешанного контента, получаемого по http запросу.

Решить можно так

.

Если ответ по ссылке Not found – тестируем ссылку в консоли на сервере (следующий шаг).

Если включен первый вариант, когда записи загружаются на Битрикс, то проверьте, установлен ли lame на сервер, который преобразует wav файлы Астериска в mp3 файлы необходимые для Битрикса.

Подробнее…

3. Работает ли ссылка на сервере?

Выполняем команду wget ‘ссылка’ в консоли сервера, где стоит модуль. Если запись получена – запрос корректный, в базе запись находится, значит проблема в сети – запрос из Битрикса не может «достучаться» до сервера. Например, закрыт порт 8077 на роутере… Если запись не получена, то двигаемся дальше.

4. Проверяем путь до записи на сервере Астериск

Стандартно записи хранятся в директории /var/spool/asterisk/monitor/2018/… Эта директория должна быть прописана в конфиге, Раздел Asterisk, Путь до файлов с записями разговоров "recordings_dir": /var/spool/asterisk/monitor/

А также корректно ли выбран параметр Файлы с записями хранятся в поддиректориях согласно дате разговора «recordings_dir_subdirs_by_date»: true. Если эти настройки корректны, то проверяем, что в логе и базе данных. В Админке это выглядит следующим образом.

5. Проверяем запрос и ответ в логе модуля

Если путь до файла указан верно, то смотрим в лог модуля /var/log/bx24asrerisk.log .

При клике на ссылку “Скачать запись” в логе отмечается запрос в cdr для поиска пути до записи по параметрам звонка. Пример:

select `cdr`.`recordingfile`, `cdr`.`calldate` from `cdr` where `cdr`.`uniqueid` = '1540542254.2969' and (`cdr`.`src` like '%3512777720' or `cdr`.`dst` like '%3512777720' or `cdr`.`src` like '%912' or `cdr`.`dst` like '%912' or `cdr`.`src` in (112233, 123456) or `cdr`.`dst` in (112233, 123456)) and `cdr`.`recordingfile` <> '' and `cdr`.`recordingfile` is not null limit 1

И ответ базы данных на этот запрос: Result of record file path customization: [/var/spool/asterisk/monitor/…………..]

При невозможности выполнить запрос, будет указано “Could not find record by sql-query”. Если запрос корректный, но его содержание пустое, то в ответ будет Empty set.

Нужно взять эту команду и выполнить в консоли mysql либо в веб-версии админки модуля на странице логов (раздел MySQL).

Далее постепенно убирать параметры в запросе, пока не найдем, на каком аргументе ошибка.

select * from `cdr` where `cdr`.`uniqueid` = '1540542254.2969'

Должен вернуть строку в CDR по этому звонку.

  1. 1.

    Существует ли столбец “recordingfile”, куда пишется название файла записи? Если он называется по другому, то можно просто изменить его в админке Настройка / База данных / Имена столбцов. Если его нет, то нужно создать и настроить, чтобы в него писалось название файла записи.

  2. 2.

    В этом столбце есть названия записей? Если названий нет, то либо запись разговоров не включена, либо при разговоре не заполняется данное поле. Это может исправить администратор телефонии.

  3. 3.

    В поле ‘cnum’ есть номер звонящего? Если оно пустое, то вместо него можно использовать dst. Указать это в админке в разделе Настройка / База данных / Имена столбцов.

7. Формат файлов записей.

Для проигрывания записей в Битрикс24 и для успешного конвертирования в mp3, файлы записей на АТС должны храниться в формате wav, формат WAV не поддерживается Битрикс24 и Lame(кодек используемый модулем для конвертирования).

В FreePBX формат записей можно поменять в меню Setting — Advanced Settings — Call Recording Format

8. Свободное место на диске в Битриксе.

Если в настройках модуля указано отправлять записи файлами в Битрикс и файлы не прикрепляются нужно проверить количество свободного места на диске в Битриксе.

Понравилась статья? Поделить с друзьями:
  • Could not find altserver ошибка
  • Could not find altserver как исправить ошибку
  • Could not execute query ошибка роль не существует
  • Could not enter match inprogress pubg ошибка
  • Could not create merged face blender ошибка