参照标签

参照标签用于设置参照视表过滤器的参照条件。 可以设置多个参照条件。

功能描述
参照条件一览表 参照条件和对应每个参照条件的参照用视表显示将以列表显示。
参照条件选中时,该参照条件的设置条件就会显示在属性区域。 没有参照条件时,则不能使用属性区域。
I/O用视表标签中设置最初的参照用视表时会自动加了参照条件。 不过,当输入用视表的优先于参照用视表设置时,则不会自动追加。
当没有参照条件时,即使输入用视表和参照用视表已经设置,也可以点击条件追加按钮进行追加参照条件。
参照条件名 显示参照条件名。
通过双击参照条件名区域可修改参照条件名。
参照用视表名 显示每个参照条件的参照用视表名。
该标签中可以修改参照用视表。 使用I/O用视表标签可修改参照用视表。
点击按钮,则打开显示视表内容的视表预显对话框
以DB方式参照 当参照用视表是SQL DB连接源信息视表时, 选中该复选框,每当参照时,可以用参照键值从SQL数据库中进行提取。
通常,该复选框是不选中的。但是通过选中它,可以提高执行速度,或均衡机器的负载。
不过,要选中该复选框还需要满足一些条件。 要获得详细信息,参照后面将介绍的数据库中执行参照过程的条件
抽取条件 显示使用参照条件的参照用视表的抽取条件(过滤目标记录的条件)。 未指定抽取条件时为空。
点击 按钮打开抽取条件的设定对话框可设置抽取条件。
对于相同的参照用视表,可以为每个参照条件指定不同的抽取条件。 为了为各个参照条件指定抽取条件,可以为每个参照条件的参照用视表指定抽取条件。
条件追加 追加新的参照条件。
如果在I/O用视表标签中未设置输入用视表和参照用视表,则该按钮不可用。
条件删除 删除选中的参照条件。
属性 显示输入用视表和参照用视表。 在参照用视表中,在表格栏的左侧有一个复选框。
参照条件一览表将显示选中参照条件的参照关系。 当参照条件一览表中没有参照条件时,不能操作属性区域。 参照条件一览表为空时,使用条件追加追加参照条件。
如果参照用视表表格栏被拖放到要与输入用视表匹配的表格栏,则参照关系被设置。 参照用视表表格栏称为"参照键",在其中设置了参照关系。 在参照关系中,输入用视表和参照键表格栏之间将显示一条带箭头的连线。 如果从输入用视表的输入记录读取了参照视表过滤器,则它根据以下条件来提取参照记录。 在参照用视表中, 参照记录必须与输入表格栏值匹配,该表格栏值已在参照关系中定义了参照键值。 上述参照记录的提取称为"参照"。
如果参照用视表表格栏复选框被选中,则可以获得选中参照记录的表格栏值。 复选框被选中的表格栏称为"参照表格栏"。 在表格栏配置标签输入值表格栏中,每个参照表格栏可以显示参照表格栏,并可像输入表格栏一样输出表格栏。 在表格栏配置中, 参照表格栏将以 "LookupConditionName.LookupViewName.LookupColumnName"的格式显示。 所有参照用视表表格栏都可以不选中复选框(相当于没有参照表格栏)。 这种情况下,不能获得参照表格栏值。 不过,可以检验所有参照记录是否与参照关系中定义了参照键值的输入表格栏值匹配。 如果不一致时的处理设置为"出错处理"且不一致的记录读取自输入用视表,则视表过滤器将异常结束。 类似的,如果不一致时的处理设置为"输出至拒收用视表",则不一致的记录将被忽略。不过,没有参照表格栏时,将不一致时的处理设置为"值代入"将不起作用。 没有参照表格栏时,由于输出"不匹配记录的代入值"没有目的地,因此不一致的记录将直接会被处理。
不一致时的处理 指定参照失败时(也就是说,输入值与参照键值匹配的参照记录不存在,或从参照用视表提取记录失败)的处理过程。
出错处理
视表过滤器非正常结束。
输出至拒收用视表
输入记录被写入拒收用视表文件。
值代入
代入值的设定对话框设置代入值。
拒收用视表 不一致时的处理设置为"输出至拒收用视表"时,指定视表用于拒收用视表。
输入用视表和拒收用视表必须是相同配置的视表
不一致时的处理设置为"输出至拒收用视表"后, 如果未设置该视表,则要写入拒收用视表的数据将不能输出。 换言之,即使不匹配,也不会返回错误。而是忽略不匹配的输入记录,并继续下一条记录。
不一致时的处理设置为"输出至拒收用视表"而又没有参照条件时,则不能设置拒收用视表。 如果已经作了设定,则在作业校验时将返回一个错误。
视表预显 视表预显对话框显示在拒收(Reject)用视表的设定对话框中设置的视表内容。
拒收视表设定 打开拒收(Reject)用视表的设定对话框。 设置的视表名将显示在左边。
Commit方法 点击该按钮则打开数据保证(COMMIT)方法设定对话框
设置的数据保证(COMMIT)方法将显示在数据保证(COMMIT)方法按钮的右侧。


