MX2012014165A - Flujo de trabajo integrado y base de datos. - Google Patents

Flujo de trabajo integrado y base de datos.

Info

Publication number
MX2012014165A
MX2012014165A MX2012014165A MX2012014165A MX2012014165A MX 2012014165 A MX2012014165 A MX 2012014165A MX 2012014165 A MX2012014165 A MX 2012014165A MX 2012014165 A MX2012014165 A MX 2012014165A MX 2012014165 A MX2012014165 A MX 2012014165A
Authority
MX
Mexico
Prior art keywords
workflow
database
data structure
engine
transaction
Prior art date
Application number
MX2012014165A
Other languages
English (en)
Inventor
Swami Muthuvelu
Original Assignee
Mcl Systems Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mcl Systems Ltd filed Critical Mcl Systems Ltd
Publication of MX2012014165A publication Critical patent/MX2012014165A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Se provee un método implementado por computadora y un sistema para integrar transacciones de flujo de trabajo y base de datos. También se proporciona un medio de almacenamiento legible por ordenador que incluye un programa. El método implementado por computadora incluye la asignación de una estructura de datos almacenada en una base de datos a uno o más procesos de flujo de trabajo. El método implementado por computadora también incluye crear automáticamente una instancia del flujo de trabajo en respuesta a que estructura de datos se provea con un nuevo registro.

Description

