Handlebars 是 Celigo 平台的模板语言,用于在运行时把动态值嵌入资源配置。任何在运行时求值的字符串字段都可包含 Handlebars 表达式,主要用于导出、导入、映射、输出过滤器与 API。
主要用途:映射 extracts 中拼接、转换或条件选值;HTTP 请求模板的 relativeURI、body、headers、postBody;RDBMS 的 SQL 查询;导出输出过滤器;FTP/S3 动态文件名;增量同步变量 {{{lastExportDateTime}}}。
核心规则:优先使用三花括号 {{{ }}} 输出原始值,避免 HTML 编码破坏 SQL、JSON、URI;双花括号 {{ }} 会做上下文相关格式化,在 RDBMS 中给值加单引号,在 URL 中做编码。AFE 2.0 所有上下文都用 record. 前缀访问当前记录字段,不用裸字段名或 data.field;唯一例外是 Mapper 1.0(Salesforce/NetSuite)使用裸字段名。嵌套字段用 {{{record.properties.email}}},特殊字符字段用 record.[Field With Spaces]。
可访问 @root 下的 record、job、settings、connection。一对一多分组时数据形状为 batch_of_records,需用 {{#each batch_of_records}} 遍历。
支持 79 个自定义辅助函数,覆盖数学、字符串、数组、日期、编码、正则、认证加密、类型逻辑与格式化;支持块辅助 #each、#if、#compare、#with 等;日期使用 moment.js 格式标记并支持时区;子表达式用 () 嵌套。
用法上,可先测试导出或导入查看真实记录形状,再用 celigo exports invoke <exportId> 或 celigo imports invoke <importId> 验证表达式渲染。注意 dateAdd 以毫秒为单位;compare 为字符串比较;#each 内 this 为当前项,需用 ../ 或 @root 回到外层;字段缺失会静默输出空字符串。
限制与注意事项:未提供具体收费、平台版本与完整辅助函数清单以外的细节;使用前应以真实数据测试。