9.1.3 AP実行時のトラブルシューティング

<この項の構成>
(1) エラー終了の場合
(2) 画面のAP実行時の場合
(3) 帳票・書式の印刷時の問題

(1) エラー終了の場合

Q1
日立COBOLのAPの実行時に,CD項のSTATUS KEY句からエラーコードが返りました。
A1
STATUS KEY句の実行状態コードと意味および対処方法を次に示します。
'00000' 正常終了
'00008' 論理エラー
対処:通信文の発行順序が不正です。SEND,RECEIVE,DISABLEの発行順序が誤っています。APの処理方式を見直して,正しい処理順序に修正してください。
'10004' マッピングエラー
対処:日立COBOLが出力するメッセージKCCB5007R-S,またはKCCB5008R-Sの内容を調査してください。
原因としては次のことが考えられます。
  • カーソルまたはフォーカス位置に誤りがあります。APで設定している位置を確認してください。
  • MAPPING MODE句で指定した値に誤りがあります。「スペース」「0」「2」「3」など許されるパラメタをAPが設定しているか確認してください。
  • 開発用XMAP3のバージョンと,実行用XMAP3 Serverのバージョンとを合わせてください。
'10008' マッピングエラー
対処:日立COBOLが出力するメッセージKCCB5007R-S,またはKCCB5008R-Sの内容を調査してください。
APが設定したデータに誤りがあることが考えられます。詳細は,KCCB5008R-Sの「エラーコード」に表示されるコードを控え,「9.4 AP実行時のXMAP3 Serverのリターンコード」の「リターンコード詳細」から該当するエラーコードを探し,「エラー内容」の記述に従って対処してください。
'20008' 入出力エラー
対処:日立COBOLが出力するメッセージKCCB5007R-S,またはKCCB5008R-Sの内容を調査してください。
入出力時の障害の詳細は,KCCB5008R-Sの「エラーコード」に表示されるコードを控え,「9.4 AP実行時のXMAP3 Serverのリターンコード」の「リターンコード詳細」から該当するエラーコードを探し,「エラー内容」の記述に従って対処してください。

Q2
日立COBOLのAPの実行時に,「KCCB5007R-S/KCCB5040R-S入出力エラーが発生しました。プログラム名=行番号/欄=エラーコード= 」というエラーメッセージが表示されます。
A2
「9.4 AP実行時のXMAP3 Serverのリターンコード」の「リターンコード詳細」から該当するエラーコードを探し,「エラー内容」の記述に従って対処してください。

Q3
日立COBOLのAPの実行時に,「KCCB5008R-S/KCCB5042R-Sマッピングエラーが発生しました。プログラム名=行番号/欄=エラーコード= 」というエラーメッセージが表示されます。
A3
「9.4 AP実行時のXMAP3 Serverのリターンコード」の「リターンコード詳細」から該当するエラーコードを探し,「エラー内容」の記述に従って対処してください。

Q4
CALL命令に対して,jsvwadrv関数からエラーコード(0以外)が返りました。
A4
エラー時のXMAP-COMテーブル,またはログ情報からリターン情報詳細を取得してください。
XMAP-COMテーブルからリターン情報詳細を取得しない設定のAPの場合や,ログ取得の設定をしていないAPの場合は,ログ取得の設定をして再度APを実行してください。エラーを再現させ,リターン情報詳細を取得します。ログ情報の取得方法については,「9.2 ログ情報の利用方法」を参照してください。
取得したリターンコード詳細を控えて,「9.4 AP実行時のXMAP3 Serverのリターンコード」からエラーコードに対応する対処方法をとってください。

Q5
XMAPhosts,XMAPconfig,XPWhosts,hostsおよびservicesファイルの内容を修正しましたが,修正した情報が反映されません。
A5
XMAP3サーバを再起動していないことが考えられます。次の例を参考に,サーバプロセスを終了し再起動してください。
なお,XMAP3サーバを再起動した場合には,すでに接続されていたXMAP3クライアントもすべて再起動してください。

# ps -e | grep xpw           (XMAP3サーバの動作状況確認)
 1604 ?        0:00 xpwdaemon
 1611 ?        0:00 xpwprt
# kill 1604                  (XMAP3サーバの停止。xpwdaemonだけでよい)
# /opt/HIXMAP/bin/xpwdaemon -s &

(2) 画面のAP実行時の場合

(a) 動作に関する問題
Q1
二次ウィンドウが閉じません。
A1
次の点を見直してください。
  • 二次ウィンドウ上に,二次ウィンドウを閉じる目的で作成したプッシュボタンのプッシュボタン定義ダイアログボックスで,「二次ウィンドウを閉じる」を指定してください。
  • 一次ウィンドウの画面属性ダイアログで表示形態として「一部上書」を指定してください。

Q2
初期位置にフォーカスが位置づきません。
A2
フォーカス制御エリアを(00)16でクリアしていないことが考えられます。APを見直してください。

Q3
APで指定した位置にフォーカスが位置づきません。
A3
次の点を見直してください。
  • フォーカス位置制御項目に指定した値が誤っていないかどうか
    APを見直してください。
  • 論理マップと物理マップの作成日付は一致しているかどうか
    マップを再生成し,物理マップと論理マップを対応させてください。
  • カーソル位置項目とフォーカス位置制御項目の両方がある場合,片方だけに値を設定しているかどうか
    この場合,カーソル位置項目とフォーカス位置制御項目は次に示すように使い分けてください。
    《CUIフィールドボックスにカーソルを位置づけたいとき》
      フォーカス位置制御項目とカーソル位置項目に値を指定します。
    《そのほかのボックスにフォーカスを位置づけたいとき》
      フォーカス位置制御項目に値を指定します。

Q4
入出力テキストにフォーカスが位置づきません。
A4
出力テキストで定義していないかどうか,定義内容を見直してください。

Q5
フォーカスは入出力テキストに位置づきますが入力できません。
A5
入出力テキスト定義ダイアログで指定する「表示方法」が「入力不可」になっています。定義内容を確認し,「入力可能」を指定してください。

