Non-transitory computer-readable recording medium storing computer-readable instructions for information processing apparatus, information processing apparatus, and method for controlling information processing apparatus

An information processing apparatus may be configured to communicate with a plurality of devices. The information processing apparatus may determine an input source and an input function. The input source may be one of the devices and the information processing apparatus. The input function may be processed in the input source. The information processing apparatus may determine at least two output destinations and at least two output functions. Each of the at least two output destinations may be one of the devices and the information processing apparatus. Each of the at least two output functions may be processed in each of the at least two output destinations respectively. The information processing apparatus may output first data received from the input function to the at least two output destinations.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to Japanese Patent Application No. 2013-193034, filed on Sep. 18, 2013, the contents of which are hereby incorporated by reference into the present application.

TECHNICAL FIELD

A technology disclosed in this specification relates to an image processing apparatus, a recording medium therefor, and a method for controlling an image processing apparatus that is configured to cause a plurality of devices to execute image processing.

DESCRIPTION OF RELATED ART

Technologies have been known in which a plurality of devices (e.g. a scanner and a printer) connected in a network is used in combination. An example of the known technologies is as follows: Icons representing the devices in the network, respectively, are displayed by a display unit on an information processing apparatus (e.g. a PC). A user drags and drops the icon representing one device (e.g. a scanner) on the screen onto the icon representing another device (e.g. a printer). The information processing apparatus controls each of the two devices in accordance with an instruction.

SUMMARY

In a combined use of a plurality of devices on a network, data that is outputted from one device may be relayed by an information processing apparatus to be used in another device. Proposed is a new technology for handling data with an information processing apparatus in such a case.

In one aspect of the teachings disclosed herein, a non-transitory computer-readable recording medium storing computer-readable instructions for an information processing apparatus may be provided. The information processing apparatus may be configured to communicate with a plurality of devices. The information processing apparatus may comprise a processor. The computer-readable instructions, when executed by the processor, may cause the information processing apparatus to perform receiving a first instruction indicating an input source. The input source may be one of the plurality of devices and the information processing apparatus. The computer-readable instructions may cause the information processing apparatus to perform receiving a second instruction indicating an input function. The input function may be processed in the input source indicated in the first instruction. The computer-readable instructions may cause the information processing apparatus to perform receiving a third instruction indicating at least two output destinations. Each of the at least two output destinations may be one of the plurality of devices and the information processing apparatus. The computer-readable instructions may cause the information processing apparatus to perform receiving a fourth instruction indicating at least two output functions. Each of the at least two output functions may be processed in each of the at least two output destinations respectively. The computer-readable instructions may cause the information processing apparatus to perform receiving an execution-start instruction. The computer-readable instructions may cause the information processing apparatus to perform transmitting a command to the input source in response to receiving the execution-start instruction. The computer-readable instructions may cause the information processing apparatus to perform receiving first data from the input source. The first data may be generated in the input source by processing the input function in response to the command. The computer-readable instructions may cause the information processing apparatus to perform outputting second data related to the received first data to the at least two output destinations.

EMBODIMENT

Configuration of Network10

FIG. 1is a block diagram showing a configuration of a network10. The network10includes an information processing apparatus100, inkjet MFPs200and250, a scanner300, a color laser printer400, an access point500, a base station501, the Internet510, and servers511and512. As used herein, the term “MFP” refers to a multifunction peripheral having a print function, a scan function, etc. (i.e. is referred to as “Multi-Function Peripheral”).

The information processing apparatus100is capable of communicating with a network N1via a first wireless communication interface105and the access point500. The network N1is a local area network. Connected to the network N1are the inkjet MFPs200and250, the scanner300, and the color laser printer400. Further, the information processing apparatus100is also capable of communicating with the Internet510via a second wireless communication interface111and the base station501. The Internet510is a broader area communication network than the network N1. Connected to the Internet510are the servers511and512. The servers511and512are apparatuses that provide storage services that allow various types of data to be stored. This specification describes a case where a service A is provided by the server511and a service B is provided by the server512.

<Configuration of Information Processing Apparatus100>

The information processing apparatus100may be a portable apparatus such as a portable phone or a portable terminal apparatus. The information processing apparatus100includes a display unit102, a touch panel103, an input interface104, the first wireless communication interface105, a CPU106, RAM108, a storage unit109, the second wireless communication interface111, etc., and these components are connected to one another via an input and output port110.

The display unit102receives a picture signal that is outputted from the CPU106, and displays an image based on the picture signal thus received. Usable examples of the display unit102include an LCD, an OLED (organic light-emitting diode) panel, etc. The touch panel103is formed by a transparent member and is disposed in such a manner as to cover a surface of the display unit102. The touch panel103detects the position of an area on the touch panel that a user has tapped with a finger, and outputs positional information thus detected to the CPU106. Hereinafter, reception by the CPU106of positional information that is outputted from the touch panel103is expressed as acceptance by the CPU106of tapping. The input interface104is, for example, an operation button. Depressing the input interface104activates the information processing apparatus100.

