Salesforce B2C Commerce预定作业 – 创建和配置作业

学习目标

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

  • 列出可以使用“作业”模块执行的三个任务。
  • 创建工作。
  • 将资源分配给作业。
  • 将作业步骤添加到一个或多个流程。
  • 创建一个全局参数。

介绍

既然Linda能够理解工作并了解系统和自定义工作步骤,那么现在该她创建和配置工作了。她需要访问业务经理工作模块才能执行此操作。通过“作业”模块,她可以创建和安排作业,为作业失败设置电子邮件通知,以及使用作业资源来防止冲突。

要访问业务管理器,您必须具有B2C Commerce实施。在此模块中,我们假设您是B2C Commerce管理员,具有执行这些任务的适当权限。如果您不是B2C Commerce管理员,那就可以了。继续阅读以了解您的管理员如何在登台实例中执行这些步骤。不要尝试在您的Trailhead游乐场中遵循我们的步骤。Trailhead Playground中不提供B2C Commerce。如果您拥有B2C Commerce的暂存实例,则可以在实例中尝试这些步骤。如果没有暂存实例,请询问您的经理是否有可以使用的实例。

创建工作

这是Linda如何创建作业以导入目录。

  1. 打开业务经理。
  2. 选择管理>操作>作业
  3. 单击新建作业(1)。业务经理职位页面
  4. 输入cloudkicks-catalog-data作为ID(1),输入Cloud Kicks的Catalog数据作为Description(2)。
  5. 忽略优先级功能。目前不支持。
  6. 单击创建(3)。业务经理职位新职位页面
  7. 单击计划和历史记录选项卡。
  8. 选择启用以按计划运行作业。如果未启用该作业,您仍然可以手动触发它。
  9. 选择一次以触​​发作业运行一次,或选择重复间隔
  10. 对于要定期运行的作业,请使用日历图标选择过去的日期。如果您不计划过去的日期,则必须等待为作业指定的日期。您还可以选择一周中的一天,一个时间,一个间隔以及该作业应运行的次数。

锁定资源

Linda可以锁定资源,以防止其他用户或作业在其上操作该资源时对其进行更改。例如,在更新目录时,她不希望其他工作或用户更新或更改目录,类别或产品。这是她锁定的方式。

  1. 单击资源选项卡(1)。
  2. 单击选择(2)。
  3. 选择系统资源(3)。
  4. 将作业更改或更新的对象添加为资源(例如,订单)。
  5. 单击选择(4)。作业资源页面

将作业步骤添加到流

琳达想增加工作步骤。

  1. 在新作业中,单击“作业步骤”选项卡。空流已经建立。第一个流程在“作业步骤”页面上以灰色矩形(1)表示。具有一个工作流程的“作业步骤”选项卡
  2. 单击配置步骤以在流程中创建新步骤。
  3. 在“选择和配置”步骤窗格中,选择要添加到流程中的系统或自定义作业步骤。琳达选择ImportCatalog
  4. 指定作业步骤参数。每个作业步骤都有其自己的唯一参数。将鼠标悬停在参数名称上可获得有关该参数的更多信息。这是示例中ImportCatalog作业步骤的参数。
    1. 输入唯一的步骤ID。
    2. 添加描述。这在工作流和作业上可见。
    3. 指定工作文件夹。这包含您要相对于IMPEX / src导入的目录文件。如果未定义此值,则B2C Commerce使用IMPEX / src作为工作文件夹。
    4. 输入FileNamePattern。这是您要导入的文件的名称。使用正则表达式(regex)指定多个文件。如果未定义此值,则Salesforce B2C Commerce会导入工作文件夹中的所有文件。
    5. 指定NoFilesFoundHandling,如果B2C Commerce没有找到要导入的任何文件会发生什么。
    6. 指定ImportFailedHandling,以防导入失败。
    7. 指定AfterImportFileHandling,以了解导入后文件的后果。
    8. 指定ArchiveFolder。如果将其设置为“存档”或“存档压缩”,则此设置定义B2C Commerce相对于IMPEX目录存储文件的位置。如果未定义,则B2C Commerce会将文件存档在IMPEX /存档中。
    9. 选择导入模式:
      • 删除: 删除对象。
      • 合并: 创建不存在的对象,然后进行更新。
      • 替换: 使用提供的数据重新创建对象。
      • 更新: 更新现有对象。
    10. 如果希望B2C Commerce失败重新启动作业,请选择“始终在重新启动执行”。即使B2C Commerce在重新启动之前完成了作业,此步骤也应始终包含在执行中。
    11. 指定错误处理,以了解系统应如何应对作业错误。
  5. 对于范围,将值保留为默认值Organization。ImportCatalog作业步骤必须在组织范围内运行。

添加新流程

琳达(Linda)创建工作时,已经为她配置了一个流程。她可以将所有工作步骤添加到该流程中。她还可以创建多达四个同级流程,Business Manager在“作业步骤”选项卡上并排表示。她可以将同级流配置为顺序运行或并行运行。

但是,正如您先前所了解的,如果没有足够的资源来执行并行执行,或者步骤类型不支持并行执行,则B2C Commerce会顺序执行同级流程。

下图显示了“作业”选项卡上的流程选项。

  1. 添加同级流程。
  2. 在同级流的顺序处理和并行处理之间切换。
  3. 添加一个新的顺序流。作业步骤选项卡上的流程选项

配置故障排除设置

Linda希望配置故障排除设置以帮助隔离问题。她采取了这些步骤。

  1. 单击“失败处理”选项卡,然后选择失败规则。如果作业步骤在发生错误时使用错误处理并将错误处理操作指定为STOP,则B2C Commerce会调用该规则。
  2. 如果您希望收到有关作业状态的通知,请单击“通知”选项卡。
    1. 选择启用
    2. 选择您要接收通知的事件。
    3. 输入所需的电子邮件信息。
    4. 在“长时间运行时检测”下选择“启用”,然后输入运行时阈值。

手动运行作业

有时Linda收到一项重要/紧急工作的请求,或者在进行故障排除时需要手动运行该工作。这是她的工作。

  1. 打开业务经理。
  2. 选择管理>操作>作业
  3. 选择您要运行的作业。
  4. 单击立即运行
  5. 检查页面底部的“历史记录”部分,以查看作业是否存在错误或问题。
  6. 您也可以选择管理>操作>作业历史记录以监视作业状态。

创建作业参数

Linda可以创建一个作业参数以用于不同的作业步骤。例如,她可以为ReplicationProcessID创建一个参数并将其设置为特定复制过程的ID。她可以在不同的工作步骤中使用该参数。如果她需要使用其他复制过程,则可以更改参数的值,然后B2C Commerce将更新所有包含该参数的步骤。

配置作业参数后,只能将其重用于以与原始参数完全相同的方式定义的步骤参数。

例子:

  • Linda为需要布尔值true / false的step参数创建一个job参数。她不能将其用于需要字符串的step参数。
  • 两个步骤都有一个带有模式约束* .xml的字符串参数FileName。她可以为两个步骤定义一个作业参数。
  • 第一步具有带模式约束.xml的字符串参数FileName,另一步具有带模式约束.txt的字符串参数FileName。她无法定义要在两个步骤中使用的作业参数。

如果要使用相同的job参数设置自定义作业步骤,则step参数在steptypes.json文件中必须具有相同的类型定义。换句话说,必须完全定义参数的所有属性。例如,Linda不能使用相同的job参数来设置以下两个自定义步骤参数,因为MyParameter1的@type属性为“ long”,而MyParameter2的@type属性为“ double”。

{
 "@name":"MyParameter1",
 "@type":"long",
 "@required":"false",
 "description":"An optional long parameter. The default value is 10 when not defined.",
 "default-value":"10"
},
 "@name":"MyParameter2",
 "@type":"double",
 "@required":"true",
 "@trim":"true",
 "description":"A required double parameter were the raw
  value is trimmed, value must be between -10 and +10.",
 "min-value":"-10",
 "Max-value":"10"
}, 

创建作业参数

