SAP Marketing Cloud 功能概述(四)(下)

简介: 本文作为本系列最后一篇文章,介绍 Marketing Cloud 中的销售计划管理模块。

使用nodejs实现OData的batch操作在Marketing Cloud里读取

对 Marketing Cloud 的功能模块有了基本的了解,我们接下来可以学习如何使用编程的方式,消费 Marketing Cloud 系统的主数据。


我们先来看看笔者 Marketing Cloud系统里的contact信息:

一共1218374条数据。

image.png

我们用如下的nodejs代码通过OData来获取这些数据:

var request = require('request');
var config = require("./mcConfig");
var url = config.getContactBatchURL;
var sBody = "--batch_c914-a60c-1877" + "\n" + 
"Content-Type: application/http" + "\n" + 
"Content-Transfer-Encoding: binary" + "\n" + 
"\n" + 
"GET InteractionContacts?sap-client=100&$skip=0&$top=2&$select=ImageURL%2cName%2cContactLevelName%2cCountryName%2cCity%2cEMailAddress%2cPhoneNumber%2cMobilePhoneNumber%2cCorporateAccountName%2cInteractionContactUUID%2cRelationship%2cType&$inlinecount=allpages HTTP/1.1" + 
"sap-cancel-on-close: true" + "\n" + 
"Cache-Control: max-age=360" + "\n" + 
"sap-contextid-accept: header" + "\n" + 
"Accept: application/json" + "\n" + 
"Accept-Language: en" + "\n" + 
"DataServiceVersion: 2.0" + "\n" + 
"MaxDataServiceVersion: 2.0" + "\n" + 
"\n" + "\n" + 
"--batch_c914-a60c-1877--";
var getContactOptions = {
        url: url,
        method: "POST",
        json:false,
        headers: {
            "content-type": "multipart/mixed;boundary=batch_c914-a60c-1877",
            'Authorization': 'Basic ' + new Buffer(config.user + ":" + config.password).toString('base64')
        },
        body: sBody
};
function getContact() {
  return new Promise(function(resolve,reject){
      var requestC = request.defaults({jar: true});
      console.log("Step1: get contact via url: " + url );
      requestC(getContactOptions,function(error,response,body){
        if( error){
          console.log("error occurred: " + error);
          reject(error);
        }
        console.log("response:" + body);
        var nStartIndex = body.indexOf("{");
        var nLastIndex = body.lastIndexOf("}");
        if( nStartIndex < 0 || nLastIndex < 0)
            return;
        var sPayload = body.substring(nStartIndex, ++nLastIndex);
        resolve(JSON.parse(sPayload));
      }); 
     });
}
function displayResult(oResult){
  console.log(oResult);
}
getContact().then(displayResult);

使用node命令直接执行这个.js文件:

image.png

得到与浏览器上观察相一致的结果:

image.png

使用postman创建Marketing Cloud的Contact

除了 Node.js 等代码之外,我们也可以使用 Postman 这种常规的 Restful API 测试工具,来创建 Marketing Cloud 的 Contact 数据。


首先在Marketing Cloud的UI上创建一个contact:

image.png

观察Chrome开发者工具network标签页里的HTTP请求:

https://jerry.hybris.com/sap/opu/odata/sap/CUAN_COMMON_SRV/?sap-client=100

这个请求用于读取CSRF token:

49.png

点击保存,会发送一个新的HTTP post请求:

image.png

请求url:

https://jerry.hybris.com/sap/opu/odata/sap/CUAN_COMMON_SRV/ContactPersons?sap-client=100

再看下重要的请求头部字段:

50.png

把第一步获得的CSRF token填到Postman里的header字段里,如图:

image.png

body:

{"CountryCode":"CN","City":"Chengdu","FirstName":"Jerry1","LastName":"Wang1","PostalCode":"610093","RegionCode":"","Street":"天府软件园","HouseNumber":"天府软件园","DateofBirth":null,"ContactPersonFacets":[{"Id":"jerry1@sap.com","IdOrigin":"EMAIL","Obsolete":false,"Invalid":false},{"Id":"","IdOrigin":"PHONE","Obsolete":false,"Invalid":false},{"Id":"","IdOrigin":"MOBILE","Obsolete":false,"Invalid":false},{"Id":"","IdOrigin":"FAX","Obsolete":false,"Invalid":false}],"IsConsumer":true,"Filter":{"MarketingAreaId":"CXXGLOBAL"}}

image.png

状态码201,证明创建成功了:

image.png

可以在前端看到创建成功的contact:

image.png

总结

本文作为该系列的最后一篇文章,介绍了 SAP Marketing Cloud 的营销计划模块,以及如何使用 Node.js 和 Postman 这两种工具,来创建 Marketing Cloud Contact 主数据的方法。


image.png

目录
相关文章
|
7月前
|
安全 测试技术 数据安全/隐私保护
SAP Commerce Cloud Backoffice site 里 Require Authentication 字段的作用
SAP Commerce Cloud Backoffice site 里 Require Authentication 字段的作用
38 0
|
3月前
|
IDE JavaScript 开发工具
什么是 SAP Fiori tools 的 environment check 功能
什么是 SAP Fiori tools 的 environment check 功能
28 0
|
24天前
|
安全 UED 开发者
SAP Commerce Cloud 配置项 refreshWithLock=false 的作用介绍
SAP Commerce Cloud 配置项 refreshWithLock=false 的作用介绍
20 0
|
24天前
|
Java BI API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
15 0
|
2月前
|
监控
SAP CRM 解决方案功能的全面性
SAP CRM 解决方案功能的全面性
20 0
|
3月前
|
机器学习/深度学习 人工智能 监控
SAP Sales Cloud,Service Cloud 和 SAP BTP 平台上的 AI 集成场景
SAP Sales Cloud,Service Cloud 和 SAP BTP 平台上的 AI 集成场景
67 0
|
6月前
|
数据安全/隐私保护
SAP Commerce Cloud 的 DataIsolation flag
SAP Commerce Cloud 的 DataIsolation flag
25 0
|
6月前
|
数据管理 API
什么是 SAP Commerce Cloud 集成扩展包
什么是 SAP Commerce Cloud 集成扩展包
22 1
|
2月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
29 0
|
2月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
17 0