FLUJO DE TRABAJO INTEGRADO Y BASE DE DATOS Campo de la invención La presente invención se refiere en general al campo de la Gestión de Procesos de Negocio ("BPM" por sus siglas en inglés) y gestión de flujo de trabajo, la industria de software, y la tecnología de bases de datos relaciónales.
ANTECEDENTES La mayoría de las aplicaciones empresariales se ejecutan en bases de datos relaciónales como Oracle DB2 o SQL Server de Microsoft.
La Gestión de Procesos de Negocio (BPM), también conocida como la gestión de flujo de trabajo, es un concepto que evoluciona rápidamente, el cual es adoptado por las organizaciones para formular un enfoque orientado al proceso para completar una tarea. Las soluciones de software que implementan varias soluciones BPM, funcionan como software independiente o en combinación con otras plataformas de software, tales como bases de datos, sistemas operativos y software de terceros mediante el uso de Interfaces de Programación de Aplicaciones (APIs por sus siglas en inglés), Interfaces de Línea Común (CLI por sus siglas en inglés) y otras interfaces en una arquitectura n-tier. Muchas soluciones de software BPM se desarrollaron a partir de sistemas de administración de documentos, la imágenes y correo electrónico - todos los cuales giran en torno al concepto de que cuando se crea materia ("documento" o "archivo" o "correo electrónico" o "registro"), un proceso controla la materia de principio a fin. Los intentos de integrar la base de datos y flujo de trabajo de soluciones han consistido en la débil unión de diferentes plataformas como soluciones a la medida para las necesidades específicas del negocio.
SUMARIO Deberá entenderse que tanto el siguiente sumario y descripción detallada son ejemplificadoras y explicativas y tienen como fin proporcionar una explicación adicional de la invención como se reivindica. Ni el resumen ni la descripción que sigue están destinados a definir o limitar el alcance de la invención a las características particulares mencionadas en el sumario o en la descripción.
En ciertas modalidades, las modalidades descritas pueden incluir una o más de las características descritas en la presente descripción.
En una modalidad de la invención, se provee un método implementado por computadora. El método implementado por computadora incluye asignar una estructura de información almacenada en una base de datos a uno o mas flujos de trabajo. El método implementado por computadora también incluye el crear de manera automática una instancia del flujo de trabajo en respuesta la inclusión de un nuevo registro a la estructura de datos.
En otra modalidad de la invención, se provee un medio de almacenamiento legible por computadora con un programa, el cual, cuando se ejecuta en un procesador, realiza una operación. La operación incluye el asignar una estructura de datos almacenada en una base de datos a uno o más procesos de flujo de trabajo. La operación también incluye la creación automática de una instancia del flujo de trabajo en respuesta a la inclusión de un nuevo registro a la estructura de datos.
En aún otra modalidad de la invención, se provee un sistema. El sistema puede incluir un procesador y una memoria comprendiendo un programa, el cual cuando es ejecutado por el procesador, está configurado para realizar una operación. La operación incluye el asignar una estructura de datos almacenada en una base de datos a uno o más procesos de flujo de trabajo. La operación también incluye la creación automática de una instancia del flujo de trabajo en respuesta a la inclusión de un nuevo registro a la estructura de datos.
Estos y otros objetivos y características de la invención son evidentes de la descripción, que incluye la especificación anterior y en curso.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La invención podrá entenderse en referencia a la siguiente descripción en conjunto con los dibujos adjuntos, en los que el (los) dígito(s) significativos de la izquierda en los números de referencia denota (n) la primera figura en la que los números de referencia respectivos aparecen, y en el los cuales: La figura 1 muestra un diagrama de bloques que muestran un entorno informático ejemplar de acuerdo con una modalidad de la presente invención; La figura 2 muestra un diagrama de bloques de una implementación ejemplar de un motor de flujo de trabajo de acuerdo con una modalidad de la presente invención; La Figura 3 muestra un diagrama de bloques de una tabla y sub-tablas base ejemplares de acuerdo con una modalidad de la presente invención; La Figura 4 muestra una pantalla de interfaz gráfica de usuario para el diseño y la gestión de un proceso de flujo de trabajo de acuerdo con una modalidad de la presente invención; y La Figura 5 muestra un diagrama de bloques de dos tablas que muestran la relación entre las operaciones de base de datos y transacciones de flujo de trabajo de acuerdo con una modalidad de la presente invención; La Figura 6 muestra un diagrama de flujo para la habilitación de un motor de flujo de trabajo en una base de datos y la creación de un diseño de proceso de acuerdo con una modalidad de la presente invención; La Figura 7 muestra un diagrama de flujo para realizar una transacción integrada de base de datos-flujo de trabajo de conformidad con una modalidad de la presente invención; La Figura 8 muestra un diagrama de flujo para realizar una transacción de flujo de trabajo única de conformidad con una modalidad de la presente invención; La figura 9 muestra un diagrama de flujo para la realización de un evento de flujo de trabajo asociado con transacciones de flujo de trabajo de acuerdo con una modalidad de la presente invención; La Figura 10 muestra un diagrama de flujo para realizar el evento de flujo de trabajo usando un Service Broker en una transacción de flujo de trabajo de conformidad con una modalidad de la presente invención.
DIBUJOS/DIAGRAMAS Aunque la invención es susceptible a diversas modificaciones y formas alternativas, se han mostrado las modalidades específicas de la misma a modo de ejemplo en los dibujos y se describirán a detalle a continuación. Deberá entenderse, sin embargo, que la presente descripción de las modalidades específicas no tiene como fin limitar la invención a las formas particulares descritas, sino, por el contrario, la intención es cubrir todas las modificaciones, equivalentes y alternativas que caigan dentro del espíritu y alcance de la invención como se define por las reivindicaciones adjuntas.
DESCRIPCIÓN DETALLADA Se describen a continuación modalidades ilustrativas de la invención. Con el fin de mantener la claridad en la descripción, no se describen todas las características de una implementación real. Será apreciado por supuesto, que en el desarrollo de cualquier modalidad real, pueden efectuarse numerosas decisiones específicas de implementación para lograr los objetivos específicos de los desabolladores, tales como el cumplimiento de las restricciones relacionadas con el sistema y negocios relacionados, que pueden variar de uno modalidad a otra. Además, se apreciará que tales esfuerzos de desarrollo podrían ser complejos y consumir mucho tiempo, pero sin embargo pueden ser rutina para une experto en la técnica que tengan el beneficio de esta descripción.
Se describirán ahora las modalidades de la presente invención con referencia a las figuras adjuntas. Se representan esquemáticamente varias estructuras, conexiones, sistemas y dispositivos en los dibujos solamente con fines explicativos y para no oscurecer la materia divulgada con detalles que son bien conocidos por los expertos en la técnica. Sin embargo, se incluyen los dibujos adjuntos para describir y explicar ejemplos ilustrativos de la presente invención. Las palabras y frases que se usan en la presente descripción deberán entenderse e interpretarse de acuerdo con un significado coherente con la comprensión de esas palabras y frases por los expertos en el arte relevante. No se pretende insinuar una definición especial de un término o frase, es decir, una definición que sea diferente del significado normal y habitual como es entendido por los expertos en la técnica, por el uso consistente del término o frase. En la medida en que un término o frase se pretenda que tenga un significado especial, es decir, un sentido que no sea entendido por los expertos en el ramo, tal definición especial se establecerá expresamente en la descripción de manera definitoria que provea directa e inequívocamente la definición especial para el término o frase.
Una modalidad de la invención se implementa como un producto de programa para su uso con un sistema de computadora, como por ejemplo, el entorno informático 100 mostrado en la figura. 1 y descrito a continuación. El (los) programa (s) del producto de programa define(n) funciones de las modalidades (incluyendo los métodos descritos en la presente descripción) y puede(n) estar contenido(s) en una variedad de medios portadores de señal. Ejemplos de medios portadores de señal incluyen, pero no se limitan a: (i) información permanentemente almacenada en medios de almacenamiento no grabables (por ejemplo, dispositivos sólo de lectura de memoria de una computadora, tales como discos CD-ROM legibles por una unidad de CD-ROM) , (ii) información alterable almacenada en medios de almacenamiento grabables (por ejemplo, discos flexibles dentro de una unidad de disquete o de disco duro), y (ii¡) información proveída a una computadora mediante un medio de comunicación, tal como a través de un ordenador o una red telefónica, incluyendo comunicaciones inalámbricas. La última modalidad específica incluye información descargada de Internet y otras redes. Tales medios portadores de información, cuando transportan instrucciones legibles por una computadora, que dirigen las funciones de la presente invención, representan modalidades de la presente invención.
En general, las rutinas ejecutadas para implementar las modalidades de la presente invención, pueden ser parte de un sistema operativo o una aplicación específica, base de datos, componente, programa, módulo, objeto, o secuencia de instrucciones. El programa de computadora de la presente invención típicamente se compone de una multitud de instrucciones que serán traducidas por la computadora nativa en un formato legible por la máquina, y por lo tanto instrucciones ejecutables. Además, los programas están compuestos de variables y estructuras de datos que, residen localmente en el programa o se encuentran en la memoria o en dispositivos de almacenamiento. Además, varios programas descritos en lo sucesivo, pueden ser identificados en base a la aplicación para la que se implementan en una modalidad específica de la invención. Sin embargo, se debe apreciar que cualquier nomenclatura de programa en particular que se describa, se usa solamente por conveniencia, y por lo tanto la invención no debe limitarse a su utilización solamente en una aplicación específica identificada y / o implícita por tal nomenclatura. En este sentido, las referencias a determinados lenguajes de programación particulares, como HTML, XML, SQL, NET, C#, etc son meramente ilustrativos. En general se contempla que la invención es aplicable independientemente del esquema particular, o lenguaje usado para definir el contenido de los recursos de red.
En referencia a la Figura 1 , se muestra un diagrama de bloques que ilustra un entorno informático ejemplar 100, de acuerdo con una modalidad de la presente invención. En general, el entorno informático 100 incluye una computadora cliente 102 (por ejemplo, de un usuario), y un servidor 104. La computadora cliente 102 y el servidor 104 pueden ser componentes de un mismo sistema informático o pueden estar conectados a través de una red 106, tal como Internet.
Como se muestra, la computadora cliente 102 incluye una unidad de procesamiento central (CPU) 108 conectada a una memoria 110, un dispositivo de almacenamiento 112, y una interfaz de red 114 a través de un bus 116. El CPU 108 se incluye para ser representativo de un único CPU, múltiples CPU, un CPU que tiene varios núcleos de procesamiento, y similares. El dispositivo de almacenamiento 112 almacena programas de aplicación y datos para ser usados por la computadora cliente 102. Ejemplos de dispositivos de almacenamiento 112 incluyen una o más unidades de disco duro, dispositivos de memoria flash, medios ópticos y similares. La computadora cliente 102 puede estar conectada a la red de comunicaciones de datos 106 (por ejemplo, una red de área local, que a su vez puede estar conectada a otras redes como la Internet) utilizando la interfaz de red 141. La memoria 110 puede ser una o una combinación de dispositivos de memoria, incluyendo memoria de acceso aleatorio, memoria no volátil o de copia de seguridad (por ejemplo, memorias programables o flash, memorias de sólo lectura, etc.). A manera de ejemplo, la memoria 110 de la computadora cliente 102 almacena un sistema operativo 118 utilizado para administrar el hardware y el software que se ejecuta en la computadora cliente 102. Como se muestra, la memoria 1 10 también incluye un programa navegador 120 que, cuando es ejecutado por el CPU 108, proporciona soporte para navegar entre varios servidores y localizar direcciones de red en uno o más de los servidores (por ejemplo, el servidor 104).
La computadora cliente 102 puede estar conectada a una o más unidades de visualización 122, dispositivos de entrada 124, dispositivos de salida 126 y dispositivos periféricos 128. Las unidades de visualización 122 pueden ser monitores internos o externos, pantallas de televisión, pantallas de dispositivos portátiles, y similares. Los dispositivos de entrada 124 pueden ser un teclado, un ratón, trackball, lápiz, mouse pad, ratón, joystick, escáner o similares. Los dispositivos de salida 126 pueden ser uno un monitor, impresora, trazador, copiadora o cualquier otro dispositivo de salida. Los dispositivos periféricos 128 pueden ser cualquier otro dispositivo que pueda ser acoplado a una computadora: una unidad de CD / DVD capaz de leer y / o escribir en medios digitales físicos, un dispositivo USB, una unidad Zip, unidad de disquete externo, disco duro externo, teléfono y / o módem de banda ancha, un router / puerta de enlace, un punto de acceso y / o similares.
De manera similar a la computadora cliente 102, el servidor 104 puede incluir un CPU 130, una memoria 132, un dispositivo de interfaz de red 134, y un dispositivo de almacenamiento 136, acoplado a través de un bus 138. La memoria 132 puede ser una memoria de acceso aleatorio suficientemente grande para contener las estructuras necesarias de programación y de datos que se encuentran en el servidor 104. Como se muestra, la memoria 132 almacena un sistema operativo 142 utilizado para administrar el hardware y software que se ejecuta en el servidor. De manera Ilustrativa, la memoria 132 también incluye un protocolo de transferencia de hipertexto (HTTP) 144 configurado para dar dar servicio a solicitudes de la computadora cliente 102. Por ejemplo, el servidor http 144 puede responder a las solicitudes de acceso a los recursos electrónicos (por ejemplo, documentos HTML, información, red y similares) que residen en el servidor 104. La memoria 132 puede incluir también un servidor de base de datos 143, que puede responder a una solicitud de acceso a las aplicaciones de consulta a base de datos y similares. Sin embargo, un experto normal en la técnica reconocerá que el servidor de base de datos 143 o el servidor http 144 son meramente ilustrativos y que las modalidades de la invención se pueden adaptar para soportar protocolos conocidos y desconocidos. Las estructuras de programación y los datos del servidor HTTP 144 pueden ser accedidos y ejecutado por la CPU 130 como sea necesario durante la operación. Los servidores 104 pueden conectarse a la red 106 utilizando el dispositivo de interfaz de red 134 (por ejemplo, un módem analógico, una tarjeta de red cableada, o un dispositivo de red inalámbrico).
En una modalidad, los usuarios pueden interactuar con el servidor 104 utilizando una ¡nterfaz gráfica de usuario (GUI por sus siglas en ingles). En una modalidad particular, el contenido de la ¡nterfaz gráfica de usuario puede comprender documentos HTML (por ejemplo, páginas web) presentados en la unidad de visualización 122, unida a la computadora cliente 102 utilizando el navegador 120. En una modalidad, las páginas web pueden incluir páginas que permiten al usuario diseñar, manipular, ejecutar y monitorear el desempeño de diversos procesos de negocio (es decir, flujos de trabajo).
El servidor de base de datos 143 puede incluir una pluralidad de bases de datos 1451 , 1452. La base de datos 1451 puede alojar un motor de flujo de trabajo 146. El motor de flujo de trabajo 146 pueden comprender una aplicación de software configurado para proporcionar la capacidad (por ejemplo, a través de la interfaz gráfica de usuario) para modelar un flujo de trabajo (por ejemplo, definir los procesos, estados, tareas, acciones, eventos, normas, etc) con el fin de controlar las actividades de trabajo actividades asociadas con una base de datos, bases de datos. Las bases de datos de 1451 , 1452 pueden incluir una base de datos relacional 1451 que se consulta mediante una consulta SQL o una base de datos XML 1452 consultada mediante una consulta XML. La invención, sin embargo, no se limita a ningún mecanismo de almacenamiento físico de base de datos particular y puede ser fácilmente adaptado para operar en otros mecanismos, ya sea que actualmente sean conocidos o desconocidos. Mientras que las bases de datos 1451 , 1452 se muestran localizadas en el interior del servidor, deberá entenderse que las bases de datos de 1451 ,1452 pueden estar localizadas en un dispositivo de almacenamiento externo (por ejemplo, dispositivo de almacenamiento 136) al servidor 104, o pueden accederse a través de la red 106.
Haciendo ahora referencia a la Figura 2, se muestra un diagrama de un ejemplo de implementacion del motor de flujo de trabajo 146, de acuerdo con una modalidad de la presente invención. El motor de flujo de trabajo 146 se encuentra en la base de datos 1451 . La base de datos 1451 reside en el servidor de base de datos 143. Como se muestra, un diseñador de proceso de flujo de trabajo 204, una aplicación de software de negocios 206, herramientas de consulta de base de datos 207, herramientas de informes de base de datos 208 y otras herramientas de bases de datos 209 están unidas a la base de datos 1451. En una modalidad, el servidor de base de datos 143 puede ser un sistema de gestión de base de datos (DBMS), que controla la creación, el mantenimiento y el uso de las bases de datos 1451 , 1452. Las bases de datos 1451 , 1452 están relacionadas con una unidad lógica donde los datos, procedimientos, y la seguridad se separan para su uso por una o más aplicaciones relacionadas. El servidor de base de datos 143 también puede estar acoplado a sistemas externos 1481 , 1482, que pueden ser sistemas de terceros que están directamente controlados o orquestados por el motor de flujo de trabajo 146 a través del uso de las características programables dentro de la base de datos 1451 y / o el uso de funciones de software disponibles en el servidor de base de datos 143 o características disponibles en el O / S 142 (como se muestra en la Figura 1). En una modalidad, una característica de Service Broker (no mostrado) disponible en muchos servidores de bases de datos líderes conocidos en la técnica se utiliza para la orquestación.
Cabe señalar que la orquestación se refiere a un arreglo, coordinación y gestión automatizada de sistemas informáticos complejos, middleware y servicios. En una operación de orquestación, los mensajes se intercambian entre los sistemas débilmente conectados que trabajan juntos para realizar una tarea. Como ejemplo, una compañía de envíos de un tercero puede recibir un mensaje para enviar un producto a una dirección. La compañía de envíos realiza el envío de manera independiente y confirma los detalles de envío al solicitante. La empresa que solicita el envío no se preocupa por logística, y a la empresa transportista no le importa el propósito del envío. Los mensajes son simplemente intercambiados entre los dos sistemas de las empresas para cumplir la tarea de envío de forma independiente.
El diseñador de proceso 204 permite a un usuario (por ejemplo, a través de la interfaz gráfica de usuario presentada a través del navegador 120 (mostrado en la Figura 1 )) crear y modificar un proceso de flujo de trabajo. Usando la interfaz gráfica de usuario, el usuario puede definir, editar, revisar y gestionar los procesos de flujo de trabajo. Cuando un proceso de flujo de trabajo se crea con el diseñador de proceso 204, una tabla (o una estructura de datos) en la base de datos 145, se define como la mesa de control ("tabla base") para un proceso. El flujo de datos en la tabla base activa el motor de flujo de trabajo 146. Una instancia de flujo de datos en la tabla base (un registro de una tabla) inicia una instancia de flujo de trabajo. Una tabla de base puede ser una tabla de control para más de un proceso, y por lo tanto, una instancia de los datos que fluyen en la tabla base puede iniciar muchas instancias de flujo de trabajo, uno para cada proceso. De manera alternativa, las transacciones de flujo de trabajo se inician como parte de una transacción de base de datos para la tabla base.
En general los flujos de trabajo constan de tres elementos básicos: procesos, estados y transiciones. Un proceso de flujo de trabajo es una secuencia de un flujo de trabajo para completar una tarea. El flujo puede tomar diferentes rutas en diferentes puntos, dependiendo de las condiciones establecidas por el diseñador de proceso 204. Una tarea de gran tamaño puede ser dividido lógicamente en muchos subprocesos interconectados. Un estado es una etapa de reposo en un proceso de flujo de trabajo. Una transición es una acción que mueve una instancia de flujo de trabajo de un estado al siguiente estado. Las transiciones son o bien una acción de un usuario específico o un flujo automatizado basado en condiciones específicas establecidas por el usuario. El usuario puede definir los estados y las transiciones asociadas del flujo de trabajo siendo modelado usando la interfaz gráfica de usuario. En una modalidad, el flujo de trabajo puede ser modelado como un diagrama de flujo de alto nivel (mostrado en la Figura 4), que permite al usuario describir de manera lógica las actividades como un proceso. En una modalidad, el usuario puede crear el diagrama de flujo mediante acciones de manipulado. De "arrastrar y soltar" iconos. El diseñador de procesos 204 interactúa con el motor de flujo de trabajo 146. Todas las definiciones de proceso de flujo de trabajo (metadatos de "flujo de trabajo") se almacenan como datos en la base de datos 1451 .
La aplicación 206 es una aplicación de negocios para gestionar el negocio para el cual el software esta diseñado a dar soporte. A manera de ejemplo, el software para la gestión de pedidos de clientes para una operación de venta por correo es una aplicación de negocio. Puede tener pantallas para la creación de pedidos, órdenes de envío y facturación al cliente. Dicha aplicación puede ser construida con capacidad de flujo de trabajo o sin él. Una aplicación sin flujo de trabajo puede carecer del motor de flujo de trabajo 146 en de base de datos como la 145.
Una aplicación con flujo de trabajo habilitada, funciona como cualquier aplicación de software, sin embargo, con controles adicionales del motor de flujo de trabajo 146. La aplicación puede ser mejorada a una aplicación conciente-de flujo de trabajo, donde la aplicación 206 interactúa con el motor de flujo de trabajo 146 y utiliza las características de flujo de trabajo. Como ejemplo, la aplicación de flujo de trabajo mejorada puede mostrar el estado de flujo de trabajo de todas las órdenes abiertas. La aplicación de flujo de trabajo mejorado puede delegar y priorizar el trabajo a los usuarios. La aplicación de flujo de trabajo mejorado también puede controlar lo que el usuario puede hacer, cual operación de trabajo, y proveer coordinación entre los usuarios, etc.
Como se mencionó anteriormente, el motor de flujo de trabajo 146 reside en la base de datos 145; y está integrado con la base de datos 1451 y con el servidor de base de datos 143. La integración se consigue mediante la implementacion del motor de flujo de trabajo 146 como programas que residen en una capa de base de datos de la base de datos 145. Esta integración proporciona el motor de flujo de trabajo 146 con la capacidad de controlar el proceso de flujo de trabajo conforme los nuevos datos entran en la base de datos 1451 , o cuando se modifican los datos y/o se eliminan. La integración proporciona un uso transparente de la funcionalidad de base de datos (es decir, sin conocimiento de la presencia del motor de flujo de trabajo 146). Sin embargo, la integración incluye control de flujo de trabajo. Los procesos de flujo de trabajo son instanciados, guiados y controlados con los cambios a los datos de la tabla base que reside en la base de datos 1451. Cualquier cambio en los datos de la base de datos 1451 realizados por la aplicación 206, por las herramientas de consulta de base de datos 207, por las herramientas de reporte de bases de datos 208 y por muchas otras herramientas de base de datos 209, son automáticamente investigados y controlados por el motor de flujo de trabajo 146. La integración proporciona una implementacion transparente del motor de flujo de trabajo 146 dentro de la capa de base de datos 1451 capa.
El motor de flujo de trabajo 146 puede proporcionar la creación y gestión de los procesos de flujo de trabajo, interpretar los modelos de flujo de trabajo y gestionar la ejecución del flujo de trabajo. El flujo de trabajo del motor 146 también puede enrutar flujos y sincronizar actividades, asignar recursos a las actividades, notificar a las personas, invocar eventos y aplicaciones, transmitir datos y documentos a las aplicaciones y a las personas, controlar la seguridad de usuario y privilegios, mantener la información de los diferentes estados de diversas instancias de flujo de trabajo y mantener un registro de las transacciones de flujo de trabajo.
Haciendo referencia a la Figura 3, se muestra un diagrama de bloques de un ejemplo de tabla base y sub-tablas, de acuerdo con una modalidad de la invención. En general, los datos para un negocio, organización, entidad o similares pueden ser almacenados en varias tablas relacionadas 302, 304, 306 en la base de datos adecuada 1451 , 1452. Una de dichas tablas es la tabla de base 302, la cual contiene típicamente una pluralidad de filas, cada una conteniendo un registro. Poner la tabla base en el contexto de una aplicación de gestión de pedidos, cada registro de la tabla base puede representar un pedido realizado utilizando la aplicación. Como se muestra, cada registro puede contener el número de identificación del orden de cada pedido. La tabla base 302 puede tener un número N de sub-tablas asociadas 302, 304. Cada tabla sub 302, 304 puede contener información adicional acerca de cada pedido realizado. Como se muestra, la sub tabla 304 contiene el nombre del cliente para cada orden colocada, y la sub tabla 306 contiene la cantidad de los objetos comprados en cada pedido. En una modalidad, el flujo de trabajo se inicia una vez que la tabla base 302 se rellena con un nuevo registro.
Por lo tanto, cada fila de la tabla base 302 también puede representar una ocurrencia de un proceso de flujo de trabajo (por ejemplo, un proceso de gestión de pedidos como se define por el flujo de trabajo). La aplicación 206 puede estar configurada para crear o modificar los datos almacenados en la tabla de base 302 (o uno de sus sub-tablas 304, 306). La aplicación 206 puede utilizar una interfaz de usuario para introducir o modificar los datos, proporcionar capacidad de reporte, y similares.
El flujo de trabajo también puede estar asociado con sistemas internos y externos 148, 148 2. Por ejemplo, considere un modelo de negocios en el que se acredita al cliente con puntos de comprador frecuente por una compra. En este caso, el sistema de puntos de cliente comprador frecuente que se acredita con puntos puede ser un sistema interno. Sin embargo, es una aplicación diferente que utiliza la base de datos 1452. En otro ejemplo, una compañía de envío de un tercero puede ser usada para envíos directos de las órdenes de los clientes. El sistema de la compañía de envíos (por ejemplo, sistemas externos 1481 y/o 1482) puede ser notificado con los detalles de envío. La compañía de envío puede realizar la tarea de envío y envía los detalles de confirmación. La interacción con sistemas internos y externos se lleva a cabo a través de eventos de flujo de trabajo. Los eventos de flujo de trabajo se pueden especificar en scripts usando cualquier lenguaje de programación (por ejemplo, C #, Java, y similares). Los scripts de eventos pueden ser ejecutados por el motor de flujo de trabajo 146 como parte de la transacción integrada de flujo de trabajo de la base de datos o como parte de la transacción de flujo de trabajo. Los eventos pueden ser establecidos para que ejecuten en los lugares adecuados, como al entrar en un estado, al salir de un estado, o cuando un usuario realiza una acción. Los eventos incluyen, pero no se limitan a, la creación de archivos, iniciar acciones en otros sistemas y / o aplicaciones, enviar notificaciones de correo electrónico, y similares.
Haciendo referencia a la Figura 4, se muestra la pantalla de interfaz gráfica de usuario 402 para el diseño y la gestión de un proceso de flujo de trabajo 404, de acuerdo con una modalidad de la invención. Para fines ilustrativos, el proceso de flujo de trabajo 404 que se muestra, es para un proceso de gestión de pedidos. Como se muestra, el proceso de gestión de pedidos puede comprender una pluralidad de estados: Inicio 406, Orden en Curso 408, Orden Enviada 410, Orden Facturada 412, y el Final 414. La estados 406, 408, 410, 412, 414 pueden estar acoplados entre sí con una pluralidad de transiciones: Colocar Orden 416, Enviado 418, Facturado 420, Cancelado 422, y Completado 424. El proceso de flujo de trabajo 404 puede estar configurado de modo que ingrese el estado de Orden en Curso 408 cuando un comprador hace un pedido de un producto (por ejemplo, a través de un formulario web). Dependiendo de la acción adoptada durante este estado, el flujo de trabajo 404 puede hacer la transición del estado de Orden en Curso 408 al estado de Final 414 o al estado del Orden Enviada 410. Por ejemplo, si la orden se cancela (por ejemplo, por un proveedor), entonces proceso de flujo de trabajo 404 puede hacer la transición del estado de Orden en curso 408 al estado Final 414 por medio de la transición Cancelado 422. En este caso, el proveedor puede utilizar un formulario de usuario que inicia un evento cuando la orden es cancelada, lo que causa que el flujo de trabajo siga a la transición Cancelado 422. Sin embargo, si el producto es enviado, entonces, el proceso de flujo de trabajo 404 puede hacer la transición desde el estado de Orden en curso 408 al estado de Orden Enviada 410. En este caso, el formulario de usuario puede iniciar una interacción la cual, cuando se envíe la orden, el flujo de trabajo lleve a cabo la transición Enviado 418. Al facturar el pedido (por ejemplo, usando un formulario de usuario), el proceso de flujo de trabajo 404 puede hacer la transición desde el estado de Pedido Enviado 410 al estado Pedido Facturado 412 a través de la transición Facturado 420. Al completar el pedido, el estado de Pedido Facturado puede hacer la transición al estado Final 414 a través de la transición Completado 424.
Los estados, 406, 408, 410, 412, 414 y las transiciones 416, 418, 420, 422, 424 pueden ser implementados como parte del flujo de trabajo 402 arrastrando y soltando los estados y transiciones utilizando los iconos de los Estados 426 y los ¡conos en el cuadro de Transiciones 428.
Como se indico anteriormente, el proceso de flujo de trabajo 404 está asociado con los datos almacenados en una tabla base en una base de datos 1451 , 1452, En una modalidad, un usuario puede seleccionar la base de datos adecuada 1451 , 1452 utilizando el botón Seleccionar base de datos 430. Usando el ejemplo anterior, el proceso de flujo de trabajo 404 para el proceso de gestión de pedidos puede ser creado utilizando el botón de Seleccionar Tabla Base 432, que asocia a la tabla base 302 (mostrada en la Figura 3) que contiene información de pedidos (por ejemplo, números de orden de identificación). Las ordenes (instancias de flujo) pueden ser creadas por una variedad de herramientas, incluyendo una aplicación de procesamiento de orden 206, una herramienta de consulta, o cualquier aplicación compatible. Las instancias de flujo de trabajo son creadas independientemente de la herramienta que se utiliza.
En una modalidad, durante la asociación de la tabla base 302 con un proceso de flujo de trabajo 404, el motor de flujo de trabajo 146 crea desencadenadores a nivel de tabla en la tabla base. Tales desencadenadores actúan como puertas de acceso al motor de flujo de trabajo 146. Cuando se agrega un registro, se actualiza y eliminado en la tabla base, el motor de flujo de trabajo 146, toma el control a través de los desencadenadores de tabla. Cuando el motor de flujo de trabajo 146 obtiene el control, identifica el registro usando la clave principal del registro y completa la transacción flujo de trabajo. De esta manera, una operación de flujo de trabajo se completa como parte de una transacción de base de datos. Una vez que la tabla base 302 se rellena con un registro para una nueva orden, una instancia de proceso de flujo de trabajo 404 puede ser automáticamente creada para este fin. En este caso, cuando el proceso de flujo de trabajo 404 se inicia, puede ser configurado para que automáticamente y/o condicionalmente efectúe la transición desde el estado de Inicio 406 al estado de Orden en curso 408 una vez que se inserta en la tabla base 302 una orden recién colocada.
Una vez que el usuario diseña el flujo de trabajo 404 deseado, la capacidad de flujo de trabajo se puede incorporar en una aplicación existente o nueva (por ejemplo, una aplicación para colocación de órdenes basada en la web). Por ejemplo, un usuario puede crear formularios web (por ejemplo, usando Microsoft Visual Basic.NET) y asociar los formularios web con la base de datos 1451 , 1452. Usando el navegador 122, se pueden usar una pluralidad de formularios de red, cada uno teniendo un propósito diferente. Por ejemplo, un formulario de red en particular puede ser utilizado para enviar un pedido de un producto. Como tal, el formulario de red puede contener varios campos que acepten información con respecto a la orden (por ejemplo, dirección de envío, dirección de facturación, nombre del producto, cantidad, etc.) Cuando un usuario envía el formulario, una entrada que representa una orden recién colocada, se crea en la misma tabla base 302 elegida para el proceso de flujo de trabajo 404 creado. En consecuencia, una vez que la entrada se crea en la tabla base 302, una instancia de proceso de flujo de trabajo puede ser automáticamente creada para esta orden. La instancia de flujo de trabajo puede o no puede ser creada basado en las condiciones fijadas para el proceso. A modo de ejemplo, la condición puede ser configurada para crear un flujo de trabajo únicamente para los pedidos por correo y no para órdenes de compras en la tienda. Cuando se crea una fila, una transición de Colocar Orden también puede ser iniciada.
En consecuencia, el estado de Inicio 406 puede efectuar la transición al estado de la Orden en Curso 408. La instancia del flujo de trabajo se identifica por la clave principal o clave única de la tabla base. La clave principal de una tabla es un identificador único para una fila de una tabla. El motor de flujo de trabajo 146 mantiene de forma independiente la información de estado de cada registro en la tabla de base(s) en su propio almacén de datos que consiste en una pluralidad de tablas. Por ejemplo, el motor de flujo de trabajo 146 tiene la información que ORDERJD = 0001 (clave principal) se encuentra actualmente en el estado 408.
Otro tipo de formulario que puede ser creado es un formulario de cumplimiento de la orden y embarque, que puede ser utilizado por el proveedor del producto. El proveedor puede utilizar este formulario para cancelar el pedido, o cumplir con el producto o los productos solicitados (es decir, enviar el pedido). El formulario, cuando se presenta, puede iniciar un evento que notifica al motor de flujo de trabajo 146 que cambie el estado del proceso de flujo de trabajo 404 de Orden en Curso 408 al estado apropiado. Por ejemplo, si el proveedor cancela el pedido, entonces un evento de transición Cancelado puede ser iniciado, lo que causa que el proceso de flujo de trabajo 404 pase del estado de Orden en Curso 408 al estado Final 414. En una modalidad, al presentar el formulario de cumplimiento de orden y embarque, puede ser llamada una función que indique la realización de transición de Cancelado 422 que dirija el motor de flujo de trabajo 146 para mover el flujo de trabajo 404 del estado Orden en Curso 408 al estado Final 414. Por otro lado, si el proveedor cumple la orden, entonces se puede iniciar una transición al estado de Enviado 418, lo que causa que el proceso de flujo de trabajo 404 pase de un estado de Orden en Curso 408 al estado de Orden Enviada 410. En una modalidad, al presentar el formulario de cumplimiento de orden y embarque, se puede llamar una función que dirija el motor de flujo de trabajo 146 a mover el proceso de flujo de trabajo 404 del estado Orden en Curso 408 al estado de Orden Enviada 410.
Los registros de la tabla base y los datos en la tabla de base son independientes del motor de flujo de trabajo 146. En una modalidad, el motor de flujo de trabajo 146 no tiene injerencia sobre qué datos se pueden introducir en la tabla base. En este caso, el motor de flujo de trabajo de 146 guía y monitorea de forma independiente la información sobre el estado de los registros de la tabla base utilizando la clave principal. La información de estado se almacena por separado en el almacenamiento de datos del motor de flujo de trabajo 146 almacén de datos. Al separar los datos de flujo de trabajo de los datos de la tabla base, la aplicación 206 y la base de datos 145 se comportan de manera independiente y de manera transparente del flujo de trabajo. Sin embargo, la funcionalidad completa del flujo de trabajo es proporcionado por el motor de flujo de trabajo 146.
El motor de flujo de trabajo de 146 es activo en los registros de la tabla base que se encuentra actualmente en cualquiera de los estados en el proceso (408, 410 y 412). El estado de Inicio 406 y estado Final 414 son estados transitorios y un registro de la tabla base no puede quedarse en este estado. Cuando un registro de la tabla base alcanza el estado Final 414, el registro se elimina de la cola de flujo de trabajo, y el motor de flujo de trabajo 146 deja de dar seguimiento al registro. Al llegar al estado Final, la Orden es completada (o cancelada) y no es necesario seguir trabajando en esta orden. La tabla base sigue teniendo los datos sobre la orden completada. La tabla de datos base permanece bajo el control de la aplicación 206. En otra modalidad, también es posible llevar una orden completada de vuelta al flujo de trabajo efectuando una solicitud de "restablecer" al motor de flujo de trabajo 146 usando la clave primaria de la tabla base y el estado actual donde se debe colocar el registro.
Cuando los datos de un registro de la tabla base se actualizan mediante la aplicación 206, o la herramienta de consulta 207, u otra herramienta de bases de datos 209, el cambio a los datos del registro que no sean la clave principal puede que no tenga efecto en la instancia de flujo de trabajo. En una modalidad, el motor de flujo de trabajo 206 puede causar la incapacidad de actualizar la clave principal si el registro se encuentra activo en el flujo de trabajo (por ejemplo, si el estado actual del registro es 408 o 410 o 412), ya que la clave principal se utiliza en el motor de flujo de trabajo para el seguimiento del estado actual. En otra modalidad, el motor de flujo de trabajo 146 ajusta automáticamente la clave de instancia de flujo de trabajo para que coincida con la clave primaria de la base de datos cambiada, lo que permite cambios a las claves primarias.
Independientemente del método utilizado, un registro puede ser actualizado sin restricciones, ofreciendo una independencia total a la aplicación 206 con interferencia limitada del motor de flujo de trabajo 146.
Cuando un registro de la tabla base se elimina a través de la aplicación 206, o de una herramienta de consulta 207, u otra herramienta de bases de datos 209, el motor de flujo de trabajo 146 examina la clave principal del registro y también la elimina de la cola de flujo de trabajo si se mantiene activa en el flujo de trabajo (por ejemplo, si el estado actual del registro es 408 o 410 o 412).
Una inserción en la tabla base inicia una instancia de flujo de trabajo y de transacción. Sin embargo, podría haber muchas operaciones de flujo de trabajo posteriores sin que haya ningún cambio en los registros de la tabla base. Las operaciones de flujo de trabajo ocurren cuando hay un cambio de un estado a otro estado.
La descripción anterior se resume en la Figura 5. Haciendo referencia a la Figura 5, se muestra un diagrama de bloques de dos tablas 502, 504 que muestra la relación entre la base de datos y las transacciones de flujo de trabajo. La Tabla 502 muestra los efectos de una transacción de base de datos en una transacción de flujo de trabajo. La Tabla 504 muestra los efectos de una transacción de flujo de trabajo en una transacción de base de datos. Como se muestra en la Tabla 502, la transacción de base de datos en la tabla de base, inicia una transacción de flujo de trabajo. Por ejemplo, si la transacción de base de datos es una transacción de inserción, se realiza una transacción de inserción en la transacción de flujo de trabajo si se satisface la condición de tabla base. Si la transacción de base de datos es una transacción de actualización de una clave primaria de una tabla base, la transacción de base de datos se verá obligada a fallar. Sin embargo, si la operación de actualización es una clave no primaria, no habrá ningún efecto sobre la operación de flujo de trabajo. Si la transacción de base de datos es una operación de borrado, la clave primaria del registro correspondiente también se elimina del flujo de trabajo.
Sin embargo, como se muestra en la Tabla 504, una transacción de flujo de trabajo (por ejemplo, una inserción, actualización o eliminar transacción) no crea ninguna transacción de base de datos en la tabla base. Esto facilita que se introduzca un motor de flujo de trabajo mínimamente invasivo 146 dentro de una aplicación de negocio existente o nueva, sin que haya cambios en la arquitectura de desarrollo de aplicaciones basadas en base de datos.
En otra modalidad, la transacción integrada de base de datos-flujo de trabajo, puede implementarse como una transacción de flujo de trabajo de base de datos diferida. Desde una perspectiva de transacción de base de datos, cuando se inserta una fila en una tabla, un motor de base de datos por lo general establece bloqueos a nivel de fila o establece bloqueos a nivel de tabla. Las implementaciones de bloqueo variar de un proveedor de base de datos a otro. Los desencadenantes (creados por el motor de flujo de trabajo 146) pueden ser ejecutados muy rápidamente para mantener un rendimiento razonable. Los desencadenantes pueden ser suficientemente rápidos como para permitir que entren cientos o incluso miles de órdenes en paralelo. Muchas modalidades de la presente invención permiten la integración con sistemas internos y externos 148. Esta integración tiene el potencial de que las transacciones de bases de datos se ralenticen o esperen indefinidamente una respuesta de otros sistemas. Además, el flujo de un estado a otro estado puede ser configurado para que fluya automáticamente entre varios estados en tin bucle, y muchos sub-procesos de flujo de trabajo pueden ser creados automáticamente. Tales flujos largos pueden bloquear el sistema, lo que puede ralentizar todo el sistema. Muchas implementaciones de bases de datos tienen restricciones en desencadenantes de nivel anidado y pueden prevenir largos flujos anidados automatizados de varios pasos. Estos problemas generalmente se pueden superar con un buen diseño de procesos de flujo de trabajo. En referencia a las Tablas 502 y 504, la transacción integrada de base de datos-flujo de trabajo puede ser relevante en las transacciones de bases de datos insertar y borrar. La mayoría de los sistemas de bases de datos proporcionan bloqueos de nivel de fila para estas transacciones y es poco probable que otros usuarios (por ejemplo, otras transacciones de pedidos) puedan ser bloqueadas o desaceleradas. Sin embargo, existe la posibilidad de quedarse sin límites a nivel de transacción de base de datos anidada y hay potencial de esperas indefinidas para la transacción relacionada con sistemas externos, etc Estos problemas pueden ser superados con transacciones de flujo de trabajo diferidas de base de datos.
Para implementar el mecanismo de flujo de trabajo diferido de base de datos, el motor de flujo de trabajo 146 puede utilizar un Service Broker o cualquier Arquitectura Orientada a Servicios (SOA por sus siglas en inglés) (no mostrada). Las implementaciones de Service Broker o SOA están disponibles en muchas bases de datos modernas conocidas en la técnica. Esto proporciona la capacidad para desvincular una tarea y completar la tarea de forma independiente de una manera no bloqueada. Cuando el motor de flujo de trabajo 146 recibe el control de una operación de base de datos, el motor de flujo de trabajo 146 puede elegir opcionalmente delegar parte o la totalidad de una operación de flujo de trabajo a un Service Broker. Después de delegar en el Service Broker, el flujo de trabajo del motor 146 puede indicar al motor de base de datos que una transacción de flujo de trabajo está pendiente o completa, lo cual a su vez permite que las transacciones de base de datos a realizar se completen, liberando de este modo todos los bloqueos de base de datos. Sin embargo, el motor de flujo de trabajo de 146 marca la transacción de flujo de trabajo como pendiente y evita que el registro de la tabla base sea cambiado a otros estados. Cuando el Service Broker completa con éxito el trabajo y notifica al motor de flujo de trabajo 146, el motor de flujo de trabajo 146 libera el bloqueo en este registro para transacciones de flujo de trabajo adicionales. Si el Service Broker no puede completar el trabajo (por ejemplo, los sistemas externos 148 son inalcanzables), el Service Broker puede esperar y volver a intentarlo. Bajo ciertas condiciones, la transacción de base de datos previamente completada (relacionada con esta transacción de base de datos-flujo de trabajo errada) puede ser revertida mediante programación a un nivel como si la transacción de base de datos inicial no tuvo lugar.
Haciendo referencia a la Figura 6, se muestra un diagrama de flujo para permitir a una base de datos para un flujo de trabajo y la creación de un proceso de flujo de trabajo, de acuerdo con una modalidad de la invención. Las operaciones comienzan en la etapa 602, donde se selecciona una base de datos para ser utilizada con un flujo de trabajo. En la etapa 604, la base de datos se comprueba para determinar si ya se ha habilitado para un flujo de trabajo. Si la base de datos ya está habilitada, se selecciona una tabla base almacenado en la base de datos para un Procedimiento en la etapa 608. Esto crea un nuevo proceso en la tabla base (por ejemplo, un Estado de Inicio 406, como se muestra en la Figura 4). El proceso se mejora entonces en la etapa 610 con los estados junto con transiciones, estados finales, condiciones, eventos, seguridad, etc. si, en la etapa 604, se determina que la base de datos no está habilitada para un flujo de trabajo, entonces en el paso 606, la capacidad de flujo de trabajo se habilita mediante la instalación del motor de flujo de trabajo 146.
Haciendo referencia a la Figura 7, se muestra un diagrama de flujo para transacciones integradas de base de datos-flujo de trabajo, de conformidad con una realización de la invención. La figura 7 es un diagrama de flujo que detalla las operaciones mostradas en la Tabla 502 de la Figura 5. El diagrama de flujo muestra las posibles transacciones integradas de base de datos-flujos de trabajo con las transacciones de base de datos iniciadas en la tabla base. El diagrama de flujo comienza con una transacción de base de datos, como en el paso 702, que es examinada por el motor de flujo de trabajo 146 para una inserción, actualización y/o una transacción de base de datos de eliminación. En la etapa 704, después de determinar que la transacción de base de datos es una transacción de inserción de registro, se determina si la transacción de base de datos cumple la condición para la creación de una instancia de flujo de trabajo. Si se cumple la condición, se crea una instancia de flujo de trabajo en el paso 708 y la transacción de inserción de registro en base de datos es señalada por el motor de flujo de trabajo 146 para continuar en el paso 710. Si no se cumple la condición, no se crea ninguna instancia de flujo de trabajo en la etapa 706, y la transacción de inserción en base de datos es señalizada por el motor de flujo de trabajo 146 para proceder en el paso 710.
En la etapa 712, después de que se determine que la transacción de base de datos es una transacción de actualización de registro, la transacción de base de datos es examinada para determinar si la actualización incluye una clave primaria del registro. Si se actualizan las claves primarias, se examina más adelante en el paso 714 para determinar si el registro tiene una instancia de flujo de trabajo. Si la instancia de flujo de trabajo existe en la clave principal, el motor de flujo de trabajo 146 señaliza al motor de base de datos para que haga que falle la transacción en el paso 716. La clave principal no puede ser actualizada ya que el motor de flujo de trabajo 146 rastrea la instancia de flujo de trabajo con la clave principal. En otra modalidad, el motor de flujo de trabajo 146 ajusta automáticamente la clave de instancia de flujo de trabajo para que coincida con la clave primaria de base de datos cambiada (no mostrada en el diagrama de flujo). Si los campos de la clave principal no se actualizan, o, si el registro no está en el flujo de trabajo, el motor de flujo de trabajo 146 señaliza la base de datos para que permita y complete la transacción de base de datos, en la etapa 718.
En la etapa 720, después de que se determina que la transacción de base de datos es una transacción de Eliminar registro, la transacción de base de datos se examina para determinar si la instancia de flujo de trabajo existe para la clave principal. Si existe, en el paso 722, el motor de flujo de trabajo 146 elimina la instancia de flujo de trabajo, seguido por una señal al motor de base de datos para completar la transacción de base de datos de borrado en el paso 724, si no existe instancia de flujo de trabajo, el motor de flujo de trabajo 146 señaliza al motor de base de datos para que complete la transacción de base de datos de eliminación en el paso 724.
Haciendo referencia a la Figura 8, se muestra un diagrama de flujo para la operación de flujo de trabajo, de acuerdo con una modalidad de la invención. La Figura 8 es un diagrama de flujo que detalla las transacciones mostradas en la Tabla 504 de la Figura 5. Este diagrama de flujo ilustra las posibles transacciones de flujo de trabajo que no son iniciadas por una transacción de base de datos en la tabla base. En la etapa 802, una instancia de flujo 804 puede ser creado utilizando un registro existente en la tabla base que no está actualmente en el flujo de trabajo. Esto puede ser posible cuando un registro de trabajo (por ejemplo, una orden) se trae de nuevo para rehacer un flujo de trabajo. A modo de ejemplo, una Orden de Cliente ejecutada incorrectamente puede ser devuelta a un flujo de trabajo para una re-ejecución. En la etapa 806, durante una transacción de inserción, el motor de flujo de trabajo 146 fluye al estado reinstalado como es definido por el usuario.
En la etapa 808, durante una transacción de actualización, la instancia de flujo de trabajo se actualiza. Al actualizar la instancia de flujo de trabajo, un estado se traslada a otro cuando un usuario o una máquina realizan una Transición. En el paso 810, el motor de flujo de trabajo 146 examina la Transición y determina si el siguiente estado es un estado Final. Si se determina que el siguiente estado es un estado Final, la instancia de flujo de trabajo se elimina en la etapa 812. La eliminación de la instancia de flujo de trabajo no tiene impacto en el registro de la tabla base de la base de datos. Los datos permanecen en la tabla base. Sin ninguna instancia de flujo de trabajo para ese registro, se señaliza que hay trabajo pendiente. Si el siguiente estado no es un estado Final, el estado actual de la instancia de flujo de trabajo se actualiza con el siguiente estado, en la etapa 814.
En la etapa 816, durante una operación de borrado, la instancia de flujo de trabajo se elimina. Al eliminar el flujo de trabajo, se remueve un registro de la tabla base.
Haciendo referencia a la Figura 9, se muestra un diagrama de flujo para los eventos en una transacción de flujo de trabajo, de acuerdo con una modalidad de la invención. En el motor de flujo de trabajo de 146, cuando una orden fluye de un estado "Orden en Curso" 408 al estado "Orden enviada" 410 a través del uso de la transición "Enviado" 418, puede ser ejecutada una pluralidad de eventos de flujo de trabajo. La transición "Envío" 418 puede ser iniciada por un usuario o una por un sistema. En los eventos de ejemplo, 922, 924, 926, los eventos representan el código de programación escrito en cualquier lenguaje de programación para ejecutar código en cualquier sistema internos o externo 148. En este flujo, puede existir un evento del tipo "al salir" 922 y ejecutarse cuando se sale del estado 408. Puede existir el tipo de evento "Al Realizar" 924 y ejecutarse cuando la transición 418 se lleva a cabo. Puede existir el tipo de evento "Al Ingresar" 926 y ejecutarse al entrar en el estado 410. A modo de ejemplo, el evento 926 se comunica 928 con el servidor de correo electrónico 940 de manera sincrónica para enviar una notificación de envío al destinatario de la orden. Cuando se realiza una transición exitosa, una instancia de flujo de trabajo deja un estado y entra en otro estado; por lo que los tres eventos de este ejemplo pueden ser ejecutados en la secuencia de 922, 924 y 926. Puede haber varios tipos de eventos que pueden ser construidos en torno a los movimientos de flujo de trabajo. Se proporciona más granularidad y contexto con muchos tipos de eventos.
Haciendo referencia a la Figura 10, se muestra un diagrama de flujo para el uso de un Service Broker con los eventos en una transacción de flujo de trabajo, de acuerdo con una modalidad de la invención. Este flujo es el mismo que el de la Figura 9, excepto que el Service Broker 1030 se utiliza como un intermediario entre el motor de flujo de trabajo 146 y servidor de correo electrónico 940. El evento 1026 es diferente al 926, respecto a que se comunica 1028 al Service Broker 1030 que reside en una base de datos 145 con un mensaje de delegado para enviar correo electrónico sin esperar a que si el mensaje es aceptado por el servidor de correo electrónico 940. El Service Broker 1030 se comunica al servidor de correo electrónico 940, recibe una respuesta del servidor de correo electrónico 940 se comunica 1034 de nuevo al motor de flujo de trabajo 146. La ventaja de este método es que si el servidor de correo electrónico está temporalmente fuera de servicio, el componente de transacción de base de datos de la transacción de base de datos-flujo de trabajo puede que no tenga que esperar. La transacción de flujo de trabajo puede que tenga que esperar hasta que el Broker a quien se envía completa el trabajo. Esto elimina cualquier desaceleración general o bloqueo del sistema con el uso de eventos de flujo de trabajo.
También debe tenerse en cuenta que se contempla que las modalidades descritas aquí pueden tener una amplia gama de aplicabilidad, no sólo para las aplicaciones descritas en detalle aquí, como sería evidente para un experto en la técnica que tenga el beneficio de esta descripción.
Las modalidades particulares descritas anteriormente son solamente ilustrativas, ya que la invención puede modificarse y practicarse de maneras diferentes pero equivalentes, aparentes para aquellos expertos en la técnica que tengan el beneficio de las enseñanzas de la presente descripción. Además, no se pretende limitar los detalles de construcción o diseño mostrados en la presente descripción, excepto como se describe en las reivindicaciones siguientes. Es por lo tanto evidente, que las modalidades particulares descritas anteriormente pueden ser alteradas o modificadas y todas estas variaciones se consideran dentro del alcance y espíritu de la invención reivindicada.
De conformidad, la protección que se solicita en la presente descripción es como se expone en las siguientes reivindicaciones.

Claims (20)

Reivindicaciones.
1. Un método implementado por computadora que comprende: asignar una estructura de datos almacenada en una base de datos a uno o más procesos de flujo de trabajo, y crear automáticamente una instancia de un proceso de flujo de trabajo en respuesta a que la estructura de datos sea provista con un nuevo registro.
2. El método implementado por computadora de la reivindicación 1 , comprendiendo adicionalmente: asignar una aplicación al uno o más procesos de flujo de trabajo, en donde la aplicación realiza operaciones en la estructura de datos.
3. El método implementado por computadora de una de las reivindicaciones precedentes, en donde la estructura de datos es una tabla base que comprende una pluralidad de filas, y en donde cada fila representa una nueva instancia de uno o más procesos de flujo de trabajo.
4. El método implementado por computadora de la reivindicación 3, en donde la estructura de datos comprende uno o más desencadenadores que actúan como puertas de enlace al motor de flujo de trabajo.
5. El método implementado por computadora de la reivindicación 4, en el que un proceso de flujo de trabajo se completa tras la activación de uno o más desencadenadores cuando se inserta, modifica o borra un registro en la estructura de datos.
6. Un medio de almacenamiento legible por computadora que incluye un programa, que cuando es ejecutado por un procesador, realiza una operación, la operación comprendiendo: asignar una estructura de datos almacenada en una base de datos comprendiendo un motor de flujo de trabajo a uno o mas procesos de flujo de trabajo; y, crear automáticamente una instancia de un proceso de flujo de trabajo a través délo motor de flujo de trabajo en respuesta a que la estructura de datos sea provista con un nuevo registro, o remover automáticamente una instancia de uno o más procesos de flujo de trabajo en respuesta a una transacción de borrar registro.
7. El medio de almacenamiento legible por computadora de la reivindicación 6, que comprende adicionalmente: asignar una aplicación a uno o más procesos de flujo de trabajo, en donde la aplicación realiza operaciones en la estructura de datos.
8. El método legible por computadora de una de las reivindicaciones 6 y 7, en donde la estructura de datos es una tabla de base que comprende una pluralidad de filas, y en donde cada fila representa una nueva instancia de uno o más procesos de flujo de trabajo.
9. El método legible por computadora de la reivindicación 8, en donde la estructura de datos comprende uno o más desencadenadores que actúan como puertas de enlace al motor de flujo de trabajo.
10. El método legible por computadora de la reivindicación 9, en donde una transacción de flujo de trabajo se completa tras la activación de uno o más desencadenadores cuando se inserta, modifica o borra un registro en la estructura de datos.
11. Un sistema, que comprende: un procesador; y una memoria que comprende una capa de base de datos, en donde la capa de base de datos comprende una capa de motor de flujo de trabajo que automáticamente sondea y controla cualquier cambio a la información en la capa de base de datos.
12. El sistema de la reivindicación 1 1 , que comprende además un programa el cual cuando es ejecutado por el procesador está configurado para realizar una operación, la operación comprendiendo:: asignar una estructura de datos almacenada en una base de datos a uno o más procesos de flujo de trabajo; y crear automáticamente una instancia de uno o más procesos de flujo de trabajo en respuesta a que la estructura de datos que sea proveída con un nuevo registro, o remover automáticamente una instancia de uno o más flujos de trabajo en respuesta a una transacción de borrar registro.
13. El sistema de una de las reivindicación 12, comprendiendo adicionalmente: asignar una aplicación al uno o más procesos de flujo de trabajo, en donde la aplicación realiza operaciones en la estructura de datos.
14. El sistema de una de las reivindicación 11 o 12, en el que la estructura de datos es una tabla base que comprende una pluralidad de filas, y en donde cada fila representa una instancia de uno o más procesos de flujo de trabajo.
15. El sistema de la reivindicación 12, en donde la estructura de datos comprende uno o más desencadenadores que actúan como puertas de enlace al motor de flujo de trabajo.
16. El sistema de la reivindicación 14, en donde la transacción de flujo de trabajo se completa tras la activación de uno o más desencadenadores cuando se inserta, modifica o borra un registro en la estructura de datos.
17. El sistema de la reivindicación 11 , en donde por lo menos una herramienta de aplicación front-end de base de datos opera sin tener conocimiento de la presencia del motor dde base de datos.
18. El sistema de la reivindicación 11 , en el que al menos uno de una aplicación y una herramienta de aplicación front-end de base de datos opera con el conocimiento del motor de flujo de trabajo con el uso de una Interfaz de Programación de Aplicaciones (API).
19. El sistema de la reivindicación 11 , en donde el motor de flujo de trabajo crea uno o más tipos de evento, en donde cada uno de los uno o más tipos de eventos representan un tipo de movimiento de flujo de trabajo, en el que cada tipo de movimiento de flujo de trabajo está asociado con uno o más elementos de flujo de trabajo, en donde cada uno de los uno o más elementos de flujo de trabajo ejecuta un código de programa asociado con al menos una o más bases de datos, proporcionando de ese modo transacciones integradas de flujo de trabajo y de base de datos.
20. El sistema de la reivindicación 19, en el que la memoria comprende además al menos uno de una Arquitectura Orientada al Servicio (SOA) o Service Broker, el cual habilita una transacción integrada de base de datos-flujo de trabajo diferido.
MX2012014165A 2010-06-04 2011-05-31 Flujo de trabajo integrado y base de datos. MX2012014165A (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US35183910P 2010-06-04 2010-06-04
US13/115,090 US10078674B2 (en) 2010-06-04 2011-05-24 Integrated workflow and database transactions
PCT/US2011/038531 WO2011153130A2 (en) 2010-06-04 2011-05-31 Integrated workflow and database transactions

Publications (1)

Publication Number Publication Date
MX2012014165A true MX2012014165A (es) 2013-09-26

Family

ID=45065269

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2012014165A MX2012014165A (es) 2010-06-04 2011-05-31 Flujo de trabajo integrado y base de datos.

Country Status (11)

Country Link
US (2) US10078674B2 (es)
EP (1) EP2577525A4 (es)
JP (1) JP2013530464A (es)
KR (1) KR101907701B1 (es)
CN (2) CN102934111A (es)
AU (2) AU2011261618A1 (es)
CA (1) CA2800821C (es)
MX (1) MX2012014165A (es)
RU (1) RU2012157753A (es)
WO (1) WO2011153130A2 (es)
ZA (1) ZA201208817B (es)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10074114B2 (en) 2010-12-13 2018-09-11 Oracle International Corporation Order management system with order change management
US20140280300A1 (en) * 2013-03-15 2014-09-18 Aktiebolaget Skf Guided data collection management system
CN103156645B (zh) * 2013-03-18 2015-04-01 飞依诺科技(苏州)有限公司 超声诊断设备的工作流自定制方法及装置
US9088562B2 (en) * 2013-09-09 2015-07-21 International Business Machines Corporation Using service request ticket for multi-factor authentication
JP2016536040A (ja) 2013-09-30 2016-11-24 ヒュイノ カンパニー リミテッド 血圧をリアルタイムでモニタリングするためのシステム
CN103577973B (zh) * 2013-11-01 2019-07-16 金蝶软件(中国)有限公司 工作流任务的处理方法及装置
CN103617066B (zh) * 2013-12-16 2016-08-24 中国农业银行股份有限公司 一种工作流引擎及其实现方法
US11580472B2 (en) * 2015-05-14 2023-02-14 Palantir Technologies Inc. Systems and methods for state machine management
US10387944B2 (en) 2015-10-07 2019-08-20 Oracle International Corporation Management of revisions on revisions of orders
CN105447680A (zh) * 2015-11-20 2016-03-30 上海携程商务有限公司 基于工作流的订单处理方法及系统
KR101996151B1 (ko) * 2017-12-13 2019-07-03 충북대학교 산학협력단 워크플로우 시스템에서의 테이블 네이밍 장치 및 방법
CN108389018B (zh) * 2018-03-02 2021-09-03 侨益物流股份有限公司 一种智能化大宗商品物流管理系统
CN108629534A (zh) * 2018-04-09 2018-10-09 侨益物流股份有限公司 一种基于bpm自动化技术的大宗商品物流管理系统
CN112840318A (zh) 2018-12-03 2021-05-25 易享信息技术有限公司 用于计算机系统的自动化操作管理
US20200211090A1 (en) * 2018-12-28 2020-07-02 Evolutive Labs Co., Ltd. Computer-implemented method, computing device and apparatus for executing workflow of processing orders
US10868751B2 (en) * 2019-01-31 2020-12-15 Saudi Arabian Oil Company Configurable system for resolving requests received from multiple client devices in a network system
CN110968408B (zh) * 2019-11-13 2023-04-07 泰康保险集团股份有限公司 一种执行流移除方法、装置、电子设备及存储介质
US11714689B2 (en) * 2020-08-18 2023-08-01 Plaid Inc. System and method for managing user interaction flows within third party applications
US11080636B1 (en) 2020-11-18 2021-08-03 Coupang Corp. Systems and method for workflow editing
KR102569415B1 (ko) * 2020-12-14 2023-08-22 주식회사 파워테스크 워크플로우 생성을 위한 서비스 플랫폼 시스템 및 워크플로우 생성 방법

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69719269T2 (de) * 1996-08-01 2003-10-30 International Business Machines Corp., Armonk Absicherung der Unteilbarkeit für eine Ansammlung von transaktionellen Arbeitsschritten in einem Arbeitsflussverwaltungssystem
US6078982A (en) * 1998-03-24 2000-06-20 Hewlett-Packard Company Pre-locking scheme for allowing consistent and concurrent workflow process execution in a workflow management system
JP2003528358A (ja) * 1998-08-24 2003-09-24 富士通株式会社 ワークフローシステムおよび方法
JP2000172770A (ja) 1998-12-07 2000-06-23 Hitachi Ltd システム間連携装置および方法
US20010046209A1 (en) * 1998-12-31 2001-11-29 David N. Glassman Database workflow for multimedia networking and voip
US7055098B2 (en) * 1999-02-19 2006-05-30 Lucent Technologies Inc. Dynamic display of data item evaluation
WO2001003037A2 (en) 1999-07-01 2001-01-11 Microsoft Corporation Workflow method and system
JP2001216143A (ja) * 2000-02-02 2001-08-10 Hitachi Ltd アプリケーション統合のための連携方法
WO2001061948A1 (en) * 2000-02-16 2001-08-23 Synhrgy Hr Technologies, Inc. Improved database access system
US7503033B2 (en) * 2000-04-28 2009-03-10 Microsoft Corporation Model for business workflow processes
US6918053B1 (en) * 2000-04-28 2005-07-12 Microsoft Corporation Compensation framework for long running transactions
US6625602B1 (en) * 2000-04-28 2003-09-23 Microsoft Corporation Method and system for hierarchical transactions and compensation
KR20010110097A (ko) 2000-06-03 2001-12-12 포만 제프리 엘 작업흐름-관리-시스템에서의 보관 방법
US20020062241A1 (en) * 2000-07-19 2002-05-23 Janet Rubio Apparatus and method for coding electronic direct marketing lists to common searchable format
US20020161840A1 (en) * 2001-02-20 2002-10-31 Willcox William J. Adapter for interfacing with a workflow engine
US6847974B2 (en) 2001-03-26 2005-01-25 Us Search.Com Inc Method and apparatus for intelligent data assimilation
US7065566B2 (en) 2001-03-30 2006-06-20 Tonic Software, Inc. System and method for business systems transactions and infrastructure management
US8412746B2 (en) 2001-05-25 2013-04-02 International Business Machines Corporation Method and system for federated querying of data sources
US7043714B2 (en) * 2001-06-28 2006-05-09 International Business Machines Corporation Method, system, and program for using objects in data stores during execution of a workflow
US7069536B2 (en) * 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US7100147B2 (en) * 2001-06-28 2006-08-29 International Business Machines Corporation Method, system, and program for generating a workflow
US7047535B2 (en) * 2001-07-30 2006-05-16 International Business Machines Corporation Method, system, and program for performing workflow related operations using an application programming interface
KR100414406B1 (ko) * 2001-08-09 2004-01-14 주식회사 핸디소프트 문서 버전 관리가 가능한 워크플로우 시스템 및 이를이용한 문서 버전 관리 방법
US7447644B2 (en) * 2001-09-12 2008-11-04 Siemens Medical Solutions Usa, Inc. System and user interface for processing healthcare related event information
US8914807B2 (en) * 2001-09-28 2014-12-16 International Business Machines Corporation Method, system, and program for generating a program capable of invoking a flow of operations
US20030074342A1 (en) * 2001-10-11 2003-04-17 Curtis Donald S. Customer information management infrastructure and methods
US7403878B2 (en) * 2001-10-18 2008-07-22 International Business Machines Corporation Using nodes for representing hyper-edges in process models
US7155720B2 (en) * 2001-10-26 2006-12-26 Hewlett-Packard Development Company, L.P. Dynamic task assignment in workflows
WO2003044718A2 (en) * 2001-11-19 2003-05-30 Delphion, Inc. Integrated intellectual asset management system and method
US20030177046A1 (en) * 2001-12-03 2003-09-18 John Socha-Leialoha Method and system for reusing components
US7519976B2 (en) * 2002-05-01 2009-04-14 Bea Systems, Inc. Collaborative business plug-in framework
US7533008B2 (en) 2002-08-19 2009-05-12 General Electric Capital Corporation System and method for simulating a discrete event process using business system data
BR0316087A (pt) * 2002-11-08 2005-09-27 Arbitration Forums Inc Sistema e um processo para sub-rogação eletrônica, gerenciamento de fluxo de trabalho de interorganização, processamento de transação de interorganização e interação com usuário baseada na web otimizada
TW200419413A (en) * 2003-01-13 2004-10-01 I2 Technologies Inc Master data management system for centrally managing core reference data associated with an enterprise
US20040216084A1 (en) * 2003-01-17 2004-10-28 Brown Albert C. System and method of managing web content
US7584474B2 (en) * 2003-02-25 2009-09-01 Bea Systems, Inc. Systems and methods for transaction chaining
US8700753B2 (en) 2003-03-28 2014-04-15 Denis L. Bagsby Distributed computer system for telecommunications operational support
EP1620830A2 (en) * 2003-05-07 2006-02-01 Sap Ag An end user oriented workflow approach including structured processing of ad hoc workflows with a collaborative process engine
US8265979B2 (en) * 2003-06-17 2012-09-11 International Business Machines Corporation Automatic generation of process models
US8782020B2 (en) * 2003-11-18 2014-07-15 Oracle International Corporation Method of and system for committing a transaction to database
US7213022B2 (en) 2004-04-29 2007-05-01 Filenet Corporation Enterprise content management network-attached system
US7472341B2 (en) * 2004-11-08 2008-12-30 International Business Machines Corporation Multi-user, multi-timed collaborative annotation
US7665093B2 (en) * 2004-12-22 2010-02-16 Microsoft Corporation Synchronization of runtime and application state via batching of workflow transactions
US7603363B2 (en) * 2005-01-05 2009-10-13 Microsoft Corporation Systems and methods for controlling transaction participation for groups of steps in a workflow
US20060206538A1 (en) * 2005-03-09 2006-09-14 Veazey Judson E System for performing log writes in a database management system
US7949551B2 (en) * 2005-04-06 2011-05-24 International Business Machines Corporation Processing of compensation scopes in workflow management systems
US8554916B2 (en) * 2005-04-11 2013-10-08 Accenture Global Services Gmbh Service delivery platform and development of new client business models
US20070156487A1 (en) 2005-12-29 2007-07-05 Microsoft Corporation Object model on workflow
JP4839088B2 (ja) 2006-01-11 2011-12-14 株式会社リコー ワークフロー管理システム
US8284423B2 (en) * 2006-04-07 2012-10-09 Ricoh Production Print Solutions LLC Customer-configurable print workflow system
CN101055639A (zh) 2006-04-14 2007-10-17 武汉群胜科技有限公司 银行信贷业务处理系统
US20080263051A1 (en) 2007-04-20 2008-10-23 Transport Labor Contract/Leasing Inc. System for management of a professional employment organization using best suited heterogeneous systems
CN101295375A (zh) 2007-04-29 2008-10-29 国际商业机器公司 工作流实现方法和系统
US7747899B2 (en) * 2007-06-26 2010-06-29 Microsoft Corporation Providing mapping fault processing
US8825713B2 (en) 2007-09-12 2014-09-02 Red Hat, Inc. BPM system portable across databases
US20090089078A1 (en) * 2007-09-28 2009-04-02 Great-Circle Technologies, Inc. Bundling of automated work flow
US10002161B2 (en) * 2008-12-03 2018-06-19 Sap Se Multithreading and concurrency control for a rule-based transaction engine
CN101714231A (zh) * 2009-11-20 2010-05-26 广东金宇恒科技有限公司 一种不基于过程模型的自由工作流管理方法及系统
US8935570B2 (en) * 2012-07-18 2015-01-13 Sungard Availability Services, Lp Automating infrastructure workflows as atomic transactions

Also Published As

Publication number Publication date
RU2012157753A (ru) 2014-07-20
AU2016203499B2 (en) 2018-05-31
CN110222106A (zh) 2019-09-10
JP2013530464A (ja) 2013-07-25
US20180357244A1 (en) 2018-12-13
WO2011153130A3 (en) 2012-03-08
AU2011261618A1 (en) 2013-01-10
KR101907701B1 (ko) 2018-12-07
CA2800821C (en) 2020-07-28
CA2800821A1 (en) 2011-12-08
US20110302132A1 (en) 2011-12-08
US10078674B2 (en) 2018-09-18
KR20130116165A (ko) 2013-10-23
CN102934111A (zh) 2013-02-13
US10565223B2 (en) 2020-02-18
AU2016203499A1 (en) 2016-06-23
ZA201208817B (en) 2014-01-29
EP2577525A2 (en) 2013-04-10
EP2577525A4 (en) 2016-12-28
WO2011153130A2 (en) 2011-12-08

Similar Documents

Publication Publication Date Title
US10565223B2 (en) Integrated workflow and database transactions
US11593072B2 (en) Compositional entity modeling systems and methods
JP4594306B2 (ja) 自己記述型ビジネスオブジェクト
US8001521B2 (en) Meta-date driven implementation of business objects and their transactional behavior
US9852382B2 (en) Dynamic human workflow task assignment using business rules
JP4571636B2 (ja) サービス指向ビジネスフレームワークのサービス管理
RU2433463C2 (ru) Динамическое перепозиционирование потока работ конечными пользователями
US8954927B2 (en) Management of objects within a meta-data repository
EP1577817A2 (en) System for capturing project time and expense data
US20100280865A1 (en) Systems and Methods for a Real-Time Workflow Platform
US9513874B2 (en) Enterprise computing platform with support for editing documents via logical views
Clark et al. Beginning C# object-oriented programming
WO2005015391A1 (en) Application management
US11468229B2 (en) Describing changes in a workflow based on changes in structured documents containing workflow metadata
Schmutz et al. Service-oriented architecture: an integration blueprint: a real-world SOA strategy for the integration of heterogeneous enterprise systems: successfully implement your own enterprise integration architecture using the trivadis integration architecture blueprint
US20110225484A1 (en) Cloud based modeling for enhancing spreadsheets
US20170116251A1 (en) System, method and computer program product for creating a visual component for tenants of an on-demand database service
Sung et al. A component-based product data management system
Zhou et al. Research and Implementation of Configurable Technology Based on SaaS