使用nodejs消费SAP Cloud for Customer上的Web service
Jerry在公众号文章C4C和微信集成系列教程里曾经使用nodejs去消费C4C提供的标准webservice。
看一个具体例子:C4C里Individual Customers可以维护Social User Profile,在Jerry上面的公众号文章里,正是把微信用户的open ID维护到Social User Profile的SocialMediaAccountUserID字段去,如下图所示。
那么已知一个Social Profile ID,如何用nodejs通过Web Service的方式获得该Profile明细?
首先到Administrator->Input and Output Management->Service Explorer中取得标准的查询Social User profile的web service:
https:///sap/bc/srt/scs/sap/requestforsocialmediauserprofi
然后使用nodejs module request给这个url发一个HTTP post请求。
您可以参考我github上的源代码。
var request = require('request');
var config = require("../../config.js");function getSocialMediaProfile(profileID) {console.log("Jerry trace begin ***********************************");console.log("url: " + config.socialMediaProfileGetEndPoint);console.log("config.credential_qxl: " + config.credential_qxl);var ogetSocialMediaProfileOptions = {url: config.socialMediaProfileGetEndPoint,method: "POST",headers: {"content-type": "text/xml",'Authorization': 'Basic ' + new Buffer(config.credential_qxl).toString('base64')},body: '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global"><soapenv:Header/><soapenv:Body><glob:SocialMediaUserProfileRequest_sync>'+'<SocialMediaUserProfileSelectionByElements>'+'<SelectionBySocialMediaUserProfileID>'+'<InclusionExclusionCode>I</InclusionExclusionCode>'+'<IntervalBoundaryTypeCode>1</IntervalBoundaryTypeCode>'+'<LowerBoundarySocialMediaUserProfileID >' + profileID + '</LowerBoundarySocialMediaUserProfileID>'+'</SelectionBySocialMediaUserProfileID>'+'</SocialMediaUserProfileSelectionByElements>'+'</glob:SocialMediaUserProfileRequest_sync></soapenv:Body></soapenv:Envelope>'};console.log("body: " + ogetSocialMediaProfileOptions.body);console.log("Jerry trace end ***********************************");return new Promise(function(resolve,reject){request(ogetSocialMediaProfileOptions,function(error,response,body){console.log("Jerry web service response: " + body);var soapreg = /.*<SocialMediaUserAccountID>(.*)<\/SocialMediaUserAccountID>.*/;var soapresult = soapreg.exec(body);if( soapresult.length === 2){resolve(soapresult[1]);}});});
}module.exports = getSocialMediaProfile;
将上述代码另存为文件getSocialMediaProfileTest.js, 直接使用node getSocialMediaProfileTest.js执行。
从console能观察到发送的HTTP post请求的body和返回的响应内容:
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
使用nodejs消费SAP Cloud for Customer上的Web service相关推荐
- 最详细的使用 soapui 消费 SAP Cloud for Customer Web service 的教程
本文就以SAP Cloud for Customer的web service消费这个需求为例,来讲解soapui这个工具的使用步骤. 使用soapui消费web service,最简单的方式是在soa ...
- SAP Cloud for Customer里如何根据产品ID拿到其UUID
在我们需要把SAP Cloud for Customer同第三方系统集成时,经常需要在第三方系统里消费SAP Cloud for Customer的API, 这些API往往需要指定SAP C4C对象的 ...
- SAP Cloud for Customer 如何直接消费S/4HANA API
最近有朋友在微信上问我本文标题这个需求,如何在 SAP Cloud for Customer 里实现.正好我在 2018年底参加的 SAP 和沈阳自动化研究所合作设计的一个工业 4.0 示范系统 PO ...
- SAP Cloud for Customer UI Designer里如何消费Object Value Selector(OVS)
先看最后实现的效果: 我有一个字段,用户既手动输入Employee ID,也可以点击字段的矩形框,打开Value help: 假设我选中ID为1的Employee,则其first name和last ...
- SAP Cloud for Customer 技术概述
SAP Cloud for Customer 标准培训课程 文章目录 SAP Cloud for Customer 架构 SAP Cloud for Customer 部署的三种方式 SAP Clou ...
- 机器学习在SAP Cloud for Customer中的应用
关于机器学习这个话题,我相信我这个公众号1500多位关注者里,一定有很多朋友的水平比Jerry高得多.如果您看过我以前两篇文章,您就会发现,我对机器学习仅仅停留在会使用API的层面上. 使用Java程 ...
- SAP Cloud for Customer Price-计价简介
SAP Cloud for Customer(本文以下简称C4C)作为SAP新一代的CRM云产品,其Price功能实现虽不如以前的SAP ERP那么复杂,但是也能满足企业运作中各种Price需求. C ...
- 如何在 SAP Cloud for Customer 里自定义消息 Message
在 SAP Cloud for Customer 里,虽然 Partners 不允许直接登录 ABAP 后台,但仍旧可以通过 Cloud Application Studio 新建显示在 UI 上的消 ...
- SAP CRM 和 SAP Cloud for Customer 的表格列项目宽度调整的原理介绍
这是 Jerry 2021 年的第 37 篇文章,也是汪子熙公众号总共第 313 篇原创文章. Jerry 之前的文章 一个 SAP 开发工程师十余年的技术写作之路回顾 曾经提到,知乎上安晓辉老师的一 ...
最新文章
- Cuda Stream流 分析
- Mocha BSM产品亮点——关联事件分析
- ubuntu 中安装memcache,并给出一个简单的实例·
- 谈谈redis,memcache的区别和具体应用场景
- linux 下orapwd 未找到命令,关于orapwd命令entries参数的探究
- 【转】setsocketopt getsocketopt比较全的参数说明
- nodejs mysql access denied_Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’...
- Naïve UI——一个 Vue 3 组件库
- 旷视产品营销总监吕盟:构建AIoT时代的城市智慧|量子位沙龙回顾
- iis启动 服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425)
- 使能和测试ARM64内核PAN机制
- 宏发41F-1Z-C2接线
- java 导入导出excel表格
- Python数据分析辅助审计工作
- gtsam 学习十(ISAM2 理论)
- .html .val .text 的区别
- 微信小程下载word文档Java后台实现
- Java时间处理:根据日期计算并转化为前天昨天凌晨早上下午晚上明天后天15天内等标签
- 如何搭建公众号 含举例详情
- 企业网站建设该选择什么样的建站系统
热门文章
- 机器学习实验中的编程技术(part1)--numpy
- 文献记录(part10)--BARTMAP-A viable structure for biclustering
- 第三次学JAVA再学不好就吃翔(part117)--单例设计模式
- 非线性光纤光学_1.56 m波段高能量百飞秒光纤激光器
- 机器学习模型效果评估
- SAP UI5 应用开发教程之五十七 - 基于 OData 注解的 Smart Field 使用方法学习试读版
- 使用 SAP Cloud SDK 开发应用时,如何通过环境变量的配置避免硬编码
- SAP Spartacus PagelayoutComponent里的section和slot
- SAP Spartacus自定义Component的Not found问题
- Spring JDBC 框架,我的学习笔记