예제 #1
0
def main():
    workflow_files = sys.argv[1]
    workflow_name = sys.argv[2]
    output_file = sys.argv[3]

    spec = BpmnSerializer().deserialize_workflow_spec(PackagerForTests.package_in_memory(workflow_name, workflow_files))

    f = open(output_file, "w")
    try:
        f.write(spec.to_html_string())
    finally:
        f.close()
예제 #2
0
def main():
    workflow_files = sys.argv[1]
    workflow_name = sys.argv[2]
    output_file = sys.argv[3]

    spec = BpmnSerializer().deserialize_workflow_spec(
        PackagerForTests.package_in_memory(workflow_name, workflow_files))

    f = open(output_file, 'w')
    try:
        f.write(spec.to_html_string())
    finally:
        f.close()
예제 #3
0
파일: engine.py 프로젝트: OmerErkan/zengine
 def load_or_create_workflow(self):
     """
     tries to load the workflow from session
     creates a new one if it can't find
     :return:
     """
     try:
         workflow_path = self.get_worfklow_path()
         serialized_wf = self.request.session.workflows[workflow_path]
         self.workflow = BpmnWorkflow.deserialize(DictionarySerializer(), serialized_wf)
     except Exception as e:
         print e
         wf_pkg_file = open(self.workflow_name)
         self.workflow_spec = BpmnSerializer().deserialize_workflow_spec(wf_pkg_file)
         self.workflow = BpmnWorkflow(self.workflow_spec)
예제 #4
0
    def get_worfklow_spec(self):
        """
        generates and caches the workflow spec package from
        bpmn diagrams that read from disk

        :return: workflow spec package
        """
        # TODO: convert from in-process to redis based caching
        if self.current.workflow_name not in self.workflow_spec_cache:
            path = self.find_workflow_path()
            spec_package = InMemoryPackager.package_in_memory(
                self.current.workflow_name, path)
            spec = BpmnSerializer().deserialize_workflow_spec(spec_package)
            self.workflow_spec_cache[self.current.workflow_name] = spec
        return self.workflow_spec_cache[self.current.workflow_name]
예제 #5
0
 def load_workflow_spec(self, content_path, workflow_name):
     package = InMemoryPackager.package_in_memory(workflow_name,
                                                  content_path)
     return BpmnSerializer().deserialize_workflow_spec(package)
예제 #6
0
    def load_workflow_spec(filename, process_name):
        f = os.path.join(os.path.dirname(__file__), 'workflows', filename)

        return BpmnSerializer().deserialize_workflow_spec(
            PackagerForTests.package_in_memory(process_name, f))