The CPU106executes a program stored in the storage unit109. The RAM108acts as a temporary storage for information necessary for processing in the CPU106. The storage unit109is constituted by a combination of a flash memory, an HDD (referred to as Hard Disk Drive), and a buffer of the CPU106, etc. The storage unit109has stored therein various types of information such as account information. The account information is information for logging into the service A that is provided by the server511and the service B that is provided by the server512.

The storage unit109has a program120stored therein. The program120includes a function cooperative application121and an operating system124. The CPU106executes a process in accordance with the program120. The operating system124is a program that provides a basic function which is utilized by the function cooperative application121and the like.

The function cooperative application121is an application for executing one combinational pattern by combining at least one input function and at least one output function with each other and by causing them to cooperate with each other. The input function and the output function are each a function that is provided by any of a plurality of devices communicably connected to the information processing apparatus100or by the information processing apparatus100in itself. Examples of the plurality of devices include the inkjet MFPs200and250, the scanner300, the color laser printer400, the servers511and512, and the information processing apparatus100.

The input function is a function for generating first data that is inputted to the function cooperative application121. Examples of the input function include a scan function, a read function, and a download function. The scan function is a function of generating image data by scanning a document. The scan function is performed, for example, by the inkjet MFP200or250or the scanner300. The read function is a function of reading out data stored in a storage medium. The read function is performed, for example, by the inkjet MFP200or250or the information processing apparatus100. The download function is a function of obtaining, through a network, data stored in a server. The download function is performed, for example, by the server511or512.

The output function is a function of executing any of various types of process with use of second data that is outputted by the function cooperative application121. Examples of the output function include a print function, a write function, and an upload function. The print function is a function of executing a print process with use of image data. The print function is performed, for example, by the inkjet MFP200or250or the color laser printer400. The write function is a function of causing data that is outputted from the function cooperative application121to be stored in a storage medium. The write function is performed, for example, by the information processing apparatus100or the inkjet MFP200or250. The upload function is a function of causing data that is outputted from the function cooperative application121to be stored in a server via a network. The upload function is performed, for example, by the server511or512.

Examples of the combinational pattern include a copy function, a storage function, and a copy & storage function. The copy function is a function that is fulfilled by a combination of the scan function selected as the input function and the print function selected as the output function. The copy function makes it possible to carry out a copy process of printing a scanned document. The storage function is a combination of the scan function, the read function, or the download function selected as the input function and the write function or the upload function selected as the output function. The storage function makes it possible, for example, to cause image data generated by scanning a document to be stored in a storage medium or a storage sewer. For the copy & storage function, the scan function, the read function, or the download function is selected as the input function, and a plurality of functions, i.e. the print function and the write function or the upload function, are selected as the output functions. The copy & storage function makes it possible, for example, to print image data generated by scanning a document and to cause the image data thus generated to be stored in a storage medium or the like.

Further, the storage unit109has stored therein a registered device table TB1, a registered service table TB2, and a combinational pattern registration table TB3. The registered device table TB1is a table in which to store a registered device, i.e. a device that provides an input function or an output function which constitutes a combinational pattern. The registered device is selected in advance by the user and stored in the registered device table TB1.

FIG. 8shows an example of the registered device table TB1. The registered device table TB1has stored therein information regarding registered devices, namely identification information601, input function602, input function display setting603, output function606, and output function display setting607. The identification information601is information for identifying the registered devices. The identification information601includes device name611and IP address612. The device name611is information for identifying each of the registered devices. The IP address612is a well-known bit sequence for use in communication, assigned to each separate one of the registered devices. The input function display setting603is information for determining whether or not to display an input function on an input function selection accepting screen that is displayed in the below-mentioned step S425or S455. The output function display setting607is information for determining whether or not to display an output function on an output function selection accepting screen that is displayed in the below-mentioned step S525or S555.

The registered service table TB2is a table in which to store a registered service, i.e. a service that provides an input function or an output function which constitutes a combinational pattern. The registered service is selected in advance by the user and stored in the registered service table TB2.

FIG. 9shows an example of the registered service table TB2. The registered service table TB2has stored therein information regarding registered services, namely identification information641, input function642, input function display setting643, output function644, and output function display setting645. The identification information641includes service name651and IP address652.

Falling under the input function642are downloads from folders. That is, an input function corresponds to selecting any of a plurality of folders provided by a service and downloading data stored in a selected folder. Falling under the output function644are uploads to folders. That is, an output function corresponds to selecting any of a plurality of folders provided by a service and uploading data to a selected folder for storage. The input function display setting643is information for determining whether or not to display an input function on an input function selection accepting screen that is displayed in the below-mentioned step S425or S455. The output function display setting645is information for determining whether or not to display an output function on an output function selection accepting screen that is displayed in the below-mentioned step S525or S555.

