PCML の制約事項

PCML では、パラメーターおよび戻り値の型について、次の制約事項が適用されます。
  • 変更の始まりPCML では次のデータ型はサポートされません。
    • ポインター
    • プロシージャー・ポインター
    • 1 バイト整数
    変更の終わり
  • 数値で渡される戻り値およびパラメーターとして有効なのは、 4 バイト整数 (10i 0) のみです。
  • 可変長配列、および可変長サブフィールドを含むデータ構造はサポートされません。
  • *ENTRY PLIST のパラメーターとしてデータ構造を使用する場合、 またはプロトタイプされたパラメーターを LIKEDS で定義する場合は、 次の PCML 制約事項が適用されます。
    • データ構造内で、サブフィールドの重複は認められません。
    • サブフィールドは、正しい順序でコーディングしなければなりません。 つまり、各サブフィールドの開始位置は、直前のサブフィールドの終了位置の後ろでなければなりません。
    • サブフィールドとサブフィールドの間にギャップがある場合、 構造に対して生成される PCML は、 型 "char" の "_unnamed_1"、"_unnamed_2" などの名前のサブフィールドから構成されます。
  • RPG に、出力専用パラメーターの概念はありません。 CONST または VALUE がコーディングされていないパラメーターの使用法は、 "inputoutput" です。 inputoutput パラメーターの場合、ProgramCallDocument クラスは、 そのパラメーターの入力値が設定されていなければプログラムを呼び出すことができません。 パラメーターが本当に出力パラメーターの場合は、 PCML を編集して "inputoutput" を "output" に変更する必要があります。
上記制約条件のいずれかに違反するプログラムまたはモジュールで PCML を生成すると、 コンパイルは失敗します。 PCML は生成されますが、コメントとしてエラー・メッセージが含まれます。 例えば、パラメーターとして Date フィールドを使用すると、 そのパラメーターに対する PCML は次のようになります。
<data name="DATE" type="   " length="10" usage="input" />
<!-- Error: unsupported data type -->