SAP-ABAP开发-BAPI

BAPI基于数据库表的操作函数传入传出数据,本身函数有接口与增强无关

目录

一、BAPI接口定义

二、业务对象

三、查询方法

四、调用

五、BAPI创建

(1)在DDIC中创建一个结构

(2)创建BAPI函数模块和函数或API方法             

(3)创建BAPI对象

(4)释放BAPI函数模块和BAPI对象

六、长文本修改


一、BAPI接口定义

        BAPI (Business Application Programming Interfaces) 业务应用编程接口.它实际上是一种特殊的Remote Function Modules (RFC)是为了提供使用外部程序与系统来进行交易活动. 与RFC不同的是它提供的基于(Business Object) 技术的接口应用界面。

        SAP采用了Object-Oriented技术,逻辑定义了SAP R/3系统的所有功能对象,并且将所有的对象(Objects)和BAPIs存储于业务对象库BOR(Business Objects Repository)。
        SAP R/3 业务对象类型(Object Type) 相当于程序设计语言中类(Class) 的概念,其定义结构由以下几部分组成:基本数据、接口界面、键(Key Fields)、方法(Methods)、特征(Attributes)、事件(Events)。利用BAPI,开发人员可以实现对BOR进行实时访问,从而实现应用系统(SAP-SAP)之间在数据/逻辑层上的有效整合。

一般都以BAPI开头。

二、业务对象

        SAP业务对象描述了在SAP系统中每个模块中真实的对象体(如:销售订单,生产工单,物料清单等),它是基于00(0bjectOriented)思想而设计,通过业务组件(BusinessComponent),业务对象(BusinessObjectType)和BAPI等实现。

业务对象的而整体架构包含四层(对应下图):
        最内层:SAP业务对象内核层,包含对象本身的内部数据结构及标准设定
        整合层:包含对象的业务逻辑
        接口层:提供该业务对象类型的外部访问接口,包括属性、方法、BAPI方法、事件等
        访问层:支持对业务对象数据访问的具体技术,RFC/ICO等


        业务对象仓库BOR,是SAP业务对象类型和相关BAPI组织中心。业务对象组件:SAP对象的接口、属性、方法、事件。
        接口:特殊的业务对象类型,本身不能生成对象实例
        关键字段:唯一确定一个业务对象类型的实例
        属性:业务对象的数据部分
        方法:外界对业务对象进行访问的接口,BAPI是一种特殊的业务对象方法
        事件:可通过事件触发工作流或任务

三、查询方法

事务码:SWO3 查询业务对象  SWO1也可以

事务码:BAPI 查看函数模块

四、调用

       创建report程序,执行BAPI调用。数据可以通过:界面录入、其他系统传输、文件上传等方式获取获取数据之后,进行数据检查判断,调用BAPI函数,获取返回值。

五、BAPI创建

        SAP系统中存在大量的与业务相关的BAPI函数,供其它外部的系统调用,但如果现存在的业务BAPI确实不能满足用户的需求,用户可以创建自己的BAPI并通过创建Business ObjectType后,将用户建的BAPI封装到BusinessObject.这样用户就可以在BAPI浏览器查看的到。
BAPI开发的步骤如下:

(1)在DDIC中创建一个结构

创建BAPI函数之前,需要先在DDIC中创建一个结构。

创建的结构必保存在开发类中,要包在对应的请求号中,不是是本地对象。

(2)创建BAPI函数模块和函数或API方法             

运行事务码:SE37
在创建新的函数之前,需要创建BAPI对应的函数组(FunctionGroup)

在FunctionGroup基础上创建Function,由于是BAPlFunction是基于RFC技术和协议的函数,所以对应的属性是有关RFC的设定。对应的Import参数设定为:

由于BAPI函数执行后,无论成功与否,都可以查看其反回结果,其对应的需要设定好Export参数,设置如下:

Function的输入输出参数设定好后,就可以写FunctionModule的处理逻辑了所以业务处理源代码就直在Source code编写,这跟写普通的functionModule完全一样。

(3)创建BAPI对象