The combinational pattern registration table TB3is a table in which to store a combinational pattern of an input function and an output function.FIG. 10shows an example of the combinational pattern registration table TB3. The combinational pattern registration table TB3has stored therein combinational pattern name621, input function622, input setting values623, output function625, and output setting values626. The combinational pattern name621is information for identifying each separate combination1pattern. A combinational pattern is constituted by a combination of an input function622and an output function625. The input setting values623are various setting values at which data is inputted by an input function622. For example, in a case where the input function622is a scan function, examples of the input setting values623include document size, scanning resolution, color mode, etc. The output setting values626are various setting values at which data is outputted by an output function625. For example, in a case where the output function625is a print function, examples of the output setting values626include paper size, printing resolution, color mode, etc.

In the ensuing explanation, the CPU106to execute programs such as the function cooperative application121and the operating system124is sometimes simply referred to by the program name. For example, the indication of “function cooperative application121” may mean “the CPU106that executes the function cooperative application121”.

<Operation of the Function Cooperative Application121>

Processes in which the CPU106controls each of the units in accordance with the function cooperative application121are described below with reference toFIGS. 2 through 5. Once the function cooperative application121is activated, the flow shown inFIG. 2is started.

In step S110, the CPU106causes the display unit102to display a registered device & service list screen810. The registered device & service list screen810is a screen that shows a list of the registered devices registered in the registered device table TB1and the registered services registered in the registered service table TB2.FIG. 11shows an example of the registered device & service list screen810. The registered device & service list screen810contains tab images811and812, registered device images813to816, a registered device-add button image817, registered service images820and821, and a registered service-add button image822. The tab images811and812are images for accepting an instruction for the display unit102to switch between displaying the registered device & service list screen810and displaying the below-mentioned registered combinational pattern list screen830. The registered device images813to816are images representing the registered devices, respectively. The registered device-add button image817is an image for accepting an operation of adding and storing a registered device. The registered service images820and821are images representing the registered services, respectively. The registered service-add button image822is an image for accepting an operation of adding and storing a registered service.

In step S115, the CPU106determines whether or not a switch instruction to switch between the display screens has been inputted. This determination may be made depending on whether or not the tab image812has been tapped. If the determination is negative (S115: NO), the CPU106proceeds to step S120.

In step S120, the CPU106waits for a process execution command to be inputted. If the CPU106determines that a process execution command has not been inputted (S120: NO), the CPU106returns to step S110. On the other hand, if the CPU106determines that a process execution command to execute a device registration process has been inputted (S120: Device Registration Process), the CPU106proceeds to step S125. This determination may be made depending on whether or not the registered device-add button image817has been tapped.

In step S125, the CPU106executes the device registration process. The device registration process is a process by which to cause a new device to be stored in the registered device table TB1. The device registration process is described with reference toFIG. 3. In step S210, the CPU106searches for a communicable device, i.e. a device that is capable of communicating with the information processing apparatus100. The search for a communicable device may be performed by broadcasting information (e.g. ping) for confirmation of communication. In step S220, the CPU106extracts, from among the communicable devices thus found, an unregistered device, i.e. a device that has not been registered as a registered device. An unregistered device may be extracted with reference to the registered device table TB1(seeFIG. 8). In step S230, the CPU106causes the display unit102to display a list of the device names of unregistered devices.

In step S240, the CPU106determines whether or not a selected unregistered device has been selected. A selected unregistered device is an unregistered device selected from among the unregistered devices displayed on the list as a target to be registered in the registered device table TB1. This determination may be made depending on whether or not any of the unregistered devices displayed on the list has been tapped. If the determination is negative (S240: NO), the CPU106returns to step S240. If the determination is positive (S240: YES), the CPU106proceeds to step S250.

In step S250, the CPU106obtains input function information and output function information from the selected unregistered device. The input function information is information representing an input function provided in the selected unregistered device. The output function information is information representing an output function provided in the selected unregistered device. The input function information and the output function information may be stored in the selected unregistered device as MIB (referred to as Management Information Base) information. The CPU106causes the input function represented by the input function information thus obtained and the output function represented by the output function information thus obtained to be newly stored in the registered device table TB1, together with the device name of the selected unregistered device. Then, the CPU106returns to step S110.

On the other hand, if the CPU106determines in step S120that an execution command to execute a service registration process has been inputted (S120: Service Registration Process), the CPU106proceeds to step S130. This determination may be made depending on whether or not the registration service-add button image822has been tapped. In step S130, the CPU106executes the service registration process. The service registration process is a process by which to cause a new service to be stored in the registered service table TB2.

The service registration process is described with reference toFIG. 4. In step S310, the CPU106searches for account information stored in the storage unit109.

