有没有办法用sql更新_SYS_REPO的ACTIVE_OBJECTS?

2020-08-20 02:37发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我想更新ACTIVE_OBJECTS中CDATA列的_SYS_REPO中的HANA存储库对象,

我可以这样做吗? 我收到授权错误,特权不足。

我知道_SYS_REPO有点超出限制,但是我不想手动更新计算视图的Advance属性。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我想更新ACTIVE_OBJECTS中CDATA列的_SYS_REPO中的HANA存储库对象,

我可以这样做吗? 我收到授权错误,特权不足。

我知道_SYS_REPO有点超出限制,但是我不想手动更新计算视图的Advance属性。

付费偷看设置
发送
6条回答
SKY徐
1楼 · 2020-08-20 03:20.采纳回答

HI Mathew,

您应该能够这样做(请参阅 1735586 了解详情)。 只是想知道以下查询是否对您不起作用:

授予:

授予_SYS_REPO.ACTIVE_OBJECT上的UPDATE到

检查:

从SYS.GRANTED_PRIVILEGES WHERE GRANTEE ='<用户名>;

悻福寶寶
2楼-- · 2020-08-20 03:24
中选择GRANTEE,GRANTOR,OBJECT_TYPE,SCHEMA_NAME,PRIVILEGE,IS_GRANTABLE,IS_VALID

我只想更新"高级属性"面板中的一个选项:

-在ACTIVE_OBJECT的CDATA列中找到您的计算视图xml定义
 从" _SYS_REPO"中选择*。" ACTIVE_OBJECT"
 其中package_id ='<我的包裹>'
   和object_suffix ='calculationview';

 -默认情况下,您的用户没有UPDATE ON _SYS_REPO,因此请使用SYSTEM将权限授予您的用户
 将_SYS_REPO.ACTIVE_OBJECT上的UPDATE授予;
 -通过确保中的UPDATE为ACTIVE = TRUE来检查您的权限
 从SYS.GRANTED_PRIVILEGES的GRANTEE = <用户>处选择GRANTEE,GRANTOR,OBJECT_TYPE,SCHEMA_NAME,PRIVILEGE,IS_GRANTABLE,IS_VALID

 -制作没有更新属性的测试"计算"视图,使用CDATA中的REPLACE_REGEXPR将<原始xml>更改为<新xml>


 -在ACTIVE_OBJECTS的测试计算视图CDATA列上运行UPDATE
 更新" _SYS_REPO"。" ACTIVE_OBJECT" SET CDATA = REPLACE_REGEXPR('enforceSqlExecution =" false"'在cdata中使用'enforceSqlExecution =" true"')
 其中OBJECT_NAME = <测试计算视图> AND package_id ='<您的包裹>'
   AND object_suffix ='calculationview';

 -根据需要在CDATA列中验证XML regex替换
 从" _SYS_REPO"中选择OBJECT_NAME,CDATA。" ACTIVE_OBJECT",其中OBJECT_NAME = <测试计算视图>和package_id = <您的软件包>
   和object_suffix ='calculationview';


 -通过在where语句中删除OBJECT_NAME将更改应用于包中的所有Calculation视图

 更新" _SYS_REPO"。" ACTIVE_OBJECT" SET CDATA = REPLACE_REGEXPR('enforceSqlExecution =" false"'在cdata中使用'enforceSqlExecution =" true"')
 其中package_id ='<您的包裹>'
   AND object_suffix ='calculationview';


 
悻福寶寶
3楼-- · 2020-08-20 03:32

我会警告您不要直接更新此表。 您将绕过所有验证,历史记录,非活动/活动版本等。即使SAP自己的工具也不会直接更新此表。 这些工具通常通过存储过程作为API进行调用。

我强烈建议您通过REST API进行操作: https://help.sap.com/doc/f32a797a5ec94d8ba4d7ed240d95bfae/2.0.04/zh-CN/index.html

这是唯一为客户发布/支持的API 以编程方式更新存储库内容。

野沐沐
4楼-- · 2020-08-20 03:31

Florian Pfeffer 我不确定您的意思是对齐 xml模式。

我是否通过更改属性来添加依赖项?

haha101010
5楼-- · 2020-08-20 03:34

为此应该没问题(除非您没有历史记录条目)。

重新设置XML模式:XML视图的结构遵循XML模式定义,计算针对该定义。 查看XML已验证。 如果不进行直接更新而没有验证,则可能会创建损坏的内容。 只是想提一下这一点,以防万一您想改变比"简单"该简单布尔属性更多的东西。

哎,真难
6楼-- · 2020-08-20 03:30

很高兴知道!

一周热门 更多>