Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 言語解説書


ACCEPT ステートメント

ACCEPT ステートメントは、指定された ID によって参照されるデータ域へデータまたはシステムの 関連情報を転送します。転送されてくるデータの編集やエラー・チェックは行われません。

データ転送

構文図を読む構文図をスキップする
フォーマット 1: データ転送 

>>-ACCEPT--ID-1--+-----------------+---------------------------><
                 '-FROM--+-簡略名-1-+-'   
                         '-環境名---'     

フォーマット 1 では、データは入力ソースから ID-1 が参照するデータ項目 (受け取り領域) へ転送されます。FROM 句を省略する場合は、システム入力装置が前提とされます。

プログラム中にオペレーターの介入が (特定のメッセージ、コード、 または例外標識を提供するために) 必要である例外状況では、フォーマット 1 が役立ちます。 オペレーターは、該当のメッセージが与えられ、それに応答する必要があります。

ID-1
受け取り領域。以下のようになります。
  • 英数字グループ項目
  • 国別グループ項目
  • USAGE DISPLAY、DISPLAY-1、または NATIONAL の基本データ項目

国別グループ項目は、国別カテゴリーの基本データ項目として処理されます。

簡略名-1
入力装置を指定します。簡略名-1 は、SPECIAL-NAMES 段落内で環境名と関連付ける必要があります。SPECIAL-NAMES 段落を参照してください。
  • システム入力装置

    データ転送の長さは入力装置上のレコードの長さと同じであり、その最大値は 32,760 バイトです。

    システム入力装置は、受け取り領域が満たされるか、または EOF になるまで読み取られます。受け取り領域の長さがシステム入力装置のレコード長の偶数倍ではない場合は、必要に応じて最終レコードが切り捨てられます。データが移動された後および受け取り領域が満たされる前に EOF に達すると、受け取り領域はその領域に適切な表現のスペースで埋められます。 データが受け取り領域へ移動される前に EOF に達した場合は、埋め込みは行われず、受け取り領域の内容は変更されません。各入力レコードは、直前の入力レコードと連結されます。

    入力レコードが、固定長フォーマットである場合は、入力レコード全体が使用されます。 末尾のブランクと先行ブランクを取り除く編集は行われません。

    入力レコードが可変長フォーマットの場合は、実際のレコード長を使用して、受信するデータの量が決められます。可変長フォーマットのレコードを使用している場合は、レコード定義語 (RDW) が、入力レコードの先頭から除去されます。実際の入力データだけが ID-1 に転送されます。

    ID-1 が参照するデータ項目が USAGE NATIONAL である場合には、変換も妥当性の検査も行わずにデータが転送されます。入力データは、UTF-16 フォーマットであると想定されます。

  • コンソール
    1. システム生成メッセージ・コードとその後に続く AWAITING REPLY リテラルが、 自動的に表示されます。

      入力メッセージの最大長は、114 文字です。

    2. 実行は一時中断されます。
    3. メッセージ・コード (項目 1 のコードと同じもの) がコンソールから入力されてシステムにより確認された後、ACCEPT ステートメントの実行が再開されます。 メッセージは、受け取り領域に移動されて PICTURE 節に関係なく、左揃えにされます。

      ID-1 が USAGE NATIONAL のデータ項目を参照する場合は、メッセージが ネイティブ・コード・ページ表現から国別文字表現に変換されます。 ネイティブ・コード・ページとは、ソース・コードのコンパイル時に CODEPAGE コンパイラー・オプションで指定されたコード・ページです。

      ACCEPT ステートメントは、次のいずれかが起こると終了します。

      • コンソールからデータを受信しなかった場合。例えば、オペレーターが ENTER キーを押した場合。
      • 受け取りデータ項目がデータで満たされた場合。
      • 114 文字未満のデータが入力された場合。

      114 バイトのデータを入力しても、また受け取り領域がデータでいっぱいにならない場合は、データ要求がさらにコンソールに出されます。

      114 文字を超えるデータが入力された場合、最初の 114 文字だけがシステムによって認識されます。

      受け取り領域が入力メッセージより長い場合、右端の文字位置は受け取り領域に適切な表現のスペースで埋められます。

      入力メッセージが受け取り領域より長い場合、受け取り領域の長さを超える部分の文字は切り捨てられます。

    HFS ファイルまたは stdin から ACCEPT 入力データを入手する方法については、 Enterprise COBOL プログラミング・ガイド」を参照してください。

環境名
入力データのソースを識別します。表 1に 示された名前の中から環境名 を指定できます。

装置が、LINE SEQUENTIAL ファイルの READ ステートメントで使われる装置と同じである場合、 結果は予想できません。

システム日付関連情報の転送

