事务集成器 (TI) 项目中的 COBOL 导入过程识别数据说明条目中的 REDEFINES 子句,并将重新定义条目与重新定义的条目正确关联。 必须选择一个已重新定义或正在重新定义的条款,作为表示将要传输数据的条目。
重新定义条目可以使用的空间小于重新定义的条目。 如果选择小于重新定义的条目的重新定义条目,TI 项目会自动添加填充,以便数据在发送到主机时正确覆盖数据说明。 如果重新定义项表示具有多个字段的表,则最后一个字段包含填充符。
以下 COBOL 示例显示了一个名为“REDEFINES”的子句。 在导入期间选择了重定义条款。
01 CUSTOMER-DATA.
05 CUSTOMER-ID PIC X(10).
05 CUSTOMER-ID-PARTS REDEFINES CUSTOMER-ID.
10 LOCATION PIC X(3).
10 NAME-ABREV PIC X(5).
导入的结果方法是:
CreateCustomerID(strLocation As String, strNameAbrev As String)
为此方法生成的 COBOL 为:
01 CREATECUSTOMERID-INPUT-AREA.
05 LOCATION PIC X(3). INPUT
05 NAME-ABREV PIC X(5). INPUT
05 FILLER PIC X(2). INPUT
填充器将添加到 CUSTOMER-ID 重新定义的区域。 当 FILLER 出现在发送或接收缓冲区的末尾时,出于性能原因,它不会被发送。
下面是调用此方法的 Visual Basic 代码示例:
Dim objCustomer As Object
Dim strLocation As String
Dim strNameAbrev As String
strLocation = "101"
strNameAbrev = "SPORT"
'create an instance of the invoicing object
On Error GoTo ErrorHandler1
Set objCustomer = CreateObject("Customer.Invoicing.1")
'invoke the CreateCustomerID method
On Error GoTo ErrorHandler2
objCustomer.CreateCustomerID strLocation, strNameAbrev