ABAP中调用方法的不同方式

2024-03-20

抱歉这个基本的 ABAP 问题。 ABAP中调用方法有哪些不同的方式?他们的“官方”名字是什么?我听说过执行、方法调用和内部/内联方法调用。

执行使用PERFORM关键字和方法调用CALL METHOD语法,我猜。但什么是“内部”或“内联方法调用”?


这些是内联方法调用的可能性。

如果你正在调用所谓的函数方法,它只有IMPORTING参数和可选的一个RETURN参数你可以这样称呼它。

CLASS lcl_test DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS:
      func_meth
        IMPORTING
          i_param TYPE i
        RETURNING
          VALUE(r_res) TYPE char1.
ENDCLASS.

l_res = lcl_test=>func_meth( 1 ).

* you could also call it like this
l_res = lcl_test=>func_meth( i_param = 1 ).

* also this variant is possible
l_res = lcl_test=>func_meth( EXPORTING i_param = 1 ).

* the traditional CALL METHOD syntax would be like this
CALL METHOD lcl_test=>func_meth
  EXPORTING
    i_param = 1
  RECEIVING
    r_res = l_res.

如果有多个IMPORTING参数您必须指定参数的名称。

CLASS lcl_test DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS:
      func_meth
        IMPORTING
          i_param1 TYPE i
          i_param2 TYPE i
        RETURNING
          VALUE(r_res) TYPE char1.
ENDCLASS.

l_res = lcl_test=>func_meth(
   i_param1 = 1
   i_param2 = 2
).

如果有EXPORTING or CHANGING如果方法中包含参数,则仍然可以进行内联调用,但必须显式指定参数类别。

CLASS lcl_test DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS:
      func_meth
        IMPORTING
          i_param TYPE i
        EXPORTING
          e_param TYPE c
        CHANGING
          c_param TYPE n.
ENDCLASS.