琳达想创建一个工作参数。这是她的工作。

  1. 创建一个作业步骤或选择一个现有的步骤。
  2. 单击您要为其创建参数的字段。
  3. 单击作业参数
  4. 单击添加作业参数
  5. 输入参数的唯一名称。
  6. 输入参数的值。
  7. 单击保存。
  8. 点击分配
  9. 要在另一个作业步骤中使用参数:
    1. 单击您要使用参数的字段。
    2. 单击作业参数
    3. 选择要使用的参数。
    4. 点击分配

修改作业参数

修改作业参数:

  1. 在“作业步骤”选项卡上选择“作业参数”。
  2. 选择要更改的参数,然后输入新值。
  3. 点击保存

下一步

在本单元中,Linda学习了如何计划,创建和配置作业。接下来,她学习如何从工作失败中恢复。

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的帮助下创建自定义作业步骤。接下来,她学习如何创建和配置作业。

Salesforce B2C Commerce预定作业 – 探索预配置的作业步骤

学习目标

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

  • 列出一些预配置的系统作业步骤。
  • 描述如何配置复制过程以在作业步骤中使用。
  • 解释为什么您可能要使用IncludeStepsFromJob系统步骤。

介绍

琳达很快就知道,没有工作步骤就没有什么工作。作业步骤是作业工作发生的地方。他们让她控制工作的实际执行情况。有两种工作步骤:系统和自定义。当她找不到能满足其要求的系统步骤时,便要求开发人员创建一个自定义步骤。

在本单元中,她专注于系统作业步骤。

系统作业步骤

这些是琳达创建作业时可以使用的即用型系统作业步骤。

系统步骤 目的
CreateSiteMap 创建一个站点地图。
ExecutePipeline(不建议使用) 执行旧版管道。不建议使用此作业步骤。我们建议您使用作业步骤重新创建管道。
ExecutePreconfiguredCodeReplicationProcess 执行代码复制过程。
ExecutePreconfiguredDataReplicationProcesss 执行数据复制过程。
ExecuteScriptModule(不建议使用) 执行脚本模块导出的功能。不建议使用此作业步骤。我们建议您创建一个自定义作业步骤来执行脚本。
出口目录 导出目录数据。
出口订单 导出订单数据。
出口价格手册 导出价格数据。
出口税表 导出税收数据。
导入目录 导入目录数据。
进口价格手册 导入价格数据。
ImportSiteArchive 将站点存档文件导入当前实例。
IncludeStepsFromJob 包括其他工作的步骤。
搜索索引 重建或更新搜索索引。
SiteExport 导出站点数据。
UndoPreconfiguredCodeReplicationProcess 撤消已经完成的预配置代码复制过程。
UndoPreconfiguredDataReplicationProcess 撤消已经完成的预配置数据复制过程。
UpdateStorefrontURLs 更新对象的店面URL,例如类别,产品,文件夹和内容资产。

如果她在工作中使用系统步骤,则无需进行任何编码。但是,她确实必须输入参数。每个作业步骤都有其自己的参数,适用于Salesforce B2C Commerce在该步骤中执行的任务。例如,当她将步骤ImportSiteArchive添加到作业时,她必须为要导入的文件的名称指定一个参数。作业步骤通常同时具有必需参数和可选参数。

现在,她深入研究系统步骤的细节。

执行或撤消代码或数据复制过程

创建作业的常见原因是管理数据或代码复制过程。为此,B2C Commerce提供了这四个系统步骤。

  • ExecutePreconfiguredCodeReplicationProcess
  • ExecutePreconfiguredDataReplicationProcess
  • UndoPreconfiguredCodeReplicationProcess
  • UndoPreconfiguredDataReplicationProcess

要使用这些复制系统步骤,Linda必须首先使用业务管理器来创建代码或数据复制过程。当她为作业步骤配置代码或数据复制过程时,她会像这样设置复制过程参数。

  • 进程ID: 输入一个有意义的名称,因为这是您用来配置作业步骤的值。
  • 类型: 对于数据复制过程,选择传输和发布。对于代码复制过程,选择“代码传输和激活”
  • 激活: 选择作业步骤

注意

仅当先前的复制过程成功后,才能执行撤消复制过程。

包括其他工作的步骤

Linda可以使用IncludeStepsFromJob系统步骤包括其他作业的步骤。在将IncludeStepsFromJob系统步骤添加到作业时,她必须配置JobID参数以指定其他作业的ID。这使得创建标准步骤集变得容易,她可以在任何时候运行这些步骤。

下一步

在本单元中,Linda了解了系统作业步骤。她还深入研究了一些系统步骤类型。接下来,她学习如何创建自定义作业步骤。

Salesforce B2C Commerce预定作业 – 了解B2C商务职位

学习目标

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

  • 列出创建工作的三个原因。
  • 描述使用新作业框架的优势。
  • 解释重要的工作概念:流程,范围,锁和时间表。
  • 说明什么使工作成功。

介绍

Linda Rosenberg是高端运动鞋公司Cloud Kicks的新管理员。Linda最近掌握了许多Salesforce B2C Commerce技能,可帮助她管理Cloud Kicks店面。她本周想学习如何建立将多个任务结合在一起的复杂管理流程。最好的工具是B2C Commerce职位功能,她可以在其中安排以下任务:

  • 自动化进出口
  • 复制数据或代码
  • 建立搜寻索引
  • 执行自定义任务

Linda Rosenberg,管理员

B2C Commerce作业是一组执行长时间运行的操作的步骤,例如下载导入文件或重建搜索索引。Linda创建作业时,可以使用不需要任何编码的即用型系统作业步骤。如果没有可用的系统步骤来执行她想要的操作,则可以要求开发人员编写自定义作业步骤。

这些是使用作业的一些典型原因。

数据 应用
顾客 将客户记录导出到外部系统,如Marketing Cloud。
晋升 将促销数据导出到外部客户服务软件系统,以便致电客户服务代表(CSR)的购物者获得与在线销售相同的促销。
目录 对税收系统执行特殊的目录导出,以便税收软件知道要计算正确税收的产品类型。例如,在美国,马萨诸塞州不以一定价格对服装征税,但对电子产品征税。
目录 对Google Merchant执行特殊的目录导出,以便Google搜索结果显示产品的当前店面价格。
订购 执行自定义订单导出。一些订单管理系统不了解B2C Commerce order.xml要求。提要文件必须是定制的,并必须进行传输。

让我们开始吧。

新工作框架

Linda注意到Business Manager中的某些作业功能被标记为已弃用。

  • 职位(已弃用)
  • 作业记录(不推荐使用)

这些选项适用于较旧的B2C Commerce工作框架,她仍然可以使用该框架来管理旧工作。但是,存在一个新的和改进的工作框架,她想将其用于新工作。这是新工作框架的一些优点。

  • 您可以使用不需要编码的即用型系统步骤。
  • 开发人员可以使用其首选的IDE来创建自定义作业步骤,以编写CommonJS模块。
  • 您可以使用流程来设置作业步骤的并行执行。
  • 您可以使用Open Commerce API(OCAPI)启动和监视作业。
  • 您可以在业务管理器中监视作业的进度。

听起来不错?琳达也这么认为!她想学习如何使用这个新的工作框架。

重要的工作理念

在规划和创造工作之前,琳达需要了解这些关键概念。

  • 工作流
  • 工作范围
  • 作业锁
  • 工作时间表

工作流程

作业流程控制B2C Commerce执行作业步骤的顺序。每个作业必须至少包含一个流程。每个流程必须至少包含一个工作步骤。

Linda可以配置顺序流,一个接一个地执行。在Business Manager用户界面中,顺序流占据页面(1)的宽度,并按所示顺序从上到下执行。

要访问业务管理器,您必须具有B2C Commerce实施。在此模块中,我们假设您是B2C Commerce管理员,具有执行这些任务的适当权限。如果您不是B2C Commerce管理员,那就可以了。阅读以了解您的管理员将如何在沙盒实例中执行这些步骤。不要尝试在您的Trailhead游乐场中遵循我们的步骤。Trailhead Playground中不提供B2C Commerce。如果您具有B2C Commerce的沙盒实例,则可以在实例中尝试这些步骤。如果您没有沙箱实例,请询问您的经理是否有可以使用的实例。

