以下这些示例演示了成员数据馈送的构成,可满足多种使用案例所需。以下示例使用了为满足使用案例所需的最简单数据馈送。还有更多 MEMBERSHIP馈送标题,可以在创建成员记录时使用。分析您机构的信息系统以及注册要求和规划,可帮助确定正确填充 Learn 以满足数据和成员生命周期目的所需的数据深度。

这些示例基于集成配置 UI 中的默认 Learn 设置。更改这些配置元素将导致示例结果发生更改。有关这些设置的说明,请访问 SIS 框架概述。此外,除非另有说明,否则假定集成已配置为对所有传入数据使用相同的数据源。

关于合并课程中成员的说明

在合并的课程上创建成员时,以下标准会确保创建成功:

  • 遵循 SIS 线索。每个 SIS 的成员都应保持 1:1。请勿强制所有成员访问父课程。
  • 成员可能不存在于合并课程的多个子课程中。SP 12 在课程成员上引入了一个新字段映射,以协助管理合并课程的注册(移动交叉列出注册),在应用时,成员资格和关联的数据/内容从当前课程移动到新的子课程(请参阅以下示例用法)。
  • 通过移动交叉列出的注册,您必须先禁用一个子课程中的成员,然后再在另一个子课程中创建成员。如果您的机构允许宽泛的课程注册策略(学生可以在多个课程实例中注册),则您将会在其他成员请求时遇到集成错误。例如,Math100 有三个子课程 Math100.1、Math100.2 和 Math100.3,而学生选择 Math100.2 和 Math100.3 作为注册期内的选项。在 Learn 中处理的过程中,其中一个子课程将生成错误,具体取决于首先处理的是哪个子成员。

关于成员数据

成员数据是主要信息集,用于确定具有非管理员角色的用户对课程或组织的访问权限。

操作

可以向 Learn 提供数据,然后随后进行更新、删除或修改。因此,您可以从最简单的数据集开始,随着机构的数据需求发生变化而扩充。

快照平面文件数据管理

SIS 框架支持通过 UI 馈送上传以及由 Learn 系统提供的一组 URL 来进行快照平面文件数据馈送上传。

通过系统管理员数据集成学生信息系统集成 UI 中的集成菜单,访问 HTTP 信息并上传馈送文件。

在这两种情况下,数据操作的行为是由集成配置和选定操作类型驱动的。 选择的数据操作类型将控制如何“解释”馈送中的数据,每个 URL 将提供不同的结果来满足您的集成的预期目标。

操作说明
存储使用此操作类型时,馈送文件中包含的数据会在该集成所拥有的所有数据源中存储或更新(按配置设置)。(请参阅 SIS 框架概述,了解数据“所有权”和数据源。)
完全刷新此操作会存储或更新在数据馈送中包含的数据,同时禁用未包含在数据馈送(与跨所有数据源的集成相关联)中的数据。
删除此操作将根据每个集成设置禁用包含在数据馈送中的记录,这些数据馈送与跨所有数据源的集成相关联。
按数据源进行完全刷新在 SP 12 中引入此操作仅执行与集成配置数据源关联的数据的完全刷新。此操作会更紧密地模拟命令行快照过程,以进行数据刷新。

与成员操作关联的对象包括:

对象操作
成员存储、完全刷新、删除、按数据源进行完全刷新

组织和课程共享相同的成员管理模式。他们的确需要不同的标题,但这些标题会在适当的位置被指出,但是这些示例将重点放在课程成员管理上。

提供的示例是使用快照框架 UI 上传馈送文件功能进行演示的。要详细了解如何自动化或使用其他命令行/编程操作,请参阅快照平面文件自动化

关于数据源密钥的提醒

所有数据对象都支持更改数据源密钥的功能(以便对该数据集进行分组),并可用于更改关联的数据源。

这不是基于框架的数据馈送中的必填字段,除非特别指出,提供的示例会假定集成已配置为使用单个数据源。在 SP 12 中引入的功能使您可以独立于指定新数据源,来单独指定数据馈送中的数据源。请参阅数据源密钥管理以及关于更改成员记录的数据源一节。

