近日一个朋友做 SAP AMDP 开发时,遇到如下错误消息:XXX is client-specific and restricts access to a client. The calling AMDP method XX must also allow this restriction.

本文将这个错误消息相关的背景知识记录如下。

发生问题的场景是在基于 S4/HANA 系统的 ABAP Test Cockpit ATC 和 CVA 检查的代码增强过程中,决定将 OpenSQL Select 语句移动到通过 HANA 数据库上的 AMDP 存储过程访问的 CDS 视图中。

创建 CDS 视图,在其中使用 WHERE 子句中的会话参数 $session.client 根据 MANDT 列上的会话客户端值过滤数据,如下面的 SELECT 代码所示:

select * from vbrk where vbrk.mandt = $session.client;

当我尝试在我的 AMDP 类方法(HANA 数据库上的存储过程)中使用此 CDS 视图时,我遇到了以下错误,导致 AMDP 无法成功编译和激活。

xxx is client-specific and restricts access to a client. The calling AMDP method “AMDP_METHOD” must also allow this restriction.

在以下代码行中,ABAP 开发人员可以看到我如何在 AMDP 中调用 CDS 视图并使用 APPLY_FILTER 命令应用 WHERE 子句。

lt_vbrk = apply_filter ("Z_CDS_VIEW", :iv_where);

经过官网的搜索,我发现存储过程需要在 AMDP 类方法声明中定义其他 AMDP 选项。

需要修改 AMDP 方法定义如下:

class-methods AMDP_METHOD
AMDP OPTIONS READ-ONLY
CDS SESSION CLIENT current
importingvalue(iv_where) type string
exportingvalue(et_invoicelist_xl) type ZSOM_INF_INV_VBRK_TT
raising cx_amdp_error .

方法的实现体无需进行任何修改。

如果指定了选项 READ-ONLY,则在数据库过程或数据库函数的实现中只允许读取数据库表。 只能调用也标记为只读的其他 AMDP 方法的数据库过程或数据库函数。 这通过语法检查或在运行时进行检查。

此属性也可以在使用 METHOD meth BY DATABASE PROCEDURE|FUNCTION 的 AMDP 方法的实现中使用附加选项来指定。 它适用于在声明或方法的实现中指定时,或两者兼而有之。

在 AMDP 函数或 L 过程的实现中,选项 READ-ONLY 必须至少指定一次。 如果在带有 RETURNING 参数的方法声明中使用了附加的 AMDP OPTIONS,则必须已在声明中指定选项 READ-ONLY。

关于 SAP AMDP 调用错误消息 client-specific and restricts access to a client相关推荐

  1. SAP APF框架错误消息Filter is too complex的处理

    本文介绍SAP APF框架错误消息Filter is too complex的处理思路. Created by Wang, Jerry, last modified on Jun 03, 2016 要 ...

  2. 如何处理SAP云平台错误消息 there is no compute unit quota for subaccount

    当我试图部署一个应用到SAP云平台的neo环境时: 指定Compute Unit Size为Lite: 点击Deploy按钮,遇到如下错误消息:there is no compute unit quo ...

  3. SAP Fiori Launchpad 错误消息 - 400 File is not contained in a resource root

    Created by Jerry Wang, last modified on Aug 25, 2015 The following error message occurs: 该error在line ...

  4. SAP OData实现错误消息:OPPORTUNITIES_GET_ENTITY not implemented in data provider class

    Created by Jerry Wang, last modified on Nov 07, 2014 /sap/opu/odata/SAP/CRM_OPPORTUNITY/Opportunitie ...

  5. 如何处理SAP Fiori Launchpad错误消息:Could not start the app due to a configuration problem

    Created by Jerry Wang, last modified on Dec 03, 2015 关键词 Container ushell getService NavTargetResolu ...

  6. 如何处理APF框架的错误消息:Filter is too complex error

    本文介绍SAP APF框架错误消息的处理: Filter is too complex error Created by Wang, Jerry, last modified on Jun 02, 2 ...

  7. 如何处理Docker的错误消息request canceled:Docker代理问题

    在本地安装Kubernetes时,遇到错误消息: request canceled while waiting for connection(Client.Timeout exceeded while ...

  8. 调用Hybris API时遇到的错误消息Cannot find user with uid如何解决

    今天工作中试图调用Commerce Cloud的user creation API用代码创建Hybris用户时,遇到下面这个错误消息. 我觉得很奇怪,因为backoffice里能查到这个id为jerr ...

  9. 部署 SAP UI5 应用到 SAP BTP 时遇到的 error retrieving MTA 错误消息

    问题描述 当我试图使用 SAP 成都研究院 Business Application Studio 部署一个 SAP UI5 应用到 SAP Business Technology Platform ...

最新文章

  1. pycharm工程中的pip用不了怎么办?
  2. 【问链财经-区块链基础知识系列】 第二十六课 隐私保护方法:多方安全计算和区块链
  3. 基本运算符与if while详解:
  4. argis中4波段影像变3波段
  5. [ZJOI2006]超级麻将
  6. C语言课后习题(38)
  7. oracle ocx加载错误,flash9.ocx 加载错误解决方法
  8. GitGithub学习笔记
  9. Office报错:错误代码:30015-6(-1)
  10. easyui-treegrid的案例
  11. 熬了一个通宵,终于把Reids的7千万个Key删完了,今天脑子都嗡嗡响!
  12. PHP 收货地址:添加、修改、删除
  13. 异步时钟下跨时钟域信号处理
  14. C++随机数生成器(default_random_engine)
  15. Android Gallery3D源码分析(一)
  16. 海森(hessian)矩阵
  17. 计算机程序可以通过删除卸载嘛,怎么彻底卸载电脑软件程序多种方法
  18. CCProxy网络共享代理服务端配置使用
  19. Javascript-introduce
  20. uniapp小说阅读

热门文章

  1. 【操作系统】处理机调度
  2. 放大招----软件管理信息列表
  3. 新手可直接复现:Duan版本CenterNet在2080Ti上训练自己的数据集——踩坑记录
  4. MongoDB启动服务错误解决
  5. halcon系列(2):超级盒子(Hyperboxes)
  6. docker创建镜像的三种方法
  7. Word 2007 不显示回车符
  8. StreamReader.ReadToEnd()
  9. JavaEE之JTA
  10. html网页背景图片平铺代码,jQuery图片平铺效果制作网页背景图片平铺代码