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相关推荐

  1. 最详细的使用 soapui 消费 SAP Cloud for Customer Web service 的教程

    本文就以SAP Cloud for Customer的web service消费这个需求为例,来讲解soapui这个工具的使用步骤. 使用soapui消费web service,最简单的方式是在soa ...

  2. SAP Cloud for Customer里如何根据产品ID拿到其UUID

    在我们需要把SAP Cloud for Customer同第三方系统集成时,经常需要在第三方系统里消费SAP Cloud for Customer的API, 这些API往往需要指定SAP C4C对象的 ...

  3. SAP Cloud for Customer 如何直接消费S/4HANA API

    最近有朋友在微信上问我本文标题这个需求,如何在 SAP Cloud for Customer 里实现.正好我在 2018年底参加的 SAP 和沈阳自动化研究所合作设计的一个工业 4.0 示范系统 PO ...

  4. SAP Cloud for Customer UI Designer里如何消费Object Value Selector(OVS)

    先看最后实现的效果: 我有一个字段,用户既手动输入Employee ID,也可以点击字段的矩形框,打开Value help: 假设我选中ID为1的Employee,则其first name和last ...

  5. SAP Cloud for Customer 技术概述

    SAP Cloud for Customer 标准培训课程 文章目录 SAP Cloud for Customer 架构 SAP Cloud for Customer 部署的三种方式 SAP Clou ...

  6. 机器学习在SAP Cloud for Customer中的应用

    关于机器学习这个话题,我相信我这个公众号1500多位关注者里,一定有很多朋友的水平比Jerry高得多.如果您看过我以前两篇文章,您就会发现,我对机器学习仅仅停留在会使用API的层面上. 使用Java程 ...

  7. SAP Cloud for Customer Price-计价简介

    SAP Cloud for Customer(本文以下简称C4C)作为SAP新一代的CRM云产品,其Price功能实现虽不如以前的SAP ERP那么复杂,但是也能满足企业运作中各种Price需求. C ...

  8. 如何在 SAP Cloud for Customer 里自定义消息 Message

    在 SAP Cloud for Customer 里,虽然 Partners 不允许直接登录 ABAP 后台,但仍旧可以通过 Cloud Application Studio 新建显示在 UI 上的消 ...

  9. SAP CRM 和 SAP Cloud for Customer 的表格列项目宽度调整的原理介绍

    这是 Jerry 2021 年的第 37 篇文章,也是汪子熙公众号总共第 313 篇原创文章. Jerry 之前的文章 一个 SAP 开发工程师十余年的技术写作之路回顾 曾经提到,知乎上安晓辉老师的一 ...

最新文章

  1. python 数据增强
  2. Android --- 控件属性的属性值为 @null
  3. 【网址收藏】Linux 命令分类(debian Linux)
  4. Connected to an idle instance问题的小小仇恨
  5. 数据库---事务的隔离级别
  6. Churchman University简介:
  7. php preview,preview.php
  8. 同一局域网下电脑传输文件的方式(超简单!)
  9. 小程序影藏溢出的gif_动图制作方法,1分钟教会你如何制作gif表情包!
  10. matlab fft 基波,fft 谐波分析_matlab fft频谱分析_傅里叶变换谐波分析
  11. SAP接口编程 之 JCo3.0系列(02) : JCo Client Programming
  12. 市场调研中的定性/定量分析
  13. 51单片机:独立按键
  14. 需求分析——系统建模方法
  15. 生僻字用计算机的歌词,生僻字歌词翻译成常用汉字 陈柯宇生僻字歌曲翻译谐音版...
  16. 彩屏显示入门:我要五彩斑斓的黑 | 用Arduino玩转ESP32与掌控板系列
  17. Java菜鸟逆袭之入门篇(附讲解)
  18. 2021高考秦安一中成绩查询,2021年天水高考状元是谁分数多少分,历年天水高考状元名单...
  19. 一位豪气的老板,送东西送到让客户都不好意思了,当天收款100万!
  20. 计算机格式化后能恢复数据吗,移动硬盘格式化后数据还能恢复吗

热门文章

  1. mybatis Resultmap 与 ResultType 区别
  2. 第三次学JAVA再学不好就吃翔(part42)--内部类概述
  3. Python字符串拼接的十种方式
  4. SAP UI5 应用开发教程之六 - 了解 SAP UI5 的模块(Module)概念
  5. 如何使用Chrome command API查找SAP Spartacus的router-outlet
  6. SAP Spartacus 用户登录成功后,Access Token 持久化到浏览器 local storage 的执行原理
  7. fixture.detectChange如何通过Angular zone执行其异步逻辑的
  8. Angular Component 开发时属性和运行时属性的对照
  9. TypeScript里的完整函数定义语法
  10. 几种常用的排序算法之JavaScript实现