Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
ArthurYang
Product and Topic Expert
Product and Topic Expert
352

本文档内容是基于我个人对SPA的理解产生的,目的是帮助您了解SPA API触发器的开发方式,阅读时间约为30分钟。


 


完成练习的前提是拥有SPA环境及对应用户权限,并已经完成过SAP Build Process Automation 抓取实时汇率信息 | SAP Blogs ,这样才有分配触发器的目标



 

本文档包含以下部分:


1.创建触发器


2.创建服务键值


3.使用Postman调用API进行测试


 

如果您对BTP感兴趣,BTP个人精选内容目录 | SAP Blogs 可能有更多你需要的内容


 

1.创建触发器


SPA的机器人自动化流程可以被三种方式启动,分别是手动点击本电脑上的小代理启动,定时启动,以及API Call启动,

这里我们来为流程创建一个API Call启动的trigger


 

进入触发器管理界面后,点击右上角的 添加触发器,再在第一步中选中我们要分配触发器的目标流程,这里选择的是 入门练习Tutorial 这个项目


 

第二步中选择API种类,在细节页面中修改名称描述后, 执行 部分应当选择目标流程,如果多个流程嵌套运行的话则应选择根流程

设置属性和值这里是要将当前项目和代理匹配,如果有多个代理同时拥有属性/值,则新任务会随机分配到其中一个空闲的代理处,类似于一个资源池。


 

触发器创建好之后,可以看到一个URL信息,保存下来


 

接下来去 控制塔-API密钥 处创建属于自己的API Key,这里可以创建多个API Key,每个Key都可以访问到触发器,但是后台会区分不同Key的访问,一般推荐为每个用户各分配一个Key,以区分调用者


 

填写Key名称,分配权限后,在审核界面确认,即可完成创建,


 

请注意,新生成的API Key只能查看一遍,请在刚创建完的时候就保存好它


 

 

2.创建服务键值


BTP内各项服务(SPA是BTP提供的服务之一)提供的API都是需要额外安全措施才能访问的,需要我们在BTP中控台为该服务创建服务实例Service Instance(这里实例的意思更像是开启一条外部访问的通道),并为不同用户创建Service Key,才可以访完成身份认证

我们来到BTP中控台(拥有BTP中控台是进入SPA中控台的前提条件,如果您不知道如何进入,请询问您组织的系统管理员) 中SPA服务所在的子账户,如果没有开启Cloud Foundry服务的用户请先开启,步骤详见SAP Business Technology Platform (BTP) 中控台概览及基本操作练习 | SAP Blogs中的第5部分。

开启Cloud Foundry之后,进入Cloud Foundry-空间-右上角的创建空间按钮 ,为新空间命名,为本人勾选身份后即可完成创建

 

接下来进入 实例和租用-右上角的创建


 

实例信息就需要选择先前创建的space,填写完本页内容即可点击 创建


 

创建完成后,在 服务-实例与租用点击先前创建好的实例右侧的箭头,进入实例细节页面,点击 服务键值 右侧的 创建按钮,为其设定名称后即可完成创建


 

创建完后,点击该服务键值的名字,即可看到服务键值的 凭据 也就是细节内容,这里一般每个服务键值代表一个需要Call API的用户。而红圈内的四个属性都会是接下来测试接口时要用到的


 

 

3.使用Postman调用API进行测试


到这里我们创建好了触发器,创建好了访问API所需的内容,接下来进入Postman访问API即可

在正式测试前,先介绍一下,BTP上服务的身份认证标准都是基于Oauth 2.0的,但是Oauth 2.0本身拥有多种具体认证方式,这里选择先获取access_token再基于token来访问服务

Postman为用户提供了方便的手段,只需要在请求的Authorization部分填写获取Access Token所需资料即可更新token


 

之后在Headers部分添加键irpa-api-key,对应的值即先前在SPA中控台-控制塔-API密钥内获取的值,(如果要使用在其他request内获取的token,还需要添加一个Authorization: Bearer access_token的键值对)


 

再在Body处选择Raw类型,填入

 

{

"invocationContext": "invocation_context",

"input": {}

}

 

最后点击Postman右上角的Send,即可在获取到token后,发送请求到对应触发器,来触发流程了,一次成功的请求会收到一条jobUid,意思即为被触发的流程任务ID


 

当然也可以自行通过一个独立的request,使用basic auth,用户名密码为clientid和clientsec,来获取Access Token,再用在真实的服务请求上,具体方式不在此赘述

 

以上就是SPA API 触发器的使用过程,关于本文内容有任何问题或见解,欢迎在评论区留下你的想法,如果时间紧迫,也可以直接联系到我 arthuryang1996@foxmail.com,感谢你的时间