SAP Build 3-调用SAP BAPI和调用S4HC API

1. 调用SAP BAPI

1.1 前提

项目已创建
SAP环境登录正常

1.2 引入BAPI SDK

商店中下载BAPI SDK
在这里插入图片描述
Process中导入BAPI SDK
在这里插入图片描述

1.3 新建action group

在这里插入图片描述
在这里插入图片描述
新建action group时,会要求填写SAP登录信息,根据连接类型分为SSO,Basic和Custom
如果选择SSO和Basic会有预留的参数被放出来填写,若参数不足以登录可以新增参数(例子:BTP没有用SSC打通SAP后端和BTP的防火墙,可以新增SAP Router以设置外网连接)
具体参数和SAP登录时使用的一致,这里使用Custom举例
在此处添加完参数后就需要填写除用户名和密码以外的SAP连接参数
否则下一页面会重新让选择
在这里插入图片描述
创建完成后转到detail页面,此时可以填写用户名和密码以连接SAP客户端获取BAPI名以及测试
在这里插入图片描述
使用客户的BTP环境无法通过路由连接SAP后端,但试用账号可以连接,这是一个待解决的问题点,猜测是用户BTP有白名单设置
在这里插入图片描述

1.4 新建Action

点击新建以创建action,SAP把单个的BAPI封装成了Action供用户操作,好处是创建完成之后无需再创建结构,保存时会根据选择的bapi参数自动生成入参和出参
在这里插入图片描述
如果SAP后端连接成功,那么此时会出现可使用的BAPI列表(其实不只是BAPI,所有远程RFC都可以使用)
在这里插入图片描述
搜索需要的bapi即可,此处使用bapi_po_getdetail1
在这里插入图片描述
选择需要的bapi入参
在这里插入图片描述
选择需要的bapi出参
在这里插入图片描述
最后可以在test页签测试,入参只有刚刚选中的入参,但是sap会把所有出参都返回
在这里插入图片描述
在这里插入图片描述
最后保存即可,会自动生成bapi所需的入参和出参结构
在这里插入图片描述

1.4 测试

新建流程,在活动处可以搜索出刚刚新建的action group和action,选中拖拽即可使用
在这里插入图片描述
除了账号密码以外,刚刚配置的SAP连接信息被自动带过来了
账号密码目前只能明文填写到此处,但实际应该保存在一个凭据管理器中才能保证安全,这部分待解决
在这里插入图片描述
入参和出参已经在action保存的时候就生成了,此处可以直接选择生成的参数类型,输入参数即可
在这里插入图片描述
最后点击测试,用log查看返回的结果
在这里插入图片描述
最后结果也只包含选择的出参
在这里插入图片描述

1.5 参考文档

https://developers.sap.com/tutorials/spa-bapi-actiongroup.html

2. 调用S4HC API

2.1 SAP API Hub下载API说明书

若要使用S4HC中的API,优先在SAP API Hub中找到对应的API接口文档
官方地址:https://api.sap.com
选择公有云版本的S4HC
在这里插入图片描述
转到API页签,转到ALL页签,搜索需要的API,此处使用销售订单的API故搜索sales
在这里插入图片描述
找到sales order的api
在这里插入图片描述
在overview找到API Specification,下载zip文件并解压(点一次有时候不生效,多点几次)
在这里插入图片描述
最后得到json文件,先暂时保存后面会用
在这里插入图片描述

2.2 创建Action

SAP Build的action group和上一步process中action group有些不太一样
action group中的action只针对SAP OP的BAPI做连接
SAP Build的action group则是专门和外部(SAP/非SAP)系统API做连接的
此处其实S4HC的API可以直接在左侧的SAP Business Accelerator Hub中直接选择Sales order的API,但如果外围系统有符合OpenAPI的Specification file,那么也可以通过右侧的upload api specification直接上传到action中
在这里插入图片描述
上传刚刚在API Hub中下载的json文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 选择待使用的API作为Action

此处使用Get的方式在S4HC中查询销售订单,通过筛选找到查询销售订单的API,其实这一步跟刚刚在SAP系统中找BAPI很类似了

SAP Build中叫action,action中还叫action,总感觉这里容易造成歧义

