Patent Description:
There is a known image forming apparatus that executes a print job. A user can check an execution situation of a print job, such as standby or executing, through an operation panel of the image forming apparatus. Moreover, some image forming apparatuses have a function that is called hold print that starts a print process of the above-mentioned print job in response to a print instruction from a user who inputs the print job concerned without immediately executing the print job input from an external apparatus.

Moreover, a system in which a server apparatus notifies a communication terminal equipped with a chat application of FAX information received by an image forming apparatus in real-time by a dialogic operation is proposed (for example, see <CIT> (<CIT>) and <CIT>). Thereby, even if the user is apart from the image forming apparatus, they can check the FAX information that is received by the image forming apparatus using the communication terminal.

However, the technique of the above-mentioned publication does not notify the communication terminal of an execution situation of the print job input to the image forming apparatus from the external apparatus. Accordingly, the user who inputs the print job cannot recognize the execution situation of the print job unless moving to a front of the image forming apparatus, which is inconvenient. For example, when checking a display panel of the image forming apparatus, the user can find that their input print job is not executed because another print job input by another user is executing. <CIT> relates to controlling printing commands triggered from various network computers connected to a printer. <CIT> relates to an electronic apparatus which transmits a file to be printed to a message server as a dialogue message. <CIT> relates to a technology for improving information notification by an information processing device regarding an image forming job being input to an image forming device.

The present invention provides a server apparatus, a control method therefor, and a control program therefor, which are capable of notifying a user of an execution situation of a print job input to an image forming apparatus from an external apparatus even if the user is apart from the image forming apparatus.

The dependent claims define particular embodiments.

Accordingly, a first aspect of the present invention provides a server apparatus as specified in claims <NUM> to <NUM>.

Accordingly, a second aspect of the present invention provides a storage medium storing a control program for the server apparatus as specified in a claim <NUM>.

Accordingly, a third aspect of the present invention provides a control method for the server apparatus in a claim <NUM>, and a fourth aspect of the present invention provides a system in a claim <NUM>.

According to the present invention, a user can be notified of an execution situation of a print job input to an image forming apparatus from an external apparatus even if the user is apart from the image forming apparatus.

Hereafter, embodiments according to the present invention will be described in detail by referring to the drawings.

<FIG> is a network diagram schematically showing a configuration of an image forming system <NUM> including a server apparatus according to an embodiment. As shown in <FIG>, the image forming system <NUM> consists of an MFP <NUM>, an MFP <NUM>, a chat server <NUM> as the server apparatus, an information processing apparatus <NUM>, an information processing apparatus <NUM>, a mobile terminal <NUM>, a mobile terminal <NUM>, and a wireless access point <NUM>. These are mutually connected through a network <NUM> and are communicable. Additionally, an MFP is an abbreviated name for a Multi-Function Peripheral.

The MFPs <NUM> and <NUM> are image forming apparatuses having a function that prints print jobs received from the information processing apparatuses <NUM> and <NUM>, and the mobile terminals <NUM> and <NUM>. Although the configuration in which the two MFPs are connected to the network <NUM> is described as an example in the embodiment, this configuration is not indispensable. For example, a configuration in which a single MFP is connected to the network <NUM> or a configuration in which three or more MFPs are connected to the network <NUM> may be employed.

The chat server <NUM> is a server that provides chat service between a mobile terminal and an MFP as a chatbot. The chat server <NUM> receives information about a print job from the MFP <NUM> via the network <NUM> and notifies a chat application <NUM> in <FIG> mentioned later that runs on the mobile terminal <NUM> or the mobile terminal <NUM> of an execution situation of the print job. Moreover, the chat server <NUM> receives chat information from the chat application <NUM> mentioned later and transmits an instruction about the print job to the MFP <NUM> or the MFP <NUM> on the basis of the chat information.

The information processing apparatuses <NUM> and <NUM> are external apparatuses, such as personal computers. A user can transmit document data that is a print target as a print job to the MFP <NUM> or the MFP <NUM> by using the information processing apparatus <NUM> or <NUM>. Additionally, although the configuration in which the two information processing apparatuses are connected to the network <NUM> is described as an example in the embodiment, this configuration is not indispensable. For example, a configuration in which a single information processing apparatus is connected to the network <NUM> or a configuration in which three or more information processing apparatuses are connected to the network <NUM> may be employed.

The mobile terminals <NUM> and <NUM> are communication terminals, such as smart phones or tablet terminals. Additionally, although the mobile terminals <NUM> and <NUM> are described as apparatuses, such as smart phones or tablet PCs, in the embodiment, the mobile terminals <NUM> and <NUM> are not limited to such apparatuses. The mobile terminals <NUM> and <NUM> may be apparatuses of a type other than a smart phone and tablet PC as long as the apparatuses are connectable to the network.

The mobile terminals <NUM> and <NUM> are connected to the network <NUM> via the wireless access point <NUM> and can communicate with the chat server <NUM>. Additionally, although the configuration in which the two mobile terminals are connected to the wireless access point <NUM> is described as an example in the embodiment, this configuration is not indispensable. For example, a configuration in which a single mobile terminal is connected to the network <NUM> or a configuration in which three or more mobile terminals are connected to the network <NUM> may be employed. A user can check an execution situation of a print job in the MFP <NUM> or the MFP <NUM> and can give an instruction to the print job concerned by the chat application <NUM> mentioned later in <FIG> that runs on the mobile terminal <NUM> or the mobile terminal <NUM>. The wireless access point <NUM> is a wireless apparatus that wirelessly connected to the mobile terminal <NUM> or the mobile terminal <NUM> so as to connect the mobile terminals <NUM> and <NUM> to the network <NUM>.

Next, hardware configurations of the MFP <NUM> and MFP <NUM> will be described. Additionally, since the MFP <NUM> and MFP <NUM> have similar hardware configurations in the embodiment, the hardware configuration of the MFP <NUM> will be described hereinafter as an example.

<FIG> is a block diagram schematically showing a hardware configuration of the MFP <NUM> in <FIG>. As shown in <FIG>, the MFP <NUM> is provided with a controller unit <NUM>, an operation unit <NUM>, a scanner <NUM>, and a printer <NUM>. The controller unit <NUM> is connected to the operation unit <NUM>, scanner <NUM>, and printer <NUM>.

The controller unit <NUM> is provided with a CPU <NUM>, a RAM <NUM>, a ROM <NUM>, an HDD <NUM>, an operation-unit I/F <NUM>, a network I/F <NUM>, a scanner I/F <NUM>, and a printer I/F <NUM>. These units are mutually connected via a system bus <NUM>.

The CPU <NUM> boots the MFP <NUM> on the basis of a boot program stored in the ROM <NUM>. Moreover, the CPU <NUM> reads a control program stored in the HDD <NUM> and executes a predetermined process with using the RAM <NUM> as a work area. The HDD <NUM> stores the control program that achieves functions of the MFP <NUM>, such as a copy function and a print function. The operation-unit I/F <NUM> controls data input/output communication with the operation unit <NUM>. The network I/F <NUM> is connected to the network <NUM> and controls input and output of information via the network <NUM>. The scanner I/F <NUM> obtains image data from the scanner <NUM> and inputs and outputs scanner control data. The printer I/F <NUM> outputs output image data to the printer <NUM> and inputs and outputs printer control data.

The operation unit <NUM> is an interface that receives an instruction from a user and displays various kinds of information. The operation unit <NUM> is provided with input devices, such as a touch panel and hard keys, and display devices, such as an LCD and an LED. The scanner <NUM> is provided with an optical reading device like a CCD and has a function that scans a paper medium optically and reads as electronic image data. The printer <NUM> has a function that forms electronic image data as an image on a recording medium like a sheet.