Q6
ポップアップメニューで一度選んだメニューに,次の表示でカーソルが位置づきません。
A6
ポップアップメニュー上のデータ長とラベル長が一致していないことが考えられます。定数長と項目数を一致させて定義してください。

Q7
選んでもポップアップメニューが閉じません。
A7
フォーカスまたはカーソルの移動先となるほかのオブジェクトがないため,常にそのポップアップに位置づいています。そのままの状態で送信するか,またはポップアップメニュー定義ダイアログで使用目的に「手動」を指定してください。

Q8
キーボードがロックされているため入力できません。
A8
画面定義時に「キーボードのロック状態を解除する」を指定していないことが考えられます。この場合,直前の画面のキーボードロック状態は,次の画面に引き継がれます。
[Ctrl]+[R]でロック状態を解除してAPを終了したあと,PC XMAP3のドローでマップ定義ファイルを開き,画面属性ダイアログで「キーボードのロック状態を解除する」を指定してから,マップを再生成してください。

Q9
入力マッピングの結果が誤っています。
A9
次の点を見直してください。
  • 論理マップを誤ってクリアしていないかどうか
    APの内容を見直してください。
  • 物理マップと論理マップの作成日付のうち一方だけを更新していないかどうか
    物理マップと論理マップの作成日付は一致させてください。この場合,マップを再生成し,物理マップと論理マップを対応させてください。
  • COBOL言語のCALL文による送受信命令で使用するインタフェース領域を削除したり上書きしたりしていないかどうか
    APを見直してください。

Q10
論理マップに設定した位置にカーソルが移動しません。
A10
スクロール固定領域にカーソルを移動しようとしました。APの内容を確認し,スクロール固定領域以外にカーソル位置を再設定してください。

Q11
PCとのC/S構成で,PCで[Enter]キーを押してもデータが送信されません。
A11
データ送信用の[Enter]キーを押していないことが考えられます。
[Enter]キーには,文字キー側の[Enter]キーとテンキー側の[Enter]キーとがあります。PC XMAP3の表示・印刷セットアップで,どちらを送信キーにしているか設定内容を確認してください。なお,標準値では,テンキー側の[Enter]キーが送信用,文字キー側の[Enter]キーは改行用です。

Q12
フィールドごとに送受信していて,キーOKになるのに時間が掛かります。
A12
2回目のマッピングでマッピングオプションを「マージ」または「物理マップだけ」にしていることが考えられます。APを見直しマッピングオプションを「論理マップだけ」にして,出力論理マップ中の再送不要なデータ部はデータ有無コードを設定してください。また,このときオブジェクトの属性定義ダイアログでの初期値に「指定しない」を指定し,画面属性ダイアログの「入力・選択状態の扱い」に「状態を維持」を指定してください。

Q13
プッシュボタンやPFキーを操作してもAPに制御が移りません。
A13
半角文字だけを入力できるテキストボックスに全角文字を入力したなど,入力データがオブジェクトの属性と合っていないことが考えられます。この場合,APには制御が移らないで,データ入力エラー状態となります。データを正しく修正してから,実行し直してください。なお,入力データが正しいかどうかはオペレータインジケータに表示されます。
(b) 表示結果の問題
Q1
画面が表示されません。
A1
次の点を確認してください。
  • ほかのウィンドウの後ろに隠れていないかどうか
    ウィンドウを前面に移動してください。
  • ほかのAPですでに画面を表示していないかどうか
    ほかのAPを終了して,再実行してください。
  • APでエラーが起きていないかどうか
    SEND文,またはTRANSCEIVE文実行後のリターンコードを確認してください。
  • 実際に表示できるサイズよりも大きなウィンドウを指定していないかどうか
    定義内容を見直してください。
  • XMAP3 Serverで指定できる最大オブジェクト数を超えていないかどうか
    オブジェクトの数を減らしてください。
画面表示・帳票出力時のリターンコードが「5120(1400)16」の場合は,次の点を確認してください。
  • APに指定した物理マップの名称は正しいかどうか
    物理マップの名称は,「マップ名+物理マップの種類(例:GUI画面の場合はND)」にしてください。
  • PCからのマップ転送後,cmapcpコマンドで物理マップを利用可能な形式に変換しているかどうか
    cmapcpコマンドで拡張子「.pmp」のない物理マップを作成する必要があります。
  • 物理マップが正しいディレクトリに格納されているかどうか
    通常,APを実行するには使用する物理マップを実行可能ファイルと同じディレクトリに用意する必要があります。なお,XMAP3 Serverの実行環境設定で別ディレクトリから物理マップを参照するようにカスタマイズしている場合(マップロードパスを指定している場合)には,そのディレクトリに物理マップがあるかどうかを確認してください。
  • ホスト名が一致しているかどうか
    サービス名ファイル(XPWhosts),/etc/hostsファイルで指定しているホスト名を一致させてください。

Q2
画面が途中までしか表示されません。
A2
次の点を見直してください。
  • (20)16以上の値をデータ有無コードとして使用していないかどうか
    データ有無コードと文字コードの重複を避けてください。データ有無コードに(1F)16以下の値を使用してください。
  • マップ生成時にエラーが発生したため,マップに誤りがないかどうか
    マップ生成時のリターンコードとエラーメッセージを基に定義内容を見直してください。
  • 外字フォントを正しく作成しているかどうか
    外字フォントを見直してください。
  • 論理マップ長エリアに論理マップの長さを正しく格納しているかどうか
    論理マップと物理マップが対応しているか確認し,正しい論理マップの長さを格納してください。
  • 出力論理マップをクリアしないで使ったため,出力論理マップ中に前の論理データが残っていないかどうか
    APを見直し,出力論理マップをクリアしてください。
  • 論理マップに格納したデータ内の文字コードが誤っていないかどうか
    APを見直してください。
  • 物理マップと論理マップを作成した日付が一致しているかどうか
    一方を更新し忘れていないかどうか
    マップ生成およびAPのコンパイルをし直してください。
  • XMAP3 Serverに誤った論理マップデータを渡していないかどうか
    例えば,論理マップの名称が誤っている,または物理マップに対応した論理マップデータを渡していないなど。
    物理マップと論理マップが対応しているかを確認し,APを見直してください。
  • 先頭1文字がデータ有無コードになっていないかどうか
    出力したいデータの前のデータ有無コードを削除してください。
  • PC XMAP3で実行環境と異なるターゲットを指定して生成した論理/物理マップをWSで使用していないかどうか
    PC XMAP3で作成した論理/物理マップをWSに転送して利用する場合には,実行環境に合ったターゲットを指定したあと,マップ生成してください。

