使用 nodejs 和 Java 访问远程服务器的服务
既然这篇文章用的是 nodejs 和 Java 访问远程服务器的服务,那么咱们先用另一门编程语言,SAP 的 ABAP(我日常工作使用得最多的编程语言)来开发一个服务吧。
这是我用 ABAP 编程语言实现服务的类:ZCL_DIS_HTTP_HANDLER
这个类实现了一个接口 IF_HTTP_EXTENSION 里定义的一个方法 HANDLE_REQUEST.
大家可以不用被 ABAP 陌生的语法所迷惑,其实和 Java 的 Servlet 是相通的。
我画了张图:
我的这个远程服务很简单,就是无论调用者发送什么,都简单地返回一个文本:HELLO WORLD。
现在我们就分别用 nodejs 和 Java 去消费。
nodejs
看下 nodejs 代码。
下面的代码传入 Buffer 的 WANGJER 为我的用户名,123456 为密码。使用的登录方式是 Basic Authentication。
执行结果:算上网络开销总共花了 1.4 秒。
java
下面代码的 WANGJER 为我的用户名,123456 为密码。使用的登录方式是 Basic Authentication。
执行结果,耗时和 nodejs 差不多。
注意,用本文介绍的方法不仅能访问远程服务器的服务,也能达到资源下载的目标:比如下载某服务器上的图片,mp3 等。只需要把对应资源的 url 传入系统即可。
我们从 SAP CRM,Cloud for Customer(简称 C4C)和 S/4HANA 这三个产品分别来看看。
SAP CRM
我们使用所谓的 Application Enhancement Tool(AET)来创建扩展字段。首先在 Personalize 里将 Configuration 模式打开,这样才能够直接在浏览器里创建扩展字段。
把这个“Enable configuration mode”的勾选中,就打开了 Configuration 模式了。
比如我想在下面这个界面上添加一个新的字段。非常简单,点这个齿轮进入 Configuration mode - 配置模式:
当前界面可以添加新字段的区域自动被高亮成了蓝色:
然后我随便在高亮区域处点一下鼠标左键,从弹出的对话框中点击按钮“Create Field”来创建新的字段。
这个新字段从技术上来说得从属于某一个 BO 模型的某个节点上,所以此处我选择了 ORDERADM_H 这个节点。
然后就是指定这个字段的标签,数据类型,字段长度等等。此处我新建的字段标签为“city name”:
点击 Save and Generate 进行字段创建:
之后该字段就出现在 UI 界面上了:
现在可以在 UI 上对该字段进行值的维护了:
根据扩展字段进行搜索的功能也是自动实现的:
以上就是 SAP CRM 自定义字段的创建和使用。
SAP Cloud for Customer
同样,点 Edit->Edit Master Layout 进入编辑模式:
比如我想在下图 Additional Information 这个区域增加一些新的字段,只需要把鼠标放上去,就会弹出一个悬浮的工具栏:
选择 Add Fields 就能开始新字段的添加了:
和 CRM 一样,需要维护扩展字段的类型:
同 SAP CRM 相比,C4C 的扩展字段除了 UI 之外,还能放到其他模型上,比如放到 Adobe Form template 上:
以及加到 Report data source 里:
以及加到 Enterprise search 里:
以及加到 extension scenario 里去。
以上图的 extension scenario 为例:意思就是如果一个 Opportunity 上的扩展字段值为 A,那么这个 Opportunity 生成的后续文档 Service Request,其同名扩展字段的值也为 A。
扩展字段也能自动加到 SAP 标准的 Web Service 和 OData service 上:
保存之后,可以给该扩展字段赋值。
S/4HANA
同 SAP CRM 和 SAP C4C 直接在想添加扩展字段的 UI 上进行字段创建不同,S/4HANA 采取的方式是首先统一创建扩展字段,然后用户再决定将这些字段放到哪些 UI 上去。
S/4HANA launchpad 的 Custom Fields and Logic 这个 tile 专门负责扩展字段的创建工作:
这次我想在 S/4HANA 的物料主数据上创建扩展字段,所以从 Business Context 的下拉菜单里选择了 Product Master General。
字段标签维护成“Jerry extension field on MARA”,类型为 Text,长度为 20。
然后点击标签页“UIs and Reports", 点击 I_PRODUCTWD 和 MD_C_PRODUCT_MAINTAIN_MDLD 对应的 Enable Usage 按钮:
完毕之后点保存,再点发布按钮,确保扩展字段的状态处于发布状态(Published)。
点这个按钮:
点"Adapt UI"按钮:
屏幕右上角提示当前已经处于“Adaption”模式了:
点右键,从“Available Fields”的列表里选择我之前创建的扩展字段“JDK Minimum version”:
然后终端用户就能针对该扩展字段进行编辑了:
要获取更多 Jerry 的原创技术文章,请关注公众号"汪子熙".
版权声明: 本文为 InfoQ 作者【Jerry Wang】的原创文章。
原文链接:【http://xie.infoq.cn/article/bd4fda89c805d7e8412dd65e3】。文章转载请联系作者。
评论