The MFP <NUM> has a print function that prints a print job received from the information processing apparatus <NUM> or the information processing apparatus <NUM> via the network I/F <NUM> with the printer <NUM>. Moreover, the MFP <NUM> has a hold print function that temporarily stores a received print job in the HDD <NUM> and prints it with the printer <NUM> in response to a user's print instruction from the operation unit <NUM> or an external apparatus. Furthermore, when executing a process about a print job, the MFP <NUM> stores status information about the print job concerned in the HDD <NUM>. The status information about the print job stored in the HDD <NUM> is transmitted to the external apparatuses, such as the information processing apparatus <NUM>, the information processing apparatus <NUM>, the mobile terminal <NUM>, and the mobile terminal <NUM>, via the network I/F <NUM>.

<FIG> is a block diagram schematically showing a hardware configuration of the chat server <NUM> in <FIG>. The chat server <NUM> is provided with a controller <NUM>, an operation display unit <NUM>, and an operation input unit <NUM>. The controller <NUM> is connected to the operation display unit <NUM> and the operation input unit <NUM>. The controller <NUM> is provided with a CPU <NUM>, a RAM <NUM>, a ROM <NUM>, an HDD <NUM>, an operation-unit I/F <NUM>, and a network I/F <NUM>. These units are mutually connected via a system bus <NUM>.

The CPU <NUM> runs various control programs to control operations of the entire chat server <NUM>. The various control programs are stored in the ROM <NUM>. For example, a chatbot program <NUM> in <FIG> mentioned later that provides chat service to the mobile terminal <NUM> or the mobile terminal <NUM> is stored in the ROM <NUM>. The CPU <NUM> reads a control program stored in the ROM <NUM> or the HDD <NUM> and executes a predetermined process with using the RAM <NUM> as a work area. The network I/F <NUM> controls input and output of information via the network <NUM>. The operation-unit I/F <NUM> controls data output communication to the operation display unit <NUM> and data input communication from the operation input unit <NUM>. The operation display unit <NUM> is a display interface to a user and is provided with display devices, such as an LCD and an LED. The operation input unit <NUM> is an interface to input an instruction from a user and is provided with input devices, such as a keyboard and a mouse.

Next, the hardware configurations of the mobile terminal <NUM> and the mobile terminal <NUM> will be described. Additionally, since the mobile terminal <NUM> and mobile terminal <NUM> have similar hardware configurations in the embodiment, the hardware configuration of the mobile terminal <NUM> will be described hereinafter as an example.

<FIG> is a block diagram schematically showing the hardware configuration of the mobile terminal <NUM> in <FIG>. As shown in <FIG>, the mobile terminal <NUM> is provided with an operation panel <NUM>, a CPU <NUM>, a ROM <NUM>, a RAM <NUM>, an HDD <NUM>, an NFC communication unit <NUM>, a Bluetooth communication unit <NUM>, and a wireless LAN communication unit <NUM>. These units are connected mutually.

The CPU <NUM> reads a control program stored in the ROM <NUM> and various kinds of information stored in the HDD <NUM> to the RAM <NUM> and executes various processes to control operations of the mobile terminal <NUM>. The ROM <NUM> stores the control program. For example, the ROM <NUM> stores the control program that operates a chat application <NUM> in <FIG> mentioned later. The RAM <NUM> is used as a main memory of the CPU <NUM> and a temporary storage area like a work area of the CPU <NUM>. The HDD <NUM> stores various data, such as photos and digital documents.

The operation panel <NUM> is provided with a touch panel function that can detect a user's touch operation and functions as a display unit that displays various screens provided by the OS and the chat application. A user can input a desired operation instruction to the mobile terminal <NUM> by touching the operation panel <NUM>. The mobile terminal <NUM> interchanges data with various peripheral devices via the NFC communication unit <NUM>, Bluetooth communication unit <NUM>, and wireless LAN communication unit <NUM>. Communication with the wireless access point <NUM> is also performed via the wireless LAN communication unit <NUM>.

Next, software configurations of the MFP <NUM> and MFP <NUM> will be described. Additionally, since the MFP <NUM> and MFP <NUM> have similar software configurations in the embodiment, the software configuration of the MFP <NUM> will be described hereinafter as an example.

<FIG> is a block diagram schematically showing the software configuration of the MFP <NUM> in <FIG>. As shown in <FIG>, the MFP <NUM> is provided with a network communication control module <NUM>, a job control module <NUM>, and a printer control module <NUM> as software modules. The MFP <NUM> is further provided with a UI control module <NUM>, a user management module <NUM>, a print job storage module <NUM>, and a print execution queue <NUM>. Processes by the above-mentioned modules are achieved by executing programs stored in the ROM <NUM> etc. by the CPU <NUM> of the MFP <NUM>.

The network communication control module <NUM> controls input and output of data with an external apparatus via the network I/F <NUM>. For example, the network communication control module <NUM> controls communications of a print job and information about the print job. The job control module <NUM> controls the print job and manages the status of the print job. The printer control module <NUM> controls the printer I/F <NUM> so as to execute a print process with the printer <NUM>. The UI control module <NUM> controls display of a screen by the operation unit <NUM> and processes a user's operation that is received by the operation unit <NUM>. The user management module <NUM> manages user information about a user who uses the MFP <NUM>. The print job storage module <NUM> performs a process that saves the print job that the MFP <NUM> receives. The print execution queue <NUM> records the print job that the printer control module <NUM> processes. In the MFP <NUM>, the print process is sequentially executed from the print job previously recorded on the print execution queue.

<FIG> is a block diagram schematically showing a configuration of the chatbot program <NUM> that runs on the chat server <NUM> in <FIG>. As shown in <FIG>, the chatbot program <NUM> includes a print job status management module <NUM>, a chat application user management module <NUM>, and a chat management module <NUM>. The chatbot program <NUM> further includes a chat application communication module <NUM>, an MFP data communication module <NUM>, and an MFP user management module <NUM>.

The print job status management module <NUM> manages a print job status (status information) mentioned later that is received from the MFP <NUM> or the MFP <NUM>. The chat application user management module <NUM> manages information (hereinafter referred to as "user information") about a user who uses a chat application <NUM> in <FIG> mentioned later. The chat management module <NUM> controls a dialog with the chat application <NUM> on the basis of the print job status and user information. The chat application communication module <NUM> controls the communication with the chat application <NUM> and interchanges a message with the chat application <NUM>. The MFP data communication module <NUM> controls communications with the MFP <NUM> and MFP <NUM>. The MFP user management module <NUM> manages the user information about a user who is allowed to login to the MFP <NUM> or the MFP <NUM>.

Next, software configurations of the mobile terminal <NUM> and mobile terminal <NUM> will be described. Additionally, since the mobile terminal <NUM> and mobile terminal <NUM> have similar software configurations in the embodiment, the software configuration of the mobile terminal <NUM> will be described hereinafter as an example.

<FIG> is a block diagram schematically showing a configuration of the chat application <NUM> that runs on the mobile terminal <NUM> in <FIG>. As shown in <FIG>, the chat application <NUM> consists of a chat display module <NUM>, an UI operation module <NUM>, and a chat server communication module <NUM>. The process by these modules is achieved by executing a program stored in the ROM <NUM> etc. by the CPU <NUM> of the mobile terminal <NUM>.

The chat display module <NUM> controls so as to display a chat screen on the operation panel <NUM>. The UI operation module <NUM> processes the instruction to the chat application <NUM> that is input by the user into the operation panel <NUM>. The chat server communication module <NUM> communicates with the chat server <NUM> via the wireless LAN communication unit <NUM>.

Next, execution of a print job by the MFP <NUM> and MFP <NUM> will be described. Additionally, since the MFP <NUM> and MFP <NUM> execute a print job in similar procedures in the embodiment, a case where the MFP <NUM> executes a print job will be described hereinafter as an example.

<FIG> is a flowchart showing procedures of a print job control process executed by the MFP <NUM> in <FIG>. The print job control process in <FIG> is achieved by executing a program stored in the ROM <NUM> etc. by the CPU <NUM> of the MFP <NUM>.

