云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

大带宽_automation服务器不能创建对象_怎么样

小七 141 0

大带宽_automation服务器不能创建对象_怎么样

ABAP开发人员经常面临的问题之一是需要存储任意值进行处理。这些值并不总是证明创建一个新表是正确的,并且没有方便的地方来存储这些值。例如,某些逻辑依赖于主数据值(如某个客户),或者开发人员提供了一些工具,提供了一些需要以非结构化方式保存的自定义选项。

如果不需要创建单独的配置表,开发人员通常会想出一些创造性的方法来存储值,以避免硬编码,例如将条目写入TVARV。然而,这并不是一个非常简洁的解决方案,有时会导致更具体的子案例的尴尬解决方法,比如发明将复合键放入名称的约定。

我在这里介绍的解决方案(参见下面的源代码链接)由一个分层值存储组成,与Microsoft Windows注册表没有什么不同。它允许开发人员检索和存储不能与某些配置整齐关联的值,并且不保证创建新表。

存储由INDX表支持,在每一个ABAP安装中,您都会发现它是标准的,通过EXPORT TO DATABASE和IMPORT FROM DATABASE语句可以方便地访问它。当然,没有理由不为此使用自定义表,但是使用INDX可以避免创建另一个表;尽管您担心其中的键与其他条目冲突,您可以使用search和replace来指定您自己的表。

解决方案以API的形式呈现,包含在include中的源。当然,您可以使用SE24中类编辑器中的源代码视图将类添加到存储库中,但是将代码作为包含进行分发非常方便,我完全是为了方便。

此外,这些值都存储为字符串,不过我认为如果您始终读取或写入相同类型的字段,这应该不是问题。也许在将来的版本中,我会考虑为存储的每个值添加一个类型规范。

此外,还有一些乐观锁形式的并发控制,尽管我不完全确定是否有实际需要。向注册表中添加新条目(键)会立即保存新条目和父条目,理财返利,而每个条目中的值必须显式保存(尽管在对条目进行更改时会自动保存这些值;我仍在考虑自动保存所有更改)。

解决方案的第二部分是注册表浏览器/编辑器,它类似于Windows上的RegEdit应用程序,大数据与应用,允许管理员/顾问检查注册表的内容。

(编辑器与库一样,作为一段自包含的源代码提供,可以粘贴到报表程序中,从而避免您在存储库中创建其他项。请参阅下面的源代码链接)。

以下是如何使用注册表的示例:

*使注册表API可用于我们的程序

包括zlib\u注册表。

数据:reg\u root TYPE REF to lcl\u registry\u entry。

数据:reg\u entry TYPE REF to lcl\u registry\u entry。

数据:lv\u customer TYPE kunnr。

数据:lv\u run date TYPEd、

数据:lv\U timestamp TYPE timestamp.

启动选择。

*获取注册表的根条目

reg\U root=lcl\U registry\U entry=>获取\U root()。

*如果我们想在启动时确保某个条目存在,我们

*可以执行以下操作(例如,在加载程序中):

reg\ U root->create\ U by\ U path('销售/增强/处理\ XYZ')。

*检索特定条目。如果没有上述行,怎么选购云服务器,

*我们必须检查每次调用GET\u SUBENTRY()的结果

*以确保它已绑定。

reg\u entry=reg\u root->GET\u SUBENTRY('Sales')->GET\u SUBENTRY('Enhancements')->GET\u SUBENTRY('Process\u XYZ')。

*从条目获取特定值:

lv\u customer=reg\u entry->GET\u value('ProcessCustomer')。

*将值写入条目:

lv\u run\u date=sy–datum。

reg\u entry->set\u value(KEY='LastRunDate'value=lv\u run\u date)。

GET TIME STAMP FIELD lv\u timestamp。

reg\u entry->set\u value(KEY='LastRunDateTime'value=lv\u timestamp)。

*保存条目

reg\u entry->save()。

我已经给出了一些想法为了安全,您需要防止您的注册表部分被另一个应用程序或人员无意中覆盖。一种方法是锁定注册表,并要求应用程序写入其条目并提供适用的UI,这类似于Windows应用程序的操作方式,例如记录用户设置时。另一种方法是扩展编辑器,使其可以运行以仅访问注册表树的某个分支,并允许特定用户访问该分支。

您可以找到包含库的整个源代码,以及GitHub上的注册表编辑器和示例程序:https://gist.github.com/mydoghasworms/08ea60e95dd1fa90c90a

本文改编自我原来的博客文章:ABAP的任意值存储(注册表)

嗨,淘客返利系统,马丁,

感谢注册库和博客。

我以前创建了几个"设置表"。我认为一个分级注册表是存储我们的设置的更好的方法。

我注意到注册表路径名可能不包含数字。

你是故意排除数字的吗?

谢谢,

托马斯

你好,物联网公司排名,托马斯,

谢谢你的回复。

不,省略数字是疏忽。感谢您指出,我已经更改了要点上的代码。

问候,

马丁

太好了!

我使用的大多是全局接口的自定义表和常量(根据用途而定),但这是一种更加优雅和灵活的技术。