WO2010050042A1 - ワークフロー編集プログラムおよびワークフロー編集装置 - Google Patents

ワークフロー編集プログラムおよびワークフロー編集装置 Download PDF

Info

Publication number
WO2010050042A1
WO2010050042A1 PCT/JP2008/069865 JP2008069865W WO2010050042A1 WO 2010050042 A1 WO2010050042 A1 WO 2010050042A1 JP 2008069865 W JP2008069865 W JP 2008069865W WO 2010050042 A1 WO2010050042 A1 WO 2010050042A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing element
condition
variable
condition definition
input
Prior art date
Application number
PCT/JP2008/069865
Other languages
English (en)
French (fr)
Inventor
哲也 岡野
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2008/069865 priority Critical patent/WO2010050042A1/ja
Publication of WO2010050042A1 publication Critical patent/WO2010050042A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Definitions

  • the present invention relates to a workflow editing program and workflow editing apparatus for editing a workflow.
  • the workflow editor is a device that designs and edits operation management processes and business processes called workflows.
  • a conventional workflow editor creates a workflow by connecting flow elements such as processes (actions) and conditional branches through a control flow representing the flow of processes.
  • a precondition or a postcondition can be defined in the “process (action)” of the workflow itself (see, for example, Patent Document 1 below).
  • FIG. 39 is an explanatory diagram showing workflow creation (1) by a conventional workflow editor.
  • An object of the present invention is to provide a workflow editing program and a workflow editing apparatus capable of reducing the burden of verification and improving the work efficiency in order to solve the above-described problems caused by the prior art.
  • the workflow editing program and the workflow editing apparatus acquire a processing element that associates a process constituting the workflow with a conditional branch of a precondition and a postcondition of the process.
  • the setting means obtains the condition definition information by the input control means, which is obtained by the obtaining means.
  • the processing element is designated to be rendered and rendered by the rendering means, and when the condition definition information is set, the processing element is designated to be rendered, and the rendering means redraws based on the condition definition information. It is a requirement to provide a drawing control means for enabling.
  • This workflow editing program and workflow editing device can prevent the addition of conditional branches and forgetting to specify.
  • This workflow editing program and workflow editing device have the effect of reducing the verification burden and improving work efficiency.
  • FIG. 1 is an explanatory diagram showing processing elements with evaluation.
  • FIG. 2 is an explanatory diagram illustrating an example of an editing screen of the workflow editing apparatus.
  • FIG. 3 is an explanatory diagram (part 1) of the condition setting dialog.
  • FIG. 4 is an explanatory diagram (1) showing a variable dialog.
  • FIG. 5 is an explanatory diagram (part 2) of the condition setting dialog.
  • FIG. 6 is an explanatory diagram (2) showing the variable dialog.
  • FIG. 7 is an explanatory diagram (part 3) of the condition setting dialog.
  • FIG. 8 is an explanatory diagram (3) showing the variable dialog.
  • FIG. 9 is an explanatory diagram (4) showing the variable dialog.
  • FIG. 10 is an explanatory diagram (part 4) of the condition setting dialog.
  • FIG. 11 is an explanatory diagram (5) showing the variable dialog.
  • FIG. 12 is an explanatory diagram (part 5) of the condition setting dialog.
  • FIG. 13 is an explanatory diagram (part 6) of the condition setting dialog.
  • FIG. 14 is an explanatory diagram (part 7) of the condition setting dialog.
  • FIG. 15 is an explanatory diagram (part 8) of the condition setting dialog.
  • FIG. 16 is an explanatory diagram (part 9) of the condition setting dialog.
  • FIG. 17 is an explanatory diagram (part 10) of the condition setting dialog.
  • FIG. 18 is an explanatory diagram (part 1) of the condition definition table.
  • FIG. 19 is an explanatory diagram (part 1) illustrating a structure that is a data structure of a processing element.
  • FIG. 20 is an explanatory diagram (part 2) of the condition definition table.
  • FIG. 21 is an explanatory diagram (part 2) of the structure that is the data structure of the processing element.
  • FIG. 22 is an explanatory diagram (part 3) of the condition definition table.
  • FIG. 23 is an explanatory diagram (part 3) of the structure that is the data structure of the processing element.
  • FIG. 24 is an explanatory diagram (part 4) of the condition definition table.
  • FIG. 25 is an explanatory diagram (part 4) illustrating a structure that is a data structure of a processing element.
  • FIG. 26 is an explanatory diagram (part 5) of the condition definition table.
  • FIG. 27 is an explanatory diagram (part 5) illustrating the structure that is the data structure of the processing element.
  • FIG. 28 is an explanatory diagram (part 6) of the condition definition table.
  • FIG. 29 is an explanatory diagram (part 6) illustrating the structure that is the data structure of the processing element.
  • FIG. 30 is an explanatory diagram (part 7) of the condition definition table.
  • FIG. 31 is an explanatory diagram (part 7) illustrating a structure 1900 serving as a data structure of a processing element.
  • FIG. 32 is a block diagram of a hardware configuration of the workflow editing apparatus according to the embodiment.
  • FIG. 33 is a block diagram illustrating a functional configuration of the workflow editing apparatus.
  • FIG. 34 is a flowchart showing a workflow editing process procedure.
  • FIG. 35 is a flowchart of a detailed process procedure of the condition setting process (step S3405) depicted in FIG. FIG.
  • FIG. 36 is a flowchart showing a detailed processing procedure of the new registration process (step S3504) shown in FIG.
  • FIG. 37 is a flowchart showing a detailed processing procedure of the variable deletion processing (step S3506) shown in FIG.
  • FIG. 38 is a flowchart showing a detailed processing procedure of the variable editing process (step S3508) shown in FIG.
  • FIG. 39 is an explanatory diagram showing workflow creation (1) by a conventional workflow editor.
  • FIG. 40 is an explanatory diagram showing workflow creation (2) by a conventional workflow editor.
  • Processing Element 101 Processing 1800 Condition Definition Table 1900 Structure 3300 Workflow Editing Device 3301 Acquisition Unit 3302 Drawing Unit 3303 Setting Unit 3304 Input Control Unit 3304 Input / Output Control Unit 3305 Drawing Control Unit 3306 Determination Unit 3307 Output Unit 3310 Storage Device 3320 Input Device 3330 display device
  • a processing element with evaluation that makes a conditional branch that evaluates a precondition and a postcondition of a process (action) and the process indivisible is set as an edit unit of the process.
  • FIG. 1 is an explanatory diagram showing processing elements with evaluation.
  • a processing element with evaluation (hereinafter simply “processing element”) 100 includes a process 101, a conditional branch b1 of a precondition, and a conditional branch b2 of a postcondition.
  • the processing element 100 is expressed by GUI (Graphical User Interface).
  • GUI Graphic User Interface
  • small circles represent an input port p1, a processing input port p3, a processing output port p2, and a normal output port p4, respectively.
  • the arrows and the dotted line arrows represent flows f1 to f6 having a start point and an end point, respectively.
  • the flow f3 is a processing input flow representing a default evaluation
  • the flow f2 is a processing output flow representing a default evaluation.
  • the default evaluation corresponds to “default” in a so-called programming “if” statement, and the evaluation result is treated as non-deletable.
  • the Boolean type TRUE is assigned to the flow f3 as the evaluation result of the default evaluation.
  • the flow f3 corresponding to this TRUE cannot be deleted.
  • a flow f5 indicated by a dotted arrow is a rejection output flow output to the outside of the processing element 100 from the conditional branch b1 of the precondition. That is, when the input from the flow f1 does not correspond to the precondition, it means that the flow f5 is output without being input to the process 101.
  • a flow f6 indicated by a dotted arrow is an abnormal output flow output to the outside of the processing element 100 from the conditional branch b2 of the postcondition.
  • the processing 101, the conditional branch b1 of the precondition, and the conditional branch b2 of the postcondition have an inseparable data structure.
  • FIG. 2 is an explanatory diagram showing an example of an editing screen of the workflow editing apparatus.
  • reference numeral 201 denotes a tool box
  • reference numeral 202 denotes a flow drawing area.
  • the processing element 100 is in a temporary arrangement state at an uncertain stage.
  • the provisional arrangement state can prevent the creation of an unhealthy workflow.
  • FIG. 3 is an explanatory diagram (part 1) of the condition setting dialog.
  • the condition setting dialog 300 is displayed by designating (clicking or double-clicking) the temporarily arranged processing element 100 shown in FIG.
  • the condition setting dialog 300 includes a condition definition display area 301, a condition coverage display area 302, and a processing element display area 303. These areas 301 to 303 can be switched between pre-conditions and post-conditions by using tabs T1 and T2. is there.
  • the pre-condition condition setting dialog 300 is active.
  • variable name, type, range, port, and process input are field items, and a record can be created for each variable.
  • the type is a data type of a variable, and for example, there are a BOOT type, an int type, and a constant type.
  • the range is a value that the variable corresponding to the type can take.
  • the user can freely specify the range of the variable A, for example, 0 ⁇ A ⁇ 3.
  • the port is a processing port corresponding to the variable. Specifically, in the case of a precondition, a variable input to the process input port p3 is specified, and in the case of a postcondition, a variable output from the process output port p2 is specified.
  • a record 310 of a default variable (variable name: (default)) is set without being edited by the user.
  • the type and range are not specified, but the port is “DEFAULT InPORT”, that is, the processing input port p3, and is specified as the processing input.
  • condition definition information information that becomes a record in this way is referred to as condition definition information.
  • condition coverage display area 302 the coverage state of the variables set in the condition definition display area 301 is drawn. Specifically, a branch destination variable from a conditional branch is expressed.
  • a condition coverage diagram 321 corresponding to the flow f3 to the processing input port p3 is drawn in the condition definition display area 301.
  • the processing element display area 303 the processing element 100 corresponding to the condition definition is drawn. In the state shown in FIG. 3, since only default variables are defined, the contents are the same as those shown in FIG.
  • condition definition information set in the condition definition display area 301 is taken in and reflected in the condition coverage display area 302 and the processing element display area 303.
  • OK button 305 is pressed, the condition setting dialog 300 is closed, and the processing element 100 reflecting the condition definition information set in the condition definition display area 301 is drawn in the flow drawing area 202 of FIG.
  • cancel button 306 is pressed, the condition setting dialog 300 is closed and the condition definition information set in the condition definition display area 301 is not reflected.
  • FIG. 4 is an explanatory diagram (1) showing the variable dialog.
  • the variable dialog 400 is called and displayed when the variable addition button 311 shown in FIG. 3 is pressed.
  • Reference numeral 401 denotes a variable name input field
  • reference numeral 402 denotes a type pull-down
  • reference numeral 403 denotes a range display / edit area 403.
  • FIG. 4 shows a case where the BOOT type is selected as the variable A type.
  • three values of TRUE, FALSE, and default can be taken.
  • TRUE is the default value from the conditional branch to the processing input port p3 (in the case of a postcondition, from the conditional branch to the normal output port p4). It becomes. The default value can be changed by selecting a value within the range.
  • the OK button 404 is pressed, the information set in the variable dialog 400 is reflected as a new record in the condition definition display area 301 and the variable dialog 400 is closed.
  • the cancel button 405 is pressed, the information set in the variable dialog 400 is not reflected as a new record in the condition definition display area 301 and the variable dialog 400 is closed.
  • FIG. 5 is an explanatory diagram (part 2) of the condition setting dialog 300.
  • FIG. 5 shows a state in which the information set in FIG. 4 is reflected. That is, the record 311 is added as a new record.
  • A default is input to the port “InPORT A0”
  • A TRUE is input to the port “InPORT A1”
  • A FALSE is input to “InPORT A2”.
  • the port “InPORT A1” for inputting TRUE becomes the processing input port p3.
  • the remaining ports “InPORT A0”, “InPORT A2”, and “DEFAULT InPORT” become the rejection output ports p51 to p53 from the conditional branch b1 of the precondition by the flow f51 to f53 as in the processing element display area 303. Also, the condition coverage display area 302 has contents reflecting the records 310 and 311.
  • FIG. 6 is an explanatory diagram (2) showing the variable dialog 400.
  • TRUE is set as a default value, but in FIG. 6, FALSE can be set to the default value of the variable A by specifying FALSE and pressing the OK button 404.
  • FIG. 7 is an explanatory diagram (part 3) of the condition setting dialog 300.
  • FIG. 8 is an explanatory diagram (3) showing the variable dialog 400.
  • FIG. 8 shows a state in which the type is changed by the pull-down 402.
  • the pull-down 402 is designated, “BOOL”, “int”, and “constant” are displayed, and the type can be changed by selecting one.
  • FIG. 9 is an explanatory diagram (4) showing the variable dialog 400.
  • FIG. 9 shows an editing operation when the type is designated as “int”.
  • A shows a state in which “int” is designated by the pull-down 402.
  • Reference numeral 430 denotes an area in which a default value specified by a range is described.
  • B shows a state where a new area 431 is secured in the range display / edit area 403 by pressing the add button 406.
  • C shows a state in which the user has input the range of the variable B in the new area 431.
  • an area designated other than the area 430 can be deleted by pressing the delete button 407, and a logical expression in the area designated other than the area 430 can be edited by pressing the edit button 408. it can.
  • FIG. 10 is an explanatory diagram (part 4) of the condition setting dialog 300.
  • FIG. 10 shows a state in which the information changed in FIG. 9 is reflected. That is, the record 311 is added as a new record.
  • B default is input to the “InPORT B0” port
  • the two ports “InPORT B1” and “InPORT B2” into which the value of the variable satisfying this condition is input become the processing input port p3.
  • the OR circuit 1000 is inserted into the flow f3.
  • “InPORT B0” for inputting the value of the variable B other than 0 ⁇ B ⁇ 3 and “DEFAULT InPORT” in the record 310 are the rejection output ports p51 and p52 from the conditional branch b1 of the precondition.
  • FIG. 11 is an explanatory diagram (5) showing the variable dialog 400.
  • FIG. 11 shows an editing operation when the type is designated as “constant”.
  • A shows a state in which “constant” is designated by pull-down 402.
  • Reference numeral 430 denotes an area in which a default value specified by a range is described.
  • B shows a state where a new area 431 is secured in the range display / edit area 403 by pressing the add button 406.
  • C shows a state where the user has input the range of the variable C in the new area 431.
  • an area designated other than the area 430 can be deleted by pressing the delete button 407, and a logical expression in the area designated other than the area 430 can be edited by pressing the edit button 408. it can.
  • FIG. 12 is an explanatory diagram (part 5) of the condition setting dialog 300.
  • FIG. 12 shows a state in which the information changed in setting in FIG. 11 is reflected. That is, the record 311 is added as a new record.
  • FIG. 13 is an explanatory diagram (part 6) of the condition setting dialog 300.
  • FIG. 13 is a post-condition condition setting dialog 300.
  • the screen examples are the post-conditions. Therefore, when referring to the previous screen examples, the variable A is replaced with the variable X, the variable B is replaced with the variable Y, and the variable C is replaced with the variable Z. To do.
  • FIG. 14 is an explanatory diagram (part 7) of the condition setting dialog 300.
  • FIG. 14 shows a state in which the information set in FIG. 4 is reflected. That is, the record 311 is added as a new record.
  • X default is input to the “OutPORT X0” port
  • X TRUE is output to the “OutPORT X1” port
  • X FALSE is output to “OutPORT X2”.
  • the port “OutPORT X1” that outputs TRUE is the normal output port p4.
  • the remaining ports “OutPORT X0”, “OutPORT X2”, and “DEFAULT OutPORT” become abnormal output ports p61 to p63 from the conditional branch b2 of the postcondition by the flow f61 to f63 as in the processing element display area 303. Also, the condition coverage display area 302 has contents reflecting the records 310 and 311.
  • FIG. 15 is an explanatory diagram (part 8) of the condition setting dialog 300.
  • FIG. 16 is an explanatory diagram (part 9) of the condition setting dialog 300.
  • FIG. 16 shows a state in which the information changed in setting in FIG. 9 is reflected. That is, the record 311 is added as a new record.
  • Y default is output to the “OutPORT Y0” port
  • FIG. 17 is an explanatory diagram (part 10) of the condition setting dialog 300.
  • FIG. 17 shows a state where the information changed in FIG. 11 is reflected. That is, the record 311 is added as a new record.
  • condition definition table that stores condition definition information set by the above-described condition setting dialog 300 and a structure that indicates the data structure of the processing element 100 associated with the table are used.
  • the data structure described here is an example. Further, the data structure of the process and conditional branch itself is the same as that of the conventional workflow editor described in the background art, and thus the description thereof is omitted in this specification.
  • FIG. 18 is an explanatory diagram (part 1) of the condition definition table.
  • a condition definition table 1800 in FIG. 18 shows an initial state. That is, it is held by designating (clicking or double-clicking) the temporarily arranged processing element 100 shown in FIG.
  • the condition definition table 1800 has element ID, condition type, variable name, type, range, port, processing input, processing output, deletion flag, and pointer as field items, and a record is obtained for each processing element 100.
  • the element ID is identification information that identifies the processing element 100.
  • the condition type indicates two condition types, a precondition and a postcondition.
  • the condition definition information set in the condition definition display area 301 of the editing screen 200 is written in the variable name to process output.
  • the deletion flag is a status flag indicating whether or not the guard condition (see FIG. 19) specified by the variable of the record can be deleted. Deletion is impossible when OFF, and deletion is possible when ON.
  • the pointer points to a structure 1900 of the processing element 100 described later.
  • FIG. 19 is an explanatory diagram (part 1) of a structure 1900 that is a data structure of the processing element 100.
  • a structure 1900 in FIG. 19 shows an initial state and corresponds to the condition definition table 1800 in FIG.
  • the structure 1900 has “incoming”, “outgoing”, “precondition”, “post condition”, “inputDecisionInput”, “outputDecisionInput”, “inputPort”, “outputPort”, “import0port”, “import0gud”.
  • incoming a flow connected to the input port p1 of the processing element 100 is written.
  • outgoing a flow connected to the normal output port p4 of the processing element 100 is written.
  • precondition a flow connected to the conditional branch b1 of the precondition is written.
  • post condition a flow connected to the condition branch b2 of the post-condition is written.
  • input DecisionInput the decision input of the conditional branch b1 of the precondition is written.
  • output DecisionInput the decision input of the conditional branch b2 of the postcondition is written.
  • FIG. 20 is an explanatory diagram (part 2) of the condition definition table 1800.
  • a condition definition table 1800 in FIG. 20 is a condition definition table 1800 in which the condition definition information shown in the condition setting dialog 300 in FIG. 5 is stored.
  • FIG. 21 is an explanatory diagram (part 2) of a structure 1900 that is a data structure of the processing element 100.
  • the number indicating “DEFAULT InPORT” is “0”
  • the number indicating “InPORT A0” is “1”
  • the number indicating “InPORT A1” is “2”
  • the number indicating “InPORT A2” is “3”. It is.
  • “inputPort” is a port number: 2 indicating the port “InPORT A1”.
  • FIG. 22 is an explanatory diagram (part 3) of the condition definition table 1800.
  • a condition definition table 1800 in FIG. 22 is a condition definition table 1800 in which the condition definition information shown in the condition setting dialog 300 in FIG. 10 is stored.
  • FIG. 23 is an explanatory diagram (part 3) of a structure 1900 that is a data structure of the processing element 100.
  • a structure 1900 in FIG. 23 corresponds to the condition definition table 1800 in FIG.
  • the number indicating “DEFAULT InPORT” is “0”
  • the number indicating “InPORT B0” is “1”
  • the number indicating “InPORT B1” is “2”
  • the number indicating “InPORT B2” is “3”. It is.
  • FIG. 24 is an explanatory diagram (part 4) of the condition definition table 1800.
  • a condition definition table 1800 in FIG. 24 is a condition definition table 1800 in which the condition definition information shown in the condition setting dialog 300 in FIG. 12 is stored.
  • FIG. 25 is an explanatory diagram (part 4) illustrating a structure 1900 that is a data structure of the processing element 100.
  • a structure 1900 in FIG. 25 corresponds to the condition definition table 1800 in FIG.
  • the number indicating “DEFAULT InPORT” is “0”
  • the number indicating “InPORT C0” is “1”
  • the number indicating “InPORT C1” is “2”.
  • FIG. 26 is an explanatory diagram (part 5) of the condition definition table 1800.
  • a condition definition table 1800 in FIG. 26 is a condition definition table 1800 in which the condition definition information shown in the condition setting dialog 300 in FIG. 14 is stored.
  • FIG. 27 is an explanatory diagram (No. 5) showing a structure 1900 serving as a data structure of the processing element 100.
  • the structure 1900 in FIG. 27 corresponds to the condition definition table 1800 in FIG.
  • the number indicating “DEFAULT OUTPORT” is “0”
  • the number indicating “OutPORT X0” is “1”
  • the number indicating “OutPORT X1” is “2”
  • the number indicating “OutPORT X2” is “3”. It is.
  • outputPort is a port number: 2 indicating the port “OutPORT X1”.
  • FIG. 28 is an explanatory diagram (part 6) of the condition definition table 1800.
  • a condition definition table 1800 in FIG. 28 is a condition definition table 1800 in which the condition definition information shown in the condition setting dialog 300 in FIG. 16 is stored.
  • Y default points to the guard condition “output1 guard”
  • Y 1 points to the guard condition “output2 guard”
  • Y 2 sets the guard condition “output3 guard”. To point.
  • FIG. 29 is an explanatory diagram (No. 6) showing a structure 1900 serving as a data structure of the processing element 100.
  • a structure 1900 in FIG. 29 corresponds to the condition definition table 1800 in FIG.
  • the number indicating “DEFAULT OUTPORT” is “0”
  • the number indicating “OutPORT Y0” is “1”
  • the number indicating “OutPORT Y1” is “2”
  • the number indicating “OutPORT Y2” is “3”. It is.
  • FIG. 30 is an explanatory diagram (part 7) of the condition definition table 1800.
  • a condition definition table 1800 in FIG. 30 is a condition definition table 1800 in which the condition definition information shown in the condition setting dialog 300 in FIG. 17 is stored.
  • FIG. 31 is an explanatory diagram (No. 7) showing a structure 1900 that is a data structure of the processing element 100.
  • a structure 1900 in FIG. 31 corresponds to the condition definition table 1800 in FIG.
  • the number indicating “DEFAULT OUTPORT” is “0”
  • the number indicating “OutPORT Z0” is “1”
  • the number indicating “OutPORT Z1” is “2”.
  • FIG. 32 is a block diagram of a hardware configuration of the workflow editing apparatus according to the embodiment.
  • the workflow editing apparatus includes a CPU (Central Processing Unit) 3201, a ROM (Read-Only Memory) 3202, a RAM (Random Access Memory) 3203, a magnetic disk drive 3204, a magnetic disk 3205, and an optical disk drive. 3206, an optical disk 3207, a display 3208, an I / F (Interface) 3209, a keyboard 3210, a mouse 3211, a scanner 3212, and a printer 3213.
  • Each component is connected by a bus 3200.
  • the CPU 3201 controls the entire workflow editing apparatus.
  • the ROM 3202 stores programs such as a boot program.
  • the RAM 3203 is used as a work area for the CPU 3201.
  • the magnetic disk drive 3204 controls reading / writing of data with respect to the magnetic disk 3205 according to the control of the CPU 3201.
  • the magnetic disk 3205 stores data written under the control of the magnetic disk drive 3204.
  • the optical disc drive 3206 controls reading / writing of data with respect to the optical disc 3207 according to the control of the CPU 3201.
  • the optical disk 3207 stores data written under the control of the optical disk drive 3206, and causes the computer to read data stored on the optical disk 3207.
  • the display 3208 displays data such as a document, an image, and function information as well as a cursor, an icon, or a tool box 201.
  • this display 3208 for example, a CRT, a TFT liquid crystal display, a plasma display, or the like can be adopted.
  • I / F An interface (hereinafter abbreviated as “I / F”) 3209 is connected to a network 3214 such as a LAN (Local Area Network), a WAN (Wide Area Network), and the Internet through a communication line, and the other via this network 3214. Connected to other devices.
  • the I / F 3209 controls an internal interface with the network 3214 and controls input / output of data from an external device.
  • a modem or a LAN adapter may be employed as the I / F 3209.
  • the keyboard 3210 includes keys for inputting characters, numbers, various instructions, etc., and inputs data. Moreover, a touch panel type input pad or a numeric keypad may be used.
  • the mouse 3211 performs cursor movement, range selection, window movement, size change, and the like. A trackball or a joystick may be used as long as they have the same function as a pointing device.
  • the scanner 3212 optically reads an image and takes in the image data into the workflow editing apparatus.
  • the scanner 3212 may have an OCR (Optical Character Reader) function.
  • the printer 3213 prints image data and document data.
  • a laser printer or an ink jet printer can be employed as the printer 3213.
  • FIG. 33 is a block diagram illustrating a functional configuration of the workflow editing apparatus.
  • the workflow editing apparatus 3300 includes an acquisition unit 3301, a drawing unit 3302, a setting unit 3303, an input control unit 3304, a drawing control unit 3305, a determination unit 3306, and an output unit 3307.
  • the functions (acquisition unit 3301 to output unit 3307) serving as the control unit are, for example, programs stored in the storage device 3310 such as the ROM 3202, the RAM 3203, the magnetic disk 3205, and the optical disk 3207 shown in FIG.
  • the function is realized by causing the CPU 3201 to execute or by the I / F 3209.
  • the acquisition unit 3301 has a function of acquiring a processing element 100 that associates a process constituting a workflow with a conditional branch b2 of the precondition and postcondition of the process.
  • the processing element 100 data shown in FIG. 1, for example, the condition definition table 1800 shown in FIG. 18 and the structure 1900 shown in FIG. are stored in the RAM 3203 or the magnetic disk 3205.
  • the drawing unit 3302 has a function of drawing information designated for drawing. Specifically, for example, the processing element 100 is drawn in the workflow drawing area 202, or the processing element 100 and the condition coverage diagram 321 are drawn in the condition setting dialog 300.
  • the setting unit 3303 sets condition definition information related to a conditional branch selected from the conditional branch b1 of the precondition or the conditional branch b2 of the postcondition for the processing variable.
  • condition definition information read by the condition setting dialog 300 or the variable dialog 400 is written in the condition definition table 1800 as shown in FIGS. 20 to 31, and the data content of the structure 1900 is updated. To do.
  • the input control unit 3304 has a function of causing the acquisition unit 3301 to acquire the processing element 100 when an input of an acquisition request for the processing element 100 is received. Specifically, for example, as illustrated in FIG. 2, when the processing element icon 203 is clicked by a user operating an input device 3320 such as a keyboard 3210 or a mouse 3211, the function of the acquisition unit 3301 described above is performed. Let it run.
  • the input control unit 3304 has a function of setting the condition definition information by the setting unit 3303 when an input of a setting request for the condition definition information is accepted. Specifically, for example, a setting request is detected by pressing an OK button in the condition setting dialog 300 or the variable dialog 400, and is written in the condition definition table 1800 as shown in FIGS. Update the data contents.
  • the drawing control unit 3305 has a function of designating drawing of the processing element 100 and drawing by the drawing unit 3302 when the processing unit 100 is acquired by the acquisition unit 3301. Specifically, for example, when the processing element icon 203 is clicked by the user operating the input device 3320 and the function of the acquisition unit 3301 is executed, the condition definition table 1800 and the structure 1900 are referred to. Thus, the function of the drawing unit 3302 described above is executed.
  • the drawing control unit 3305 has a function of designating the processing element 100 to draw when the condition definition information is set, and causing the drawing unit 3302 to redraw based on the condition definition information. Specifically, for example, when the condition definition table 1800 and the structure 1900 are updated as shown in FIGS. 20 to 31 by the setting unit 3303, the contents of the drawing unit 3302 described above are referred to by referring to the updated contents. Execute the function.
  • the drawing control unit 3305 has a function of drawing to indicate that the processing element 100 is indeterminate when the acquisition unit 3301 acquires the processing element 100. Specifically, for example, as described with reference to FIG. 2, an uncertain state such as semi-transparency is drawn in a visible drawing format. Further, when the processing element 100 is confirmed, the translucency is released.
  • the determination unit 3306 has a function of determining the validity of the condition definition information. For example, if nothing is input, it is determined to be invalid. Also, it is determined to be invalid if there is an error in the input information or a type that cannot be understood is specified. In addition, the determination is made based on whether or not the logical expression or value described in the range matches the criteria specific to the type of the variable. For example, even if the type is int but the input information is a negative value or a small number, it is determined to be invalid.
  • the output unit 3307 has a function of outputting the determination result determined by the determination unit 3306. Specifically, for example, an error message is output to the display device 3330 such as the display 3208 when it is determined to be inappropriate.
  • the display device 33303208 displays a screen when an error message is received. If it is determined to be valid, the rendering control unit 3305 renders the processing element 100 reflecting the condition definition information.
  • FIG. 34 is a flowchart showing a workflow editing process procedure.
  • the input / output control unit 3304 waits until an acquisition request for the processing element 100 is received (step S3401: NO). If there is an acquisition request (step S3401: YES), whether there is an unconfirmed processing element 100 or not. Is determined (step S3402). If there is an undetermined processing element 100 (step S3402: YES), if the processing element 100 is newly added as it is, the undetermined processing element 100 may be created incompletely. Therefore, the new processing element 100 is not temporarily arranged, and the process proceeds to step S3405.
  • step S3402 when there is no undetermined processing element 100 (step S3402: NO), the drawing control unit 3305 issues a provisional placement drawing instruction to the drawing unit 3302 (step S3403), and the drawing unit 3302 places the processing element 100 in the temporary placement drawing. (Step S3404). Then, the condition setting process is executed by the setting unit 3303 (step S3405).
  • step S3405 After the condition setting process (step S3405), the judgment unit 3306 judges the legitimacy (step S3406). If it is not legitimate (step S3406: No), the output unit 3307 outputs an error message to the display device 3330 (step S3406). S3407), an error message is displayed. Then, the process returns to step S3405 for resetting.
  • step S3406 when it is determined to be valid (step S3406: Yes), the drawing control unit 3305 gives a temporary arrangement state release instruction to the drawing unit 3302 (step S3408), and the drawing unit 3302 receives the condition definition information (specifically In step S3409, the processing element 100 is drawn (normal drawing) using the condition definition table 1800 after the condition definition and the data stored in the structure 1900. Then, the condition definition table 1800 serving as the condition definition information and the structure 1900 are stored (step S3410).
  • step S3411 it is determined whether or not the workflow editing is continued.
  • step S3411: Yes the process returns to step S3401.
  • step S3411: No a workflow edit process is complete
  • FIG. 35 is a flowchart showing a detailed processing procedure of the condition setting process (step S3405) shown in FIG.
  • the condition setting dialog 300 is displayed (step S3501), and it is determined whether or not there is a completion input (pressing of the OK button 305) (step S3502). If there is (step S3502: YES), the process proceeds to step S3406. On the other hand, if there is not (step S3502: No), it is determined whether or not there has been an instruction to add a variable (step S3503).
  • step S3503 If there is an addition instruction (step S3503: Yes), a new registration process is executed (step S3504), and the process returns to step S3502. On the other hand, when there is no addition instruction (step S3503: No), it is determined whether or not a variable deletion instruction is issued (step S3505).
  • step S3505 If there is a deletion instruction (step S3505: Yes), variable deletion processing is executed (step S3506), and the process returns to step S3502. On the other hand, when there is no variable deletion instruction (step S3505: No), it is determined whether there is an editing instruction (step S3507).
  • step S3507: YES If there is an editing instruction (step S3507: YES), variable editing processing is executed (step S3508), and the process returns to step S3502. On the other hand, if there is no editing instruction (step S3507: NO), the process returns to step S3502.
  • FIG. 36 is a flowchart showing a detailed processing procedure of the new registration process (step S3504) shown in FIG.
  • the variable dialog 400 is displayed (step S3601), and it is determined whether or not condition definition information has been input (step S3602). If there is no input (step S3602: No), it is determined whether or not there is a cancel input (step S3603). If there is a cancel input (step S3603: YES), the condition definition table 1800 is cleared for the record of the target processing element 100 (step S3604), and the process proceeds to step S3502. In this case, it is determined to be invalid in step S3406.
  • step S3603 if there is no cancel input (step S3603: NO), the process returns to step S3602. If the condition definition information is input in step S3602 (step S3602: YES), it is written in the condition definition table 1800 (step S3605), and it is determined whether or not the OK button 404 is pressed (step S3606). If not pressed (step S3606: NO), the process returns to step S3602.
  • step S3606 determines whether the content is valid (step S3607). If not valid (step S3607: NO), the output unit 3307 outputs an error (step S3608), and the process returns to step S3602.
  • step S3607 if it is valid (step S3607: Yes), the guard condition is added to the structure 1900 (step S3609), and the port change for the processing input port p3 or the normal output port p4 is performed (step S3610). Thereafter, the drawing unit 3302 updates the condition setting dialog 300 with reference to the condition definition table 1800 and the structure 1900 (step S3611). Then, the process returns to step S3502.
  • FIG. 37 is a flowchart showing a detailed processing procedure of the variable deletion processing (step S3506) shown in FIG.
  • a deletion instruction input is waited for a variable to be deleted (step S3701: NO). If a deletion instruction is input (step S3701: YES), the variable dialog 400 is displayed (step S3702). . At this time, the variable dialog 400 displays the variable name, type, and range of the variable instructed to be deleted. Then, the deletion flag of the guard condition for the variable to be deleted is turned from OFF to ON (step S3703).
  • step S3704 it is determined whether or not the OK button 404 of the variable dialog 400 has been pressed. If not pressed (step S3704: No), it is determined whether or not the cancel button 405 has been pressed (step S3705). When the cancel button is not pressed (step S3705: No), the process returns to step S3704. On the other hand, when the cancel button 405 is pressed (step S3705: Yes), the deletion flag is turned OFF (step S3706), the variable dialog 400 is closed, and the process returns to step S3502.
  • step S3704 Yes
  • the guard condition with the deletion flag ON is deleted from the structure 1900 (step S3707).
  • the port for the process input port p3 or the normal output port p4 is changed (step S3708).
  • the condition definition table 1800 is updated (step S3709). Specifically, the condition definition information for the variable to be deleted is deleted.
  • the condition setting dialog 300 is updated (step S3710).
  • FIG. 38 is a flowchart showing a detailed processing procedure of the variable editing process (step S3508) shown in FIG.
  • step S3508 an edit instruction input for the variable to be edited is awaited (step S3801: No). If there is an edit instruction input (step S3801: Yes), the variable dialog 400 is displayed (step S3802). . At this time, the variable dialog 400 displays the variable name, type, and range of the variable instructed to be edited.
  • step S3803 it is determined whether or not the condition definition information has been changed.
  • step S3803: No the process proceeds to step S3805.
  • step S3803: YES it is written in the condition definition table 1800 (step S3804), and it is determined whether or not the OK button 404 is pressed (step S3805).
  • step S3806 If the OK button 404 has not been pressed (step S3805: NO), it is determined whether or not a cancel input has been made (step S3806). If there is a cancel input (step S3606: YES), the condition definition table 1800 is returned to the original record for the target processing element 100 (step S3807), and the process proceeds to step S3502. In this case, it is not edited.
  • step S3806 determines whether the content is valid (step S3808). If it is not valid (step S3808: No), an error is output by the output unit 3307 (step S3809), the condition definition table 1800 is returned to the original record for the target processing element 100 (step S3810), and the process returns to step S3502. Transition. In this case, it is not edited.
  • step S3808 if it is valid (step S3808: Yes), the guard condition is added to the structure 1900 (step S3811), and the port change for the processing input port p3 or the normal output port p4 is performed (step S3812). Thereafter, the drawing unit 3302 updates the condition setting dialog 300 with reference to the condition definition table 1800 and the structure 1900 (step S3813). Then, the process returns to step S3502.
  • the workflow editing method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation.
  • This program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer.
  • This program may be distributed via a network such as the Internet.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

 処理要素(100)は、処理(101)と事前条件の条件分岐(b1)と事後条件の条件分岐(b2)が一体不可分なデータである。処理要素(100)中、小丸はそれぞれ、入力ポート(p1)、処理入力ポート(p3)、処理出力ポート(p2)、正常出力ポート(p4)をあらわしている。また、矢印および点線矢印はそれぞれ始点と終点とが定まったフロー(f1)~(f6)をあらわしている。フロー(f3)はデフォルト評価をあらわす処理入力フロー、フロー(f2)はデフォルト評価をあらわす処理出力フローである。フロー(f5)は、事前条件の条件分岐(b1)から処理要素(100)の外部に出力する拒絶出力フローである。フロー(f6)は、事後条件の条件分岐(b2)から処理要素(1009の外部に出力する異常出力フローである。

Description

ワークフロー編集プログラムおよびワークフロー編集装置
 この発明は、ワークフローを編集するワークフロー編集プログラムおよびワークフロー編集装置に関する。
 ワークフローエディタとは、ワークフローと呼ばれる運用管理プロセスや業務プロセスを設計、編集する装置である。従来のワークフローエディタは、処理(アクション)や条件分岐などのフロー要素を、処理の流れを表すコントロールフローなどで接続してワークフローを作成している。従来のワークフローエディタでは、ワークフローの『処理(アクション)』そのものに事前条件や事後条件は定義できる場合がある(たとえば、下記特許文献1を参照。)。
特開2004-287545号公報
 しかしながら、上述した従来のワークフローエディタを用いてワークフローを作成する場合、事前条件や事後条件を定義しただけでは、評価時の条件分岐を記述し忘れてしまう場合がある。
 図39は、従来のワークフローエディタによるワークフロー作成(1)を示す説明図である。ここでは、処理をA=A+1と記述し、事前条件をA=1、事後条件をA=2と記述したとする。このワークフローを実際に動作させてみると、処理への入力に「A=5」が与えられた場合、事前条件としてA≠1については定義されていないため、評価漏れが発生する。処理からの出力が「A=2」でない場合も同様である。
 また、事前条件や事後条件としての分岐条件の指定はユーザに任されている。図40は、従来のワークフローエディタによるワークフロー作成(2)を示す説明図である。図40の条件分岐において、A=2でもA=3でもない場合、条件指定に漏れが発生する。
 このように、評価漏れや条件指定漏れの原因としては、ユーザの指定し忘れのほか、条件が複雑であったり、想定外の評価結果になったりするなど、ユーザが定義しきれない場合がある。したがって、上述した従来技術では、これら原因によって不健全なワークフローが作成されてしまうこととなり、検証負担の増大や作業効率の低下といった問題が生じることとなる。
 この発明は、上述した従来技術による問題点を解消するため、検証負担の軽減と作業効率の向上を図ることができるワークフロー編集プログラムおよびワークフロー編集装置を提供することを目的とする。
 上述した課題を解決し、目的を達成するため、このワークフロー編集プログラムおよびワークフロー編集装置は、ワークフローを構成する処理と当該処理の事前条件および事後条件の条件分岐とを関連付けた処理要素を取得する取得手段、描画指定された情報を描画する描画手段、前記取得手段によって前記処理要素が取得された場合、前記処理の変数について、前記事前条件または前記事後条件の条件分岐の中から選ばれた条件分岐に関する条件定義情報を設定する設定手段、前記処理要素の取得要求の入力が受け付けられた場合、前記取得手段により前記処理要素を取得させ、前記条件定義情報の設定要求の入力が受け付けられた場合、前記設定手段により前記条件定義情報を設定させる入力制御手段、前記取得手段によって取得された場合に前記処理要素を描画指定して前記描画手段により描画させるとともに、前記条件定義情報が設定された場合に前記処理要素を描画指定して、前記描画手段により前記条件定義情報に基づいて再描画させる描画制御手段を備えることを要件とする。
 このワークフロー編集プログラムおよびワークフロー編集装置によれば、条件分岐の追加や指定のし忘れを防止することができる。
 このワークフロー編集プログラムおよびワークフロー編集装置によれば、検証負担の軽減と作業効率の向上を図ることができるという効果を奏する。
図1は、評価付き処理要素を示す説明図である。 図2は、ワークフロー編集装置の編集画面例を示す説明図である。 図3は、条件設定ダイアログを示す説明図(その1)である。 図4は、変数ダイアログを示す説明図(1)である。 図5は、条件設定ダイアログを示す説明図(その2)である。 図6は、変数ダイアログを示す説明図(2)である。 図7は、条件設定ダイアログを示す説明図(その3)である。 図8は、変数ダイアログを示す説明図(3)である。 図9は、変数ダイアログを示す説明図(4)である。 図10は、条件設定ダイアログを示す説明図(その4)である。 図11は、変数ダイアログを示す説明図(5)である。 図12は、条件設定ダイアログを示す説明図(その5)である。 図13は、条件設定ダイアログを示す説明図(その6)である。 図14は、条件設定ダイアログを示す説明図(その7)である。 図15は、条件設定ダイアログを示す説明図(その8)である。 図16は、条件設定ダイアログを示す説明図(その9)である。 図17は、条件設定ダイアログを示す説明図(その10)である。 図18は、条件定義テーブルを示す説明図(その1)である。 図19は、処理要素のデータ構造となる構造体を示す説明図(その1)である。 図20は、条件定義テーブルを示す説明図(その2)である。 図21は、処理要素のデータ構造となる構造体を示す説明図(その2)である。 図22は、条件定義テーブルを示す説明図(その3)である。 図23は、処理要素のデータ構造となる構造体を示す説明図(その3)である。 図24は、条件定義テーブルを示す説明図(その4)である。 図25は、処理要素のデータ構造となる構造体を示す説明図(その4)である。 図26は、条件定義テーブルを示す説明図(その5)である。 図27は、処理要素のデータ構造となる構造体を示す説明図(その5)である。 図28は、条件定義テーブルを示す説明図(その6)である。 図29は、処理要素のデータ構造となる構造体を示す説明図(その6)である。 図30は、条件定義テーブルを示す説明図(その7)である。 図31は、処理要素のデータ構造となる構造体1900を示す説明図(その7)である。 図32は、実施の形態にかかるワークフロー編集装置のハードウェア構成を示すブロック図である。 図33は、ワークフロー編集装置の機能的構成を示すブロック図である。 図34は、ワークフロー編集処理手順を示すフローチャートである。 図35は、図34に示した条件設定処理(ステップS3405)の詳細な処理手順を示すフローチャートである。 図36は、図35に示した新規登録処理(ステップS3504)の詳細な処理手順を示すフローチャートである。 図37は、図35に示した変数削除処理(ステップS3506)の詳細な処理手順を示すフローチャートである。 図38は、図35に示した変数編集処理(ステップS3508)の詳細な処理手順を示すフローチャートである。 図39は、従来のワークフローエディタによるワークフロー作成(1)を示す説明図である。 図40は、従来のワークフローエディタによるワークフロー作成(2)を示す説明図である。
符号の説明
 100 処理要素
 101 処理
1800 条件定義テーブル
1900 構造体
3300 ワークフロー編集装置
3301 取得部
3302 描画部
3303 設定部
3304 入力制御部
3304 入出力制御部
3305 描画制御部
3306 判断部
3307 出力部
3310 記憶装置
3320 入力装置
3330 表示装置
 以下に添付図面を参照して、このワークフロー編集プログラムおよびワークフロー編集装置の好適な実施の形態を詳細に説明する。このワークフロー編集プログラムおよびワークフロー編集装置では、処理(アクション)の事前条件および事後条件を評価する条件分岐と当該処理とを一体不可分にした評価付き処理要素を、処理の編集単位とする。この処理を呼び出して編集することで、事前条件および事後条件の評価をユーザに設定させ、不健全なワークフローの作成を防止する。
(評価付き処理要素)
 図1は、評価付き処理要素を示す説明図である。評価付き処理要素(以下、単に「処理要素」)100は、処理101と事前条件の条件分岐b1と事後条件の条件分岐b2を有する。処理要素100はGUI(Graphical User Interface)で表現される。図1中、小丸はそれぞれ、入力ポートp1、処理入力ポートp3、処理出力ポートp2、正常出力ポートp4をあらわしている。また、矢印および点線矢印はそれぞれ始点と終点とが定まったフローf1~f6をあらわしている。
 特に、フローf3はデフォルト評価をあらわす処理入力フロー、フローf2はデフォルト評価をあらわす処理出力フローである。デフォルト評価とは、いわゆるプログラミングのif文における「default」に相当し、その評価結果は削除不能として扱う。たとえば、BOOL型のTRUEを処理に与えることで処理が動作する場合、フローf3にBOOL型のTRUEをデフォルト評価の評価結果として割り当てる。このTRUEに相当するフローf3は削除できないこととなる。
 また、点線矢印のフローf5は、事前条件の条件分岐b1から処理要素100の外部に出力する拒絶出力フローである。すなわち、フローf1からの入力が事前条件に該当しなかった場合にフローf5により処理101に入力されずに出力されることを意味する。同様に、点線矢印のフローf6は、事後条件の条件分岐b2から処理要素100の外部に出力する異常出力フローである。
 すなわち、フローf2からの出力が事後条件に該当しなかった場合にフローf6により異常出力として出力されることを意味する。フローf3,f2が削除不可であるのに対して、フローf5,f6は個別に追加、削除可能である。このように、処理101と事前条件の条件分岐b1と事後条件の条件分岐b2とが分離不可分なデータ構造となっている。
(ワークフロー編集装置の編集画面)
 つぎに、ワークフロー編集装置の編集画面について説明する。ここでは、オブジェクト指向言語の一つであるUML(Unified Modeling Language)のアクティビティ図によりワークフローを編集する場合の編集画面を例に挙げて説明する。なお、以下に説明する画面例は単なる一例であり、どのような画面にするかは設計事項である。
 図2は、ワークフロー編集装置の編集画面例を示す説明図である。編集画面200のうち符号201がツールボックス、符号202がフロー描画エリアである。マウスを操作して、ツールボックス201内の処理要素アイコン203をクリックすると、フロー描画エリア202に処理要素100が配置される。この段階では、配置された処理要素100は未編集であるため内容が確定していない。
 したがって、未確定の段階では、処理要素100を仮配置状態とする。この場合、処理要素100を半透明にして描画するなど、未確定であることがユーザに視認できるように表示するのが好ましい。このように、まだ未定義情報がある場合に仮配置状態とすることで、不健全なワークフローの作成を防止することができる。
 図3は、条件設定ダイアログを示す説明図(その1)である。条件設定ダイアログ300は、図2に示した仮配置の処理要素100を指定(クリックやダブルクリック)することで、表示される。条件設定ダイアログ300は、条件定義表示領域301と条件網羅性表示領域302と処理要素表示領域303とを有し、これらの領域301~303がタブT1,T2により事前条件と事後条件に切り替え可能である。図3は、事前条件の条件設定ダイアログ300がアクティブとなっている。
 条件定義表示領域301は、変数名、タイプ、範囲、ポート、処理入力をフィールド項目とし、変数ごとにレコードを作成することが可能である。変数とは、処理で使用される値である。たとえば、処理が「A=A+1」である場合の「A」が変数である。タイプとは、変数のデータ型であり、たとえば、BOOL型、int型、定数型がある。
 範囲とは、タイプに応じた変数が取り得る値である。たとえば、BOOL型の場合、「TRUE」、「FALSE」、「default」となる。int型の場合、たとえば、0<A<3のように、変数Aの範囲をユーザが自由に指定することができる。定数型の場合、A=4のように、変数Aの値をユーザが自由に指定することができる。ポートとは、その変数に対応する処理のポートである。具体的には、事前条件の場合は、処理入力ポートp3に入力される変数を指定し、事後条件の場合は、処理出力ポートp2から出力される変数を指定する。
 なお、図3では、ユーザが編集しなくてもデフォルト変数(変数名:(default))のレコード310が設定されている。このレコード310はタイプおよび範囲は指定されていないが、ポートは「DEFAULT InPORT」、すなわち処理入力ポートp3となっており、処理入力に指定されている。フローf5,f6を追加したい場合は、変数追加ボタン311を押下することで新規レコードが作成される。
 また、削除ボタン312を押下することで、レコード310以外のレコードを指定して削除することができる。また、変数設定編集ボタン313を押下することで指定されたレコードを編集することができる。また、指定編集ボタン314を押下することで処理入力に割り当てられたポートを変更することができる。なお、このようにレコードとなった情報を条件定義情報と称す。
 条件網羅性表示領域302には、条件定義表示領域301で設定された変数の網羅状態を描画する。具体的には、条件分岐からの分岐先の変数を表現することとなる。図3の例では、レコード310のみであるため、条件定義表示領域301には、処理入力ポートp3へのフローf3に相当する条件網羅図321が描画される。処理要素表示領域303には、条件定義に応じた処理要素100が描画される。図3に示した状態では、デフォルト変数のみ定義されているため、図1に示した内容と同一内容である。
 適用ボタン304を押下すると、条件定義表示領域301で設定された条件定義情報が取り込まれ、条件網羅性表示領域302および処理要素表示領域303に反映される。OKボタン305を押下すると、この条件設定ダイアログ300が閉じ、条件定義表示領域301で設定された条件定義情報が反映された処理要素100が、図2のフロー描画エリア202に描画される。キャンセルボタン306を押下すると、この条件設定ダイアログ300が閉じ、条件定義表示領域301で設定された条件定義情報は反映されない。
 図4は、変数ダイアログを示す説明図(1)である。変数ダイアログ400は、図3に示した変数追加ボタン311を押下すると呼び出されて表示される。符号401は変数名の入力欄、符号402はタイプのプルダウン、符号403は範囲の表示/編集領域403である。図4では、変数AのタイプとしてBOOL型を選択した場合を示している。BOOL型の場合、TRUE、FALSE、defaultの3つの値をとりうるが、デフォルトではTRUEが条件分岐から処理入力ポートp3への(事後条件の場合は条件分岐から正常出力ポートp4への)デフォルト値となる。デフォルト値は範囲内の値を選択することで変更可能である。
 また、OKボタン404を押下すると、変数ダイアログ400に設定した情報が条件定義表示領域301に新規レコードとして反映され変数ダイアログ400が閉じる。キャンセルボタン405を押下すると変数ダイアログ400に設定した情報が条件定義表示領域301に新規レコードとして反映されず変数ダイアログ400が閉じる。
 図5は、条件設定ダイアログ300を示す説明図(その2)である。図5は、図4で設定した情報が反映された状態を示している。すなわち、レコード311が新規レコードとして追加されている。また、レコード311では、A=defaultは「InPORT A0」のポートに入力され、A=TRUEは「InPORT A1」のポートに入力され、A=FALSEは「InPORT A2」に入力される。BOOL型の場合、変数Aのデフォルト値はTRUEであるため、TRUEを入力するポート「InPORT A1」が処理入力ポートp3となる。
 残余のポート「InPORT A0」、「InPORT A2」および「DEFAULT InPORT」は、処理要素表示領域303にように、フローf51~f53により事前条件の条件分岐b1からの拒絶出力ポートp51~p53となる。また、条件網羅性表示領域302もレコード310,311を反映した内容となる。
 図6は、変数ダイアログ400を示す説明図(2)である。図4では、TRUEがデフォルト値として設定されていたが、図6では、FALSEを指定してOKボタン404を押下することで、FALSEを変数Aのデフォルト値に設定することができる。
 図7は、条件設定ダイアログ300を示す説明図(その3)である。図7は、図6で設定変更した情報が反映された状態を示している。すなわち、変数Aのデフォルト値がTRUEからFALSEに変更されたため、「InPORT A2」が処理入力ポートp3となる。これにより、A=TRUEを入力する「InPORT A1」は拒絶出力ポートp52となる。
 図8は、変数ダイアログ400を示す説明図(3)である。図8では、プルダウン402によりタイプを変更する状態を示している。プルダウン402を指定すると、「BOOL」、「int」、「定数」が表示されるため、いずれかを選択することでタイプを変更することができる。
 図9は、変数ダイアログ400を示す説明図(4)である。図9では、タイプを「int」に指定した場合の編集操作を示している。(A)はプルダウン402で「int」が指定された状態を示している。符号430は、範囲により特定されるデフォルト値が記述されたエリアである。(B)は追加ボタン406を押下して範囲の表示/編集領域403に新規なエリア431を確保した状態を示している。(C)は新規なエリア431に変数Bの範囲をユーザが入力した状態を示している。
 また、削除ボタン407を押下することでエリア430以外で指定されたエリアを削除することができ、編集ボタン408を押下することでエリア430以外で指定されたエリア内の論理式を編集することができる。
 図10は、条件設定ダイアログ300を示す説明図(その4)である。図10は、図9で設定変更した情報が反映された状態を示している。すなわち、レコード311が新規レコードとして追加されている。また、レコード311では、B=defaultは「InPORT B0」のポートに入力され、B=1は「InPORT B1」のポートに入力され、B=2は「InPORT B2」に入力される。
 本例では変数Bの範囲は0<B<3であるため、この条件を満たす変数の値が入力される「InPORT B1」、「InPORT B2」の2つのポートが処理入力ポートp3となる。この場合、いずれの値が処理入力ポートp3に入力されてもよいため、フローf3にOR回路1000を挿入することとなる。また、0<B<3以外の変数Bの値を入力する「InPORT B0」およびレコード310の「DEFAULT InPORT」は、事前条件の条件分岐b1からの拒絶出力ポートp51,p52となる。
 図11は、変数ダイアログ400を示す説明図(5)である。図11では、タイプを「定数」に指定した場合の編集操作を示している。(A)はプルダウン402で「定数」が指定された状態を示している。符号430は、範囲により特定されるデフォルト値が記述されたエリアである。(B)は追加ボタン406を押下して範囲の表示/編集領域403に新規なエリア431を確保した状態を示している。(C)は新規なエリア431に変数Cの範囲をユーザが入力した状態を示している。
 また、削除ボタン407を押下することでエリア430以外で指定されたエリアを削除することができ、編集ボタン408を押下することでエリア430以外で指定されたエリア内の論理式を編集することができる。
 図12は、条件設定ダイアログ300を示す説明図(その5)である。図12は、図11で設定変更した情報が反映された状態を示している。すなわち、レコード311が新規レコードとして追加されている。また、レコード311では、C=defaultは「InPORT C0」のポートに入力され、C=4は「InPORT C1」のポートに入力される。
 本例では変数Cの範囲はC=4であるため、この条件を満たす変数Cの値が入力される「InPORT C1」のポートが処理入力ポートp3となる。また、C=4以外の変数Cの値を入力する「InPORT C0」およびレコード310の「DEFAULT InPORT」は、事前条件の条件分岐b1からの拒絶出力ポートp51,p52となる。
 図13は、条件設定ダイアログ300を示す説明図(その6)である。図13は、事後条件の条件設定ダイアログ300である。なお、以降の画面例では、事後条件の画面例であるため、これ以前の画面例を参照する場合、変数Aは変数Xに、変数Bは変数Yに、変数Cは変数Zに置き換えるものとする。
 図14は、条件設定ダイアログ300を示す説明図(その7)である。図14は、図4で設定した情報が反映された状態を示している。すなわち、レコード311が新規レコードとして追加されている。また、レコード311では、X=defaultは「OutPORT X0」のポートに入力され、X=TRUEは「OutPORT X1」のポートに出力され、X=FALSEは「OutPORT X2」に出力される。BOOL型の場合、変数Xのデフォルト値はTRUEであるため、TRUEを出力するポート「OutPORT X1」が正常出力ポートp4となる。
 残余のポート「OutPORT X0」、「OutPORT X2」および「DEFAULT OutPORT」は、処理要素表示領域303のように、フローf61~f63により事後条件の条件分岐b2からの異常出力ポートp61~p63となる。また、条件網羅性表示領域302もレコード310,311を反映した内容となる。
 図15は、条件設定ダイアログ300を示す説明図(その8)である。図15は、図6で設定変更した情報が反映された状態を示している。すなわち、変数Xのデフォルト値がTRUEからFALSEに変更されたため、「OutPORT X2」が正常出力ポートp4となる。これにより、X=TRUEを入力する「OutPORT X1」は異常出力ポートp62となる。
 図16は、条件設定ダイアログ300を示す説明図(その9)である。図16は、図9で設定変更した情報が反映された状態を示している。すなわち、レコード311が新規レコードとして追加されている。また、レコード311では、Y=defaultは「OutPORT Y0」のポートに出力され、Y=1は「OutPORT Y1」のポートに出力され、Y=2は「InPORT Y2」に出力される。
 本例では変数Yの範囲は0<Y<3であるため、この条件を満たす変数の値が入力される「OutPORT Y1」、「OutPORT Y2」の2つのポートが正常出力ポートp4となる。この場合、いずれの値が正常出力ポートp4に出力されてもよいため、フローf4にOR回路1000を挿入することとなる。また、0<Y<3以外の変数Yの値を出力する「OutPORT Y0」およびレコード310の「DEFAULT OutPORT」は、事後条件の条件分岐b2からの異常出力ポートp61,p62となる。
 図17は、条件設定ダイアログ300を示す説明図(その10)である。図17は、図11で設定変更した情報が反映された状態を示している。すなわち、レコード311が新規レコードとして追加されている。また、レコード311では、Z=defaultは「OutPORT Z0」のポートに入力され、Z=4は「OutPORT Z1」のポートに入力される。
 本例では変数Zの範囲はZ=4であるため、この条件を満たす変数Zの値が入力される「OutPORT Z1」のポートが正常出力ポートp4となる。また、Z=4以外の変数Zの値を出力する「OutPORT Z0」およびレコード310の「DEFAULT OutPORT」は、事後条件の条件分岐b2からの異常出力ポートp61,p62となる。
(データ構造)
 つぎに、ワークフロー編集装置において生成されるデータのデータ構造について説明する。本実施の形態では、上述した条件設定ダイアログ300により設定された条件定義情報を格納する条件定義テーブルと、そのテーブルに関連付けられた処理要素100のデータ構造を示す構造体とを用いている。なお、ここで説明するデータ構造は一例である。また、処理や条件分岐そのもののデータ構造については背景技術で説明した従来のワークフローエディタと同じであるため、本明細書では説明を省略する。
 図18は、条件定義テーブルを示す説明図(その1)である。図18の条件定義テーブル1800は、初期状態を示している。すなわち、図2に示した仮配置の処理要素100を指定(クリックやダブルクリック)することで、保持される。条件定義テーブル1800は、要素ID、条件種別、変数名、タイプ、範囲、ポート、処理入力、処理出力、削除フラグ、ポインタをフィールド項目として有し、処理要素100ごとにレコードが得られる。要素IDは、処理要素100を特定する識別情報である。
 条件種別は、事前条件と事後条件の2つの条件種別を示す。変数名~処理出力には、編集画面200の条件定義表示領域301で設定された条件定義情報が書き込まれる。削除フラグは、そのレコードの変数により特定されるガード条件(図19を参照)が削除可能か否かを示す状態フラグである。OFFのときは削除不可、ONのときは削除可である。ポインタは後述する処理要素100の構造体1900をポイントする。
 図19は、処理要素100のデータ構造となる構造体1900を示す説明図(その1)である。図19の構造体1900は、初期状態を示しており、図18の条件定義テーブル1800に対応する。構造体1900は、「incoming」、「outgoing」、「precondition」、「post condition」、「inputDecisionInput」、「outputDecisionInput」、「inputPort」、「outputPort」、「inport0guard」、「outport0guard」をデータとして有する。
 「incoming」には、その処理要素100の入力ポートp1に接続されるフローが書き込まれる。「outgoing」には、その処理要素100の正常出力ポートp4に接続されるフローが書き込まれる。「precondition」にはその事前条件の条件分岐b1に接続されるフローが書き込まれる。「post condition」にはその事後条件の条件分岐b2に接続されるフローが書き込まれる。「inputDecisionInput」には、事前条件の条件分岐b1のデシジョン入力が書き込まれる。「outputDecisionInput」には、事後条件の条件分岐b2のデシジョン入力が書き込まれる。
 「inputPort」には処理入力ポートp3となるポート番号が書き込まれる。図19の状態では、default変数であるため、「DEFAULT InPORT」を示す番号:0が書き込まれている。「outputPort」には正常出力ポートp4となるポート番号が書き込まれる。図19の状態では、default変数であるため、「DEFAULT OutPORT」を示す番号:0が書き込まれている。
 「inport0guard」には、「inputPort」で特定されたポートのガード条件が書き込まれる。変数追加により事前条件の条件分岐b1の分岐先が追加されると、「inport1guard」、「inport2guard」、…というように、ガード条件も連番で追加される。なお、「inport0guard」は、図18に示したポインタの「inport0guard」によりポイントされる。
 「outport0guard」には、「outPort」で特定されたポートのガード条件が書き込まれる。変数追加により事後条件の条件分岐b2の分岐先が追加されると、「outport1guard」、「outport2guard」、…というように、ガード条件も連番で追加される。なお、「outport0guard」は、図18に示したポインタの「outport0guard」によりポイントされる。
 図20は、条件定義テーブル1800を示す説明図(その2)である。図20の条件定義テーブル1800は、図5の条件設定ダイアログ300に示した条件定義情報が格納された条件定義テーブル1800である。図20では、変数Aについて、A=defaultについては、ガード条件「inport1guard」をポイントし、A=TRUEについては、ガード条件「inport2guard」をポイントし、A=FALSEについては、ガード条件「inport3guard」をポイントする。
 図21は、処理要素100のデータ構造となる構造体1900を示す説明図(その2)である。図21の構造体1900は、図20の条件定義テーブル1800に対応する。図20では、A=TRUEを入力するポート「InPORT A1」が処理入力ポートp3となる。ここでは、「DEFAULT InPORT」を示す番号が「0」、「InPORT A0」を示す番号が「1」、「InPORT A1」を示す番号が「2」、「InPORT A2」を示す番号が「3」である。
 したがって、「inputPort」はポート「InPORT A1」を示すポート番号:2となる。また、変数Aの範囲としてA=default、A=TRUE、A=FALSEが設定されているため、それぞれガード条件inport1guard~inport3guardとなる。
 図22は、条件定義テーブル1800を示す説明図(その3)である。図22の条件定義テーブル1800は、図10の条件設定ダイアログ300に示した条件定義情報が格納された条件定義テーブル1800である。図22では、変数Bについて、B=defaultについては、ガード条件「inport1guard」をポイントし、B=1については、ガード条件「inport2guard」をポイントし、B=2については、ガード条件「inport3guard」をポイントする。
 図23は、処理要素100のデータ構造となる構造体1900を示す説明図(その3)である。図23の構造体1900は、図22の条件定義テーブル1800に対応する。図22では、B=1を入力するポート「InPORT B1」とB=2を入力するポート「InPORT B2」が処理入力ポートp3となる。ここでは、「DEFAULT InPORT」を示す番号が「0」、「InPORT B0」を示す番号が「1」、「InPORT B1」を示す番号が「2」、「InPORT B2」を示す番号が「3」である。
 したがって、「inputPort」はポート「InPORT B1」を示すポート番号:2およびポート「InPORT B2」を示すポート番号:3となる。また、変数Bの範囲としてB=default、B=1、B=2が設定されているため、それぞれガード条件inport1guard~inport3guardとなる。
 図24は、条件定義テーブル1800を示す説明図(その4)である。図24の条件定義テーブル1800は、図12の条件設定ダイアログ300に示した条件定義情報が格納された条件定義テーブル1800である。図24では、変数Cについて、C=defaultについては、ガード条件「inport1guard」をポイントし、C=4については、ガード条件「inport2guard」をポイントする。
 図25は、処理要素100のデータ構造となる構造体1900を示す説明図(その4)である。図25の構造体1900は、図24の条件定義テーブル1800に対応する。図24では、C=4を入力するポート「InPORT C1」が処理入力ポートp3となる。ここでは、「DEFAULT InPORT」を示す番号が「0」、「InPORT C0」を示す番号が「1」、「InPORT C1」を示す番号が「2」である。
 したがって、「inputPort」はポート「InPORT C1」を示すポート番号:2となる。また、変数Cの範囲としてC=default、C=4が設定されているため、それぞれガード条件inport1guard~inport2guardとなる。
 図26は、条件定義テーブル1800を示す説明図(その5)である。図26の条件定義テーブル1800は、図14の条件設定ダイアログ300に示した条件定義情報が格納された条件定義テーブル1800である。図26では、変数Xについて、X=defaultについては、ガード条件「Outport1guard」をポイントし、X=TRUEについては、ガード条件「Outport2guard」をポイントし、X=FALSEについては、ガード条件「Outport3guard」をポイントする。
 図27は、処理要素100のデータ構造となる構造体1900を示す説明図(その5)である。図27の構造体1900は、図26の条件定義テーブル1800に対応する。図26では、X=TRUEを出力するポート「OutPORT X1」が正常出力ポートp4となる。ここでは、「DEFAULT OutPORT」を示す番号が「0」、「OutPORT X0」を示す番号が「1」、「OutPORT X1」を示す番号が「2」、「OutPORT X2」を示す番号が「3」である。
 したがって、「outputPort」はポート「OutPORT X1」を示すポート番号:2となる。また、変数Xの範囲としてX=default、X=TRUE、X=FALSEが設定されているため、それぞれガード条件outport1guard~outport3guardとなる。
 図28は、条件定義テーブル1800を示す説明図(その6)である。図28の条件定義テーブル1800は、図16の条件設定ダイアログ300に示した条件定義情報が格納された条件定義テーブル1800である。図28では、変数Yについて、Y=defaultについては、ガード条件「outport1guard」をポイントし、Y=1については、ガード条件「outport2guard」をポイントし、Y=2については、ガード条件「outport3guard」をポイントする。
 図29は、処理要素100のデータ構造となる構造体1900を示す説明図(その6)である。図29の構造体1900は、図28の条件定義テーブル1800に対応する。図28では、Y=1を入力するポート「OutPORT Y1」とY=2を入力するポート「OutPORT Y2」が処理入力ポートp3となる。ここでは、「DEFAULT OutPORT」を示す番号が「0」、「OutPORT Y0」を示す番号が「1」、「OutPORT Y1」を示す番号が「2」、「OutPORT Y2」を示す番号が「3」である。
 したがって、「outputPort」はポート「OutPORT Y1」を示すポート番号:2およびポート「OutPORT Y2」を示すポート番号:3となる。また、変数Yの範囲としてY=default、Y=1、Y=2が設定されているため、それぞれガード条件outport1guard~outport3guardとなる。
 図30は、条件定義テーブル1800を示す説明図(その7)である。図30の条件定義テーブル1800は、図17の条件設定ダイアログ300に示した条件定義情報が格納された条件定義テーブル1800である。図30では、変数Zについて、Z=defaultについては、ガード条件「outport1guard」をポイントし、Z=4については、ガード条件「outport2guard」をポイントする。
 図31は、処理要素100のデータ構造となる構造体1900を示す説明図(その7)である。図31の構造体1900は、図30の条件定義テーブル1800に対応する。図30では、Z=4を入力するポート「OutPORT Z1」が処理入力ポートp3となる。ここでは、「DEFAULT OutPORT」を示す番号が「0」、「OutPORT Z0」を示す番号が「1」、「OutPORT Z1」を示す番号が「2」である。
 したがって、「outputPort」はポート「OutPORT Z1」を示すポート番号:2となる。また、変数Zの範囲としてZ=default、Z=4が設定されているため、それぞれガード条件outport1guard~outport2guardとなる。
(ワークフロー編集装置のハードウェア構成)
 図32は、実施の形態にかかるワークフロー編集装置のハードウェア構成を示すブロック図である。図32において、ワークフロー編集装置は、CPU(Central Processing Unit)3201と、ROM(Read‐Only Memory)3202と、RAM(Random Access Memory)3203と、磁気ディスクドライブ3204と、磁気ディスク3205と、光ディスクドライブ3206と、光ディスク3207と、ディスプレイ3208と、I/F(Interface)3209と、キーボード3210と、マウス3211と、スキャナ3212と、プリンタ3213と、を備えている。また、各構成部はバス3200によってそれぞれ接続されている。
 ここで、CPU3201は、ワークフロー編集装置の全体の制御を司る。ROM3202は、ブートプログラムなどのプログラムを記憶している。RAM3203は、CPU3201のワークエリアとして使用される。磁気ディスクドライブ3204は、CPU3201の制御にしたがって磁気ディスク3205に対するデータのリード/ライトを制御する。磁気ディスク3205は、磁気ディスクドライブ3204の制御で書き込まれたデータを記憶する。
 光ディスクドライブ3206は、CPU3201の制御にしたがって光ディスク3207に対するデータのリード/ライトを制御する。光ディスク3207は、光ディスクドライブ3206の制御で書き込まれたデータを記憶したり、光ディスク3207に記憶されたデータをコンピュータに読み取らせたりする。
 ディスプレイ3208は、カーソル、アイコンあるいはツールボックス201をはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ3208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
 インターフェース(以下、「I/F」と略する。)3209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク3214に接続され、このネットワーク3214を介して他の装置に接続される。そして、I/F3209は、ネットワーク3214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F3209には、たとえばモデムやLANアダプタなどを採用することができる。
 キーボード3210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス3211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
 スキャナ3212は、画像を光学的に読み取り、ワークフロー編集装置内に画像データを取り込む。なお、スキャナ3212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ3213は、画像データや文書データを印刷する。プリンタ3213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(ワークフロー編集装置の機能的構成)
 つぎに、ワークフロー編集装置の機能的構成について説明する。図33は、ワークフロー編集装置の機能的構成を示すブロック図である。ワークフロー編集装置3300は、取得部3301と、描画部3302と、設定部3303と、入力制御部3304と、描画制御部3305と、判断部3306と、出力部3307とを含む構成である。この制御部となる機能(取得部3301~出力部3307)は、具体的には、たとえば、図32に示したROM3202、RAM3203、磁気ディスク3205、光ディスク3207などの記憶装置3310に記憶されたプログラムをCPU3201に実行させることにより、または、I/F3209により、その機能を実現する。
 取得部3301は、ワークフローを構成する処理と当該処理の事前条件および事後条件の条件分岐b2とを関連付けた処理要素100を取得する機能を有する。具体的には、図1に示した処理要素100のデータ、たとえば、記憶装置3310に保存されている図18に示した条件定義テーブル1800と図19に示した構造体1900を読み込み、ワークエリアとなるRAM3203や磁気ディスク3205に保持する。
 描画部3302は、描画指定された情報を描画する機能を有する。具体的には、たとえば、ワークフロー描画エリア202に処理要素100を描画したり、条件設定ダイアログ300において処理要素100や条件網羅図321を描画する。
 設定部3303は、取得部3301によって処理要素100が取得された場合、処理の変数について、事前条件の条件分岐b1または事後条件の条件分岐b2の中から選ばれた条件分岐に関する条件定義情報を設定する機能を有する。具体的には、たとえば、条件設定ダイアログ300や変数ダイアログ400により読み込まれた条件定義情報を、図20~図31に示したように、条件定義テーブル1800に書き込み、構造体1900のデータ内容を更新する。
 入力制御部3304は、処理要素100の取得要求の入力が受け付けられた場合、取得部3301により処理要素100を取得させる機能を有する。具体的には、たとえば、図2に示したように、キーボード3210やマウス3211などの入力装置3320をユーザが操作することで処理要素アイコン203がクリックされると、上述した取得部3301の機能を実行させる。
 また、入力制御部3304は、条件定義情報の設定要求の入力が受け付けられた場合、設定部3303により条件定義情報を設定させる機能を有する。具体的には、たとえば、条件設定ダイアログ300や変数ダイアログ400のOKボタンの押下により設定要求を検出して、図20~図31に示したように、条件定義テーブル1800に書き込み、構造体1900のデータ内容を更新する。
 描画制御部3305は、取得部3301によって処理要素100が取得された場合に処理要素100を描画指定して描画部3302により描画させる機能を有する。具体的には、たとえば、入力装置3320をユーザが操作することで処理要素アイコン203がクリックされて、上述した取得部3301の機能が実行されると、条件定義テーブル1800と構造体1900を参照して、上述した描画部3302の機能を実行させる。
 また、描画制御部3305は、条件定義情報が設定された場合に処理要素100を描画指定して、描画部3302により条件定義情報に基づいて再描画させる機能を有する。具体的には、たとえば、設定部3303により条件定義テーブル1800および構造体1900が図20~図31に示したように更新されると、更新後の内容を参照して、上述した描画部3302の機能を実行させる。
 また、描画制御部3305は、取得部3301によって処理要素100が取得された場合に未確定であることを示すように描画させる機能を有する。具体的には、たとえば、図2で説明したように、半透明など未確定状態を視認可能な描画形式で描画させる。また、処理要素100が確定された場合には半透明を解除させる。
 判断部3306は、条件定義情報の正当性を判断する機能を有する。たとえば、何も入力されていない場合は不当であると判断する。また、入力情報に誤りがあったり、理解できないタイプが指定された場合も不当と判断する。また、範囲に記述された論理式や値がその変数のタイプに固有な基準に合致するか否かで判断する。たとえば、タイプがintなのに入力情報がマイナスの値や少数である場合も不当と判断する。
 出力部3307は、判断部3306によって判断された判断結果を出力する機能を有する。具体的には、たとえば、不当と判断された場合にエラーメッセージをディスプレイ3208などの表示装置3330に出力する。表示装置33303208ではエラーメッセージを受け付けると画面表示する。正当と判断された場合は、描画制御部3305により条件定義情報を反映した処理要素100が描画される。
(ワークフロー編集処理手順)
 図34は、ワークフロー編集処理手順を示すフローチャートである。まず、入出力制御部3304により、処理要素100の取得要求があるまで待ち受け(ステップS3401:No)、取得要求があった場合(ステップS3401:Yes)、未確定の処理要素100があるか否かを判断する(ステップS3402)。未確定の処理要素100がある場合(ステップS3402:Yes)、そのままあらたに処理要素100を追加すると未確定の処理要素100が不完全なまま作成されてしまう可能性がある。したがって、新規の処理要素100を仮配置せず、ステップS3405に移行する。
 一方、未確定の処理要素100がない場合(ステップS3402:No)、描画制御部3305は描画部3302に仮配置の描画指示を出し(ステップS3403)、描画部3302が処理要素100を仮配置描画する(ステップS3404)。そして、設定部3303により条件設定処理を実行する(ステップS3405)。
 条件設定処理(ステップS3405)のあと、判断部3306により正当性を判断し(ステップS3406)、正当でない場合(ステップS3406:No)、出力部3307がエラーメッセージを表示装置3330に出力して(ステップS3407)、エラーメッセージが表示される。そして、再設定のため、ステップS3405に戻る。
 一方、正当であると判断された場合(ステップS3406:Yes)、描画制御部3305が仮配置状態解除指示を描画部3302に与えて(ステップS3408)、描画部3302は、条件定義情報(具体的には、条件定義後の条件定義テーブル1800と構造体1900に格納されたデータ)により、処理要素100を描画(正規描画)する(ステップS3409)。そして、条件定義情報となる条件定義テーブル1800と構造体1900とを格納する(ステップS3410)。
 このあと、ワークフロー編集を継続するか否かを判断し(ステップS3411)、継続する場合(ステップS3411:Yes)、ステップS3401に戻る。一方、継続しない場合(ステップS3411:No)、ワークフロー編集処理を終了する。
 図35は、図34に示した条件設定処理(ステップS3405)の詳細な処理手順を示すフローチャートである。まず、条件設定ダイアログ300を表示し(ステップS3501)、完了入力(OKボタン305の押下)があったか否かを判断する(ステップS3502)。あった場合(ステップS3502:Yes)、ステップS3406に移行する。一方、ない場合(ステップS3502:No)、変数の追加指示があったか否かを判断する(ステップS3503)。
 追加指示があった場合(ステップS3503:Yes)、新規登録処理を実行し(ステップS3504)、ステップS3502に戻る。一方、追加指示がなかった場合(ステップS3503:No)、変数の削除指示があったか否かを判断する(ステップS3505)。
 削除指示があった場合(ステップS3505:Yes)、変数削除処理を実行し(ステップS3506)、ステップS3502に戻る。一方、変数削除指示がなかった場合(ステップS3505:No)、編集指示があったか否かを判断する(ステップS3507)。
 編集指示があった場合(ステップS3507:Yes)、変数編集処理を実行し(ステップS3508)、ステップS3502に戻る。一方、編集指示がなかった場合(ステップS3507:No)、ステップS3502に戻る。
 図36は、図35に示した新規登録処理(ステップS3504)の詳細な処理手順を示すフローチャートである。まず、変数ダイアログ400を表示し(ステップS3601)、条件定義情報の入力があったか否かを判断する(ステップS3602)。入力がない場合(ステップS3602:No)、キャンセル入力があったか否かを判断する(ステップS3603)。キャンセル入力があった場合(ステップS3603:Yes)、対象となっている処理要素100のレコードについて条件定義テーブル1800をクリアし(ステップS3604)、ステップS3502に移行する。この場合、ステップS3406で不当と判断されることとなる。
 一方、キャンセル入力がない場合(ステップS3603:No)、ステップS3602に戻る。また、ステップS3602において、条件定義情報の入力があった場合(ステップS3602:Yes)、条件定義テーブル1800に書き込み(ステップS3605)、OKボタン404が押下されたか否かを判断する(ステップS3606)。押下されていない場合(ステップS3606:No)、ステップS3602に戻る。
 一方、押下された場合(ステップS3606:Yes)、その内容が正当か否かを判断部3306により判断する(ステップS3607)。正当でない場合(ステップS3607:No)、出力部3307によりエラー出力をおこない(ステップS3608)、ステップS3602に戻る。
 一方、正当である場合(ステップS3607:Yes)、そのガード条件を構造体1900に追加し(ステップS3609)、処理入力ポートp3または正常出力ポートp4についてのポート変更をおこなう(ステップS3610)。このあと、描画部3302により、条件設定ダイアログ300を条件定義テーブル1800及び構造体1900を参照して更新する(ステップS3611)。そして、ステップS3502に戻る。
 図37は、図35に示した変数削除処理(ステップS3506)の詳細な処理手順を示すフローチャートである。まず、条件設定ダイアログ300上で、削除対象の変数について削除指示入力を待ち受け(ステップS3701:No)、削除指示入力があった場合(ステップS3701:Yes)、変数ダイアログ400を表示する(ステップS3702)。このとき、変数ダイアログ400には削除指示された変数の変数名、タイプおよび範囲が表示される。そして、削除対象の変数のガード条件の削除フラグをOFFからONにする(ステップS3703)。
 そして、変数ダイアログ400のOKボタン404が押下されたか否かを判断する(ステップS3704)。押下されない場合(ステップS3704:No)、キャンセルボタン405が押下されたか否かを判断する(ステップS3705)。キャンセルボタンが押下されない場合(ステップS3705:No)、ステップS3704に戻る。一方、キャンセルボタン405が押下された場合(ステップS3705:Yes)、削除フラグをOFFにして(ステップS3706)、変数ダイアログ400を閉じ、ステップS3502に戻る。
 一方、ステップS3704において、OKボタン404が押下された場合(ステップS3704:Yes)、削除フラグONのガード条件を構造体1900から削除する(ステップS3707)。そして、削除後の条件定義テーブル1800を参照して、処理入力ポートp3または正常出力ポートp4についてのポート変更をおこなう(ステップS3708)。そして、条件定義テーブル1800を更新する(ステップS3709)。具体的には、削除対象の変数についての条件定義情報を削除する。そして、条件設定ダイアログ300を更新する(ステップS3710)。
 図38は、図35に示した変数編集処理(ステップS3508)の詳細な処理手順を示すフローチャートである。まず、条件設定ダイアログ300上で、編集対象の変数について編集指示入力を待ち受け(ステップS3801:No)、編集指示入力があった場合(ステップS3801:Yes)、変数ダイアログ400を表示する(ステップS3802)。このとき、変数ダイアログ400には編集指示された変数の変数名、タイプおよび範囲が表示される。
 そして、条件定義情報の変更があったか否かを判断する(ステップS3803)。変更がない場合(ステップS3803:No)、ステップS3805に移行する。一方、変更があった場合(ステップS3803:Yes)、条件定義テーブル1800に書き込み(ステップS3804)、OKボタン404が押下されたか否かを判断する(ステップS3805)。
 OKボタン404が押下されていない場合(ステップS3805:No)、キャンセル入力があったか否かを判断する(ステップS3806)。キャンセル入力があった場合(ステップS3606:Yes)、対象となっている処理要素100のレコードについて条件定義テーブル1800を元に戻し(ステップS3807)、ステップS3502に移行する。この場合、編集されなかったこととなる。
 一方、キャンセル入力がない場合(ステップS3806:No)、ステップS3805に戻る。また、ステップS3805において、OKボタン404が押下された場合(ステップS3805:Yes)、その内容が正当か否かを判断部3306により判断する(ステップS3808)。正当でない場合(ステップS3808:No)、出力部3307によりエラー出力をおこない(ステップS3809)、対象となっている処理要素100のレコードについて条件定義テーブル1800を元に戻し(ステップS3810)、ステップS3502に移行する。この場合、編集されなかったこととなる。
 一方、正当である場合(ステップS3808:Yes)、そのガード条件を構造体1900に追加し(ステップS3811)、処理入力ポートp3または正常出力ポートp4についてのポート変更をおこなう(ステップS3812)。このあと、描画部3302により、条件設定ダイアログ300を条件定義テーブル1800及び構造体1900を参照して更新する(ステップS3813)。そして、ステップS3502に戻る。
 以上説明したように、本実施の形態によれば、条件分岐の評価や指定に漏れが発生しないため、不健全なワークフローの作成を未然に防止することができる。したがって、検証負担の軽減化を図ることができ、作業効率が向上するという効果が得られる。
 なお、本実施の形態で説明したワークフロー編集方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することとしてもよい。

Claims (9)

  1.  コンピュータを、
     ワークフローを構成する処理と当該処理の事前条件および事後条件の条件分岐とを関連付けた処理要素を取得する取得手段、
     描画指定された情報を描画する描画手段、
     前記取得手段によって前記処理要素が取得された場合、前記処理の変数について、前記事前条件または前記事後条件の条件分岐の中から選ばれた条件分岐に関する条件定義情報を設定する設定手段、
     前記処理要素の取得要求の入力が受け付けられた場合、前記取得手段により前記処理要素を取得させ、前記条件定義情報の設定要求の入力が受け付けられた場合、前記設定手段により前記条件定義情報を設定させる入力制御手段、
     前記取得手段によって取得された場合に前記処理要素を描画指定して前記描画手段により描画させるとともに、前記条件定義情報が設定された場合に前記処理要素を描画指定して、前記描画手段により前記条件定義情報に基づいて再描画させる描画制御手段、
     として機能させることを特徴とするワークフロー編集プログラム。
  2.  前記設定手段は、
     前記変数のタイプと当該タイプにより指定された範囲により、前記条件定義情報を設定することを特徴とする請求項1に記載のワークフロー編集プログラム。
  3.  前記設定手段は、
     前記条件分岐が前記事前条件の条件分岐である場合、当該条件分岐からの前記範囲を満たす値の分岐先を前記処理に設定し、前記範囲を満たさない値の分岐先を前記処理への入力を拒絶するポートに設定することを特徴とする請求項2に記載のワークフロー編集プログラム。
  4.  前記設定手段は、
     前記条件分岐が前記事後条件の条件分岐である場合、当該条件分岐からの前記範囲を満たす値の分岐先を正常出力ポートに設定し、前記範囲を満たさない値の分岐先を異常出力ポートに設定することを特徴とする請求項2または3に記載のワークフロー編集プログラム。
  5.  前記描画制御手段は、
     前記取得手段によって取得された場合に未確定であることを示すように描画させるとともに、前記条件定義情報が設定された場合に確定済みであることを示すように再描画させることを特徴とする請求項1~3のいずれか一つに記載のワークフロー編集プログラム。
  6.  前記コンピュータを、
     前記条件定義情報の正当性を判断する判断手段、
     前記判断手段によって判断された判断結果を出力する出力手段として機能させ、
     前記描画制御手段は、
     前記判断結果が正当でない場合、前記条件定義情報に基づく描画を禁止することを特徴とする請求項1~3のいずれか一つに記載のワークフロー編集プログラム。
  7.  前記判断手段は、
     前記変数のタイプに固有の判断基準に基づいて、前記条件定義情報の正当性を判断することを特徴とする請求項6に記載のワークフロー編集プログラム。
  8.  前記入力制御手段は、
     前記描画制御手段による再描画がされていない場合、次の処理要素の取得を禁止することを特徴とする請求項1~3のいずれか一つに記載のワークフロー編集プログラム。
  9.  ワークフローを構成する処理と当該処理の事前条件および事後条件の条件分岐とを関連付けた処理要素を取得する取得する取得手段と、
     描画指定された情報を描画する描画手段と、
     前記取得手段によって前記処理要素が取得された場合、前記処理の変数について、前記事前条件または前記事後条件の条件分岐の中から選ばれた条件分岐に関する条件定義情報を設定する設定手段と、
     前記処理要素の取得要求の入力が受け付けられた場合、前記取得手段により前記処理要素を取得させ、前記条件定義情報の設定要求の入力が受け付けられた場合、前記設定手段により前記条件定義情報を設定させる入力制御手段と、
     前記取得手段によって取得された場合に前記処理要素を描画指定して前記描画手段により描画させるとともに、前記条件定義情報が設定された場合に前記処理要素を描画指定して、前記描画手段により前記条件定義情報に基づいて再描画させる描画制御手段と、
     を備えることを特徴とするワークフロー編集装置。
PCT/JP2008/069865 2008-10-31 2008-10-31 ワークフロー編集プログラムおよびワークフロー編集装置 WO2010050042A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/069865 WO2010050042A1 (ja) 2008-10-31 2008-10-31 ワークフロー編集プログラムおよびワークフロー編集装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/069865 WO2010050042A1 (ja) 2008-10-31 2008-10-31 ワークフロー編集プログラムおよびワークフロー編集装置

Publications (1)

Publication Number Publication Date
WO2010050042A1 true WO2010050042A1 (ja) 2010-05-06

Family

ID=42128420

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/069865 WO2010050042A1 (ja) 2008-10-31 2008-10-31 ワークフロー編集プログラムおよびワークフロー編集装置

Country Status (1)

Country Link
WO (1) WO2010050042A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427218A (zh) * 2018-05-01 2019-11-08 富士施乐株式会社 信息处理装置和非暂时性计算机可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353083A (ja) * 1999-04-07 2000-12-19 Nippon Steel Corp 要求仕様記述支援装置およびその方法、記録媒体
JP2003050904A (ja) * 2001-08-07 2003-02-21 Ns Solutions Corp 情報処理装置、情報処理システム、業務フロー支援方法、記憶媒体、及びプログラム
JP2008158853A (ja) * 2006-12-25 2008-07-10 Fuji Electric Holdings Co Ltd 仕様記述支援装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353083A (ja) * 1999-04-07 2000-12-19 Nippon Steel Corp 要求仕様記述支援装置およびその方法、記録媒体
JP2003050904A (ja) * 2001-08-07 2003-02-21 Ns Solutions Corp 情報処理装置、情報処理システム、業務フロー支援方法、記憶媒体、及びプログラム
JP2008158853A (ja) * 2006-12-25 2008-07-10 Fuji Electric Holdings Co Ltd 仕様記述支援装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427218A (zh) * 2018-05-01 2019-11-08 富士施乐株式会社 信息处理装置和非暂时性计算机可读介质

Similar Documents

Publication Publication Date Title
US5734837A (en) Method and apparatus for building business process applications in terms of its workflows
US6854111B1 (en) Library manager for automated programming of industrial controls
US6477435B1 (en) Automated programming system for industrial control using area-model
US7818716B2 (en) Priorities of transitions of a diagram with states
US8438537B2 (en) System arrangement and method for automated application development with user guidance
US20060117267A1 (en) System and method for property-based focus navigation in a user interface
Luyten Dynamic user interface generation for mobile and embedded systems with model-based user interface development
US8127269B2 (en) Transforming a flow graph model to a structured flow language model
US20070038947A1 (en) Method and device for generation of a parametric model associated with a 3D geometry
US20060041440A1 (en) Method, system and program product for managing a project
JP5226588B2 (ja) 情報処理装置及びその制御方法
EP0979446A2 (en) Automatically-maintained customizable user interfaces
JP5026925B2 (ja) 制御プログラム作成装置および制御プログラム作成方法
WO2010050042A1 (ja) ワークフロー編集プログラムおよびワークフロー編集装置
CN101710275B (zh) 利用gui工具来编辑工作流逻辑和屏幕的方法和系统
Vanderdonckt et al. Deriving the Navigational Structure of a User Interface.
Van Tendeloo et al. Unifying model-and screen sharing
US20220147025A1 (en) Configuring modular industrial plants
JP2010033500A (ja) Guiデータ変換システムおよびguiデータ変換方法
JP5984358B2 (ja) ソフトウェア開発支援装置及びプログラム
JP2002268896A (ja) 制御プログラム作成方法とその装置
JP2007122187A (ja) プログラム・コード生成装置
JP3895934B2 (ja) 仕様操作装置
JP2007004327A (ja) プロジェクト管理装置及びプロジェクト管理方法及びプロジェクト管理プログラム
JP5234720B2 (ja) プロセスモデル作成装置、方法及びそのプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08877753

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08877753

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP