Marketing Cloud里的Contact标准tile(下图红色tile)上是没有当前系统contact数字显示的,请对比profile tile(下图黑色tile). 客户有需求希望在Launchpad Contact tile上也显示这个数字,因此我新建了一个tile. 需要给这个tile配置一个OData API url: /sap/opu/odata/sap/CUAN_CONTACT_SRV/InteractionContacts/$count?$filter=YY1_FACEID…
我们可以使用SAP Marketing Cloud提供的Contact create OData API在第三方应用里创建Contact主数据. API地址:/sap/opu/odata/sap/CUAN_CONTACT_SRV/InteractionContacts 示例代码只有100多行: import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URI; import o…
首先在Marketing Cloud里找到创建扩展字段的tile入口,搜索关键字extension: 这会进入Fiori应用"Custom fields",能看到系统里所有创建好的extension field.点击+加号按钮新建一个: 维护这个扩展字段的技术信息,比如标签,类型,长度等等. 创建好之后点击按钮Publish,确保字段处于publish状态. 接下来需要为特定的UI enable这个字段的显示.在标签页UIs and Reports里,在对应的UI记录后点击按钮&quo…
界面如下: Basically, contact data for SAP Hybris Marketing can be loaded from various sources, such as an ERP system, a web shop, social media and many more. Contact数据源可以来自各个渠道,例如ERP系统,电商,社交媒体账号等等. 每个渠道都可以成为Marketing Cloud系统里最终完整contact实例的一块拼图,这个完整的conta…
我们先来看看Marketing Cloud系统里的contact信息: 一共1218374条数据. 我们用如下的nodejs代码通过OData来获取这些数据: var request = require('request'); var config = require("./mcConfig"); var url = config.getContactBatchURL; var sBody = "--batch_c914-a60c-1877" + "\n&…
SAP很多系统的主数据都支持从外部系统导入,SAP Marketing Cloud也是如此,contact主数据可以来自Hybris Commerce,CRM,ERP或者Twitter,Facebook等社交媒体.来自不同渠道的contact可能对应的是真实世界里同一个人,那么就存在一个过程,该过程的逻辑是将不同渠道的contact数据进行整合,拼凑出一个包含完整信息的contact主数据存储到Marketing Cloud系统里,这个拼凑的过程称之为合并(merge),拼凑后形成的完整Cont…
Marketing Cloud的contact支持多种多样的数据源,如下图所示: SAP Hybris Commerce SAP ERP SAP Cloud for Customer SAP Gigya external social media 在系统的Origin data标签页里能看到一个merge后的contact的所有数据源: 看一些例子.初次从Hybris commerce里导入,Marketing Cloud系统里不存在ID为4711,mobile为12345的contact,所以…
使用这个mock数据生成器网站https://www.mockaroo.com/b6790790,创建一个基于Marketing Cloud contact schema的csv文件. 如果偷懒的话,每个contact字段的值都可以选择随机生成.点Download Data下载到本地. 打开csv文件之后,还可以用文本编辑器对值进行微调. 进入Marketing Cloud,点Import进行导入: 在business administration这个catalog里的import monito…
Marketing Cloud里的contact主数据,创建成功后也不是所有字段都能够被修改.在Personal data区域的字段是可以被修改的. 比如我在"客户属性"字段里维护了一些值: 然后点保存: 其中第二个batch操作是通过一个roundtrip读取contact模型下多个子节点的数据,和我们这个修改的场景没有关联. 使用postman进行修改: body字段维护以下内容: --batch_1f7d-bd35-caed Content-Type: multipart/mix…
假设在Marketing Cloud有这样一个contact主数据: 现在需求是使用编程语言比如nodejs修改这个contact实例的高亮属性. 代码如下: var config = require("./mcConfig"); var request = require('request'); var url = config.tokenURL; console.log("user: " + config.user + " password: &quo…
这个系列的第一篇文章 SAP Marketing Cloud功能简述(一) : Contacts和Profiles,我向大家介绍了SAP Marketing Cloud里的Contacts和Profiles,本文继续介绍SAP Marketing Cloud里围绕Target Group这个概念的一些相关场景和功能. (1) 根据标签细分用户:Segmentation Modeling 在Segmentation Modeling中支持以各种标签细分用户群,如商品ID.交互方式.地区.性别.生日…
Grace的前两篇文章: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Cloud功能简述(二) : Target Group 本文作为这个系列的第三篇,将会给大家介绍SAP Marketing Cloud里的营销活动内容设计和产品推荐这两大模块的功能. 营销负责人员通过第二篇文章介绍的步骤确定了Target Group之后,下一步就是设计活动的内容.这部分工作在Content Studio中完成. 我们可以创建不同类型…
需求:扩展字段"微信ID"是我创建出来的extension field,我想用Marketing Cloud提供的contact creation API,在创建contact时也能支持这个扩展字段.换言之,我希望在调用contact create API时,给Extension field维护值,contact创建成功后,Extension field会被调用API时传入的值填充. 首先在Chrome开发者工具里找到这个字段的技术名称technical name:YY1_WECHAT…
首先在Marketing Cloud的UI上创建一个contact: 观察Chrome开发者工具network标签页里的HTTP请求: https://jerry.gcdemo.hybris.com/sap/opu/odata/sap/CUAN_COMMON_SRV/?sap-client=100 这个请求用于读取CSRF token: 点击保存,会发送一个新的HTTP post请求: 请求url: https://jerry.hybris.com/sap/opu/odata/sap/CUAN_…
我们使用nodejs对contact进行修改时,需要指定待修改contact实例的guid. 这个guid属于technical属性,在Marketing Cloud UI上默认情况下不可见.如何找到这个属性值呢? 其实就在浏览器地址栏的url里: 当然在Chrome开发者工具的network标签页里也能找到这个guid: 要获取更多Jerry的原创文章,请关注公众号"汪子熙":…
源代码如下: var config = require("./mcConfig"); var request = require('request'); var url = config.tokenURL; console.log("user: " + config.user + " password: " + config.password); var getTokenOptions = { url: url, method: "GE…
Dong Grace是Jerry的同事,目前是SAP成都研究院数字创新空间团队的一名实习生,明年7月才毕业.这篇文章是Grace对SAP Marketing Cloud功能梳理的一篇学习笔记,因为篇幅较长(总共有1万多字),所以分成几部分发表出来. Jerry加入SAP的第一个工作岗位,是负责SAP Business by Design里SCM(供应链)模块的Form开发,工作了一年多,对SCM业务知识还停留在"帮助文档里每个单词都认识,但串成一句话就不知道在说什么"的阶段.和Jerr…
这个系列的前三篇文章Grace Dong已经给大家带来了下面的内容: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Cloud功能简述(二) : Target Group SAP Marketing Cloud功能简述(三) : 营销活动内容设计和产品推荐 SAP Marketing Cloud提供了一套全面的市场营销应用,可用来帮助营销人员专注于客户.培养联系人并创建线索和活动. Marketing Lead Mana…
version 1.0 作者:Wang Jerry 更多问题请联系我 demo 系统url:https:/jerry.hybris.com/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html 用户名/密码:Jerry1/Diablo1 登录成功之后,可以在菜单"快速启动"->"Manage Contacts"里找到Marketing Cloud contact管理应用.单击: 这里就能看到该系统里…
需求:我在Marketing Cloud的contact模型上用custom field这个应用创建了一个Extension field,名称为微信ID. 现在客户的需求是使用这个字段作为过滤条件进行搜索. 首先在界面上执行一次搜索,在Chrome开发者工具network标签里将这次搜索中前端发给后台的HTTP请求明细记录下来: 然后在postman里照样维护一份: payload: --batch_bd03-9977-8095 Content-Type: application/http Co…
STM32F103ZET6 用定时器级联方式输出特定数目的PWM STM32F103ZET6里共有8个定时器,其中高级定时器有TIM1-TIM5.TIM8,共6个. 这里需要使用定时器的级联功能,ST的RM0008 REV12的P388和P399页上有说明对于特定的定时器,怎么去选择级联功能,参见表86. 我这里输出PWM的定时器是TIM2,空闲的定时器是TIM3.以TIM2为主定时器,TIM3为从定时器对TIM2的输出脉冲数进行计数. 查表可知,TIM3为从定时器选择TIM2为触发源,需要配置…
在做更新,在测试异常的时候,在下载过程中,发现如果直接系统禁用了网络,会报错误,可以捕获.但是如果是第三方软件限制程序联网,问题来了. 程序会一直在那里等待,没有异常,也不发送QNetworkAccessManager::finsh和QNetworkReply::error和QNetworkReply::finsh信号. 所以动念头为下载加个超时,但是QNetworkAccessManager,QNetworkReply和QNetworkRequest都没有相关的设置函数.其实仔细想一下,也没有…
Grace前四篇介绍SAP Marketing Cloud的文章: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Cloud功能简述(二) : Target Group SAP Marketing Cloud功能简述(三) : 营销活动内容设计和产品推荐 SAP Marketing Cloud功能简述(四) : 线索和客户管理 本文作为这个系列的最后一篇,向大家简要介绍SAP Marketing Cloud的销售计划管理…
在common包中创建类文件UUIDUtils.java package sinosoft.bjredcross.common; import java.util.UUID; public class UUIDUtils { /** * 获得指定数目的UUID * @param number int 需要获得的UUID数量 * @return String[] UUID数组 */ public static String[] getUUID(int number){ if(number < 1)…
当我们的虚拟机在非正常关闭后,再次启动机器时,Virtual Box会出现 Runtime error opening 'C:\Users\admin\VirtualBox VMs\Windows Server\Windows Server.vbox   for reading: -102 (File not found.).提示. 虚拟电脑非正常关闭,造成一些日志无法记录,有可能在下次启动虚拟机的时候无法使用里面的系统,一般会提示找不到一个文件,并告诉你这个文件的路径.你顺着这个路径找下去例如…
去年5月的时候,Jerry曾经写了一篇文章:使用Java程序消费SAP Leonardo的机器学习API,而最近另外做的一个项目,需要在Web应用里做同样的事情. 因为有了前一篇文章的铺垫,避免了很多重复的工作量.本文还是选择使用SAP Leonardo里的一个Product Image Classification API,即给定一张产品的图片,该API能识别出此产品的类别. 再回顾下这个API的功能:该API的模型是由SAP基于大约5万张Icecat图片训练而成,能区分29种不同的类别,这些…
系统的某些block api中,UIView的block版本写动画时不需要考虑,但也有一些api 需要考虑 以下这些使用方式不会引起循环引用的问题 [UIView animateWithDuration:duration animations:^ { [self.superview layoutIfNeeded]; }]; [[NSOperationQueue mainQueue] addOperationWithBlock:^ { self.someProperty = xyz; }]; [[…
打开maintain business role这个应用: 创建一个新的business role,然后添加下列这几个catalogs: SAP_CEC_BC_MKT_ADM_PC Marketing - Business Administrator SAP_CEC_BC_MKT_DMB1_PC Marketing - Contacts and Profiles Base SAP_CEC_BC_MKT_CFS1_PC Marketing - Contact Profile SAP_CEC_BC_…
小结: 1.内存优化1.一个消息一定只有一块内存使用 Job 聚合消息,Comet 指针引用. 2.一个用户的内存尽量放到栈上内存创建在对应的用户 Goroutine(Go 程)中. 3.内存由自己控制主要是针对 Comet 模块所做的优化,可以查看模块中各个分配内存的地方,使用内存池. 2.模块优化1.消息分发一定是并行的并且互不干扰要保证到每一个 Comet 的通讯通道必须是相互独立的,保证消息分发必须是完全并列的,并且彼此之间互不干扰. 2.并发数一定是可以进行控制的每个需要异步处理开启的…
前提背景 我们距离"不再智障"的智能客服还有多远?对于智能客服,用户一直都是"批评多于褒奖",究其原因是在于人们对于AI客服的期待很高,而AI客服在实际应用中的拙劣表现让许多用户大失所望.所有功能都致力于使用负责任的.以人为本的AI应用方式,即Contact Center AI,谷歌认为它可能提升用户的全程服务体验. 谷歌发布Contact Center AI,智能客服如何? 谷歌推出的第一个Solution Product (行业解决方案产品)--Contact…