示例#1
0
 def test_bpmn_exporting(self):
     bpmn_graph = bpmn_importer.apply(
         os.path.join("input_data", "running-example.bpmn"))
     bpmn_exporter.apply(
         bpmn_graph, os.path.join("test_output_data",
                                  "running-example.bpmn"))
     os.remove(os.path.join("test_output_data", "running-example.bpmn"))
def execute_script():
    log_path = os.path.join(
        os.path.join("..", "tests", "input_data", "running-example.xes"))
    log = xes_import.apply(log_path)
    ptree = inductive_miner.apply_tree(log)
    bpmn = pt_converter.apply(ptree, variant=pt_converter.Variants.TO_BPMN)
    #bpmn = bpmn_layouter.apply(bpmn)
    bpmn_exporter.apply(bpmn, "stru.bpmn")
    os.remove("stru.bpmn")
示例#3
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)
示例#4
0
        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()