Technology Blog Posts by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 
ArthurYang
Product and Topic Expert
Product and Topic Expert
1,204

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

 

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

 

本文档包含以下部分:

0.准备工作

1.创建触发器

2.创建服务键值

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

 

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

 

0.准备工作

首先请确保您的SBPA服务所在子账户拥有automation-unattended权限

ArthurYang_0-1732108436208.png

 

然后还需要在项目中之前建好的"自动化启动器"中"由事件自动启动"栏内加入想要触发的流程

ArthurYang_1-1732108553588.png

 

 

 

1.创建触发器


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

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

点击 控制塔-环境-Public(默认环境)-触发器-添加触发器


再在第一步中选中我们要分配触发器的目标流程,这里选择的是 入门练习Tutorial 这个项目


 

第二步中选择API种类,

ArthurYang_2-1732108771073.png

 

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

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


 

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


 

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


 

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


 

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


 

 

2.创建Service Instance服务实例与Service Key服务键值


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

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

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

 
创建Service Instace服务实例:
接下来进入该新建的Space空间,进入左侧菜单的服务-实例单击右上角的创建


 

服务选择process-automation-service,计划选择Standard, 再填写完实例名称即可完成创建


 
创建Service Key服务键值:
创建完Service Instance后,在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 触发器的使用过程,关于本文内容有任何问题或见解,欢迎在评论区留下你的想法