“作业步骤”页面,并按顺序调出流程

Linda还可以配置可并行执行的同级流程。业务管理器彼此相邻显示同级流程(1)。

“作业步骤”页面,其中列出了一组四个同级流程

只要系统资源可用,同级流将同时运行。如果并行执行不可行(例如,当多个并行步骤需要同时访问外部资源时),她可以将兄弟流配置为顺序执行。顺序同级流程从左到右执行。

如果没有足够的可用资源,即使B2C Commerce将其配置为并行运行,也会按顺序执行同级流程。另外,某些作业步骤不支持并行执行,因此即使Linda将包含这些步骤的流程配置为并行同级流程,也始终按顺序执行。例如,B2C Commerce总是顺序执行ExecutePipeline系统步骤,该步骤支持执行遗留管道以避免数据库冲突。

当您配置一个顺序流以使其可以在多个站点上运行时(使用范围设置,Linda接下来将进行探讨),只要有足够的系统资源来容纳并行执行,B2C Commerce就会为不同站点并行执行该流。

使用同级流和顺序流,Linda可以配置具有多个流并重新合并为单个流的作业。这是一个示例:同级并行流下载目录文件,然后依次导入目录文件,接着是另一组同级并行流下载价格文件,然后又是另一个顺序流导入价格文件。这项工作可以通过重新编制索引并复制到生产的顺序流程完成。

下图显示了Linda配置三个流时发生的情况。

完成两个顺序的并行流集,然后另一个顺序的流完成。

工作流程范围

Linda必须将每个流分配给一个范围。范围可以是整个组织,也可以是一个或多个站点。默认情况下,流程为组织执行。某些作业步骤仅在特定范围内有效。例如,索引重建需要站点级范围,并且不能在组织范围内运行。

工作锁

当琳达(Linda)设置工作时,她可以为其分配某些资源。在作业执行期间,B2C Commerce锁定了该资源,而她和其他用户在作业对其执行操作时无法对其进行修改。这样可以保持数据完整性并防止数据冲突。

工作时间表

Linda可以手动运行作业,也可以安排它们在特定时间和间隔自动运行。如果同一作业的先前执行仍在运行,则该作业不会开始,因此对于她来说,重要的是要在计划作业之前了解执行作业需要花费多长时间。她安排作业的时间也很重要,这样多个作业就不要试图同时获取同一对象的锁。

通常,她可以同时执行多达15个工作。

模式

B2C Commerce的工作成功是什么?简而言之,这意味着B2C Commerce可以毫无错误地执行该工作,并且数据可以准确地按预期的位置和方式进行最终处理-例如,完全重新编制索引并可以进行店面搜索。如果作业失败,则B2C Commerce可能只完成了一部分新数据传输,结果是旧数据和新数据的混合。那就是“坏数据”。

什么是工作成功和工作失败?

作业由于其他原因而失败。通常,您将作业用于海量数据或长时间运行的操作,这些操作可能由于网络或电源波动而失败。

注意

注意

B2C Commerce会自动为已禁用站点或正在删除的站点禁用作业;禁用的作业不会出现在作业历史记录中。B2C Commerce不在沙盒实例上执行计划。

下一步

在这个部门中,Linda学习了何时使用工作以及新工作框架的优势。她还学习了一些重要的工作概念,包括流程,锁,范围和时间表。另外,她了解了使工作成功的因素。接下来,她了解工作步骤。

Salesforce B2C商业复制 – 复制疑难解答

学习目标

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

  • 列出复制可能遇到的三种类型的问题。
  • 列出对复制失败进行故障排除时可以采取的三个步骤。
  • 说明复制撤消的工作方式。
  • 列出有助于复制故障排除的日志类型。
  • 描述可以用来对挂起的复制进行故障排除的三种方法。

介绍

自从学习复制以来,Linda Rosenberg一直在为Cloud Kicks运行许多数据和代码复制过程。

她遇到了一些测试她的故障排除技能的问题。由于各种原因,她不得不撤消复制。她有一些失败和复制挂起。她还需要清除缓存的帮助。让我们看看她如何解决这些问题。

发生任何故障的第一步是查看复制状态。

  1. 打开业务经理。
  2. 选择管理>复制>数据(或代码)复制
  3. 查看复制过程及其状态的列表。

让我们逐步了解一下Linda的工作。

复制后问题

当Linda遇到数据复制问题时,她会在登台实例和目标实例上的复制日志中查看错误消息。包含“失败”或“ ORA-”的条目可以提供她的线索。

  1. 如果复制日志没有提供有用的数据,她将检查错误日志。
  2. 如果复制包括多个任务,那么她将通过运行带有和不带有每个任务的测试,尝试隔离导致问题的任务。
  3. 如果多个对象的复制失败,她将尝试复制单个对象以缩小原因。
  4. 如果计划的复制未运行,则她尝试手动运行它。

撤消复制

如果数据或代码无法正确传输,或者不完整或有错误(对于代码而言),则可以撤消操作。

撤消数据复制

Linda可以回滚最新的传输和发布或发布数据复制过程。这是如何做。

  1. 打开业务经理。
  2. 选择管理>复制>数据复制
  3. 选择要撤消的复制。
  4. 点击编辑
  5. 选择无效
  6. 选择手动激活类型。
  7. 单击下一步
  8. 选择撤消复制类型。
  9. 单击下一步,然后查看流程详细信息。
  10. 点击创建
  11. 在列表中找到该过程,然后单击“开始”

撤消代码复制

Linda可以回滚最新的传输和激活或激活代码复制过程。这是如何做。

  1. 打开业务经理。
  2. 选择管理>复制>代码复制
  3. 选择要撤消的复制。
  4. 点击编辑
  5. 选择手动激活类型。
  6. 单击下一步
  7. 选择撤消复制类型。
  8. 单击下一步,然后查看流程详细信息。
  9. 点击创建
  10. 在列表中找到该过程,然后单击“开始”

复制日志

Salesforce B2C Commerce在源系统和目标系统上都记录复制过程日志文件。这些与常规错误日志是分开的。它们存在于:https://instance_address/on/demandware.servlet/webdav/Sites/Logs/中,文件名如staging-blade_name-appserver-yyyymmdd.log

Linda监视登台实例上的状态。如果某个过程失败,则她检查暂存日志。一条日志可能包含几天的事件,因此她会查找复制过程开始时的日志。日志文件的时间戳类似于数据复制任务。无论实例类型如何,所有日志文件名都包含暂存。这是Linda查看日志的方式。

  1. 打开业务经理。
  2. 选择管理>站点开发>开发设置业务管理器日志文件链接
  3. 单击日志文件链接。
  4. 查找登台日志。

这是一个日志条目的示例。

[2007-01-15 21:17:12.848 GMT] ISH-CORE-2250: New replication task "1168895828901"
in domain "Sites-Site" successfully created.

查看日志文件时,请重点关注某些项目。

  • 滚动浏览日志文件,其中包含该过程的步骤,以查找错误。
  • 登台实例的最后一步是移交给目标服务器。登台日志应具有与此相似的一行。[2019-01-15 21:27:09.783 GMT]实时系统中的登台管道已成功调用。
  • 如果缺少成功消息,请查找与此类似的错误。ISH-CORE-2491:将uuid =’dC8KAANna1111EOTN9h9md4’的进程状态从“ StartingStagingProcess”设置为“ ErrorAcquiringEditingLocks”
  • 如果发生此登台错误,请登录控制中心,然后停止并重新启动实例。然后再次运行相同的复制。控制中心是B2C Commerce工具,可用于监视B2C Commerce实例的状态并采取适当的措施。如果登台实例日志没有错误,请查看目标实例上的登台日志。https:// [target_instance_name] /on/demandware.servlet/webdav/Sites/Logs
  • 目标实例暂存日志以这样的消息开头。2019-01-15 20:29:30.321 GMT]使用uuid = bcFvkiaalTMxM444667bVYFqBX复制分段过程[2007-01-15 20:29:32.347 GMT]启动StagingResources-Acquire @ Sites-Site
  • 根据您复制的数据,日志中包含一个用于数据库副本开始的条目。检查错误。
  • 复制后,请检查整个日志中是否有错误。如果该过程成功完成,则日志末尾将显示以下消息。[2019-01-15 21:31:17.434 GMT] ReplicationPublication过程已完成,状态为“ StagingProcessCompleted”。