有关字段映射的说明

字段映射使您可以在传入数据存储到 Learn 之前对其进行更改。这样,您就可以完全控制所存储的数据,并且在提供的 SIS 数据不足的情况下,允许您符合 Learn 特定规则(例如:创建适合的成员名称条目)。应用于成员对象字段时,关联的脚本将按成员记录来运行,并且在数据存储在 Learn 之前对其进行更改或提供。有关字段映射的完整说明,请查看快照平面文件自定义字段映射

成员操作示例

在较高层次上,您可以确定三种 SIS 集成数据馈送模式,这些模式可以应用于所有成员数据操作,而选择的模式取决于您可以提供的数据。  

  • 使用单个馈送文件,您可以利用单独的过程来存储和更新记录(存储),以禁用(删除)记录
  • 使用单个馈送文件,您可以存储、更新和禁用(完全刷新)记录
  • 利用文件组合,您可以用一种文件进行存储,用另一种文件进行禁用。

最后,这不是 SIS 馈送模式,但值得一提的是,您也可以利用 UI 中提供的数据源管理工具,单独基于 DSK 进行禁用和清除。当以此方式管理 SIS 提供的数据时,应格外谨慎。当清除那些过去从未或将来不再通过 SIS 或测试操作的结果提供的数据时,此功能非常有用。

基础要点:成员

所有成员都需要一组基本信息来建立成员。请参阅快照平面文件数据格式快照平面文件标题描述了解详细信息。

如果您当前使用的是 UI 批处理工具,现在切换到使用 SIS 框架并使用最小成员数据,则 SIS 框架的 UI 上传功能可让您更好地记录和报告数据上传,而无需更改您的数据收集过程。

简要数据

在 Learn 中创建成员帐户所需的最小数据集或标题包括:

  • EXTERNAL_COURSE_KEY- 此成员记录的唯一标识符。对于组织,这是 EXTERNAL_ORGANIZATION_KEY
  • NEW_DATA_SOURCE_KEY- 记录中数据集的唯一标识符。
    注意:这可以在馈送中提供,也可以通过集成配置提供。
  • EXTERNAL_PERSON_KEY- 成员适用的用户 ID。

每个集成配置的 SIS 框架提供非必填字段的默认值或忽略非必填字段。成员馈送非必填的三个有用字段为 AVAILABLE_INDROW_STATUSROLE。以下使用案例中将对此进行介绍。

快照平面文件标题描述对上述每个标题进行了详细介绍。

添加成员信息

存在两个使用案例用于添加成员信息。 第一个案例是运行 STORE成员信息,从而导致添加或更新记录,这会在数据馈送中相应显示。第二个案例是对 Learn 中已存在的课程信息进行 REFRESH,从而导致新增或更新现有记录,这会在数据文件中相应显示,同时会禁用在成员数据文件中不存在的现有 Learn 记录。

存储操作示例

示例 1:创建成员

您希望在不影响现有帐户的情况下向 Learn 添加成员。您已将集成配置为对所有传入数据使用相同的数据源。

先决条件

课程和用户必须存在,然后成员操作才会成功。

最低数据馈送要求

EXTERNAL_COURSE_KEY

EXTERNAL_PERSON_KEY

解决方案

创建 memberships.txt数据文件,其中包含您希望添加到系统中的每个成员的必填标题和关联数据。例如:

EXTERNAL_COURSE_KEY|EXTERNAL_PERSON_KEY
testcourse1|testPerson1
testcourse1|testPerson2
testcourse2|testPerson3

使用该 UI,利用 STORE操作,通过成员数据类型上传此文件。将创建成员帐户,您可以通过系统管理员成员工具查找该帐户。

后置条件

Memberships in testcourse1were created for the persons with testPerson1, testPerson2 as their EXTERNAL_PERSON_KEY and a membership in testcourse2 was created for testperson3.

示例 2:更新成员

您创建了成员帐户,并且需要对其进行更改。例如,上面的示例向 testcourse2添加了testPerson3,其实应为 testcourse1 添加。