在这里插入图片描述
选择完action之后也和process中的bapi action类似,选择出入参数
入参使用filter过滤需要的订单
如SalesOrder eq ‘9000001’
在这里插入图片描述
出参自由选择所需参数
在这里插入图片描述
测试之前需要先激活CSRF token
在这里插入图片描述
测试时输入S4HC中的接口地址和token即可
但是实际上需要用S4HC的destination连接才可以访问,后续的流程中也只允许填写destination参数
在这里插入图片描述
后续没法测试了,没有S4HC的环境
点击release 发布,然后publish 到library

2.4 测试

在process中新增dependency,选择add an project dependency
在这里插入图片描述
找到销售订单的API,点击Add
在这里插入图片描述
添加完成后即可在活动处找到相应的API服务
在这里插入图片描述
参数和刚刚的test页面基本一致,但是只能通过destination访问S4HC的接口
在这里插入图片描述
这里也没办法继续测试下去了,没有S4HC的环境

2.5 参考文档

官方文档用的是表单举例,这里切换成process了
https://developers.sap.com/tutorials/spa-process-action-create.html

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

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

相关文章

SAP配置发布WebService接口并调用(超级详细)

文章目录 前言一、案例介绍/笔者需求二、WebService是什么? a.传输协议 b.数据协议 c.WSDL d.UDDI 三、WebService 和 WebApi 的区别以及优缺点 a.主要区别 b.优缺点 四、SAP如何发布一个webser…

C++编程(六)运算符重载

文章目录 一、概念1. 左值和右值2. 运算符重载3. 可以实现重载的运算符和不可以实现重载的运算符 二、双目运算符(一)说明(二)实现1. 注意点2. 算术运算符成员函数版本全局函数版本 3. 关系运算符成员函数版本全局函数版本 三、赋…

技术反诈指南丨央视报了!基于“AI换脸”的新型电信网络诈骗猖獗

目录 利用“AI换脸”技术的诈骗 技术上防范新型电信网络诈骗 内蒙古鄂尔多斯市居民李女士近日遭遇了一起新型电信网络诈骗案。诈骗团伙利用“AI换脸”技术,合成了与李女士老同学相似的视频通话,以此作为诈骗的关键手段,成功骗取李女士信任。 …

【linux】使用vnc连接远程桌面,需要安装tigervnc,并在服务端期待,然后在客户端使用tigervnc-viewer进行连接即可

vnc 远程设置方法 需要服务端安装软件: sudo apt install -y tigervnc-standalone-server# 先配置密码使用: tightvncpasswd启动服务,禁用本机 vncserver -localhost no -geometry 1924x1080 :1客户端安装软件: sudo apt insta…

1974. 使用特殊打字机键入单词的最少时间

关键点: 无论数组的开头第一位是什么,总是从a开始的,从第一个字母向后走的时候有顺时针和逆时针,取最小值当从第一个字母开始走的时候,用当前位置替换a的作用 class Solution:def minTimeToType(self, word: str) -&g…

实现资产优化管理:智慧校园资产分类功能解析

在构建智慧校园的过程中,细致入微的资产管理是确保教育资源高效运作的关键一环,而资产分类功能则扮演着举足轻重的角色。系统通过精心设计的分类体系,将校园内的各类资产,从昂贵的教学设备到日常使用的办公物资,乃至无…

嵌入式linux系统中动态链接库实现详解

大家好,linux系统中动态库是如何实现相互链接的?今天简单聊聊动态链接库的实现原理。 假设有这样两段代码,第一段代码定义了一个全量变量a以及函数foo,函数foo中引用了下一段代码中定义的全局变量b。 第二段代码定义了全局变量b以及main函数,同时在main函数中调用了第一个…

​Chrome插件:React Developer Tools为React开发调试而生

React Developer Tools 是什么? 它是允许在Chrome和Firefox开发者工具中检查React组件层次结构的扩展插件。 插件源码下载 源码下载地址:GitHub - facebook/react-devtools at v3 下载完成以后执行红框中的代码,下载react-devtools 源码,源码如下图所示: 插件打包 当前n…

表单外链,支持查看方式设置