Q3
画面が崩れた状態で表示されます。
A3
  • (20)16以上の値をデータ有無コードとして使用していないかどうか
    データ有無コードと文字コードの重複を避けてください。データ有無コードに(1F)16以下の値を使用してください。
  • マップ生成時にエラーが発生したため,マップに誤りがないかどうか
    マップ生成時のリターンコードとエラーメッセージを基に定義内容を見直してください。
  • 外字フォントを正しく作成しているかどうか
    外字フォントを見直してください。
  • 論理マップ長エリアに論理マップの長さを正しく格納しているかどうか
    論理マップと物理マップが対応しているか確認し,正しい論理マップの長さを格納してください。
  • 出力論理マップをクリアしないで使ったため,出力論理マップ中に前の論理データが残っていないかどうか
    APを見直し,出力論理マップをクリアしてください。
  • 論理マップに格納したデータ内の文字コードが誤っていないかどうか
    APを見直してください。
  • 物理マップと論理マップを作成した日付が一致しているかどうか
    一方を更新し忘れていないかどうか
    マップ生成およびAPのコンパイルをし直してください。
  • XMAP3 Serverに誤った論理マップデータを渡していないかどうか
    例えば,論理マップの名称が誤っている,または物理マップに対応した論理マップデータを渡していないなど。
    物理マップと論理マップが対応しているかを確認し,APを見直してください。
  • オブジェクトの属性情報が非表示になっていないかどうか
    定義内容を見直してください。
  • 先頭1文字がデータ有無コードになっていないかどうか
    出力したいデータの前のデータ有無コードを削除してください。
  • PC XMAP3で実行環境と異なるターゲットを指定して生成した論理/物理マップをWSで使用していないかどうか
    PC XMAP3で作成した論理/物理マップをWSに転送して利用する場合には,実行環境に合ったターゲットを指定したあと,マップ生成してください。

Q4
画面が一瞬だけ表示され,すぐに消えます。
A4
マップドライバの共通インタフェース領域に格納した入力論理マップ長は正しいか確認してください。誤っている場合は,物理マップに対応した入力論理マップの長さを正しく格納してください。

Q5
複数の画面が同時に表示されます。
A5
日立COBOLのAP中で複数の通信記述項を指定しています。つまり,複数のモジュールで通信記述項をそれぞれ定義しているにもかかわらず,AP実行時にCOBOLの環境変数「CBLTERMSHAR=YES」を指定していません。環境変数を設定するか,または共通モジュールで通信記述項を指定するようにAPを修正してください。

Q6
画面の表示位置が,指定した位置と異なります。
A6
定義で指定した位置と異なる場合は,次の点を確認してください。
  • 一次ウィンドウに対して,常に直前のウィンドウと同じ位置に表示するオプションを指定していないかどうか
    この場合,定義時に指定したウィンドウ位置は無視されます。指定した位置に表示するには,画面環境セットアップでオプションを変更してください。
  • 操作者がウィンドウを移動していないかどうか
    この場合,移動した位置に表示されます。
  • 二次ウィンドウの画面定義ダイアログで指定したウィンドウ位置,またはウィンドウIDが異なっていないかどうか
    定義を見直してください。

Q7
画面の表示位置が,直前の画面と異なります。
A7
  • 二次ウィンドウの場合
    二次ウィンドウの表示形態が「全面書換」となっていないか,または直前のマップと異なる二次ウィンドウを出力していないかを確認してください。また,定義時に指定したウィンドウID(識別番号)と一致しているかを確認してください。
  • 一次ウィンドウの場合
    実行プログラムが別のときは,ウィンドウ表示位置は保存されないため,定義上のウィンドウ位置に表示されます。同じプログラム内で表示をしてください。
    同じプログラムの場合は,表示・印刷環境ファイル(XPWconfig)で,画面定義を優先してウィンドウ位置を決める設定がDCMPPS=ONになっていることが考えられます。設定をDCMPPS=OFFにしてください。

Q8
画面の表示位置が,マウス操作などで移動しても初期表示位置に戻ります。
A8
次の点を確認してください。
  • 一次ウィンドウに対して,定義時のウィンドウ位置に表示するオプション(DCMPPS=ON)を指定していないかどうか
    この場合,移動したウィンドウ位置は無視されます。表示・印刷環境ファイル(XPWconfig)でオプションを変更してください。
  • APで毎回画面をクローズしていないかどうか
    一度画面をクローズすると,前回のウィンドウ位置は無効になります。

Q9
通常の場合と比べて画面の表示に時間が掛かります。
A9
次の点を確認してください。
  • ほかのAPが起動していないかどうか
    業務に関係のないAPはなるべく起動しないでください。
  • 1個のオブジェクトだけの表示を,全画面(デスクトップ画面に対して最大化)表示にしていないかどうか
    マッピングモード,データ有無コードの設定を見直してください。
  • 毎回画面をクローズしていないかどうか
    DISABLE文の発行を見直してください。
  • 毎回画面をオープンしていないかどうか
    プログラムを分けて実行ファイルにしているとき,オープンをプログラム間で引き継ぐ指定をしているかを見直してください。

