画面・帳票サポートシステム XMAP3 実行ガイド


9.4.1 「通常使うプリンタ」への割り当て機能

「通常使うプリンタ」へのプリンタ割り当て機能を使用すると,出力先のプリンタを変更したい場合に,帳票環境のセットアップを変更しないで出力先のプリンタを変更できます。

「通常使うプリンタ」へのプリンタ割り当て機能は,次に示す運用システムでの利用に適しています。

従来,帳票環境を設定するときに,表示・印刷セットアップで「プリンタ名(ドライバ名)」に出力先のプリンタを指定していました。このため,出力先のプリンタを変更したい場合には,表示・印刷セットアップの設定を変更する必要がありました。

しかし,「通常使うプリンタ」へのプリンタ割り当て機能を使用すれば,Windows上で「通常使うプリンタ」(標準プリンタ)に設定されているプリンタが,出力先のプリンタに自動的に割り当てられます。したがって,Windows上の「通常使うプリンタ」に設定するプリンタを,プリンタのプロパティでほかのプリンタに変更するだけで,XMAP3の出力先のプリンタをほかのプリンタに変更できます。表示・印刷セットアップの設定は変更する必要はありません。

「通常使うプリンタ」へのプリンタ割り当て機能を使うときは,[表示・印刷セットアップ]ダイアログの[プリンタ]タブで「「通常使うプリンタ」を自動的に割り当てる」をチェックします。

「通常使うプリンタ」へのプリンタ割り当て機能は,スタンドアロン構成,およびC/S構成のどちらでも利用できます。また,C/S構成の場合,XMAP3クライアント,および印刷サービスを再起動しないで,出力先のプリンタを変更できます。

「通常使うプリンタ」へのプリンタ割り当て機能の概要を次の図に示します。

図9‒8 「通常使うプリンタ」へのプリンタ割り当て機能の概要

[図データ]

この図のXMAP3の処理の流れを次に示します。

  1. UNIXサーバ上の業務APから帳票印刷が実行されます。

  2. 業務APからの印刷指示がクライアントのXMAP3にリクエストされます。

  3. XMAP3で印刷リクエストを受信したあと,Windows上で「通常使うプリンタ」に設定されている「プリンタA」を取得し,出力先としての初期設定をします。

  4. 「プリンタA」に印刷を実行します。

  5. ハードウェア障害などの理由で「プリンタA」に印刷を実行できない,またはほかのWindowsで「プリンタA」を占有しているために「プリンタA」を利用できなくなるとします。このような状況で,利用者が印刷を実行するとします。

  6. 利用者が「通常使うプリンタ」を「プリンタA」から「プリンタB」に変更します。この時,プリンタAとプリンタBは機種が同一のプリンタとします。また,利用できる印刷モード,およびドライバ情報が同一のプリンタとします。

  7. 「通常使うプリンタ」の変更が完了したあと,業務APから印刷を再実行します。

  8. 業務APからXMAP3へ,帳票データが再出力されます。

  9. XMAP3では,Windows上で「通常使うプリンタ」に設定されているプリンタ名「プリンタB」を取得し,出力先を自動的に変更します。

  10. 「プリンタB」に帳票が印刷されます。

従来,XMAP3帳票環境をセットアップしないで,デフォルト環境のまま「通常使うプリンタ」で印刷を実行した場合には,印刷時の各種オプションの設定がすべて固定値となり,設定値のカスタマイズができませんでした。しかし,「通常使うプリンタ」へのプリンタ割り当て機能を利用する場合は,各種のオプションを設定できます。「通常使うプリンタ」へ印刷する場合の,デフォルトの標準設定環境と「通常使うプリンタ」へのプリンタ割り当て機能を利用した環境の違いを次の表に示します。

表9‒18 標準設定環境と「通常使うプリンタ」へのプリンタ割り当て機能を利用した環境の環境設定の違い

設定項目

標準設定環境

「通常使うプリンタ」へのプリンタ割り当て機能を利用した環境

