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…

SpringCloud Gateway 网关获取或修改接口响应数据

文章目录 前言一、获取响应数据并打印 前言 我们的网关在之前只记录了接口请求日志,响应日志是没有做记录的,在后续别人对接我们开放平台时出现了一些问题没法确认当时的一个数值状态,照成了很多不必要的麻烦,后来决定在网关添加上…

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…

小红书起号运营01

上次我们详细的分享了小红书怎么起号,说直白点就是,怎么开始行动,让你的想法落地。 这次的分享前提是你已经将你的发展路线也就是定位已经有了思路。 比如以现在的最火的或者最容易入门的母婴系列、装修系列以主要发展路线。 或者做一个技能博主:摄影博主、修家电等等 …

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

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

C#面:请写出C#中的单例模式

单例模式是一种常用的设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问该实例。 以下是一种常见的C#中的单例模式实现方式: public class Singleton {private static Singleton instance;private static readonly object loc…

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

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

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

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

中英双语介绍美国的州:伊利诺伊州(Illinois)

中文版 伊利诺伊州(Illinois)位于美国中西部,是一个人口众多、经济发达的州。以下是对伊利诺伊州各方面的详细介绍: 发音: IIIinois:英 [ˌɪlɪˈnɔɪ] 人口 截至2020年,美国人口普查数据…

​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 这个指令,所…

深入解析Apache Flume:定义、架构、原理、应用场景及常用命令

引言 Apache Flume 是一个分布式、可靠且可用的服务,用于高效地收集、聚合和移动大量日志数据。作为一个大数据生态系统的重要组成部分,Flume 可以将数据从各种来源传输到一个集中存储平台,比如 Hadoop HDFS 或 HBase。本文将从 Flume 的定义…

【MySQL】事务实现原理

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

C++03 字符串、向量、数组

字符串string 一些初始化string对象的方式: string str; //str是一个空字符串 string str1(str2); // str1是str2的副本 string str1 str2; // 等同于str1(str2) string str("val"); // str是"val"的副本 string str "val"; //等…

FeignClient配置

/***解释 primary 属性的含义:* 作为主要 Bean:* 当 primary 属性设置为 true 时(默认值),Feign 代理将会被标记为主要的 Bean。这意味着,当存在多个同类型的 Bean 时,Spring IoC 容器会优先选择…