由于BAPI函数是基于RFC的函数一种接口,提供给外部系统调用,是属于业务对象的一种方法,如需在BAPI流览器查看,并提供给外部系统使用,需要创建一个业务对象类型来对BAPI函数进行封装。
        创建业务对象类型(Businessobjecttype)的T-code是SWO1

把创建好的FunctionModule加进BusinessObject 中:

BAPI方法加进BusinessObject之后,显示为绿色后,就表示是可以用的方法:

(4)释放BAPI函数模块和BAPI对象

要想添加的函数模块与方法在BAPI流览器查看,并能发布和提供给外部系统使用需要先释放。释放的步骤是,先释放函数。


释放后,点击保存,然后点生成按钮(上面第四个红白交织的按钮)也可点击“PROGRAM”按钮查看源代码。所有这些操作步骤都做完成后,自己创建的BAPI就相当于发布成功。释放和发部成功后才可以在BAPI流览器中查看的到。这样也就可以提供给外部系统调用和访问。释放并发布成功后,在BAPI中可以查看所有详细的信息,具体信息如下:

六、长文本修改

长文本修改时,和基本的字段值修改不同。没有固定的字段名,通过函数进行录入、读取等操作。录入函数:SAVE_TEXT        读取函数:READTEXT            长文本ID查找方式
-双击长文本框
-查看GOTO-{>}HEADER,查找对应方法的输入参数内容,使用LNE传输
-TDFORMAT,是否转行
- TDLINES,行内容

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ceph MDS高可用架构探索:从零到一构建多主一备MDS服务

