出于计费目的,您可以使用客户服务基础设施,这类似于 AWS 或 Apple 在其生态系统中为此目的提供的功能。存储诸如 PBX 的呼叫详细记录之类的计费事件的“表”由客户服务基础设施管理。
有两种选择:
- 您的应用程序使用默认的审核和许可事件注册,例如“用户登录”、“第一次使用分区 #xyz”等,每个都带有特定的消息代码,例如“itgenlic125”。
- 您的应用程序定义自己的事件类型,例如“执行银行交易上传”,消息代码“mybillingmessagecode123”和数字“8”作为自然键中的数量。
第一个选项是自动完成的。这些数据还用于管理资源消耗和检测失控。
第二个选项最好使用 Invantive SQL 和数据字典表“auditevents”来完成。插入到审计事件中的所有记录都会自动异步转发给客户服务。要查看自应用程序启动以来的当前注册审核事件:
select *
from auditevents@datadictionary
在哪里:
- 发生日期:发生的时间。
- logging_level:总是“审计”。
- message_code:标识事件类型的代码。
- data_container_d:数据容器的 ID,用于分布式 SQL 事务。
- 分区:数据容器内的分区,用于在一个客户/实例下存储多个数据库的平台,例如 Exact Online 或 Microsoft SQL Server。
- session_id:会话的 ID。
- user_message:实际文本。
- last_nk:最后使用的自然键
- application_name:应用程序的名称。
- application_user:应用程序已知的用户。
- gui_action:GUI 内的操作。
- 以及一些审计和许可信息领域。
要注册自定义事件:
insert into auditevents@datadictionary select * from auditevents@datadictionary
只能提供部分字段;其余的都是自动确定的:
- 消息代码
- 用户信息
- last_natural_key
- 应用名称
- 应用程序用户
- gui_action
- gui_module
- 分割
- 提供者名称
- 参考键
- 参考表代码
- session_id
要自己从基础架构接收计费事件,您需要访问客户服务 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