内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

中间件_前度百度云_多少钱

2021-07-22 12:23 出处:欧普曼云计算 人气: 评论(0

最近我收到了一个有趣的需求:将SAP系统与Atlassian的JIRA软件集成,免费网站自助建站,以便直接从SAP GUI创建新问题。因为这个软件提供了自己的restapi,数据统计,所以看起来很容易。然而,仅仅创建新问题是不够的,因为报告某种问题的用户希望至少附加一些屏幕截图和其他文件来记录实际发生的情况/应该修复的问题。这一部分似乎比我预期的要困难…所以在这个博客中,我将解释我对SAP PO上创建的多部分/表单数据请求的解决方案。

JIRA的API描述得非常好,如果你陷入困境,他们的社区会有很多有用的信息。基本上我想把重点放在添加附件方法上。对于我的小项目,我还必须实现创建问题和检索字典数据的方法(项目、问题类型、自定义字段),但这些都是简单的GET/POST方法,这里将不进行描述。如果您第一眼就熟悉httpaae适配器,您可以看出这个适配器对我们不起作用。我们需要在方法的路径中指定动态参数,云产品,这在使用http\u aae适配器时是不可能的。所以我决定用REST代替。就方法本身而言,它需要多部分表单数据,具有二进制有效负载(base64不起作用),因此

我们要实现的是获得适配器的输出,如下所示:

其中:

X-Atlassian-Token:nocheck是JIRA规范所要求的;授权:Basic{Basic Authorization string}是我们希望从ERP传递给实际创建问题的用户的东西。我们这里不能用技术用户。内容类型:multipart/form data;boundary={our\u boundary}这对于这个发布方法是必不可少的。边界必须是唯一的,并且应该是动态计算的(这就是Postman和HTTP\u AAE适配器所做的)。

实际内容必须包含在边界指示符之间,从–{Boundary}开始,以–{Boundary}结束。我们可以附加多个文件,但每个文件都必须包含在单独的边界中,就像这样。

好的,现在我们知道我们要从采购订单系统发送什么了。现在-怎么做?因为在我的例子中,问题应该在sapgui会话的对话框中创建,所以我决定使用同步RFC函数。因此,物联网工程,我们的目标是拥有从ERP到JIRA系统的同步RFC->REST接口。

ABAP端

第一件事-需要SAP请求的入口点。我创建了简单的、支持RFC的功能模块。模块只是RFC调用的一个空接口,因此不需要ABAP代码:

is\U附件具有以下结构:

当然,八斗大数据,您可以将其修改为将所有字段都作为字符串(我有一个奇怪的习惯,即将现有的基于文本的组件类型放置,而不是到处使用字符串)或预定义的自定义/标准类型。这也可以用于以后用表类型替换结构并一次发送多个附件。数据是base64编码的二进制流。

关于接口的参数:

iv_issue_key–要添加附件的发行号/密钥;iv_authstring–连接用户名和密码,以":"分隔,用base64编码。这是适配器可以自己创建的东西,但我们希望在ERP端传递用户输入的数据,而不是在适配器级别对其进行硬编码;is\附件–附件结构,包含以下字段:filename–文件名,将传递给此结构中包含的数据流的Content Disposition;mimetype–mimetype,也传递给请求数据(在边界之间);数据-编码,在base64,数据流;

为了测试的目的,简单的测试程序将是有用的,在这里你可以找到一个我写的(但你可以尝试直接从se37使用一些简单和简短的base64字符串):

PO方

有标准的步骤和对象要在这里创建,没有新的和新奇:

导入FM接口POST请求的消息类型POST响应的消息类型POST请求服务接口JAVA映射操作映射

在所选软件组件下点击导入对象,放入凭证,选择RFC节点,下载之前创建的FM。在我的例子中:

因为我不会使用来自服务接口的xml负载,JAVA映射将创建整个内容,这些内容应该通过适配器发送到端点,所以入站请求的外观实际上并不重要。在我的例子中,它是一个空消息:

您可以在API文档中找到响应结构。但是对于这个接口,我们不需要这些细节。我感兴趣的是状态代码(HTTP status),它将指示我的请求发生了什么(文档中也提供了状态)。所以我使用的是:

为了正确地生成内容,我使用了JAVA映射。这里需要填写的是HTTP请求主体和HTTP头字段,稍后由REST适配器使用–这是通过动态配置完成的:

这非常简单–适配器将HTTP状态传递给预定义的负载,并将其传递给SAP:

将所有部分放在一个操作映射中:

作为接收器通道我们将使用REST适配器通道:

在适配器特定选项卡:

常规-保持默认状态。使用基本认证留空;REST URL–需要导入动态配置参数,设置POST URL:

REST Operation–设置为POST;数据格式–对于请求来说,重要的是将数据格式设置为二进制,并将二进制请求内容类型头留空(我们稍后将覆盖此项,如果设置了此项,则不可能)。响应设置为二进制(适配器将覆盖它):

HTTP头-这里我们需要设置几个参数。API需要X-Atlassian-Token,其余通过动态配置从JAVA映射传输:

错误处理–总是用预定义的负载覆盖响应,并使用http\U状态作为指示符。

创建点对点场景(RFC->rest):

设置一些日志:

检查、激活和部署。我们应该好好的。那么…我们期望实现什么?包括ERP端,它的工作原理如下:

因此,我们将收到nice 200状态码和JSON文件,其中包含已保存附件的详细信息(或其他状态,但仍映射到响应,所以我们可以产生有意义的消息)。

最简单的选择是使用上一步(或se37)的测试程序。

积极的场景

快速查看问题:

它在消息监视器中是什么样子的?

HTTP头和目标URL更改成功。有效载荷呢?在消息编辑器中可以找到最终的消息,它看起来和我们预期的完全一样:

负面场景

让我们尝试一个负面场景。因为我预计用户可能会输入不正确的凭据(可能是最常见的错误),让我们看看我是否可以在SAP GUI级别处理该问题并抛出适当的消息(而不是抛出系统\u错误或其他短转储)。

相同的程序,几乎相同的输入数据(输入不正确的密码):

CC在准备的负载中通过了http\u状态,这然后被发送到消息映射。sy subrc等于0,因此没有发生通信错误(我们可以很容易地区分PO通信错误和端点错误:401403500)。那边怎么样?检查日志:

消息成功-消息处理过程中没有发生错误,所以这是预期的结果(状态正确处理并传递给MM)。

这是博客描述了一种可能的方法:使用REST适配器、JAVA映射和动态配置来处理授权(从ERP系统传递)。

还有一些其他方法,非常有帮助的博客描述了如何解决这个问题:

非常有帮助的拉杰什的进入老博客在这里

分享给小伙伴们:
本文标签: 中间件前度百度少钱

相关文章

评论

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

签名: 验证码: 点击我更换图片

评论列表