In step S320, the CPU106extracts, from among services corresponding to the account information thus found, an unregistered service, i.e. a service that has not been registered as a registered service. An unregistered service may be extracted with reference to the registered service table TB2(seeFIG. 9). In step S330, the CPU106causes the display unit102to display a list of the service names of unregistered services.

In step S340, the CPU106determines whether or not a selected unregistered service has been selected. A selected unregistered service is an unregistered service selected from among the unregistered services displayed on the list as a target to be registered in the registered service table TB2. If the determination is negative (S340: NO), the CPU106returns to step S340. If the determination is positive (S340: YES), the CPU106proceeds to step S350.

In step S350, the CPU106obtains input function information and output function information from the selected unregistered service. The CPU106causes the input function represented by the input function information thus obtained and the output function represented by the output function information thus obtained to be newly stored in the registered service table TB2, together with the service name of the selected unregistered service. Then, the CPU106returns to step S110.

On the other hand, if the determination in step S115ofFIG. 2is positive (S115: YES), the CPU106proceeds to step S150. In step S150, the CPU106causes the display unit102to display a registered combinational pattern list screen830. The registered combinational pattern list screen830is a screen that shows a list of the registered combinational patterns registered in the registered combinational pattern table TB3.FIG. 12shows an example of the registered combinational pattern list screen830. The registered combinational pattern list screen830contains tab images831and832, registered combinational pattern images833to835, and a registered combinational pattern-add button image836. The tab images831and832are images for accepting an instruction for the display unit102to switch between displaying the registered device & service list screen810and displaying the below-mentioned registered combinational pattern list screen830. The registered combinational pattern images833to835are images representing the registered combinational patterns, respectively. The registered combinational pattern-add button image836is an image for accepting an operation of adding and storing a combinational pattern.

In step S155, the CPU106determines whether or not a switch instruction to switch between the display screens has been inputted. This determination may be made depending on whether or not the tab image831has been tapped. If the determination is positive (S155: YES), the CPU106returns to step S110. If the determination is negative (S155: NO), the CPU106proceeds to step S160. In step S160, the CPU106waits for a process execution command to be inputted. If the CPU106determines that a process execution command to execute a registered combinational pattern has been inputted (S160: Registered Combinational Pattern), the CPU106proceeds to step S180. This determination may be made depending on whether or not any of the registered combinational pattern images833to835has been tapped.

On the other hand, if the CPU106determines that a process execution command to execute a combinational pattern registration process has been inputted (S160: Combinational Pattern Registration Process), the CPU106proceeds to step S165. The combinational pattern registration process is a process by which to generate and store a newly-registered combinational pattern, i.e. a combinational pattern that is newly registered. This determination may be made depending on whether or not the registered combinational pattern-add button image836has been tapped. In step S165, the CPU106executes a process of registering the combinational pattern name of a newly-registered combinational pattern. For example, input of the combinational pattern name may be accepted via the input interface104. Then, the name thus inputted may be stored as a new combinational pattern name621in the registered combinational pattern table TB3(seeFIG. 10).

In step S175, the CPU106executes an input and output function registration process. The input and output function registration process is a process by which to register an input function and an output function that constitute a newly-registered combination pattern. The content of the input and output function registration process is described with reference toFIGS. 5 through 7B. In step S410, the CPU106determines the content of an instruction from the user. If any instruction has not been inputted (S410: NO), the CPU106returns to step S410. On the other hand, if the CPU106determines that it has been instructed to register an output function (S410: Output Function), the CPU106proceeds to step S515. This determination may be made depending on whether or not the output function-add button image842has been tapped.

In step S515, the CPU106executes a process for displaying an output device & service selection accepting screen. The output device & service selection accepting screen is a screen for accepting selection of a device or service that provides an output function of a newly-registered combinational pattern. The content of the process for displaying the output device & service selection accepting screen is described with reference toFIG. 7B.

In step S610, the CPU106, using a pointer, points to a registered device having an output function or a registered service having an output function from among the registered devices registered in the registered device table TB1(seeFIG. 8) and the registered services registered in the registered service table TB2(seeFIG. 9).

In step S620, the CPU106determines whether or not the registered device or registered service pointed to with the pointer is already selected as a device or service that provides an output function of the newly-registered combinational pattern. This determination is made on the basis of the combinational pattern registration table TB3. If the determination is negative (S620: NO), the CPU106proceeds to step630. In step S630, the CPU106accesses the registered device table TB1in a case where it is a registered device that has been pointed to with the pointer. Then, the CPU106sets the output function display setting607to on for all output functions provided in the registered device pointed to with the pointer. Alternatively, the CPU106accesses the registered service table TB2in a case where it is a registered service that has been pointed to with the pointer. Then, the CPU106sets the output function display setting645to “on” for all output functions provided in the registered service pointed to with the pointer. Then, the CPU106proceeds to step S670.

