input: 
  from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  
  from bpmn_pgv import *
  import pygraphviz as pgv
  
  __author__ = 'mapologo'
  
  def create_bpmn_diagram(process_label: str) -> None:
      """
      Create a BPMN diagram for the specified process using the bpmn_pgv library. 
      The diagram should include clusters for Secretaría Ejecutiva, Presidencia, 
      and Presupuesto/Administración, with specific tasks and edges defined within 
      each cluster. Additionally, include nodes for SIGEFOMDES Administración and SISAC, 
      and connect them to the appropriate clusters using dashed edges. Finally, save 
      the diagram as a PNG file named "proc4.png" and a DOT file named "proc4.dot".
      
      >>> create_bpmn_diagram("Liquidación de Créditos")
      # Saves the diagram as "proc4.png" and "proc4.dot"
      """
      
      PROCESS_LABEL = process_label
      # A graph for FOMDES processes
      F = pgv.AGraph(strict=False, directed=True)
  
      F.graph_attr.update(label="", rankdir="TB", splines="ortho", labelloc="b",
                          size="8, 7.5", forcelabels="true", ranksep="0.25", fontname="Liberation Sans Narrow Condensed")
      F.node_attr.update(fontname="Liberation Sans Narrow Condensed")
      F.edge_attr.update(fontname="Liberation Sans Narrow Condensed", fontsize="10")
  
      se_cluster = {"se7": ("Recibir el documento protocolizado", "start"),
                    "se8": ("Revisar el documento protocolizado", "human"),
                    "se9": ("", "end")}
  
      se_edges = {"se7": {"se8": {}},
                  "se8": {"se9": {"style": "invis"}}}
  
      SE = add_cluster(F, "se", "Secretaría Ejecutiva", se_cluster, se_edges)
  
      p_cluster = {"p1": ("Firma del cheque", "human"),
                   "p2": ("Entregar cheque a beneficiario", "message")}
  
      p_edges = {"p1":{"p2": {}}}
  
      P = add_cluster(F, "p", "Presidencia", p_cluster, p_edges)
  
      pr_cluster = {"pr2": ("Verificar documentación legal y elaborar certificación de disponibilidad", "human"),
                    "pr3": ("Crear las cuentas por cobrar", "human"),
                    "pr4": ("Generar tablas de amortización", "human"),
                    "pr5": ("Imprimir y firmar orden de liquidación y cheque", "human")}
  
      pr_edges = {"pr2": {"pr3": {}},
                  "pr3": {"pr4": {}},
                  "pr4": {"pr5": {}}}
  
      PR = add_cluster(F, "pr", "Presupuesto/Administración", pr_cluster, pr_edges)
  
      F.add_node("SIGEFOMDES Administración", image=IMAGE_PATH + "database.png", shape="plaintext", label="", xlabel="SIGEFOMDES Administración")
      F.add_node("SISAC", image=IMAGE_PATH + "database.png", shape="plaintext", label="", xlabel="SISAC")
  
      global_edges = {"Beneficiario":  {"se7": {"style": "dashed"}},
                      "se8": {"pr2": {"style": "dashed"}},
                      "pr3": {"SIGEFOMDES Administración": {"style": "dashed"}},
                      "pr4": {"SISAC": {"style": "dashed"}},
                      "pr5": {"p1": {"style": "dashed"}},
                      "p2": {"se9": {"style": "dashed"}, "Beneficiario": {"style": "dashed"}}}
  
      add_edges(F, global_edges)
  
      F.draw("proc4.png", prog='dot')
      F.write("proc4.dot")
  
output:     
      F.add_node("Beneficiario", shape="box", label="Beneficiario")
      F.add_edge("Beneficiario", "se7", style="dashed")
      F.add_edge("se8", "pr2", style="dashed")
      F.add_edge("pr3", "SIGEFOMDES Administración", style="dashed")
      F.add_edge("pr4", "SISAC", style="dashed")
      F.add_edge("pr5", "p1", style="dashed")
      F.add_edge("p2", "se9", style="dashed")
      F.add_edge("p2", "Beneficiario", style="dashed")
  