1

我们正在 Invantive Data Access Point 上运行一个自定义应用程序,该应用程序将业务功能添加到 Exact Online。出于计费目的,我们希望以某种方式注册软件的实际使用,如业务术语中定义的那样,而不是使用的内存、CPU、执行的 SQL 语句等。

我们还没有自定义表格,我想保持这种状态,所以整个状态都保存在内存中,并且只保存在 Exact Online 中。所以“插入 mytable@sqlserver ...”不是一个选项。Exact Online 也不像 Salesforce 那样提供创建自定义表格的可能性。

在这种情况下,我们如何才能以某种方式注册可计费事件,例如“执行了 8 笔银行交易的上传”?

4

1 回答 1

1

出于计费目的,您可以使用客户服务基础设施,这类似于 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
于 2017-06-01T13:12:17.143 回答