`
JerryWang_SAP
  • 浏览: 1033225 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

使用类似搭积木的低代码开发方式进行SAP API开发

阅读更多

Jerry之前的文章SAP API开发方法大全 介绍的第七种SAP API开发方式,SAP Data Intelligence Graph,实际上是Low Code Development(低代码开发)的一种体现。

本文通过一个具体的例子来介绍,如何在SAP Data Intelligence Modeler的图形化界面里,通过类似小朋友玩积木的方式,将各种SAP发布的标准Operator搭配在一起,再通过少量的编码,得到一个支持增删改查的API.

打开Modeler的Operators标签页,看到位于不同Categories下面总共存在超过300个Operator.

 

 

每个Operator可以实现某领域的一个功能,比如连接ABAP系统并读取数据,生成随机数据,将数据写入某持久化存储,调用API等等。我们通过把这些Operators组合起来, 最后实现一个端到端的场景。

在动手使用这些Operator组建API之前,让我们先试试一些最简单的Operator. 拖拽一个拥有《星际争霸》里人族雷达站图标的Data Generator到编辑页面里。

这个Operator定义了一个Output Port, 类型为String,意思是它生成的随机数,以String的类型,通过该Output Port传递给其他Operator.

 

 

上图Data Generator的Output Port指向了另一个Terminal Operator 的Input Port, 这代表了数据流的传递方向,从Data Generator输出到Terminal.

 

 

这些作为节点的Operators以及连接节点的有向线段组合在一起,构成了SAP Data Intelligence里的Graph(图).

SAP Data Intelligence官网上提到了其“拥抱开放技术”的一个特质:

 

 

比如SAP Data Intelligence提供的Kafka Consumer和Producer Operator,给其维护一个Kafka Broker的地址,就能无需编程,轻松实现生产者-消费者场景:

 

 

现在回到本文开头提到的增删改查API的需求。这个API可以让消费者通过HTTP的方式调用,通过API进行增删改查的操作对象仅仅维护在Graph运行时的内存里,实际就是JavaScript简单实现的对象键值对,为简单起见,省略了持久化操作。

这个由Graph实现的API最后如下图所示,总共由6个Operator组成,其中一个HTTP Server,四个JavaScript Operator和一个Multiplexer.

 

 

根据帮助文档,HTTP Server这个Operator封装了最简单的HTTP服务器的功能,能够在用户配置的endpoints上接收HTTP请求。

 

 

如何配置Operator?右键菜单里选择“Open Configuration”, 点击Routes的编辑图标:

 

 

根据SAP帮助文档,HTTP Server Operator只负责接收HTTP请求,并不负责收到这些请求后的业务处理,而是通过Output Port交由Graph下游的其他Operator完成。Route配置信息一目了然,在路径/objects上接收到带参数id的HTTP请求后,按照HTTP请求类型,分别将请求通过get, post和delete三个Output Port 转发给其他Operators.

 

 

接下来我们实现HTTP GET操作的响应逻辑。从Operators标签页里拖拽一个JavaScript Operator到编辑页面里,重命名为GET Handler,创建一个名叫request的Input Port,将其连接到HTTP Server的get Output Port.

 

 

右键单击GET Handler,选择Open Script菜单项:

 

 

由于预见到HTTP Server接收到GET,POST和DELET请求后,都有一些通用的逻辑要处理,比如从URL里解析出消费者传入的对象ID参数值,并交由下游Operator进一步处理。因此这里的设计是这三个Handler在收到请求后,仅仅构造一个命令对象,该对象包含这次HTTP请求所对应的内存中JavaScript对象键值对的操作类型(GET请求对应select,POST请求对应insert,DELETE请求对应delete)和传入的参数ID值:

 

 

从上图看出这三个Handler的实现代码,除了通过command Output port传给下游节点的操作类型(objectStore.command)存在差异之外,并无其他区别。

 

 

任意一个HTTP请求被HTTP Server接收后,只会触发这三个Handler其中一个。三种Handler产生三种可能的输出操作,通过名为command的Output Port传递给上图中图标为三叉戟的三路复用器。这个复用器确保最后一个JavaScript Handler能够同时处理这三种可能性,执行完对应的键值对操作后,将处理结果经过上图橙色虚线标注的数据流,传递给HTTP Server的Input Port.

在名为Object Store的JavaScript Handler内部,用变量objects定义一个空的JavaScript对象,作为键值对的存储实体。针对select,insert和delete三种操作,分别这个对象来实现增删改查。

 

 

这样该Graph从接收到HTTP请求,到处理完请求将结果写入HTTP Server名为Response的Input Port,形成了一个完整的闭环。

 

 

Graph开发完毕后,点击运行按钮,待其处于运行状态后,就可以使用Postman等工具或编程语言消费了。在控制台将其Runtime Handle抄下来:

 

 

首先测试API读取功能,试图读取一个ID为1的实例:

https:///app/pipeline-modeler/service/v1/graphs//operator/httpserver1/objects/1

看到返回的提示信息“no obect with ID”就是我们在Object Store JavaScript Handler里硬编码的错误处理。

 

 

接着调用HTTP Post插入一条key为1的JavaScript对象:

 

 

然后用HTTP GET读取,这次读取成功:

 

 

使用HTTP DELETE请求删除这个ID为1的对象:

 

 

希望本文能帮助大家对SAP Data Intelligence里这种低代码开发方式有一个最直观的了解,感谢阅读。

更多阅读

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

0
1
分享到:
评论

相关推荐

    SAP云平台上的LowCodeDevelopment(低代码开发)解决方案.docx

    SAP云平台上的LowCodeDevelopment解决方案是指使用低代码开发平台/工具,快速生成应用程序的平台/工具,通常提供可视化的交互界面来快速搭建应用界面,设计数据模型,创建应用业务逻辑和工作流等。低代码开发平台对...

    SAP的API文档

    SAP的API文档

    SAP B1 开发手册

    SAP B1 SDK教材,包括UI和DI的开发。对SAP B1的二次开发必不可少。有提供例子作参考。

    SAP ABAP 开发环境和开发工具介绍

    SAP ABAP 开发环境和开发工具介绍 SAP ABAP 开发环境和开发工具是 SAP 系统中最重要的组件之一,它提供了一个强大的开发平台,允许开发者创建、测试和部署 ABAP 程序。ABAP 是 SAP 系统中的主要编程语言,用于开发...

    SAP2000的API功能文档

    此外,SAP2000批处理文件的使用,使得用户可以进行大量模型的自动化处理,非常适合大规模项目的批量计算需求。 ### 报告生成与定制 SAP2000的API还允许用户生成定制化的报告,包括RTF、XML、Word、HTML等多种格式...

    SAP Business One 的10.0版本最新jar包,二次开发必用!

    除了Java,SAP B1还支持其他开发方式,如C#和.Net,但Java以其跨平台的特性,成为许多开发者首选的开发语言。此外,了解SAP B1的业务流程和数据模型也是进行有效开发的必要条件。 总结来说,SAP Business One 10.0...

    批量下载sap 程序代码

    当开发人员或系统管理员需要进行代码分析、升级或维护时,批量下载SAP程序代码是一项必要的任务。本篇文章将详细讲解如何进行批量下载SAP程序代码,并介绍提供的两个工具——Mass Download 146和Mass Download 144....

    SAP_Scripting_API.pdf

    SAP GUI Scripting API的设计目的是提供一种方式来模拟用户界面与SAP系统之间的交互,从而能够更好地集成和自动化使用这些界面的应用程序。 5. 使用Python结合SAP实现自动化: 文档描述了一个使用Python结合SAP实现...

    SAP_ME中文API

    在“SAP_ME中文API”中,我们主要探讨的是如何使用这些API来与SAP ME进行对接,以便于开发定制化的应用或集成现有的业务流程。 首先,了解SAP ME API的基础概念至关重要。API是一组预定义的函数、协议和工具,用于...

    SAP DI_API的应用

    SAP DI_API提供了丰富的功能,使得开发人员能够轻松地进行数据交互、管理业务对象以及执行复杂的业务逻辑。通过了解和掌握上述提到的各种方法和功能,开发人员可以在SAP Business One系统中实现更高级别的自定义和...

    实战SAP程序开发

    在SAP系统中,开发者通常使用SE80(ABAP Development Workbench)进行开发,这个集成开发环境(IDE)包含了编写、调试和测试ABAP代码的所有工具。此外,还有ABAP Editor用于代码编写,Test Buffer用于快速查看和修改...

    SAP Business One的二次开发java的jar包

    对于SAP开发,可能还需要特定的插件,如SAP Development Tools for Eclipse,这能帮助开发者更方便地管理和调试SAP相关的Java代码。 "jar 接口"则意味着开发人员需要理解和使用SAP提供的Java接口。这些接口定义了...

    SAP GUI Scripting API手册

    The SAP GUI Scripting API is an automation interface that enhances the capabilities of SAP GUI for Windows. Using this interface, end users may automate repetitive tasks by recording and running macro...

    ABAP开发从入门到精通-高清自学版 SAP+ABAP开发从入门到精通 SAP开发自学必读 SAP SAP开发自学入门到精通

    同时,"SAP开发自学必读"提示我们,这些资料可能包含了一些SAP开发的关键知识点,例如模块池编程(Seamless Workbench for ABAP,简称SE80),用于创建图形用户界面(GUI)的应用程序。 "SAP SAP开发自学入门到精通...

    SAP开发培训资料(包含代码)

    本压缩包“SAP开发培训资料(包含代码)”提供了一个全面的学习资源,帮助初学者和有经验的开发者深化对SAP ABAP的理解。 1. SAP ABAP基本语法: SAP ABAP是一种结构化编程语言,其语法与传统的编程语言类似,包括...

    sap基本API学习指南

    API(Application Programming Interface)在SAP环境中扮演着至关重要的角色,它允许不同的软件应用程序之间进行交互,从而实现数据交换和功能调用。SAP API通常包括用于访问SAP核心系统的函数模块、用于BAPI...

    ABAP开发教程及代码(含SAP各模块实例代码)

    SAP+ ABAP开发实用教程:顾问培训资料,含实例代码和教程,详细描述ABAP开发过程:数据表读法、程序规范、代码实例、调试方法以及ABAP开发环境和总体介绍、 ABAP语法示例 、ALV控件的使用、 实战Form设计 ,分基础、...

    《SAP高级应用开发》源代码

    这份源代码集合旨在提升SAP实施人员的专业技能,帮助他们深入理解SAP的复杂功能,并且使开发人员能够熟练地进行SAP ABAP和Java的双语开发。 在SAP系统中,ABAP(Advanced Business Application Programming)是核心...

    SAP DI API.zip

    这个API允许开发者通过Java代码与SAP BusinessObjects服务器进行通信,执行诸如创建、更新和查询单据等操作。SAP BOI SDK通常用于开发自定义的数据提取、转换和加载(ETL)工具,或者构建与SAP BusinessObjects产品...

    SAP高级应用开发-电子书+源代码.zip 分卷1 /2

    此资源分为2个压缩卷,此为分卷1,文件名:SAP高级应用开发-电子书+源代码.zip,采用7-zip压缩 SAP高级应用开发:RFC、BAPI、ALE、Workflow、SAP连接器、WebDynpro及BSP 丛书名: 图灵SAP技术丛书 字 数: 579000 ...

Global site tag (gtag.js) - Google Analytics