写入以编程方式自定义 table 并记录更改
Writing to customizing table programmatically and logging changes
我想以编程方式写入 SAP 定制 table。
如何将对 table 条目的更改添加到更改日志中?
我不需要运输。只有一个table,没有对应的语言依赖table.
我知道自定义 table 更改已记录到 table DBTABLOG。 (这与使用更改文档的应用程序数据更改不同)。
如何以编程方式将更改获取到 DTBABLOG 中?
我使用事务 SE56 'Generate Table Maintenance Dialog' 生成了似乎对这项任务有用的表格:
这会生成像 FORM bc_entry_log_fill
这样的形式,FORM vim_bc_logs_put
使用它。
是否有示例如何在没有生成对话框的情况下使用这些生成的表单?
首先,您应该稍微了解一下 SAP 日志记录概念。 SAP中的日志记录分为业务对象日志记录和table日志记录,暂且称其为技术性的吧。我们不考虑应用程序日志记录 (SLG1
),只讨论表格数据。
业务日志记录由变更文档 (SCDO
) 提供,技术日志记录 (tables) 由标准工具 (SCU3
) 提供。
- 更改文档用于记录自定义业务对象(但是通过预定义的 CD 对象记录标准对象也是可能的)。它是通过更改文档对象和相应的 FM 来实现的。
- 技术 table 日志记录或简单的 logging 用于跟踪 any table 中的更改,字面意思是任何.它在系统设置中设置,日志存储在
DBTABLOG
table.
您可以通过以下方式为任何 table(包括自定义)启用日志记录:
- 确保在 table 设置中启用复选框 记录数据更改 。可以在 table 的 技术设置 页面中检查。
- 将
rec/client
参数 (RZ11 tcode) 设置为您要跟踪更改的客户编号。如果要为所有客户端启用日志记录,请在此处设置 ALL
值(不推荐!)。
- 重新启动应用程序服务器。
回答您的特定问题:
您不需要 特殊的 FM 或方法来填充 DBTABLOG
table。无论更改是如何进行的,都会记录更改:通过维护视图、以编程方式或通过手动编辑。
您不需要任何特殊操作来填充此 table,并且您可以通过任何您喜欢的方式读取存储的记录(编写自己的报告、创建视图或其他)。
其他几个需要注意的地方:
- 自定义 table 已记录 by default。
- 您 should differentiate 在按交付功能自定义 table 和按数据 class 自定义 table 之间,即 APPL02。
第一个称为 组织和自定义数据 而第二个称为 自定义 tables 本身。
交付自定义 table 称为自定义,因为它们在更新期间不传输并且 upgrades.They 由客户维护。
数据 class 自定义 table 称为自定义,因为它们存储在数据库中的客户名称空间中,这种命名的主要原因是它们的物理表示。
前面的要点特别适用于交付 class 定制 tables.
- 特定定制的日志数据 table 也可以在
SPRO
事务中通过 转到 >> 更改日志。事先你应该 select 要查看日志的 SPRO 节点。
我想以编程方式写入 SAP 定制 table。
如何将对 table 条目的更改添加到更改日志中?
我不需要运输。只有一个table,没有对应的语言依赖table.
我知道自定义 table 更改已记录到 table DBTABLOG。 (这与使用更改文档的应用程序数据更改不同)。
如何以编程方式将更改获取到 DTBABLOG 中?
我使用事务 SE56 'Generate Table Maintenance Dialog' 生成了似乎对这项任务有用的表格:
这会生成像 FORM bc_entry_log_fill
这样的形式,FORM vim_bc_logs_put
使用它。
是否有示例如何在没有生成对话框的情况下使用这些生成的表单?
首先,您应该稍微了解一下 SAP 日志记录概念。 SAP中的日志记录分为业务对象日志记录和table日志记录,暂且称其为技术性的吧。我们不考虑应用程序日志记录 (SLG1
),只讨论表格数据。
业务日志记录由变更文档 (SCDO
) 提供,技术日志记录 (tables) 由标准工具 (SCU3
) 提供。
- 更改文档用于记录自定义业务对象(但是通过预定义的 CD 对象记录标准对象也是可能的)。它是通过更改文档对象和相应的 FM 来实现的。
- 技术 table 日志记录或简单的 logging 用于跟踪 any table 中的更改,字面意思是任何.它在系统设置中设置,日志存储在
DBTABLOG
table.
您可以通过以下方式为任何 table(包括自定义)启用日志记录:
- 确保在 table 设置中启用复选框 记录数据更改 。可以在 table 的 技术设置 页面中检查。
- 将
rec/client
参数 (RZ11 tcode) 设置为您要跟踪更改的客户编号。如果要为所有客户端启用日志记录,请在此处设置ALL
值(不推荐!)。 - 重新启动应用程序服务器。
回答您的特定问题:
您不需要 特殊的 FM 或方法来填充 DBTABLOG
table。无论更改是如何进行的,都会记录更改:通过维护视图、以编程方式或通过手动编辑。
您不需要任何特殊操作来填充此 table,并且您可以通过任何您喜欢的方式读取存储的记录(编写自己的报告、创建视图或其他)。
其他几个需要注意的地方:
- 自定义 table 已记录 by default。
- 您 should differentiate 在按交付功能自定义 table 和按数据 class 自定义 table 之间,即 APPL02。
第一个称为 组织和自定义数据 而第二个称为 自定义 tables 本身。
交付自定义 table 称为自定义,因为它们在更新期间不传输并且 upgrades.They 由客户维护。
数据 class 自定义 table 称为自定义,因为它们存储在数据库中的客户名称空间中,这种命名的主要原因是它们的物理表示。
前面的要点特别适用于交付 class 定制 tables. - 特定定制的日志数据 table 也可以在
SPRO
事务中通过 转到 >> 更改日志。事先你应该 select 要查看日志的 SPRO 节点。