On the other hand, if the determination in step S620is positive (S620: YES), the CPU106proceeds to step640. In step S640, the CPU106determines whether or not all of the output functions provided in the registered device or registered service pointed to with the pointer is already selected as an output function of the newly-registered combinational pattern. If the determination is positive (S640: YES), the CPU106proceeds to step S660. In step S660, the CPU106accesses the registered device table TB1in a case where it is a registered device that has been pointed to with the pointer. Then, the CPU106sets the output function display setting607to “off” for all output functions provided in the registered device pointed to with the pointer. Alternatively, the CPU106accesses the registered service table TB2in a case where it is a registered service that has been pointed to with the pointer. Then, the CPU106sets the output function display setting645to “off” for all output functions provided in the registered service pointed to with the pointer. Then, the CPU106proceeds to step S670.

On the other hand, if the determination in step S640is negative (S640: NO), the CPU106proceeds to step650. In step S650, the CPU106accesses the registered device table TB1in a case where it is a registered device that has been pointed to with the pointer. Then, the CPU106sets the output function display setting607to “off” for an output function, among the output functions provided in the registered device pointed to with the pointer, which has already been selected as an output function of the newly-registered combinational pattern, and sets the output function display setting607to “on” for the other output function(s). Alternatively, the CPU106accesses the registered service table TB2in a case where it is a registered service that has been pointed to with the pointer. Then, the CPU106sets the output function display setting645to “off” for an output function, among the output functions provided in the registered service pointed to with the pointer, which has already been selected as an output function of the newly-registered combinational pattern, and sets the output function display setting645to “on” for the other output function(s). Then, the CPU106proceeds to step S670.

In step S670, the CPU106determines whether or not all of the registered devices registered in the registered device table TB1and all of the registered services registered in the registered service table TB2have been pointed to with the pointer. If the determination is negative (S670: NO), the CPU106returns to step S610. If the determination is positive (S670: YES), the CPU106proceeds to step S680.

In step S680, the CPU106causes the display unit102to display an output device & service selection accepting screen850.FIG. 14shows an example of the output device & service selection accepting screen850. The output device & service selection accepting screen850contains button images851to855. The button images851to853are each an image for accepting an operation of selecting a device that provides an output function of a newly-registered combinational pattern. The button images854and855are each an image for accepting an operation of selecting a service that provides an output function of a newly-registered combinational pattern. Then, the CPU106proceeds to step S520ofFIG. 6.

In step S520, the CPU106determines whether or not selection of a device or service has been accepted. This determination may be made depending on whether or not any of the button images851to855has been tapped. If the determination is negative (S520: NO), the CPU106returns to step S520. On the other hand, if the CPU106determines that a device has been selected (S520: Device), the CPU106proceeds to step S525. It may be in a case where any of the button images851to853has been tapped that the CPU106determines that a device has been selected.

In step S525, the CPU106causes the display unit102to display an output function selection accepting screen860. The output function selection accepting screen860is a screen for accepting selection of an output function that constitutes a newly-registered combinational pattern. The output function selection accepting screen860shows only an output function for which the output function display setting607has been set to “on” on the registered device table TB1.

FIG. 15shows an example of the output function selection accepting screen860. The output function selection accepting screen860contains a button image861. The button image861is an image for accepting an operation of selecting an output function of a newly-registered combinational pattern.

The present embodiment describes, as an example, a case where the button image852was tapped in step S520and the inkjet MFP200was selected accordingly. In this case, as indicated by the region R1on the registered device table TB1ofFIG. 8, the output function display setting607for the print function is “on” and the output function display setting607for the write function is “off”. Therefore, the output function selection accepting screen860shown inFIG. 15shows only the button image861, which represents the print function.

In step S530, the CPU106determines whether or not an output function has been selected. This determination may be made depending on whether or not a button image displayed on the output function selection accepting screen860has been tapped. If the determination is negative (S530: NO), the CPU106returns to step S530. If the determination is positive (S530: YES), the CPU106proceeds to step S535.

In step S535, the CPU106causes the display unit102to display an output setting screen870. The output setting screen870is a screen for accepting a change to output setting values626concerning the output function selected in step S530.FIG. 16shows an example of the output setting screen870. The output setting screen870contains button images871to874. The button images871to873are images for accepting changes to the settings of printing paper size, printing resolution, and color mode, respectively. The button image874is an image for accepting an instruction to store the setting values thus changed.

In step S540, the CPU106executes a process for changing the output setting values626. For example, tapping of the button image871may cause a list of setting candidate values (e.g. A4, B5, Letter, Postcard) for printing paper size to be displayed. Moreover, a value selected by the user from among the setting candidate values may be adopted as a new output setting value.

In step S545, the CPU106determines whether or not a registration instruction to register an output setting value has been outputted. This determination may be made depending on whether or not the button image874has been tapped. If the determination is negative (S545: NO), the CPU106returns to step S545. If the determination is positive (S545: YES), the CPU106proceeds to step S550.