修复挂起的复制

一些数据库事务,特别是涉及目录数据的数据库事务,可能需要一段时间才能完成。当数据复制在运行状态中的停留时间超出预期时,Linda会检查其是否挂起。这意味着复制不再运行,或者复制受限或没有进展。琳达必须找出它是否挂着以及为什么挂起,这样她才能成功运行它。

检查登台

她检查登台实例上的最新复制日志。这是如何做。

  1. 确认其中包含“成功调用实时系统中的登台管道”行。如果没有,那就有问题了。
  2. 检查它是否包含状态设置为ErrorAcquiringEditingLocks的条目。如果是这样,则可能尚未释放来自先前复制过程的资源锁,这可能会挂起复制。

检查目标

她检查目标实例上的最新复制日志并滚动到末尾。

  1. 刷新视图几次以查看是否要添加新条目。如果过一会儿没有新条目出现,则复制可能会挂起。
  2. 检查它是否包含状态设置为的条目ErrorAcquiringLivelocs。如果是这样,则可能尚未释放来自先前复制过程的资源锁,这可能会挂起复制。
  3. 如果最后一个日志条目是数据库操作,例如INSERT或ALTER INDEX,请检查以前的日志以查看该操作花费了多长时间以及下一个条目是什么。
  4. 如果最后一个日志条目以Rsync开头,则延迟可能是由于大量更改的静态内容文件引起的。即使文件的内容相同,也将包含已移动到其他文件夹的文件。如果Rsync卡住,请联系客户支持以检查其状态。
  5. 如果日志显示状态ErrorLiveStagingProcessKilled,则说明复制可能由于并发部署或实例重新启动而挂起。

同时检查

有时,她同时处理两个实例。

  1. 如果任一日志包含类似于资源繁忙的行,并且指定了NOWAIT进行获取,请与客户支持一起打开故障单并提供您尝试的故障排除步骤。
  2. 如果复制过程在目标实例上显示“已完成”,但在暂存实例上其状态仍在等待或进行中,则复制完成后暂存实例可能已关闭。重新启动登台实例,然后再次检查状态。
  3. 如果确定复制已挂起,请使用控制中心重新启动登台实例。通过验证暂挂实例上的状态为“失败”,确保挂起的复制已停止。停止后,重新运行复制。
  4. 如果复制再次挂起,请尝试重新启动目标实例和源实例,然后重新运行复制。重新启动目标实例将中断所有正在运行的作业,为所有店面请求返回错误,并清除所有缓存。仅在不得已时才重新启动生产实例。
  5. 如果复制仍然挂起,请打开客户支持票证并提供您尝试的故障排除步骤。

对缓存清除进行故障排除

当Linda在页面缓存方面遇到问题时,她会考虑这些技巧。

  • 关闭浏览器并清除本地缓存,以确保问题不是系统本地的,然后再在Business Manager中手动清除缓存。
  • 若要手动清除嵌入式CDN(生产和开发实例)上的缓存,请对“站点的整个页面缓存”单击“无效”。您无需清除静态缓存。
  • 如果看不到预期的变化,请寻找可能指示更具体问题的模式。例如,图像不刷新吗?如果是这样,则图像提供程序可能会出现问题。如果内容资产引起问题,请确保已部署它。

总结一下

在本单元中,Linda学习了如何解决搬迁问题。她学习了如何撤消复制,查看复制日志,处理挂起的复制以及对缓存清除进行故障排除。

本模块向您展示了如何运行B2C Commerce复制过程并对其进行故障排除。现在参加最后的测验并获得您的徽章!

Salesforce B2C商业复制 – 配置代码复制

学习目标

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

  • 列出四种代码复制过程类型。
  • 描述如何将新的代码版本从沙箱传输到开发实例。
  • 列出代码复制激活方法。
  • 列出手动代码复制过程中的三个步骤。

介绍

Cloud Kicks的新管理员Linda Rosenberg了解到该网站的开发人员已准备好推出一些很棒的店面功能。开发人员已经将代码从沙盒实例上载到暂存中,并且质量检查测试进展顺利。现在轮到琳达了。通过代码复制,她可以将新的代码版本从登台实例转移到开发实例,然后再转移到生产实例,然后激活它。

Linda Rosenberg,管理员

代码复制与数据复制一样,具有源和目标。但是,数据复制处理的是数据对象之间的依赖性,这会使事情变得复杂。代码复制非常简单。复制代码版本时,Salesforce B2C Commerce在目标实例上为该版本分配与暂存源版本相同的名称。如果名称已经存在,则会在名称后附加一个时间戳和索引号。

例如,Cloud Kicks的新代码版本的名称为version-19b。目标实例上已经存在具有该名称的版本,因此B2C Commerce将该新版本命名为version-19b_01202019-1

工艺类型

像数据复制一样,代码复制是一个两步过程。

  1. B2C Commerce将代码版本从登台转移到目标实例。
  2. 它在目标实例上激活代码。

Linda可以将两个步骤作为一个复制过程运行,也可以分别运行。单独运行它们可以帮助她确定故障的任何来源(如果发生)。所有代码复制过程都在登台实例上运行,甚至代码激活和撤消也仅影响目标实例。

有四种类型的代码复制过程。

  • 代码传输:  B2C Commerce会将源实例上的选定代码版本传输到目标实例,但不会激活它。
  • 代码传输和激活:  B2C Commerce将源实例上的选定代码版本传输到目标实例,然后将其激活。
  • 代码激活: 只有成功完成代码传输过程后,此过程才可用。激活使传输的代码版本成为目标实例上的活动版本。如果新的代码版本已经处于活动状态,则什么也不会发生。如果目标实例上不存在该复制,复制将失败。
  • 撤消: 仅在成功进行代码传输和激活或代码激活复制过程之后,此过程才可用。它将目标实例上的活动代码版本还原为上一次代码复制过程之前的活动版本。如果要还原的版本不再处于活动状态,则不会发生任何事情。如果目标实例上不再存在它,或者以前的活动代码版本不再存在,则复制过程将失败。

激活方式

Linda可以指定她希望如何运行复制过程。她的选择是:

  • 手动: 该过程在她触发时运行。
  • 自动: 她安排流程运行的日期和时间。
  • 重复执行: 她安排流程运行时的重复执行时间:
  • 作业步骤: 该流程可作为作业的一部分运行。我们在Salesforce B2C Commerce Scheduled Jobs模块中谈论工作 。

创建过程

Linda希望尽快发布新代码,而且要花几个小时—这是执行此类任务的好时机。这是她创建可以手动触发的代码复制过程的方式。

  1. 打开业务经理。
  2. 选择管理>复制>代码复制业务经理代码复制
  3. 点击新建。(您必须在暂存实例上才能看到此按钮。)
  4. B2C Commerce创建一个流程ID,或者您可以输入所需的文本。
  5. 选择开发目标实例。
  6. 输入可选说明。这可以帮助您以后找到它。
  7. 对于激活类型,选择手动
  8. 选择一个通知电子邮件触发器,然后输入多个目标电子邮件地址,以逗号分隔。该电子邮件包含流程的开始和结束时间,目标系统,复制类型和复制任务。如果该过程失败,则电子邮件通知中将包含错误代码。周期性系列中的每个进程都会发送自己的通知。
  9. 指定这些事件发生的情况。
    • 流程结束: 无论流程成功还是失败,B2C Commerce都会向该地址发送电子邮件。如果挂起,则不会发送电子邮件。
    • 流程失败:如果流程失败,  B2C Commerce会向该地址发送一封电子邮件。如果该过程成功或挂起,则不会发送电子邮件。
  10. 单击下一步。
  11. 对于复制类型,选择代码传输和激活
  12. 单击下一步,然后查看流程详细信息。一旦创建了流程,就无法对其进行更改。
  13. 单击开始以创建过程并立即运行。