请注意,尽管可以对以下数据馈送进行正确更改:testcourse1|testPerson3,上一个 testcourse2 的成员身份在禁用之前将一直有效。这可以通过在单个馈送中添加 ROW_STATUS标题元素来实现。

先决条件

课程和人员记录必须存在于 Learn 中。

要禁用的记录必须是 Learn 中已经存在的记录。

解决方案

创建 membership.txt 数据文件,其中包含您希望创建/更新或禁用的必填标题和关联数据(按成员列出)。例如:

EXTERNAL_COURSE_KEY|EXTERNAL_PERSON_KEY|ROW_STATUS
testcourse2|testPerson3|disabled
testcourse1|testPerson3|enabled

因为 STORE仅对包含在文件中的数据进行操作,所以先前提交的成员记录不受影响,如果您希望禁用记录,则 STORE 操作要求对数据进行显式操作。

使用该 UI,利用 STORE操作,通过成员数据类型上传此文件。文件中的成员记录将会更新。

后置条件

The membership records for testPerson3 are updated to explicitly disable the testcourse2 membership for testPerson3 while creating and enabling a membership in testcourse1.

以前创建的成员记录不受影响。

成员:完全刷新操作

COMPLETE REFRESH操作方式不同于 STORECOMPLETE REFRESH执行两项操作,相当于对馈送文件中的数据以及集成拥有 LEARN 中的记录进行比较:存储新记录、更新现有记录或禁用 LEARN 中不在数据文件中的记录。

示例:完全刷新

SIS 提供的数据包含 Learn 中应该存在的课程成员的完整快照。此数据包含要添加的成员记录、要更新的成员记录,不包括自上次 COMPLETE REFRESH操作后已删除的记录,这些记录应根据配置进行相应的处理(禁用或清除)。

先决条件

课程和人员记录必须存在于 Learn 中。

最低数据馈送要求

EXTERNAL_COURSE_KEY

EXTERNAL_PERSON_KEY

解决方案

Starting with the data from our first membership store operation and adding the correct membership for testPerson3 in testcourse1 and removing the incorrect membership for testPerson3 in testcourse2, provides similar results as the multiple STORE operations presented above, as COMPLETE REFRESH implicitly disables any records not in the file.

EXTERNAL_COURSE_KEY|EXTERNAL_PERSON_KEY
testcourse1|testPerson1
testcourse1|testPerson2
testcourse1|testPerson3

请注意,如果此集成管理了其他成员记录,则这些记录将被禁用或清除,因为在上面的数据馈送中没有这些记录。

后置条件

testcourse1|testPerson1testcourse1|testPerson2 的成员记录会保留,并且不受影响。

testcourse1|testPerson3的成员记录将会添加到 Learn。

testcourse2|testPerson3的成员记录,由于数据馈送中不包括此记录,因此已标记为已禁用或已准备好按每个集成配置进行清除。

成员:按数据源进行完全刷新操作

COMPLETE REFRESH BY DATA SOURCE执行 COMPLETE REFRESH 操作,但会将受影响的数据仅限为与集成数据源关联的数据。

示例:按数据源进行完全刷新

SIS 提供的数据包含应有权访问 Learn 的 PERSON的完整快照。此数据包含要添加的 PERSON记录、要更新的 PERSON 记录,以及自上次 REFRESH 操作以来删除记录(应根据配置进行正确处理:禁用或清除)。此外,使用集成中定义的同一数据源,以此刷新中的所有数据作为目标,并且您希望影响与此数据源密钥相关的数据。

先决条件

课程和人员记录必须存在于 Learn 中。

最低数据馈送要求

EXTERNAL_COURSE_KEY

EXTERNAL_PERSON_KEY

解决方案

使用上次存储操作中的数据为 testcourse1 中的 testPerson3 添加新成员,从数据馈送中删除 testcourse2|testPerson3

EXTERNAL_COURSE_KEY|EXTERNAL_PERSON_KEY
testcourse1|testPerson1
testcourse1|testPerson2
testcourse1|testPerson3