システム構成

スタンドアロン構成だけ

C/S構成・スタンドアロン構成

指定可能仮想端末

固定(PRT001/PRT002)

任意(任意指定可)

デバイス名

固定(#PRT)

任意(構成に合わせて任意指定可)

指定印刷モード

固定(GDI)

任意(選択可)

[印刷中]ダイアログを表示する

固定(表示しない)

任意(選択可)

スプール書き出し単位

固定(1ページ毎)

任意(選択可)

用紙サイズ

固定(マップ定義優先)

任意(選択可)

用紙の確認通知

固定(行わない)

任意(選択可)

高度な設定

固定

任意(選択可)

〈この項の構成〉

(1) 前提システム構成

「通常使うプリンタ」へのプリンタ割り当て機能は,XMAP3のC/S構成またはスタンドアロン構成のどちらの構成でも利用できます。帳票印刷業務の途中でプリンタを変更する方法を例にして,C/S構成およびスタンドアロン構成での前提システム構成を紹介します。

変更前の「通常使うプリンタ」と,変更後の「通常使うプリンタ」のドライバ情報は,印刷先のポート情報を除いてすべて同一でなければなりません。XMAP3は,新たな印刷を開始する時に,その時点での「通常使うプリンタ」のドライバ情報を取得し,印刷が終了するまでそのドライバ情報を使用して印刷を実行します。したがって,印刷開始時の「通常使うプリンタ」とドライバ情報の異なるプリンタに出力先を変更したい場合には,いったん印刷を終了したあと,再び開始すれば変更できます。

注意事項

C/S構成の場合は印刷サービスの起動時に,スタンドアロン構成の場合はAPからのオープン命令(OPEN要求)時にドライバ情報を取得します。また,XMAP3の帳票環境でスプール書き出し単位を「アプリケーション毎」に設定している場合には,その単位での開始時に取得します。

(a) C/S構成

C/S構成の場合の前提システム構成を次の図に示します。

図9‒9 C/S構成の場合の前提システム構成

[図データ]

サーバの業務APからクライアントの印刷サービスに印刷を実行する環境で,Windowsマシン利用者は「通常使うプリンタ」の変更,および印刷指示をします。

注意事項

サーバ側がWindowsの場合,XMAP3サーバをWindowsのサービスとして運用し,XMAP3サーバをシステムアカウントのサービスで利用する構成では,XMAP3サーバと同一ホストの下で動作する印刷サービスに対して,「通常使うプリンタ」へのプリンタ割り当て機能を利用できません。

(b) スタンドアロン構成

スタンドアロン構成の場合の前提システム構成を次の図に示します。

図9‒10 スタンドアロン構成の場合の前提システム構成

[図データ]

Windowsマシン利用者はプリンタの変更,印刷指示をします。

注意事項

システムアカウント属性で帳票印刷プログラムが実行される構成(JP1/AJSと連携して帳票プログラムを実行する場合など)では,「通常使うプリンタ」へのプリンタ割り当て機能を利用できません。

(2) 「通常使うプリンタ」の有効となる範囲

XMAP3が,Windows上に設定されたプリンタの中から「通常使うプリンタ」に該当するプリンタ名を採取し,該当プリンタを出力先のプリンタに決定するタイミング,および「通常使うプリンタ」の有効となる範囲について,システム構成ごとに説明します。

「通常使うプリンタ」へのプリンタ割り当て機能では,以降で説明するタイミングで「通常使うプリンタ」を取得します。そして,「通常使うプリンタ」を取得した時点で,出力先を変更できます。このため,「通常使うプリンタ」の有効範囲内で「通常使うプリンタ」を変更しても,出力先のプリンタは変更されません。

(a) XMAP3のC/S構成の場合

XMAP3のC/S構成の有効範囲を次の図に示します。

図9‒11 XMAP3のC/S構成の場合のプリンタ有効範囲

[図データ]

この図のように,オープン命令(OPEN要求)からクローズ命令(CLOSE要求)の間は「通常使うプリンタ」は変更されません。そのため,オープン命令(OPEN要求)からクローズ命令(CLOSE要求)の間に発行された印刷命令(SEND要求)はすべて同一のプリンタへ出力されます。したがって,出力先のプリンタを変更したい場合には,次の手順で操作してください。

  1. いったんクローズ命令(CLOSE要求)を発行する。

  2. クローズ命令(CLOSE要求)を発行したあとに「通常使うプリンタ」を変更する。

  3. 改めてオープン命令(OPEN要求)および印刷命令(SEND要求)を発行する。

(b) OLTPサーバ構成の場合

OLTPサーバ構成の場合の,出力プリンタの有効範囲を次に説明します。

  • TP1/NET/XMAP3のメッセージグループ送信機能を使用しない場合

    OpenTP1(TP1/NET/XMAP3)と連携するシステム構成で,メッセージグループ送信機能を使用しない場合は,APからの送信要求sendごとにOpenTP1の出力キューに一方送信メッセージが登録されます。そのメッセージごとにプリンタ排他,および排他解除がXMAP3に要求されます。そのため,APからの送信要求sendごとに「通常使うプリンタ」が決定されます。したがって,出力先のプリンタを変更したい場合には,次の手順で操作してください。

    1. 送信メッセージの送信完了が通知されたあとに「通常使うプリンタ」を変更する。

    2. APから送信要求sendを再実行する。

  • TP1/NET/XMAP3のメッセージグループ送信機能を使用する場合

    OpenTP1(TP1/NET/XMAP3)と連携するシステム構成で,メッセージグループ送信機能を使用する場合(TP1/NET/XMAP3通信構成定義mcftalcleで「-G gourpsend=yes」を指定するとき)には,APからの送信要求sendごとにOpenTP1出力キューに一方送信メッセージが登録されます。しかし,実際のプリンタ排他,複数の送信メッセージの出力,および排他解除はトランザクションごとにまとまってXMAP3に要求されます。そのため,「通常使うプリンタ」は,トランザクションごとに決定され,トランザクションの処理中に「通常使うプリンタ」を変更しても出力先のプリンタは変更されません。ここで,TP1/NET/XMAP3側ではトランザクションごとの送信が完了した時点(コミット後にメッセージグループ送信完了が通知されたあと)で出力キューの中の送信メッセージをすべて消去します。そのため,出力先のプリンタを変更したい場合には,次の手順で操作してください。

    1. 「通常使うプリンタ」を変更する。

    2. OpenTP1のAPへ再印刷を指示する。

(3) 注意

(a) プリンタドライバ情報の引き継ぎ

「通常使うプリンタ」へのプリンタ割り当て機能を使用する場合,XMAP3は起動時に,Windows上に割り当てられている「通常使うプリンタ」の情報を取得します。そして,起動時に取得したプリンタドライバ情報(印字可能領域,解像度など)に基づいて,帳票印刷を実行します。このため,「通常使うプリンタ」へのプリンタ割り当て機能を使用して「通常使うプリンタ」を変更しても,変更されるのは出力先だけです。プリンタドライバ情報は起動時に設定されていた情報が引き継がれます。したがって,「通常使うプリンタ」へのプリンタ割り当て機能を使用して,出力先のプリンタに割り当てるプリンタは,印刷先のポート情報を除いてドライバ情報がすべて同一でなければなりません。ここで,「通常使うプリンタ」の情報はXMAP3の起動時に取得されるため,印刷業務を開始したあとで出力先を別のプリンタに変更したい場合には,いったん印刷業務を終了したあと,再び印刷業務を開始する必要があります。C/S構成の場合は,印刷サービスを再起動したあとで,オープン命令(OPEN要求)を実行してください。スタンドアロン構成の場合は,いったんクローズ命令(CLOSE要求)を発行したあとで,オープン命令(OPEN要求)を実行してください。

注※

C/S構成の場合には,XMAP3クライアント,またはXMAP3サーバの開始に続いて起動する印刷サービスが開始した時(タスクトレーに印刷サービスのアイコンが表示された時)に,「通常使うプリンタ」に設定されているプリンタのドライバ情報を取得します。このプリンタドライバ情報は,印刷サービスが終了する(XMAP3クライアント,またはXMAP3サーバが終了する)までの間,保持されます。スタンドアロン構成の場合には,帳票印刷用APを起動したあとのオープン命令(OPEN要求)の時点(COBOLの命令文では,最初の印刷命令(SEND要求)発行時点)で,「通常使うプリンタ」に設定されているプリンタのドライバ情報が,帳票印刷用APが終了するまでの間,保持されます。

(b) 変更できるプリンタ

「通常使うプリンタ」を変更しても,印刷モード,プリンタドライバ情報,およびそのほかの設定項目は,表示・印刷セットアップで設定した情報が引き継がれます。そのため,変更できるプリンタは,すべて同一の印刷モードが利用できるプリンタ,および同一のプリンタドライバを使用しているプリンタである必要があります。また,XMAP3では,「通常使うプリンタ」を変更したあとのプリンタで,設定されている印刷モード,プリンタドライバが利用できるかどうかをチェックしません。このため,印刷モードが合わないプリンタや,プリンタドライバの異なるプリンタに変更した場合には,プリンタに適合しない印刷データが送信され,文字化けやハード障害などが発生することがあります。

(c) 「通常使うプリンタ」を利用できない条件

次の条件のどちらかに該当するときは「通常使うプリンタ」の取得ができないため,「通常使うプリンタ」へのプリンタ割り当て機能を使用できません。

  • C/S構成で,XMAP3サーバをWindowsのサービスとして運用し,「システムアカウント」で動作させた構成で,XMAP3サーバの下の印刷サービスへ出力する場合

  • スタンドアロン構成でシステムアカウント属性の帳票印刷プログラムが実行される場合

Windowsでは,ログインするユーザごとに「通常使うプリンタ」を設定できますが,システムにユーザがログインしていない状態では,「通常使うプリンタ」を特定できません。また,JP1/AJSと連携したスタンドアロン構成での帳票印刷など,システムアカウント属性でプログラムが動作する場合にも,「通常使うプリンタ」を特定できません。

このため,XMAP3サーバをWindowsのサービスとして運用し,「システムアカウント」で動作させた場合には印刷サービスが起動されません。また,システムアカウントで動作するスタンドアロン環境で帳票印刷用APを実行すると,エラーとなります。例えば,COBOLの命令文では,最初の印刷命令(SEND要求)が発行されたときにエラーとなります。

(d) Windows対応OpenTP1連携時の注意

Windows対応のOpenTP1(TP1/NET/XMAP3)を利用する場合,OpenTP1のコネクション定義を指定する上で,C/S構成でのXMAP3サーバの下の印刷サービスは,スタンドアロン構成でのXMAP3の印刷と連携できません。そのため,OpenTP1と連携してWindowsサーバにだれもログインしていない状態で帳票印刷を運用する場合には,XMAP3サーバをWindowsのサービスとして運用する必要があります。このとき,「通常使うプリンタ」へのプリンタ割り当て機能を利用する場合には,OpenTP1のサービス開始時のアカウントに関係なく,XMAP3サーバは「ユーザアカウント」で運用してください。

(e) 使用できないプリンタ名

Windows上のプリンタ名が「*」(半角のアスタリスク)のプリンタは,XMAP3の出力先として使用できません。

(f) 印刷データの後処理

出力先のプリンタのスプーラにすでに蓄積された印刷データを別のプリンタに印刷できません。出力先のプリンタを変更する場合には,「通常使うプリンタ」を変更したあと,APから再印刷を実行してください。また,プリンタを変更するときには,変更前のプリンタスプーラに以前の印刷データが残っている場合があります。その場合には残っている印刷データを削除してください。