def test_layouter_manually_created_diagram_simple_case(self): """ Test for importing a simple BPMNEditor diagram example (as BPMN 2.0 XML) into inner representation and generating layout for it """ output_file = "layouter_simple_case.xml" bpmn_graph = diagram.BpmnDiagramGraph() bpmn_graph.create_new_diagram_graph(diagram_name="diagram1") process_id = bpmn_graph.add_process_to_diagram() [start_id, _] = bpmn_graph.add_start_event_to_diagram( process_id, start_event_name="start_event") [task1_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task1") bpmn_graph.add_sequence_flow_to_diagram(process_id, start_id, task1_id, "start_to_one") [task2_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task2") [end_id, _] = bpmn_graph.add_end_event_to_diagram(process_id, end_event_name="end_event") bpmn_graph.add_sequence_flow_to_diagram(process_id, task1_id, task2_id, "one_to_two") bpmn_graph.add_sequence_flow_to_diagram(process_id, task2_id, end_id, "two_to_end") layouter.generate_layout(bpmn_graph) bpmn_graph.export_xml_file(self.output_directory, output_file)
def create_bpmn_model(best_tree: Tree): bpmn_graph = diagram.BpmnDiagramGraph() bpmn_graph.create_new_diagram_graph(diagram_name="Final model") process_id = bpmn_graph.add_process_to_diagram() [start_id, _] = bpmn_graph.add_start_event_to_diagram(process_id, start_event_name="START") root_end = fill_bpmn_model(best_tree, bpmn_graph, start_id, process_id) [end_id, _] = bpmn_graph.add_end_event_to_diagram(process_id, end_event_name="END") bpmn_graph.add_sequence_flow_to_diagram(process_id, root_end, end_id, "s") layouter.generate_layout(bpmn_graph) visualizer.visualize_diagram(bpmn_graph) bpmn_graph.export_xml_file( "./", os.path.join("models", f"{FILE_NAME}-final_model.bpmn"))
def Viz(self, filename): pos = layouter.generate_layout(self.bpmn_graph) visualizer.bpmn_diagram_to_png(self.bpmn_graph, filename + ".png") return self
def test_create_diagram_manually(self): bpmn_graph = diagram.BpmnDiagramGraph() bpmn_graph.create_new_diagram_graph(diagram_name="diagram1") process_id = bpmn_graph.add_process_to_diagram() [start_id, _] = bpmn_graph.add_start_event_to_diagram( process_id, start_event_name="start_event") [task1_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="First task") [subprocess1_id, _ ] = bpmn_graph.add_subprocess_to_diagram(process_id, subprocess_name="Subprocess") bpmn_graph.add_sequence_flow_to_diagram(process_id, start_id, task1_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task1_id, subprocess1_id) [parallel_gate_fork_id, _] = bpmn_graph.add_parallel_gateway_to_diagram( process_id, gateway_name="parallel_gate_fork") [task1_par_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task1_par") [task2_par_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task2_par") [parallel_gate_join_id, _] = bpmn_graph.add_parallel_gateway_to_diagram( process_id, gateway_name="parallel_gate_join") bpmn_graph.add_sequence_flow_to_diagram(process_id, subprocess1_id, parallel_gate_fork_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, parallel_gate_fork_id, task1_par_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, parallel_gate_fork_id, task2_par_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task1_par_id, parallel_gate_join_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task2_par_id, parallel_gate_join_id) [exclusive_gate_fork_id, _] = bpmn_graph.add_exclusive_gateway_to_diagram( process_id, gateway_name="exclusive_gate_fork") [task1_ex_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task1_ex") [task2_ex_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task2_ex") [exclusive_gate_join_id, _] = bpmn_graph.add_exclusive_gateway_to_diagram( process_id, gateway_name="exclusive_gate_join") bpmn_graph.add_sequence_flow_to_diagram(process_id, parallel_gate_join_id, exclusive_gate_fork_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, exclusive_gate_fork_id, task1_ex_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, exclusive_gate_fork_id, task2_ex_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task1_ex_id, exclusive_gate_join_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task2_ex_id, exclusive_gate_join_id) [inclusive_gate_fork_id, _] = bpmn_graph.add_inclusive_gateway_to_diagram( process_id, gateway_name="inclusive_gate_fork") [task1_in_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task1_in") [task2_in_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task2_in") [inclusive_gate_join_id, _] = bpmn_graph.add_inclusive_gateway_to_diagram( process_id, gateway_name="inclusive_gate_join") bpmn_graph.add_sequence_flow_to_diagram(process_id, exclusive_gate_join_id, inclusive_gate_fork_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, inclusive_gate_fork_id, task1_in_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, inclusive_gate_fork_id, task2_in_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task1_in_id, inclusive_gate_join_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task2_in_id, inclusive_gate_join_id) [end_id, _] = bpmn_graph.add_end_event_to_diagram(process_id, end_event_name="end_event") bpmn_graph.add_sequence_flow_to_diagram(process_id, inclusive_gate_join_id, end_id) layouter.generate_layout(bpmn_graph) bpmn_graph.export_xml_file(self.output_directory, self.output_file_with_di) bpmn_graph.export_xml_file_no_di(self.output_directory, self.output_file_no_di) # Uncomment line below to get a simple view of created diagram # visualizer.visualize_diagram(bpmn_graph) visualizer.bpmn_diagram_to_dot_file( bpmn_graph, self.output_directory + self.output_dot_file) visualizer.bpmn_diagram_to_png( bpmn_graph, self.output_directory + self.output_png_file)
def test_create_diagram_manually(self): bpmn_graph = diagram.BpmnDiagramGraph() bpmn_graph.create_new_diagram_graph(diagram_name="diagram1") process_id = bpmn_graph.add_process_to_diagram() [start_id, _] = bpmn_graph.add_start_event_to_diagram( process_id, start_event_name="start_event", start_event_definition="timer") [task1_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task1") bpmn_graph.add_sequence_flow_to_diagram(process_id, start_id, task1_id, "start_to_one") [exclusive_gate_fork_id, _] = bpmn_graph.add_exclusive_gateway_to_diagram( process_id, gateway_name="exclusive_gate_fork") [task1_ex_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task1_ex") [task2_ex_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task2_ex") [exclusive_gate_join_id, _] = bpmn_graph.add_exclusive_gateway_to_diagram( process_id, gateway_name="exclusive_gate_join") bpmn_graph.add_sequence_flow_to_diagram(process_id, task1_id, exclusive_gate_fork_id, "one_to_ex_fork") bpmn_graph.add_sequence_flow_to_diagram(process_id, exclusive_gate_fork_id, task1_ex_id, "ex_fork_to_ex_one") bpmn_graph.add_sequence_flow_to_diagram(process_id, exclusive_gate_fork_id, task2_ex_id, "ex_fork_to_ex_two") bpmn_graph.add_sequence_flow_to_diagram(process_id, task1_ex_id, exclusive_gate_join_id, "ex_one_to_ex_join") bpmn_graph.add_sequence_flow_to_diagram(process_id, task2_ex_id, exclusive_gate_join_id, "ex_two_to_ex_join") [task2_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task2") [end_id, _] = bpmn_graph.add_end_event_to_diagram( process_id, end_event_name="end_event", end_event_definition="message") bpmn_graph.add_sequence_flow_to_diagram(process_id, exclusive_gate_join_id, task2_id, "ex_join_to_two") bpmn_graph.add_sequence_flow_to_diagram(process_id, task2_id, end_id, "two_to_end") layouter.generate_layout(bpmn_graph) bpmn_graph.export_xml_file(self.output_directory, self.output_file_with_di) bpmn_graph.export_xml_file_no_di(self.output_directory, self.output_file_no_di) # Uncomment line below to get a simple view of created diagram # visualizer.visualize_diagram(bpmn_graph) visualizer.bpmn_diagram_to_dot_file( bpmn_graph, self.output_directory + self.output_dot_file) visualizer.bpmn_diagram_to_png( bpmn_graph, self.output_directory + self.output_png_file)
def test_create_diagram_manually(self): bpmn_graph = diagram.BpmnDiagramGraph() bpmn_graph.create_new_diagram_graph(diagram_name="diagram1") process_id = bpmn_graph.add_process_to_diagram() [start_id, _] = bpmn_graph.add_start_event_to_diagram(process_id, start_event_name="start_event") [task1_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="First task") [subprocess1_id, _] = bpmn_graph.add_subprocess_to_diagram(process_id, subprocess_name="Subprocess") bpmn_graph.add_sequence_flow_to_diagram(process_id, start_id, task1_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task1_id, subprocess1_id) [parallel_gate_fork_id, _] = bpmn_graph.add_parallel_gateway_to_diagram(process_id, gateway_name="parallel_gate_fork") [task1_par_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task1_par") [task2_par_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task2_par") [parallel_gate_join_id, _] = bpmn_graph.add_parallel_gateway_to_diagram(process_id, gateway_name="parallel_gate_join") bpmn_graph.add_sequence_flow_to_diagram(process_id, subprocess1_id, parallel_gate_fork_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, parallel_gate_fork_id, task1_par_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, parallel_gate_fork_id, task2_par_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task1_par_id, parallel_gate_join_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task2_par_id, parallel_gate_join_id) [exclusive_gate_fork_id, _] = bpmn_graph.add_exclusive_gateway_to_diagram(process_id, gateway_name="exclusive_gate_fork") [task1_ex_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task1_ex") [task2_ex_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task2_ex") [exclusive_gate_join_id, _] = bpmn_graph.add_exclusive_gateway_to_diagram(process_id, gateway_name="exclusive_gate_join") bpmn_graph.add_sequence_flow_to_diagram(process_id, parallel_gate_join_id, exclusive_gate_fork_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, exclusive_gate_fork_id, task1_ex_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, exclusive_gate_fork_id, task2_ex_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task1_ex_id, exclusive_gate_join_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task2_ex_id, exclusive_gate_join_id) [inclusive_gate_fork_id, _] = bpmn_graph.add_inclusive_gateway_to_diagram(process_id, gateway_name="inclusive_gate_fork") [task1_in_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task1_in") [task2_in_id, _] = bpmn_graph.add_task_to_diagram(process_id, task_name="task2_in") [inclusive_gate_join_id, _] = bpmn_graph.add_inclusive_gateway_to_diagram(process_id, gateway_name="inclusive_gate_join") bpmn_graph.add_sequence_flow_to_diagram(process_id, exclusive_gate_join_id, inclusive_gate_fork_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, inclusive_gate_fork_id, task1_in_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, inclusive_gate_fork_id, task2_in_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task1_in_id, inclusive_gate_join_id) bpmn_graph.add_sequence_flow_to_diagram(process_id, task2_in_id, inclusive_gate_join_id) [end_id, _] = bpmn_graph.add_end_event_to_diagram(process_id, end_event_name="end_event") bpmn_graph.add_sequence_flow_to_diagram(process_id, inclusive_gate_join_id, end_id) layouter.generate_layout(bpmn_graph) bpmn_graph.export_xml_file(self.output_directory, self.output_file_with_di) bpmn_graph.export_xml_file_no_di(self.output_directory, self.output_file_no_di) # Uncomment line below to get a simple view of created diagram # visualizer.visualize_diagram(bpmn_graph) visualizer.bpmn_diagram_to_dot_file(bpmn_graph, self.output_directory + self.output_dot_file) visualizer.bpmn_diagram_to_png(bpmn_graph, self.output_directory + self.output_png_file)