次の方法で共有


COBOL で REDEFINES を使用する方法

トランザクション インテグレーター (TI) プロジェクトの COBOL インポート プロセスは、データ記述エントリの REDEFINES 句を認識し、再定義されたエントリと再定義されたエントリを正しく関連付けます。 転送されるデータを表すエントリとして、再定義または再定義する句のいずれかを選択する必要があります。

再定義エントリは、再定義されたエントリよりも少ないスペースを使用できます。 再定義されたエントリよりも小さい再定義エントリを選択した場合、TI Project は自動的にフィラーを追加し、データがホストに送信されるときにデータの説明が正しくオーバーレイされるようにします。 再定義エントリが複数のフィールドを持つテーブルを表す場合、最後のフィールドにはフィラーが含まれます。

次の 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  
  

FILLER は、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  

参照

Filler