正如上一部分中提到的那样,您可以指定多个有关“EDI 交换”的交换属性。 例如,可以更改系统提供的包络概要文件, 可以定义用于某些连接的特定包络,可以设置分配给交换的不同部分的控制编号, 并且可以设置连接概要文件,这样,同一个交换可以用不同方法传递。本部分将描述这些任务。
封包程序是一个组件, 它收集要发送到参与者的事务集,将它们封装在包络中,然后进行发送。 您可对封包程序进行调度(或者接受缺省调度),以向 WebSphere Partner Gateway 指出您何时要封包程序查找等待发送的事务。也可以更新锁定时间、队列时间和批处理方式的缺省值。
“文档管理器”的每个实例都有自己的封包程序。 如果系统上安装了两个“文档管理器”,那么您就有两个封包程序。因此,可能有两个(或更多)封包程序实例试图轮询等待封包的事务。为确保封包程序正确地轮询所指定的事务,要使用锁定。如果调用多个封包程序,锁定可以确保只有一个封包程序轮询并处理所提供的事务。封包程序可以同时轮询,但必须处理不同事务。
应对锁定设置时间限制。封包程序实例持有锁定的缺省值是 240 秒。
如果封包程序必须等待锁定,则它会排入队列中。最大的队列时间(封包程序应该等待的时间长度)是 740 秒。
通常,您无需更改任何锁定缺省值。
根据您为文档类型建立的分离器处理程序,分离到达某一文件中的多个文档。(配置分离器处理程序是定义目标的一部分,在修改配置点中进行了描述。)分离器处理程序的一个属性为 BCG_BATCHDOCS。当 BCG_BATCHDOCS 被设置为“开”(缺省值)时,分离器会在分离文档之后将批处理标识添加到文档中。
封包程序具有针对批处理方式的属性,该属性与 BCG_BATCHDOCS 属性有关。如果批处理标识被分配给单独的文档,且您接受批处理方式的缺省值(开),则封包程序会确保处理到达同一个文件中的所有文档, 然后对它们进行封包,进行发送,以确保事务被一起封包。例如,假设五个 XML 文档到达同一个文件中。XML 文档被转换成 EDI 事务,并且将要传递到同一个接收方。 在只转换了三个文档之后,封包程序就根据调度安排,开始其事务进行轮询。如果选择批处理方式,则封包程序不处理(封包)三个已就绪的事务。 而是等待所有五个事务完成处理之后,再进行封包和发送。事务被封包在同一包络中,除非适用的 EDI 标准阻止这样做。
要修改封包程序的任何缺省值,请执行下列步骤:
包络概要文件确定为包络的特定元素设置的值。将包络概要文件分配给文档流定义包络概要文件属性中的 EDI 事务。 WebSphere Partner Gateway 为每个受支持的标准(X12、EDIFACT 或 UCS)提供预定义的包络概要文件。 您可以直接使用这些预定义的包络,修改它们或将它们复制到新的包络概要文件中。在修改缺省值描述了修改包络概要文件或创建包络概要文件的步骤。
对于包络标准中的每个元素,包络概要文件都有一个字段。 概要文件为构建事务集、消息、功能组和交换的头或尾段提供字面值或常量数据。 您只提供需要填充的值以及另一个源未提供值的值。
字段名旨在使交叉引用更为便捷。 例如,字段 UNB03 是 UNB 段中的第三个数据元素。
如包络属性中所述,在任何地方设置的属性都优先于在包络概要文件中设置的值。 文档流定义相关属性或映射中的一些属性可能会被覆盖。
可以在配置过程中在多个不同点设置包络属性,也可以在与文档关联的转换映射中设置它们。 例如,Data Interchange Services 客户机映射专家可以在定义映射时指定 CtlNumFlag 属性。也可以将该属性设置为包络概要文件的一部分(在按事务标识划分的控制编号字段中)。 在转换映射中设置的任何属性都会覆盖在“社区控制台”设置的相关值。例如,如果在转换映射中将 CtlNumFlag 设置为 N(否),且在按事务标识划分的控制编号字段中输入 Y(是)的值,则使用 N 值。
可以在协议级别上设置其他包络概要文件(从“管理文档流定义”页面或从与参与者关联的 B2B 能力页面), 或者可以将它们设置为连接的一部分。下面的列表概括了优先顺序:
有关转换映射属性及其关联的“社区控制台”属性的列表,请参阅Data Interchange Services 客户机属性。
包络概要文件属性提供了一个表, 该表显示用于每个 EDI 标准包络属性的缺省值,如果您未在概要文件中输入值或未创建概要文件,则使用这些缺省值。请确保您正使用的包络概要文件提供了系统运行时未提供的任何强制元素。
要设置包络概要文件,请执行下列步骤:
您可以添加下列字段的值:
对于所有三个标准,常规包络概要文件的字段都是相同的,除了 EDIFACT 有一个附加字段:为 EDI 创建组。
如果更改了“常规”页,请单击保存。
如果更改了“交换”页,请单击保存。
该页面上的字段通常定义组的发送方和接收方。
如果更改了“组”页,请单击保存。
如果更改了“事务”页,则单击保存。
定义包络概要文件之后,该概要文件在“包络概要文件”列表上列出。从列表中,您可以选择概要文件, 然后单击在何处使用图标,以确定使用概要文件的连接。
您可以将连接概要文件与解包的事务一起使用,也可以与封包程序创建的 EDI 交换一起使用。 对于事务,连接概要文件确定在对事务进行解包之后如何处理它。 对于交换,连接概要文件确定如何传递交换。
下表显示了连接概要文件属性、它们在“连接概要文件详细信息”页面上的相应字段名以及它们应用于交换还是事务:
属性 | 字段名 | EDI 交换 | EDI 事务 |
---|---|---|---|
连接概要文件限定符 1 | 限定符 1 | X | |
交换用途指示符 | EDI 用法类型 | X | |
组应用程序发送方标识 | 应用程序发送方标识 | X | |
组应用程序接收方标识 | 应用程序接收方标识 | X | |
组应用程序密码 | 密码 | X |
当 EDI 交换进入 WebSphere Partner Gateway 时,第一个操作通常是将交换解包成各个单独的事务。 在创建事务时,解包操作在事务元数据中设置交换用途指示符和组信息(组应用程序发送方标识、组应用程序接收方标识和组应用程序密码)。然后,WebSphere Partner Gateway 在每个事务自己的工作流中对其重新处理。
假设有两个相同类型(例如,850)的事务, 需要根据它们所在的组或其交换用途指示符的值进行单独处理。例如,如果用途指示符是生产(P),则您可能要使用一个映射;如果用途指示符为测试(T),则您可能要使用第二个映射。该 850 事务需要两个相似的连接,唯一区别就是一个连接使用映射 A,另一个连接使用映射 B。
因为事务是相同的(它们有相同的源和目标参与者、包、协议和文档类型), 所以“文档管理器”需要一个方法来确定要使用哪个连接。 它通过将您设置的连接概要文件属性与事务元数据进行匹配,来做到这一点。 在本示例中,如果您创建两个连接概要文件(一个是(CPProduction),它的EDI 用途类型被设置为 P ,另一个是(CPTest),它的EDI 用途类型被设置为 T ,则“文档管理器”将用途指示符为 P 的事务与 CPProduction 概要文件匹配。然后,它就知道使用映射 A 来转换事务。
本部分中的示例使用了交换用途指示符属性,但您也可以使用组发送方应用程序标识、组接收方应用程序标识和组应用程序密码属性作为区分事务的要素。
例如,假设您的公司正从使用 VAN(无封装)或因特网(AS2 封装)进行迁移。 您需要 840(报价请求)事务以使用 VAN,以及需要 850(采购订单)事务以使用因特网。 您设置两个参与者连接,它们具有相同的源交换,但目标不同(一个是“无”封装,另一个是 AS2 封装)。连接概要文件帮助区分这两个连接。
设置交换的连接概要文件包含几个步骤。以下是您要为该示例创建两个连接概要文件执行的步骤:
封包程序使用参与者连接的“目标”端上的连接概要文件限定符 1 属性作为包络断点。因此,具有不同连接概要文件限定符 1 属性值的事务将被封包在不同的包络中。当您为事务设置不同的值时,封包程序不会将 840 和 850 事务封包在相同交换中。
当“文档管理器”查找连接时,会找到两个可能的连接,但使用的是具有匹配的连接概要文件的那个连接。
设置连接概要文件是可选的。如果将要为参与者交换的每种文档不需要有多个连接,可跳过本部分。
要设置连接概要文件:
名称和描述(如果输入了描述)将出现在“连接概要文件列表”页面上。
对于这些您要封包在某些交换包络中的事务,可以指定与具有相同属性限定符 1 值的连接概要文件对应的连接概要文件限定符 1 属性值。可以在文档流定义的协议级别设置连接概要文件限定符 1 属性(例如,通过单击对应的连接概要文件限定符 1 属性值,您可以在“管理文档流定义”屏幕上编辑 X12V5R1 协议的属性以指出使用哪个连接概要文件)。然后,当激活交换连接时,可通过单击连接概要文件按钮,然后从列表中选择概要文件来关联连接概要文件。
封包程序使用控制编号,为包络中的交换、组和事务提供唯一编号。 控制编号是为社区管理者和参与者建立的。 当交换文档时,还会为参与者对生成控制编号。
对于每个具有 EDI B2B 能力的参与者,控制编号都有一组种子初始化值。 当首次创建 EDI 交换,并在参与者对之间发送时,会使用这些值。初始化值应用于交换发送到的目标参与者。当文档从一个参与者发送到另一个参与者之后,会在“当前控制编号”页面上显示所使用最后几个编号。如果按事务标识划分的控制编号被设置为 Y,则对于指定的参与者对,可能会存在多个项。当存在某个项之后,可以将它用于生成新的控制编号。
作为控制编号初始化的一部分,您可以使用掩码来修改由封包程序创建的标准控制编号。掩码用于使控制编号基于交换或组控制编号。掩码描述如下所述。 使用您希望用于创建控制编号值的字节数替换编辑掩码中的 n。请参阅表 15以获取可用代码的描述:
代码 | 控制编号 | 描述 |
---|---|---|
G | 事务 | 事务控制编号与组控制编号相同。每个组只允许有一个事务。 |
Gn | 事务 | 组控制编号占用了 n 个字节。事务控制编号的其余部分用 0 填满其最大大小。每个组只允许有一个事务。 |
C | 组,事务 | 组或事务控制编号字段中的其余字节用于保存该参与者的控制编号。 |
V | 组,事务 | 使用递增值,这样,第一个组或事务的值为 1;第二个为 2;以此类推。 |
Vn | 事务 | 使用长度为 n 个字节的递增值,这样,第一个事务的值为 1;第二个为 2;以此类推。 |
GnC | 事务 | 组控制编号占用 n 个字节,事务控制编号字段中的其余字节用于保存控制编号。 剩下的位置数确定控制编号的最大值。例如,G5C 剩下 4 个位置;因些最大值是 9999。 控制编号从最大值到 1,循环往复。 |
GnV | 事务 | 组控制编号占用 n 个字节。对于事务控制编号字段中的其余字节, 使用递增值,这样,第一个事务的值为 1,第二个为 2,以此类推。 |
GnVm | 事务 | 组控制编号占用 n 个字节。对于事务控制编号字段中的其余字节(最多 m 个字节), 使用递增值,这样,第一个事务的值为 1,第二个为 2,以此类推。 |
I | 组,事务 | 组或事务控制编号应该与交换控制编号相同。交换只能有一个组,组或交换只能有一个事务。 |
In | 组,事务 | 交换控制编号占用 n 个字节。组或事务控制编号字段的其余部分是用 0 填充,直到其最大大小。 每个交换只能有一个组,每个组只能有一个事务。 |
InC | 组,事务 | 交换控制编号占用 n 个字节。组或事务控制编号字段中的其余字节用于保存控制编号。剩下的位置数确定控制编号的最大值。例如,I5C 剩下 4 个位置;因些最大值是 9999。 控制编号从最大值到 1,循环往复。 |
InV | 组,事务 | 交换控制编号占用 n 个字节。对于组或事务控制编号字段中的其余字节, 使用递增值,这样,第一个组或事务的值为 1,第二个为 2,以此类推。 |
InVm | 事务 | 交换控制编号占用 n 个字节。对于事务控制编号字段中的其余字节(最多 m 个字节), 使用递增值,这样,第一个事务的值为 1,第二个为 2,以此类推。 |
InGm | 事务 | 交换控制编号占用 n 个字节,组控制编号减去 m 个字节的最大值。如果 n 加上 m 大于 9,则组控制编号仅占用 9 - n 个字节。例如,使用 I4G6,交换占用 4 个字节。 |
InGmC | 事务 | 交换控制编号占用 n 个字节,组控制编号占用 m 个字节。事务控制编号字段中的其余字节用于保存控制编号。剩下的位置数确定控制编号的最大值。例如,I2G4C 剩下 3 个位置;因些最大值是 999。 控制编号从最大值到 1,循环往复。 |
InGmV | 事务 | 交换控制编号占用 n 个字节,组控制编号占用 m 个字节。对于事务控制编号字段中的其余字节, 使用递增值,这样,第一个事务的值为 1,第二个为 2,以此类推。 |
InGmVo | 事务 | 交换控制编号占用 n 个字节,组控制编号占用 m 个字节。对于事务控制编号字段中的其余字节(最多 o 个字节), 使用递增值,这样,第一个事务的值为 1,第二个为 2,以此类推。 |
要配置封包程序将使用的控制编号,请执行下列步骤:
对于在控制表中已经有数据的指定的参与者对,您可以更改控制编号生成过程。 您可以:
要确定哪些参与者分配了控制编号(并确定它们是什么编号),可使用“当前控制编号”功能部件。