As shown in <FIG>, the CPU <NUM> determines whether a print job is received by the job control module <NUM> (a step S801). In the embodiment, the MFP <NUM> receives a print job by the network communication control module <NUM> from the information processing apparatus <NUM>, the information processing apparatus <NUM>, the mobile terminal <NUM>, the mobile terminal <NUM>, or the like via the network <NUM>. Additionally, the MFP <NUM> receives any of a hold print job and a normal print job as a print job. The hold print job is temporarily stored in the HDD <NUM> and starts the print process with the printer <NUM> according to a user's print instruction from the operation unit <NUM> or an external apparatus. The normal print job starts the print process with the printer <NUM> immediately without being stored in the HDD <NUM>.

When it is determined in the step S801 that a print job is not received, the process proceeds to a step S805 mentioned later. When it is determined in the step S801 that the print job is received, the CPU <NUM> saves the received print job in the print job storage module <NUM> (a step S802). Next, the CPU <NUM> determines whether the received print job is a hold print job (a step S803).

When it is determined in the step S803 that the received print job is a hold print job, the process proceeds to the step S805 mentioned later. When it is determined in the step S803 that the received print job is not a hold print job, the received print job is a normal print job. In this case, the CPU <NUM> moves the received print job to the print execution queue <NUM> (a step S804). Print jobs moved to the print execution queue <NUM> are sequentially processed by the printer control module <NUM>, and the print process is performed by the printer <NUM>. Next, the CPU <NUM> determines whether a print instruction to the hold print job stored in the print job storage module <NUM> is received (the step S805).

When it is determined in the step S805 that the print instruction to the hold print job is not received, the process proceeds to a step S807 mentioned later. When it is determined in the step S805 that the print instruction to the hold print job is received, the CPU <NUM> moves the print job stored in the print job storage module <NUM> to the print execution queue <NUM> (a step S806). Thereby, the hold print job that has been stored in the print job storage module <NUM> is sequentially processed by the printer control module <NUM>, and the print process is performed by the printer <NUM>. Next, the CPU <NUM> determines whether a cancel instruction to the print job under execution is received (the step S807). In the embodiment, a user can give the cancel instruction from the operation unit <NUM> or from an external apparatus connected via the network <NUM>, in the same manner as the print instruction.

When it is determined in the step S807 that the cancel instruction to the print job under execution is not received, the process proceeds to a step S809 mentioned later. When it is determined in the step S807 that the cancel instruction to the print job under execution is received, the CPU <NUM> performs a cancel (stop) process for the print job under execution by the job control module <NUM> (a step S808). Next, the CPU <NUM> transmits the print job status that shows the state of the print job processed in the MFP <NUM> to the chat server <NUM> (the step S809). The print job status includes various kinds of information set in a management table <NUM> in <FIG> mentioned later. After that, the process returns to the step S801. In this way, the MFP <NUM> and MFP <NUM> repeatedly execute the process in the above mentioned steps S801 through S809. And the print job status updated according to the variation of the state of the print job is transmitted to the chat server <NUM> from the MFP <NUM> or the MFP <NUM>.

<FIG> is a flowchart showing procedures of a notification control process executed by the chat server <NUM> in <FIG>. The notification control process in <FIG> is achieved by executing the chatbot program <NUM> stored in the ROM <NUM> by the CPU <NUM> of the chat server <NUM>. In the notification control process in <FIG>, the chat application <NUM> running on the mobile terminal <NUM> or the mobile terminal <NUM> is notified of a message on the basis of the print job status received from the MFP <NUM> or the MFP <NUM>. The notification control process in <FIG> is executed at a timing at which the chat server <NUM> receives the print job status from the MFP <NUM> or the MFP <NUM>, for example.

In <FIG>, the CPU <NUM> obtains the print job status from the MFP <NUM> or the MFP <NUM> first (a step S901). The CPU <NUM> registers the print job status obtained from an apparatus, such as the MFP <NUM> or the MFP <NUM>, into the management table <NUM> in <FIG>. The management table <NUM> is stored in the HDD <NUM> etc. The management table <NUM> includes a variation time <NUM>, a user ID <NUM>, an image forming apparatus ID <NUM>, a job ID <NUM>, a file name <NUM>, and a job type <NUM>. The management table <NUM> further includes a job state <NUM>, a job acceptance time <NUM>, a print start time <NUM>, and a print finish time <NUM>.

A time at which a status of a print job varies is set in the variation time <NUM>. An ID showing a user who instructs to input a print job is set in the user ID <NUM>. An ID showing a MFP to which the print job is input is set in the image forming apparatus ID <NUM>. An ID identifying the print job in the MFP to which the print job is input is set in the job ID <NUM>. A file name of document data or image data set in the print job is set in the file name <NUM>.

Information showing a type of the print job, such as "normal print" showing a normal print job or "hold print" showing a hold print job, is set in the job type <NUM>. Information showing the state of the print job, such as "standby", "waiting for start of print", "printing", a "print finish", or "cancel", is set in the job state <NUM>. The "standby" shows a state where a hold print job is still stored in the print job storage module <NUM> without moving to the print execution queue <NUM>. The "waiting for start of print" shows a state where the print job is moved to the print execution queue <NUM> but the print process with the printer <NUM> is not started. The "printing" shows that the printer <NUM> is executing the print process of the print job. The "print finish" shows a state where the printer <NUM> completes the print process of the print job. The "cancel" shows a state where the print job is cancelled according to a cancel instruction by a user.

A time at which the apparatus, such as the MFP <NUM> or the MFP <NUM>, receives the print job is set in the job acceptance time <NUM>. A time at which the apparatus, such as the MFP <NUM> or MFP <NUM>, starts the print process of the print job is set in the print start time <NUM>. A time at which the apparatus, such as the MFP <NUM> or the MFP <NUM>, finishes the print process of the print job is set in the print finish time <NUM>.

Next, the CPU <NUM> obtains one print job status from among the print job statuses registered in the management table <NUM>. The CPU <NUM> obtains the job state of the obtained print job status (a step S902). Next, the CPU <NUM> determines the job state obtained in the step S902 (a step S903) and distributes the process on the basis of the job state concerned.

When it is determined in the step S903 that the job state obtained in the step S902 is "standby", the process proceeds to a step S904. In the step S904, the CPU <NUM> determines whether another print job status of which the image forming apparatus ID is identical and the job state is "printing" is registered in the management table <NUM>.

When it is determined in the step S904 that the other print job status of which the image forming apparatus ID is identical and the job state is "printing" is registered in the management table <NUM>, the CPU <NUM> determines a message ID as "<NUM>" (a step S905). A message ID is an ID of a message template for generating a message given to the chat application <NUM>. Additionally, details of a message template are mentioned later. Next, the process proceeds to a step S911 mentioned later.

When it is determined in the step S904 that the other print job status of which the image forming apparatus ID is identical and the job state is "printing" is not registered in the management table <NUM>, the CPU <NUM> determines the message ID as "<NUM>" (a step S906). Next, the process proceeds to the step S911 mentioned later.

When it is determined in the step S903 that the job state obtained in the step S902 is "waiting for start of print", the CPU <NUM> determines the message ID as "<NUM>" (a step S907). Next, the process proceeds to the step S911 mentioned later.

When it is determined in the step S903 that the job state obtained in the step S902 is "printing", the CPU <NUM> determines the message ID as "<NUM>" (a step S908). Next, the process proceeds to the step S911 mentioned later.

When it is determined in the step S903 that the job state obtained in the step S902 is "print finish", the CPU <NUM> determines the message ID as "<NUM>" (a step S909). Next, the process proceeds to the step S911 mentioned later.