In step S550, the CPU106causes the output function625selected in step S530and the output setting values626selected in step S540to be stored in a region on the combinational pattern registration table TB3where the newly-registered combinational pattern is stored. Then, the CPU106proceeds to step S580.

On the other hand, if the CPU106determines in step S520that a service has been selected (S520: Service), the CPU106proceeds to step S555. In step S555, the CPU106causes the display unit102to display an output function selection accepting screen890.FIG. 17shows an example of the output function selection accepting screen890. The output function selection accepting screen890contains button images891and892. The button images891and892are each an image for accepting an operation of selecting an output function of a newly-registered combinational pattern.

The present embodiment describes, as an example, a case where the button image854was tapped in step S520and the service A was selected accordingly. In this case, as indicated by the region R2on the registered service table TB2ofFIG. 9, the output function display setting645for a folder A is “off” and the output function display setting645for folders B and C is “on”. Therefore, the output function selection accepting screen890shown inFIG. 17shows the button images891and892, which represent the folders B and C respectively.

In step S560, the CPU106determines whether or not any of the folders has been selected as an output function. If the determination is negative (S560: NO), the CPU106returns to step S560. If the determination is positive (S560: YES), the CPU106proceeds to step S565.

In step S565, the CPU106determines whether or not a registration instruction to register an output function has been outputted. If the determination is negative (S565: NO), the CPU106returns to step S565. If the determination is positive (S565: YES), the CPU106proceeds to step S570. In step S570, the CPU106causes the folder selected in step S560to be stored in a region on the combinational pattern registration table TB3where the newly-registered combinational pattern is stored. Then, the CPU106proceeds to step S580.

In step S580, the CPU106determines whether or not an input function of the newly-registered combinational pattern has already been registered. If the determination is negative (S580: NO), the CPU106proceeds to step S590. In step S590, the CPU106sets the display mode of a process execution button image to “non-display”. The process execution button image will be described later. Then, the CPU106proceeds to step S180ofFIG. 2. On the other hand, if the determination is positive (S580: YES), the CPU106proceeds to step S585. In step S585, the CPU106sets the display mode of the process execution button image to “display”. Then, the CPU106proceeds to step S180.

On the other hand, if the CPU106determines in step S410ofFIG. 5that an instruction to register an input function has been given (S410: Input Function), the CPU106proceeds to step S415. In step S415, the CPU106executes a process for displaying an input device & service selection accepting screen. The input device & service selection accepting screen is a screen for accepting selection of a device or service that provides an input function of a newly-registered combinational pattern.FIG. 7Ashows the content of the process for displaying the input device & service selection accepting screen. The content of the process shown in the flow ofFIG. 7Ais the same as the content of the process, described with reference toFIG. 7B, for displaying the output device & service selection accepting screen. Specifically, the term “output function” in the process in steps S610to S680needs only be read as “input function” in the process in steps S610ato S680a. Therefore, the process in steps S610ato S680ais not described in detail here.

The content of the process in steps S420to S490shown inFIG. 5is the same as the content of the process in steps S520to S590ofFIG. 6. Specifically, the term “output function” in the process in step S520to S590needs only be read as “input function” in the process in steps S420to S490. Therefore, the process in steps S420to S490is not described in detail here.

In step S180ofFIG. 2, the CPU106causes the display unit102to display a combinational pattern execution screen. The combinational pattern execution screen is a screen for accepting input of an execution instruction to execute a combinational pattern.FIG. 18shows an example of a combinational pattern execution screen880. The combinational pattern execution screen880is a screen displayed on the basis of the combination pattern stored in the region R11on the combinational pattern registration table TB3(seeFIG. 10). The combinational pattern execution screen880contains button images881to885and a process execution button image886. The button image881is an image representing an input function of the combinational pattern that is to be executed. The button image882is an image for accepting an execution instruction to execute a process of adding an input function. The button images883and884are each an image representing an output function of the combinational pattern that is to be executed. The button image885is an image for accepting an execution instruction to execute a process of adding an output function.

The process execution button image886is an image for accepting an execution instruction to execute the combinational pattern. In a case where the display mode was set to “non-display” in step S490or S590, the process execution button image886is displayed in such a manner as to be incapable of accepting an execution instruction. An example of the display manner in which an execution instruction cannot be accepted is a grayed-out display. On the other hand, in a case where the display mode was set to “display” in step S485or S585, the process execution button image886is displayed in such a manner as to be capable of accepting an execution instruction. An example of the display manner in which an execution instruction can be accepted is a normal display that is not grayed out. This makes it possible, on the condition that selection of both an input function and an output function has been completed, to accept an execution instruction to execute the combinational pattern.

