数据导入和导出作业概览

要创建和管理数据导入和导出作业,请使用数据管理工作区。 默认情况下,数据导入和导出流程为目标数据库中的每个实体创建一个暂存表。 通过暂存表可以在移动数据之前验证、清理或转换数据。

注释

本文假定您熟悉数据实体

数据导入/导出流程

以下是导入或导出数据的步骤。

  1. 在完成以下任务后创建导入或导出作业:

    • 定义项目类别。
    • 确定要导入或导出的实体。
    • 设置作业的数据格式。
    • 给实体排序,以便以合理的顺序在逻辑组中处理这些实体。
    • 确定是否使用暂存表。
  2. 验证源数据和目标数据是否正确映射。

  3. 验证您的导入或导出作业的安全性。

  4. 运行导入或导出作业。

  5. 查看作业历史纪录,验证作业是否按预期运行。

  6. 清除暂存表。

本文的其余章节提供有关流程的每个步骤的详细信息。

纸币

要刷新“数据导入/导出”窗体以查看最新进度,请使用窗体刷新图标。 不建议浏览器级别的刷新,因为它会中断所有未批量运行的导入/导出作业。

创建导入或导出作业

可以一次性运行或分多次运行数据导入或导出作业。

定义项目类别

我们建议您花时间为导入或导出作业选择合适的项目类别。 项目类别有助于管理相关作业。

确定要导入或导出的实体

您可以将特定实体添加到导入或导出作业或选择一个要应用的模板。 模板使用一个实体列表填充一个作业。 给作业命名并保存作业后,应用模板选项可用。

设置作业的数据格式

选择一个实体后,必须选择要导出或导入的数据的格式。 使用数据源设置磁贴定义格式。 源数据格式是类型文件格式行分隔符列分隔符的组合。 还有其他属性,但这些属性是需要了解的关键属性。 下表列出了有效组合。

文件格式 行/列分隔符 XML 样式
Excel Excel -不适用-
XML -不适用- XML 元素 XML 属性
分隔,固定宽度 逗号、分号、制表符、竖线、冒号 -不适用-

纸币

如果文件格式选项设置为分隔,则必须为行分隔符列分隔符文本限定符选择正确的值。 请确保您的数据不包含用作分隔符或限定符的字符,因为这可能会在导入和导出过程中导致错误。

注释

对于基于 XML 的文件格式,请确保仅使用合法字符。 有关有效字符的更多信息,请参阅 XML 1.0 中的有效字符。 XML 1.0 不允许使用除制表符、回车和换行之外的任何控制字符。 非法字符的示例包括方括号、大括号和反斜杠。

要导入或导出数据,请使用 Unicode,而不是特定代码页。 这将帮助提供最一致的结果并消除数据管理作业因包含 Unicode 字符而失败的情况。 使用 Unicode 的系统定义的源数据格式在源名称中都会有 Unicode。 通过在区域设置选项卡中选择 Unicode 编码 ANSI 代码页作为代码页来应用 Unicode 格式。为 Unicode 选择以下代码页之一:

代码页 显示名称
1200 Unicode
12000 Unicode (UTF-32)
12001 Unicode (UTF-32 Big-Endian)
1201 Unicode (Big-Endian)
65000 Unicode (UTF-7)
65001 Unicode (UTF-8)

有关代码页的更多信息,请参阅代码页标识符

给实体排序

实体可以在数据模板或导入和导出作业中排序。 运行的作业包含多个数据实体时,必须确保数据实体的序列正确。 给实体排序的主要目的是为了解决实体中的任何功能依赖项。 如果实体不具有任何功能依赖项,可以计划并行导入或导出。

执行单元、级别和序列

执行单元、执行单元中的级别以及实体序列有助于控制导出或导入数据的顺序。

  • 不同执行单元中的实体并行处理。
  • 在每个执行单元中,具有相同级别的实体并行处理。
  • 在每个级别中,根据实体在该级别中的序列号处理实体。
  • 处理完一个级别后,将处理下一个级别。

重新排序