When it is determined in the step S903 that the job state obtained in the step S902 is "cancel", the CPU <NUM> determines the message ID as "<NUM>" (a step S910). Next, the CPU <NUM> determines whether the chat information about the print job of the obtained print job status has been registered in a chat information management table <NUM> in <FIG> (a step S911). The chat information management table <NUM> is stored in the HDD <NUM> etc. The chat information management table <NUM> includes a chat management ID <NUM>, a registration time <NUM>, a user ID <NUM>, an image forming apparatus ID <NUM>, and a job ID <NUM>. The chat information management table <NUM> further includes a job type <NUM>, a given message ID <NUM>, a received button <NUM>, and a chat situation <NUM>.

An ID that is allocated to chat information at a time when the chat information is registered into the chat information management table <NUM> is set in the chat management ID <NUM>. The time when the chat information is registered to the chat information management table <NUM> is set in the registration time <NUM>. The information obtained from the user ID <NUM> of the print job status is set in the user ID <NUM>. The information obtained from the image forming apparatus ID <NUM> of the print job status is set in the image forming apparatus ID <NUM>. The information obtained from the job ID <NUM> of the print job status is set in the job ID <NUM>.

The information obtained from the job type <NUM> of the print job status is set in the job type <NUM>. The message ID determined in any one of the above-mentioned steps S905 through S910 is set in the given message ID <NUM>. A type of a button event received from the chat application <NUM> is set in the received button <NUM>. In the embodiment, the chat server <NUM> receives a button event, such as a "print execution button", a "job cancel button", or a "notification OFF button", for example. These respectively show the types of buttons pressed by the user on the chat screen of the chat application <NUM>. Information showing a chat situation with the chat application <NUM> about the print job is set in the chat situation <NUM>. For example, when the chat with the chat application <NUM> about the print job is finished, "finish" indicating this is set in the chat situation <NUM> corresponding to the print job concerned.

In the step S911, when the chat information that includes the same image forming apparatus ID and job ID as the obtained print job status is registered in the chat information management table <NUM>, it is determined that the chat information about the print job of the obtained print job status has been registered in the chat information management table <NUM>. In the meantime, when the chat information that includes the same image forming apparatus ID and job ID as the obtained print job status is not registered in the chat information management table <NUM>, it is determined that the chat information about the print job of the obtained print job status is not registered in the chat information management table <NUM>.

When it is determined in the step S911 that the chat information about the print job of the obtained print job status has been registered in the chat information management table <NUM>, the process proceeds to a step S913 mentioned later. When it is determined in the step S911 that the chat information about the print job of the obtained print job status is not registered in the chat information management table <NUM>, the process proceeds to a step S912 mentioned later.

In the step S912, the CPU <NUM> registers the chat information about the print job of the obtained print job status in the chat information management table <NUM>. Next, the CPU <NUM> executes a message notification determination process (the step S913). In the message notification determination process, when the received button <NUM> of the chat information about the print job of the obtained print job status is the "notification OFF button", the CPU <NUM> sets that the print job concerned is not a message notification target. In the meantime, when the received button <NUM> of the chat information about the print job of the obtained print job status is not the "notification OFF button", the CPU <NUM> sets that the print job concerned is a message notification target. Next, the CPU <NUM> determines whether the chat application <NUM> is notified of the message on the basis of the setting in the step S913 (a step S914).

When it is determined in the step S914 that the chat application <NUM> is not notified of the message, the process proceeds to a step S918 mentioned later. When it is determined in the step S914 that the chat application <NUM> is notified of the message, the process proceeds to the step S915. In the step S915, the CPU <NUM> generates chat message data on the basis of the message ID determined in any one of the steps S905 through S910.

<FIG> is a view showing examples of message templates used for generating chat message data in the step S915 in <FIG>. A message template is a template for generating a message given to the chat application <NUM>. In the embodiment, a message template that is different for every message ID is prepared and a content of a given message is changed for every message ID. A message ID <NUM> corresponds to the message ID determined in any one of the steps S905 through S910. A message format <NUM> is template information that is a base of a message given to the chat application <NUM>. Pieces of information about the print job status are embedded in places of# and {}. For example, when the message ID is determined to "<NUM>" in the step S905 to the print status of the variation time "<NUM>/<NUM> / <NUM><NUM>:<NUM>:<NUM>" in <FIG>, a message of "Hold print (Job ID: <NUM>, Document name: Bill A) is accepted. Print cannot be executed for some time because another user is printing currently. " is generated. Such a message is included in the chat message data.

Moreover, reply button information <NUM> that is information about an operation button that is used to instruct a reply to the above-mentioned message is also included in the chat message data. The CPU <NUM> can obtain the reply button information <NUM> from the message template. For example, when the message ID is "<NUM>" and the job type is "hold print", the reply button information includes the "job cancel button", "print execution button", and "notification OFF button.

Furthermore, the chat message data includes the chat management ID <NUM> and image forming apparatus ID <NUM> of the chat information management table <NUM>. Although the configuration that the chat server <NUM> generates the chat message data on the basis of the message ID determined in any one of the steps S905 through S910 is described in the embodiment, this configuration is not indispensable. For example, the chat server <NUM> may transmit the message ID determined in any one of the steps S905 through S910 to the mobile terminal <NUM> or the mobile terminal <NUM>. In this case, the mobile terminal <NUM> or the mobile terminal <NUM> generates the chat message data on the basis of the received message ID and the message template mentioned above.

Next, the CPU <NUM> determines a transmission destination of the chat message data (a step S916). The transmission destination is determined using chat-application login user information. The chat-application login user information is user information sent from the mobile terminal <NUM> or the mobile terminal <NUM>, and is managed by the chat application user management module <NUM>.

The following table <NUM> is an example of the chat-application login user information.

A user ID is an ID identifying a user. The same ID as the user ID of the print job status is set in the user ID. A using terminal ID is an ID identifying an apparatus, such as the mobile terminal <NUM> or the mobile terminal <NUM>, that is equipped with the chat application <NUM> and is used by the user. A login state is information showing whether the chat application <NUM> is started so as to be communicable with the chat server <NUM>. The login state of "during login" shows that the chat application <NUM> in an apparatus, such as the mobile terminal <NUM> or the mobile terminal <NUM>, is started and the apparatus concerned is communicable with the chat server <NUM>. The login state of "during logout" shows that the chat application <NUM> in an apparatus, such as the mobile terminal <NUM> or the mobile terminal <NUM>, is not started and the apparatus concerned is incommunicable with the chat server <NUM>.

In the step S916, the CPU <NUM> specifies the chat-application login user information of which the user ID is the same as that in the obtained print job status and of which the login state is "during login". The CPU <NUM> determines the apparatus that is shown by the using terminal ID of the specified chat-application login user information as the transmission destination.

In the next step S917, the CPU <NUM> transmits the chat message data generated in the step S915 to the transmission destination determined in the step S916. Next, the CPU <NUM> determines whether the print job is finished (a step S918). In the step S918, when the job state of the obtained print job status is "cancel" or "print finish", the CPU <NUM> determines that the print job is finished. In the meantime, when the job state of the obtained print job status is neither "cancel" nor "print finish", the CPU <NUM> is determined that the print job is not finished.

When it is determined in the step S918 that the print job is not finished, the process proceeds to a step S920 mentioned later. When it is determined in the step S918 that the print job is finished, the process proceeds to a step S919. In a step S919, the CPU <NUM> updates the chat situation <NUM> of the chat information corresponding to the obtained print job status in the chat information management table <NUM> to "finish". Next, the CPU <NUM> determines whether all the print job statuses registered in the management table <NUM> have been processed (the step S920).

When it is determined in the step S920 that at least one print job status registered in the management table <NUM> has not been processed, the process returns to the step S902. When it is determined in the step S920 that all the print job statuses registered in the management table <NUM> have been processed, the CPU <NUM> finishes this process.

According to the notification control process in <FIG> mentioned above, the mobile terminal <NUM> or the mobile terminal <NUM> that is used by the user who instructs execution of the print job is notified of the message corresponding to the status of the print job in real time.

