【学习笔记】SAP ABAP——子程序

子程序:

参数:

参数(Parameter)是指调用子程序时用于传入、传出的值。子程序中的参数与一般用 DATA语句定义的局部变量相同。调用子程序时使用的参数叫实参(Actual Parameter),在子程序中使用的参数叫虚参(Formal Parameter)。PERFORM 利用 USING、CHAING 定义参数,且使用时要与子程序的顺序一致。参数可以使用 ABAP 的所有对象,即基本数据类型、Field Smbol、内表等。

传递参数的三种方法:

  1. Call by value:

传入参数即实参(Actual Parameter)与传出参数即虚参(Formal Parameter)有不同的物理内存。

VALUE 语句中虚参(FormalParameter)占用自己的单独内存。调用子程序时,实参(ActualParameter)值复制到虚参中,即使改变虚参的值也不会影响实参值。

  1. Call by reference:

共有相同的物理内存并且互相传递地址。

子程序的虚参没有自己的内存空间。只是在调用子程序期间占用实参的地址。即在调用Subroutine 的程序的内存地址(相同名字的变量)中进行工作。

  1. Call by Value and Result:

传入传出变量语句执行成功时返回变更后的值。拥有不同的物理地址。

USING 语句与VALUE 语句一起搭配使用,则无法修改子程序中的实参值(Call by value),但是 CHANGING 语句与 VALUE 语句一起配套使用时,当正常结束子程序时会修改实参值练习做一个定义整数类型的3 个变量后,在FORM语句内执行加法的程序。

调用子程序:

程序内部调用子程序

程序外部调用子程序

动态调用子程序

Abap循环语句:

  1. DO~ENDDO 循环语句

是可以指定循环次数的语句,若不指定次数,则会无限执行循环,当前循环次数保存在系统变量 SY-INDEX 中。

  1. WHILE~ENDWHILE

循环语句当WHILE 语句的表达式结果为真时反复持续循环。当前循环次数保存在系统变量 SY-INDEX 中。

  1. LOOP~ENDLOOP

循环语句按顺序依次循环内表,将读取内表行数据保存到工作区或者表头的循环语句。当前循环次数保存在系统变量 SYINDEX 中。SY-TABX 表示内表的当前行数。

结束子程序:

子程序遇到 END FORM语句就正常结束。此外,还可以利用 EXIT、CHECK 语句强制在执行过程中结束此子程序。遇到 EXIT 语句会直接跳出子程序,遇到 CHECK 语句时,判其值结果为假时不执行后续操作会跳出子程序。

Abap条件语句:

  1. IF~ENDIF 分歧语句

比较条件语句中的逻辑值,当值为真时执行里面语句并跳出此语句块

  1. CASE~ENDCASE 分歧语句

一个变量有多个值时,根据每个值执行不同操作时使用的语句。

Function:

函数(Function Module) 是储存在中央库 (R/3 Repository)中的特殊全局子程序。在一个程序中多次使用相同功能的语句会增加代码量,另外有修改需求时要修改多处,因此效率低。此时使用函数将代码模块化就可以实现代码重复利用,从而减少代码量。

  1. 传入参数

往函数里传入值的参数,是可选项。

  1. 传出参数

从函数往 ABAP 程序里传递值的参数,也是可选项。传入/传出参数可以往函数里传值并且改变其值再传出。

  1. 表(Tables)

可以往函数传入/传出内表。

  1. 例外处理

Function模块是具有全局可见性的函数,需要在function group中定义并使用。

T-CODE:SE37

搜索帮助:

Search Help 是在屏幕上面为用户提供查询输入值的SAP标准功能

定义搜索帮助使用到的T-CODE:SE11

未使用搜索帮助,字段输入的时候需要用户手写

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机专业开题报告写法,该怎么写好?

不会写开题报告,或者想要一些论文模版的,欢迎评论,会第一时间给大家。 题报告是计算机专业大学毕业生在开展毕业设计或论文研究前,对研究课题进行详细介绍和计划的重要环节。作为开题者对科研课题的一种文字说明,开题…

Python世界:力扣题704二分查找

Python世界:力扣题704二分查找 任务背景思路分析代码实现测试套件本文小结 任务背景 问题来自力扣题目704:Binary Search,大意如下: Given an array of integers nums which is sorted in ascending order, and an integer target…

FreeRTOS学习日志--中断测试实验,以及遇到的问题

目录 实验项目:FreeRTOS 中断测试实验 1、实验目的 2、实验设计 遇到的问题 stm32F103战舰在运行程序后,USB232串口不能接收到信号问题。 从跑马灯FreeRTOS文件基础上移植的FreeRTOS中断无效,而例程中断有效问题。 问题来源与解决方法…

shodan[3](泷羽sec)

声明 学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章。 笔记只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 这节课旨在扩大自己在网络安全方面的知识面,了解网络安全领域的见闻,了…

Windows系统服务器怎么设置远程连接?详细步骤