在以下情形中,您可能想要对实体重新排序:

  • 如果只有一个数据作业用于您的所有更改,可以使用重新排序选项来优化整个作业的执行时间。 在这些情况下,您可以使用执行单元表示模块,用级别表示模块中的功能区域,用序列表示实体。 使用此方法可以并行处理不同模块,但也仍然能在一个模块中按顺序处理。 为了帮助保证成功完成并行操作,必须考虑所有依赖项。
  • 如果使用多个数据作业(例如,一个模块使用一个作业),可以使用排序来影响实体的级别和顺序,以获得最佳执行。
  • 如果没有任何依赖项,可以在不同执行单元对实体排序,以最大程度地进行优化。

选择多个实体时,重新排序菜单可用。 可以基于执行单元、级别或顺序选项重新排序。 您可以设置增量以对所选实体重新排序。 为每个实体选择的单位、级别和/或序列号按指定的增量更新。

排序

用户可以使用排序依据选项按顺序查看实体列表。

截断

对于导入项目,可在导入前选择截断实体中的记录。 如果必须将记录导入一套干净的表中,截断很有用。 默认情况下,此设置已关闭。

验证源数据和目标数据是否正确映射

映射是同时适用于导入和导出作业的一项功能。

  • 在导入作业情况下,映射描述源文件中的哪些列成为暂存表中的列。 因此,系统可以确定源文件中的哪些列数据必须复制到暂存表中的哪一列。
  • 在导出作业情况下,映射描述暂存表(即源)中的哪些列成为目标文件中的列。

如果暂存表和文件中的列名称匹配,则系统自动基于名称建立映射。 但是,如果名称有差异,则不会自动映射列。 在这些情况下,必须在数据作业中的实体上选择查看映射选项,以完成映射。

有两个映射视图:映射可视化,即默认视图,以及映射详细信息。 红色星号 (*) 标识实体中的任何必填字段。 必须映射这些字段后才能处理实体。 处理实体时,可以按需要取消其他字段的映射。 要取消字段映射,选择实体列或列中的字段,然后选择删除选择。 选择保存以保存更改,然后关闭页面以返回项目。 导入后,您可以使用相同的流程编辑从源到暂存的字段映射。

通过选择生成源映射可以在页面上生成映射。 生成的映射表现地类似于自动映射。 因此,您必须手动映射所有未映射的字段。

数据映射。

验证您的导入或导出作业的安全性

数据管理工作区的访问权限可能受到限制,因此非管理员用户可能仅可访问特定的数据作业。 对数据作业的访问权限暗示着对该作业的执行历史记录的完全访问权限和对暂存表的访问权限。 因此,您必须确保在创建数据作业时采取适当的访问权限控制。

按角色和用户保护作业安全

使用适用的角色菜单将作业限制到一个或多个安全角色。 仅这些角色的用户具有该作业的访问权限。

您还可以将该作业限制到特定用户。 当您按用户而不是角色保护作业安全时,如果有多个用户分配到角色,则具有更多的控制性。

数据作业在性质上是全局的。 因此,如果在法人中创建和使用数据作业,该作业将在系统中的其他法人中可见。 此默认行为可能在有些应用方案中优先。 例如,使用数据实体导入发票的组织可能提供一个集中发票处理团队负责管理组织中的所有部门的发票错误。 在此方案中,它有助于集中发票处理团队获得所有法人的发票导入作业的访问权限。 因此,从一个法人的角度看,默认行为满足要求。

但是,组织可能希望每个法人各有一个发票处理团队。 在这种情况下,一个法人中的团队应仅具有它自己的法人的发票导入作业的访问权限。 为了满足此要求,您可以使用数据作业内的适用的法人菜单在数据作业上配置基于法人的访问权限控制。 配置完成后,用户仅可以看到他们当前分配的法人中可用的作业。 若要查看其他法人的作业,用户必须切换到该法人。

可同时按角色、用户和法人保护作业安全。

运行导入或导出作业

在定义作业后,您可以选择导入导出按钮运行一次作业。 若要设置重复执行的作业,请选择创建重复性数据作业

注释

可通过选择导入导出按钮运行导入或导出作业。 本操作会计划批处理作业仅运行一次。 如果由于批处理服务上的负载而限制了批处理服务,则作业可能不会立即执行。 也可以通过选择立即导入立即导出同步运行作业。 之间立即启动作业,因此在因为限制而无法启动时,批处理非常有用。 也可以作业安排在以后执行。 这可以通过选择批量运行选项完成。 批处理资源可能受到限制,因此可能无法立即启动批处理作业。 建议使用批处理选项,因为它还有助于处理需要导入或导出的大量数据。 可安排对特定批处理组运行批处理作业,这样就可以加强负载平衡角度的控制。

