Регистрация пользовательских событий аудита для выставления счетов

Мы запускаем специальное приложение на 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
Другие вопросы по тегам