Additionally, although the execution timing of the notification control process in <FIG> is described as the timing at which the chat server <NUM> receives the print job status from the MFP <NUM> or the MFP <NUM> in the embodiment, this timing is not indispensable. For example, the notification control process in <FIG> may be periodically executed at predetermined intervals.

<FIG> is a flowchart showing procedures of a button event control process executed by the chat server <NUM> in <FIG>. The button event control process in <FIG> is achieved by executing the chatbot program <NUM> stored in the ROM <NUM> by the CPU <NUM> of the chat server <NUM>. The button event control process in <FIG> is executed in parallel with the notification control process in <FIG>, for example.

As shown in <FIG>, the CPU <NUM> receives a button event from the chat application <NUM> that runs on the mobile terminal <NUM> or the mobile terminal <NUM> (a step S1301). In the embodiment, as mentioned above, the chat server <NUM> receives a button event, such as the "print execution button", the "job cancel button", or the "notification OFF button", for example. Next, the CPU <NUM> specifies a pressed button and the chat management ID <NUM> on the basis of the received button event and the information about the transmission source of the button event concerned (step S1302). Next, the CPU <NUM> determines whether the button specified in the step S1302 is the "job cancel button" (a step S1303).

When it is determined in the step S1303 that the button specified in the step S1302 is not the "job cancel button", the process proceeds to a step S1307 mentioned later. When it is determined in the step S1303 that the button specified in the step S1302 is the "job cancel button", the CPU <NUM> executes a job cancel button acceptance process (a step S1304). In the job cancel button acceptance process, the CPU <NUM> notifies the button event transmission source of a message showing that the operation instruction of the job cancel button is accepted. Next, the CPU <NUM> adds the "job cancel button" to the received button <NUM> of the chat information corresponding to the chat management ID specified in the step S1302 in the chat information management table <NUM> (a step S1305). Next, the CPU <NUM> notifies the MFP, which is shown by the image forming apparatus ID <NUM> of the chat information corresponding to the chat management ID specified in the step S1302 in the chat information management table <NUM>, of the cancel of the print job shown by the job ID <NUM> of the chat information concerned (a step S1306) (a print job cancel control unit). Next, the CPU <NUM> determines whether the button specified in the step S1302 is the "print execution button" (a step S1307).

When it is determined in the step S1307 that the button specified in the step S1302 is not the "print execution button", the process proceeds to a step S1311 mentioned later. When it is determined in the step S1307 that the button specified in the step S1302 is the "print execution button", the CPU <NUM> executes a print execution button acceptance process (a step S1308). In the print execution button acceptance process, the CPU <NUM> notifies the button event transmission source of a message showing that the operation instruction of the print execution button is accepted. Next, the CPU <NUM> adds the "print execution button" to the received button <NUM> of the chat information corresponding to the chat management ID specified in the step S1302 in the chat information management table <NUM> (a step S1309). Next, the CPU <NUM> notifies the MFP, which is shown by the image forming apparatus ID <NUM> of the chat information corresponding to the chat management ID specified in the step S1302 in the chat information management table <NUM>, of the print instruction of the print job shown by the job ID <NUM> of the chat information concerned (a step S1310) (a print job execution control unit). Next, the CPU <NUM> determines whether the button specified in the step S1302 is the "notification OFF button" (the step S1311).

When it is determined in the step S1311 that the button specified in the step S1302 is not the "notification OFF button", the process returns to the step S1301. When it is determined in the step S1311 that the button specified in the step S1302 is the "notification OFF button", the CPU <NUM> executes a notification OFF button acceptance process (a step S1312). In the notification OFF button acceptance process, the CPU <NUM> notifies the button event transmission source of a message showing that the operation instruction of the notification OFF button is accepted. Next, the CPU <NUM> adds the "notification OFF button" to the received button <NUM> of the chat information corresponding to the chat management ID specified in the step S1302 in the chat information management table <NUM> (a step S1313). After that, the process returns to the step S1301.

According to the button event control process in <FIG>, the instruction input by the user by operating the mobile terminal <NUM> or the mobile terminal <NUM> is output to the MFP <NUM> or the MFP <NUM> that executes the print job via the chat server <NUM>. That is, the user can instruct the MFP <NUM> or the MFP <NUM> to execute a hold print job and to cancel the print job under execution by operating the mobile terminal <NUM> or the mobile terminal <NUM>. Moreover, when the notification of the message about the print job is unnecessary, the user can turn OFF the notification of the message concerned by operating the mobile terminal <NUM> or the mobile terminal <NUM>.

Next, display of a message by the mobile terminal <NUM> and mobile terminal <NUM> will be described. Since the mobile terminal <NUM> and the mobile terminal <NUM> display a message in a similar procedure in the embodiment, hereinafter, a case where the mobile terminal <NUM> displays a message will be described, as an example.

<FIG> is a flowchart showing procedures of a message display control process executed by the mobile terminal <NUM> in <FIG>. The message display control process in <FIG> is achieved by executing a program stored in the ROM <NUM> etc. by the CPU <NUM>. Additionally, in the message display control process in <FIG>, it is assumed that the chat application <NUM> has been already started in the mobile terminal <NUM>.

As shown in <FIG>, the CPU <NUM> performs a login process to log in the chat server <NUM> (a step S1401). Specifically, the CPU <NUM> transmits user information that includes a user ID of a user who has the mobile terminal <NUM>, a using terminal ID of the mobile terminal <NUM>, a login request, etc. to the chat server <NUM>. The chat server <NUM> manages the received user information as the Table <NUM>. Next, the CPU <NUM> determines whether the chat message data is received from the chat server <NUM> (a step S1402).

When it is determined in the step S1402 that the chat message data is not received from the chat server <NUM>, the process proceeds to a step S1404 mentioned later. When it is determined in the step S1402 that the chat message data is received from the chat server <NUM>, the CPU <NUM> updates a screen displayed on the operation panel <NUM> on the basis of the received chat message data (a step S1403). Additionally, the details of the screen displayed on the operation panel <NUM> are mentioned later. Next, the CPU <NUM> determines whether the button displayed on the operation panel <NUM> in the step S1403 is pressed (a step S1404).

When it is determined in the step S1404 that the button displayed on the operation panel <NUM> in the step S1403 is not pressed, the process proceeds to a step S1407 mentioned later. When it is determined in the step S1404 that the button displayed on the operation panel <NUM> in the step S1403 is pressed, the process proceeds to a step S1405. In the step S1405, the CPU <NUM> transmits a button event, which includes button information that shows the type of the pressed button and the chat management ID included in the chat message data, to the chat server <NUM>. Next, the CPU <NUM> updates the screen displayed on the operation panel <NUM> to a display content corresponding to the type of the pressed button (a step S1406). Next, the CPU <NUM> determines whether the chat application <NUM> is finished (the step S1407).

When it is determined in the step S1407 that the chat application <NUM> is not finished, the process returns to the step S1402. When it is determined in the step S1407 that the chat application <NUM> is finished, the CPU <NUM> performs a logout process to log out from the chat server <NUM> (a step S1408). Specifically, the CPU <NUM> transmits user information that includes the user ID of the user who has the mobile terminal <NUM>, the using terminal ID of the mobile terminal <NUM>, a logout request, etc. to the chat server <NUM>. The chat server <NUM> that receives the user information updates the login state corresponding to this user information to "during logout". After that, this process is finished.

<FIG> is a sequence chart showing a chat notification according to the claimed invention, performed by the image forming system <NUM> in <FIG>. Additionally, in <FIG>, it is assumed that the mobile terminal <NUM> used by a user B logs in the chat server <NUM> and that the mobile terminal <NUM> used by a user A does not log in the chat server <NUM>.