Q10
同じ画面を表示するときに画面がちらつきます。
A10
次の点を見直してください。
  • 2回目以降の画面を表示する場合,上書きになっていないかどうか
    日立COBOLの場合,CD句でMAPPING MODEを指定してないことが考えられます。APで変更したい項目のデータだけを論理マップにセットし,MAPPING MODEに「2」をセットしてSEND文を実行してください。
  • 同じ画面を別のプログラムで表示していないかどうか
    別のプログラムの場合は,直前に表示した画面の情報は引き継がれません。同じ画面は同じプログラム内で表示してください。
  • 表示が不要な項目にスペースを送ったり,直前に表示したものと同じ内容を表示する場合に,同一データを送ったりしていないかどうか
    表示データが指定されると必ず画面が描画されるため,ちらつきが発生します。表示が不要な部分は,データ有無コードをセットして表示してください。

Q11
オブジェクトが表示されません。
A11
次の点を確認してください。
  • (20)16以上の値をデータ有無コードとして使用していないかどうか
    データ有無コードと文字コードの重複を避けてください。データ有無コードに(1F)16以下の値を使用してください。
  • マップ生成時にエラーが発生したため,マップに誤りがないかどうか
    マップ生成時のリターンコードとエラーメッセージを基に定義内容を見直してください。
  • 外字フォントを正しく作成しているかどうか
    外字フォントを見直してください。
  • 論理マップ長エリアに論理マップの長さを正しく格納しているかどうか
    論理マップと物理マップが対応しているか確認し,正しい論理マップの長さを格納してください。
  • 出力論理マップをクリアしないで使ったため,出力論理マップ中に前の論理データが残っていないかどうか
    APを見直し,出力論理マップをクリアしてください。
  • 論理マップに格納したデータ内の文字コードが誤っていないかどうか
    APを見直してください。
  • 物理マップと論理マップを作成した日付が一致しているかどうか
    一方だけを更新していないかどうか
    マップ生成およびAPのコンパイルをし直してください。
  • XMAP3 Serverに誤った論理マップデータを渡していないかどうか
    例えば,論理マップの名称が誤っている,または物理マップに対応した論理マップデータを渡していないなど。
    物理マップと論理マップが対応しているかを確認し,APを見直してください。
  • 先頭1文字がデータ有無コードになっていないかどうか
    出力したいデータの前のデータ有無コードを削除してください。
  • PC XMAP3で実行環境と異なるターゲットを指定して生成した論理/物理マップをWSで使用していないかどうか
    PC XMAP3で作成した論理/物理マップをWSに転送して利用する場合には,実行環境に合ったターゲットを指定したあと,マップ生成してください。

Q12
オブジェクトの属性が正しく適用されません。
A12
次の点を見直してください。
《「文字色」などの表示属性が適用されない場合》
  • 出力論理マップに対して入力用の属性を指定していないかどうか
    APを見直してください。
  • 属性の動的変更をする場合に,APが指定した修飾名と定義時の修飾名が一致しているかどうか
    定義内容とAPの内容を確認し,修飾名を一致させてください。
《「右寄せ」の属性が適用されない(画面上で右寄せされない)場合》
  • 入出力フィールドの文字列の最後に(20)16が格納されていないかどうか
    文字列の後ろをデータ有無コードでクリアしてください。
  • オブジェクトの属性定義ダイアログで,けた寄せ向きに「左」を指定していないかどうか
    定義内容を確認し,けた寄せに「右」を指定してください。
《フィールド属性の「転送」が適用されない(表示データがAPに返されない)場合》
  • CD句のMAPPING MODEの記述を省略していないかどうか
    省略した場合,2回目の表示時にXMAP3 Serverが転送モードをクリアします。したがって,MAPPING MODEは省略しないで,表示する画面に合った値を設定するようにしてください。

Q13
カーソルが表示されません。
A13
CUI画面で,カーソル色と背景色が同じであることが考えられます。表示・印刷環境ファイル(XPWconfig)で,実行環境の設定を確認してください。

Q14
ボタンのラベルが表示されません。
A14
次の点を見直してください。
  • 背景色とボタンラベル色を同じ色にしていないかどうか
    背景色,またはラベル色を変更してください。
    可変ボタンの場合,論理テーブルに値を指定していないときは,AP中で論理テーブルにラベルデータを設定してください。
    プッシュボタンの場合,ラベル色を変更してください。
  • ラベルに表示している文字列がスペースになっていないかどうか
    スペース以外の文字を指定してください。

Q15
ボタンがオン状態で表示されません。
A15
次の点を見直してください。
  • 画面定義で「選択済みにする」を指定しているかどうか
    ボタン属性ダイアログで「選択済みにする」を指定してください。
  • 動的変更で「選択済みにする」にしていない,または動的変更用の修飾名が誤っていないかどうか
    「選択済みにする」を定義するか,転送の動的変更用修飾名を指定してください。

Q16
ボックス内にスクロールバーが表示されません。
A16
リストボックス,またはCUIフィールドボックス定義ダイアログでスクロールバー付加を指定していません。定義内容を見直してください。

Q17
アンダードット(...)が表示されません。
A17
表示・印刷機能の設定でアンダードット表示(DCUDOT=ON)を指定していません。表示・印刷環境ファイル(XPWconfig)の内容を見直してください。

Q18
可変ラジオボタン,または可変チェックボタンでラベルデータの後ろが表示されません。
A18
ラベルのデータ型に数字編集項目を指定していて,出力論理マップに設定されている長さよりラベル長の方が長いことが考えられます。出力数字編集項目以外の項目にするか,出力論理マップに設定されている長さに等しいラベルデータを指定してください。

