Удалите встроенный идентификатор контакта фильтра из отчетов об инцидентах на портале для клиентов в Oracle RightNow

Речь идет о отображении "Отчета об инцидентах" на основе "Организации" на портале для клиентов. Мы войдем в Организацию в поле ввода, а затем нажмем "отправить". Отчет об инциденте должен отображаться только для этой Организации.

Это происходит, но идентификатор контакта "Logged In" (c_id) также передается в качестве фильтра в этот отчет об инциденте.

Можно ли удалить фильтр c_id, наложенный на вышеуказанный отчет об инцидентах? Как удалить этот фильтр идентификаторов контактов из отчета об инциденте?

Кто-то предложил использовать хук pre_report_get_data, а затем сбросить фильтр Contact ID (c_id). Но я не смог понять, как это сделать.

Может кто-нибудь дать мне фрагмент кода для удаления фильтра c_id с помощью хука pre_report_get_data? Или какое-то другое решение этой проблемы.

1 ответ

Скопируйте отчет, который вы хотите отредактировать, в новую версию, затем отредактируйте фильтры отчета по своему усмотрению. Вы не сможете редактировать стандартные стандартные отчеты напрямую, но с помощью копии вы можете редактировать ее полностью.

РЕДАКТИРОВАТЬ

Фильтры контактов всегда применяются к фильтрам портала клиентов из-за модели пользователя на портале клиентов. CP ожидает, что пользователь в сети является конкретным клиентом и должен иметь доступ только к контактным данным, относящимся к конкретному контакту в пользовательском сеансе. Это механизм безопасности и работает как задумано.

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

Если вы хотите использовать хук pre_report_get_data, то довольно просто включить хук в файле settings/hooks.php. Наведите указатель мыши на модель и метод, который вы хотите вызвать. Затем отредактируйте переданный массив данных для сброса c_id из массива фильтров, как упоминалось в другом посте.

$rnHooks['pre_report_get'][] = array(
   'class' => 'filter_report',
   'function' => 'report_run',
   'filepath' => ''
); 

Это говорит двигателю крюка, чтобы вызвать report_run() метод в filter_report модель. Это, как правило, примеры файлов кода в CP, так что вы должны сделать большую часть работы, уже выполненной для реализации этой ловушки.

function report_run($hookData)
{
    if($hookData['data']['reportId'] == '100335') //Change the report ID to the report that you need to call  
    {
        unset($hookData['data']['filters']['c_id']); //you'll need to lookup the key of the filter in the report to figure out which one to unset
    }
}
Другие вопросы по тегам