06/19 主要更新模块概览 外链设置 跳转缩放 打印调整 数据校验 01 表单管理 1.1 【表单外链】-填写外链新增查看方式设置 说明: 原表单填写外链,填写字段权限和查看权限统一字段设置,用户在填写时看到数据与查看数据一致…

Qt 使用代码布局,而不使用UI布局

一、工程的建立: 1、打开Qt Creator,文件,新建文件或项目 2、选择Application,Qt Widgets Application 3、写入名称,选择qmake 4、选择基类Base class,去除Generate form 务必选择QWidget,若…

交友系统定制版源码| 相亲交友小程序源码全开源可二开_打造独特的社交交友系统

交友系统源码的实现涉及到多个方面,包括前端页面设计、后端逻辑处理、数据库设计以及用户交互等。以下是一个简单的交友系统源码实现的基本框架和关键步骤: 1.数据库设计:用户表:存储用户基本信息,如用户ID、用户名、密码、头像、性别、年龄、地理位置等…

『手撕Vue-CLI』 添加自定义指令

添加 create 指令 在 vue-cli 中,create 指令是用来创建一个新的项目的,我实现的 nue --help 的帮助信息中只有 --version,--help 这两个指令,所以当用户使用我的 nue-cli 时,并不知道有 create 这个指令,所…

【MySQL】事务实现原理

事务 事务是将一组SQL语句打包成一个整体,在这组SQL的执行过程中,要么全部成功,要么全部失败。这组SQL语句可以是一条也可以是多条。 如果转账成功,应该满足以下要求: 张三的账户余额减少100,变成900&…

Vatee万腾平台:引领行业变革,创新未来

在当今这个快速变化的时代,科技的力量正在以前所未有的速度推动着行业的变革。Vatee万腾平台,以其独特的视角和前瞻性的布局,正引领着行业变革的浪潮,创新着未来的发展方向。 Vatee万腾平台是一家专注于科技研发和创新应用的领军企…

安装PyTorch详细过程(个人过程仅供参考)

1.安装anaconda 2.创建一个虚拟环境 以上步骤默认已经完毕,毕竟只是记录pytorch的安装过程 3.查看个人电脑CUDA版本 winr 输入cmd 回车 输入指令 nvidia-smi 右上角为该电脑所支持的最高CUDA版本 输入命令 nvcc -V 图中即为该电脑所安装的CUDA版本 记住该版…

动捕系统如何解决“超出捕捉范围”的挑战

惯性运动捕捉系统改变了我们捕捉运动的方式,使艺术家、创作者和独立工作室能够摆脱动捕实验室和复杂设置的限制。通过身体上的传感器和无线连接,动捕演员可以自由移动和并作出各种高难度动作。然而具有高自由度的惯性动捕系统,经常面临着超出…

筛斗数据全面解析数据提取与清洗的重要性

筛斗数据全面解析数据提取与清洗的重要性 在数字化时代,数据是企业决策的重要依据。然而,数据并非总是以我们期望的形式出现,它们可能分散、冗余、错误甚至不完整。因此,数据提取与清洗成为数据处理流程中不可或缺的两个环节。筛…

数学建模 —— 矩阵的运算(上)

目录 调用函数运算 sum : 求和函数 prod : 求乘积函数(product) cumsum : 计算累积和(cumulative sum) diff : 计算差分(difference) mean : 计算平均值 (average) median : 计算中位数 mode : 计算众数 var : 计算方差 (variance) std : 计 算 标 准 差 (standard d…

UE5(c++)开发日志(2):向日志和屏幕输出信息/将C++类变为蓝图类

通过UE_LOG()向日志输出,向其传入三个参数(①输出日志类型,一般LogTemp ②具体种类,普通/警告/错误,这里是Warning ③输出的文本内容,使用TEXT(" "),这里是TEXT("Run AActor BeginPlay")) 代码写…

找茬找不同看图猜谜语小游戏

找茬找不同看图猜谜语小游戏:挑战你的观察力与智慧 🔍 挑战你的观察力:找茬找不同 你是否曾对两张看似相同的图片感到好奇,想要找出它们之间的微妙差异?找茬找不同小游戏正是为了满足你的这种好奇心而设计的。在这些游…