Linda和开发人员在开发实例上测试新代码。当看起来不错时,她会将相同的代码版本从登台实例复制到生产环境。现在,Cloud Kick的购物者可以使用令人敬畏的新功能!

下一步

在本单元中,Linda知道代码复制非常简单,并且只需要一个唯一的版本号。在开发人员将代码上传到登台实例之后,她将其从登台复制到开发再生产。她还了解了代码复制过程类型和激活方法。她进行了手动代码复制,将许多新功能推向了店面。

Salesforce B2C商业复制 – 配置代码复制

学习目标

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

  • 列出四种代码复制过程类型。
  • 描述如何将新的代码版本从沙箱传输到开发实例。
  • 列出代码复制激活方法。
  • 列出手动代码复制过程中的三个步骤。

介绍

Cloud Kicks的新管理员Linda Rosenberg了解到该网站的开发人员已准备好推出一些很棒的店面功能。开发人员已经将代码从沙盒实例上载到暂存中,并且质量检查测试进展顺利。现在轮到琳达了。通过代码复制,她可以将新的代码版本从登台实例转移到开发实例,然后再转移到生产实例,然后激活它。

Linda Rosenberg,管理员

代码复制与数据复制一样,具有源和目标。但是,数据复制处理的是数据对象之间的依赖性,这会使事情变得复杂。代码复制非常简单。复制代码版本时,Salesforce B2C Commerce在目标实例上为该版本分配与暂存源版本相同的名称。如果名称已经存在,则会在名称后附加一个时间戳和索引号。

例如,Cloud Kicks的新代码版本的名称为version-19b。目标实例上已经存在具有该名称的版本,因此B2C Commerce将该新版本命名为version-19b_01202019-1

工艺类型

像数据复制一样,代码复制是一个两步过程。

  1. B2C Commerce将代码版本从登台转移到目标实例。
  2. 它在目标实例上激活代码。

Linda可以将两个步骤作为一个复制过程运行,也可以分别运行。单独运行它们可以帮助她确定故障的任何来源(如果发生)。所有代码复制过程都在登台实例上运行,甚至代码激活和撤消也仅影响目标实例。

有四种类型的代码复制过程。

  • 代码传输:  B2C Commerce会将源实例上的选定代码版本传输到目标实例,但不会激活它。
  • 代码传输和激活:  B2C Commerce将源实例上的选定代码版本传输到目标实例,然后将其激活。
  • 代码激活: 只有成功完成代码传输过程后,此过程才可用。激活使传输的代码版本成为目标实例上的活动版本。如果新的代码版本已经处于活动状态,则什么也不会发生。如果目标实例上不存在该复制,复制将失败。
  • 撤消: 仅在成功进行代码传输和激活或代码激活复制过程之后,此过程才可用。它将目标实例上的活动代码版本还原为上一次代码复制过程之前的活动版本。如果要还原的版本不再处于活动状态,则不会发生任何事情。如果目标实例上不再存在它,或者以前的活动代码版本不再存在,则复制过程将失败。

激活方式

Linda可以指定她希望如何运行复制过程。她的选择是:

  • 手动: 该过程在她触发时运行。
  • 自动: 她安排流程运行的日期和时间。
  • 重复执行: 她安排流程运行时的重复执行时间:
  • 作业步骤: 该流程可作为作业的一部分运行。我们在Salesforce B2C Commerce Scheduled Jobs模块中谈论工作 。

创建过程

Linda希望尽快发布新代码,而且要花几个小时—这是执行此类任务的好时机。这是她创建可以手动触发的代码复制过程的方式。

  1. 打开业务经理。
  2. 选择管理>复制>代码复制业务经理代码复制
  3. 点击新建。(您必须在暂存实例上才能看到此按钮。)
  4. B2C Commerce创建一个流程ID,或者您可以输入所需的文本。
  5. 选择开发目标实例。
  6. 输入可选说明。这可以帮助您以后找到它。
  7. 对于激活类型,选择手动
  8. 选择一个通知电子邮件触发器,然后输入多个目标电子邮件地址,以逗号分隔。该电子邮件包含流程的开始和结束时间,目标系统,复制类型和复制任务。如果该过程失败,则电子邮件通知中将包含错误代码。周期性系列中的每个进程都会发送自己的通知。
  9. 指定这些事件发生的情况。
    • 流程结束: 无论流程成功还是失败,B2C Commerce都会向该地址发送电子邮件。如果挂起,则不会发送电子邮件。
    • 流程失败:如果流程失败,  B2C Commerce会向该地址发送一封电子邮件。如果该过程成功或挂起,则不会发送电子邮件。
  10. 单击下一步。
  11. 对于复制类型,选择代码传输和激活
  12. 单击下一步,然后查看流程详细信息。一旦创建了流程,就无法对其进行更改。
  13. 单击开始以创建过程并立即运行。

Linda和开发人员在开发实例上测试新代码。当看起来不错时,她会将相同的代码版本从登台实例复制到生产环境。现在,Cloud Kick的购物者可以使用令人敬畏的新功能!

下一步

在本单元中,Linda知道代码复制非常简单,并且只需要一个唯一的版本号。在开发人员将代码上传到登台实例之后,她将其从登台复制到开发再生产。她还了解了代码复制过程类型和激活方法。她进行了手动代码复制,将许多新功能推向了店面。

Salesforce B2C商业复制 – 配置数据复制

学习目标

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

  • 描述复制处理的两种数据类型。
  • 列出部分数据复制很有用的三种情况。
  • 描述数据复制过程类型。
  • 描述数据复制激活方法。
  • 列出手动数据复制过程中的三个步骤。

介绍

Cloud Kicks的新管理员Linda Rosenberg希望开始进行数据复制。这是她将数据,元数据和文件从Salesforce B2C Commerce登台实例复制到开发或生产实例的时候。

她知道在Business Manager中,她可以在每个实例中配置一个或多个站点。特定实例上的多个站点被视为组织。例如,当她配置设置时,可以将它们配置为特定于站点的(一个站点)或跨所有站点(组织)配置。

数据复制在这两个级别上也起作用。

  • 全局复制:我包含适用于整个组织的配置信息和数据
  • 站点复制: 包括属于一个或多个指定站点的数据,例如产品和目录数据,基于XML的内容组件和图像文件

Cloud Kicks最近启动了一个新的店面,并为其实施引入了新的主实例组(PIG)。Cloud Kicks对每个目标实例运行完整的全局复制,然后再对其执行任何站点复制。Cloud Kicks店面已经启用,因此Linda专注于新数据。

任务

Linda可以通过在粒度级别上选择特定的复制任务来配置数据。她还可以在单​​个过程中组合全局和站点级别的数据。她越了解数据及其应用程序,就越能将数据移到需要的位置。

在业务管理器中,她可以查看潜在的复制任务,以了解层次结构和数据粒度的重要性。例如,她可以复制一个目录,但不能复制特定产品。但是,对于活动数据,她可以以较低的粒度进行复制,例如特定店面的促销和优惠券。这称为部分数据复制。

在这些情况下,部分数据复制可能会很有用。

  • 在整个店面中推出新的促销定义,文本,图形和优惠券
  • 使用季节性消息更新店面主页设计
  • 更新产品价格变动

当她复制数据时,她选择的数据将替换目标实例上的相应数据。例如,PIG实例(阶段,开发和生产)包括目录A,B和C。

目录A,B和C在所有情况下都可用:暂存,开发和生产。

在登台实例上,她更新目录B,删除目录C,然后添加目录D。当她从登台复制目录到开发时,在开发实例上,目录A不变,目录B被更新,目录C被删除,目录D已添加。

从暂存到开发的复制后,目录A不变,目录B被更新,目录C被删除,目录D被添加。

注意

请记住,您必须在开发实例上测试所有店面更改,然后再将其推送到生产实例。

B2C Commerce仅覆盖您选择的要在目标实例上进行复制的数据。其他数据不受影响,例如在上一个示例中,目录A保持不变。

包含数据

Linda复制数据时,她会仔细考虑受影响的文件是否包含全局数据和站点数据。数据可以包括内容资产,产品和价目表或设置,例如首选项和权限。以下是她可以在复制中包括的全局和特定于站点的店面数据和设置。

