Salesforce B2C Commerce预定作业

Salesforce B2C Commerce预定作业 – 创建自定义作业步骤

学习目标

完成本单元后,您将能够:

  • 列出创建自定义作业所需采取的步骤。
  • 描述面向任务的脚本模块和面向块的脚本模块之间的区别。
  • 解释一下steptypes.json文件是什么。

介绍

Cloud Kicks的管理员Linda Rosenberg正在创建工作,并且找不到能完全满足她要求的系统步骤。她希望将数据直接从外部产品信息(PIM)系统导入生产实例。她需要自定义代码来执行此操作,因为她想导入目录数据,对其进行处理,然后将其保存在Salesforce B2C Commerce数据库中。这不是一个简单的导入。为了创建此自定义作业,她要求Cloud Kicks开发人员Vijay Lahiri执行这些步骤。

  1. 创建墨盒。盒式磁带是一种用于打包和部署B2C Commerce店面程序代码和数据的机制。
  2. 编写面向任务或面向块的脚本以运行流程步骤,例如读取产品记录,对其进行处理,然后将其写入数据库。
  3. 创建一个steptypes.json文件来描述自定义步骤,然后将该文件放在盒带的根目录中。
  4. 上载墨盒,并将其包括在墨盒路径中。

维杰很乐意提供帮助。

Vijay Lahiri,开发人员

完成后,琳达:

  1. 将代码复制到生产中,并激活包括新盒带的代码版本。
  2. 使用业务管理器中的自定义步骤创建作业。

面向任务的脚本模块

这将需要一些技术知识,但是Linda需要了解以下以开发人员为中心的概念和流程,以便她可以与Vijay合作,监视工作成功并计划未来需求。

面向任务的CommonJS脚本模块公开了一个功能,该功能称为作业步骤的主要功能。当Linda使用Business Manager创建作业时,她设置参数,这些参数可用作模块功能和dw.job.JobStepExecution对象的可编写脚本的对象。dw.job.JobStepExecution对象允许以只读方式访问有关当前步骤执行和作业执行的信息。

要控制退出状态,该函数可以返回dw.system.Status API对象。如果脚本以未处理的异常结束,则默认情况下,退出状态代码为ERROR,错误状态标志为true。如果没有返回状态对象并且没有发生异常,则默认情况下状态码为OK。

有关通过FTP连接然后下载数据的面向任务的脚本模块的示例,请参见 信息中心。Vijay使用此示例创建脚本模块。

面向块的脚本模块

面向块的CommonJS脚本模块读取并处理指定大小的块中的项目。如果列表中包含的项目超过了B2C Commerce可以处理的更多块,则它将启动一个新的块。面向块的脚本可以包括任何系列的处理步骤,而不仅仅是数据库事务。

使用面向块的脚本的作业步骤可进行细粒度的进度监控,因为B2C Commerce每次完成块时都会更新写入的元素数。

Vijay和Linda看了一个块处理示例。

假设您将八个订单的列表导出到一个文件中,并且一个块的大小为四个订单。脚本按此顺序处理块。

  1. 读取订单1,流程订单1,读取订单2,流程订单2,读取订单3,流程订单3,读取订单4,流程订单4
  2. 写入顺序1,写入顺序2,写入顺序3,写入顺序4
  3. 读取Order5,流程Order5,读取Order6,流程Order6,读取Order7,流程Order7,读取Order8,流程Order8
  4. 写入顺序5,写入顺序6,写入顺序7,写入顺序8

该示例以4个订单的块显示读取,处理和写入

块脚本功能

Linda在示例中注意到了三个功能。面向块的脚本模块公开了用于读取,处理和写入的功能。

  • 读取功能: 返回一项或什么都不返回。
  • 流程功能: 让您转换项目并将业务逻辑应用于它们。
  • 写功能: 接收项目列表。

您还可以在面向块的脚本模块中使用这些可选功能。

  • total-count-function: 返回在块处理开始之前可用的项目总数。
  • before-step-function: 在块步骤开始之前执行。
  • before-chunk-function: 在块开始之前执行。
  • after-chunk-function: 在块完成后执行。
  • after-step-function: 在块步骤成功完成后执行。

有关面向块的脚本模块的示例,请参见 信息中心

步骤类型文件

Vijay创建自定义步骤时,他必须创建一个steptypes.json文件来描述该步骤的元数据。该文件指定实现该步骤的脚本模块,该步骤所需的参数以及该步骤返回的退出状态。steptypes.json文件需要非常特定的语法。例如,一部分steptypes.json文件使用以下名称/值对:

"@name":"MyParameter1",
"@type":"boolean",
"@required":"true",
"description":"A required boolean parameter."

有关语法的详细信息和steptypes.json文件的示例,请参见 信息中心

对无效的steptypes.json文件进行故障排除

B2C Commerce解析并加载steptypes.json文件:

  • 服务器启动时。
  • 更改活动代码版本时。
  • 在沙盒上,每次运行步骤。

如果steptypes.json文件由于缺少属性或其他问题而包含错误,则B2C Commerce会将错误记录在错误文件中,并且不会注册自定义步骤。然后,B2C Commerce将从其他墨盒的steptypes.json文件加载步骤。

无效的steptypes.json文件导致这样的消息出现在业务管理器中:

Invalid step [Step1]! Type with id [custom.MyCustomStep1] is unknown!

注意

如果Linda导入了无效作业,则她会在导入/导出日志中得到警告,并在Business Manager中得到错误消息。如果Vijay更改steptypes.json从而创建了一个无效的作业,它将不再执行,除了作业日志中的条目外,什么也不会发生。

使用steptypes.xml

Vijay可以使用XML定义而不是JSON来定义自定义步骤。他必须调用文件steptypes.xml,并将其放在根文件夹中的自定义盒式磁带中。只要更改了活动代码版本,B2C Commerce就会解析并重新加载它。只能有一个steptypes.json或steptypes.xml文件。

下一步

在本模块中,Linda学习了如何在Cloud Kicks开发人员Vijay的帮助下创建自定义作业步骤。接下来,她学习如何创建和配置作业。

你可能也会喜欢...

发表评论