lcl_test=>func_meth(
  EXPORTING
    i_param = 1
  IMPORTING
    e_param = l_param
  CHANGING
    c_param = l_paramc
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ABAP中调用方法的不同方式 的相关文章

  • 如何在drools中调用Java函数?

    我想从 Utils 类调用 Java 函数 该函数调用 JPA Repository 方法来检索自定义对象 我想从 Drools 决策表中调用这个函数 现在 这个简单的函数给出了空指针异常 我已经为此浪费了几个小时 我在决策表的 导入 部分
  • sap abap 中系统忽略条件的循环

    我尝试应用带有条件的循环来总结相应的行 字段 其中条件应该是正确的 但在系统运行期间 程序忽略了条件并总结了所有行 有什么建议来解决这个问题吗 SELECT FROM LIPS INTO CORRESPONDING FIELDS OF TA
  • F# 使用累加器,仍然出现堆栈溢出异常

    在下面的函数中 我尝试通过使用累加器来设置尾递归 但是 我遇到了堆栈溢出异常 这让我相信我设置函数的方式没有正确启用尾递归 F attempting to make a tail recursive call via accumulator
  • 返回范围表。如何?

    我想编写一个返回范围表的函数模块 这可能吗 如果可能的话 如何实现 类型化范围的结构如下 Name Type SIGNT VARV SIGN OPTION TVARV OPTI LOW your type HIGH your type 您可
  • 为什么我不能使用 Set:union() 而不是 Set.union?

    我正在学习 Lua 我宁愿使用冒号 的方法 不幸的是 它并不是在所有地方都有效 看我的代码 Set local mt function Set new m local set setmetatable set mt for a b in p
  • 红宝石冻结方法

    def track for stat This is a hash with 2 elements of proc symbol gt send stat array gt send stat 0 stat 1 freeze stat cl
  • 在 JavaScript 中将数组作为函数参数传递

    我想使用数组作为参数来调用函数 const x p0 p1 p2 call me x 0 x 1 x 2 I don t like it function call me param0 param1 param2 有没有更好的方法来传递内容
  • ABAP ADT 先决条件?

    在 Eclipse 中建立与本地数据库的连接以开始在 ABAP 中进行开发需要什么 我已经安装了 ABAP 插件 但无法连接到数据库 有什么建议么 ABAP 开发工具 ADT https tools hana ondemand com ab
  • 将第一个函数中创建的数组传递给第二个函数

    这个问题是从我的上一个问题开始的 主要是因为我想避免使用全局变量 因为它的局限性 请参阅此处链接的答案 如何调用由不同函数创建的数组 https stackoverflow com questions 41436347 how do i c
  • 如何以编程方式判断系统是 R/3 还是 S/4

    是否可以通过代码判断当前系统是R 3还是S 4 我需要它 因为我有一个返回人力资源相关数据的软件组件的方法 但这个组件应该与R 3和S 4系统不同 DATA lv software component mo configuration gt
  • ABAP 对象中的“ADD-CORRESPONDING”相当于什么?

    对于以下可执行程序 存在以下语法错误 OO 上下文中不支持 ADD CORRESPONDING 相当于什么ADD CORRESPONDING在ABAP对象中 REPORT CLASS lcl app DEFINITION FOR TESTI
  • ABAP中的求值顺序

    ABAP 是否有明确的评估顺序 例如 在表达式中foo bar 是否可以保证哪种方法foo and bar 首先评估 执行 在 ABAP 关键字文档中找不到此类信息 ABAP 文档 arith exp 算术运算符 https help sa
  • 如何跳过选择屏幕上的必填字段?

    我希望当我单击 Iptal 按钮时它跳过必填字段 但我不想在没有 强制 的情况下控制强制字段 我想在文本框中看到复选标记 例如屏幕截图 通常 当没有必填字段时 Iptal 按钮会调用不同的屏幕 注意 屏幕是标准选择屏幕 我解决这个问题的方法
  • 标准程序的用途列表

    我正在搜索 SAP 表的使用 我想知道桌子在哪里S083用于 SAP 标准程序 我已经搜索过 使用地点 列表 但我只得到了自创程序 没有得到SAP标准程序 有人知道如何在 SAP 标准程序中搜索表使用吗 为了能够使用 SAP 标准编码的使用
  • 从 Fiori 列表报告导航到标准应用程序(例如热点)?

    我已经根据之前创建的 CDS 视图创建了列表报告 Fiori 应用程序 是否有可能在现有和 或附加 CDS 视图中使用一些注释来创建供应商编号上的热点智能字段 IE 当我点击它时 它会将我导航到该供应商的标准 业务合作伙伴 应用程序 如果这
  • 反序列化匿名 JSON 数组?

    我有一个想要反序列化的匿名数组 这里是第一个数组对象的示例 time 08 55 54 date 2016 05 27 timestamp 1464332154807 level 3 message registerResourcePath
  • iOS:接到电话时显示提醒?

    我希望在接到电话时触发本地通知 并显示警报 这可能吗 通话事件可以启动应用程序或触发通知吗 Skype 是如何被解雇的 有推送通知吗 Thanks 当各种事件发生时 您的应用程序委托将接收对各种 UIApplicationDelegate
  • Android 调用另一个类的方法

    我知道这个问题重复了 但我在互联网上找不到答案 我想调用另一个类的方法 我有Class1和Class2 在第2类中我有这个方法 public void UpdateEmployee some code 我想从Class1调用上面的方法 感谢
  • 参数化方法调用什么时候有用?

    Java 方法调用可以像下面的代码一样进行参数化 class Test
  • 如何列出运行时函数的所有调用?

    有什么办法可以list 在VS中显示 写入文件 所有来电者 对象 函数 一个函数的当程序运行时 可能使用调试器 我需要record 所有通话 包括来电者 一个函数的从计划启动到终止 简单扫描源代码或二进制文件不做这份工作因为该程序可以作为服

随机推荐

  • 如何在本机反应中使用双击?

    如何在本机反应中使用双击 我希望如果用户双击图像而不是 setliked 状态触发器 那么我该如何在 rn 中做到这一点 就像 Instagram 帖子一样 他们在 rn 中是否有任何预构建包可以让我这样做 我正在使用 rn 0 70 5
  • 在 MATLAB 中从数组中选择元素

    我知道在 MATLAB 中 在一维情况下 您可以选择具有索引的元素 例如a 1 5 3 返回 a 的第 1 个 第 5 个和第 3 个元素 我有一个二维数组 并且想根据我拥有的一组元组选择单个元素 所以我可能想要得到a 1 3 a 1 4
  • 我无法在 Windows 上安装 pyaudio?如何解决“错误:需要 Microsoft Visual C++ 14.0”? [复制]

    这个问题在这里已经有答案了 我有一台 Windows 10 电脑 我想安装 pyaudio 以将其与我的聊天机器人一起使用 由 chatterbot 提供支持 我尝试了两种不同的方法来安装 pyaudio 第一种方法是在命令提示符下执行此操
  • Eclipse RCP:ClassNotFoundException 或如何使其他包加载我的类

    详细信息 我正在尝试使用 Jalapeno 框架将我的 RCP 应用程序与 Cache 数据库连接起来 建立连接后 我尝试从表中获取所有数据 就像墨西哥胡椒手册中一样 if objManager null return DBClass co
  • 二叉搜索树的定义中是否允许重复键?

    我正在尝试找到二叉搜索树的定义 并且我一直在到处寻找不同的定义 有人说对于任何给定的子树 左子键小于或等于根 有人说对于任何给定的子树 右子键大于或等于根 我以前的大学数据结构书上说 每个元素都有一个键 并且没有两个元素具有相同的键 bst
  • Terraform - 我应该使用 user_data 还是 Provisioner 来引导资源?

    看来我可以使用user data使用模板文件或 远程执行 provisioner使用内联命令进行引导 那么哪一个被认为更惯用呢 你应该使用user data The 用户数据 http docs aws amazon com AWSEC2
  • 如何使用 RSAEncryption 创建带有 SHA1 摘要的 PKCS7/CMS?

    我创建了一个pkcs7块 可以自己验证 但是结果和我使用OpenSSL的伙伴不一样 我创建的p7块无法被我的伙伴验证 我们仔细检查代码 只找到c 中找不到对应项的代码 OPENSSL signInfo gt digest enc alg g
  • ASP.Net 使用什么 URL 重写器? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么 android:fullBackupOnly 默认值是 false?

    In https developer android com guide topics manifest application element https developer android com guide topics manife
  • 如何避免链接多个 AsyncTask 调用?

    我必须对 Web 服务进行多次调用 但每个步骤都使用上一步中的值 因此现在我有一个巨大的 AsyncTasks 链 每个 AsyncTask 都在上一步的 AsyncTask 的 onPostExecute 中执行 这非常非常难看 而且很难
  • Perl DBIx::Class 可以覆盖从数据库检索列的方式吗?

    直到今天我才使用过 DBIx Class 所以我对它完全陌生 我不确定这是否可能 但基本上我的 SQLite 数据库中有一个表 其中有一个时间戳列 时间戳列的默认值为 CURRENT TIMESTAMP SQLite 将其存储在 GMT 时
  • 总是收到“消息”:“未经身份验证。” - Laravel 护照

    我一整天都找到了很多教程 我的设置与所有基本教程完全相同 目前 我可以访问http localhost oauth token成功地将令牌返回给我 之后 我使用 ARC Advanced Rest Client 来进行调用我自己的 api
  • 如何在SQL中获取2个表中不匹配的行?

    我有两个 SQL Server 表 CHANNELS SUBSCRIBERS 我想从中获取行CHANNELS不存在于SUBSCRIBERS在某种条件下 我尝试过INNER和OUTER LEFT JOIN但这对我不起作用 他们都给了我相同的答
  • 将一组字符串转换为 byte[] 数组

    我正在尝试将一组字符串转换为 byte 数组 首先 我执行以下操作将字节数组转换为字符串 public String convertByte byte msg String str for int i 0 i lt msg length i
  • 如何在iPhone中获取DNS服务器IP

    我尝试通过以下方式获取 etc resolv conf 打开 etc resolv conf 0644 但它返回 1并且errno是2这意味着 没有这样的文件 我能做些什么 您无法访问应用程序沙箱之外的文件
  • 反应本机错误 RCTJSONStringify() 遇到以下错误:JSON 写入中的类型无效 (NSURL)

    我正在尝试使用反应本机fbsdk在我的反应本机应用程序中 直到昨天为止都运行良好 但是 今天它给出了一个奇怪的错误RCTJSONStringify 遇到以下错误 JSON 写入 NSURL 中的类型无效 RN v0 42 0 这是我的代码
  • 从 dll 内的函数返回时堆损坏

    我有一个具有如下原型的函数 void function std string str 这个函数在另一个加载和使用该 dll 的程序的主函数中被调用 function some string value here 从该函数返回时 我收到堆损坏
  • 使用 Nokogiri 解析大型 HTML 文件

    我正在尝试解析与 Nokogiri 但不幸的是我无法从页面获取所有项目 我的简单测试代码是 require open uri require nokogiri html Nokogiri HTML open http www pro med
  • bash 中的视频方向检测

    我需要检测视频是以纵向还是横向模式录制的 然后以脚本方式将其转换为正确的方向 if v orient landscape then ffmpeg i file mp4 vf transpose 1 file ogv else ffmpeg
  • ABAP中调用方法的不同方式

    抱歉这个基本的 ABAP 问题 ABAP中调用方法有哪些不同的方式 他们的 官方 名字是什么 我听说过执行 方法调用和内部 内联方法调用 执行使用PERFORM关键字和方法调用CALL METHOD语法 我猜 但什么是 内部 或 内联方法调