Регистрация пользовательских событий аудита для выставления счетов
Мы запускаем специальное приложение на Invantive Data Access Point, которое добавляет бизнес-функциональность в Exact Online. В целях выставления счетов мы хотели бы как-то зарегистрировать фактическое использование программного обеспечения, как это определено в бизнес-терминах, вместо использования памяти, процессора, выполненных операторов SQL и т. Д.
У нас пока нет пользовательских таблиц, и я бы хотел сохранить их в таком виде, чтобы все состояние сохранялось в памяти и только в Exact Online. Так что "вставить в mytable@sqlserver..." не вариант. Exact Online также не дает возможности создавать собственные таблицы, как в Salesforce.
Как мы можем как-то зарегистрировать оплачиваемые события, такие как "Выполнено закачка 8 банковских транзакций" при этом условии?
1 ответ
В целях выставления счетов вы можете воспользоваться инфраструктурой обслуживания клиентов, которая аналогична функциональности, предлагаемой AWS или Apple для этой цели в их экосистеме. "Таблица", в которой хранятся события выставления счетов, такие как Подробная запись вызова УАТС, управляется инфраструктурой обслуживания клиентов.
Есть два варианта:
- Ваши приложения используют стандартные события аудита и регистрации лицензий, такие как "Пользователь вошел в систему", "Первое использование раздела #xyz" и т. Д., Каждое из которых имеет определенный код сообщения, например "itgenlic125".
- Ваши приложения определяют свои собственные типы событий, такие как "Выполнение загрузки банковских транзакций", с кодом сообщения "mybillingmessagecode123" и числом "8" в качестве количества в натуральном ключе.
Первый вариант выполняется автоматически и всегда. Эти данные также используются для управления потреблением ресурсов и обнаружения побегов.
Второй вариант лучше всего сделать с использованием Invantive SQL с таблицей словаря данных "auditevents". Все записи, вставленные в аудит-события, автоматически асинхронно передаются в службу поддержки клиентов. Чтобы просмотреть текущие события аудита регистра с момента запуска приложения:
select *
from auditevents@datadictionary
где:
- originrence_date: когда это произошло.
- logging_level: всегда "Audit".
- Код сообщения: код, идентифицирующий тип события.
- data_container_d: идентификатор контейнера данных, используемого с распределенными транзакциями SQL.
- partition: раздел в контейнере данных для таких платформ, как Exact Online или Microsoft SQL Server, которые хранят несколько баз данных под одним клиентом / экземпляром.
- session_id: идентификатор сессии.
- user_message: фактический текст.
- last_nk: последний использованный натуральный ключ
- application_name: имя приложения.
- application_user: пользователь, известный приложению.
- gui_action: действие в GUI.
- И некоторые аудиторские и лицензионные информационные поля.
Чтобы зарегистрировать пользовательское событие:
insert into auditevents@datadictionary select * from auditevents@datadictionary
Могут быть предоставлены только некоторые поля; остальные определяются автоматически:
- message_code
- USER_MESSAGE
- last_natural_key
- Имя приложения
- application_user
- gui_action
- gui_module
- раздел
- имя провайдера
- reference_key
- reference_table_code
- идентификатор сессии
Чтобы получать события выставления счетов самостоятельно из инфраструктуры, вам потребуется доступ к API обслуживания клиентов или их автоматическая пересылка на почту, Slack, RocketChat или канал Mattermost.
Пример SQL:
insert into auditevents@datadictionary
( message_code
, user_message
, last_natural_key
, application_name
, gui_action
, gui_module
, reference_key
, reference_table_code
, partition
)
select 'xxmycode001' message_code
, 'Processed PayPal payments in Exact Online for ' || divisionlabel user_message
, 'today' last_natural_key
, 'PayPalProcessor' application_name
, 'xx-my-paypal-processor-step-2' gui_action
, 'xx-my-payal-processor' gui_module
, clr_id reference_key
, 'clr' reference_table_code
, division partition
from settings@inmemorystorage