基本操作

基本操作借助快速指南中使用的"Personnel Information"视表进行描述。

参照快速指南的步骤3:创建输入用视表,创建输入用视表"Personnel Information"。
要创建输出用视表和拒收用视表,复制输入用视表,创建两个视表并将它们分别重命名为"Lookup Result"和"Unmatched"。 在视表属性对话框中,将"Lookup Result"的"Gender"表格栏的精度改为"6",并对视表的模式或文件名作适当修改。
包含以下内容的"Gender Master"视表另外提供作为参照用视表。

举例:将"Personnel Information"中的"Gender"表格栏替换为"Gender Master"中其"Gender Code"表格栏值匹配的"Gender"表格栏,输出至"Result of Lookup"视表。 若无匹配值,则输出至"Unmatched"视表。

  1. 首先在参照视表过滤器属性对话框的 I/O用视表标签下, 将"Personnel Information"设置为输入用视表, "Lookup Result"设置为输出用视表, "Gender Master"设置为参照用视表。
  2. 参照标签设置参照条件。
    1. 若先指定了输入用视表,然后在I/O用视表标签指定了参照用视表,则在参照条件一览表中将显示名为"参照条件 1"的参照条件。
      参照条件一览表为空,则点击条件追加按钮,在参照条件一览表追加一个新的参照条件。 虽然参照条件名处于中编辑状态,但其缺省名显示为"参照条件 1"。
    2. 先确定 "如何获得特定的表格栏和从哪个参照用视表获得"。 本例中,"Gender"将从Gender Master中获取。
      属性中显示的参照用视表中,将在表格栏左侧出现一个复选框,用于选中要获取的表格栏("Gender"表格栏)。 在表格栏配置标签中,它成为输入值,该值需要设置为对输出表格栏的"参照表格栏"。
    3. 确定 "要形成何种参照关系类型来获取数据?"。 "Gender Master"中的"Gender Code"表格栏值必须与"Personnel Information"中的"Gender"表格栏值匹配时,才能获取数据。
      属性中显示的"Gender Master"的"Gender Code"表格栏拖放至"Personnel Information"的"Gender"表格栏。
    4. 当"Personnel Information"中的"Gender"值在"Gender Master"中不存在时, 在不一致时的处理中选择"输出至拒收用视表"进行输出不一致的记录的拒收用视表。
      点击拒收视表设定按钮并打开 拒收(Reject)用视表的设定对话框。 将"不匹配的"视表指定为拒收用视表。

  3. 接下来,在表格栏配置标签中定义如何将特定表格栏数据传送到输出表格栏。
    除了"Gender"表格栏,使用相同的名称从输入用视表表格栏传送到输出用视表表格栏是没问题的。 先使用自动分配按钮为输入用视表的所有表格栏设置传送,然后再设置参照表格栏"Gender"的传送。
    1. 通过将输入用视表拖放至输出用视表可创建一个参照视表过滤器,表格栏配置变为自动分配状态。
      若未进行自动分配,则点击表格栏配置中左上角单元格,选中所有表格栏后点击自动分配按钮。
    2. 点击输入值区域上面的参照条件"参照条件 1"。
    3. 输入值区域的下面部分,第2步中参照标签操作过程中"Gender Master"的"Gender"表格栏的复选框显示为选中状态。
    4. 如下图所示,将"Gender Master"中的"Gender"拖放至输出用视表的"Gender"。
      如果设置了参照用视表表格栏,则在该表格栏的参照单元格中将显示一个标记。

根据上例的描述,可以实现"从gender master中获得gender code。若无效,则写入拒收用视表"。


补充说明
多个参照条件

可以加入多个参照条件。
这用于存在两个参照用视表,并将其看作一个参照用视表的场合。 在每个键中设置参照条件,以便使用各自的键来获取参照用视表表格栏。

举例:通过参照具有两种类型的键(如客户码Customer code和客户终端码Client code)的"enterprise master"视表,根据输入用视表的客户码(Customer code)和客户终端码(Client code)来获取企业名(enterprise name)。

Enterprise Master:


输入用视表:


参照条件 1:


参照条件 2:


输出用视表:


这样,通过分别为客户码(Customer code)和客户终端码(Client code)设置参照条件,可以从各自的编码获得企业名称 (enterprise name)。 如果在参照设定中作了临时设置, 由于 "Customer code = 001"和"Client code = BB"两条记录在enterprise master中不存在,因此无法得到企业名称(enterprise name)。


数据库中执行参照过程的条件