学习目标
- 解释导入模式的目的。
- 列出两种通过导入添加新对象的模式。
- 描述如何使用导入删除数据。
- 说明可以导入或导出数据的两种常规方法。
- 描述Salesforce B2C Commerce如何设计来处理店面数据。
介绍
Cloud Kick的新管理员Linda Rosenberg几乎准备使用Business Manager中的导入/导出功能。她的经理要求她推迟,直到她完全了解模式如何工作。除模式外,模式是导入/导出功能的最重要方面。
模式
架构定义数据文件结构规则时,模式定义导入数据时发生的情况。这些是模式。
这是每个人的工作。
使用此模式… | 有时候是这样的… |
---|---|
合并 | 如果不存在新数据,Business Manager将添加新数据并更新现有数据。 |
更新资料 | 业务管理器更新现有数据,但不添加新数据。它仅更新XML文件中的属性。 |
更换 | 业务管理器将重新创建现有数据或为XML文件中的每个数据添加新数据。业务管理器删除XML文件中没有的现有属性。此模式与删除然后合并的模式相同。 |
删除 | 业务管理器从数据库中删除XML文件中的数据。您只需要在XML文件中提供对象ID。业务管理器将忽略其他对象属性。 |
高级采购员Traude Beck要求Linda帮助产品和属性更改。Traude希望将Pinterest标志添加到一些产品中作为测试。以前,她测试了Facebook标志,现在想删除该属性。
琳达创建了Traude想要的更改表,以便她可以决定使用哪种模式。Traude的更改涵盖了对象T-123440至T-123445。在表中,字母A到F是缩写对数据库所做的更改的一种方式。例如,产品T-1234440已经在数据库中,并且Traude希望向其添加pinterest-enabled-flag true属性。
A代表数据库中的产品:
A1代表产品加上属性更改:
更改 | 已经在数据库中 | 产品(对象) | 属性 |
---|---|---|---|
A1-添加属性 | 是 | <product product-id =“ T-123440”> | <pinterest-enabled-flag> true </ pinterest-enabled-flag> |
B1-删除属性 | 是 | <product product-id =“ T-123441”> | <facebook-enabled-flag> true </ facebook-enabled-flag> |
C-不变 | 是 | <product product-id =“ T-123442”> | |
D-新产品 | 没有 | <product product-id =“ T-123443”> | |
E-不在XML文件中 | 是 | <product product-id =“ T-123444”> | |
F1-更改属性 | 是 | <product product-id =“ T-123445”> | 更改:<pinterest-enabled-flag> false </ pinterest-enabled-flag>
若要:<pinterest-enabled-flag> true </ pinterest-enabled-flag> |
对于每种模式,这就是最终要存储在数据库中的内容。
导入前 | 在XML文件中 | 导入方式 | 导入后 |
---|---|---|---|
A,B,C,E,F | A1,B1,C,D,F1 | 合并 | A1,B,C,D,E,F1 |
更新资料 | A,B,C,E,F1 | ||
更换 | A1,B,C,D,E,F1 | ||
删除 | Ë |
琳达(Linda)认为仅凭这些模式就不允许她更改表中列出的B1-删除(D1-Delete)属性。这就是为什么她仍然在导入后看到B而不是B1的原因。要删除Facebook标志属性,她需要将XML文件中的属性值更改为none或为空白,然后以合并或更新模式导入。
对于删除模式,即使与C一样,导入中的所有对象也将被删除,即使没有更改。
对于更新模式,业务管理器不会将D添加到数据库中。为什么?因为更新模式不会添加新数据。
在任何一种情况下,Business Manager都不会删除E,因为不在XML文件中的对象没有任何反应。
Linda删除对象的一种方法是创建一个XML文件,该文件仅包含她要删除的对象,然后使用删除模式将其导入。删除对象的另一种方法是在XML feed中的对象级别指定删除导入模式。接下来我们讨论。
元素模式
特劳德再次来到琳达寻求帮助。这次,她希望Linda用三个新产品更新目录,并同时删除两个产品。为此,Linda为XML文件中的各个元素指定模式。元素级别的模式将覆盖全局导入模式。
Linda创建一个包含两种产品的XML文件。
她列出了没有单独模式的新产品,以及要使用删除模式删除的产品。然后,她以合并模式运行导入。她不使用更新模式,因为它将删除两个产品,但不添加新产品。
目录导入/导出
Linda很快意识到B2C Commerce的导入/导出功能旨在处理店面数据的复杂性,例如目录的类型。这很重要,因为使用两个目录是B2C Commerce最佳实践:店面和主目录。这正是Cloud Kicks构建目录的方式!店面目录是他们在店面中显示的内容,而主目录则表示他们从外部PIM导入的内容。
目录导入
之前,Linda添加和删除了特定的产品和属性。她还可以一次导入整个目录。这包括目录以及其中的任何类别和产品数据。
使用目录导入:
- 您可以独立于主目录导入店面目录。
- 店面目录类别可以引用该类别中的产品。
- 其他店面目录的导入不会影响现有的产品/类别分配。
- 主目录的产品更新导入不会影响店面目录中的类别分配。
- 目录导入语义将主目录和店面目录视为相互独立的独立数据单元,因此您可以导入一个目录而不删除另一个目录的数据结构。
- 业务管理器根据产品是新产品还是现有产品以及使用的模式来更新在线/离线状态。例如,如果未在导入文件中指定状态,它将自动将以合并和替换模式导入的新产品设置为脱机。
目录导出
Linda可以从Business Manager或整个目录中导出有关选定产品的数据。当Linda使用“导出特定产品”设置时,结果文件仅包含所选产品的列表以及这些产品的类别分配。
在导出过程中,B2C Commerce会自动修剪前导和尾随空格,并删除产品图像路径中任何以前保存的换行符。
特定对象处理
B2C Commerce在处理诸如优惠券,客户,订单和价格手册之类的对象的进出口时,会使用特定于对象的特定规则。例如,让我们看一下它如何处理价目表导入。
模式 | 价格簿的处理细节 |
---|---|
合并 |
|
更新资料 |
|
更换 |
|
删除 |
|
所有 |
|
Linda很快了解到,在创建导入和导出XML文件时,必须同时考虑模式和对象类型。
下一步
在本单元中,Linda学习了如何使用模式进行全局和特定于元素的导入和导出。她还了解到B2C Commerce处理与对象类型相关的导入和导出过程。接下来,她学习如何配置和运行导入和导出过程。