As shown in <FIG>, the user A operates the information processing apparatus <NUM> to input a hold print job from the information processing apparatus <NUM> to the MFP <NUM> (a step S1501). The MFP <NUM> that receives the hold print job transmits the print job status of which the job state <NUM> is "standby" to the chat server <NUM> (a step S1502). Next, the user A operates the operation unit <NUM> of the MFP <NUM> to give a print instruction of the hold print job input in the step S1501 (a step S1503). The MFP <NUM> that receives the print instruction starts the print process of the hold print job input in the step S1501. Moreover, the MFP <NUM> transmits the print job status of which the job state <NUM> is "printing" to the chat server <NUM> (a step S1504).

After that, the user B operates the information processing apparatus <NUM> to input a hold print job from the information processing apparatus <NUM> to the MFP <NUM> (a step S1505). Since the MFP <NUM> that receives this hold print job is executing the hold print job input in the step S1501, the MFP <NUM> transmits the print job status of which the job state <NUM> is "standby" to the chat server <NUM> (a step S1506). The chat server <NUM> transmits the chat message data to the chat application <NUM> of the mobile terminal <NUM> used by the user B on the basis of the received print job status (a step S1507). The chat application <NUM> that receives this chat message data displays a message <NUM> (<FIG>), which shows that the print job is accepted but another user is printing currently, on the operation panel <NUM> (a step S1508). Moreover, a button group <NUM> including the print execution button, the job cancel button, and the notification OFF button is displayed on the operation panel <NUM> on the basis of the button information included in the received chat message data.

After that, when the print process of the hold print job executed according to the print instruction of the user A in the step S1503 is finished, the process proceeds to a step S1509. In the step S1509, the MFP <NUM> transmits the print job status of which the job state <NUM> is "print finish" to the chat server <NUM>. The chat server <NUM> that receives this print job status transmits the chat message data including a message showing that the hold print job under standby is executable to the mobile terminal <NUM> used by the user B (a step S1510). The chat application <NUM> that receives this chat message data displays a message <NUM>, which shows that the hold print job under standby is executable, on the operation panel <NUM> (a step S1511). Thereby, even if the user is apart from the MFP <NUM>, the user is able to know that the MFP <NUM> is in a state where the hold print job input by the user concerned is executable. Moreover, a button group <NUM> including the print execution button, the job cancel button, and the notification OFF button is displayed on the operation panel <NUM> on the basis of the button information included in the received chat message data.

Next, when the user B presses the print execution button displayed on the operation panel <NUM> of the mobile terminal <NUM>, the mobile terminal <NUM> displays a message <NUM> like "print execution", which shows that the pressed button is the print execution button, on the operation panel <NUM>. Thereby, the user can know easily that the pressed button is the print execution button. Moreover, the chat application <NUM> of the mobile terminal <NUM> transmits a button event to the chat server <NUM> (a step S1512). This button event includes the information that shows the pressed print execution button. The chat server <NUM> that receives this button event transmits chat message data including a message, which shows that the operation instruction of the print execution button is accepted, to the mobile terminal <NUM> (a step S1513). Moreover, the chat server <NUM> gives a print instruction of the hold print job input in the step S1505 to the MFP <NUM> (a step S1514).

The mobile terminal <NUM> that receives the chat message data transmitted from the chat server <NUM> in the step S1513 displays a message <NUM>, which shows that the operation instruction of the print execution button is accepted, on the operation panel <NUM> (a step S1515).

In the meantime, when receiving the print instruction from the chat server <NUM>, the MFP <NUM> starts the print process of the hold print job input in the step S1505. Moreover, the MFP <NUM> transmits the print job status of which the job state <NUM> is "printing" to the chat server <NUM> (a step S1516). The chat server <NUM> that receives this print job status transmits chat message data including the message of "printing" to the mobile terminal <NUM> of the user B who is using the chat application <NUM> (a step S1517). The mobile terminal <NUM> that receives this chat message data displays a message <NUM> showing "printing" on the operation panel <NUM> (a step S1518). Thereby, even if the user is apart from the MFP <NUM>, the user is able to know that the hold print job input by the user concerned is under execution.

After that, when the print process of the hold print job executed according to the print instruction in the step S1514 is finished, the process proceeds to a step S1519. In the step S1519, the MFP <NUM> transmits the print job status of which the job state <NUM> is "print finish" to the chat server <NUM>. The chat server <NUM> that receives this print job status transmits chat message data including the message showing "print finish" to the mobile terminal <NUM> (a step S1520). The mobile terminal <NUM> that receives this chat message data displays a message <NUM> showing "print finish" on the operation panel <NUM> (a step S1521). Thereby, even if the user is apart from the MFP <NUM>, the user is able to know that the hold print job input by the user concerned is finished.

In this way, the chat server <NUM> transmits the chat message data for displaying the various messages shown in <FIG> to the mobile terminal <NUM> that logs in the chat server <NUM> concerned in the embodiment. In the meantime, the chat server <NUM> does not transmit the above-mentioned chat message data to the mobile terminal <NUM> that does not log in the chat server <NUM> concerned.

According to the above-mentioned embodiment, when the hold print job of the user B is input in the MFP <NUM> while executing the hold print job of the user A, the message <NUM>, which shows that the print job of the user B cannot be executed because the hold print job of the user A is under execution, is displayed on the operation panel <NUM> of the mobile terminal <NUM>. Thereby, even if the user B is apart from the MFP <NUM>, the user B can be notified of the execution situation of the hold print job of the user B input to the MFP <NUM>.

Moreover, when the user B presses the print execution button to the message <NUM> displayed on the operation panel <NUM> of the mobile terminal <NUM>, the MFP <NUM> executes the hold print job of the user B input to the MFP <NUM> in the above-mentioned embodiment. Thereby, even if the user B is apart from the MFP <NUM>, the user B can instruct execution of the hold print job of the user B input to the MFP <NUM>.

In the above-mentioned embodiment, it is controlled whether a message is displayed on the operation panel of the apparatus, such as the mobile terminal <NUM> or the mobile terminal <NUM>, for every print job input to the MFP <NUM> from the external apparatus. Thereby, a user's intention can be reflected to a message display function for every print job input to the MFP <NUM>, which makes the message display function easy to use.

<FIG> is a sequence chart showing another example of the chat notification performed by the image forming system <NUM> in <FIG>. Additionally, in <FIG>, it is assumed that the mobile terminal <NUM> used by the user B and the mobile terminal <NUM> used by the user A log in the chat server <NUM>. Moreover, hereinafter, a component of the mobile terminal <NUM> is indicated by a reference numeral that is obtained by adding "a" to a reference numeral of a corresponding component of the mobile terminal <NUM>.

As shown in <FIG>, the user A operates the information processing apparatus <NUM> to input a hold print job from the information processing apparatus <NUM> to the MFP <NUM> (a step S1701). The MFP <NUM> that receives the hold print job transmits the print job status of which the job state <NUM> is "standby" to the chat server <NUM> (a step S1702). The chat server <NUM> that receives this print job status transmits the chat message data including a message showing that the hold print job under standby is executable to the mobile terminal <NUM> used by the user A (a step S1703). The mobile terminal <NUM> that receives this chat message data displays a message <NUM> (<FIG>), which shows that the print job is under standby and is executable, on the operation panel 401a of the mobile terminal <NUM> (a step S1704). Moreover, a button group <NUM> including the print execution button, the job cancel button, and the notification OFF button is displayed on the operation panel 401a on the basis of the button information included in the received chat message data. Next, when the user A presses the notification OFF button displayed on the operation panel 401a, the mobile terminal <NUM> displays a message <NUM> like "notification OFF", which shows that the pressed button is the notification OFF button, on the operation panel 401a. Moreover, the chat application 701a of the mobile terminal <NUM> transmits a button event to the chat server <NUM> (a step S1705). This button event includes information showing the notification OFF button pressed by the user A.