文章目录 Ceph实现MDS服务多主一备高可用架构当前 mds 服务器状态添加 MDS 服务器验证ceph集群当前状态当前的文件系统状态设置处于激活状态 mds 的数量MDS 高可用优化分发配置文件并重启 mds 服务 Ceph实现MDS服务多主一备高可用架构 Ceph 的元数据服务(MDS&#…

python实战(八)——情感识别(多分类)

一、任务目标 本文使用的是来自Kaggle的一个情感识别数据集,这个数据集的总数据量是5934条,标签为anger、fear、joy三种情感的其中一种,很明显是一个多分类任务。这里,我们将使用微调技巧进行深度学习建模,同时我们会比…

价格战背后:即时零售三小龙的致命伤

价格战,从来就不仅仅是低价,低价前面永远要加上定语:确保品质和服务的。价格战是减法,更是加法。减去的是价格水分,加上的是品质和服务保障。 转载|原创新熵 作者丨宜新 编辑丨赛柯 今年双十一的热点,让人…

sd1.5/sdxl的推理,训练

1.sd1.5/sdxl的推理 主要讲述一下unet的降噪,以及采样器的作用,已sd1.5为例,sdxl类似 unet的降噪过程中,如20步降噪,这20个unet共用的一个权重 1.1 timesteps 根据unet的降噪步数,即num_inference_steps…

有哪些工具可以快速压缩图片呢?分享三个简单好用的图片压缩工具

现在的图片经常会因为图片过大的问题,影响在网上的上传使用,一般在平台上传图片时需要比较小的图片。但是随着现在图片质量的提升,导致图片的文件也越来越大,想要缩小图片大小,可以选择使用压缩图片的方法来处理。下面…

Java集合 List——针对实习面试

目录 Java集合 ListJava List的三种主要实现是什么?它们各自的特点是什么?Java List和Array(数组)的区别?Java List和Set有什么区别?ArrayList和Vector有什么区别?什么是LinkedList?…

请求接口时跨域问题详细解决方案

浏览器中的报错: 跨域问题通常需要前端和后端协作解决。以下是一些常用的解决方法,分别从前端和后端的角度进行讲解: 一. 后端解决方案 设置 CORS 头部: 最常用和推荐的方法是后端服务器设置 Access-Control-Allow-Origin 响应头…

同三维T610UDP-4K60 4K60 DP或HDMI或手机信号采集卡

1路DP/HDMI/TYPE-C(手机/平板等)视频信号输入1路MIC1路LINE OUT,带1路HDMI环出,USB免驱,分辨率4K60,可采集3路信号中其中1路,按钮切换,可采集带TYPE-C接口的各品牌手机/平板/笔记本电脑等 同三维…

初级数据结构——顺序表

目录 前言一、定义与特点二、类型三、基本操作四、应用场景五、优缺点六、元素插入和删除动态图解插入删除 七、代码模板八、使用顺序表的经典例题1.求奇数的乘积代码题解 2.数值统计代码题解 九、总结结语 前言 顺序表示最基础的数据结构之一,它也是我们学习开始学…

arkUI:遍历数据数组动态渲染(forEach)

arkUI:遍历数据数组动态渲染(forEach) 1 主要内容说明2 相关内容2.1 ForEach 的基本语法2.2 简单遍历数组2.2 多维数组遍历2.4 使用唯一键2.5 源码1的相关说明2.5.1 源码1 (遍历数据数组动态渲染)2.5.2 源码1运行效果 …

新的恶意软件活动通过游戏应用程序瞄准 Windows 用户

一种新的恶意软件 Winos4.0 被积极用于网络攻击活动。FortiGuard实验室发现,这种先进的恶意框架是从臭名昭著的 Gh0strat 演变而来的,配备了模块化组件,可在受感染的设备上进行一系列恶意活动。 这些攻击已在游戏相关应用程序中发现&#xf…

Maven学习——创建Maven的Java和Web工程,并运行在Tomcat上

一、Maven介绍 Maven 是一款为 Java 项目管理构建、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。 二、Maven安装步骤 1.下载后解压到没有空格、特殊字符和中文的目录中 2…

【刷题】优选算法

优选算法 双指针 202. 快乐数 链接:. - 力扣(LeetCode) 【思路】 第一个实例是快乐数,因为会变为1且不断是1的循环 第二个实例不可能为1,因为会陷入一个没有1的循环 根据两个实例和鸽巢原理可以发现不断的平方和最…

在unity中实现把普通的照片,图片 变成油画风格的shader实现

可以通过对shader的Radius的值得设置来改变油画风格的力度,0最小,10是最大。

【项目开发 | 跨域认证】JSON Web Token(JWT)

未经许可,不得转载。 文章目录 JWT设计背景:跨域认证JWT 原理JWT 结构JWT 使用方式注意JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理、结构及用法。 JWT设计背景:跨域认证 互联网服务的用户认证流程是现代应用中的核心组成部分,通常的流程…

vue3中如何实现标准元素 拖动 功能 【收藏备用】

最近在用vue3做一个企业后台管理系统的项目,在登录页面的时候需要用户滑动滑块来获取验证码登录系统 用到了元素拖放 这里也顺便记录一下 如何使用的. 目录 1.功能介绍 2.代码部分 3 实现过程 3.1 设置可拖动元素 3.2 拖动什么 3.3 放到何处 3.4 进行放置 1.功能介绍…

Linux(CentOS)运行 jar 包

1、在本地终端运行,关闭终端,程序就会终止 java -jar tlias-0.0.1-SNAPSHOT.jar 发送请求,成功 关闭终端(程序也会终止) 发送请求,失败 2、在远程终端运行,关闭终端,程序就会终止 …

Local Dimming和Mini LED简介

文章目录 Local Dimming和Mini LED的介绍区别和联系联系区别总结 Local Dimming和Mini LED的介绍 电视显示技术中的Local Dimming和Mini LED都是用于提升画面质量的背光技术,主要目的是增强对比度和改善黑色表现。以下是对它们的详细介绍: Local Dimmin…

数据结构选择题及答案

一、选择题 1、下列查找方法中,( )适用于查找有序单链表。 A.分块查找; B.哈希查找; C.顺序查找; D.二分查找; 2、在有n个结点的二叉树的二叉链表表示中,空指针数为( )。 A&#xf…

npm完整发包流程(亲测可验证)

1. 准备工作 (1) 在npm官网上注册一个账号 (2) 注册成功之后,npm会发送一封邮件给你,点击邮件里面的链接,做确认关联操作(必需) 2. 创建自己的npm包 (…