云网站服务器_国内数据云存储_移动云数据库服务器主机-搜集站云

域名备案_共享数据库_稳定性好

小七 141 0

我最近不得不开发一些代码,使用OAuth访问令牌从abaponprem环境触发sapcloud平台中的工作流。希望这个博客能给你们中从事同样工作的人一个"支撑"。

作为一个灵感,我使用了Archana Shukla关于使用OAuth2.0访问SCP业务规则的伟大博客文章,它给了我设置目的地的正确步骤,给了我访问令牌URL,南京大数据,并帮助我在ABAP中编码之前测试调用。另一个帮助是Rich Heilman最近的博客文章"从ABAP环境中利用SCP Neo工作流",它使用ABAP云(又名Steampunk),但也给了我一些提示。

注意:这个例子使用了一个简单的SCP工作流。如果您还没有,只需使用这些教程和任务创建一个。

此博客文章的示例ABAP代码可以在我的Github示例repo上找到。好的,让我们开始吧。

步骤1:就像Archana的例子一样,我在SAP云平台中注册了一个OAuth客户机(步骤1)。注意我使用的订阅wfs/bpmworkflowruntime,它与Archana的示例不同。我也给了我的客户一个"秘密"密码。然后,我将我的OAuth客户机添加到SCP工作流设置(服务->工作流->配置设置->角色)中的角色中,而不是在步骤1生成的客户机ID之前添加"OAuth\u客户机\"前缀。

步骤3。与Archana的exmaple一样,我在SCP Cockpit中创建了两个目的地:一个用于OAuth令牌URL,另一个用于SCP工作流API。

OAuth访问令牌的目的地(注意基本身份验证的设置),它使用步骤1中生成的客户机用户ID和"秘密"密码。对于URL,我使用OAuth部分中"Branding"选项卡中的"Token Endpoint"URL(参见步骤1或Archana的示例)。

Destination调用SCP Workflow API:作为SCP Workflow API的URL,物联网专用卡,请输入:https://bpmworkflowruntimewfs-。hanatrial.ondemand.com/workflow-服务/休息

由于目的地没有身份验证,通过OAuth2.0 toekn授予访问权,这是使用属性表示的bpm.oauth.token.destination(注意:这在下拉列表中不可用,必须输入)和值SCP\u WF\u UAA(即刚才创建的第一个目的地的名称)。

使用"检查连接"按钮检查连接工作正常:

步骤4。现在我们的OAuth客户机、角色和目的地都配置好了,我们将注意力转向ABAP堆栈。首先,我们需要在SM59中设置2个HTTP目的地,双线服务器租用,因为ABAP代码使用"按目的地"创建客户端(由SAP推荐)。请注意路径前缀"/oauth2"和端口443(https)的使用。

第一个目标是OAuth服务:

登录和安全设置为OAuth的生成客户端用户ID(参见步骤1)和您选择的"机密"passowrd。

第二个HTTP目标是工作流API目标的调用。请注意目标主机指定为"bpmworkflowruntimewfs-。hanatrial.ondemand.com". 另请注意路径前缀"/workflow service/rest/v1"和端口443。

在Logon&Security下,不需要验证详细信息,自助建站开发,因为我们的访问OAuth2.0令牌现在就足够了。

步骤5:现在所有设置都完成了,剩下要做的就是实现我们的ABAP编码。我将在下面解释逻辑的主要步骤。请检查我的Github repo以克隆示例代码。

我们使用标准库从目的地创建了一个HTTP客户端。注意表单字段"grant\u type"

然后我们提取接收到的访问OAuth令牌,以便稍后使用它将其设置为"Authorization"头字段。注意,我使用的工作流定义ID是"testworkflow"。这是我在SCP workflow中的工作流名称。

在执行工作流时,ABAP会吐出刚刚通过HTTPS调用创建的工作流实例ID。

在门户中最后查看我的工作流收件箱时,会看到一个新的工作流实例和审批请求正在等待我:

摘要:如图所示,新的SCP工作流实例是使用ABAP的调用创建的,该调用使用了ABAP堆栈中的2个新SCP目标、OAuth2.0客户端、SCP工作流角色和http目标。OAuth2.0是云环境中访问RESTAPI的常用身份验证方法。

另一种选择显然是通过云平台集成(CPI)使用集成来执行相同的操作。也许改天再发一篇博文…

我希望你会觉得这很有用。请随时在GitHub上分支、扩展和贡献我的ABAP代码。

,云上