In step S190, the CPU106determines the content of an instruction from the user. If any instruction has not been inputted (S190: NO), the CPU106returns to step S190. On the other hand, if the CPU106determines that an add instruction to add an input function or an output function has been inputted (S190: Add Instruction), the CPU106returns to step S175. This determination may be made depending on whether or not the button image882or885has been tapped. If the CPU106determines that an execution instruction to execute the combinational pattern has been inputted (S190: Execution Instruction), the CPU106proceeds to step S195. This determination may be made depending on whether or not the process execution button image886has been tapped.

In step S195, the CPU106executes the combinational pattern. As an example, an operation in which the combinational pattern stored in the region R11is executed is described. The CPU106sends a scan execution command to the scanner300via wireless communication150. Once the scanner300generates scanned data in accordance with the input setting values623, the CPU106obtains the scanned data from the scanner300via the wireless communication150. The CPU106generates print data and storage data from the scanned data in accordance with the output setting values626. The storage data may be data obtained by compressing the scanned data in a predetermined format. The CPU106sends the print data thus generated to the color laser printer400via the wireless communication150. The color laser printer400executes the print process with use of the print data. This achieves a copy function. Further, the CPU106sends the storage data thus generated to the server511via wireless communication151. The service A executed in the server511causes the storage data to be stored in the folder A. This achieves a storage function.

The function cooperative application121described in this specification makes it possible to select an input function of a combinational pattern (S430) and select a plurality of output functions of the combinational pattern (S530). Moreover, upon receiving an execution instruction to execute the combinational pattern (S190: Execution Instruction), the function cooperative application121can execute the combinational pattern (S195). This makes it possible to pass data from a single input function onto each of a plurality of output functions by executing a single combinational pattern, thus making it possible to execute a plurality of functions (e.g. a copy function and a storage function). This eliminates the need to repeatedly input more than once an operation of causing a plurality of functions to be executed, thus making it possible to enhance convenience.

The function cooperative application121described in this specification makes it possible to, upon accepting an add instruction to add an output function that constitutes a combinational pattern (S190: Add Instruction), add the output function (S175). This makes it possible to generate a combinational pattern that is constituted by a single input function and a plurality of output functions.

The input functions and output functions of a plurality of devices (e.g. the inkjet MEN200and250, the scanner300, and the color laser printer400) can be stored in the registered device table TB1in association with the plurality of devices, respectively (S250). Further, the output function of the information processing apparatus100can be stored in the registered device table TB1in association with the information processing apparatus100(S250). Further, the input functions and output functions of a plurality of services (e.g. the services A and B) can be stored in the registered service table TB2in association with the plurality of services, respectively (S350). Moreover, it is possible to cause the display unit102to display the input functions and output functions stored in the registered device table TB1and those stored in the registered service table TB2and accept selection of an input function and an output function that constitute a combinational pattern (S430, S460, S530, S560). This makes it possible to prevent an inappropriate input function or output function from being selected as an input function or output function that constitutes a combinational pattern.

A combinational pattern generated by a user can be stored in the combinational pattern registration table TB3(S450, S470, S550, S570). Moreover, a list of registered combinational patterns registered in the combinational pattern registration table TB3can be displayed (S150), and in a case where a process execution command to execute any of the combinational patterns has been inputted (S160: Registered Combinational Pattern), the combinational pattern thus selected can be executed (S195). This makes it possible to invoke and execute a combinational pattern, thus making it possible to improve user-friendliness.

Input setting values (S440) and output setting values (S540) set by the user can be stored in the combinational pattern registration table TB3(S450, S550). Moreover, a registered combinational pattern can be executed on the basis of the input setting values and output setting values thus stored (S195). This eliminates the need to set input setting values or output setting values each time, thus making it possible to improve user-friendliness.

It is possible to set the output function display settings607and645to “on” for those output functions which have yet to be selected as an output function of a newly-registered combinational pattern and set the output function display settings607and645to “off” for those output functions which have already been selected as an output function of a newly-registered combinational pattern (S630, S650, S660). Moreover, the output function selection accepting screen860(seeFIG. 15) and the output function selection accepting screen890(seeFIG. 17) display only those output functions for which the output function display settings607and645have been set to “on” (S525, S555). This makes it possible to, in selecting an output function that constitutes a newly-registered combinational pattern, prevent the same output function from being redundantly selected.

The information processing apparatus100makes it possible to exchange data between a device included in a local area network and a device included in the Internet. This makes it possible to constitute a combinational pattern by using an input function that is provided by a device (e.g. the inkjet MFP200) included in the network N1, which is a local area network, and an output function that is provided by a device (e.g. the servers511and512) included in the Internet510. Further, this makes it possible to constitute a combinational pattern by using an input function that is provided by a device included in the Internet510and an output function that is provided by a device included in the network N1.

It is possible to constitute a combinational pattern by using an input function that is provided by a device included in the network N1or in the Internet510and an output function of the information processing apparatus100. An example of such a combinational pattern is a combination of the scan function that is provided by the scanner300and the write function of the information processing apparatus100, as indicated by the region R12on the combinational pattern registration table TB3(seeFIG. 10). This makes it possible to use the information processing apparatus100and an external device other than the information processing apparatus100in combination.

