(57)【特許請求の範囲】
【請求項１】
処理対象情報に対して複数種類の処理の少なくとも１つを実行可能な実行手段と、
処理対象情報を処理の種類と対応づけて記憶する処理対象情報記憶手段と、
該処理対象情報記憶手段に記憶された処理対象情報のリストを表示する表示手段と、
該表示手段により表示された処理対象情報のリストより実行すべき処理対象情報を選択する選択手段と、
実行すべき処理の種類を指示する指示手段と、
該指示手段により指示された処理の種類と、前記選択手段により選択された処理対象情報と対応づけて前記処理対象情報記憶手段に記憶された処理の種類とが一致するかを判別する判別手段と、
該判別手段による判別の結果、一致すると判別された場合、前記処理対象情報記憶手段に記憶された処理対象情報に対する設定変更メニューを表示し、不一致と判別された場合、前記指示手段により指示された種類の処理に関する新規設定メニューを表示するメニュー表示手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記設定変更メニューに基づいて、前記処理対象情報記憶手段に記憶された処理対象情報に対する処理の設定を変更する変更手段を有することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記新規設定メニューに基づいて、前記処理対象情報記憶手段に記憶された処理対象情報に対して新たな処理の設定を行なう設定手段を有することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記処理の種類が印刷、送信、情報の保持の少なくとも１つを含むことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記設定手段が、処理の実行時期を設定することを特徴とする請求項３記載の情報処理装置。
【請求項６】
前記設定手段が、処理の実行場所を設定することを特徴とする請求項３記載の情報処理装置。
【請求項７】
前記変更手段が、処理の実行時期の設定を変更することを特徴とする請求項２記載の情報処理装置。
【請求項８】
前記変更手段が、実行時期の異なる処理を追加することを特徴とする請求項２記載の情報処理装置。
【請求項９】
処理対象情報に対して複数種類の処理の少なくとも１つを実行可能な情報処理方法において、
処理対象情報を処理の種類と対応づけて記憶する処理対象情報記憶部に記憶された処理対象情報のリストを表示する表示工程と、
該表示工程により表示された処理対象情報のリストより実行すべき処理対象情報を選択する選択工程と、
実行すべき処理の種類を指示する指示工程と、
該指示工程により指示された処理の種類と、前記選択工程により選択された処理対象情報と対応づけて前記処理対象情報記憶部に記憶された処理の種類とが一致するかを判別する判別工程と、
該判別工程による判別の結果、一致すると判別された場合、前記処理対象情報記憶部に記憶された処理対象情報に対する設定変更メニューを表示し、不一致と判別された場合、前記指示工程により指示された種類の処理に関する新規設定メニューを表示するメニュー表示工程とを備えることを特徴とする情報処理方法。
【請求項１０】
処理対象情報に対して複数種類の処理の少なくとも１つを実行可能な情報処理プログラムであって、
処理対象情報を処理の種類と対応づけて記憶する処理対象情報記憶部に記憶された処理対象情報のリストを表示する表示工程と、
該表示工程により表示された処理対象情報のリストより実行すべき処理対象情報を選択する選択工程と、
実行すべき処理の種類を指示する指示工程と、
該指示工程により指示された処理の種類と、前記選択工程により選択された処理対象情報と対応づけて前記処理対象情報記憶部に記憶された処理の種類とが一致するかを判別する判別工程と、
該判別工程による判別の結果、一致すると判別された場合、前記処理対象情報記憶部に記憶された処理対象情報に対する設定変更メニューを表示し、不一致と判別された場合、前記指示工程により指示された種類の処理に関する新規設定メニューを表示するメニュー表示工程とを備えるプログラムを記憶したことを特徴とするプログラム記憶可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数種類の処理が実行可能な情報処理装置及びその方法、及びそのプログラムを記憶した記憶媒体に関するものである。
【０００２】
【従来の技術】
従来の情報処理装置においては、例えば、印刷を実行する際には、印刷を実行するプリンタとしてネットワーク上のプリンタを設定して印刷を指示することが行われている。また、送信を行なう場合には、送信先や送信時刻を設定して送信を指示している。
【０００３】
【発明が解決しようとする課題】
例えば、印刷と送信の両方が可能な装置において、送信先や送信時刻を設定して送信を指示した後で、その時刻を変更したり、送信先を追加したいという場合が考えられる。また、送信先や送信時刻を設定して送信を指示した情報を印刷したいという場合も考えられる。これらのような設定・変更を可能とした場合には、操作手順が簡単であることが望ましい。
【０００４】
【課題を解決するための手段】
上記課題を解決するために、本発明によれば、情報処理装置に、処理対象情報に対して複数種類の処理の少なくとも１つを実行可能な実行手段と、処理対象情報を処理の種類と対応づけて記憶する処理対象情報記憶手段と、該処理対象情報記憶手段に記憶された処理対象情報のリストを表示する表示手段と、該表示手段により表示された処理対象情報のリストより実行すべき処理対象情報を選択する選択手段と、実行すべき処理の種類を指示する指示手段と、該指示手段により指示された処理の種類と、前記選択手段により選択された処理対象情報と対応づけて前記処理対象情報記憶手段に記憶された処理の種類とが一致するかを判別する判別手段と、該判別手段による判別の結果、一致すると判別された場合、前記処理対象情報記憶手段に記憶された処理対象情報に対する設定変更メニューを表示し、不一致と判別された場合、前記指示手段により指示された種類の処理に関する新規設定メニューを表示するメニュー表示手段とを備える。
【０００５】
また、他の態様によれば、処理対象情報に対して複数種類の処理の少なくとも１つを実行可能な情報処理方法において、処理対象情報を処理の種類と対応づけて記憶する処理対象情報記憶部に記憶された処理対象情報のリストを表示する表示工程と、該表示工程により表示された処理対象情報のリストより実行すべき処理対象情報を選択する選択工程と、実行すべき処理の種類を指示する指示工程と、該指示工程により指示された処理の種類と、前記選択工程により選択された処理対象情報と対応づけて前記処理対象情報記憶部に記憶された処理の種類とが一致するかを判別する判別工程と、該判別工程による判別の結果、一致すると判別された場合、前記処理対象情報記憶部に記憶された処理対象情報に対する設定変更メニューを表示し、不一致と判別された場合、前記指示工程により指示された種類の処理に関する新規設定メニューを表示するメニュー表示工程とを備える。
【０００６】
また、他の態様によれば、プログラムを記憶可能な記憶媒体に、処理対象情報に対して複数種類の処理の少なくとも１つを実行可能な情報処理プログラムであって、処理対象情報を処理の種類と対応づけて記憶する処理対象情報記憶部に記憶された処理対象情報のリストを表示する表示工程と、該表示工程により表示された処理対象情報のリストより実行すべき処理対象情報を選択する選択工程と、実行すべき処理の種類を指示する指示工程と、該指示工程により指示された処理の種類と、前記選択工程により選択された処理対象情報と対応づけて前記処理対象情報記憶部に記憶された処理の種類とが一致するかを判別する判別工程と、該判別工程による判別の結果、一致すると判別された場合、前記処理対象情報記憶部に記憶された処理対象情報に対する設定変更メニューを表示し、不一致と判別された場合、前記指示工程により指示された種類の処理に関する新規設定メニューを表示するメニュー表示工程とを備えるプログラムを記憶している。
【０００７】
【発明の実施の形態】
以下、図面を用いて本発明の１実施形態を詳細に説明する。
【０００８】
図1は、本実施形態の機能構成を示した図であり、ユーザ101、クライアント102、サーバ103、データベース104、デーモン105の関係を示したものである。クライアント102と、サーバ103は同一のデバイス上にあっても良いし、ネットワーク等で接続された別のデバイス上にあっても良い。
【０００９】
ユーザ101が何らかの操作をクライアント102に対して行うと、クライアント102はその操作に対応する要求を生成し、サーバー103に送信する。サーバ103は、受け取った要求を解釈して、データベース104とやり取りして、Jobの追加・削除やデータの取得を行うなどの処理を行う。その結果、必要に応じて、対応するHTMLページを作成して、クライアント102に送信する。クライアント102は、受取ったHTMLページを表示し、ユーザ101に新たな操作を促す。
【００１０】
データベース104に保存されたJobはデーモン105により監視され、デーモン105は、実行条件が満たされたJobに対応した、印刷、送信、通知などの処理を実行させる。
【００１１】
図２は、本実施形態の機能構成の詳細を表した図である。
【００１２】
クライアントコンポーネント102は、操作部201及び２つのWeb Browser 202,203から構成される。操作部201を介して行われたユーザの操作は、Web Browser 202,203によって、要求に変換され、サーバコンポーネント103に送信される。
【００１３】
サーバコンポーネント103は、Web Server 204、デバイスマネージャ205、Requestマネージャ207、Command解析・処理部208から構成される。クライアントコンポーネント102から送信された要求は、Web Server 204により受信され、デバイスマネージャ205または Requestマネージャ207に渡される。
【００１４】
デバイスマネージャ205は、プリンタ206のステータスを取得したり、制御を行う。Request マネージャ207は、要求を処理コマンドに変換し、Command解析・処理部208に渡す。
【００１５】
Command解析・処理部208では、指示された処理コマンドに対応した処理を実行し、Databaseマネージャ209を介して、データベース104にアクセスし、Jobの追加・更新をする。
【００１６】
一方、Daemon105は、一定間隔でDatabaseマネージャ209を介して、データベース104にアクセスし、実行条件が満たされたJobが存在するかどうかチェックし、存在する場合、対応する処理を実行する。
【００１７】
図３は、ユーザの操作に対応した情報の流れを説明した図である。
【００１８】
クライアント コンポーネント102は、ユーザの操作を入力情報として受け取り、要求を生成して、サーバ コンポーネント103に送信する。
【００１９】
サーバ コンポーネント103は、受け取った要求を解釈して、データベースマネージャ209を介して、データベース104とやり取りして、Jobの追加・削除やデータの取得を行うなどの処理を行う。また、デバイスマネージャ205を介して、プリンタ206とやり取りをして、プリンタのステータスを取得するなどの処理を行う。その結果、必要に応じて、対応する表示命令（HTMLページ）を作成して、クライアント102に送信する。
【００２０】
クライアント102は、受取った表示命令（HTMLページ）をユーザに表示し、新たな操作を促す。
【００２１】
データベース104に保存されたJobはデータベースマネージャ209を介して、デーモン105により監視され、実行条件が満たされたJobに対応した、印刷、送信、通知などの処理を実行させる。
【００２２】
図４は、ユーザの入力を受け取った後、対応するコマンドの処理が実行されるまでの処理の流れを示した図である。
【００２３】
ユーザが操作を行うと、操作部201により対応する操作指示データに変換される。例えば、ユーザがキーボードやマウスを用いて行った操作は、対応するキーコードや、マウス移動情報等の情報処理装置が扱える情報に変換される。
【００２４】
その後、上記で変換された操作指示データを受け取ったWeb Browser 202は、Web Server 204への対応する要求に変換し、送信する。例えば、画面に表示されているボタンの１つを選択した場合、「特定のボタンを選択」という要求が作成されることになる。
【００２５】
上記要求を受け取ったWeb Server 204は、受け取ったデータをRequest マネージャ207に渡し、Request マネージャ207では要求に対応する処理コマンドに変換し、Command 解析・処理部208に渡す。例えば、ユーザが印刷を指示するボタンを選択した場合、「印刷を指示するボタンを選択」という要求から、「印刷を指示するボタンを選択に対応する処理実行」という処理コマンドに変換され、実行される。
【００２６】
図５は、実際に行われた処理の結果や、プリンタのステータスの変化に対応して、ユーザに情報を表示するまでの処理の流れを示した図である。
【００２７】
処理結果を受け取ったRequest マネージャ207は、対応する操作指示データをWeb Server 204に渡す。また、同様にプリンタのステータスの変化を検知したデバイスマネージャ205は、対応する操作指示データをWeb Server 204に渡す。例えば、処理結果として新たな操作画面をユーザに表示する場合、画面に表示する為の情報をＨＴＭＬのようなデータに変換することで、実現している。また、プリンタのステータスも同様にして、画面に表示する為の情報をＨＴＭＬのようなデータに変換することで、実現している。
【００２８】
上記操作指示データを受け取ったWeb Server 204は、Web Browser 202にデータを送信し、Web Browser 202では実際にタッチパネルなどの表示操作部に表示することで、ユーザに示す。
【００２９】
図５は、実際に行われた処理の結果や、プリンタのステータスの変化に対応して、ユーザに情報を表示するまでの、処理及びデータの流れを示した図である。
【００３０】
処理結果を受け取ったRequest マネージャ207は、対応する操作指示データをWeb Server 204に渡す。また、同様にプリンタのステータスの変化を検知したデバイスマネージャ205は、対応する操作指示データをWeb Server 204に渡す。例えば、処理結果として新たな操作画面をユーザに表示する場合、画面に表示する為の情報をＨＴＭＬのようなデータに変換することで、実現している。また、プリンタのステータスも同様にして、画面に表示する為の情報をＨＴＭＬのようなデータに変換することで、実現している。
【００３１】
上記操作指示データを受け取ったWeb Server 204は、Web Browser 202、203にデータを送信し、Web Browser 202では実際にタッチパネルなどの表示操作部に操作画面を表示し、ユーザに示す。Web Browser203は、プリンタのステータスを表示する。
【００３２】
図６は、複数のデバイス（デバイスＡと、デバイスＢとする）間における、機能の関係を表した図である。ここでは、デバイスＡは印刷装置であり、デバイスＢは、ユーザのメールやスケジュールを管理するデスクトップ・パソコンとする。デバイスＡ及びデバイスＢには、それぞれクライアントコンポーネント102、サーバコンポーネント103、デーモン105が存在する。但し、ここでは、ユーザがデバイスＡ側にいるものとして、デバイスＢのクライアントコンポーネント102は省略している。
【００３３】
ここで、ユーザがデバイスＡで操作を行ったとすると、操作部201により、ユーザの操作情報が入力情報として取得され、サーバコンポーネント103のデバイスマネージャ205及びRequestマネージャ207に要求として渡される。
【００３４】
デバイスマネージャ205は、プリンタ206のステータスを取得するなどにより、ユーザからの要求に答える。また、Request マネージャ207は要求の種類により、印刷制御部601によりプリンタを制御したり、更にCommand 解析処理部208により、より詳細な情報を解析し、対応する処理を実行させる。
【００３５】
その結果、必要に応じて情報の形式を、変換制御部603を用いることで変換したり、制御部602を介して、様々な処理を実行する。ここで、Jobの管理が必要と判断されたならば、Databaseマネージャ209を介して、Database104の追加・更新を行い、表示が必要と判断されたならば、表示制御部604によって表示を行う。また、通知が必要と判断されたならば、通知制御部605によって通知を行う。
【００３６】
一方、Daemon 105は定期的にDatabase 104を監視し、実行条件が満足されたJobが存在すれば、対応する処理を実行させる。
【００３７】
ここで、デバイスＡで処理が完結しないと判断された場合、デバイスＢに要求が送信され、デバイスＢのRequestマネージャ207が対応する処理を実行させる。例えば、デバイスＢのファイルの印刷の場合、印刷部607によって、対応するアプリケーションを用いて印刷処理が実行される。また、Mailアクセスの場合、Mail制御部608によって、対応するアプリケーションを用いて、アクセスされる。この他にも、スケジュール情報の参照など、対応するアプリケーションが用いられて実現される。
【００３８】
更に、デバイスＢが持つDatabase104に格納されたJobに対しても、アクセスすることができる。
【００３９】
図７は、本実施形態に係るシステム構成図である。
【００４０】
同図において、ネットワーク701には、種々の装置が接続され、ネットワーク701を介してデータの送受信が行われる。プリンタ702は、ネットワークを介して受信したデータを印刷するとともに、入出力操作部703を有する。入出力操作部703は、ユーザに対して各種表示を行うとともに、ユーザからの指示を受け付ける。スキャナ704、マルチファンクション機器705も同様の入出力操作部を有している。スキャナ704は、紙などに印刷されたデータを光学的に読み取るものであり、マルチファンクション機器705は、プリンタ702とスキャナ704の機能を併せ持っている。パーソナルコンピュータ706は、文書や画像を作成したり、ユーザのメールやスケジュールなどのパーソナルデータを管理する。
【００４１】
図８は、本実施形態に係るプリンタの機能ブロック図である。
【００４２】
同図において、タッチパネル801は、ユーザに対してプリンタのステータスやメニュー画面の表示を行うとともに、ユーザが表示面に触れることで、メニュー項目の選択や表示されるキーボードによる文字の入力を行うことができる。なお、タッチパネル801に代えて、通常のディスプレイとキーボードを用意してもよい。
【００４３】
ＣＰＵ802は、フローチャートにつき後述する処理手順を含む各種プログラムを実行し、システムバス808により接続された装置各部を制御する。印刷部803は、データを紙などに印刷する。通信部804は、ネットワークを介して、デスクトップやスキャナ、他のプリンタなどと、命令やステータスを含むデータを送受信する。
【００４４】
ＲＯＭ805は、固定的なデータやプログラムを記憶する。ＲＡＭ806は、データやプログラムを一時記憶する。ハードディスクドライブ（ＨＤＤ）807は、プログラムやデータを永続的に記憶でき、上述したデータベースとして利用される。システムバス808は、上述した装置各部を接続し、装置間でデータやアドレス、制御信号を送受信する媒体として利用される。フローチャートにつき後述する処理手順を含む各種プログラムは、ＲＯＭ805に記憶されていてもよいし、ＨＤＤ807からＲＡＭ806へ、処理に先立ってあるいは処理の実行中に必要に応じてロードされるようにしてもよい。
【００４５】
図９は、電源投入時の起動順序を示すフローチャートであり、ユーザがマシンの電源を入れた際の起動順序を示している。ステップS901でユーザが電源をonすると、ステップS902でOSが起動し、続いてステップS903でwebサーバが起動する。次にステップS904でクライアントが起動して、最後にステップS905でデーモンが起動する。
【００４６】
図10は、クライアントコンポーネントの動作を表すフローチャートである。クライアントが起動すると、ステップS1001でウェブブラウザオブジェクトを作成して、ステップS1002でサーバコンポーネントへ要求を出し、HTMLページ作成を指示する（この時のページは、Opening Screenである)。その要求に対してサーバから送られたHTMLページをステップS1003で表示し、ステップS1004でユーザの入力を待つ。そして、ユーザの入力によって対応する処理を行う。ユーザの要求がexitである場合には、ステップS1006でシステムをシャットダウンして終了する。ユーザの要求がクライアントサイドで処理すべき場合は、ステップS1009で処理し、再びユーザの入力待ち状態になる。サーバサイドで処理すべき場合はステップS1008でサーバーコンポーネントへ処理要求を出し、その要求に対して作成されたHTMLページを受取り、表示する。その後、再びユーザの入力待ち状態になる。
【００４７】
図11は、クライアントの要求に対するサーバコンポーネントの処理手順を示すフローチャートである。
【００４８】
サーバコンポーネントは、ステップS1101でクライアントの要求を取得し、ステップS1102でこの要求を解析し、要求に対応する処理を行う。OpeningScreenを表示する要求に対しては、ステップS1104でプリンタステータスを取得する。Cancel All Jobsに対しては、ステップS1105で、図12につき後述する関数CancelAllPrinterJobs()関数を呼んで、全てのJobをキャンセルする。Cancel/Pause/Restart要求に対しては、ステップS1106でSetPrinterJobsStatus()関数を呼び、Jobを指定されたStatusに設定する。
【００４９】
以上のどの要求に対しても、最後にステップS1107で対応するHTMLページを作成し、ステップS1108でクライアントコンポーネントにHTMLページを送信して処理を終える。
【００５０】
要求が「login」「logout」であった場合は、図15につき後述する。要求が「Goto Other Device」「Goto Desktop」であった場合は、図16につき後述する。要求が、「Search」「Help」「Receive Job / Receive Notification」であった場合は、図17につき後述する。要求が、「Print」「Send」「Delete」「Reschedule」「Preview」であった場合は、図22につき後述する。
【００５１】
図12は、CancelAllPrinterjobsの処理手順を示すフローチャートである。プロトタイプは、DWORD CancelAllPrinterjobs()である。
【００５２】
まず始めに、ステップS1201で、図13につき後述する関数GetAllPrinterJobsを呼び、スプールからJobを取得する。ステップS1202で特定のプリンタをオープンし、ステップS1203で各々のJobのステータスをキャンセルにセットする。その後ステップS1204でプリンタをクローズする。これを、Jobがすべてキャンセルにセットされるまで行う。
【００５３】
図13は、GetAllPrinterjobsの処理手順を示すフローチャートである。プロトタイプは、Int GetAllPrinterjobs(pInfo)である。
【００５４】
まず、ステップS1301でEnumPrinter()関数を用いて、有効なプリンタ、プリントサーバ、ドメイン、プリント、プロバイダの列挙を行う。ステップS1302で列挙された対象のうちの一つをオープンし、ステップS1303でEnumJob()関数を用いてスプール中の有効なJobを列挙し、ステップS1304でプリンタをクローズする。この操作を全対象について行う。
【００５５】
図14は、SetPrinterJobStatusの処理手順を示すフローチャートである。プロトタイプは、Int SetPrinterJobStatus(pPrinterName,JobId,Status)である。
【００５６】
まず、ステップS1401でGetJob関数を用いて、スプールから指定されたJobを取得する。ステップS1402で、そのJobが存在する特定のプリンタをオープンし、ステップS1403でJobのステータスを指定された値にセットする。ステップS1404で最後にプリンタをクローズして終わる。
【００５７】
図15はクライアントの要求が、「login」「logout」であった場合のサーバの処理手順を示すフローチャートである。
【００５８】
要求がloginであったときは、まずステップS1502でlogin verbとリモートデバイスリストを取得し、ステップS1503でユーザ名を取得する。ステップS1504でGetUserId()をよび、そのユーザに有効なJobリストを取得し、ステップS1505で対応するHTMLページを作成すると同時に、ステップS1506でその隠れ領域にユーザとJobの詳細を保存する。
【００５９】
一方、Logout要求の場合には、ステップS1507でリモートデバイスリストが空かを調べ、空のときは、ステップS1510で、ステータスに従ってOpeningScreenページを作成する。空でないときは、リストが空になるまで、ステップS1508で次のデバイスにlogin verb=Disconnectでログインし、ステップS1509でそのデバイスをリモートデバイスリストから削除することを繰り返す。すなわち、リモートデバイスリスト中の全てのデバイスをログアウトする。リストが空になったら、OpeningScreenページを作成する。
【００６０】
Login、logoutどちらの場合も、最後にステップS1511で、作成したページをクライアントコンポーネントに送信して終わる。
【００６１】
図16はクライアントの要求が、「Goto Other Device」「Goto Desktop」であった場合のサーバの処理手順を示すフローチャートである。
【００６２】
要求がGoto Other Deviceの場合、ステップS1602でデバイス名とデバイスアドレスを取得する。Goto Desktopの場合は、ステップS1603でデスクトップアドレスを取得する。その後、ステップS1604でそのデバイスをリモートデバイスリストに追加し、ステップS1605でlogin verbを作成する。login verbがDevice or Desktop、Print、Send、Delete、Rescheduleの場合、ステップS1607でLogin verbによって、デバイスへログインし、Device or Desktopの場合は、ステップ S1608でオープニングスクリーンのHTMLページを作成し、Print、Send、Delete、Reschedule の場合は、ステップ S1609、1610、1611、1612で、それぞれPrintJob、Send Job、Delete Job、Reschedule JobのスクリーンのHTMLページを作成する。また、login verbがDisconnectの場合、ステップS1613でデバイスからログアウトし、ステップS1614でそのデバイスをリモートデバイスリストより削除し、ステップ S1615でオープニングスクリーンのHTMLページを作成する。最後にクステップS1616で、クライアントステップコンポーネントにページを送信して終わる。
【００６３】
図17はクライアントの要求が、「Search」「Help」「Receive Job / Receive Notification」であった場合のサーバの処理手順を示すフローチャートである。
【００６４】
Search要求の場合、ステップS1702で検索パラメータを取得し、ステップS1703で検索を実行する。ステップS1704で、その実行結果から検索結果のHTMLページを作成する。Help要求の場合、ステップS1705でヘルプコンテキストパラメータを取得し、ステップS1706で対応するヘルプスクリーンHTMLページを作成する。どちらの要求の場合も、最後にステップS1707で、作成したHTMLページをクライアントコンポーネントに送信して終了する。
【００６５】
要求の種類が、Receive Job/Notificationの場合、ステップS1708でデータバッファを読み、ステップS1709で、そのバッファを、Receive Jobであれば、図18につき説明するIdAnalyze()関数へ、Receive Notificationであれば、図20につき説明するIdAnalyzeNotifyへ渡して終了する。
【００６６】
図18は、IdAnalyzeの処理手順を示すフローチャートである。ここでは、他のデバイスから行データとして渡されたJobを解釈する。このJobはDBに加え、デーモンモジュールによって実行される。
【００６７】
まず、ステップS1801でDemarshal関数を呼び、demarshalを行い、バッファオブジェクトを有効にする。次に、ステップS1802で、圧縮データをUnformatData関数を用いて復号、展開をおこなうことによって、行単位でデータが有効になる。ステップS1803で再びDemarshal関数を呼び、メッセージオブジェクトを有効にする。最後にステップS1804で図19につき後述するReceiveJob関数(DUMMY)を呼び、JobをDBに追加する。
【００６８】
図19は、DUMMYの処理手順を示すフローチャートである。このモジュールはSendJobにより送られた行バッファを受取る、ISAPI拡張Receiveモジュールのダミーである。CGIアプリケーションへ渡される。
【００６９】
実際には、ステップS1901でSendJobにより送られた行バッファ中のこれらの関数を読み、ステップS1902でテンポラリファイルをダンプする。このファイル名は、ステップS1903でCGIモジュールのIDExtn.Exeへ渡される。これは、ステップS1904でファイル名を読み、データを取得する。ステップS1905でCGIアプリケーションへデータを送るために、このモジュールはinternet client callを使う。
【００７０】
図20は、IdAnalyzeNotifyの処理手順を示すフローチャートである。他の同種のデバイスから行データとして渡されたNotificationを解釈する。このnotificationを処理に加えnotificationはデーモンモジュールによって実行される。
【００７１】
実際には、ステップS2001で、Demarshal関数を呼び、demarshalを行い、バッファオブジェクトを有効にする。つぎに、ステップS2002で圧縮データをUnformatData関数を用いて復号、展開をおこなうことによって、行単位でデータが有効になる。ステップS2003で、再びDemarshal関数を呼び、メッセージオブジェクトを有効にする。最後に、ステップS2004で、図21につき後述するRecieveHttpNotification関数を呼び、JobをDBに追加する。
【００７２】
図21は、RecieveHttpNotificationの処理手順を示すフローチャートである。プロトタイプは、Void CIDAction::RecieveHttpNotification(poNotify)である。
【００７３】
この関数はHTTPプロトコルによって送られたnotificationを受取る関数である。デバイスが要求された通知方法をサポートしていなくても、中間デバイスを利用して最終的には目的のデバイスに通知することが出来る。
【００７４】
ステップS2101で、Notificationのレシーバ名とアドレス、通知方法を調べ、ステップS2102で、このデバイスがnotificationを受取る目的のデバイスか、他のデバイスへnotificationをpassする中間点として機能するのみかを調べる。
【００７５】
このデバイスが最終目的値である場合、ステップS2103でテンポラリファイルを作成し、ステップS2104で、その中へnotificationメッセージを書き込む。また、ステップS2105でウィンドウズディレクトリ上のfixedファイル"pollfile"（デーモンがpollするファイル）を作成、上書きする。ステップS2107で、このファイルの中でnotificationモジュール（メッセージを表示したり、作成したりするモジュール）のコマンドラインパラメータを指定し、ステップS2107で指定された通知方法で通知する。
【００７６】
このデバイスが中間デバイスである場合、ステップS2108で、このデバイスにnotificationを発行する能力があるかを確認し、あれば、ステップS2110で、指定された方法で指定されたデバイスへnotificationを送信する。このデバイスにnotificationを発行する能力がない場合、ステップS2112で、HTTPプロトコルを介して他の中間点へnotificationを送信する。
【００７７】
図22は、クライアントの要求が、「Print」「Send」「Delete」「Reschedule」「Preview」であった場合のサーバの処理手順を示すフローチャートである。
【００７８】
これらの5つの要求の場合、まずはじめに、ステップS2201で、ユーザID、JobID、ActionIDを取得する。
【００７９】
Print要求の場合、ステップS2203で、印刷時刻と場所を取得し、ステップS2204でnotificationリストを取得する。ステップS2205で関数PrintJob()を呼びプリントを実行する。
【００８０】
Send要求の場合、ステップS2206で送信時刻と場所を取得し、ステップS2207でnotificationリストを取得する。ステップS2208で関数SendJob()を呼び送信を実行する。
【００８１】
Delete要求の場合、ステップS2209でCancelAction()関数をよび、Jobを削除する。
【００８２】
Reschedule要求の場合、ステップS2210でRescheduleAction関数をよび、スケジュール変更を行う。
【００８３】
Preview要求の場合、ステップS2211でformat conversion libraryを用いて、JobをJPGやGIFフォーマットに変換する。
【００８４】
以上の要求全てにおいて、ステップS2212で、対応するHTMLページを作成して、ステップS2213でクライアントコンポーネントにHTMLページを送信して終了する。
【００８５】
図23は、PrintJobの処理手順を示すフローチャートである。プロトタイプは、void  CIDAction::PrintJob(ActionId, NotifyList)である。入力パラメータは、指定されたActionのID、ユーザのNotification設定リストであり、Jobを、今すぐにこのデバイスで印刷する。
【００８６】
ActionIDがPrint/Holdのとき、Actionの属性（Print時刻、Notificationなど）は、現時刻と新しいNotificationに修正される。ActionIDがSendのとき、DB中に新しいActionが作成される。これは、そのこのユーザがHoldしている、このJobに関係する他のPrintActionが存在するかどうかに依存する。Jobがプリントされた後は、ActionStatusは"done"となり、このActionはユーザのHistoryの一部になる。
【００８７】
まず、ステップS2301で、レコードを引き出して、Actionの詳細をチェックする。ステップS2302で、古いActionがHoldされているかチェックし、ステップS2303でこの情報を保存する。ステップS2304でこのActionに必要なJobDataを取得する。ステップS2305で、データベース中のエントリを“印刷中”となるよう修正する。これは、daemonモジュールがこのレコードを実行しないようにするためである。
【００８８】
ステップS2307、2308で、新しいレコードを作成するかまたは、存在するレコードを修正する。たとえば、前のActionがPrint/Holdであったならそのレコードは修正され、前のActionがSendであったなら、そのJobに対してそのユーザがHold中のPrintActionがないときには新しいレコードが作成される。new/old ActionIDが返される（条件に従う）。
【００８９】
ステップS2309で、無条件で、Notification StatusはFalseになる。ステップS2310で、このnewActionIDにnotificationを加えてユーザータイプを"Don't care"とする（すなわち、送信者も受信者もいない）。
【００９０】
ステップS2311で、Spooler  API Callsを使って印刷するために、プリントキューへJobを送る。ステップS2312で“印刷が成功”または“終了”とエントリを修正する。ステップS2313で、印刷のActionStatusに従ってNotificationStatusをセットする。
【００９１】
図24は、SendJobの処理手順を示すフローチャートである。プロトタイプは、Void CIDAction::SendJob(bsendjobToDatabase,ActionId,roJobMessage)である。
【００９２】
指定された“存在する”Job、または指定されたレシーバ・デバイスリストへ新しいJob を送信する。送信によって、1つのデバイスに対して、1つのコピーが送られる。この場合、複数のレシーバがいる場合には、Jobのコピーを共有していることになる。他の全てのレシーバの情報も送られるので、他のデバイスからJobにアクセスすることも可能である。JobはHTTPプロトコルで送信される。
【００９３】
実際には、ステップS2401で、ActionIdが存在するJobか、新規のJobかをチェックする。ActionIdが存在する場合には、ステップS2402で、Actionの属性を取得して、ステップS2403で、そのActionタイプがHoldであるかチェックする。Hold Jobであるとき、ステップS2404で、Hold Jobがアクセスされたという情報をストアする。
【００９４】
次に、この情報がDBへ行くと指定されているときには、ステップS2406で、SendJob()を呼び、Jobに関する全ての情報（センダ、レシーバなど）をDBにストアする。その後、ステップS2407で“今”送信するかどうか、時間をチェックし、今送らないときには、そのままに終了して、デーモンモジュールが送信を実行してくれるのを待つ。今送るときには、ステップS2408で、送信を実行して終了する。
【００９５】
図25は、SendJob()による送信の実行手順を示すフローチャートである。
【００９６】
まず、EditAction()を呼び、ActionStatusをactiveにセットする。次にレシーバのリストを処理し、ユーザ名、デバイス名、デバイスのURLアドレスを取得する。レシーバデバイスに対応するようにフォーマット変換を行う。これは適当なイメージ変換ライブラリを用いて実行される。メッセージデータをバイト列に変換し、さらに圧縮、符号化を行う。このデータをHTTPプロトコルを用いて送信し、ActionStatusをdoneに設定する。さらにActionをユーザのヒストリの一部として追加し、送信状況によってnotification statusをsuccess/failにセットする。JobがHeld Listからアクセスされたjobであることを示すStatusをセットする（ステップS2501〜2511）。
【００９７】
図26は、CancelJobの処理手順を示すフローチャートである。プロトタイプは、Void CIDAction::CancelJob(dwActionId)である。
【００９８】
この関数は指定されたActionをキャンセルするものである。具体的には、ステップS2601で、Actionの属性を取得して、CancelAction()関数を読んで、Actionをキャンセルとマークする。もし、ActionがHoldリストの中にある場合には、ステップS2603で、ユーザのヒストリの一部に追加し、ユーザのヒストリの一部になっている場合には、ステップS2604でエントリを削除する。ActionがHoldである場合には、ステップS2606で、notification conditionは“Hold Jobにアクセスしている”と設定する。ユーザがこのデバイス上でのレシーバであるときには、そのまま終了し、他のデバイス上にいる場合には、ステップS2608で、このデバイスへログインさせ、ステップS2609で、キャンセルActionに対しての詳細を設定し、ステップS2610で、実際のデバイスにこの情報を送るためにSendJob()関数をよび、送信を実行する。このことにより、Actionのキャンセルが実行される。
【００９９】
図27は、SendNotificationの処理手順を示すフローチャートである。プロトタイプは、Void CIDAction::SendNotification(dwActionId)である。
【０１００】
この関数は、実際の通知を行う関数である。Popupなどの通知のタイプは、httpを送信することによって通知を行う。電話やメールの場合は、適当なモジュールを呼ぶことによって通知する。サポートされたいない方法が指定された場合には、指定された中間デバイスへnotificationが送信されて、再送される、この機能は"now"にnitificationを送信しなければならないときにのみ行われる。この場合、NotificationStatusをDoneにして、デーモンモジュールがpolｌしないようにする。
【０１０１】
実際には、まず、ステップS2701で通知方法を調べ、その方法がpopup window やvoice messageのときには、ステップS2703で、httpプロトコルでデータが送信される。方法が電話などのときには、ステップS2705で、そのデバイスに通知能力があるかを調べ、その能力がある時には、ステップS2704で、その指定された方法で通知を行う。デバイスに能力がないときには、ステップS2706で中間点を調べる。この中間点では指定された発行のメカニズムをサポートしている。ステップS2707で、通知のメッセージとその詳細をHTTPプロトコルで中間デバイスに送信する。この方法でメール、Fax、ポケベルなどにも対応できる。
【０１０２】
図28は、サーバに対する入力情報と処理との対応関係を示す図である。それに対応する処理をまとめたものである。
【０１０３】
ここで、Print Job、Send Job、Cancel Job、Send Notification、Receive HTTP Notificationは、制御部602が司る。このモジュールは、プリンタのバックエンドのメインとなるモジュールであり、「ここで、今すぐにJobを印刷する。」「ここで、後でJobを印刷する。」「違う場所で、今すぐにJobを印刷する。」「違う場所で、後でJobを印刷する。」「今すぐに、または後で、他デバイスにJobを送信する。」「スケジュールを変更する。」「JobのActionをキャンセルする。」「通知のタイプを設定する（音声、ポップアップウィンドウ、電話、E-mail、Fax)。」「通知を受取る。」「デバイスのステータスを取得または設定する。」といった動作を実現する。
【０１０４】
このモジュールは、DBとその呼び出しがそれを用いるモジュール（GUIモジュールやDaemonモジュールなど）にtransparentとなる形でDBモジュールに覆い被さっている。
【０１０５】
図29は、デーモン105の起動からの処理手順を示すフローチャートである。
【０１０６】
デーモンモジュール105は、絶えずDBとファイルをポーリングして、後で実行されるように登録されているActionや操作を実行する。これらの全ての場合、エントリはDB中に作成される。
【０１０７】
まず、ステップS2901で、無限ループ中でポーリングを行うスレッドを作成し、“今”実行しなければならないJobをpollする。DB中にJob(Action)を発見すると、そのActionタイプを調べる（ステップS2902〜2905）。
【０１０８】
ActionがPrintである場合には、ステップS2906で、PrintJob()関数をよび、印刷を実行する。ActionがSendである場合には、ステップS2908で、ConstructSendMessage()を呼び、メッセージを作成した後、ステップS2909でSendJob()関数を呼び、送信を実行する。
【０１０９】
ActionがHoldである場合には、ステップS2907でCancelJob()関数をよび、Jobをキャンセルする。
【０１１０】
これらの処理の後、ステップS2910でnotificationを調べる。
【０１１１】
図30はデーモンモジュールのNotification処理手順を示すフローチャートである。
【０１１２】
まず、ステップS3001で、このデバイスから発行しなければならない通知が存在するかを、関数PollNotify()を呼ぶことによって調べる。発行すべきnotificationが存在する場合には、ステップS3002で、SendNotification()関数を読んで通知を発行する。Notificationがなければ、ステップS3003で、アプリケーションファイルの存在をチェックする。
【０１１３】
ファイルが存在する場合には、ステップS3005で、このファイルからコマンドラインパラメータを読んだ後、このファイルを削除する。ShowNotify.Exeモジュールを起動し、コマンドラインパラメータをpassする。
【０１１４】
最後に、PullPrintの場合には、ステップS3007でPrintOcx.EXEファイルを起動し、Scheduleの場合には、ステップS3008でDataDumo.Exeファイルを起動する。
【０１１５】
図31はデーモンが扱うjobの種類と対応する処理との関係を表した図である。
【０１１６】
図32は、PrintPrinterJobの処理手順を示すフローチャートである。プロトタイプは、Int PrintPrinterJob(pPrinterName,pDocumentName,pVoid,Bufsize)である。
【０１１７】
この関数はプリンタにJobがスプールされていることをプリントする関数である。実際には、指定されたプリンタをオープンし、そのプリンタにJobがスプールされていることを通知し、そのプリンタにデータを書き込み、プリンタをクローズする（ステップS3201〜3204）。
【０１１８】
図33は、Sendjobの処理手順を示すフローチャートである。
【０１１９】
ステップS3301で、送られるジョブが新規か、データベース中に既存のものかをチェックする。新規のジョブである場合、ステップS3303で、その詳細をデータベースに加える。ステップS3311で、ジョブのSender ・Receiverも同様にチェックする。それらがデータベースに存在する場合、ステップS3312で新規ActionはユーザIDに加えられ、データベース中に存在しないものに対しては、ステップS3313で新規エントリを加える。
【０１２０】
既存のジョブが送られる場合にはSenderへのActionをチェックする。ActionがSendで、ステータスがTodoまたはActiveである場合、Action のWhentodoタイムをJobMessageが作成された新しい時間に変更する。ステップS3313で、ActionがSendで、既に実行されている場合には、新しいActionをデータベースに加える。ActionがSendでない場合、このジョブにエントリされたActionが、データベースに作成される。
【０１２１】
全ての場合において、ジョブのReceiverの存在がチェックされ、もし、Receiverがデータベースに存在しない場合には、新規エントリが作成される。ActionがHoldで、ActionStatusがTodoのとき、ActionをSendに変更しWhenTodoタイムをJobMessageが作成された新しい時間に変更する。ActionStatusがTodoでないときには、ActionがSendである新しいレコードを作成し、WhenTodoTimeをJobMessageに指定された新しい時間に設定する。
【０１２２】
図34は、ReceivejobDataの処理手順を示すフローチャートである。
【０１２３】
まず、ステップS3400で、"Deny Jobs From Person/Device"というチェック項目を見て、ここに設定されている送信元からのジョブの場合、ステップS3417で、ジョブの受け取りを拒否する。この項目は、管理者によって設定される。
【０１２４】
図134は、ジョブの拒絶の設定のための設定画面を示す図である。同図において、"Deny Jobs From Person"には、拒否すべきユーザの識別子を設定する。"Deny Jobs From Device"には、拒否すべき装置を設定する。更に、図77につき後述する命令の設定において説明するように、拒否する。
【０１２５】
有効期限や拒否すべき処理の種類を設定するようにしてもよい。以上のようにして設定されたチェック項目をみて、送信元のユーザあるいは装置からのJobの受け取りの許可・不許可を判断し、許可されていれば、受け取り処理を行う。
【０１２６】
受け取られるジョブは、新しいジョブである場合と、既存のジョブである場合の二つの場合が想定される。
【０１２７】
新しいジョブが受け取られる場合、ステップS3402で、新しいエントリをジョブの詳細に加える。Senderが存在しない場合は、ステップS3404でSenderのエントリを加える。ステップS3405でAction、Notificationsも同様に加える。Senderが存在する場合、ステップS3406でNotificationsを加える。もしもReceiverが存在しない場合にはステップS3408で追加する。ステップS3409でReceiverのActionも追加する。
【０１２８】
既存のジョブが受け取られる場合、ジョブのReceiverをチェックする。もし、Receiverが存在し、受け取られたのと同じActionを持つ時には、前のもののActionステータスはキャンセルとされ、新規にレコードが作成される。Receiverに関するActionが受け取られたのと違うActionを持つ時には、新規エントリがReceiverに関して加えられる。場合によってはNotificationsも加えられる。Usertypeが異なる場合を除き、ActionステータスはTodoに設定される。
【０１２９】
図35は、GetListOfJobAttributeの処理手順を示すフローチャートである。
【０１３０】
指定された場所でのユーザの全ジョブをチェックし、そのユーザのジョブの全詳細を返す。ジョブはHeldjobs、またはHistoryjobsの２つである。データベースはUserIDごとにジョブをサーチし、全てのジョブがピックアップされてリストに加えられる。このリストが返される(ステップS3501〜3507)。
【０１３１】
図36は、PollJobの処理手順を示すフローチャートである。
【０１３２】
UserタイプがReceiverで、ActionStatusがTodoで、WhenTodoが現システム時間よりも短いを検索する（ステップS3601〜3605）。Jobが存在したら、Jobの詳細を取得し、ActionSetにデータを設定して、TRUEを返す（ステップS3606〜3608）。Jobが存在しないときには、FALSEを返す（ステップS3609）。
【０１３３】
図37は、PollNotifyの処理手順を示すフローチャートである。
【０１３４】
CanNotifyがTRUEで、WhetherToNotifyがTRUEで、WhenToNotifyが現システム時間よりも短い最初のレコードを検索する（ステップS3701〜3705）。レコードが存在するときには、notificationの詳細を取得し、NotificationSetにデータを設定して、TRUEを返す（ステップS3706〜3708）。レコードが存在しないときには、FALSEを返す（ステップS3709）。
【０１３５】
図38は、CancelActionの処理手順を示すフローチャートである。
【０１３６】
まず、指定されたActionIDを持つレコードを検索する。該当レコードが存在すれば、同じActionIdをもつJobを検索し、そのサイズをチェックする（ステップS3801〜3804）。そのサイズが管理者が設定するJobSizeLimitよりも小さい場合には、ステップS3805で、ActionStatusを調べる。このActionStatusがDoneであるか、ジョブのサイズがJobSizeLimit以上の場合、ActionStatusをDeletedに変更し、そのレコードを削除する（ステップS3807〜3808）。それ以外のときは、ステップS3806で、ActionStatusをキャンセルとする。そして、ステップS3809で、ActionIDに対応する全てのNotificationを削除する。
【０１３７】
図39は、EditActionの処理手順を示すフローチャートである。
【０１３８】
指定されたActionIDを持つレコードを検索し、該当レコードが見つかったら、Actionステータスを受け取ったパラメータに変換する（ステップS3901〜3903）。
【０１３９】
図40は、EditActionの処理手順を示すフローチャートである。図39につき説明したものとは、プロトタイプが異なる。
【０１４０】
指定されたActionIDを持つレコードを検索し、該当レコードのActionがActionIDのActionと一致し、かつ、Actionステータスが保留である場合に、Actionステータスを受け取ったパラメータに変換する（ステップS4001〜4006）。該当レコードがない場合には、ステップS4004で、新規Actionを追加する。
【０１４１】
図41は、RescheduleActionの処理手順を示すフローチャートである。
【０１４２】
指定されたActionIDを持つレコードを検索する。該当レコードが見つかり、Action Statusがdoneでなければ、WhenTodoを受け取ったNewTimeに変換する（ステップS4101〜4104）。
【０１４３】
図42は、RescheduleActionの処理手順を示すフローチャートである。図41につき説明したものとは、プロトタイプが異なる。
【０１４４】
ステップS4201で、指定されたActionIDを持つレコードを検索する。該当レコードが見つかり、UserTypeが一致していれば、Actionステータスをキャンセルに変更し、ActionステータスがTodoである新規レコードを追加する(ステップS4201〜4204)。該当レコードが見つからない場合、ユーザの存在をチェックする。ユーザが見つかればUserIDをpickし、見つからない場合は新規ユーザを追加してからUserIDをpickする。このUserIDに一致する新規Actionを追加する(ステップS4206〜4209)。
【０１４５】
図43は、RescheduleActionの処理手順を示す図である。図41、42につき説明したものとは、プロトタイプが異なる。
【０１４６】
指定されたActionIDを持つレコードを検索する。該当レコードが見つかったら、ActionステータスとActionをチェックする。ActionがActionIDと一致し、かつActionステータスが保留で未了の場合、WhenTodoタイムを新しい時間に変更する。ActionIDの全Notificationを削除し、新規Notificationを追加する(ステップS4301〜4302、4304〜4308)。該当レコードが見つからない場合、ステップS4303で、ActionステータスがTodoである新規Actionを追加し、WhenTodoタイムを新しい時間に変更する。
【０１４７】
図44は、AddNotificationの処理手順を示すフローチャートである。
【０１４８】
Notification に新規レコードを追加する。パラメータの総合情報(GeneratedFrom parameter)をチェックして、これに関する新規エントリを作成する。
【０１４９】
図45は、AddInstructionの処理手順を示すフローチャートである。
【０１５０】
ReceieveJobまたは、SendJobが発生する時に、Instructionの設定が呼び起こされる。まず、ステップS4501で、データベース上に指定されたUserIdの存在を確認し、存在しないときには処理を終了する。存在するときには、ステップS4502で、Instructionリストからレコードを取得し、ステップS4503で、このUserに新しいinstructionを追加する。
【０１５１】
Instructionは、データベースのInstructionテーブルにInstructionを追加する。関連するActionと、Instructionが満たされて与えられたNotificationを、Actionテーブル及び Notificationテーブルに反映する(ステップS4504〜4506)。
【０１５２】
Receiveジョブ・Sendジョブいずれの場合においても、これらを生成する Instructionが満たされた時には、Actionテーブル及び Notificationテーブルに新規Actionと新規 Notificationを生成するテンプレートとして作用するレコードを追加する。
【０１５３】
図46は、GetInstructionの処理手順を示すフローチャートである。
【０１５４】
この関数は、ReceieveJobDataとSendJobDataによって呼ばれる。まず、ステップ4601で、Instructionテーブルの全レコードにつき、ActionタイプがReceiveまたはSendであるかをチェックし、指定されたActionタイプの全命令を取得する。ステップS4602で、JobMessage中の詳細（命令として設定されている値）をチェックし、これらの値を用いて、instructionが実行できるか出来ないかを調べる。Instructionの有効性のチェックのために、check関数（後述）を用いる。Instructionが有効である場合には、ステップS4603でそのIdをリストに加え、ステップS4603で、全命令について処理が終了したなら、最後に有効なInstructionIdのリストを返す。
【０１５５】
図47は、ExecutionInstructionの処理手順を示すフローチャートである。この関数は、ReceieveJobDataとSendJobDataによって呼ばれる。ActionテーブルとNotificationテーブルのレコードを探す。これらのレコードは、Instructionリストの各Instructionに従って実行され、そのコピーをtodoフラグ(TRUEにセット)を付けて各テーブルに作成する（ステップS4701〜4708）。
【０１５６】
instructionによってセットされたdummy actionがあるかActionテーブルをサーチする。これらのdummy actionsに基づいて新しい適当なレコードが追加され、actionが実行される。
【０１５７】
Instructionによってセットされたdummy notificationがあるかサーチする。これらのdummy notificationに基づいて新しい適当なレコードが追加され、notificationが実行される。
【０１５８】
図89は、ResetInstructionsの処理手順を示すフローチャートである。プロトタイプは、Void ResetInstructions(dwUserId,pInstructionList)である。
【０１５９】
まず、指定されたUserIdの全ての命令を検索し、得られた命令と、その命令に対応する全てのAction,Notificatioinを削除する(ステップS8901〜8905)。その後、命令リストで渡された新しい命令を追加する(ステップS8906)。
【０１６０】
図90は、DeleteAllInstructionsの処理手順を示すフローチャートである。プロトタイプは、Void DeleteAllInstructions(dwUserId)である。
【０１６１】
指定されたUserIdの全ての命令を検索し、検索された命令と、その命令に対応する全てのAction,Notificatioinを削除する(ステップS9001〜9005)。
【０１６２】
図91は、DeleteInstructionsの処理手順を示すフローチャートである。プロトタイプは、Void DeleteInstructions(dwInstructionId)である。
【０１６３】
指定されたInstrucationIdの命令を検索し、検索された命令と、その命令に対応するAction,Notificatioinを削除する(ステップS9101〜9104)。
【０１６４】
図92は、GetInstructionDetailsの処理手順を示すフローチャートである。プロトタイプは、Void GetInstructionDetails(dwUserId)である。
【０１６５】
指定されたUserIdの命令を検索し、検索された命令と、その命令に対応するAction, Notificatioinの詳細をリストにして返す(ステップS9201〜9208)。
【０１６６】
図93は、Checkの処理手順を示すフローチャートである。プロトタイプは、Bool Check(nJobChk, JobNameConnector, nDeviceChk, DeviceConnector, nPersonChk, PerconConnector, nTimeChk, TimeConnector, nStatusChk, nStatusCode)である。
【０１６７】
この関数は、GetInstrucsionIds()の中で呼ばれる。命令が実行可能、有効であるかをチェックし、有効ならばTRUE、そうでなければFALSEを返す(ステップS9301〜9303)。
【０１６８】
図94は、GetJobDataの処理手順を示すフローチャートである。プロトタイプは、Void GetJobData(dwJobId,poJobMessage)である。
【０１６９】
指定されたJobIdのJobを検索し、Jobの詳細をJobMessageに設定する(ステップS9401〜9403)。
【０１７０】
図95は、GetJobAttributesの処理手順を示すフローチャートである。プロトタイプは、Void GetJobAttributes(dwJobId,poJobMessage)である。
【０１７１】
指定されたJobIdのJobを検索し、Jobの詳細をJobMessageに設定する。またJobのSenderとReceiverの詳細と、関係するActionの詳細を検索し、その詳細をJobMessageに設定する(ステップS9501〜9505)。
【０１７２】
図96は、GetActionAttributesの処理手順を示すフローチャートである。プロトタイプは、Void GetActionAttributes(dwActionId,poActionMessage)である。
【０１７３】
指定されたActionIdのActionを検索し、Actionの詳細をActionMessageに設定する。またJobのSender とRecieverのユーザ名、アドレスも、SenderとReceiverのActionMessageに設定する(ステップS9601〜9605)。
【０１７４】
図97は、DeleteJobの処理手順を示すフローチャートである。プロトタイプは、Void DeleteJob(dwUsrLd,dwJobId)である。
【０１７５】
ステップＳ9701で、指定されたJobIdをもつ、指定されたUserIdのActionを検索する。アクションが存在すれば、ステップＳ9703で、ActionStatusのタイプをチェックする。もしActionStatusがNot Doneであれば、ステップＳ9704で、ActionStatusをActionCancelに変更し、実行時間を現時刻に設定する。
【０１７６】
もしActionStatusがすでにDoneまたはCancelである場合には、ステップＳ9705で、そのActionと、関係する全てのNotificationを削除する。ステップＳ9706で、指定されたJobIdをもつ指定されたUserId以外のUserIdのActionがあるかをチェックし、なければステップＳ9707で、指定されたJobIdをもつ、指定されたUserIdのAction全てが既にDoneまたはCanceledであるかをチェックし、他のユーザのActionがなく、Action全てが既にDoneまたはCanceledである場合には、ステップＳ9708で、JobテーブルからこのJobのレコードを削除する。
【０１７７】
図98は、GetNotificationListの処理手順を示すフローチャートである。プロトタイプは、Void GetNotificationList(nGeneratedFrom,dwId)である。
【０１７８】
指定された生成場所（Action / Instructionのどちらか）から生成され、指定されたIdをもつ全てのNotificationを検索し、その詳細をリストに加えてリストを返す(ステップS9801〜9804)。
【０１７９】
図99は、SetNotificationConditionの処理手順を示すフローチャートである。プロトタイプは、Void SetNotificationCondition(nGenetaredFrom,dwId,nResult)である。
【０１８０】
指定場所(nGenerateFrom)から生成され、指定されたIdをもつNotificationを検索し、指定された値(nResult)で作成されていれば、WhetherToNotifyをTRUEに、指定された値で作成されていなければＦＡＬＳＥに、セットする(ステップS9901〜9905)。
【０１８１】
図100は、SetNotificationConditionの処理手順を示すフローチャートである。プロトタイプは、Void SetNotificationCondition(nGenetaredFrom,dwId,bCanNotifyFlag,nDummy)である。
【０１８２】
指定場所から生成された、指定NotificationIdを持つNotificationを検索し、CanNotifyFlagを指定値(bCanNotifyFlag)にセットする(ステップS10001〜10003)。
【０１８３】
図101は、SetNotificationStatusの処理手順を示すフローチャートである。プロトタイプは、Void SetNotificationStatus(dwNotificationId, bNotificationStatus)である。
【０１８４】
指定されたNotificationIdをもつNotificationを検索し、Notification Statusを指定値にセットする。(ステップS10101〜10103)。
【０１８５】
図102は、ClearHistoryの処理手順を示すフローチャートである。プロトタイプは、Void ClearHistory()である。
【０１８６】
まず、ステップS10201で、Action Statusを調べ、Done,Cancelled,Ignored,DeletedのActionを検索する。得られたActionの１つ１つについて、Action StatusがDoneのJobのときは、ステップS10204で、実行時間をチェックする。それ以外のときは、ステップS10205で、WhenTodo時間をチェックする。ステップS10206で、これらの時間と履歴(Hostory)の保持制限時間とを比較する。このようなジョブに対する制限は、管理者によって設定されるものである。図133に、このための設定画面の例を示す。ここでは、１箇月（１ Ｍｏｎｔｈ）に設定されている。比較の結果、実行時刻あるいは実行予定時刻から保持制限時間以上経過していた場合、ステップS１０２０７で、ActionとJobは削除される。
【０１８７】
図103は、DeleteAllPublicInfoJobsの処理手順を示すフローチャートである。プロトタイプは、Void DeleteAllPublicInfoJobs()である。
【０１８８】
PublicInfo Jobを全て検索し、ActionStatusをActionCancelにセットする(ステップS10304〜10304)。
【０１８９】
図104は、PrintPublicInfoの処理手順を示すフローチャートである。プロトタイプは、Void PrintPublicInfo(dwActionId)である。
【０１９０】
指定されたActionIdのActionをサーチし、PublicInfoJobがあるかどうかチェックする。存在するときには新しいActionを追加する。このActionをPublicInfoで、ActionがPrint、WhenTodoが現時刻、ActionStatusがTodoであるようなActionに設定する(ステップS10401〜10407)。
【０１９１】
図105は、SearchDataの処理手順を示すフローチャートである。プロトタイプは、Void SearchData(dwUserId,poSearchData)である。
【０１９２】
指定されたユーザの全Jobリストを取得し、その詳細とSearch Dataオブジェクト中の詳細を比較する。詳細がマッチしたら、新リストへのノードを追加し、最後に新リストを返す(ステップS10501〜10507)。
【０１９３】
図48はデスクトップのサーバコンポーネントのクライアントの要求に対する処理手順を示すフローチャートである。
【０１９４】
サーバコンポーネントは、ステップS4801で、クライアントの要求を取得し、対応する処理を行う。要求がloginであったときは、まずlogin verbとリモートデバイスリストを取得し、ユーザパスワードを取得する(ステップS4803〜4804)。その後ユーザに対応するHTMLページを作成し、ユーザパスワードを保存して、クライアントコンポーネントに送信して処理を終える(ステップS4805〜4806、4814)。
【０１９５】
Print a File要求の場合には、ユーザパスワードと印刷するファイル名を取得する。外部のアプリケーションを呼び、このアプリケーションが用いる印刷用ファイルへ指定されたファイル名のファイルを印刷する。この出力用印刷ファイルをメッセージオブジェクトに変換し、リモートデバイスの始めのデバイスへJobを送信する。最後に対応するHTMLページを作成し、クライアントコンポーネントに送信して処理を終える(ステップS4807〜4813、4814)。クライアントの要求が、「Read a Mail」「Print a Mail」であった場合は、図49につき後述する。クライアントの要求が、「View Schedule」「Print Schedule」であった場合は、図50につき後述する。クライアントの要求が、「Goto Other Device」であった場合は、図51につき後述する。クライアントの要求が、「logout」「help」であった場合は、図52につき後述する。
【０１９６】
図49は、メールに関する要求の処理手順を示すフローチャートである。これは、クライアントの要求が、「Read a Mail」「Print a Mail」であった場合の手順である。
【０１９７】
要求がRead a Mailであったときは、まずメールサーバのユーザパスワードを取得し、メールのセッションをオープンする。指定されたメールを読んだ後、セッションをクローズする(ステップS4902〜4905)。
【０１９８】
Print a Mail要求の場合には、Read a Mail要求と同様の処理を行った後、メールをファイルへ書き出し、Jobメッセージを作成した後、リモートデバイスリストの最初のデバイスへJobを送信する(ステップS4906〜4912)。
【０１９９】
どちらの場合も、最後に対応するHTMLページを作成し、作成したページをクライアントコンポーネントに送信して終わる(ステップS4913〜4914)。
【０２００】
図50は、スケジュールに関する要求の処理手順を示すフローチャートである。クライアントの要求が、「View Schedule」「Print Schedule」であった場合のデスクサーバの処理手順を表す。
【０２０１】
要求がView Scheduleあった場合、スケジュールのタイプがDailyかMonthlyかを調べ、スケジュールデータを取得する(ステップS5002〜5003)。要求がPrint Scheduleの場合は上記と同様の処理を行った後、データを印刷用ファイルに書き出し、Jobメッセージを作成して、リモートデバイスリストの最初のデバイスへJobを送信する(ステップS5004〜5009)。
【０２０２】
どちらの場合も、対応するHTMLページを作成し、そのページをクライアントコンポーネントに送信して処理を終える(ステップS5010〜5011)。
【０２０３】
図51は、他のデバイスに関する要求の処理手順を示すフローチャートである。クライアントの要求が、「Goto Other Device」であった場合のデスクのサーバの処理手順を表す。
【０２０４】
要求がGoto Other Deviceの場合、デバイス名とデバイスアドレスを取得する。その後、そのデバイスをリモートデバイスリストに追加し,login verbを作成する(ステップS5102〜5104)。Login verbによって、デバイスへログインし、対応するHTMLページを作成し、最後にクライアントコンポーネントにページを送信して終わる。この処理は、図16につき説明したものと同様である。
【０２０５】
図52は、ログアウト及びヘルプに関する要求の処理手順を示すフローチャートである。クライアントの要求が、「logout」「help」であった場合のデスクのサーバの処理手順を表す。
【０２０６】
Logout要求の場合には、ステップS5202でリモートデバイスリストが空かを調べ、空のときは、ステップS5205で、ステータスに従ってOpeningScreenページを作成する。空でないときは、リストが空になるまで、ステップS5203で次のデバイスにlogin verb=Disconnectでログインし、ステップS5204でそのデバイスをリモートデバイスリストから削除することを繰り返す。すなわち、リモートデバイスリスト中の全てのデバイスをログアウトする。リストが空になったら、ステップS5205で、OpeningScreenページを作成する。
【０２０７】
Help要求の場合、ヘルプコンテキストパラメータを取得し、対応するヘルプスクリーンHTMLページを作成する(ステップS5206〜5207)。
【０２０８】
どちらの場合も作成したHTMLページをクライアントコンポーネントに送信して処理を終える。
【０２０９】
図53は、初期メニュー画面からの処理手順を示すフローチャートである。図106に、初期メニューの画面例を示す。ここで、プリントキューにジョブがある場合には、ステータス画面に一覧表示される。各ジョブの情報としては、ジョブ名、送信者が表示される。
【０２１０】
初期メニューでは、ステップS5301で、ユーザは自分の希望する項目を選択する。ステップS5302で、選択項目が判別され、その項目に従って新しい画面が表示される。
【０２１１】
まず、「new interaction（新しい操作）」項目を選択すると、ステップS5303において、図55につき後述する新規の処理（ログイン処理）に進み、画面は「ログイン」画面（図112）へと遷移する。
【０２１２】
「Print URL（URLの印刷）」項目を選択すると、画面は「URLの印刷」画面（図107）へと遷移する。ステップS5311において、ＵＲＬを直接入力あるいは参照により指定して「Ｇｏ」を選択すると、ステップS5312で情報が取得され、プレビューされる。ステップS5313で、確認した内容を印刷する。その後「初期メニュー」画面へ戻る。
【０２１３】
「Ｐｕｂｌｉｃ Ｉｎｆｏ（公開情報）」項目を選択すると、ステップS5314において、図54につき後述する公開情報の処理に進み、画面は「公開情報の処理」画面（図110）へと遷移する。
【０２１４】
「Ｇｏｔｏ Ｄｅｖｉｃｅ（他のデバイス）」項目を選択すると、ステップS5315において、他のデバイスにアクセスするための設定画面（図81）が表示される。以後、図51につき説明した他のデバイスへアクセスする処理の「Ｄｅｖｉｃｅ」の場合の処理が行われる。
【０２１５】
また、この初期画面では、プリントキューのジョブを選択することができる。ジョブを選択するには、所望のジョブ名の前に表示されたボタンにタッチする。このようにして「特定のJob」が選択されると、ステップS5304においてパスワード入力画面（図108）が表示される。ここで、パスワードを入力し、選択されたJobにつけられたパスワードと一致すると、プリントキュー内で選択されたジョブに対する処理の設定画面（図109）が表示される。
【０２１６】
続いてJobに対するActionの選択がステップS5305において行われ、ステップS5306では、アクションに関する時間が設定される。アクションとして「後で印刷（Ｐｒｉｎｔ Ｌａｔｅｒ）」を選択した場合、印刷時期が設定できる。ここで、印刷時期は、具体的な日時（絶対日時）によって設定できるとともに、「１時間後（Ａｆｔｅｒ １ Ｈｏｕｒ）」のように設定時点からの経過時間による相対的な日時でも設定できる。この設定のためには、「１時間後」、「２時間後」、「６時間後」、「明日」、「明後日」、「１週間後」、「２週間後」のような項目をメニューとして用意しておき、その中から選択できるようにする。また、絶対的な日時で設定する場合、日付は現在の日付をデフォルト値とし、他の日付を選ぶ場合に、カレンダをポップアップさせ、該当する日付にタッチして入力する。更に必要であれば時刻を現在時刻から変更する。
【０２１７】
「保留（Ｈｏｌｄ Ｈｅｒｅ）」を選択した場合、保留期間を設定する。この場合も、後で印刷する場合と同様にして、保留期限を絶対日時で指定できるとともに、保留する期間、例えば１時間（Ｆｏｒ １ Ｈｏｕｒ）のような設定をメニュー選択できるようにする。また、以上の絶対日時、相対日時の指定の場合に、タッチキーボードを表示させて、直接数値を入力してもよいし、特定のボタンの指示回数に応じて、表示値をカウントアップ・ダウンするようにしてもよい。
【０２１８】
以上のように選択・設定されたアクションや日時の項目に従って、Actionが設定・実行される。まず、「後で印刷」が選択されると、ステップＳ５３０８で、印刷ジョブがキューから削除されて、印刷時刻とともに保留ジョブのリストに登録され、「初期メニュー」画面へ戻る。その後、設定時刻になると、印刷が行われる。
【０２１９】
また、「保留」が選択されると、ステップＳ５３０９で、印刷ジョブがキューから削除されて、保留期限とともにアクションとして保留が設定され、保留ジョブのリストに登録され、「初期メニュー」画面へ戻る。その後、保留期間の間、Jobは保留され、期限までに何もしないと、取り消される。
【０２２０】
また、「ポーズ（Ｐａｕｓｅ/Ｒｅｓｔａｒｔ Ｐｒｉｎｔｉｎｇ）」が選択されると、ステップＳ５３１０で、印刷を一時停止し、「初期メニュー」画面へ戻り、後で「再スタート（Ｐａｕｓｅ/Ｒｅｓｔａｒｔ Ｐｒｉｎｔｉｎｇ）」が選択される（同じボタンを再押下する）のを待つ。「印刷キャンセル（Ｃａｎｃｅｌ Ｐｒｉｎｔｉｎｇ）」が選択されると、印刷ジョブがキューから削除され、履歴にこのジョブのアクションとして「キャンセル」が記録され、「初期メニュー」画面へ戻る。
【０２２１】
図54は、公開情報の処理手順を示すフローチャートである。初期メニューにおいて「公開情報の処理」項目が選択された場合の画面遷移と処理の流れを示したものである。まず、ステップＳ５４０１で、このプリンタ上の公開情報のリストを表示する。図110は、そのような公開情報のリストとともに公開情報の処理設定画面を表示した例を示す図である。このリストに表示されるのは、公開情報という属性を持つ情報（公開というアクションを持つジョブ）であり、パスワード無しで印刷することができる。
【０２２２】
ステップＳ5402で、リストから特定のジョブを選択した場合には、ステップＳ5405に進み、選択されたジョブに対する処理を行なう。「他のデバイスから（Ｆｒｏｍ Ｏｔｈｅｒ Ｄｅｖｉｃｅ）」を選択した場合、他のデバイスにある公開情報を処理するために、ステップＳ5415に進む。
【０２２３】
ステップＳ5405では、選択されたジョブに対する処理を選択する。「印刷」を選択した場合には、ステップＳ5407で、通常のジョブの印刷処理につき後で詳述する印刷場所や必要なら印刷時刻の設定を実行し、ステップＳ5408で選択された公開情報の印刷を実行する。「プレビュー」を選択した場合には、ステップＳ5409でプレビューを実行し、ステップＳ5410で次の処理を選択する。
【０２２４】
ステップＳ5406或いはＳ5410で「追加（Ｍａｋｅ Ｊｏｂ Ａｓ Ｐｕｂｌｉｃ Ｉｎｆｏ．Ｏｎ Ｏｔｈｅｒ Ｄｅｖｉｃｅ）」を選択した場合には、選択した情報を他のデバイス上で公開するために、公開するためのデバイスを指定して、選択した公開情報をそのデバイスの公開リストに追加する設定を行なう。図111は、情報を他のデバイス上で公開するための設定画面の例を示す図である。
【０２２５】
ステップＳ5412では、追加先として、デバイスのアドレスと装置名を設定し、更に、いつまで公開するか、すなわち、公開期限を設定する。この場合も、前述のように、公開期限を絶対日時で設定してもよいし、現時点からの公開期間を設定してもよい。また、すぐに公開したくなければ、公開を開始する日時を設定してもよい。この場合も、「１週間後」のような相対的な設定も可能である。公開期間を制限するには、公開情報のリストを表示する際に、設定された期間をチェックして期間外のものを対象外とすればよい。また、定期的にリストをチェックして、期間が過ぎたものをリストから削除するようにしてもよい。
【０２２６】
一方、ステップS５４１５では、他のデバイスにアクセスするために、既に述べたように、他のデバイスにアクセスするための設定画面（図81）を表示し、デバイスのアドレスと名前を指定してアクセスする。ステップS5416では、アクセスした装置から公開情報リストを取得して、表示する。以後は、自装置における装置と同様に処理が実行される。
【０２２７】
図55は、ログイン処理手順を示すフローチャートである。初期メニューにおいて新規の処理を行うと選択された場合の処理である。まず、ステップS5501で、「ログイン」画面（図112）を表示し、入力されたユーザの識別子をチェックし、ログインが許可されれば、ステップS5502で、今ログインしたユーザに有効なジョブ（処理が実行されていない保留されたジョブ）があるかをチェックする。ジョブがあれば、ステップS5504で、そのジョブのリスト（図113）を表示して、図56につき後述するジョブを選択してアクションを行なう処理に進む。ジョブがなければ、ステップS5503で、メインメニュー（図121）を表示して、図64につき後述するメインメニューからの処理へ進む。
【０２２８】
図56は、ジョブを選択してアクションを行なう処理手順を示すフローチャートである。ユーザのログイン時にそのユーザに対して有効なJobが存在する場合の処理である。ステップS5601で、ユーザの保留されたジョブのリストを表示する。図113は、保留されたジョブのリストの例を示す図である。
【０２２９】
ここで、保留されているジョブには、設定された日時に印刷が予定されているジョブ、設定された日時に送信が予定されているジョブ、設定された日時まで単に保持されている（その時が来るまでに何もしないと取り消される）ジョブがある。リストには、ジョブ名、送信者あるいは受信者、アクションの種類（印刷、送信、保持）、アクションの実行予定日時などが、表示される。これらのジョブは、アクションの種類に応じて、色を変えたり、異なるマークを付けるなど、種類が識別可能な表示態様で表示される。なお、装置には、実行済みのジョブや、実行が取り消されたジョブも、ステータスを「実行済み」や「取り消し」に変えることで、履歴として記録されており、これらも必要に応じて、実行前のジョブとともにリストに表示させることができる。その場合、ステータスによっても、表示態様を変えるものとする。
【０２３０】
次に、ステップS5602で対象となるジョブを選択し、ステップS5603で、選択されたジョブに対する処理（アクション）を選択する。ステップS5603で、メインメニューが選択された場合には、ステップS5605に進み、図64につき後述するメインメニューからの処理を行なう。検索が選択された場合には、ステップS560６に進み、図65につき後述する検索処理を行なう。印刷が選択された場合には、ステップS560７に進み、図60につき後述する選択Jobの印刷処理を行なう。送信が選択された場合には、ステップS5610に進み、図62につき後述する選択Jobの送信処理を行なう。プレビューが選択された場合には、ステップS5608に進み、図57につき後述する選択Jobのプレビュー処理を行なう。削除が選択された場合には、ステップS5609に進み、図58につき後述する選択Jobの削除処理を行なう。スケジュールが選択された場合には、ステップS5611に進み、図59につき後述する選択Jobのスケジュール変更処理を行なう。ログアウトが選択された場合には、ステップS5612に進み、図52につき説明したログアウト処理を行なう。
【０２３１】
図57は、選択Jobのプレビュー処理手順を示すフローチャートである。有効なJobのリストから選択したJobに対して、プレビューを実行する際の処理の流れを表したものである。ステップS5701で、選択されたジョブのプレビューを実行する。図114は、ジョブのプレビューの画面表示例を示す図である。ステップS5702で、選択されたジョブに対する処理を選択する。
【０２３２】
ステップS5702で、印刷が選択された場合には、ステップS5704に進み、図60につき後述する選択Jobの印刷処理を行なう。送信が選択された場合には、ステップS5706に進み、図62につき後述する選択Jobの送信処理を行なう。削除が選択された場合には、ステップS5705に進み、図58につき後述する選択Jobの削除処理を行なう。スケジュールが選択された場合には、ステップS5707に進み、図59につき後述する選択Jobのスケジュール変更処理を行なう。キャンセルが選択された場合には、ステップS5708に進み、図56につき説明したJobのリスト表示に戻る。
【０２３３】
図58は、選択Jobの削除処理手順を示すフローチャートである。有効なJobのリストから選択したJobに対して削除を行う場合の処理の流れを示したものである。まず、ステップS58001で、削除されるジョブの識別情報とともにジョブのプレビューを行ない、ユーザに削除の確認を促す。図115は、削除の確認画面を示す図である。ここで、削除が選択されれば、ステップS5802で、ジョブの削除を実行する。この時、図97につき説明した処理が実行される。ここでは、選択されたジョブは、保留されているジョブのリストから選択されているので、アクションステータスは未実行であり、削除されたジョブはキャンセルというステータスとなってユーザの履歴として記録される。続いてステップS5803に進み、図56につき説明したJobのリスト表示に戻る。
【０２３４】
図59は、選択Jobのスケジュール変更処理手順を示すフローチャートである。有効なJobのリストから選択したJobに対してスケジュールの変更を行う場合の処理の流れを示したものである。ステップS5901で、変更対象となる現在のスケジュールを表示する。図116は、スケジュールの変更のための設定画面を示す図である。ステップS5902で、スケジュールの変更を行なう。続いてステップS5903に進み、図56につき説明したJobのリスト表示に戻る。
【０２３５】
図60は、選択Jobの印刷処理手順を示すフローチャートである。有効なJobのリストから選択したJobに対して印刷を行う場合の処理の流れを示したものである。ステップS6001で、選択ジョブの元々のアクションのタイプが判別される。元々のアクションが印刷である場合は、図61につき後述する印刷設定変更処理が実行される。元々のアクションが印刷でない場合は、ステップS6002で、印刷設定メニューが表示される。図117は、印刷設定メニューの例を示す図である。設定項目としては、どこで印刷するか（この装置か別の装置か）、別の装置の場合には、その装置名とアドレス、いつ印刷するかなどがある。
【０２３６】
別の装置で印刷する場合には、ジョブの履歴におけるアクションの種類として、送信が記録される。また、別の装置で印刷する際に、送信処理につき後述するセンド方式で送信してもよいし、トランスファ方式で送信するようにしてもよい。
【０２３７】
ステップS6003で、処理を選択する。印刷を選択した場合は、ステップS6005で、ユーザの設定内容を装置に設定し、すぐに印刷する場合は印刷を実行する。続いてステップS6006に進み、図56につき説明したJobのリスト表示に戻る。プレビューを選択した場合は、ステップS6007でプレビューを実行し、その後、印刷が必要であれば、ステップS6005に進む。通知を選択した場合は、ステップS6009で通知の設定を行い、印刷設定メニューに戻る。図118は、通知設定画面の例を示す図である。通知の設定項目としては、通知相手の人物名、通知媒体（ボイスメッセージ、ポップアップウィンドウ、電子メール、電話、FAX、ポケットベル）、通知先（アドレス、電話番号など）、通知の契機（成功時、失敗時、アクセス時）、通知の契機から実際に通知するまでの時間などがある。また、この画面では、各通知について設定内容を含んだ通知のリスト表示ができる。
【０２３８】
図61は、選択Jobの印刷設定の変更処理手順を示すフローチャートである。Jobに対する選択されたJobが元々のActionタイプが印刷である場合の状態遷移と処理の流れを示したものである。
【０２３９】
ステップS6101で、印刷設定変更メニューが表示される。図119は、印刷設定変更メニューの例を示す図である。ステップS6102で、ジョブに対する処理を選択する。「現時点でも印刷（Ｐｒｉｎｔ Ｎｏｗ Ａｌｓｏ）」を選択した場合、ステップS6104で、選択ジョブとは別に、選択ジョブの印刷時期を現時点としたジョブを追加する。「現時点で印刷（Ｐｒｉｎｔ Ｎｏｗ）」を選択した場合、選択ジョブの印刷時期を現時点に変更する。従って、これらの場合、現時点で印刷が行われる。「スケジュール」を選択した場合、ステップS6106で、図116のスケジュール変更メニューを表示する。ステップS6107で、メニューを使用して印刷スケジュールを変更する。いずれの場合も、続いてステップS6108に進み、図56につき説明したJobのリスト表示に戻る。
【０２４０】
図62は、選択Jobの送信処理手順を示すフローチャートである。有効なJobリストから選択したJobに対して送信を行う場合の状態遷移と処理の流れを示したものである。ステップS6201で、選択ジョブの元々のアクションのタイプが判別される。元々のアクションが送信である場合は、図63につき後述する送信設定変更処理が実行される。元々のアクションが印刷でない場合は、ステップS6202で、送信設定メニューが表示される。図70は、送信設定メニューの例を示す図である。
【０２４１】
ステップS6203で、設定を行ない、処理を選択する。送信先、送信時期について設定を行なう。これらの設定は、印刷の場合と同様である。処理として送信（Ｓｅｎｄ）を選択した場合には、ステップS6205で、選択されたジョブがコピーされ、送信される。この場合、選択されたジョブはジョブのリストに残る。一方、処理として転送（Ｔｒａｎｓｆｅｒ）を選択した場合には、ステップS6206で、選択されたジョブが送信され、選択されたジョブはジョブのリストから削除される。送信、転送のいずれの場合も、続いてステップS6209に進み、図56につき説明したJobのリスト表示に戻る。また、通知を選択した場合には、ステップS6207で、通知の設定画面を表示して、設定を行なう。設定後に、送信、転送の選択のために送信設定メニューの表示に戻る。
【０２４２】
図63は、選択Jobの送信設定の変更処理手順を示すフローチャートである。これは、選択されたJobの元々のActionタイプが送信である場合の状態遷移と処理の流れを示したものである。
【０２４３】
ステップS6301で、送信設定変更メニューが表示される。図71は、送信設定変更メニューの例を示す図である。ステップS6302で、ジョブに対する処理を選択する。「現時点でも送信（Ｓｅｎｄ Ｎｏｗ Ａｌｓｏ）」を選択した場合、ステップS6304で、選択ジョブとは別に、選択ジョブの送信時期を現時点としたジョブを追加する。「現時点で送信（Ｓｅｎｄ Ｎｏｗ）」を選択した場合、選択ジョブの送信時期を現時点に変更する。従って、これらの場合、現時点で送信が行われる。「スケジュール」を選択した場合、ステップS6106で、図116のスケジュール変更メニューを表示する。ステップS6307で、メニューを使用して送信スケジュールを変更する。いずれの場合も、続いてステップS6308に進み、図56につき説明したJobのリスト表示に戻る。また、「修正（Ｍｏｄｉｆｙ）」が選択された場合、ステップS6309で、修正メニューを表示する。
【０２４４】
図120は、修正メニューの例を示す図である。このとき、送信先が一覧表示される。ステップS6310では、新たな送信先の追加・設定、一覧より選択した送信先の修正（削除、変更）、送信先で実行すべき処理の変更、パスワードの変更、送信時期の変更などを行なう。通知の設定を行なう場合は、ステップＳ6312で通知設定メニューを表示して設定を行ない、修正メニューに戻る。通知の設定を行なわない場合は、送信設定変更メニューに戻る。
【０２４５】
図64は、メインメニューからの処理手順を示すフローチャートである。これは、メインメニューでの画面遷移と処理の流れを示したものである。ステップＳ6401で、メインメニューを表示する。図121は、メインメニューの例を示す図である。ステップS6402で、処理（アクション）を選択する。
【０２４６】
ステップS6402で、ログアウトが選択された場合には、ステップS6404に進み、図52につき説明したログアウト処理を行なう。ヘルプが選択された場合には、ステップS6405に進み、図52につき説明したヘルプ処理を行なう。検索が選択された場合には、ステップS6406に進み、図65につき後述する検索処理を行なう。印刷が選択された場合には、ステップS560７に進み、図67につき後述する印刷処理を行なう。送信が選択された場合には、ステップS6408に進み、図69につき後述する送信処理を行なう。削除が選択された場合には、ステップS6409に進み、図75につき後述する削除処理を行なう。命令の設定が選択された場合には、ステップS6410に進み、図77につき後述する命令の設定処理を行なう。スケジュールが選択された場合には、ステップS6411に進み、図78につき後述するスケジュール変更処理を行なう。公開情報の追加が選択された場合には、ステップS6412に進み、図66につき後述する公開情報の追加処理を行なう。他のデバイスが選択された場合には、ステップS6413に進み、図80につき後述する他のデバイスへのアクセス処理を行なう。デスクトップが選択された場合には、ステップS6414に進み、図80につき後述するデスクトップへのアクセス処理を行なう。
【０２４７】
図65は、検索処理手順を示すフローチャートである。これは、メインメニューから「検索」が選択された場合の処理の流れを示したものである。
【０２４８】
ステップＳ6501で、ジョブを検索するための検索条件を設定する。検索条件は、ジョブの設定時期、実行時期、実行状態、送信者などが利用でき、検索は、保留中のジョブに加えて、実行済みの履歴中のジョブも対象になる。特に、実行状態が実行済み（必要であれば、キャンセルも）であることを条件として検索すれば、履歴を表示させることができる。ステップＳ6502で検索を実行し、検索結果のリストを表示させる。ステップＳ6503で、検索結果よりジョブを選択し、ステップＳ6504で、選択したジョブに対する処理を選択する。
【０２４９】
ステップS6504で、印刷が選択された場合には、ステップS6506に進み、図60につき説明した選択Jobの印刷処理を行なう。送信が選択された場合には、ステップS6509に進み、図62につき説明した選択Jobの送信処理を行なう。プレビューが選択された場合には、ステップS6507に進み、図57につき説明した選択Jobのプレビュー処理を行なう。削除が選択された場合には、ステップS6508に進み、図58につき説明した選択Jobの削除処理を行なう。スケジュールが選択された場合には、ステップS6510に進み、図59につき説明した選択Jobのスケジュール変更処理を行なう。メインメニューが選択された場合には、ステップS6511に進み、図64につき説明したメインメニューからの処理を行なう。
【０２５０】
図66は公開情報への追加処理手順を示すフローチャートである。これは、「公開情報への追加」を選択した際の処理の流れを示したものである。ステップＳ6601で、公開情報とするジョブをジョブのリストから選択する。ステップＳ6602で、公開情報への追加メニュー（図111）を表示して、追加先、公開期限の設定を行なう。この詳細は、公開情報の処理で説明したものと同様である。但し、ここでは、公開する対象は、ユーザのジョブリスト中のジョブである。設定後、ステップＳ6603で、追加を指示すると、ステップＳ6605で、選択したジョブが設定した公開情報のリストに追加される。処理の終了後、キャンセルを選択すると、メインメニューへ戻る。
【０２５１】
図67は、印刷処理手順を示すフローチャートである。これは、メインメニューから「印刷」を選択した際の処理の流れを示したものである。
【０２５２】
ステップＳ6701で、印刷対象のジョブのある場所を選択する。図122は、印刷対象のジョブのある場所を選択するためのメニュー画面の例を示す図である。現在のデバイスを選択した場合、ステップＳ6703で、現在のデバイスの印刷Jobのリストを表示する。図123は、印刷対象のジョブを選択するためのメニューの例を示す図である。ステップＳ6704で、印刷するジョブを選択する。ステップＳ6705で、選択ジョブの印刷の設定を行なう。これは、図60につき説明したものと同様である。
【０２５３】
ジョブのある場所として、他のデバイスまたはデスクトップを選択した場合、ステップＳ6706で、デバイスのアドレスを指定し、ステップＳ6707で、そのアドレスのデバイスからログイン画面をダウンロードする。ステップＳ6708で、この画面にしたがって、ログインを実行する。ログインができたなら、ログインｖｅｒｂが印刷であるので、図51につき説明したように、ステップＳ6710で、図122の印刷対象のジョブを選択するためのメニュー画面がダウンロードされ、ここで、印刷デバイスを選択する。現在のプリンタで印刷する場合、ステップＳ6711に進み、図68につき説明するプリンタによるリモートプリント処理を行なう。デスクトップで印刷する場合、ステップＳ6712に進み、デスクトップによるリモートプリント処理を行なう。その他のデバイスで印刷する場合、ステップＳ6713に進み、他のデバイスによるリモートプリント処理を行なう。
【０２５４】
図68は、プリンタによるリモートプリント処理手順を示すフローチャートである。メインメニューから他のデバイスでの印刷を指定して、そのデバイスが同種のプリンタであった場合の、ログイン後における処理の流れを示している。処理の手順は、現在のデバイス上のジョブの印刷と同様である。但し、メニューやリストは、アクセス先の装置からダウンロードされる。
【０２５５】
図69は、送信処理手順を示すフローチャートである。これは、メインメニューから「送信」を選択した際の画面遷移と処理の流れを示したものである。
【０２５６】
ステップＳ6901で、送信対象ジョブのある場所は、このデバイスか、他のデバイスまたはデスクトップかを選択する。図124は、送信対象のジョブのある場所を選択するためのメニュー画面の例を示す図である。このデバイスを選択した場合、ステップＳ6902で、デバイス上のジョブのリストを表示する。図125は、送信対象のジョブを選択するためのメニューの例を示す図である。ステップＳ6903で、送信対象とするジョブを選択する。以後は、図62につき説明した選択ジョブの送信処理を行なう。
【０２５７】
送信対象ジョブのある場所として、他のデバイスまたはデスクトップを選択した場合、ステップＳ6904で、デバイスのアドレスを指定し、ステップＳ6905で、そのアドレスのデバイスからログイン画面をダウンロードする。ステップＳ6906で、この画面にしたがって、ログインを実行する。ログインができたなら、ログインｖｅｒｂが送信であるので、図51につき説明したように、ステップＳ6908で、図124の送信対象のジョブを選択するためのメニュー画面がダウンロードされ、ここで、送信デバイスを選択する。プリンタから送信する場合、ステップＳ6909に進み、図72につき説明するプリンタによるリモートセンド処理を行なう。デスクトップから送信する場合、ステップＳ6910に進み、デスクトップによるリモートセンド処理を行なう。その他のデバイスから送信する場合、ステップＳ6911に進み、他のデバイスからのリモートセンド処理を行なう。
【０２５８】
図72は、プリンタによるリモートセンド処理手順を示すフローチャートである。メインメニューから他のデバイスからの送信を指定して、そのデバイスが同種のプリンタであった場合の、ログイン後における処理の流れを示している。
【０２５９】
そのデバイス上にジョブが存在する場合に、ステップＳ7202で、送信ジョブのリストを表示する。ステップＳ7203で、ジョブのリストから送信するジョブを選択する。ステップＳ7204で、処理を選択する。ここで、送信処理を選択した場合は、選択ジョブの送信処理が行われる。この処理の手順は、図69につき説明した現在のデバイス上の選択ジョブの送信と同様である。但し、メニューやリストは、アクセス先の装置からダウンロードされる。
【０２６０】
ステップＳ7204で、検索を選択した場合には、ステップＳ7206で、送信対象ジョブを新たに検索する。ログアウトが選択された場合には、ステップS7207に進み、図52につき説明したログアウト処理を行なう。メインメニューが選択された場合には、ステップＳ7208で、メインメニューの表示に戻る。
【０２６１】
図75は、削除処理手順を示すフローチャートである。これは、メインメニューから削除を選んだ際の処理の流れを示したものである。
【０２６２】
ステップＳ7501で、削除対象ジョブのある場所は、このデバイスか、他のデバイスまたはデスクトップかを選択する。図73は、削除したいJobの存在する装置を選択するためのメニューの例を示す図である。このデバイスを選択した場合、ステップＳ7502で、デバイス上のジョブのリストを表示する。図74は、削除Jobのリストの例を示す図である。ステップＳ7503で、送信対象とするジョブを選択する。以後は、図58につき説明した選択ジョブの削除処理を行なう。
【０２６３】
削除対象ジョブのある場所として、他のデバイスまたはデスクトップを選択した場合、ステップＳ7505で、デバイスのアドレスを指定し、ステップＳ7506で、そのアドレスのデバイスからログイン画面をダウンロードする。ステップＳ7507で、この画面にしたがって、ログインを実行する。ログインができたなら、ログインｖｅｒｂが削除であるので、図51につき説明したように、ステップＳ7509で、図74の削除対象のジョブを選択するためのメニュー画面がダウンロードされ、ここで、ジョブを選択する。プリンタから削除する場合、ステップＳ7510に進み、図76につき説明するプリンタによるリモートデリート処理を行なう。デスクトップから削除する場合、ステップＳ7511に進み、デスクトップによるリモートデリート処理を行なう。その他のデバイスから削除する場合、ステップＳ7512に進み、他のデバイスからのリモートデリート処理を行なう。
【０２６４】
図76は、プリンタによるリモートデリート処理手順を示すフローチャートである。メインメニューから他のデバイスからの送信を指定して、そのデバイスが同種のプリンタであった場合の、ログイン後における処理の流れを示している。
【０２６５】
そのデバイス上にジョブが存在する場合に、ステップＳ7601で、ジョブのリストを表示する。ステップＳ7602で、ジョブのリストから削除するジョブを選択する。ステップＳ7603で、処理を選択する。ここで、削除処理を選択した場合は、ステップＳ7605で、図115の削除確認メニューが表示され、ステップＳ7606で、選択ジョブの削除処理が行われる。この処理の手順は、図58につき説明した現在のデバイス上の選択ジョブの削除と同様である。但し、メニューやリストは、アクセス先の装置からダウンロードされる。
【０２６６】
ステップＳ7604で、検索を選択した場合には、ステップＳ7607で、削除対象ジョブを新たに検索する。ログアウトが選択された場合には、ステップS7608に進み、図52につき説明したログアウト処理を行なう。メインメニューが選択された場合には、ステップS7609で、メインメニューの表示に戻る。
【０２６７】
図77は、命令の設定処理手順を示すフローチャートである。これは、メインメニューから命令の設定を選択した際の、画面遷移と処理の流れを示したものである。ステップS7701で、命令設定画面を表示する。図126は、命令設定画面の例を示す図である。ここでは、命令の実行条件を設定する。条件としては、ジョブ名、デバイス名、ユーザ名、命令の実行の契機となる状況（ジョブの受信時、送信中、印刷時、ステータスの変更など）、命令の有効期限あるいは期間（無期限を含む）、プリンタの状態が設けられており、これらのＡＮＤかＯＲかなども設定できる。図126に示す「On receiving jobs from others」のように、現在の設定内容が表示される。
【０２６８】
ステップS7702で、処理が選択される。ここで、「アクションの設定（Ｔａｋｅ Ａｃｔｉｏｎ）」を選択すると、ステップS7704へ進み、設定した条件が満たされたときに行なうべきアクションの設定を行なう。ここでは、ジョブの印刷、保留が設定できる。更に、ジョブの送信（転送）、キャンセルなどが設定できてもよい。通知を選択すると、ステップS7705で、通知の設定を行なう。命令の設定を選択すると、画面上で設定した命令が有効となる。命令の削除を選択すると、画面上の設定対象の命令が削除される。その後、ステップS7707で、メインメニューに戻る。有効期限を過ぎた命令は、実行済みのジョブと同様に履歴に残り、履歴の管理において、期限より更に一定期間が過ぎると削除される。
【０２６９】
図78は、スケジュール変更処理手順を示すフローチャートである。これは、メインメニューからスケジュールの変更を選択した際の処理の流れを示したものである。
【０２７０】
ステップＳ7801で、スケジュールの変更画面を表示して、変更対象ジョブのある場所は、このデバイスか、他のデバイスまたはデスクトップかを選択する。図127は、変更したいJobの存在する装置を選択するためのメニューの例を示す図である。現在のデバイスを選択した場合、ステップＳ7803で、デバイス上のジョブのリストを表示する。図128は、スケジュールの変更対象Jobの選択画面の例を示す図である。ステップＳ7804で、変更対象とするジョブを選択する。ステップS7805で、図59につき説明した選択ジョブのスケジュールの変更を行なう。
【０２７１】
変更対象ジョブのある場所として、他のデバイスまたはデスクトップを選択した場合、ステップＳ7806で、デバイスのアドレスを指定し、ステップＳ7807で、そのアドレスのデバイスからログイン画面をダウンロードする。ステップＳ7808で、この画面にしたがって、ログインを実行する。ログインができたなら、ログインｖｅｒｂがスケジュールの変更であるので、図51につき説明したように、ステップＳ7810で、図128のスケジュール変更対象のジョブを選択するためのメニュー画面がダウンロードされ、ここで、ジョブを選択する。プリンタのスケジュールを変更する場合、ステップＳ7811に進み、図79につき説明するプリンタによるリモートリスケジュール処理を行なう。デスクトップのスケジュールを変更する場合、ステップＳ7812に進み、デスクトップによるリモートリスケジュール処理を行なう。
【０２７２】
図79は、リモートリスケジュール処理処理手順を示すフローチャートである。メインメニューから他のデバイス（同種のプリンタ）のJobのスケジュール変更を選択した場合の処理の流れを示している。
【０２７３】
デバイス上にジョブが存在する場合に、ステップＳ7902で、ジョブの全リストを表示する。ステップＳ7903で、処理を選択する。ここで、ジョブを選択し、スケジュールの変更処理を選択した場合は、ステップＳ7905で、図116の選択ジョブのスケジュールの変更メニューが表示され、選択ジョブのスケジュールの変更処理が行われる。この処理の手順は、図59につき説明した現在のデバイス上の選択ジョブのスケジュールの変更と同様である。但し、メニューやリストは、アクセス先の装置からダウンロードされる。
【０２７４】
ステップＳ7904で、検索を選択した場合には、ステップＳ7906で、スケジュールの変更対象ジョブを新たに検索する。ログアウトが選択された場合には、ステップS7907に進み、図52につき説明したログアウト処理を行なう。メインメニューが選択された場合には、ステップS7908で、メインメニューの表示に戻る。
【０２７５】
図80は、他のデバイスへのアクセス処理手順を示すフローチャートである。これは、メインメニューから他のデバイスへのアクセス、またはデスクトップへのアクセスを選択した場合の処理の流れを示している。ステップＳ8001で、デバイスのアドレスを指定し、ステップＳ8002で、そのアドレスのデバイスからログイン画面をダウンロードする。ステップＳ8003で、この画面にしたがって、ログインを実行する。ログインができたなら、ログインｖｅｒｂがデバイスであるので、図51につき説明したように、ステップＳ8005で、図106の初期メニュー画面がダウンロードされ、操作対象デバイスを判別する。操作対象がプリンタである場合、ステップＳ8006に進み、自プリンタと同様に、他のプリンタの処理を行なう。操作対象がデスクトップである場合、ステップＳ8007に進み、図82につき後述するデスクトップの処理を行なう。操作対象が他のデバイスである場合、ステップＳ8008に進み、他のデバイスの処理を行なう。
【０２７６】
図82は、デスクトップの処理手順を示すフローチャートである。メインメニューからGoto My Desktopで自分のデスクを選んだ時の初期画面の画面遷移と処理の流れとを示している。まず、ステップＳ8201で、メインメニューを表示する。図129は、デスクトップメインメニューの例を示す図である。ステップS8202で、処理（アクション）を選択する。
【０２７７】
ステップS8202で、ファイル印刷が選択された場合には、ステップS8204に進み、図88につき後述するファイル印刷処理を行なう。未読メール取得が選択された場合には、ステップS8205に進み、図83につき後述する未読メール取得処理を行なう。既読メール取得が選択された場合には、ステップS8206に進み、図84につき後述する既読メール取得処理を行なう。スケジュール印刷が選択された場合には、ステップS8207に進み、スケジュール印刷処理を行なう。スケジュール参照が選択された場合には、ステップS8208に進み、スケジュール参照処理を行なう。アドレス帳参照が選択された場合には、ステップS8209に進み、アドレス帳参照処理を行なう。ログアウトが選択された場合には、ステップS8210に進み、図52につき説明したログアウト処理を行なう。
【０２７８】
図83は、未読メール処理手順を示すフローチャートである。これは、自分のデスクにアクセスして、未読メールを読もうとした際の処理の流れを示している。ステップS8300で、未読メールのリストを表示する。図85は、未読メールのリストの例を示す図である。ステップS8301で、処理対象のメールを選択する。ステップS8302で、この選択されたメールに対する処理を選択する。
【０２７９】
ステップS8302で、メインメニューが選択された場合には、ステップS8304で、デスクトップのメインメニューに戻る。「開く」が選択された場合には、ステップS8305で、選択されたメールを開いて内容を表示する。図86は、メールの内容の表示例を示す図である。ステップS8306で、前の表示や後の表示が選択された場合には、ステップS8305に戻り、対応するメールの内容を表示する。印刷や削除が選択された場合には、それぞれ、ステップS8308のメールの削除、ステップS8309のメールの印刷が実行される。ステップS8302で、印刷や削除が選択された場合にも、それぞれ、ステップS8308のメールの削除、ステップS8309のメールの印刷が実行される。全て印刷が選択された場合には、ステップS8310で、全てのメールが印刷される。「既読メール（Ｏｌｄ）」が選択された場合には、図84につき後述する既読メールの処理を行なう。
【０２８０】
メール印刷は自分のデスクにアクセスして、メールを取得して、印刷する。印刷に関しては、前述のジョブの印刷と同様に印刷先などを指定できる。全メール印刷は自分のデスクにアクセスして、全てのメールを取得して、印刷する。メール削除は、自分のデスクにアクセスして、メールを削除する。その際、ジョブの削除と同様に削除の確認が行なわれるようにしてもよい。
【０２８１】
図84は、既読メール処理手順を示すフローチャートである。これは、自分のデスクにアクセスして、既読メールを読もうとした際の処理の流れを示している。ステップS8401で、未読メールのリストを表示する。図8７は、既読メールのリストの例を示す図である。ステップS8402で、処理対象のメールを選択する。ステップS8403で、この選択されたメールに対する処理を選択する。
【０２８２】
ステップS8404で、メインメニューが選択された場合には、ステップS8405で、デスクトップのメインメニューに戻る。「開く」が選択された場合には、ステップS8406で、選択されたメールを開いて内容を表示する。図86は、メールの内容の表示例を示す図である。ステップS8407で、前の表示や後の表示が選択された場合には、ステップS8406に戻り、対応するメールの内容を表示する。印刷や削除が選択された場合には、それぞれ、ステップS8409のメールの削除、ステップS8410のメールの印刷が実行される。ステップS8302で、印刷や削除が選択された場合にも、それぞれ、ステップS8409のメールの削除、ステップS8410のメールの印刷が実行される。「未読メール（Ｕｎｒｅａｄ）」が選択された場合には、図83につき説明した未読メールの処理を行なう。
【０２８３】
図88は、ファイル処理の処理手順を示すフローチャートである。これは、自分のデスクにアクセスして、デスクトップ上のファイルに対して操作しようとした際の処理の流れを示している。ステップS8801で、ファイル取得のための設定を行なう。図130は、ファイル取得のための設定画面の例を示す図である。ここでは、ファイルネームが設定できる。ステップS8802で、取得のために実行すべき処理を選択する。
【０２８４】
ステップS8802で検索を選択した場合、ステップS8803で、検索条件を設定し、ステップS8804で、デスクトップのファイルの検索を実行し、ステップS8805で、設定条件に該当するファイルのリストが表示される。ステップS8802で、ファイル一覧（Ｓｈｏｗ Ａｌｌ）を選択した場合、デスクトップのファイルの一覧が表示される。図131は、デスクトップのファイルの一覧表示の例を示す図である。ステップS8807では、検索結果あるいは一覧表示から、ファイルを選択する。このようにして選択した場合、あるいはステップS8802で、ファイルネームを入力して取得を指示した場合、ステップS8808で、該当ファイルがデスクトップから取得される。ステップS8809で、このファイルに対する処理を選択する。図132は、取得ファイルに対する処理の選択画面の例を示す図である。ここで、印刷が選択された場合、ステップS8811で取得したファイルを印刷する。送信が選択された場合、ステップS8812で、取得したファイルを送信する。
【０２８５】
尚、本発明は、単一の機器からなる装置に適用しても、複数の機器から構成されるシステムに適用してもよい。また、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、装置あるいはシステムに供給し、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって達成してもよい。
【０２８６】
更に、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって、上述した実施形態の機能を直接実現するばかりでなく、そのプログラムコードの指示に基づいて、コンピュータ上で稼動しているＯＳなどの処理により、上述の機能を実現される場合も含まれる。
【０２８７】
これらの場合、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２８８】
【発明の効果】
以上説明したように、本発明によれば、処理対象情報に対して、新たな処理の設定や、現在の設定の変更を容易に実行することができるという効果がある。
【図面の簡単な説明】
【図１】実施形態の機能構成を示した図である。
【図２】本実施形態の機能構成の詳細を表した図である。
【図３】ユーザの操作に対応した情報の流れを説明した図である。
【図４】ユーザの入力をコマンドとして処理する流れを示した図である。
【図５】処理結果やステータス変化をユーザに表示する処理の流れを示した図である。
【図６】複数のデバイス間における、機能の関係を表した図である。
【図７】本実施形態に係るシステム構成図である。
【図８】本実施形態に係るプリンタの機能ブロック図である。
【図９】電源投入時の起動順序を示すフローチャートである。
【図１０】クライアントコンポーネントの動作を表すフローチャートである。
【図１１】クライアントの要求に対するサーバコンポーネントの処理手順を示すフローチャートである。
【図１２】  CancelAllPrinterjobsの処理手順を示すフローチャートである。
【図１３】  GetAllPrinterjobsの処理手順を示すフローチャートである。
【図１４】  SetPrinterJobStatusの処理手順を示すフローチャートである。
【図１５】要求「login」「logout」の処理手順を示すフローチャートである。
【図１６】要求「Goto Other Device」「Goto Desktop」の処理手順を示すフローチャートである。
【図１７】要求「Search」「Help」「Receive Job / Receive Notification」の処理手順を示すフローチャートである。
【図１８】  IdAnalyzeの処理手順を示すフローチャートである。
【図１９】  DUMMYの処理手順を示すフローチャートである。
【図２０】  IdAnalyzeNotifyの処理手順を示すフローチャートである。
【図２１】  RecieveHttpNotificationの処理手順を示すフローチャートである。
【図２２】要求「Print」「Send」「Delete」「Reschedule」「Preview」の処理手順を示すフローチャートである。
【図２３】  PrintJobの処理手順を示すフローチャートである。
【図２４】  SendJobの処理手順を示すフローチャートである。
【図２５】  SendJobによる送信の実行手順を示すフローチャートである。
【図２６】  CancelJobの処理手順を示すフローチャートである。
【図２７】  SendNotificationの処理手順を示すフローチャートである。
【図２８】サーバに対する入力情報と処理との対応関係を示す図である。
【図２９】デーモンの起動からの処理手順を示すフローチャートである。
【図３０】デーモンモジュールのNotification処理手順を示すフローチャートである。
【図３１】デーモンが扱うjobの種類と対応する処理との関係を表した図である。
【図３２】  PrintPrinterJobの処理手順を示すフローチャートである。
【図３３】  Sendjobの処理手順を示すフローチャートである。
【図３４】  ReceivejobDataの処理手順を示すフローチャートである。
【図３５】  GetListOfJobAttributeの処理手順を示すフローチャートである。
【図３６】  PollJobの処理手順を示すフローチャートである。
【図３７】  PollNotifyの処理手順を示すフローチャートである。
【図３８】  CancelActionの処理手順を示すフローチャートである。
【図３９】  EditActionの処理手順を示すフローチャートである。
【図４０】  EditActionの処理手順を示すフローチャートである。
【図４１】  RescheduleActionの処理手順を示すフローチャートである。
【図４２】  RescheduleActionの処理手順を示すフローチャートである。
【図４３】  RescheduleActionの処理手順を示すフローチャートである。
【図４４】  AddNotificationの処理手順を示すフローチャートである。
【図４５】  AddInstructionの処理手順を示すフローチャートである。
【図４６】  GetInstructionの処理手順を示すフローチャートである。
【図４７】  ExecutionInstructionの処理手順を示すフローチャートである。
【図４８】デスクトップのサーバコンポーネントの処理手順を示すフローチャートである。
【図４９】メールに関する要求の処理手順を示すフローチャートである。
【図５０】スケジュールに関する要求の処理手順を示すフローチャートである。
【図５１】他のデバイスに関する要求の処理手順を示すフローチャートである。
【図５２】ログアウト及びヘルプに関する要求の処理手順を示すフローチャートである。
【図５３】初期メニュー画面からの処理手順を示すフローチャートである。
【図５４】公開情報の処理手順を示すフローチャートである。
【図５５】ログイン処理手順を示すフローチャートである。
【図５６】ジョブを選択してアクションを行なう処理手順を示すフローチャートである。
【図５７】選択Jobのプレビュー処理手順を示すフローチャートである。
【図５８】選択Jobの削除処理手順を示すフローチャートである。
【図５９】選択Jobのスケジュール変更処理手順を示すフローチャートである。
【図６０】選択Jobの印刷処理手順を示すフローチャートである。
【図６１】選択Jobの印刷設定の変更処理手順を示すフローチャートである。
【図６２】選択Jobの送信処理手順を示すフローチャートである。
【図６３】選択Jobの送信設定の変更処理手順を示すフローチャートである。
【図６４】メインメニューからの処理手順を示すフローチャートである。
【図６５】検索処理手順を示すフローチャートである。
【図６６】公開情報への追加処理手順を示すフローチャートである。
【図６７】印刷処理手順を示すフローチャートである。
【図６８】プリンタによるリモートプリント処理手順を示すフローチャートである。
【図６９】送信処理手順を示すフローチャートである。
【図７０】送信設定メニューの例を示す図である。
【図７１】送信設定変更メニューの例を示す図である。
【図７２】プリンタによるリモートセンド処理手順を示すフローチャートである。
【図７３】削除したいJobの存在する装置を選択するためのメニューの例を示す図である。
【図７４】削除Jobのリストの例を示す図である。
【図７５】削除処理手順を示すフローチャートである。
【図７６】プリンタによるリモートデリート処理手順を示すフローチャートである。
【図７７】命令の設定処理手順を示すフローチャートである。
【図７８】スケジュール変更処理手順を示すフローチャートである。
【図７９】リモートリスケジュール処理処理手順を示すフローチャートである。
【図８０】他のデバイスへのアクセス処理手順を示すフローチャートである。
【図８１】他のデバイスにアクセスするための設定画面を示す図である。
【図８２】デスクトップの処理手順を示すフローチャートである。
【図８３】未読メール処理手順を示すフローチャートである。
【図８４】既読メール処理手順を示すフローチャートである。
【図８５】未読メールのリストの例を示す図である。
【図８６】メールの内容の表示例を示す図である。
【図８７】既読メールのリストの例を示す図である。
【図８８】ファイル処理の処理手順を示すフローチャートである。
【図８９】  ResetInstructionsの処理手順を示すフローチャートである。
【図９０】  DeleteAllInstructionsの処理手順を示すフローチャートである。
【図９１】  DeleteInstructionsの処理手順を示すフローチャートである。
【図９２】  GetInstructionDetailsの処理手順を示すフローチャートである。
【図９３】  Checkの処理手順を示すフローチャートである。
【図９４】  GetJobDataの処理手順を示すフローチャートである。
【図９５】  GetJobAttributesの処理手順を示すフローチャートである。
【図９６】  GetActionAttributesの処理手順を示すフローチャートである。
【図９７】  DeleteJobの処理手順を示すフローチャートである。
【図９８】  GetNotificationListの処理手順を示すフローチャートである。
【図９９】  SetNotificationConditionの処理手順を示すフローチャートである。
【図１００】  SetNotificationConditionの処理手順を示すフローチャートである。
【図１０１】  SetNotificationStatusの処理手順を示すフローチャートである。
【図１０２】  ClearHistoryの処理手順を示すフローチャートである。
【図１０３】  DeleteAllPublicInfoJobsの処理手順を示すフローチャートである。
【図１０４】  PrintPublicInfoの処理手順を示すフローチャートである。
【図１０５】  SearchDataの処理手順を示すフローチャートである。
【図１０６】初期メニューの画面例を示す図である。
【図１０７】  URLの印刷設定画面を示す図である。
【図１０８】パスワード入力画面を示す図である。
【図１０９】プリントキュー内で選択されたジョブに対する処理の設定画面を示す図である。
【図１１０】公開情報の処理設定画面を示す図である。
【図１１１】情報を他のデバイス上で公開するための設定画面の例を示す図である。
【図１１２】ログイン画面を示す図である。
【図１１３】保留されたジョブのリストの例を示す図である。
【図１１４】ジョブのプレビューの画面表示例を示す図である。
【図１１５】削除の確認画面を示す図である。
【図１１６】スケジュールの変更のための設定画面を示す図である。
【図１１７】印刷設定メニューの例を示す図である。
【図１１８】通知設定画面の例を示す図である。
【図１１９】印刷設定変更メニューの例を示す図である。
【図１２０】修正メニューの例を示す図である。
【図１２１】メインメニューの例を示す図である。
【図１２２】印刷対象のジョブのある場所を選択するためのメニューの例を示す図である。
【図１２３】印刷対象のジョブを選択するためのメニューの例を示す図である。
【図１２４】送信対象のジョブのある場所を選択するためのメニューの例を示す図である。
【図１２５】送信対象のジョブを選択するためのメニューの例を示す図である。
【図１２６】命令設定画面の例を示す図である。
【図１２７】変更したいJobの存在する装置を選択するためのメニューの例を示す図である。
【図１２８】スケジュールの変更対象Jobの選択画面の例を示す図である。
【図１２９】デスクトップメインメニューの例を示す図である。
【図１３０】ファイル取得のための設定画面の例を示す図である。
【図１３１】デスクトップのファイルの一覧表示の例を示す図である。
【図１３２】取得ファイルに対する処理の選択画面の例を示す図である。
【図１３３】ジョブに対する制限の設定のための設定画面を示す図である。
【図１３４】ジョブの拒絶の設定のための設定画面を示す図である。
【符号の説明】
１０１  ユーザ
１０２  クライアントコンポーネント
１０３  サーバコンポーネント
１０４  データベース
１０５  デーモン
２０１  操作部
２０２、２０３  ウェブブラウザ
２０４  ウェブサーバ
２０５  デバイスマネージャ
２０６  プリンタ
２０７  リクエストマネージャ
２０８  コマンド解析部
２０９  データベースマネージャ
６０１  印刷制御部
６０２  制御部
６０３  変換制御部
６０４  表示制御部
６０５  通知制御部
６０６  外部アプリ制御部
６０７  印刷部
６０８  メール制御部
７０１  ネットワーク
７０２  プリンタ
７０３  入出力操作部
７０４  スキャナ
７０５  マルチファンクション機器
７０６  パーソナルコンピュータ
８０１  タッチパネル
８０２  ＣＰＵ
８０３  印刷部
８０４  通信部
８０５  ＲＯＭ
８０６  ＲＡＭ
８０７  ＨＤＤ
８０８  システムバス
【図１】
0003869915.tif 000002
【図２】
0003869915.tif 000003
【図３】
0003869915.tif 000004
【図４】
0003869915.tif 000005
【図５】
0003869915.tif 000006
【図６】
0003869915.tif 000007
【図７】
0003869915.tif 000008
【図８】
0003869915.tif 000009
【図９】
0003869915.tif 000010
【図１０】
0003869915.tif 000011
【図１１】
0003869915.tif 000012
【図１２】
0003869915.tif 000013
【図１３】
0003869915.tif 000014
【図１４】
0003869915.tif 000015
【図１５】
0003869915.tif 000016
【図１６】
0003869915.tif 000017
【図１７】
0003869915.tif 000018
【図１８】
0003869915.tif 000019
【図１９】
0003869915.tif 000020
【図２０】
0003869915.tif 000021
【図２１】
0003869915.tif 000022
【図２２】
0003869915.tif 000023
【図２３】
0003869915.tif 000024
【図２４】
0003869915.tif 000025
【図２５】
0003869915.tif 000026
【図２６】
0003869915.tif 000027
【図２７】
0003869915.tif 000028
【図２８】
0003869915.tif 000029
【図２９】
0003869915.tif 000030
【図３０】
0003869915.tif 000031
【図３１】
0003869915.tif 000032
【図３２】
0003869915.tif 000033
【図３３】
0003869915.tif 000034
【図３４】
0003869915.tif 000035
【図３５】
0003869915.tif 000036
【図３６】
0003869915.tif 000037
【図３７】
0003869915.tif 000038
【図３８】
0003869915.tif 000039
【図３９】
0003869915.tif 000040
【図４０】
0003869915.tif 000041
【図４１】
0003869915.tif 000042
【図４２】
0003869915.tif 000043
【図４３】
0003869915.tif 000044
【図４４】
0003869915.tif 000045
【図４５】
0003869915.tif 000046
【図４６】
0003869915.tif 000047
【図４７】
0003869915.tif 000048
【図４８】
0003869915.tif 000049
【図４９】
0003869915.tif 000050
【図５０】
0003869915.tif 000051
【図５１】
0003869915.tif 000052
【図５２】
0003869915.tif 000053
【図５３】
0003869915.tif 000054
【図５４】
0003869915.tif 000055
【図５５】
0003869915.tif 000056
【図５６】
0003869915.tif 000057
【図５７】
0003869915.tif 000058
【図５８】
0003869915.tif 000059
【図５９】
0003869915.tif 000060
【図６０】
0003869915.tif 000061
【図６１】
0003869915.tif 000062
【図６２】
0003869915.tif 000063
【図６３】
0003869915.tif 000064
【図６４】
0003869915.tif 000065
【図６５】
0003869915.tif 000066
【図６６】
0003869915.tif 000067
【図６７】
0003869915.tif 000068
【図６８】
0003869915.tif 000069
【図６９】
0003869915.tif 000070
【図７０】
0003869915.tif 000071
【図７１】
0003869915.tif 000072
【図７２】
0003869915.tif 000073
【図７３】
0003869915.tif 000074
【図７４】
0003869915.tif 000075
【図７５】
0003869915.tif 000076
【図７６】
0003869915.tif 000077
【図７７】
0003869915.tif 000078
【図７８】
0003869915.tif 000079
【図７９】
0003869915.tif 000080
【図８０】
0003869915.tif 000081
【図８１】
0003869915.tif 000082
【図８２】
0003869915.tif 000083
【図８３】
0003869915.tif 000084
【図８４】
0003869915.tif 000085
【図８５】
0003869915.tif 000086
【図８６】
0003869915.tif 000087
【図８７】
0003869915.tif 000088
【図８８】
0003869915.tif 000089
【図８９】
0003869915.tif 000090
【図９０】
0003869915.tif 000091
【図９１】
0003869915.tif 000092
【図９２】
0003869915.tif 000093
【図９３】
0003869915.tif 000094
【図９４】
0003869915.tif 000095
【図９５】
0003869915.tif 000096
【図９６】
0003869915.tif 000097
【図９７】
0003869915.tif 000098
【図９８】
0003869915.tif 000099
【図９９】
0003869915.tif 000100
【図１００】
0003869915.tif 000101
【図１０１】
0003869915.tif 000102
【図１０２】
0003869915.tif 000103
【図１０３】
0003869915.tif 000104
【図１０４】
0003869915.tif 000105
【図１０５】
0003869915.tif 000106
【図１０６】
0003869915.tif 000107
【図１０７】
0003869915.tif 000108
【図１０８】
0003869915.tif 000109
【図１０９】
0003869915.tif 000110
【図１１０】
0003869915.tif 000111
【図１１１】
0003869915.tif 000112
【図１１２】
0003869915.tif 000113
【図１１３】
0003869915.tif 000114
【図１１４】
0003869915.tif 000115
【図１１５】
0003869915.tif 000116
【図１１６】
0003869915.tif 000117
【図１１７】
0003869915.tif 000118
【図１１８】
0003869915.tif 000119
【図１１９】
0003869915.tif 000120
【図１２０】
0003869915.tif 000121
【図１２１】
0003869915.tif 000122
【図１２２】
0003869915.tif 000123
【図１２３】
0003869915.tif 000124
【図１２４】
0003869915.tif 000125
【図１２５】
0003869915.tif 000126
【図１２６】
0003869915.tif 000127
【図１２７】
0003869915.tif 000128
【図１２８】
0003869915.tif 000129
【図１２９】
0003869915.tif 000130
【図１３０】
0003869915.tif 000131
【図１３１】
0003869915.tif 000132
【図１３２】
0003869915.tif 000133
【図１３３】
0003869915.tif 000134
【図１３４】
0003869915.tif 000135