Exemple #1
0
    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)
Exemple #2
0
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"))
Exemple #3
0
 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)
Exemple #5
0
    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)