验证该作业按预期运行

作业历史记录可用于导入和导出作业的故障排除和调查。 历史作业运行按时间范围进行组织。

作业历史记录范围。

每次作业运行提供以下详细信息:

  • 执行详细信息
  • 执行日志

执行详细信息显示作业处理的每个数据实体的状态。 因此,您可以迅速找到以下信息:

  • 处理了哪些实体。
  • 对于实体,处理成功的记录数量和处理失败的记录数量。
  • 每个实体的暂存记录。

您可以将暂存数据下载到一个文件用于导出作业,或将其下载为包用于导入和导出作业。

您还可以从执行详细信息打开执行日志。

并行导入

为了加快数据导入,如果实体支持并行导入,可以启用导入文件的并行处理。 要为实体配置并行导入,必须遵循以下步骤。

  1. 转到系统管理 > 工作区 > 数据管理

  2. 导入/导出部分,选择框架参数磁贴打开数据导入/导出框架参数页。

  3. 实体设定选项卡上,选择配置实体执行参数打开实体导入执行参数页。

  4. 设置以下字段以为实体配置并行导入:

    • 实体字段中,选择相应实体。 如果实体字段为空,并且实体支持并行导入,空值将用作所有后续导入的默认设置。
    • 导入阈值记录数字段中,输入要导入的阈值记录数。 这确定线程要处理的记录数。 如果文件有 10K 条记录,则记录计数为 2500 条,任务计数为 4 条,这意味着每个线程处理 2500 条记录。
    • 导入任务数字段中,输入导入任务的数量。 此数量不能超过在系统管理 > 服务器配置中为批处理分配的最大批处理线程数。

作业历史记录清理

默认情况下,超过 90 天的作业历史记录条目和相关暂存表数据将被自动删除。 数据管理中的作业历史记录清理功能可用于配置定期清理执行历史记录,将保留期配置为低于此默认值。 此功能取代了之前的暂存表清理功能,后者已被弃用。 清理过程将清理下面的表。

  • 所有暂存表

  • DMFSTAGINGVALIDATIONLOG

  • DMFSTAGINGEXECUTIONERRORS

  • DMFSTAGINGLOGDETAIL

  • DMFSTAGINGLOG

  • DMFDEFINITIONGROUPEXECUTIONHISTORY

  • DMFEXECUTION

  • DMFDEFINITIONGROUPEXECUTION

执行历史记录清理功能可从数据管理 > 作业历史记录清理访问。

计划编制参数

计划清理过程时,必须指定以下参数以定义清理条件。

  • 保留历史记录 的天数 - 本设置用于控制要保留的执行历史记录量。 历史记录按天数指定。 当清理作业计划为定期批处理作业时,本设置就像一个不断移动的窗口,在删除其余部分的同时,始终保留指定天数的历史记录。 默认值为七天。

  • 执行作业 的小时数 - 根据要清除的历史记录的数量,清除作业的总执行时间可能从几分钟到几小时不等。 本参数必须设置为作业执行的小时数。 清理作业执行指定的小时数后,该作业将存在,并在下次运行时根据定期计划恢复清理。

    可以使用此设置指定最大执行时间,方法是为作业的必须运行小时数设置最大限额。 清理逻辑按照以时间排列的顺序一次检查一个作业执行 ID(最早历史记录最先检查),以清理关联的执行历史记录。 当剩余执行持续时间在指定持续时间的最后 10% 内时,它将停止选取新的执行 ID 进行清理。 在某些情况下,清理作业会继续在指定的最长时间之后进行。 本持续时间很大程度上取决于在达到 10% 阈值之前启动的当前执行 ID 要删除的记录数。 必须完成已开始的清理工作,以确保数据的完整性,这意味着虽然超过了指定的限额,仍将继续清理。 完成后,将不选取新的执行 ID,清理作业完成。 下次计划清理作业时,将选取因为执行时间不足导致未清理的剩余执行历史记录。 此设置的默认值(也是最小值)设置为 2 小时。

  • 定期批处理 - 清理作业可以一次性手动执行运行,也可以安排批量定期执行。 可以使用后台运行设置来计划批处理,这是设置的标准批处理。

纸币