指定された概念上のデータ項目の DATE、DATE YYYYMMDD、DAY、DAY YYYYDDD、DAY-OF-WEEK、または TIME に含まれている システム情報は、ID-2 によって参照されるデータ項目へ転送することができます。この転送は、 CORRESPONDING 句を伴わない MOVE ステートメントの規則に従わなければなりません。MOVE ステートメントを参照してください。

構文図を読む構文図をスキップする
フォーマット 2: システム情報転送 

>>-ACCEPT--ID-2--FROM--+-DATE--+----------+-+------------------><
                       |       '-YYYYMMDD-' |   
                       +-DAY--+---------+---+   
                       |      '-YYYYDDD-'   |   
                       +-DAY-OF-WEEK--------+   
                       '-TIME---------------'   

ID-2
受け取り領域。以下のようになります。
  • 英数字グループ項目
  • 国別グループ項目
  • 以下のいずれかのカテゴリーの基本データ項目
    • 英数字
    • 英数字編集
    • 数字編集 (USAGE DISPLAY または NATIONAL)
    • 国別
    • 国別編集
    • 数字
    • 内部浮動小数点
    • 外部浮動小数点 (USAGE DISPLAY または NATIONAL)

国別グループ項目は、国別カテゴリーの基本データ項目として処理されます。

フォーマット 2 では 2 つのフォーマットの現在日付、すなわち、 システムによって随時更新される曜日または時刻を使用します。これは、 あるオブジェクト・プログラムがいつ実行されたのかを識別するのに役立ちます。また、フォーマット 2 は、ヘッダーやフッターに日付を付けるために使用することもできます。

現在の日付や時刻は、 日時の組み込み関数 CURRENT-DATE を使用してもアクセスできます。 CURRENT-DATE は 4 桁の年の値をもサポートしており、 追加情報を提供します (CURRENT-DATEを参照)。

DATE、DATE YYYYMMDD、DAY、DAY YYYYDDD、DAY-OF-WEEK、および TIME

概念上のデータ項目 DATE、DATE YYYYMMDD、DAY、DAY YYYYDDD、 DAY-OF-WEEK、および TIME には、 USAGE DISPLAY が暗黙的に指定されます。これらは概念上のデータ項目であるため、COBOL プログラムで記述すること はできません。

概念上のデータ項目の内容は、MOVE ステートメントの規則を使用して 受け取り領域へ移動されます。受け取り領域が USAGE NATIONAL の場合は、データは国別文字表現に変換されます。

DATE
暗黙の指定として PICTURE 9(6) になります。 DATEPROC コンパイラー・オプションが有効な場合は、 戻り値は暗黙の DATE FORMAT YYXXXX になり、ID-2 はこの日付フォーマットで定義されていなければなりません。

データ・エレメントのシーケンスは (左から右へ) 次のような内容になっています。

Two digits for the year
Two digits for the month
Two digits for the day

したがって、2003 年 4 月 27 日は 030427 となります。

DATE YYYYMMDD
これは暗黙の指定として PICTURE 9(8) になります。 DATEPROC コンパイラー・オプションが有効な場合は、 戻される値は暗黙の DATE FORMAT YYYYXXXX を持ち、ID-2 はこの日付フォーマットで定義されていなければなりません。

データ・エレメントのシーケンスは (左から右へ) 次のような内容になっています。

Four digits for the year
Two digits for the month
Two digits for the day

したがって、2003 年 4 月 27 日は 20030427 となります。

DAY
これは暗黙の指定として PICTURE 9(5) になります。 DATEPROC コンパイラー・オプションが有効な場合は、 戻される値は暗黙の DATE FORMAT YYXXX を持ち、ID-2 はこの日付フォーマットで定義されていなければなりません。

データ・エレメントのシーケンスは (左から右へ) 次のような内容になっています。

Two digits for the year
Three digits for the day

したがって、2003 年 4 月 27 日は 03117 となります。

DAY YYYYDDD
これは暗黙の指定として PICTURE 9(7) になります。 DATEPROC コンパイラー・オプションが有効な場合は、 戻される値は暗黙の DATE FORMAT YYYYXXX を持ち、ID-2 はこの日付フォーマットで定義されていなければなりません。

データ・エレメントのシーケンスは (左から右へ) 次のような内容になっています。

Four digits for the year
Three digits for the day

したがって、2003 年 4 月 27 日は 2003117 となります。

DAY-OF-WEEK
これは暗黙の指定として PICTURE 9(1) になります。

単一のデータ・エレメントは、次のような値で曜日を表します。

1 represents Monday           5 represents Friday
2 represents Tuesday          6 represents Saturday
3 represents Wednesday        7 represents Sunday
4 represents Thursday

したがって、水曜日は 3 となります。

TIME
これは暗黙の指定として PICTURE 9(8) になります。

データ・エレメントのシーケンスは (左から右へ) 次のような内容になっています。

Two digits for hour of day
Two digits for minute of hour
Two digits for second of minute
Two digits for hundredths of second

したがって、2:41 PM は 14410000 となります。


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)