用途:为 Salesforce B2C Commerce 作业流程开发自定义作业步骤(Job Step),用于批量处理、数据导入导出、系统间数据同步、定时清理与维护任务。执行已有作业应改用 b2c-cli:b2c-job 技能。
主要能力与执行模型:支持任务型(Task-oriented)步骤,适合 FTP 传输、文件生成等单一操作,进度跟踪有限;以及分块型(Chunk-oriented)步骤,适合产品、订单、客户等可计数批量数据,进度跟踪精细。分块步骤需实现 read、process、write,可选 beforeStep、afterStep、getTotalCount、beforeChunk、afterChunk,且不能自定义退出状态,只能以 OK 或 ERROR 结束。任务型通过 exports.execute 返回 dw.system.Status,自定义状态码仅对 OK 生效。
文件结构:脚本放在我的cartridge/cartridge/scripts/steps/ 下;steptypes.json 必须置于 cartridge 根目录,每个 cartridge 仅一个。可声明参数类型 string、boolean、long、double、datetime-string、date-string、time-string,并配置 trim、required、pattern、长度与取值等校验。注意 @supports-site-context 与 @supports-organization-context 必须一真一假。
从步骤类型到可运行作业:steptypes.json 只声明类型,还需 jobs.xml 引用,用 b2c job import ./my-job-archive 导入(jobs.xml 位于归档根)。jobs.xml 中 <triggers> 为必需,按需运行用 <run-once enabled="false">,定时用 <run-recurring>;step 的 type 必须匹配 steptypes.json 的 @type-id;job 子元素顺序为 description → parameters → flow/split → rules → triggers。导入后可用 b2c job run MyNightlyExport --wait 运行。
标准(系统)作业步骤:无需在 steptypes.json 声明,可在 Business Manager 或 jobs.xml 中引用,如 ImportCatalog、ExportOrders、SearchReindex 等,参数可用 b2c docs read job-steps 等命令查询,不要猜测类型 ID 与参数。标准导入步骤读取 IMPEX/src/ 下文件,自定义步骤可用 dw.io.File 配合 File.IMPEX 写入该位置,实现步骤间文件交接,避免上传下载往返。
限制:分块步骤无自定义退出状态;自定义状态码不能含逗号、通配符、首尾空格,且不超 100 字符;步骤所在 cartridge 需先部署并加入 cartridge path。其余具体参数细节资料未完整提供。