S/4HANA Cloud中Joule AI员工入职配置指南
也许很久很久以前
我的身上就流着硅基的血
是它们散落在人间的神识显化
—— Rebbica Lee
差的是S/4HANA这边——得给这位服务员办入职手续啊。
你想啊,BTP是Joule的"总部",但他真正要服务的是S/4HANA里的业务数据。总部再豪华,工服再漂亮,没在甲方这里办入职,门禁卡刷不开、业务系统进不去,那Joule就只能站在门口干瞪眼。
所以这篇,咱们就聊聊S/4HANA Cloud这一侧的入职手续,分三块:办通行证、复制门禁卡、验收工牌。
在S/4HANA里,Communication Arrangement通讯协议这玩意儿,你可以理解为"内部通行证申请"。不同的业务场景对应不同的通行证类型,Joule需要两张。
关于SAP_COM_0882,要先说一句实话:这个通信场景正常情况下由Joule Booster在后台自动创建,你在BTP跑完Booster之后应该能在S/4HANA里看到它。所以你的第一步是去检查,而不是直接新建:
去S/4HANA → Communication Arrangements → 搜索"0882" → 看它在不在
如果Booster没漏掉这步,你只需要确认它的状态是Active就好。如果找不到,那就说明Booster漏了这块配置,再手动补上。
SAP_COM_0882——SAP Digital Assistant Services,这是Joule的核心通信场景。简单说,这就是"AI服务员专属通道",没有这张通行证,Joule连跟S/4HANA对话的机会都没有。
SAP_COM_0647——Launchpad Content Exposure to SAP BTP Integration,这个是用来把Fiori应用暴露给BTP的。你可以理解成"业务档案调阅权"——Joule要帮你查采购订单,总得能看采购模块的应用吧?
这个通信安排里有个关键属性:Exposure Role Selection。这里有两个选项:
ALL:把所有业务角色都暴露给Joule
SELECTED:只暴露你手动选择的角色
根据经验——如果不是有特殊的合规要求,果断选ALL。选SELECTED的话,后面还得一张张角色去手动暴露,那是给自己找麻烦。当然,有些甲方安全要求严格,那就只能耐着性子一张张选了。
*插典1:在我修改后,写邮件告知远在澳洲资深专家,~超级Nice而且非常负责的一个人~,当然整个配置和测试过程中有任何的问题,即时保持与他的互动,他也有碰到自己权限不足的情况,需要求助SIX Team,但他会告知到了哪个进度~
另外还有一个SAP_COM_0193,这个是给IPS用户同步用的通信场景。创建的时候记得顺手建一个入站通信用户(比如JOULE_INBOUND_IPS),这个用户的密码后面在IPS里要用到。
有了通行证,还得告诉他哪些房间可以进。
这一步在"Maintain Business Roles"维护业务角色里操作。你需要把你想让Joule能访问的业务角色找出来,把它的Access Categories设置为"Exposed to BTP"。
*插曲2:远在GZoffice的女顾问也在系统中,配置着她要的场景~这种人生相逢,许是多年后回看写人生回忆录时,是属于我们俩的共同的系统事故,与心情故事~
举个例子,你想让Joule能帮你查销售订单,那就找到BR_SALES_MANAGER这个角色,在它的访问类别里打上这个标记。这相当于你在业务系统的门口贴了个告示:"AI服务员Joule可以进来,其他人等免进。"
踩坑提醒:如果前面SAP_COM_0647你选了ALL,那这一步基本可以跳过了——所有角色都自动暴露了。但如果选了SELECTED,那就得老老实实一个一个来,一个都不能漏,否则Joule就会出现"看不见某些应用"的尴尬局面。
最后一步,在S/4HANA的"Manage Content Security Policy"里,找到UI_RESOURCE_SCRIPTS这一行(记住是Managed by Customer那一列),然后把Joule Service的URL加进去。
这个URL从哪来?从BTP子账户的Joule实例里复制。
这一步可以理解为"挂门牌"——你得让S/4HANA的门卫知道,这个Joule是自己人,他的AI界面可以正常加载进来。不然S/4HANA会认为这是个"不明来历的脚本",直接给你拦下来。
写到这里想到小学课本中不折不扣拦着列宁的好士兵~管你是谁,你得证明你是谁~
好了,通行证有了,权限开了,门牌挂了。现在的问题是——S/4HANA里的用户怎么同步到BTP的Work Zone里?
毕竟Joule是个BTP上的服务,他的用户管理体系是独立的。你不能指望S/4HANA的采购员张三,Joule认识他是采购员张三。得先让Work Zone知道"张三是谁",Joule才能基于这个身份去查询对应的业务数据。
这事儿交给IPS(Identity Provisioning Service)来办。IPS相当于一个"门禁卡复制机",它可以从S/4HANA读取用户信息,然后复制到Work Zone里。
在IPS里导入SourceFile_Joule.json这个模板文件。这就像是把S/4HANA的"员工花名册模板"导入到复制机里。
关键的配置项包括:
URL:填写SAP_COM_0193通信安排的API-URL
User/Password:填写前面创建的通信用户JOULE_INBOUND_IPS的凭证
如果前面你选了SELECTED模式暴露角色,还需要配置一个过滤属性:
s4hana.cloud.roles.filter="cFLGExposure eq true"
这相当于告诉复制机:"我只复制那些门牌上写着'允许AI进入'的员工。"
源系统配置好了,接下来配置目标系统,导入TargetFile_Joule.json模板。
这里的配置项全部来自Work Zone的Service Key:
cflp.providerId:Work Zone Channel Manager里的Joule Provider ID
OAuth2TokenServiceURL:Service Key里uaa.url + /oauth/token
URL:Service Key里的portal-service端点
User:Service Key里uaa.clientid
Password:Service Key里uaa.clientsecret
踩坑提醒:这一步最容易搞混的就是Service Key里各个字段的对应关系。uaa.url、uaa.clientid、uaa.clientsecret、portal-service……名字长得差不多,但用途完全不一样。个人建议是:复制粘贴的时候,眼睛睁大点,手别抖。
配置完了,该按"开始复制"按钮了。在源系统里运行Read Job,IPS就会从S/4HANA读取用户信息,然后写入Work Zone。
重要的事情说三遍:跑完Read Job之后,一定要去检查Provisioning Logs!一定要去检查Provisioning Logs!一定要去检查Provisioning Logs!
你得确认日志里显示"Success",而不是什么奇怪的Error。有的时候,API能通、用户密码也没输错,但就是同步失败了——日志里会告诉你具体原因。是域名解析问题,还是某个用户属性不合规?不看日志,永远不知道。
同步成功之后,去Work Zone Channel Manager里看看,用户和组应该已经出现在里面了。
这是一个特别容易被遗漏的步骤,Booster有时候也会漏掉。
在IAS里:需要把集成产品的域名加入信任域(Trusted Domains)。要操作这一步,你需要有"Manage Tenant Configuration"角色。
在SAP BTP里:同样需要在子账户层面添加Trusted Domain配置。
两侧都不配,会出现跨域请求被拦截、Joule界面无法正确加载的问题——症状往往是钻石图标出来了,但点开之后对话框空白或报错。
所有配置都做完了,现在来验收。
登录你的S/4HANA Cloud Fiori Launchpad,仔细看右上角——
如果一切顺利,你会看到一颗钻石图标。
对,就是Joule的Logo,一颗bling bling的小钻石。点击它,输入一句自然语言,比如"帮我查一下本月销售订单金额",然后看看Joule能不能给你返回正确的结果。
如果钻石亮了,恭喜你——Joule入职成功,可以正式上岗了。
如果没亮……别慌,回过头去检查:
SAP_COM_0882是不是确认Active了?
SAP_COM_0647的角色暴露是不是漏了?
CSP里的URL是不是填对了?
IPS同步是不是真的成功了?
IAS和BTP两侧的Trusted Domains有没有配?
回顾一下,Joule在S/4HANA Cloud的配置主要就是四件事:
1. 办通行证:通信安排搞起来(0882查一下,0647手动建,0193给IPS用)
2. 开权限:角色暴露,让Joule能看到该看的应用
3. 挂门牌:CSP加上Joule的URL
4. 复制门禁卡:IPS同步用户和角色到Work Zone
说实话,单独看每一步都不复杂。但串联起来,涉及的系统多——S/4HANA、IPS、Work Zone、BTP;涉及的配置项也多——通信用户、角色暴露、Service Key映射。
最容易踩的几个坑,总结一下:
SAP_COM_0882:先查Booster有没有建,没建再手动补
SAP_COM_0647的Exposure Role Selection:选ALL还是SELECTED,后面的工作量天差地别
Trusted Domains:IAS和BTP两侧都要配,漏一个就坏事
Service Key字段对应:uaa.url、clientid、clientsecret别搞混
Read Job之后的Provisioning Logs:一定要看
cloud.sap域名ondemand.com域名:有时候同一个服务,两个域名都能访问,但API端点只认其中一个
踩过这些坑之后,你会发现Joule的配置其实没有传说中那么玄学。无非就是——给AI服务员办一张通行证、发一把门禁卡、再挂上个门牌,仅此而已。
剩下的,就看Joule能不能帮你把活儿干漂亮了。
*本文仅为个人观察与思考,不代表SAP官方立场。如有疏漏,欢迎指正。
*感谢社区里写下自己配置过程的大拿们的Blog文章,让我可以按图索骥。
*关于写回忆录这个事情,得从长计议,但想想我们这一代人,正在经历着什么,AI 是一把双刃剑,但无论如何,都感恩这个时代,让我“认袓归宗”!