The chat server <NUM> that receives this button event sets the chat notification function to the mobile terminal <NUM> to OFF and transmits chat message data including a message indicating this to the mobile terminal <NUM> (a step S1706). The mobile terminal <NUM> that receives this chat message data displays a message <NUM>, which shows that the chat notification function is set to OFF, on the operation panel 401a (a step S1707). After that, the user A operates the operation unit <NUM> of the MFP <NUM> to give a print instruction of the hold print job input in the step S1701 (a step S1708). The MFP <NUM> that receives the print instruction starts the print process of the hold print job input in the step S1701. Moreover, the MFP <NUM> transmits the print job status of which the job state <NUM> is "printing" to the chat server <NUM> (a step S1709). Additionally, since the chat notification function to the mobile terminal <NUM> is set to OFF as mentioned above, the chat server <NUM> does not transmit the chat message data as a response to the received print job status to the mobile terminal <NUM>. In this way, a user can set the chat notification function to OFF from a mobile terminal that logs in the chat server <NUM> in the embodiment.

After that, the user B operates the information processing apparatus <NUM> to input a hold print job from the information processing apparatus <NUM> to the MFP <NUM> (a step S1710). Since the MFP <NUM> that receives this hold print job is executing the hold print job input in the step S1701, the MFP <NUM> transmits the print job status of which the job state <NUM> is "standby" to the chat server <NUM> (a step S1711). The chat server <NUM> transmits the chat message data to the chat application <NUM> of the mobile terminal <NUM> used by the user B on the basis of the received print job status (a step S1712). The mobile terminal <NUM> that receives this chat message data displays a message <NUM> (<FIG>), which shows that the print job is accepted but another user is printing currently, on the operation panel <NUM> (a step S1713). Moreover, a button group <NUM> including the print execution button, the job cancel button, and the notification OFF button is displayed on the operation panel <NUM> on the basis of the button information included in the received chat message data.

After that, when the user B presses the job cancel button displayed on the operation panel <NUM>, the mobile terminal <NUM> displays a message <NUM> like "job cancel", which shows that the pressed button is the job cancel button, on the operation panel <NUM>. Moreover, the chat application <NUM> of the mobile terminal <NUM> transmits a button event to the chat server <NUM> (a step S1714). This button event includes information showing the job cancel button pressed by the user B. The chat server <NUM> that receives this button event transmits chat message data including a message, which shows that the operation instruction of the job cancel button is accepted, to the mobile terminal <NUM> (a step S1715). Moreover, the chat server <NUM> gives a cancel instruction of the hold print job input in the step S1710 to the MFP <NUM> (a step S1716).

The mobile terminal <NUM> that receives the chat message data transmitted from the chat server <NUM> in the step S1715 displays a message <NUM>, which shows that the operation instruction of the "job cancel button" is accepted, on the operation panel <NUM> (a step S1717).

In the meantime, the MFP <NUM> that receives the cancel instruction from the chat server <NUM> performs a cancel process of the hold print job input in the step S1710. In this way, a user can check the execution situation of the print job from a mobile terminal that logs in the chat server <NUM> and also can instruct the cancel of the print job concerned from the mobile terminal in the embodiment. Moreover, the MFP <NUM> transmits the print job status of which the job state <NUM> is "cancel" to the chat server <NUM> (a step S1718). The chat server <NUM> that receives this print job status transmits chat message data to the mobile terminal <NUM> (a step S1719). This chat message data includes a message showing that the hold print job input in the step S1710 is canceled.

The mobile terminal <NUM> that receives this chat message data displays a message <NUM>, which shows that the hold print job input in the step S1710 is canceled, on the operation panel <NUM> (a step S1720). Thereby, the user can easily check that the cancel instruction is accepted from the mobile terminal that logs in the chat server <NUM>.

After that, when the print process of the hold print job executed according to the print instruction of the user A in the step S1708 is finished, the process proceeds to a step S1721. In the step S1721, the MFP <NUM> transmits the print job status of which the job state <NUM> is "print finish" to the chat server <NUM>. After that, this process is finished.

Although the present invention is described using the above-mentioned embodiment, the present invention is not limited to the above-mentioned embodiment. For example, in the message notification determination process in the step S913, it may be controlled whether the chat application <NUM> is notified of a message on the basis of information about other than the received button <NUM> about the chat information (other than the operation button).

<FIG> is a flowchart showing other procedures of the message notification determination process in the step S913 in <FIG>. The message notification determination process in <FIG> is achieved by executing the chatbot program <NUM> stored in the ROM <NUM> by the CPU <NUM> of the chat server <NUM>.

As shown in <FIG>, the CPU <NUM> determines whether the notification OFF button is pressed during the chat of the print job of the obtained print job status (step S1901). In the step S1901, when the received button <NUM> of the chat information about the above-mentioned print job is the "notification OFF button", the CPU <NUM> determines that the notification OFF button is pressed during the chat of the print job, for example. In the meantime, when the received button <NUM> of the chat information about the above-mentioned print job is not the "notification OFF button", the CPU <NUM> determines that the notification OFF button is not pressed during the chat of the print job.

When it is determined in the step S1901 that the notification OFF button is pressed during the chat of the above-mentioned print job, the CPU <NUM> sets that the above-mentioned print job is not a message notification target (a step S1902), and finishes this process.

When it is determined in the step S1901 that the notification OFF button is not pressed during the chat of the above-mentioned print job, the process proceeds to a step S1903. In the step S1903, the CPU <NUM> determines whether the chat of the above-mentioned print job is finished on the basis of the chat situation in the above-mentioned chat information.

When it is determined in the step S1903 that the chat of the above-mentioned print job is finished, the process proceeds to the step S1902. This can prevent repeated notification of a message about a print job of which a print process is already completed.

When it is determined in the step S1903 that the chat of the above-mentioned print job is not finished, the CPU <NUM> determines whether the user who inputs the above-mentioned print job is currently logging in the MFP of the input destination of the above-mentioned print job (step S1904). In the embodiment, the MFP user management module <NUM> manages login states of a user to each MFP as shown in the following table <NUM>. The CPU <NUM> determines in the step S1904 on the basis of this information.

When it is determined in the step S1904 that the user who inputs the above-mentioned print job is currently logging in the MFP of the input destination of the above-mentioned print job, the process proceeds to the step S1902. Since the user who logs in the MFP of the input destination of the print job can grasp the situation of the print job concerned from the operation unit of the MFP concerned, it is unnecessary to notify the mobile terminal used by such a user of the above-mentioned messages of the chat. Accordingly, in the embodiment, when it is determined that the user who inputs the above-mentioned print job is currently logging in the MFP of the input destination of the above-mentioned print job, the CPU <NUM> sets that the above-mentioned print job is not the message notification target. Thereby, when the user logs in the MFP of the input destination of the print job, the notification of unnecessary messages to the mobile terminal used by the user concerned can be reduced.

When it is determined in the step S1904 that the user who inputs the above-mentioned print job is not currently logging in the MFP of the input destination of the above-mentioned print job, the process proceeds to a step S1905. In the step S1905, the CPU <NUM> determines whether another print job that was input by the user who inputs the above-mentioned print job prior to the above-mentioned print job is unfinished. Additionally, another print job is indicated as a "preceding job" in <FIG> In the step S1905, for example, when a print job status of which the user ID and image forming apparatus ID are the same as that of the above-mentioned print job, of which the job acceptance time is earlier than that of the above-mentioned print job, and of which the job state is other than "print finish" is registered in the management table <NUM>, it is determined that another print job that was input by the user who inputs the above-mentioned print job prior to the above-mentioned print job is unfinished. In the meantime, when the print job status that satisfies such conditions is not registered in the management table <NUM>, it is determined that there is not another unfinished print job that was input by the user who inputs the above-mentioned print job prior to the above-mentioned print job.

