WSDL ファイルまたは JSON スキーマに可変サイズの (一般的には無制限の) 配列がある場合、特にそのような配列が入れ子になっていると、生成されるサービスまたはクライアントのインターフェイス構造のサイズが大きくなることがあり、コンパイラの制限を超えることもあります。解決方法は、このような可変サイズの配列を実行時に動的に割り当てるように配列処理を構成することです。動的割り当てを行うように可変長配列が指定されている場合、生成されるメインまたは外側のインターフェイス構造に可変長配列は含まれません。代わりに、COBOL ポインターを使用して、配列があるメモリ内の個別の領域が示されます。配列のサイズは、COBOL ポインターの直前にある数値フィールドによって示されます。[Generate Web Service] ダイアログ ボックスの [Inline-Array-Size-Limit] フィールドでは、可変長配列を動的割り当てで個別の構造として生成する最小サイズとして、0 (ゼロ) から 32767 の数値を指定できます。たとえば、Inline-Array-Size-Limit のデフォルト値 0 (どの配列も動的に割り当てないことを意味する) を使用している場合に、生成されたサービスまたはクライアント プログラムとコピーブックが、実用的でないほど大きいときや、コンパイルできないときは、[Inline-Array-Size-Limit] を 1 または 2 に設定して生成を行ってみてください。詳細については、「[Generate Web Service] ダイアログ ボックス」を参照してください。
<element name="in_0_5" minOccurs="1" maxOccurs="5"> <simpleType> <restriction base="string"> <length value="8"/> </restriction> </simpleType> </element>
{ "in_0_5": { "type": "array", "maxItems": 5, "minItems": 1, "items": { "type": "string", "maxLength": 8 } } }
05 in-0-5-occurs pic 9(9) comp-5. 05 in-0-5 pic x(8) occurs 1 to 5 count in in-0-5-occurs of op1 of op1-input-parms.
05 in-0-5-occurs pic 9(9) comp-5. 05 in-0-5-cont0001 pointer.
配列自体は個別のグループ構造内に生成されます。
01 cont0001-in-0-5. 03 in-0-5 pic x(8) occurs 0 to 1 count in in-0-5-occurs of op1 of op1-input-parms.