示例#1
0
def write_bpmn(bpmn_graph, file_path, enable_layout=True):
    """
    Writes a BPMN to a file

    Parameters
    ---------------
    bpmn_graph
        BPMN
    file_path
        Destination path
    enable_layout
        Enables the automatic layouting of the BPMN diagram (default: True)
    """
    if enable_layout:
        from pm4py.objects.bpmn.layout import layouter
        bpmn_graph = layouter.apply(bpmn_graph)
    from pm4py.objects.bpmn.exporter import exporter
    exporter.apply(bpmn_graph, file_path)
示例#2
0
 bpmn_output_path.close()
 bpmn_output_path = bpmn_output_path.name
 log_path = os.path.join(LOGS_FOLDER, log_name)
 print("")
 print(log_path)
 log = pm4py.read_xes(log_path)
 fp_log = pm4py.algo.discovery.footprints.log.variants.entire_event_log.apply(
     log)
 net, im, fm = pm4py.discover_petri_net_heuristics(log)
 fitness0 = pm4py.evaluate_fitness_alignments(log, net, im, fm)
 precision0 = pm4py.evaluate_precision_alignments(log, net, im, fm)
 print("fitness 0", fitness0)
 print("precision 0", precision0)
 bpmn_graph = pm4py.objects.conversion.wf_net.variants.to_bpmn.apply(
     net, im, fm)
 bpmn_graph = layouter.apply(bpmn_graph)
 exporter.apply(bpmn_graph, bpmn_output_path)
 bpmn_graph = importer.apply(bpmn_output_path)
 bpmn_graph = layouter.apply(bpmn_graph)
 # gets the net back
 net, im, fm = pm4py.objects.conversion.bpmn.variants.to_petri_net.apply(
     bpmn_graph)
 gviz = pn_visualizer.apply(net, im, fm)
 pn_visualizer.view(gviz)
 fitness1 = pm4py.evaluate_fitness_alignments(log, net, im, fm)
 precision1 = pm4py.evaluate_precision_alignments(log, net, im, fm)
 print("fitness 1", fitness1, fitness0 == fitness1)
 print("precision 1", precision1, precision0 == precision1)
 if not (fitness0 == fitness1 and precision0 == precision1):
     print("ALERT")
     input()
示例#3
0
 def test_bpmn_importing_and_layouting(self):
     bpmn_graph = bpmn_importer.apply(os.path.join("input_data", "running-example.bpmn"))
     bpmn_graph = bpmn_layouter.apply(bpmn_graph)
示例#4
0
 def test_bpmn_layouting(self):
     log = pm4py.read_xes(os.path.join("input_data", "running-example.xes"))
     tree = pm4py.discover_tree_inductive(log)
     bpmn_graph = tree_converter.apply(tree, variant=tree_converter.Variants.TO_BPMN)
     bpmn_graph = bpmn_layouter.apply(bpmn_graph)