一、什么是Windows远程桌面连接? Windows远程桌面(Remote Desktop)功能使用户能够通过网络连接到另一台Windows计算机,实现远程操作。远程桌面非常适合系统管理员、技术支持人员以及那些需要远程工作的人,它允许用户以图形界面的方式访问远程计算机&…

Spring配置文件初始化加载(一)

1.枚举 public enum TestEnum {type_01("01", "zeroTest01ServiceImpl"),type_02("02", "zeroTest02ServiceImpl"),type_03("03", "zeroTest03ServiceImpl");private String type;private String pathClass; } …

Element UI组件Dialog显示闪动问题【解决方案】

在ElementUI中,el-dialog弹窗确实有时会导致页面出现抖动或闪动的问题。这通常是由于弹窗出现时对页面布局的影响,特别是滚动条的出现或消失,导致了页面的重新布局和渲染。以下是一些解决或缓解这一问题的方法: 解决方案 1. 关闭…

【022C】基于51单片机音乐盒

☆、设计硬件组成:51单片机最小系统按键控制LCD1602液晶显示DS18B20温度传感器喇叭。 1、本设计采用STC89C51/52、AT89C51/52、AT89S51/52作为主控芯片; 2、采用LCD1602显示播放歌曲名、歌曲序号、歌曲播放时间; 3、播放音乐通过按键可以实…

计算机毕业设计Python流量检测可视化 DDos攻击流量检测与可视化分析 SDN web渗透测试系统 网络安全 信息安全 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测

BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测 目录 BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测效果一览基本介绍模型搭建程序设计参考资料 效果一览 …

基于统计方法的语言模型

基于统计方法的语言模型 基于统计方法的语言模型主要是指利用统计学原理和方法来构建的语言模型,这类模型通过分析和学习大量语料库中的语言数据,来预测词、短语或句子出现的概率。 N-gram模型:这是最基础的统计语言模型之一,它基…

基于Python+Vue开发的蛋糕商城管理系统

项目简介 该项目是基于PythonVue开发的蛋糕商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的蛋糕商…

【node模块】深入解读node:assert模块

🧑‍💼 一名茫茫大海中沉浮的小小程序员🍬 👉 你的一键四连 (关注 点赞收藏评论)是我更新的最大动力❤️! 📑 目录 🔽 前言1️⃣ 什么是node:assert模块?2️⃣ node:assert模块的核心…

JDBC学习记录

文章目录 一、JDBC简介1.1、 JDBC概念1.2、 JDBC本质1.3、 JDBC好处 二、JDBC快速入门2.1、 编写代码步骤2.2、 代码示例 三、JDBC API详解3.1、DriverManager3.1.1、注册驱动3.1.2、获取连接 3.2、Connection3.2.1、获取执行对象3.2.2、事务管理 3.3、Statement3.3.1、执行DDL…

【物联网技术】ESP8266 WIFI模块在STA模式下实现UDP与电脑/手机网络助手通信——UDP数据透传

前言:完成ESP8266 WIFI模块在STA模式下实现UDP与电脑/手机网络助手通信——实现UDP数据透传 STA模式,通俗来说就是模块/单片机去连接路由器/热点来通信。 UDP协议,是传输层协议,UDP没有服务器和客户端的说法。 本实验需要注意,wifi模块/单片机与电脑/手机需要连接在同一个…

Linux和,FreeRTOS 任务调度原理,r0-r15寄存器,以及移植freertos(一)

目录、 1、r0-r15寄存器,保护现场,任务切换的原理 2、freertos移植 3、freertos的任务管理。 一、前言 写这篇文章的目的,是之前面试官,刚好问到我,移植FreeRTOS 到mcu,需要做哪些步骤,当时回…

安利一款开源企业级的报表系统SpringReport

SpringReport是一款企业级的报表系统,支持在线设计报表,并绑定动态数据源,无需写代码即可快速生成想要的报表,可以支持excel报表和word报表两种格式,同时还可以支持excel多人协同编辑,后续考虑实现大屏设计…

css:基础

前言 我们之前其实也可以写出一个看起来算是一个网页的网页,为什么我们还要学css? CSS(Cascading Style Sheets)也叫层叠样式表,是负责美化的,我们之前说html就是一个骨架,css就可以用来美化网…

html第一个网页

创建你的第一个HTML网页是一个激动人心的步骤。以下是创建一个简单网页的基本步骤和代码示例&#xff1a; 基础结构&#xff1a;所有的HTML文档都应该包含以下基本结构。 <!DOCTYPE html> <html> <head><title>我的第一个网页</title> </he…

qt QCompleter详解

1、概述 QCompleter是Qt框架中的一个类&#xff0c;用于为文本输入提供自动完成功能。它可以与Qt的输入控件&#xff08;如QLineEdit、QTextEdit等&#xff09;结合使用&#xff0c;根据用户的输入实时过滤数据源&#xff0c;并在输入控件下方或内部显示补全建议列表。用户可以…