It is possible to constitute a combinational pattern by using a device (e.g. the inkjet MFPs200and250) including a plurality of processing functions such as input functions and output functions. An example of such a combinational pattern is a combination of the scan function that is provided by the scanner300and the print function and write function that are provided by the inkjet MFP200, as indicated by the region R13on the combinational pattern registration table TB3. This makes it possible to, by executing a single combinational pattern, cause a single device to execute a plurality of output functions, thus making it possible to enhance convenience.

While specific embodiments of the present invention have been described in detail above, such description is for illustrative purposes only and is not intended to limit the scope and claims of the invention. Techniques described in the claims of the invention include various modifications and changes made to the specific examples illustrated above. Modifications will be described below.

The embodiment has been described in this specification by taking, as an example, a case where a single input function and a plurality of output functions are combined. However, the embodiment does not imply any limitation. It is also possible to combine a plurality of input functions and a single output function. An example of such a combinational pattern is a combination of the scan functions that are provided by the scanner300and the inkjet MFP200and the print function of the color laser printer400, as indicated by the region R14on the combinational pattern registration table TB3(seeFIG. 10). This makes it possible to, by executing a single combinational pattern, divide a document into parts, read the parts with the scanner300and the inkjet MFP200to generate items of scanned data respectively, and print the items of scanned data with the color laser printer400. This makes it possible to shorten the length of time required for a scan process.

Further, it is also possible to combine a plurality of input functions and a plurality of output functions. An example of such a combinational pattern is a combination of the scan functions that are provided by the scanner300and the inkjet MFP200and the print functions of the color laser printer400and the inkjet MFP250. This makes it possible to, by executing a single combinational pattern, divide a document into parts, read the parts with the scanner300and the inkjet MFP200to generate items of scanned data respectively, and print the items of scanned data with the color laser printer400and the inkjet MFP250respectively. This makes it possible to shorten the length of time required for a scan process and a print process.

It is also possible to combine one or more input functions and one or more output functions in achieving a single combination of functions. For example, a copy function may be achieved by combining a single input function and a plurality of output functions. An example of such a combinational pattern is a combination of the scan function that is provided by the scanner300and the print functions of the color laser printer400and the inkjet MFP250. Further, for example, a storage function may be achieved by combining a plurality of input functions and a single output function. An example of such a combinational pattern is a combination of the scan functions that are provided by the scanner300and the inkjet MFP200and the write function of the information processing apparatus100.

It is possible to omit the process of displaying the registered device & service list screen (S110to S130, S155). In this case, selection of an output function may be accepted by displaying lists of output functions of communicable devices on the output function selection accepting screen860(S525) and the output function selection accepting screen890(S555). Further, selection of an input function may be accepted by displaying a list of input functions of communicable devices on the input function selection accepting screen (S425, S455). For that purpose, in general, the information processing apparatus100needs only include at least “receiving of a first selection”, “receiving of a second selection”, “receiving of an execution-start instruction”, “acquiring of first data” and “outputting of second data”. As a specific example, the information processing apparatus100needs only execute at least steps S430and S460, steps S530and S560, step S190, and step S195.

In step S460, the CPU106may determine whether or not any of the files has been selected as an input function. This makes it possible to download the selected file via a network.

Data that is handled by the function cooperative application121is not limited to image data. The function cooperative application121may handle text data, document-format data for use in word processor software, stroke data and vector data for use as embroidery data for sewing machines, etc.

Examples of output functions are not limited to those functions mentioned above, such as print functions and write functions. For example, in a case where a device that provides an output function is a sewing machine, an embroidery function of embroidering on the basis of stroke data or the like can be used as an output function.

Examples of combinational patterns are not limited to those functions mentioned above, such as a copy function, a storage function, and a copy & storage function. It is possible to achieve various combinational patterns by combining an input function(s) and an output function(s). For example, a fax function of transmitting a scanned document can be achieved by combining a scan function as an input function and a transmitting function as an output function.

The content of the output setting values (seeFIG. 16) described in the present embodiment is a mere example, and it is possible to use various values.

The communication between the access point500and each of the devices such as the inkjet MIT200may be either wireless or wired. Further, the information processing apparatus100may communicate directly with each of the devices without the access point500. In so doing, the information processing apparatus100may communicate with each of the devices either wiredly or wirelessly.

The examples of displays on the display unit102inFIGS. 11 through 18are mere examples. Various display forms of images may be displayed on the display unit102.

The information processing apparatus100may be configured such that an external memory such as an SD card (registered trademark of SD Association) can be connected thereto. Moreover, the information processing apparatus100may be configured such that the various types of data are stored in the external memory instead of being stored in the storage unit109.