后置条件

testcourse1|testPerson1testcourse1|testPerson2 的成员记录会保留并进行更新。

testcourse1|testPerson3 的成员记录会更新/添加至 Learn

testcourse2|testPerson3的成员记录,由于数据馈送中不包括此记录,因此已标记为已禁用或已准备好按每个集成配置进行清除。

如果还有其他成员记录由此集成管理,则这些记录会被禁用或清除,因为这些记录在上述数据馈送中不存在,除非其具有与集成指定的相同数据源。

成员可用性

成员可用性设置允许将 Learn 中的帐户设置为对学生可见(可用)或不可见(不可用)。请注意,这与禁用成员不同,后者不仅会使成员对学生和教师不可用,同时还意味着它对其他操作(如通过 UI 进行成员管理)也不可用。 添加此数据馈送标题不会影响上面演示 STORECOMPLETE REFRESHCOMPLETE REFRESH BY DATA SOURCE 的用于创建成员记录的用法。

注意,数据馈送中未提供 AVAILABILITY可用性设置时,默认集成设置会应用于在创建/更新操作中可用的对象。

示例:成员帐户可用性

您的 SIS 控制 Learn 访问可用性,数据馈送指示用户的可用性设置,以控制用户何时有权访问 Learn 以及您希望控制有关 PERSON创建/更新的访问设置。

先决条件

课程和人员记录必须存在于 Learn 中。

最低数据馈送要求

EXTERNAL_COURSE_KEY

EXTERNAL_PERSON_KEY

AVAILABILITY_IND

解决方案

向您的数据馈送添加 AVAILABLE_IND标题,如果可用,则提供单个字符 Y,如果不可用,则提供单个字符 N

EXTERNAL_COURSE_KEY|EXTERNAL_PERSON_KEY|AVAILABLE_IND
testcourse1|testPerson1|Y
testcourse1|testPerson2|Y
testcourse1|testPerson3|Y
testcourse2|testPerson3|N

后置条件

STORE

仅为 testcourse1testcourse2 创建成员记录,或以当前可用性状态对其进行更新。

完全刷新操作

testcourse1testcourse2 创建成员记录,或以当前可用性状态对其进行更新。将禁用所有其他记录或将其标记为清除,因为其在上述数据馈送中不存在。

按数据源进行完全刷新

testcourse1testcourse2 创建成员记录,或以当前可用性状态对其进行更新。如果还有其他成员记录由另一集成管理,则这些记录会被禁用或清除,因为这些记录在上述数据馈送中不存在,除非其具有与集成指定的相同数据源。按数据源进行完全刷新仅对集成数据源的记录进行操作。

禁用成员记录

在 Learn 中禁用成员记录将使所有用户都无法访问该记录(已禁用状态会覆盖可用性设置),并且还使该记录对 UI 操作不可访问。例如,您不能通过 UI 管理禁用的成员。此外,要从 Learn 中清除记录,必须先禁用该记录。

禁用记录和后续清除将从 Learn 中删除对该记录的所有引用。Blackboard 建议仅在一段时间之后清除已禁用的记录,具体的时间段由您的企业自行决定,因为法律惯例可能会要求提供活动记录。

禁用记录有两种方式:通过 REFRESH操作的馈送数据排除来禁用,以及通过使用馈送标题 ROW_STATUS 来禁用。

上述使用 REFRESH操作的成员操作演示通过排除来禁用,以下案例和示例会通过使用 ROW_STATUS 来禁用。

示例:禁用成员记录

策略规定,在 5 年期后,您会从 Learn 中完全删除成员(与使记录不可用不同,不可用仅会限制课程记录的可见性)。如果您使用的是 STORE操作,要清除课程,您必须使用 ROW_STATUS 标题明确禁用该课程。这也适用于 SIS 馈送范围以外的手动操作。

先决条件

课程和人员记录必须存在于 Learn 中。

最低数据馈送要求

EXTERNAL_COURSE_KEY

EXTERNAL_PERSON_KEY

ROW_STATUS