店面 设定值
全球(组织)
  • 目录内容
  • 客户清单及其设置
  • 地理位置数据
  • 价格书
  • 共享库内容
  • 全局静态内容
  • 系统对象类型扩展和自定义对象类型
  • 某些组织范围的自定义对象
  • CSRF允许列表管道和启动节点
  • 客户服务中心(CSC)设置
  • 全球开放商务API(OCAPI)设置
  • 系统和自定义首选项
  • 网站定义
  • 全局WebDAV客户端权限
  • OAuth提供商
现场
  • A / B测试和经验
  • 活动数据提要
  • 活动和促销
  • 优惠券
  • 客户群
  • 内容槽
  • 私人图书馆的内容
  • 动态内容
  • 自定义对象
  • 搜索索引和字典
  • SEO和静态映射
  • 排序规则和选项
  • 源代码
  • 专卖店
  • 税收
  • 缓存设置
  • OCAPI设置
  • 特定于站点的系统和自定义首选项
  • 支付处理器和方法
  • 运送方式

Linda在Business Manager中选择一个或多个与她要复制的数据类型相对应的任务。请参阅 信息中心以获取任务的完整列表。

不包含数据

您不能复制以下数据类型。而是必须将这些数据创建或导入到开发和生产实例中。

  • 活动数据
  • 批处理
  • 目录和内容导入提要
  • 自定义错误页面
  • 客户和客户组分配
  • 已上传但未导入的文件
  • 礼券
  • 库存数据
  • 工作时间表和历史
  • 组织概况
  • 支付信息
  • 订单信息(例如,税金和运费)
  • 网站地图
  • 兑换源代码
  • 用户,角色和权限

动态建议是您无法复制的另一种数据类型。这是因为Commerce Cloud Einstein在生产实例上动态生成了这些。

工艺类型

数据复制是两步替换过程,其中数据是:

  1. 从登台转移到目标实例
  2. 在目标实例上发布

Linda可以将两个步骤作为一个复制过程运行,也可以分别运行。如果单独运行它们,则可以帮助您确定发生故障的任何原因。所有复制过程都在登台实例上运行,甚至可以发布和撤消,这仅影响目标实例。

这些是数据复制过程的类型。

  • 传输:  B2C Commerce将源实例上的数据传输到目标实例,但不替换它。您还必须运行发布过程以更新目标。
  • 传输和发布:  B2C Commerce将源实例上的数据传输到目标实例,并立即替换现有数据。
  • 发布: 仅在成功完成传输过程后,此过程才可用。它将目标实例上的现有数据替换为先前传输的数据。复制任务必须与传输过程任务匹配。您无法传输数据,然后仅发布其中一些数据。如果不匹配,则复制将失败。
  • 撤消: 仅在成功进行传输和发布或发布过程之后,此过程才可用。它将目标实例还原为上一个复制过程之前存在的数据。
注意

注意

运行发布复制过程时,必须禁用增量索引。

激活方式

Linda可以指定她希望如何运行复制过程。她的选择是:

  • 手动: 该过程在她触发时运行。
  • 自动: 她安排流程运行的日期和时间。
  • 重复执行: 她安排流程运行时的重复执行时间。
  • 作业步骤: 该流程可作为作业的一部分运行。我们在Salesforce B2C Commerce Scheduled Jobs模块中谈论工作 。

请记住,B2C Commerce在流程运行时而不是在定义流程时复制其状态的数据。

创建数据复制过程

Linda计划根据数据类型及其更改频率以多种方式创建复制过程。目前,她想运行一个快速的手动过程来更新一些新价格。

这是她创建手动复制任务的方式。

  1. 打开业务经理。
  2. 选择管理>复制>数据复制业务经理数据复制
  3. 点击新建。(您必须在暂存实例上才能看到此按钮。)
  4. B2C Commerce自动创建一个流程ID,或者您可以输入所需的文本。
  5. 选择开发目标实例。
  6. 输入可选说明。这可以帮助您以后找到它。
  7. 选择“无效”以在复制过程结束时刷新目标实例上的页面缓存。默认情况下,“无效”处于选中状态。清除缓存会暂时降低网站性能,但是如果您不刷新缓存,购物者将不会在店面看到新数据。
  8. 对于激活类型,选择手动
  9. 选择一个通知电子邮件触发器,然后输入多个目标电子邮件地址,以逗号分隔。该电子邮件包含流程的开始和结束时间,目标系统,复制类型和复制任务。如果该过程失败,则电子邮件通知中将包含错误代码。循环序列中的每个进程都会触发自己的通知。
  10. 指定这些事件发生的情况。
    • 流程结束: 无论流程成功还是失败,B2C Commerce都会向该地址发送电子邮件。如果挂起,则不会发送电子邮件。
    • 流程失败:如果流程失败,  B2C Commerce会向该地址发送一封电子邮件。如果该过程成功或挂起,则不会发送电子邮件。
  11. 单击下一步
  12. 对于复制类型,选择传输和发布
  13. 选择“价格手册”任务。这基于您复制的数据。
  14. 单击下一步并查看详细信息。
  15. 单击开始以立即运行该过程。

Linda在开发实例上测试数据。看起来不错时,她会将相同的数据从登台实例复制到生产中。

下一步

在本单元中,Linda了解到数据复制可以处理全局数据或站点数据,或同时处理这两种数据。她还了解了复制过程任务,过程类型和激活方法。她进行了手动复制,以推送新的定价数据。在下一单元中,她学习如何执行代码复制。

Salesforce B2C商业复制 – 探索B2C商业复制

学习目标

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

  • 列出复制影响的三个实例。
  • 列出运行复制的三种方式。
  • 列出三种可自动触发高速缓存刷新的数据复制类型。
  • 描述复制回滚。

介绍

Linda Rosenberg是高端运动鞋公司Cloud Kicks的新管理员。最近,她学习了如何在Salesforce B2C Commerce中执行一些基本的数据管理任务。现在,她想成为一名专家,负责将数据和代码更改从公司的电子商务登台实例转换为生产和开发实例。

例如,她的开发人员刚刚创建了一个更加简化的结帐流程,并添加了额外的产品折扣功能,该功能需要更改Business Manager中的配置设置。另外,琳达刚刚从外部系统导入了产品数据,以准备新的弹簧线。她可以用来在B2C Commerce实例之间移动代码,配置设置和数据的过程称为复制

Linda Rosenberg,管理员

复制过程是您执行的任务的集合,这些任务将已定义的数据或代码从源实例推送到目标实例。源实例是代码或数据当前所在的位置。目标实例是您要结束的位置。使用复制时,源实例为暂存,目标实例为developmentproduction

源实例和目标实例

猪和SIG

如果完成了 Salesforce B2C Commerce角色和权限模块,您将了解B2C Commerce体系结构。现在让我们更深入地研究实例。当商家首次实现站点时,该站点通常每个域接收九个实例。这包括:

  • 主实例组(PIG)上的三个实例:
    • 分期
    • 测试开发
    • 部署生产
  • 五个沙箱实例,用于在辅助实例组(SIG)上进行代码开发。为了实现可扩展性,商家每个域最多可以有47个沙箱。
  • 一个演示实例。

您只能在PIG上执行复制。数据复制和代码复制都是如此。

数据复制将数据,元数据和文件从登台复制到开发或生产实例。它在两个级别上起作用。

  • 全局复制,包括适用于整个组织的配置信息和数据。
  • 站点复制,包括属于一个或多个指定站点的数据(例如产品和目录数据,基于XML的内容组件和图像文件)。

代码复制将代码版本从暂存阶段转移到开发或生产实例,并激活它们。

开发人员将代码从开发人员的计算机上载到沙箱。 代码部署也可以从本地计算机到登台进行。

通常,开发人员负责将代码从SIG转移到PIG。当开发人员在本地计算机上完成编码后,他们会将代码上传到沙盒或登台。他们可能使用Visual Studio Code上载它,或者他们可能使用代码存储库(例如Git)在多个开发人员之间同步工作。然后,代码存储库是登台实例发布的源。这种类型的开发环境可能具有自己的构建过程,并且具有自动上载功能。

