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. Cuda Stream流 分析
  2. Mocha BSM产品亮点——关联事件分析
  3. ubuntu 中安装memcache,并给出一个简单的实例·
  4. 谈谈redis,memcache的区别和具体应用场景
  5. linux 下orapwd 未找到命令,关于orapwd命令entries参数的探究
  6. 【转】setsocketopt getsocketopt比较全的参数说明
  7. nodejs mysql access denied_Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’...
  8. Naïve UI——一个 Vue 3 组件库
  9. 旷视产品营销总监吕盟:构建AIoT时代的城市智慧|量子位沙龙回顾
  10. iis启动 服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425)
  11. 使能和测试ARM64内核PAN机制
  12. 宏发41F-1Z-C2接线
  13. java 导入导出excel表格
  14. Python数据分析辅助审计工作
  15. gtsam 学习十(ISAM2 理论)
  16. .html .val .text 的区别
  17. 微信小程下载word文档Java后台实现
  18. Java时间处理:根据日期计算并转化为前天昨天凌晨早上下午晚上明天后天15天内等标签
  19. 如何搭建公众号 含举例详情
  20. 企业网站建设该选择什么样的建站系统

热门文章

  1. 机器学习实验中的编程技术(part1)--numpy
  2. 文献记录(part10)--BARTMAP-A viable structure for biclustering
  3. 第三次学JAVA再学不好就吃翔(part117)--单例设计模式
  4. 非线性光纤光学_1.56 m波段高能量百飞秒光纤激光器
  5. 机器学习模型效果评估
  6. SAP UI5 应用开发教程之五十七 - 基于 OData 注解的 Smart Field 使用方法学习试读版
  7. 使用 SAP Cloud SDK 开发应用时,如何通过环境变量的配置避免硬编码
  8. SAP Spartacus PagelayoutComponent里的section和slot
  9. SAP Spartacus自定义Component的Not found问题
  10. Spring JDBC 框架,我的学习笔记