能否编写松耦合Schema的DataWeave脚本创建Salesforce记录?
问题解答
你的需求完全可以在DataWeave中实现,而且这种松耦合的动态映射正是DataWeave擅长的场景之一。
因为CSV文件解析后,每条record本身就是键值对结构(键对应CSV列名也就是Salesforce字段名,值对应列内的数据),不需要逐个字段硬编码映射,直接用DataWeave的原生语法就能实现动态匹配。
对应的DataWeave脚本可以简化成这样:
%dw 2.0 output application/java --- records map (record) -> record as Object {class: "CustomObject__c"}
如果要更贴合你概念里的“遍历每个字段”逻辑,也可以写成:
%dw 2.0 output application/java --- records map (record) -> { (record pluck ((value, key) -> (key): value)) } as Object {class: "CustomObject__c"}
这两种写法都能自动匹配所有字段——不管后续CSV新增多少列(只要列名和Salesforce字段名一致),脚本都不需要修改,完全实现松耦合。
核心原理是:
pluck函数会遍历对象的所有键值对,将其转换为键值对数组后,用()展开成对象属性;as Object {class: "CustomObject__c"}用来指定输出的Java类型,对应Salesforce的自定义对象类,确保能正确对接Salesforce连接器。
内容的提问来源于stack exchange,提问作者denis krizanovic
相关产品推荐
相关产品推荐