复制将数据和代码从登台实例推送到生产和开发实例。

复制过程

Linda了解到复制涉及以下步骤。

  1. 运行从暂存到开发的复制以进行测试。
  2. 测试开发实例并查看日志。
  3. 确保搜索有效,并且开发系统上的数据正确。
  4. 在登台实例上进行必要的更改。
  5. 从阶段复制到开发,然后再次测试,直到一切正常为止。
  6. 从登台复制到生产。
  7. 测试生产中的所有内容,即使它们已正确复制到开发中也是如此。

当Linda配置数据或代码复制过程时,她可以选择立即运行它,安排它以后运行,或将其分配给作业。做什么工作 B2C Commerce作业是一组执行长时间运行的操作的步骤,例如下载导入文件或重建搜索索引。我们在Salesforce B2C Commerce Scheduled Jobs模块中谈论工作 。

数据复制是一个长期运行的过程,包含两个阶段。

  1. 将数据复制到目标系统-数据在目标系统上尚不可见。
  2. 发布-这很快,并且可以同时使用所有更改。

她可以将数据复制过程配置为每天,每周或每月在特定时间重复一次。如果您计划复制过程在以后运行,则该过程将在运行时而不是在创建该过程时复制系统状态。

代码复制将代码版本从登台实例转移到开发或生产实例,然后激活它们。

还会发生什么?

复制期间,Linda必须避免进行其他更新。她很快了解到,在运行复制时,在Business Manager中对源或目标实例进行手动编辑不是一个好主意。在此过程中进行编辑可能会影响数据的一致性。

她还确保在复制期间目标实例上没有任何作业正在运行,并避免在B2C Commerce标准维护窗口期间进行数据复制。如果重复的数据复制过程失败,它将不会自动再次运行。

页面缓存影响

代码复制和数据复制都具有页面缓存含义。某些复制任务会自动使缓存无效并刷新。有些任务不会自动执行此操作,因此Linda必须始终在运行这些任务后手动清除缓存。让我们看看她采取的手动清除缓存的步骤。

要访问业务管理器,您必须具有B2C Commerce实施。在此模块中,我们假设您是B2C Commerce管理员,具有执行这些任务的适当权限。如果您不是B2C Commerce管理员,那就可以了。继续阅读以了解您的管理员如何在登台实例中执行这些步骤。不要尝试在您的Trailhead游乐场中遵循我们的步骤。Trailhead Playground中不提供B2C Commerce。如果您拥有B2C Commerce的暂存实例,则可以在实例中尝试这些步骤。如果没有暂存实例,请询问您的经理是否有可以使用的实例。

要访问并使缓存无效:

  1. 打开业务经理。
  2. 选择管理>站点>管理站点>站点名称
  3. 单击缓存选项卡。
  4. 选择登台实例。
  5. 在“缓存无效”部分中,单击“无效”以使站点的“静态内容缓存”和“整个页面缓存”或“站点的整个页面缓存”无效。这将立即生效。业务管理器缓存无效

清除页面缓存可能会对应用程序服务器造成沉重的负担。这意味着Linda仅在必要时才应手动清除页面缓存,并避免在高流量时间清除它。例如,如果Linda进行了一些次要更新,而不是立即清除缓存,则可以在晚上等待计划的缓存清除。如果更改涉及重要的安全功能或关键产品或促销更新,则她的决定会有所不同。

无论她何时清除缓存,清除缓存命令最多可能需要15秒才能到达Web服务器。她可能不会立即看到缓存更新。为了确保成功复制,她评估了更改范围,并尝试使更改尽可能小。

对于自动和手动缓存刷新,B2C Commerce将刷新生产实例中的所有页面延迟15分钟。这样可以确保跨应用程序服务器的负载分配。在非生产实例上,页面缓存立即刷新。

代码复制

从阶段到生产的代码复制过程的最后一步将自动清除缓存。

资料复制

默认情况下,数据复制过程的最后一步会自动使缓存无效并刷新,除非在某些情况下。Linda可以配置复制过程以跳过自动缓存清除。但是,她必须谨慎执行此操作,因为它可能导致店面中的数据不一致,这可能很难进行故障排除。

让我们看一个示例,Linda将选择跳过自动缓存清除。B2C Commerce将产品描述页面缓存24小时。Linda安排第二天晚上清除产品页面的缓存,然后注意到生产实例上的几种产品价格不正确。她要求采购员在登台实例上在Business Manager中更正价格,然后使用跳过页面缓存清除的过程将更改复制到生产中,因为她已经安排了它。

这样可以使价格数据在登台和生产过程中保持同步,并确保正确的价格出现在购物篮中(不会被缓存)。店面的产品描述页面显示旧的,错误的价格,直到计划的页面缓存清除发生。

注意

购物篮是B2C Commerce API中用于购物车的术语。

跳过自动缓存刷新意味着她在产品描述页面上接受了不正确价格的折衷,以换取避免生产缓存刷新对性能的影响。最重要的是,生产实例上的购物篮与登台实例同步反映正确的价格。

这些是其他一些页面缓存注意事项。

复制时… B2C商务…
特定于站点的数据 清除受影响站点的页面缓存,除非您仅复制优惠券,源代码,Open Commerce API设置或活动数据供稿。
全球数据 清除所有受影响站点的页面缓存,除非您仅复制地理位置或客户列表。
目录,网站或价格手册 自动清除缓存。
促销或静态内容 不自动清除缓存。
产品目录 使用下表中描述的规则有选择地清除受影响站点的页面缓存。

目录是一种特殊情况,如下所示。

复制时… B2C Commerce从…清除缓存
组织所有站点的所有目录 组织的所有站点。
分配给一个或多个站点的单个目录 分配目录的站点。
一个主目录,不直接分配给一个站点,而是用作一个或多个站点或导航目录的产品存储库 以编程方式确定的站点,这些站点提供主目录中的产品。

最佳实践

Linda现在对复制有很好的处理。但是在为Cloud Kicks设置任何复制过程之前,她仔细研究了以下最佳实践。

  • 识别不同数据复制组之间的依赖关系。例如,如果您有使用源代码和优惠券代码的广告系列,则在复制广告系列之前或之前复制源代码和优惠券。
  • 始终重建搜索索引,并确保过程已完成,然后再复制它们。复制搜索索引时,请禁用增量索引和计划索引,并停止其他作业。当重建或修改索引时复制失败。
  • 不要同时运行多个复制过程。
  • 限制有权执行数据复制的用户数。
  • 将静态内容存储在文件夹结构中,该文件夹结构不允许在同一文件夹中包含超过1,000个文件。如果您在一个文件夹中存储的文件数超过1,000,即使没有更改文件,访问和复制的时间也会大大增加。
  • 尽可能复制现有的复制过程,而不是从头开始创建新过程。
  • 不要在生产实例上直接编辑盒带路径或代码。这可能会导致意外行为,例如页面的多个版本。始终将代码和首选项从登台复制到生产中。

回滚复制

有时您必须撤消复制。您可以通过将复制类型设置为“撤消”来再次运行相同的复制来执行此操作。这会将目标实例还原到其先前的状态。但是,您只能回滚最新数据或代码复制。

数据和代码复制不会影响彼此的回滚。例如,如果先运行数据复制,然后运行代码复制,则仍然可以撤消两个复制。

下一步

在本单元中,Linda了解了哪些实例用于代码和数据复制。她了解了页面缓存的含义,最佳实践以及如何回滚复制。接下来,她配置并运行数据复制。

Salesforce B2C Commerce导入导出 – 配置导入和导出

学习目标

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

  • 列出管理员执行导入/导出所需的三种权限。
  • 列出导入过程的三个基本步骤。
  • 列出导出过程的三个基本步骤。
  • 说明网站导入/导出的目的。
  • 描述两种处理转移限制的方法。

介绍

Cloud Kicks的管理员Linda Rosenberg已经了解了很多有关导入和导出模式和模式的知识。现在,她准备配置并运行她的第一个导入和导出过程。Linda负责各种导入和导出过程,但今天她专注于目录导入和订单导出。她学习了完成这些过程的步骤以及数据传输大小的限制。