Q19
文字が表示されません。
A19
次の点を確認してください。
  • (20)16以上の値をデータ有無コードとして使用していないかどうか
    データ有無コードと文字コードの重複を避けてください。データ有無コードに(1F)16以下の値を使用してください。
  • マップ生成時にエラーが発生したため,マップに誤りがないかどうか
    マップ生成時のリターンコードとエラーメッセージを基に定義内容を見直してください。
  • 外字フォントを正しく作成しているかどうか
    外字フォントを見直してください。
  • 論理マップ長エリアに論理マップの長さを正しく格納しているかどうか
    論理マップと物理マップが対応しているか確認し,正しい論理マップの長さを格納してください。
  • 出力論理マップをクリアしないで使ったため,出力論理マップ中に前の論理データが残っていないかどうか
    APを見直し,出力論理マップをクリアしてください。
  • 論理マップに格納したデータに文字コードが誤っていないかどうか
    APを見直してください。
  • 物理マップと論理マップを作成した日付が一致しているかどうか
    一方だけを更新していないかどうか
    マップ生成およびAPのコンパイルをし直してください。
  • XMAP3 Serverに誤った論理マップデータを渡していないかどうか
    例えば,論理マップの名称が誤っている,または物理マップに対応した論理マップデータを渡していないなど。
    物理マップと論理マップが対応しているかを確認し,APを見直してください。
  • 先頭1文字がデータ有無コードになっていないかどうか
    出力したいデータの前のデータ有無コードを削除してください。
  • PC XMAP3で実行環境と異なるターゲットを指定して生成した論理/物理マップをWSで使用していないかどうか
    PC XMAP3で作成した論理/物理マップをWSに転送して利用する場合には,実行環境に合ったターゲットを指定したあと,マップ生成してください。

Q20
全角・半角文字の混在データを表示すると,文字が不正になります。
A20
データ中で,半角と全角とが切り替わる付近にヌルデータ(00)16があると,表示文字が不正になる場合があります。
(20)16の次のコードは,データとして使用しないでください。例えば,スペースなどに変更してください。

Q21
固定項目以外のものが表示されます。
A21
次の点を確認してください。
  • (20)16以上の値をデータ有無コードとして使用していないかどうか
    データ有無コードと文字コードの重複を避けてください。データ有無コードに(1F)16以下の値を使用してください。
  • マップ生成時にエラーが発生したため,マップに誤りがないかどうか
    マップ生成時のリターンコードとエラーメッセージを基に定義内容を見直してください。
  • 外字フォントを正しく作成しているかどうか
    外字フォントを見直してください。
  • 論理マップ長エリアに論理マップの長さを正しく格納しているかどうか
    論理マップと物理マップが対応しているか確認し,正しい論理マップの長さを格納してください。
  • 出力論理マップをクリアしないで使ったため,出力論理マップ中に前の論理データが残っていないかどうか
    APを見直し,出力論理マップをクリアしてください。
  • 論理マップに格納したデータの文字コードが誤っていないかどうか
    APを見直してください。
  • 物理マップと論理マップを作成した日付が一致しているかどうか
    一方だけを更新していないかどうか
    マップ生成およびAPのコンパイルをし直してください。
  • XMAP3 Serverに誤った論理マップデータを渡していないかどうか
    例えば,論理マップの名称が誤っている,または物理マップに対応した論理マップデータを渡していないなど。
    物理マップと論理マップが対応しているかを確認し,APを見直してください。
  • 先頭1文字がデータ有無コードになっていないかどうか
    出力したいデータの前のデータ有無コードを削除してください。
  • PC XMAP3で実行環境と異なるターゲットを指定して生成した論理/物理マップをWSで使用していないかどうか
    PC XMAP3で作成した論理/物理マップをWSに転送して利用する場合には,実行環境に合ったターゲットを指定したあと,マップ生成してください。

Q22
オブジェクトに「?」が出力されます。
A22
日立COBOLのAP中にDATA ABSENCE CODE(データ有無コード格納エリア)を指定していないのに,(3F)16をデータ有無コードとして使用しています。データ有無コード格納エリアを指定しないと,(1F)16が標準値として仮定されます。データ有無コード格納エリアを指定して(3F)16を設定するか,データ有無コードを(1F)16にしてください。

Q23
論理項目の右寄せができません。
A23
論理項目中の有効データの後ろにデータ有無コード以外のデータが入っていないかどうか
有効データの後ろにはデータ有無コードを指定してください。
(c) その他のトラブル
Q1
C/S構成で,先頭に指定したサービスに対応するAPしか起動できません。
A1
サービス名ファイル(XPWhosts)の記述が誤っていることが考えられます。
記述を見直してください。

Q2
C/S構成で,画面がクライアント側に表示されません。
A2
次の点を見直してください。
  • APで,仮想端末名を正しく指定しているかどうか
    仮想端末名を省略していないか,または誤りがないかAPを見直してください。
  • 仮想端末定義ファイル(XMAPhosts)の設定は適切かどうか
    仮想端末定義ファイルは,次の形式で指定してください。
    仮想端末名;デバイス名;ホスト名;サービス番号;サービス名称
    C/S構成で,一つの仮想端末名称を使って複数のクライアント端末に画面を表示したい場合は,サービス名称に「**」を指定してください。サービス名称に「**」を指定すると,APを起動した端末のDISPLAY変数の設定値がその端末のサービス名称として扱われます。したがって,サービス名ファイル(XPWhosts)に記述した,クライアント端末のディスプレイに対応づけられたサービス名称を,クライアント端末のDISPLAY変数に設定しておく必要があります。
    「**」を指定すると,複数あるクライアント端末のどれか一つでこのAPを起動したときでも,APを起動した端末に対して画面を表示させることができます。
    (例)
     DSP001;XDSP;**;0;**
    また,APが複数ある場合は,環境変数DISPLAY中に入るサービス名を調べ,仮想端末名を分けて指定してください。
    (例)
     DSP001;XDSP ;**;0;xppDSP1
     DSP002;XDSP ;**;0;xppDSP2

Q3
データ有無コードが利用できません。
A3
日立COBOLのAP中の通信記述項でDATA ABSENCE CODE(データ有無コード格納エリア)を指定しましたが,そこに値を設定していないため,(00)16が仮定されています。AP中でデータ有無コード格納エリアに値を設定する,またはDATA ABSENCE CODEを指定しないでデータ有無コードに標準の(1F)16を使用してください。