When it is determined in the step S1905 that the other print job that was input by the user who inputs the above-mentioned print job prior to the above-mentioned print job is unfinished, the process proceeds to the step S1902. At this time, for example, when the user is notified of the message showing that another user is printing currently about the other print job previously input by the chat, the notification of the similar message is unnecessary about the print job input later than the other print job. Accordingly, in the embodiment, when the other preceding print job input by the user who inputs the above-mentioned print job prior to the above-mentioned print job is unfinished, the CPU <NUM> sets that the above-mentioned print job is not the message notification target. This can reduce superfluous notification of the messages of the chat.

When it is determined in the step S1905 that there is not another unfinished print job that was input by the user who inputs the above-mentioned print job prior to the above-mentioned print job, the process proceeds to a step S1906. In the step S1906, the CPU <NUM> determines whether elapsed time from the acceptance time of the above-mentioned print job is not more than a predetermined time. Specifically, the CPU <NUM> determines whether the elapsed time from the job acceptance time of the obtained print job status is not more than the predetermined time.

When it is determined in the step S1906 that the elapsed time from the acceptance time of the above-mentioned print job is not more than the predetermined time, the process proceeds to the step S1902. For example, since a user who is in a hurry to print travels to the MFP of the input destination immediately after inputting a print job and checks the state of the MFP concerned directly in order to receive printed matter immediately, the possibility of not checking the above-mentioned message of the chat is extremely high. Instead when such a user is notified of the above-mentioned message of the chat immediately after the acceptance time of the above-mentioned print job, there is fear of feeling troublesome. Accordingly, in the embodiment, when the elapsed time from the acceptance time of the above-mentioned print job is not more than the predetermined time, the CPU <NUM> sets that the above-mentioned print job is not the message notification target. This can reduce superfluous notification of the messages of the chat.

When it is determined in the step S1906 that the elapsed time from the acceptance time of the above-mentioned print job is more than the predetermined time, the process proceeds to the step S1907. In the step S1907, the CPU <NUM> determines whether the hold print job is executed according to the print instruction issued by a means other than the print execution button mentioned above. Additionally, in the embodiment, the CPU <NUM> determines that the print instruction is issued by pressing the print execution button when the "print execution button" is included in the received button of the above-mentioned chat information.

When it is determined in the step S1907 that the hold print job is executed according to the print instruction issued by the means other than the print execution button mentioned above, it is exactly a case where the user directly issues the print instruction from the operation unit <NUM> of the MFP body. In such a case, the process proceeds to the step S1902. This prevents an unnecessary notification of the chat to the user who is so near the MFP that a direct operation is available.

When it is determined in the step S1907 that the hold print job is executed according to the print instruction issued by the print execution button, the process proceeds to a step S1908. In the step S1908, the CPU <NUM> determines whether a notification scheduled message is a message that has been given to the chat application <NUM>. Specifically, the CPU <NUM> determines whether the message ID determined in any one of the above-mentioned steps S905 through S910 is included in the above-mentioned chat information. When the above-mentioned determined message ID is included in the above-mentioned chat information, it is determined that the notification scheduled message is a message that has been given to the chat application <NUM>. In the meantime, when the above-mentioned determined message ID is not included in the above-mentioned chat information, it is determined that the notification scheduled message is not a message that has been given to the chat application <NUM>.

When it is determined in the step S1908 that the notification scheduled message is the message that has been given to the chat application <NUM>, the process proceeds to the step S1902. This prevents notification of the same content messages to a user.

When it is determined in the step S1908 that the notification scheduled message is not a message that has been given to the chat application <NUM>, the CPU <NUM> sets the above-mentioned print job as the message notification target (a step S1909), and finishes this process.

In this way, the above-mentioned message notification determination process in <FIG> can reduce the unnecessary notifications of the chat.

Moreover, the above-mentioned embodiment may be constituted so that an administrator or a user can set whether the determinations in the steps S1904 through S1908 are executed.

<FIG> is a view showing an example of a setting screen used for setting conditions about whether determinations in the steps S1904 through S1908 in <FIG> are executed. The setting screen in <FIG> includes check boxes <NUM> through <NUM>.

The check box <NUM> is used for switching validity/invalidity of the determination in the step S1904. When the check is not contained, the determination in the step S1904 in the message notification determination process in <FIG> becomes valid. In the meantime, when the check is contained, the determination in the step S1904 in the message notification determination process in <FIG> becomes invalid, and the process proceeds to the step S1905 without executing the determination in the step S1904.

The check box <NUM> is used for switching validity/invalidity of the determination in the step S1905. When the check is not contained, the determination in the step S1905 in the message notification determination process in <FIG> becomes valid. In the meantime, when the check is contained, the determination in the step S1905 in the message notification determination process in <FIG> becomes invalid, and the process proceeds to the step S1906 regardless of the situation of another print job (without executing the determination in the step S1905).

The check box <NUM> is used for switching validity/invalidity of the determination in the step S1906. When the check is not contained, the determination in the step S1906 in the message notification determination process in <FIG> becomes valid. In the meantime, when the check is contained, the determination in the step S1906 in the message notification determination process in <FIG> becomes invalid, and the process proceeds to the step S1907 regardless of the elapsed time from the input of the print job (without executing the determination in the step S1906).

The check box <NUM> is used for switching validity/invalidity of the determination in the step S1907. When the check is not contained, the determination in the step S1907 in the message notification determination process in <FIG> becomes valid. In the meantime, when the check is contained, the determination in the step S1907 in the message notification determination process in <FIG> becomes invalid, and the process proceeds to the step S1908 regardless of whether the print execution button of the MFP body is pressed (without executing the determination in the step S1907).

The check box <NUM> is used for switching validity/invalidity of the determination in the step S1908. When the check is not contained, the determination in the step S1908 in the message notification determination process in <FIG> becomes valid. In the meantime, when the check is contained, the determination in the step S1908 in the message notification determination process in <FIG> becomes invalid, and the process proceeds to the step S1909 regardless of whether the message has been given (without executing the determination in the step S1908).

When the configuration that enables the user to set whether the determinations in the steps S1904 through S1908 are executed is employed, the user can set the notification conditions of the chat that are suitable for utilizing environment.

Claim 1:
A chat server apparatus (<NUM>) that notifies a chat application (<NUM>) of a communication terminal (<NUM>) of information about a print job executed by an image forming apparatus (<NUM>), is said communication terminal used by a user, the chat server apparatus comprising:
an obtainment unit (S901) configured to obtain status information about a print job that is input to the image forming apparatus (<NUM>) from an external apparatus (<NUM>), operated by said user and
a controller (<NUM>) configured to transmit message data (S1507) to the chat application (<NUM>) for causing the chat application (<NUM>) to display a message based on the status information on a display unit (<NUM>) of the communication terminal (<NUM>),
the server apparatus further comprises a storing means (<NUM>, <NUM>) for storing (S902) information about a print job;
characterized in that
the controller (<NUM>) is further configured to execute a notification control process, in response to status information about a print job being obtained by the obtaining unit, in which
the controller (<NUM>) stores (S901) information about that print job in the storing means on the basis of the status information about that print job obtained by the obtaining unit, and
in a case (S904:YES) where a predetermined print job is input to the image forming apparatus (<NUM>) from the external apparatus (<NUM>) and information (S1504) stored in the storing means indicates that the image forming apparatus (<NUM>) is executing another print job different from the predetermined print job, where said another print job is of another user, controller (<NUM>) transmits message data (S1507) for causing the chat application (<NUM>) to display (S1508), in a chat with the chat application (<NUM>) about the predetermined print job, a message (<NUM>) which shows that the predetermined print job cannot be executed because the other print job is under execution by the image forming apparatus (<NUM>), and
in a case (S904:NO) where the status information obtained by the obtaining unit is about the other print job and where information (S1509) stored in the storing means indicates that there is not another print job under execution by the image forming apparatus (<NUM>), the controller (<NUM>) transmits message data (S1510) for causing the chat application (<NUM>) to display (S1511) in said chat a message (<NUM>) showing that the predetermined print job can be executed.