需要记录复杂的数据。那很容易。使用应用程序日志BAL\u Log\u CREATE,淘客平台,大数据软件,用BAL\u Log\u MSG\u add添加消息,完成后用BAL\u DB\u save保存协议。
然后的任务是保存数据,即使启动了回滚。
ABAP消息通道
解决此任务的唯一方法是:AMC–ABAP消息通道。
想法:
在后台创建侦听器作业将消息发送给侦听器在后台作业中以任何方式保存日志数据
侦听器在自己的任务中运行,可以做任何它想做的事情(等待、保存、提交…)。
要创建消息通道,您必须启动事务SAMC并定义通道、侦听程序和发送程序(或类)。
有不同的消息类型ID(文本,二进制和PCP–推送通道协议),其中我选择文本作为演示目的。
创建一个侦听器
可以使用以下代码简单地创建侦听器:
我使用了一个唯一的标识,以确保每个发送者都有自己的侦听器。
以确保侦听器可以接收数据,您将需要创建一个类来实现接口,大数据工具,如果\u AMC\u MESSAGE \u RECEIVER \u TEXT.
接口方法如果\u AMC\u MESSAGE \u RECEIVER \u TEXT ~ RECEIVE将接收文本字符串。
创建发送方
发送数据也很容易:
创建作业
要创建我们使用的后台作业,请执行以下操作:
调用函数模块作业\u OPEN提交具有唯一ID的侦听程序调用功能模块JOB\u CLOSE
Protocol
创建了两个日志:
使用应用程序日志的主日志(所有模糊都在其中)侦听器的作业协议。
每个文本字符串由消息类型"S"引发,品高云,出现在作业日志中。
使用信息
以下程序在后台启动(为给定id创建侦听器),然后发送一些消息,执行回滚,发送进一步的消息并结束通信。
如果您在回滚之前准备好保存数据,企业软件公司,则后台作业中更新的所有数据都不会受到影响。
您不能在后台作业中执行提交(您将收到简短的dump AMC\u非法\u语句)以确保应用程序数据将被保存,但您可以确保会话将一直可用到最后以受控的方式保存数据。
我不确定是否应该有一个叫做停止消息传递的地方…在这种情况下,作业最多运行10秒,并且随着作业的结束,消息通道也将停止。
改进
在这个简单版本(概念验证)中,只能发送简单的文本字符串。您也可以使用消息类型ID"PCP"(Interface IF \u AC \u message \u type \u PCP)发送序列化的复杂数据。
SAP演示程序
如果您对ABAP消息通道感兴趣,请查看演示接收AMC和演示发送AMC程序。