解决方案

向您的数据馈送添加 ROW_STATUS标题,如果已启用,则提供 ENABLED,如果已禁用,则提供 DISABLED

EXTERNAL_COURSE_KEY|EXTERNAL_PERSON_KEY|ROW_STATUS
testcourse1|testPerson1|enabled
testcourse1|testPerson2|enabled
testcourse1|testPerson3|enabled
testcourse2|testPerson3|disabled

后置条件

存储

仅创建或更新数据馈送中包含的成员记录,并且 ROW_STATUS 已明确更新。

完全刷新

将创建或更新数据馈送中包含的成员记录,并且 ROW_STATUS已明确更新。将禁用所有其他记录或将其标记为清除,因为其在数据馈送中不存在。

按数据源进行完全刷新

将创建或更新数据馈送中包含的成员记录,并且 ROW_STATUS已明确更新。如果还有其他成员记录由另一集成管理,则这些记录不会被禁用或清除,因为这些记录在上述数据馈送中不存在,除非其具有与集成指定的相同数据源。COMPLETE REFRESH BY DATA SOURCE仅对与集成数据源匹配的记录进行操作。

SP 12 中的新增功能

示例:移动交叉列出的注册

使用合并的课程会对成员(注册)处理有一些约束。具体来说,用户不能在多个合并课程中同时具有已启用的成员。

In certain cross-listing scenarios, the SIS would normally be prevented from executing the enrollment of a user into course_child2 if the user is already enrolled in course_child1 in a cross-listed (merged) set.Move Cross-Listed Enrollment字段用于设置对集成的控制,以便 SIS 集成应该假定任何有效的注册不应因为交叉列表限制而被禁止。这意味着,跟随上述 course_child2/course_child1 引用,course_child1 的注册将从 course_child1 移至 course_child2

交叉列出的注册管理的字段映射通过每个集成实例的“高级配置”提供。它是“注册”对象字段映射的一部分,称为“移动交叉列出的注册”。

移动交叉列出的注册使用内部默认的脚本调用,该调用始终返回“true”。要更改此行为,您必须提供一个脚本,该脚本可在某些或所有情况下返回非 true 内容。例如,您可以有一个仅返回 false 的脚本,或仅在成员课程 ID 有条件地符合某些模式的情况下脚本才返回 false,等等。要了解详情,请参阅自定义字段映射示例。

默认情况下,此映射不应设置为“直接”作为任何集成类型馈送的一部分。即快照平面文件中没有用于该文件的列,在 IMS/Vista 中没有用于该文件的 XML 节点。因此,此字段没有“数据”示例。

完整示例

将上述标题组合成单个文件,我们可以一次解决大多数使用案例。

先决条件

为了使模板复制操作成功完成,先前一定没有创建过 testmembership8

EXTERNAL_COURSE_KEY|EXTERNAL_PERSON_KEY|AVAILABLE_IND|ROW_STATUS
testcourse1|testPerson1|Y|enabled
testcourse1|testPerson2|Y|enabled
testcourse1|testPerson3|Y|enabled
testcourse2|testPerson3|N|disabled

后置条件

存储

仅创建或更新数据馈送中包含的成员记录,并且 AVAILABILITYROW_STATUS 已明确更新为以下结果:

所有成员均已将可用性设置为“是”(Y),但 testcourse2|testPerson3 除外,其设置为“否”(N)。

testcourse1的成员身份已设置为已启用,而 testcourse2|testPerson3 的成员身份已禁用。

完全刷新

与存储操作的结果相同,另外,其他所有托管的记录将被禁用或被标记为清除,因其在数据馈送中不存在。

按数据源进行完全刷新

与存储操作的结果相同,另外,如果还有其他课程记录由此集成管理,则这些记录会被禁用或被清除,因这些记录在上述数据馈送中不存在,除非其具有与集成指定的相同数据源。按数据源进行完全刷新仅对集成数据源的记录进行操作。

了解详细信息

SIS 框架概述

快照平面文件标题描述

快照平面文件数据格式

快照平面文件自动化