Q4
日立COBOLで作成したAPを別のWSで実行すると,「ライブラリがありません」というエラーになります。
A4
次の点を確認してください。
  • 実行用のWSに日立COBOLとXMAP3 Serverがインストールされているかどうか
    日立COBOLで作成したAPは単独では実行できません。インストールされていない場合は,日立COBOLとXMAP3 Serverをインストールして,再び実行してください。なお,インストールしてあるのにエラーが出る場合は,インストール時のディレクトリ構成と実行時のディレクトリ構成が異なっていることが考えられます。日立COBOLとXMAP3 Serverをインストールし直してください。

Q5
メモリ不足になります。
A5
ほかのAPを終了するなどして,メモリを増やす必要があります。このほか,実メモリ不足の原因として次の点についても見直してください。
  • ハードディスクの空き容量を増やしてメモリのスワップアウトができるようにしてください。
  • 大量に帳票印刷をすると,スプールとしてハードディスクを使うため,メモリ不足になります。帳票印刷が完了するまでお待ちください。

(3) 帳票・書式の印刷時の問題

(a) 印刷動作のトラブル
Q1
印刷を指示(SEND)しましたが,プリンタでの印刷が始まりません。
A1
プリンタでの印刷は,印刷APが終了した時点か,または明示的に印刷を指示した時点で開始します。したがって,APを終了させるか,またはDISABLE文で明確な指示を出してください。

Q2
シリアルプリンタで,連続紙の改ページが指定どおりになりません。
A2
次の点を見直してください。
  • 帳票定義で指定した用紙の大きさ(インチ)と,実際にプリンタにセットした用紙の大きさが一致しているかどうか
    正しい大きさの用紙をプリンタにセットしてください。
  • 連続紙で,プリンタに設定した用紙サイズで改ページをしたい場合は,表示・印刷環境ファイル(XPWconfig)で用紙長の設定(POPAGE,POLNPC)をしてください。
  • XMAP3 Server以外のアプリケーションからの印刷と併用する場合は,表示・印刷環境ファイル(XPWconfig)で,ESP/プリンタでプリンタ任せの改ページ印刷を行う機能を使うように設定する必要があります(AIX)。
    ESP/プリンタでプリンタ任せの改ページ印刷を行う機能の設定については,「7.18 ESC/Pプリンタでプリンタ任せの改ページ印刷をする(AIX)」を参照してください。

Q3
空白ページが余分に出力されます。
A3
次の点を見直してください。
  • 印刷用紙と物理マップの帳票サイズが一致し,次のマップに「印字前動作」で「改ページ」の指定がないかどうか
    定義内容を確認し,印字前動作の指定を取り消してください。
  • 印刷用紙と物理マップの帳票サイズが一致し,「印字後動作」の指定がないかどうか
    定義内容を確認し,印字後動作の指定を取り消してください。
  • 帳票サイズは適切かどうか
    印字できるページ範囲をはみ出た場合に空白ページが出力されることがあります。ハードウェアの印字可能範囲を確認し,帳票サイズを変更してください。

Q4
白紙ページが各ページに出力されます。
A4
次の点を見直してください。
  • 帳票サイズは適切かどうか
    印字できるページ範囲をはみ出た場合に,空白ページが出力されることがあります。ハードウェアの印字できる範囲を確認し,帳票サイズを変更してください。

Q5
AP単位の出力が有効になりません。
A5
日立COBOLのAPの場合,SEND文のあとでDISABLE文を設定していることが考えられます。この場合,この設定は無効になるため,DISABLE文は設定しないでください。
(b) 印刷結果の問題
Q1
帳票定義で設定したとおりに印刷できません。
A1
帳票定義で定義した帳票と,表示・印刷環境ファイル(XPWconfig)でのプリンタの設定が合っていないことが考えられます。表示・印刷環境ファイル(XPWconfig)の記述を見直してください。

Q2
ページの先頭から印字されません。
A2
次の点を見直してください。
  • 改ページを指定しているかどうか
    定義内容を確認し,改ページを指定してください。
  • 表示・印刷環境ファイル(XPWconfig)の行数の指定は正しいかどうか
    表示・印刷環境ファイルで,用紙長設定(POPAGE,POLNPC)を実際の用紙サイズに合わせた設定にしてください。また,この場合は帳票定義時に印刷後改ページを指定してください。
  • 帳票定義時に設定したページサイズが実際のプリンタに設定されている用紙サイズと合っているかどうか
    定義内容を確認し,ページサイズを実際の用紙サイズと合うように指定してください。
  • 表示・印刷環境ファイル(XPWconfig)で,対応プリンタ種別を正しく選んでいるかどうか
    連続紙を先頭から印字するには,表示・印刷環境ファイル(XPWconfig)で[対象リモートプリンタ(PCRPRT)]にESC/P準拠プリンタ(ESCP_D)を設定する必要があります。
  • XMAP3 Server以外のアプリケーションからの印刷と併用する場合は,表示・印刷環境ファイル(XPWconfig)で,ESP/プリンタでプリンタ任せの改ページ印刷を行う機能を使うように設定する必要があります(AIX)。
    ESP/プリンタでプリンタ任せの改ページ印刷を行う機能の設定については,「7.18 ESC/Pプリンタでプリンタ任せの改ページ印刷をする(AIX)」を参照してください。

Q3
帳票が途中までしか印字されません。
A3
次の点を見直してください。
  • (20)16以上の値をデータ有無コードとして使用していないかどうか
    データ有無コードと文字コードの重複を避けてください。データ有無コードに(1F)16以下の値を使用してください。
  • マップ生成時にエラーが発生したため,マップに誤りがないかどうか
    マップ生成時のリターンコードとエラーメッセージを基に定義内容を見直してください。
  • 外字フォントを正しく作成しているかどうか
    外字フォントを見直してください。
  • 論理マップ長エリアに論理マップの長さを正しく格納している,または論理マップをクリアしたあとに論理マップの長さを格納しているかどうか
    論理マップと物理マップが対応しているか確認し,正しい論理マップの長さを格納してください。
  • 出力論理マップをクリアしないで使ったため,出力論理マップ中に前の論理データが残っていないかどうか
    APを見直し,出力論理マップをクリアしてください。
  • 論理マップに格納したデータの文字コードが誤っていないかどうか
    APを見直してください。
  • 物理マップと論理マップを作成した日付が一致しているかどうか
    一方だけを更新していないかどうか
    マップ生成およびAPのコンパイルをし直してください。
  • XMAP3 Serverに誤った論理マップデータを渡していないかどうか
    例えば,論理マップの名称が誤っている,または物理マップに対応した論理マップデータを渡していないなど。
    物理マップと論理マップが対応しているかを確認し,APを見直してください。