如果不使用作业历史记录清理功能,超过 90 天的执行历史记录仍会被自动删除。 除了自动删除之外,还可以运行作业历史记录清理。 确保将清理作业计划为定期运行。 如上所述,在任何清理执行中,该作业只会在提供的最大小时数内清除尽可能多的执行 ID。

作业历史记录清理和存档

作业历史记录清理和存档功能取代了以前版本的清理功能。 本节解释这些新功能。

清理功能的主要变化之一是使用系统批处理作业来清理历史记录。 使用系统批处理作业允许财务和运营应用自动安排清理批处理作业,并在系统准备就绪时立即运行。 不再需要手动安排批处理作业。 在此默认执行模式下,批处理作业将从午夜开始每小时执行一次,并将保留最近七天的执行历史记录。 清除的历史记录将存档,以备将来检索。 从版本 10.0.20 开始,此功能始终开启。

清理过程的第二个变化是所清除执行历史的存档。 清理作业会将已删除的记录归档到 DIXF 用于常规集成的 Blob 存储中。 归档的文件将采用 DIXF 软件包格式,并且在 blob 中保留七天,在此期间可供下载。 可在参数中将归档文件的七天这一默认寿命更改为最大 90 天。

更改默认设置

该功能当前处于预览版阶段,必须通过启用外部测试版 DMFEnableExecutionHistoryCleanupSystemJob 明确将其打开。 还必须在功能管理中开启暂存清理功能。

要更改存档文件寿命的默认设置,请转到数据管理工作区,然后选择作业历史记录清理。 将数据包在 blob 中的保留天数设置为 7 与 90(含)之间的值。 此更改将在进行此更改后创建的存档中生效。

下载存档的数据包

该功能当前处于预览版阶段,必须通过启用外部测试版 DMFEnableExecutionHistoryCleanupSystemJob 明确将其打开。 还必须在功能管理中开启暂存清理功能。

要下载存档的执行历史记录,请转到数据管理工作区,然后选择作业历史记录清理。 选择软件包备份历史记录打开历史记录窗体。 此窗体显示所有已归档数据包的列表。 可通过选择下载数据包选择和下载存档。 下载的包采用 DIXF 包格式,包含以下文件:

  • 实体暂存表文件
  • DMFDEFINITIONGROUPEXECUTION
  • DMFDEFINITIONGROUPEXECUTIONHISTORY
  • DMFEXECUTION
  • DMFSTAGINGEXECUTIONERRORS
  • DMFSTAGINGLOG
  • DMFSTAGINGLOGDETAILS
  • DMFSTAGINGVALIDATIONLOG

使用 xslt 对复合实体数据进行排序

本功能允许您导出复合实体并应用 xslt 文件对 xml 文件中的数据进行排序。

要使用 xslt 对复合实体数据进行排序,请跟随以下步骤。

  1. 创建 xslt 文件以 XML 格式对数据进行排序。 例如,如果您有现成实体采购订单组合 V3 的 XSLT 文件,则可以按 INVOICEVENDORACCOUNTNUMBER 排序 PURCHPURCHASEORDERHEADERV2ENTITY 的 XML 属性格式数据,并按 LINENUMBER 排序 PURCHPURCHASEORDERLINEV2ENTITY。

<xsl:stylesheet version='1.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
   <xsl:template match="/*"> 
        <xsl:copy> 
            <xsl:apply-templates select="@*" /> 
<xsl:apply-templates> 
     <xsl:sort select="@INVOICEVENDORACCOUNTNUMBER" data-type="text" order="ascending" /> 
</xsl:apply-templates> 
        </xsl:copy> 
   </xsl:template>	 
   <xsl:template match="PURCHPURCHASEORDERHEADERV2ENTITY"> 
           <xsl:copy> 
<xsl:apply-templates select="@*"/> 
    <xsl:apply-templates select="*"> 
        <xsl:sort select="@LINENUMBER" data-type="number" order="descending"/> 
   </xsl:apply-templates> 
          </xsl:copy> 
    </xsl:template> 
    <xsl:template match="@*|node()"> 
           <xsl:copy> 
<xsl:apply-templates select="@*|node()"/> 
           </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 

  1. 转到 数据管理 工作区。
  2. 从数据导出项目列表中,选择具有 XML 数据源的项目并选择 查看地图”。
  3. 选择 查看任何实体的映射
  4. 转到 转换 ”选项卡
  5. 选择 新建 ”,然后上传在步骤 1 中创建的 XSLT 文件。