但是首先,她需要确保自己和备份管理员Peter Wong具有正确的业务管理器和文件传输权限。

她和彼得需要访问权限才能:

  • 网站导入/导出,其中包括所有网站信息
  • 导入/导出店面信息,例如产品和内容
  • WebDAV访问服务器上的日志文件和导入/导出目录

她还向Salesforce B2C Commerce支持请求访问FTP端口,以便她可以使用开发人员提供的FTPClient脚本。

导入目录

要访问业务管理器,您必须具有B2C Commerce实施。在此模块中,我们假设您是B2C Commerce管理员,具有执行这些任务的适当权限。如果您不是B2C Commerce管理员,那就可以了。继续阅读以了解您的管理员如何在登台实例中执行这些步骤。不要尝试在您的Trailhead游乐场中遵循我们的步骤。Trailhead Playground中不提供B2C Commerce。如果您拥有B2C Commerce的暂存实例,则可以在实例中尝试这些步骤。如果没有暂存实例,请询问您的经理是否有可以使用的实例。

Linda首先在Business Manager中运行手动导入和导出过程。后来,她计划与开发人员一起创建使用标准管道的流程。这些管道可以轻松处理大型数据集,快速可靠,并有效地使用系统资源。为了提高效率,她还计划创建用于文件传输和导入/导出的批处理作业。现在,手动处理就可以了。

为了导入包含产品数据的目录,她按照本模块第一单元中的说明,使用catalog.xsd格式在Cloud Kicks的PIM系统上创建了一个文件。

这是她采取的后续步骤。

  1. 打开业务经理。
  2. 选择cloudkicks>商家工具>产品和目录>导入和导出
  3. 在导入和导出文件部分中,点击上传
  4. 单击选择文件上载目录文件以导入到业务管理器中。
  5. 点击上传
  6. 选择文件,然后单击压缩在业务管理器中,选择要导入的文件并压缩该文件。
  7. 业务管理器将创建zip文件。
  8. 点击<<返回
  9. 在目录部分中,单击导入在业务管理器中,选择要导入的文件。
  10. 在目录导入-选择文件部分中,选择要导入的文件,然后单击下一步>>
  11. 业务管理器将验证文件并显示文件分析。Linda检查分析以确认业务经理在继续导入之前已识别出预期的信息。
  12. 单击下一步
  13. 选择合并导入模式。

出口订单

Linda希望导出订单,以便Cloud Kicks的外部订单管理系统(OMS)可以处理它们。她的导出文件使用与导入相同的架构定义。业务管理器会自动构建XML文件。

要导出订单,她采取了以下步骤。

  1. 打开业务经理。
  2. 选择cloudkicks>商家工具>订购>导入和导出
  3. 点击导出
  4. 选择要导出的订单,然后单击下一步在业务管理器中,输入订单导出文件名,然后单击“导出”。
  5. 选择导出选定的订单
  6. 输入文件名:orders-01-19-2019。
  7. 选择更新订单出口状态和库存
  8. 点击导出
  9. 在“导入和导出文件”部分中,单击“下载”
  10. 选择文件名(Linda选择订单01-19-2019),然后单击“压缩”
  11. 单击zip文件名,该文件名将文件下载到本地系统。

Linda使用WebDAV将XML文件传输到OMS,并将文件导入OMS。她还可以使用FTP或HTTPS,但是Cloud Kicks开发了使用WebDAV的实现。由于PCI-DSS的数据传输要求和OMS系统要求,她的传输过程使用了安全连接。这是最佳做法!

通过WebDAV查看导入/导出文件

琳达(Linda)希望确保一切都完美无缺,因此她看了看文件。这是如何做。

  1. 打开业务经理。
  2. 选择管理>站点开发>开发设置业务管理器WebDAV日志访问页面
  3. 单击导入/导出链接。业务管理器WebDAV导入/导出日志文件
  4. 查看日志文件以确保它们正确。

B2C Commerce将导出文件上传限制为100 MB。这意味着多个站点出口或带有巨大图像的出口会导致数据超额收费。因此,Linda仅根据需要(例如每天一次)运行出口,并且仅包含必要的数据。

网站导入/导出

Linda处理的另一种导入/导出是站点数据。Cloud Kicks正在实施一个新站点,由多个开发团队并行处理不同的开发实例。职能架构师要求她复制一个开发实例配置并与另一个开发实例共享。

通过站点导入/导出,她可以保存实例的快照(配置和数据)并将其还原到相同或另一个实例上。

要导出站点数据,Linda采取以下步骤。

  1. 打开业务经理。
  2. 选择管理>网站开发>网站导入和导出业务管理器网站导入导出页面
  3. 在“导出”部分中,输入存档的文件名。
  4. 选择要导出的数据。业务管理器“网站导入和导出”页面上,选择数据部分
  5. 点击导出
  6. 导出完成后,单击页面底部的导出文件链接。
  7. 在下一页上,向下滚动到页面底部,然后单击文件的下载链接。在本地系统上创建了一个zip文件。

要导入站点数据:

  1. 在接收实例上打开业务管理器。
  2. 选择管理>网站开发>网站导入和导出
  3. 在“导入”部分中,选择“本地”,然后单击“选择文件”
  4. 浏览文件,然后单击“打开”
  5. 在导入部分中选择文件,然后单击导入

交易限额

尽管标准导入被设计为处理任意大小的XML文件,但是单个过程仅限于1,000个业务对象。随着Cloud Kicks的增长,Linda必须注意此限制和其他限制。

限制 描述
上载 将WebDAV推送到B2C Commerce实例的上传限制为100 MB。如果传输文件花费的时间太长,Linda可以在压缩文件后重试。
下载 FTP或WebDAV的文件大小必须小于200 MB,才能下载到文件中。下载到字符串中的文件大小要小得多。
FTP客户端大小 程序化文件获取使用强制性文件限制,该限制可以在参数中传递或默认设置。
HTTPClient大小 HTTP客户端没有文件大小限制。

压缩的XML文件

Linda通过压缩减少了XML文件的大小。这有助于Linda保持在上传大小限制内,并加快慢速网络链接上的上传/下载时间。

  • gzip:  Business Manager使用gzip算法自动压缩标准导入文件,因此她不必在实例上运行.gunzip。她只需在导入管道中输入诸如catalog.xml.gz之类的文件名,或者在业务管理器中选择一个gzip压缩文件(扩展名必须为.gz)。
  • zip: 可以在Business Manager的“导入/导出”中基于单个文件对XML文件进行压缩和解压缩(zip压缩,而非gzip压缩)。在上载期间,业务管理器会自动将.zip文件解压缩。

Delta Feed

对于除目录数据以外的导入,Linda创建的XML文件仅包含当前XML文件与先前XML文件之间的差异。这些称为增量供稿。它们通常更小,导入速度更快,并且不易受到网络中断的影响。

尽管她可以创建增量目录Feed,但不能包含用特定于元素的导入模式替换全局导入模式的元素。例如,无法为捆绑产品创建增量Feed,因为捆绑产品字段会自动使用替换模式。

静态文件

目录和内容库中的持久对象(类别,产品和内容数据)具有补充的静态文件,例如产品图像。B2C Commerce将这些存储在实例文件系统中。您的XML文件只能包含永久数据库对象和对静态对象的引用。要导出/导入或下载/上传静态文件,Linda必须使用WebDAV界面。

为什么存档?

由于XML文件无法回滚,因此Linda始终在导入之前存档先前的XML文件,这是最佳做法。如果新的XML文件未通过验证,她可以导入先前的版本。她每周删除一次旧文件(最后一个文件除外),这样它们就不会累积。

总结一下

今天,Linda学习了如何在WebDAV中导入目录,导出订单和查看日志。通过站点导入/导出,她将站点数据从一个开发实例复制到另一个开发实例。她学习了如何处理文件和事务大小的限制以及归档的重要性。

在本模块中,您跟随Linda学习了模式,模式以及运行导入/导出过程所需的步骤。现在该测试您的知识并获得徽章!