Q4
帳票の右側,または下側が印字されません。
A4
《シリアルプリンタ使用時》
  • 用紙が小さい,または用紙の向きが誤っていないかどうか
    プリンタに印字したい帳票に合う用紙を正しい向きでセットしてください。
《ページプリンタ使用時》
  • プリンタにセットした用紙が小さくないかどうか
    正しいサイズの用紙カセットをセットしてください。また,表示・印刷環境ファイル(XPWconfig)で設定した用紙のサイズ,または向きを確認してください。設定を帳票定義に合わせてください。

Q5
プリンタごとに,印刷される文字フォントが異なります。
A5
印刷に使用するフォントは,プリンタの種類などによって異なります。

Q6
オブジェクトが印字されません。
A6
次の点を見直してください。
  • (20)16以上の値をデータ有無コードとして使用していないかどうか
    データ有無コードと文字コードの重複を避けてください。データ有無コードに(1F)16以下の値を使用してください。
  • マップ生成時にエラーが発生したため,マップが誤っていないかどうか
    マップ生成時のリターンコードとエラーメッセージを基に定義内容を見直してください。
  • 外字フォントを正しく作成しているかどうか
    外字フォントを見直してください。
  • 論理マップ長エリアに論理マップの長さを正しく格納している,または論理マップをクリアしたあとに論理マップの長さを格納しているかどうか
    論理マップと物理マップが対応しているか確認し,正しい論理マップの長さを格納してください。
  • 出力論理マップをクリアしないで使ったため,出力論理マップ中に前の論理データが残っていないかどうか
    APを見直し,出力論理マップをクリアしてください。
  • 論理マップに格納したデータの文字コードが誤っていないかどうか
    APを見直してください。
  • 物理マップと論理マップを作成した日付が一致しているかどうか
    一方だけを更新していないかどうか
    マップ生成およびAPのコンパイルをし直してください。
  • XMAP3 Serverに誤った論理マップデータを渡していないかどうか
    例えば,論理マップの名称が誤っている,または物理マップに対応した論理マップデータを渡していないなど。
    物理マップと論理マップが対応しているかを確認し,APを見直してください。

Q7
オブジェクトに「?」が出力されます。
A7
日立COBOLのAP中にDATA ABSENCE CODE(データ有無コード格納エリア)を指定していないのに,(3F)16をデータ有無コードとして使用しています。データ有無コード格納エリアを指定しないと,(1F)16が標準値として仮定されます。データ有無コード格納エリアを指定して(3F)16を設定するか,またはデータ有無コードを(1F)16にしてください。

Q8
文字が印字されません。
A8
  • 定数および論理データ中のコードにプリンタがサポートしていない文字(外字)がないかどうか
    印刷したい文字を外字登録してください。
  • Windows特殊文字(0x8740~0x879C),NEC選定IBM拡張文字(0xED40~0xEEFC)およびIBM拡張文字(0xFA40~0xFC4B)などのベンダ固有文字を使用していないかどうか
    印刷したい文字を外字登録してください。

Q9
文字を正しく印刷できません。
A9
次の点を確認してください。
  • 印刷しようとするプリンタとそれに対応するドライバが合っているかどうか
    コントロールパネルなどで,プリンタドライバの設定を確認してください。また,ESC/PやLIPSに対応していないプリンタに対してセットアップでそれぞれのプリンタドライバを指定した場合も同様の現象が発生します。プリンタに添付された説明書などで使用できる機能を確認してください。
  • XMAP3 Serverでのプリンタの設定と実際に印刷するプリンタが合っているかどうか
    表示・印刷環境ファイル(XPWconfig)の[プリンタの種類]の指定が,実際に印刷するプリンタと合っているか確認してください。
  • PC XMAP3で実行環境と異なるターゲットを指定して生成した論理/物理マップをWSで使用していないかどうか
    PC XMAP3で作成した論理/物理マップをWSに転送して利用する場合には,実行環境に合ったターゲットを指定したあと,マップ生成してください。

Q10
バーコードが印刷されません。
A10
LIPSII+,LIPSIIIスルーモードで印刷されていないことが考えられます。表示・印刷環境ファイル(XPWconfig)の設定を見直してください。

Q11
定義時に指定した網掛けの濃さや矩形の丸めが印刷時に変化します。
A11
プリンタの種類によって,定義時の指定と異なる場合があります。表示・印刷環境ファイル(XPWconfig)で,[LIPSコマンドの作成モード(PCLIPS)]に「LIPSII+準拠プリンタ(2)」または「LIPSIII準拠プリンタ(3)」を指定した場合,プリンタ内蔵の網掛けパターンやけい線パターンが使用されます。
(c) その他のトラブル
Q1
スタンドアロン型で運用するときのプリンタのセットアップ方法がわかりません。
A1
「7. XMAP3 Serverの環境設定」を参照してください。

Q2
LAN直結・共用プリンタでのセットアップ方法がわかりません。
A2
「7. XMAP3 Serverの環境設定」を参照してください。

Q3
C/S構成でのセットアップ方法がわかりません。
A3
「7. XMAP3 Serverの環境設定」を参照してください。

Q4
印刷時に仮想端末定義ファイルの誤りのリターンコードが出力されます。
A4
次の原因が考えられます。見直してください。
  • 仮想端末定義ファイルのレコードに記述している内容に誤りがあります。
  • レコードの最後に改行がありません。
  • レコード中に不当なコードが挿入されています。内容を削除して再入力してください。

Q5
データ有無コードが利用できません。
A5
日立COBOLのAP中の通信記述項でDATA ABSENCE CODE(データ有無コード格納エリア)を指定しましたが,そこに値を設定していないため,(00)16が仮定されました。AP中でデータ有無コード格納エリアに値を設定するか,またはDATA ABSENCE CODEを指定しないでデータ有無コードに標準の(1F)16を使用してください。

Q6
日立COBOLで作成したAPを別のWSで実行すると,「ライブラリがありません」というエラーになります。
A6
次の点を確認してください。
  • 実行用のWSに日立COBOLとXMAP3 Serverがインストールされているかどうか
    日立COBOLで作成したAPは単独では実行できません。インストールされていない場合は,日立COBOLとXMAP3 Serverをインストールして,再び実行してください。なお,インストールしてあるのにエラーが出る場合は,インストール時のディレクトリ構成と実行時のディレクトリ構成が異なっていることが考えられます。日立COBOLとXMAP3 Serverをインストールし直してください。

Q7
メモリ不足になります。
A7
ほかのAPを終了するなどして,メモリを増やす必要があります。また,実メモリ不足の原因として次のことも考えられますので,見直してください。
  • ハードディスクの空き容量を増やしてメモリのスワップアウトができるようにしてください。
  • 大量に帳票印刷をすると,スプールとしてハードディスクを使うため,帳票印刷が完了するまでお待ちください。

Q8
画面入出力で性能が出ません。
A8
次の点を見直してください。
《定義時の性能を向上させるポイント》
  1. けい線の見直し
    ・不要なけい線は削除してください。
    ・矩形で囲んだフィールドは反転表示にして枠を取ってください。
  2. テキストボックスやフィールドの見直し
    ・テキストなどの集約
    テキストボックスやフィールドはまとめて定義してください。例えば,「年」「月」「日」は三つに分けないで,一つにまとめるとマップが小さくなります。
    ・CUIフィールドの利用
    テキストボックスに作成されている表は,CUIフィールドボックスのフィールドとして定義してください。表示性能が向上します。
《AP作成時のポイント》
  1. 同一マップを再表示するとき
    同一マップの画面を再表示する場合は,部分上書きを指定しないと,画面中の一つ(または一部)のオブジェクトだけを書き換えるときでも全画面(デスクトップ画面に対して最大化)の再表示となり,表示性能が低下します。
    部分上書きと全画面表示とを使い分けることをお勧めします。指定方法については「5. アプリケーションの開発」を参照してください。
  2. データ量を見直す
    APで不要なデータを送っていないかどうか見直してください。例えば,常にスペースやゼロを送ってしまうと実行性能が劣ってしまいます。したがって,出力時の性能を上げるにはデータの量を減らすことが重要です。
    ・データ有無コードで論理マップをクリアします。
    ・不要な初期値を指定しないようにします。
  3. AP分割を見直す
    XMAP3 Serverのオープン要求がどのタイミングで出されているかを見直してください。コンパイル単位で,TRANSCEIVE文または,SEND文が発行されると,画面ごとにオープンが実行されるため,処理が遅くなります。不要な画面をオープンしないためには次の点に注意してください。
    ・一つのコンパイル単位にTRANSCEIVE文,SEND文をまとめ,オープンの実行は必要最低限にします。
    ・共通のルーチンにまとめてTRANSCEIVE文,SEND文を発行するようにAPの構造を見直します。
    ・日立COBOLの場合,AP間でオープンを引き継ぐ
    「CBLTERMSHAR=YES」を指定すると,AP間でオープンの引き継ぎができます。
    日立COBOLでは,明示的にCALL文でオープンを要求する場合を除き,一つのコンパイル単位で最初のSEND文またはTRANSCEIVE文が発行されると画面がオープンされます。そのため,1画面が1実行ファイルのような構成にすると,実行ファイルごとに画面をオープンすることになります。この場合,オープン・クローズ,SEND文,TRANSCEIVE文を発行する実行ファイル,業務処理をする実行ファイルをそれぞれ分けた方が実行性能が高くなります。
    また,複数のコンパイル単位のものを合わせて一つの実行ファイルにするときは,各コンパイル単位でオープンを発行しないようにするため,日立COBOL(02-02以降)の実行支援の環境変数で,「CBLTERMSHAR=YES」を指定します。「CBLTERMSHAR=YES」は,SEND/RECEIVE/TRANSCEIVEインタフェースのときだけ有効です。CALLインタフェースでは無効になります。
    CALLインタフェースの場合,または「CBLTERMSHAR」をサポートしていないバージョンの日立COBOLを使用している場合で,AP間のオープン引き継ぎをするときは,ユーザが,XMAP3 Serverインタフェースエリアの情報を引き継ぐようなコーディングをする必要があります。サンプルコーディングとして,APパターンのGENDSP02およびGENDSP03が利用できます。
  4. 画面クローズのタイミングを見直す
    画面のクローズは,明示的にCALL文でクローズするか,DISABLE文を発行したタイミングです。
  5. APとの制御のやり取りを見直す
    XMAP3 Serverでは,オブジェクトからフォーカスまたはカーソルが離れたときに,APに制御を返せます(「入力と同時にAPへ制御を渡す」)。しかし,オブジェクト単位にAPとの制御のやり取りが発生する方法は,画面単位にAPに制御を返す方法と比べオーバーヘッドが大きくなり,オブジェクト遷移(フォーカス移動)が遅くなる場合があります。このため,APとの制御のやり取りは画面単位で行うことをお勧めします。オブジェクト単位でAPとやり取りをする場合は,できるだけ画面中のオブジェクト(APに制御を戻すもの)の数を少なくすることがポイントです。
《実行時のポイント》
  1. マップの常駐化サイズの見直し
    使用するマップを常駐するバッファサイズは変更できます。詳細については「9.3.3 物理マップの常駐について」を参照してください。