US8429527B1 - Complex data merging, such as in a workflow application - Google Patents

Complex data merging, such as in a workflow application Download PDF

Info

Publication number
US8429527B1
US8429527B1 US11/486,397 US48639706A US8429527B1 US 8429527 B1 US8429527 B1 US 8429527B1 US 48639706 A US48639706 A US 48639706A US 8429527 B1 US8429527 B1 US 8429527B1
Authority
US
United States
Prior art keywords
input
input component
sequence
workflow
facility
Prior art date
Legal status (The legal status 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 status listed.)
Active, expires
Application number
US11/486,397
Inventor
Emmanuel Arbogast
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ElringKlinger AG
Open Text SA
Original Assignee
Open Text SA
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
Priority to US11/486,397 priority Critical patent/US8429527B1/en
Application filed by Open Text SA filed Critical Open Text SA
Assigned to ELRINGKLINGER AG reassignment ELRINGKLINGER AG ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MAIER, UWE, FRITZ, WOLFGANG
Assigned to ELRINGKLINGER AG reassignment ELRINGKLINGER AG ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MAIER, UWE, FRITZ, WOLFGANG
Assigned to CAPTARIS, INC. reassignment CAPTARIS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ARBOGAST, EMMANUEL
Assigned to WELLS FARGO FOOTHILL, LLC, AS AGENT reassignment WELLS FARGO FOOTHILL, LLC, AS AGENT SECURITY AGREEMENT Assignors: CAPTARIS, INC.
Assigned to CAPTARIS, INC. reassignment CAPTARIS, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: WELLS FARGO FOOTHILL, LLC, AS AGENT
Assigned to OPEN TEXT INC. reassignment OPEN TEXT INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: CAPTARIS, INC.
Assigned to Open Text S.A. reassignment Open Text S.A. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: OPEN TEXT INC.
Assigned to Open Text S.A. reassignment Open Text S.A. CORRECTION BY DECLARATION OF INCORRECT APPL. NO. 11/468,397 PREVIOUSLY RECORDED ON R/F 018768/0216. Assignors: Open Text S.A.
Assigned to Open Text S.A. reassignment Open Text S.A. CORRECTION BY DECLARATION OF INCORRECT APPL. NO. 11/468,397, PREVIOUSLY RECORDED ON R/F 018487/0647. Assignors: Open Text S.A.
Publication of US8429527B1 publication Critical patent/US8429527B1/en
Application granted granted Critical
Assigned to IP OT SUB ULC reassignment IP OT SUB ULC CERTIFICATE OF CONTINUANCE Assignors: OT IP SUB, LLC
Assigned to OPEN TEXT SA ULC reassignment OPEN TEXT SA ULC CERTIFICATE OF AMALGAMATION Assignors: IP OT SUB ULC
Assigned to OT IP SUB, LLC reassignment OT IP SUB, LLC IP BUSINESS SALE AGREEMENT Assignors: Open Text S.A.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • 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

Definitions

  • workflow technologies are often used to manage and monitor business processes. For example, workflow technologies allow users to efficiently define and track processes that involve work spanning multiple individuals and/or departments within an organization (or even across organizations). Existing workflow technologies often allow users to automate a range of tasks, which are often dependent on large amounts of specific information. Accordingly, executing a task may involve performing functions (sometimes repeatedly) on large sets of input data.
  • tasks are created to perform a single or limited set of functions and then combined with other tasks as part of larger processes.
  • Some high-level examples of task functions include retrieving data from a data store, retrieving data from an external application, sending data to a data store, sending data to an external application, re-formatting input data to output data, transforming (computing) data from input to output, deriving new data from input data, relating multiple input streams of data with respect to each other, etc.
  • workflow tasks may be responsible for notifying employees of pending work orders. Likewise, workflow tasks may enable managers to efficiently observe status and route approvals quickly.
  • workflow technologies are generally comprised of a package of several software components that provide functionality in areas of both workflow design and workflow execution.
  • these software components sometimes include workflow diagramming functionality having a workspace or canvas used to create workflow diagrams (e.g., specify the placement of tasks and pipes, which define the sequence and flow of information between tasks in a workflow).
  • workflow diagramming functionality having a workspace or canvas used to create workflow diagrams (e.g., specify the placement of tasks and pipes, which define the sequence and flow of information between tasks in a workflow).
  • workflow diagramming functionality having a workspace or canvas used to create workflow diagrams (e.g., specify the placement of tasks and pipes, which define the sequence and flow of information between tasks in a workflow).
  • workflow diagramming functionality having a workspace or canvas used to create workflow diagrams (e.g., specify the placement of tasks and pipes, which define the sequence and flow of information between tasks in a workflow).
  • the software components of workflow technologies often allow a user to specify parameters and business rules to guide the flow of control, the flow of data
  • workflow technologies include processing capabilities that manage the flow of information along the pipes between tasks, apply business rules to direct execution path and data at pipe junctions, ensure data is passed as input to tasks, ensure user parameter metadata is provided to tasks, monitor and propagate error status of the tasks and pipes, and save and restore job context between sessions.
  • existing workflow technologies are often limited in the way that they execute tasks. For example, they typically operate by reading input data one record at a time (with each record limited to similarly shaped data), applying a task (function) to the data, and outputting modified data after performing the task, one record at a time.
  • each task within a workflow inputs, processes, and outputs a single record prior to processing a subsequent record. In such systems, scalability is achieved by invoking parallel instances of a task, although each instance still incurs the individual memory and computational overhead.
  • Some workflow systems have been designed to support data merging tools that, in executing tasks, enable the merging of different types of input data into a single output document or set of output documents.
  • data merging tools that, in executing tasks, enable the merging of different types of input data into a single output document or set of output documents.
  • such merging capabilities are typically implemented using specialized tasks that are custom-designed (e.g., using software programming techniques) for individual cases. Accordingly, for such tools to accommodate additional data types for merging, additional programming is almost always a necessity.
  • FIG. 1 is a block diagram showing an example of an environment in which a workflow facility having vector-based characteristics and/or complex data merging capabilities may be implemented.
  • FIG. 2 is a block diagram showing an example implementation of a supporting architecture for implementing some embodiments of the workflow facility.
  • FIG. 3 is a data flow/block diagram showing aspects of a vector-based workflow facility.
  • FIG. 4 is a data flow/block diagram showing aspects of assembling input data for use in a vector-based workflow facility.
  • FIG. 5 is a data flow/block diagram showing aspects of assembling output data resulting from processing in a vector-based workflow facility.
  • FIG. 6 is a data flow/block diagram illustrating an example of joining or merging data for use by a task of a workflow facility.
  • FIG. 7 is a data diagram showing an example of hierarchically related data structures that the workflow facility can merge or join.
  • FIG. 8 is a flow diagram showing an example of applying a join or merge routine at a workflow facility in association with performing a task or action.
  • FIG. 9 is a flow diagram showing an example of a routine for designing a join or merge at a workflow facility in association with defining a task or action.
  • FIGS. 10-12 are display diagrams showing views or screens of a user interface for use in designing a join or merge at a workflow facility in association with defining a task or action.
  • a software system or facility allows for the efficient creation and management of workflows and other customizable processes that define a sequence of tasks performed to reach a common goal (e.g., a common business goal).
  • the facility allows for merging a wide variety of data into a workflow application by reference to a key indicator, which is a value derived from the document schema.
  • Each of these tasks is typically dependent on information that the workflow application imports, derives, modifies, or exports.
  • a task may depend on the workflow application having the capability to intelligently merge complex data from multiple data sources for the purpose of creating new data for delivery as output.
  • the facility may allow for the definition of complex relationships between multiple documents in a workflow application through the use of complex data merging functionality.
  • the workflow facility may include one or more data transformation engines that intercept input data used in performing tasks prior to the input data being passed to one or more processing modules (e.g., adapters) that perform the actual work associated with the task.
  • processing modules e.g., adapters
  • transformation engines perform data analysis, data relationship rule application, sorting, filtering, and manipulation as needed to complete the join.
  • the output of the transformation engine may be a revised single input document having a specified shape, name, etc.
  • complex merging functionality may be used to define the relationships among items of data in multiple independent input XML documents.
  • the complex merging functionality may be used to qualify items of data and their mappings to identify how different items of data match and relate to each other.
  • the complex merging functionality may also be used to generate a single input XML document with merged information that matches a target formal input schema.
  • every task in a workflow can take advantage of the facility's merging capabilities without having to enable specially programmed tasks. In this way, opportunities to merge disparate data are greater, as no special tasks need be written to merge data once it is inputted into the system.
  • workflow designers may access the complex merging functionality via a graphical user interface in a way that does not require additional programming to enable the merge of data from multiple data sources.
  • the complex merging functionality may be configured so that it is generally applicable to any data being passed through the system, at any time, with the shape (e.g., size and configuration) of the output data determined at run-time and driven by the results of the merging process.
  • the complex merging functionality is flexible in that it can be applied to a variety of data sources (including new data sources) without the need for additional programming of the workflow facility.
  • the facility's complex merging functionality may be defined and managed at the workflow application level (as opposed the task level).
  • the workflow facility may be configured as a vector-based workflow facility that is configured to retrieve and manage a collection of records (as opposed to a single record) for processing in association with a task.
  • the workflow facility invokes a task or action, the task or action can act on a collection of records (e.g., a sequence) as opposed to a single record, thus resulting in more efficient workflow execution.
  • FIG. 1 is a block diagram showing an example of a system environment 100 in which aspects of the workflow facility can be implemented.
  • the system environment 100 may include various components, thereby allowing the workflow facility to perform various processes. Examples of such processes may include information capture processes 102 , information analysis processes 104 , information processing processes 106 , information formatting processes 108 , information delivery processes 110 , etc.
  • the workflow facility's information capture processes 102 are used to retrieve information for use by the workflow facility in performing various actions.
  • the workflow facility may capture content from various input sources 112 , which may include common business applications (e.g., systems such as Great Plains software, SAP applications, etc.). Examples of content captured from the input sources 112 include documents 114 , processes 116 , and applications 118 .
  • the workflow facility is configured to capture both content that is internal to the workflow facility and content that is external to the workflow facility.
  • the workflow facility's information analysis processes 104 are used to manage and organize captured information so that the captured information can be handled most appropriately by the workflow facility during processing. For example, in performing information analysis processes 104 , the workflow facility may identify or categorize the captured content (e.g., identify it as a purchase order, an invoice, etc.) and then associate the content with an appropriate business process. Accordingly, the information analysis processes 104 allow the workflow facility to effectively handle a wide variety of content and data. In some embodiments, the information analysis processes 104 are implemented using one or more transformation engines 134 (shown as part of a supporting architecture 132 ), which perform processing associated with data analysis, data relationship rule application, sorting, filtering, data manipulation, etc.
  • transformation engines 134 shown as part of a supporting architecture 132
  • the workflow facility's information analysis processes 104 are often followed by information processing processes 106 .
  • the processing of captured content using the information processing processes 106 may include transforming aspects of data from the captured content into HTML and extracting specific fields or areas of information to produce output data 120 into a standard format such as XML.
  • the information processing processes 106 are implemented using one or more adapters 136 (shown as part of the supporting architecture 132 ).
  • An adapter 136 may be specific to a designated function. Examples of different types of adapters 136 include adapters for data capture, adapters for report generation, and adapters for information delivery (e.g., email adapter, fax adapter, SMS adapter, etc.). In some embodiments, each adapter 136 may be hosted inside of a unique Windows service. For example, a Service Control Manager (SCM) can be used to start or stop each adapter process. Each adapter may include a unique task performer component, which provides the specialized task processing capabilities associated with each adapter 136 (e.g., generate report vs. send batch email). When more processing power is needed, a group of adapters 136 can be used to process task requests. In this case, load balancing happens between all adapters 136 in the group.
  • SCM Service Control Manager
  • output resulting from the information processing processes 106 may be formatted by one or more information formatting processes 108 .
  • the information formatting processes 108 may use a template approach to format output data so that it conforms to an external system or so that it meets fidelity and quality requirements for a particular delivery method to be used.
  • the workflow facility may rely on information delivery processes 110 that allow formatted output to be delivered to an intended recipient.
  • Such information delivery processes 110 may be associated with various delivery methods (e.g., fax, email, print, web (HTML, XML), wireless (SMS for mobile devices), etc.).
  • the information delivery processes 110 may be configured to work with technologies capable of high-volume, simultaneous multi-channel delivery, making communication with customers, partners, suppliers, and employees more personalized and cost-effective.
  • one delivery process may be associated with automatically sending out large numbers of emails or faxes in single batches.
  • delivery may include delivery to a process or even delivery to a data store.
  • the complex data merging performed by the workflow facility may rely on a combination of the processes described above ( 102 - 110 ).
  • the information capture processes 102 may be used to retrieve the information and the information analysis processes 104 may be used to organize it prior to the joining.
  • the joining/merging of the data itself may be performed by one or more of the information processing processes 106 .
  • the resulting output (including the requested merged information) may then be formatted using one or more of the information formatting processes 108 .
  • the information delivery processes 110 may be used for delivery of the output, as appropriate. Examples of different types of output data that result from the workflow facility's information processing processes 106 include documents 122 , applications 124 , and processes 126 .
  • the delivery rules engine 128 performs tasks such as data acquisition, identification, functional processing, output preparation, formatting, and delivery.
  • the delivery rules engine 128 may provide support for many of the processes associated with the workflow facility, including intelligent routing between the information capture processes 102 , the information analysis processes 104 , the information processing processes 106 , the information formatting processes 108 , and the information delivery processes 110 .
  • the design environment 130 generally serves as an interface for administrators of the workflow facility (including both software developers and individuals with more basic programming skills).
  • the design environment provides various design, management, reporting, and administration tools/functionality.
  • the features of the design environment 130 may enable developers to open an existing model, start with a blank model design canvas, or optionally use a predefined model created externally (e.g., a Visio diagram) to start development. In this way, administrators can customize the workflow facility for the needs of a particular organization.
  • the creation of a workflow model may include designing custom actions to be performed by the workflow facility, designing custom end-user interfaces, and specifying input sources 112 and output sources 120 .
  • the design environment 130 may also provide aspects of one or more end-user interfaces that are configured for users who do not have programming skills.
  • FIGS. 10-12 which relate to complex data merging, provide examples of such end-user interfaces.
  • these end-user interfaces allow users to provide simple input parameters that allow for complex data merging without otherwise having to know how to manipulate databases (e.g., via SQL commands).
  • these end-user interfaces provide dropdown menus and browsing options to make data selection as easy as possible. For more complex activities, wizards may be provided to guide users in specifying the appropriate input.
  • the underlying supporting architecture 132 provides a hardware and software framework for implementing the facility.
  • An example implementation of the supporting architecture 132 is described in more detail with respect to FIG. 2 , which is a block diagram showing various sample implementation details for the supporting architecture 132 of FIG. 1 .
  • the supporting architecture 132 may include aspects of a conventional computer 200 , which includes a processing unit 202 , a system memory 204 and a system bus 206 that couples various system components including the system memory to the processing unit.
  • the processing unit 202 may be any logic processing unit, such as one or more central processing units (CPUs), digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc.
  • CPUs central processing units
  • DSPs digital signal processors
  • ASICs application-specific integrated circuits
  • the system bus 206 can employ any known bus structures or architectures, including a memory bus with memory controller, a peripheral bus, and a local bus.
  • the system memory 204 includes random access memory (“RAM”) 208 and read-only memory (“ROM”) 210 .
  • RAM random access memory
  • ROM read-only memory
  • a basic input/output system (I/O) 212 which can form part of the ROM 210 , contains basic routines that help transfer information between elements within the computer 200 , such as during start-up.
  • the hardware elements of the input/output system 212 allow a user to enter commands and information into the computer 200 through input devices such as a keyboard, a pointing device such as a mouse, or other input devices including a microphone, joystick, game pad, scanner, etc. (all not shown).
  • serial port interface that couples to the bus 206
  • USB universal serial bus
  • other hardware devices such as a PCMCIA reader that receives a card, can be coupled to the interface.
  • PCMCIA reader that receives a card
  • a monitor or other display device is coupled to the bus 206 via a video interface, such as a video adapter.
  • the computer 200 can include other output devices, such as speakers, printers, etc.
  • the computer 200 also includes a hard disk drive 214 for reading from and writing to a hard disk (not shown), and an optical disk drive 216 and a magnetic disk drive 218 for reading from and writing to removable optical disks 220 and magnetic disks 222 , respectively.
  • the optical disk 220 can be a CD-ROM, while the magnetic disk 222 can be a magnetic floppy disk.
  • the hard disk drive 214 , optical disk drive 216 , and magnetic disk drive 218 communicate with the processing unit 202 via the bus 206 .
  • the hard disk drive 214 , optical disk drive 216 , and magnetic disk drive 218 may include interfaces or controllers (not shown) coupled between such drives and the bus 206 , as is known by those skilled in the art.
  • the drives 214 , 216 , and 218 provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for the computer 200 .
  • the depicted computer 200 employs a hard disk, optical disk 220 , and magnetic disk 222 , those skilled in the relevant art will appreciate that other types of computer-readable media that can store data accessible by a computer may be employed, such as magnetic cassettes, flash memory cards, digital video disks (“DVDs”), Bernoulli cartridges, RAMs, ROMs, smart cards, nanotechnology memory, etc.
  • Program modules can be stored in the system memory 204 , such as an operating system 224 and other application programs 226 , including various aspects of the workflow facility such as those described with respect to FIG. 1 .
  • the system memory 204 may also include a web browser 228 for permitting the computer 200 to access and exchange data with web sites in the World Wide Web of the Internet, as described below.
  • the application programs 226 including the workflow facility, may have access to one or more databases, which may be internal or external to the computer.
  • the workflow facility may have access to a workflow database 230 (which stores designed workflows/diagrams), a results database 232 (which stores results from executed workflows), and multiple input source databases 234 .
  • the computer 200 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 250 .
  • a remote computer 250 may be involved in performing a first set of tasks in a workflow and the remote computer 250 may be involved in performing a second set of tasks in the workflow.
  • the remote computer 250 offers an input source for a workflow facility hosted at the computer 200 .
  • the computer 200 may be involved in designing workflows having tasks to be performed by the remote computer 250 .
  • the remote computer 250 can be a personal computer, a server, a router, a network PC, a peer device, or other common network node, and typically includes many or all of the elements described above for the computer 200 .
  • the remote computer 250 includes a memory storage device such as a disk drive 252 .
  • the remote computer 250 is logically connected to the computer 200 under any known method of permitting computers to communicate, such as through a local area network (“LAN”) 254 or a wide area network (“WAN”) or Internet 256 .
  • LAN local area network
  • WAN wide area network
  • Internet 256 Internet
  • the computer 200 is connected to the LAN 254 through an adapter or network interface (not shown) coupled to the bus 206 .
  • the computer 200 When used in a WAN networking environment, the computer 200 often includes a modem or other device for establishing communications over the WAN/Internet 256 .
  • program modules, application programs, or data, or portions thereof can be stored in the remote computer 250 , such as in the disk drive 252 .
  • the network connections shown in FIG. 2 are only some examples of establishing communication links between computers, and other links may be used, including wireless links.
  • hardware platforms, such as the computer 200 and remote computer 250 are described herein, aspects of the invention are equally applicable to nodes on a network having corresponding resource locators to identify such nodes.
  • the workflow facility may be implemented as a vector-based workflow facility, where tasks can operate on more than one record at a time.
  • a single call to a data source retrieves a collection of records for repeatable processing, as opposed to retrieval of and individual processing of one or more single records.
  • each computation task within a workflow receives 0-N collections of records for processing as inputs at one time, and outputs 0-N records as output.
  • the vector-based workflow facility further defines tasks as being comprised of two or more distinct components (e.g., a data handling component and a data processing component).
  • a data handling component may receive collections of data as input, manage the parsing of the collection of records into a set of single records, receive metadata parameters, manage queues of processing requests, and manage multiple instances of a data processing component.
  • the data handling component manages matters of scale for the vector-based workflow facility.
  • the data processing component may perform a function on a given set of data (much like in a traditional workflow system). In this way, the data processing component does not incur the overhead of invoking multiple instances of a task. Instead, this responsibility is placed on the data handling component, which invokes multiple instances of the data processing component as needed.
  • FIG. 3 shows an example of a workflow iteration for a collection of retrieved records.
  • the facility (and more specifically the data handling component) reads in the input data one collection of records at a time. Details of an example of this process are illustrated and described with respect to FIG. 4 .
  • the facility applies a task to each record of data, prior to advancing to the next task. More specifically, the data handling component may invoke one or more instances of a data processing component to perform the task on each record in the collection.
  • the facility advances to apply the task to the next collection of records. Again, multiple instances of a data processing component may be invoked to perform this task.
  • the facility procures data output that results from performing the tasks.
  • this data output may include a collection of records (as opposed to a single record).
  • the facility iterates over additional collections of records (if there is more than one collection of records to be acted on).
  • the vector-based workflow facility supports collections and/or sequences of input data (as opposed to single records), and hence, it executes sequences of tasks for each invocation of that task. For example, while a more typical workflow system executes a task to send one email to one recipient list, the vector-based workflow facility sends a sequence of emails, each to its own recipient list. In other words, the vector-based workflow facility supports performing tasks with respect to sequences (including very large sequences). In this way, the vector-based workflow facility enables efficiencies in workflows and supports very high throughput delivery scenarios because the overhead of the workflow facility is kept to a minimum.
  • FIGS. 4 and 5 illustrate examples of actions performed by a vector-based workflow facility at run-time.
  • pre-processing occurs on input (e.g., XML input) to create a formal input document that a task may act on.
  • joining and mapping 408 may occur with respect to a sequence of input documents ( 402 , 404 , and 406 ).
  • the joining and mapping 408 may involve collecting additional input 410 from existing workflow design or input documents in a workflow design store.
  • the joining and mapping 408 may be similar to the joining and mapping described and illustrated with respect to FIGS. 6-12 .
  • the result may be a single document 414 (e.g., an XML document) that comprises one or more tasks that match the formal input schema for a data processing component or adapter 418 .
  • this process may involve the use of filters 412 that limit the tasks and task data produced (e.g., do not send an invoice to customers who are being charged less than one dollar).
  • the process may employ custom transforms 416 specified at design time that add an extensible and customizable mechanism to manipulate the task parameters prior to submission to the adapter (e.g., custom transformations may include almost any transformation or manipulation of the data that cannot be handled by either the joining itself or the filtering).
  • This data (e.g., XML data) from the formal input document 414 is broken down as job and task parameters and passed to the adapter 418 for processing. In this way, the adapter 418 has all the information it needs to perform the task passed to it.
  • the adapter is designed to be product agnostic.
  • the workflow facility may collect task and job results ( 502 , 504 , and 506 ), and reassemble these resources into a single output document reassembly 508 (e.g., an XML document).
  • the output document reassembly 508 may incorporate information from one or more workflow design files 510 .
  • not all tasks may result in the creation of output or results that are re-associated with the facility.
  • portions of the results are automatically extracted and persisted in a workflow storage system 514 .
  • a corresponding identifier may replace the actual content in the result 512 prior to storing.
  • additional data is associated with each task result even though the additional data may not be a part of the formal input or, output schema of the adapter 418 .
  • each task result may contain a unique identifier (e.g., InvoiceID) associated with the task result.
  • the additional input may be part of an input document 402 used in a join operation 408 .
  • the formal output schema for the adapter may not contain this information.
  • additional data not passed to the adapter may be recombined with the results and thus referenced at a later point in the workflow. This may be accomplished by associating the additional data with a unique identifier that will be output from the adapter in the task result.
  • FIG. 6 shows an example of complex data merging (or joining) performed by the facility to combine information from multiple input components (e.g., XML documents), each containing sequences of information conforming to a record type, commonly known as a schema (e.g., records of results from a prior task performed by the facility).
  • a first XML document 602 contains information relating to a sequence of 10,000 invoices for many customers, with each invoice in the sequence associated with its own record.
  • a second XML document 604 contains information relating to a sequence of customer records for 2,000 customers, with each customer associated with at least one customer record.
  • a generate report task 606 (a task controlled by the workflow facility) relies, at least in part, on the facility's complex data merging functionality to automatically complete its task of generating individual personalized invoices for each of the 2,000 users based on the information in the first XML document 602 and the second XML document 604 . More specifically, after determining the existence of a parent/child relationship between the two XML documents, the complex data merging functionality identifies relationships between invoice records associated with the first XML document and customer records associated with the second XML document. For example, each invoice record associated with the first XML document 602 (in this example, the parent document) contains a customer ID field as a foreign key. The complex data merging functionality identifies and collects information for all the records with foreign key relationships and then matches each foreign key to a corresponding primary key from the customer records associated with the second XML document 604 to produce output 608 for delivery.
  • parent/child relationships provides flexibility and allows the complex data merging functionality to be used in cases involving merging more than two input components (e.g., XML documents).
  • the parent XML document may control the size and shape of the output. For example, in the illustrated embodiment of FIG. 6 , if the parent XML document is the first XML document 602 (relating to invoice records), then the merged data output 608 would be the length of the invoice sequence (e.g., 10,000 personalized invoices generated, with one customer record per invoice record).
  • the merged data output 608 would be the length of the customer sequence (e.g., 2,000 personalized invoices generated, with at least some of the personalized invoices associated with more than one invoice record per customer).
  • Table A shows an example of an XML schema for the two XML documents ( 602 and 604 ) depicted in the embodiment of FIG. 6 .
  • Table A is derived from the XML schema and record types for each document. Each column conforms to a specific record type derived from the XML schema for each document. In this example, ⁇ invoices> and ⁇ users> are the record types, respectively.
  • Table B illustrates the resultant XML output schema from the task 606 of FIG. 6 .
  • the left-hand column of the table shows the output schema when the customer XML information/document 604 is the parent document and the right-hand column of the table shows the output schema when the invoices XML information/document 602 is the parent.
  • InvoiceData and UserData are the contents of the ⁇ invoice> and ⁇ user> elements, respectively. Such contents may themselves be elements or text, depending on the hierarchy described by the schema.
  • Invoice is the parent record: ⁇ user> ⁇ invoice> InvoiceData UserData InvoiceData ⁇ /invoice> . . . ⁇ invoice> ⁇ /user> UserData ⁇ user> ⁇ /invoice> . . . . . ⁇ /user> . . .
  • the relationships among the input components having contents to be merged are identified with a single root/parent document that defines a top level sequence.
  • all subsequent documents participating in the merge are directly or indirectly children of the parent.
  • the children may define their relationships with only their closest parent, as illustrated in FIG. 7 .
  • Multiple children may share the same parent, but a child does not have a direct relationship with a grandparent.
  • the customer information of the previous example includes a city ID
  • the city information is obtained from another XML document with city records 702 (also having a city ID field).
  • the joining of this information may be independent of the joining of the invoice information 602 with the customer information 604 .
  • Table D shows an XML example of two input documents that have been joined.
  • FIG. 8 is a flow diagram showing an example of a routine 800 for applying/executing a merge/join.
  • the routine 800 may invoke various processes associated with the workflow facility, such as information capture processes 102 , information analysis processes 104 , information processing processes 106 , information formatting processes 108 , and information delivery processes 110 (each described in more detail with respect to FIG. 1 ).
  • the routine 800 initiates a task or action for which a join of data is imposed. This task or action may be initiated by the request of a user (e.g., through an end-user interface). For example, the task or action may be selected from a list of available tasks or actions.
  • the routine 800 retrieves a first input component for the join.
  • the first input component may be specified by a user via an end-user interface.
  • An example of such an interface is depicted in FIG. 11A .
  • the routine 800 retrieves a next input component for the join (assuming there is more than one input component). As with the first input component, this next input component may be specified by the user via the end-user interface.
  • the end-user interface is such that programming skills are not needed to specify the input components.
  • the routine 800 determines the child/parent status of each of the retrieved inputs. As with the input components, the child/parent status of each of the retrieved inputs may be specified by the user via the end-user interface without the need for programming actions (see, e.g., FIGS. 11A and 11B ).
  • the routine 800 identifies a controlling input component based on the child/parent status of each of the retrieved inputs. This controlling input component determines the shape, size, and/or format of any resulting data outputs.
  • the routine 800 identifies any relevant keys/identifiers for the retrieved input components.
  • keys/identifiers may be specified by the user for each input component and, in most cases, represent a common data field between the first component and the next component (which may or may not share a common field name).
  • the keys/identifiers may be represented by either element data or attribute data and may have few, if any, limitations on the type of data that each key/identifier represents.
  • the relevant key/identifier may be a UserID primary key, and for the next input component, the relevant key/identifier may be a UserID foreign key.
  • the routine 800 determines if there are additional input components needed.
  • routine 800 loops back to block 803 to retrieve the next input component. Otherwise, the routine 800 proceeds to block 808 to perform matching based on the identified keys/indicators. As described with respect to FIG. 1 , this matching involves invoking one or more processes associated with the workflow facility, such as information analysis processes 104 , information processing processes 106 , and information formatting processes 108 . As a result of the matching, an output may be produced, such as a single merged document. Producing this output may involve invoking, for example, the information formatting processes 108 of FIG. 1 . The routine 800 then ends.
  • this matching involves invoking one or more processes associated with the workflow facility, such as information analysis processes 104 , information processing processes 106 , and information formatting processes 108 .
  • an output may be produced, such as a single merged document. Producing this output may involve invoking, for example, the information formatting processes 108 of FIG. 1 .
  • the routine 800 then ends.
  • FIGS. 9-12 provide an illustration of the processes and user interfaces involved in implementing workflows having tasks that rely on complex data merging capabilities.
  • workflow designers may access the complex merging capabilities via a graphical user interface in a way that does not require additional programming to enable the merge of data from multiple data sources.
  • the complex merging functionality may be configured so that it is generally applicable to any data being passed through the system, at any time, with the shape (e.g., size and configuration) of the output data determined at run-time and driven by the results of the merging process.
  • the complex merging capabilities are flexible in that they can be applied to a variety of data sources (including new data sources) without the need for additional programming of the workflow facility.
  • FIG. 9 is a flow diagram showing an example of a routine 900 for defining a merge/join in a workflow design, without requiring that the workflow designer write special code.
  • the routine 900 receives a task selection from a designer.
  • the task may be a “Send Batch E-mail” task.
  • the routine 900 receives an indication that the task requires a joining or merging of data.
  • An example of a screen for inputting such an indication is the screen 1000 of FIG. 10 . More specifically, from the screen 1000 of FIG. 10 , the user can select to edit or delete an existing join function (not shown) or create a new join function by selecting a NEW button 1002 .
  • the routine 900 displays a define data join screen so that the user may input information about the join or merge.
  • Examples of define data join screens 1100 and 1150 are illustrated in FIGS. 11A and 11B . Such define data join screens may be accessed, for example, by clicking the NEW button 1002 of FIG. 10 .
  • FIG. 11B also includes a DEFINED JOINS list box 1152 . If available, highlighting an item listed in the DEFINED JOINS list box 1152 populates the fields at the right side of the define data join screen 1150 with that item's settings.
  • the routine 900 receives definition information for a parent input component.
  • the routine 900 receives definition information for at least one child input component.
  • receiving the definition information for a parent input component may include receiving an indication of any relevant data keys in addition to receiving document identifiers. Providing the received definition information does not require that the user perform programming activities.
  • FIG. 11A shows an example of fields that allow a user to input such information, including a PARENT DOCUMENT field 1102 , a PARENT KEY field 1104 , a CHILD DOCUMENT field 1106 , and a CHILD KEY field 1108 .
  • receiving the definition information for a parent input component may include receiving an indication of any relevant data keys in addition to receiving document identifiers. Providing the received definition information does not require that the user perform programming activities.
  • FIG. 11A shows an example of fields that allow a user to input such information, including a PARENT DOCUMENT field 1102 , a PARENT KEY field 1104 , a CHILD DOCUMENT field 1106 , and a CHILD KEY field 1108 .
  • 11B shows an example of similar fields, including an ENTER A DESCRIPTION FOR THIS JOIN field 1154 , an ENTER THE PARENT (CONTROLLING) DOCUMENT field 1156 , an ENTER THE CHILD (CONTROLLED) DOCUMENT field 1158 , an ENTER THE PARENT (FOREIGN) KEY field 1160 , and an ENTER THE CHILD (PRIMARY) KEY field 1162 .
  • buttons 11B displays various buttons including a WIZARD button 1164 (launches a wizard that helps a user define a join), a NEW button 1165 (inserts a new blank join in the list and highlights it so settings can be filled in and saved), a DELETE button 1166 (deletes the selected join in the DEFINED JOINS list box 1152 ), a SAVE button 1168 (saves the join in the DEFINED JOINS list box 1152 and/or updates the join that has been selected), a DATA BROWSER BUTTON 1170 (launches a browse box), an OK button 1172 (saves settings and closes define data join screen 1150 ), and a CANCEL button 1174 (aborts setting changes and closes define data join screen 1150 ).
  • a WIZARD button 1164 launches a wizard that helps a user define a join
  • a NEW button 1165 inserts a new blank join in the list and highlights it so settings can be filled in and saved
  • the routine 900 displays a dialog input mapping screen, through which it receives information that allows it to map data values to input fields and select corresponding joins without the need for user programming (block 907 ).
  • a dialog input mapping screen An example of such a screen 1200 is shown in FIG. 12 .
  • the dialog input mapping screen 1200 provided by the workflow facility provides an alternative and comprehensive interface for quickly specifying, viewing, referencing, and/or accessing information relating to data fields, values, and/or joins.
  • dialog input mapping screen 1200 may offer data input functionality so that, for example, a user may input missing fields or modify previously inputted fields.
  • a previously defined join which has been saved for future use, may be quickly selected/specified using the dialog input mapping functionality. In this way, the user is saved from the hassle of having to redefine a recurring join over and over again.
  • the information from the fields displayed on the dialog input mapping screen 1200 will eventually be used by one or more processing modules (e.g., adapter modules) to perform the underlying task (e.g., send batch email).
  • processing modules e.g., adapter modules
  • the ability to identify and merge data that have common attributes, as described herein, can be tied to the use of specific resources in the computing environment as well.
  • Another embodiment or application of the vector-based workflow facility described herein would be its use in conjunction with a simulation engine.
  • the simulation engine may analyze a workflow application's overhead and/or identify potential run-time bottlenecks resulting from anticipated data handling.
  • the simulation engine may then use the results of the analysis to set a threshold value or otherwise suggest the need for the use of vector-based operations to enhance system performance with workflow applications that are used to handle large volumes of documents or that perform operations on complex XML schema.

Abstract

Merging data for use in a workflow application may include providing a user interface that facilitates collecting information from a user such as an indication of a first document and a second document that each include multiple records, a selection of a key indicator field common to both documents, and some indication of which of the two documents is a controlling document. Without the need for the user providing programming instructions, the workflow application joins information from both documents by identifying whether any of the records from the non-controlling document has a key indicator value that matches the key value of a select record from the controlling document. Based on this identifying, the workflow application dynamically generates a merged document which it can then use to perform one or more actions.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority to U.S. Provisional Patent Application No. 60/698,678 filed Jul. 12, 2005, entitled “COMPLEX DATA MERGING, SUCH AS IN A VECTOR-BASED WORKFLOW APPLICATION,” and U.S. Provisional Patent Application No. 60/698,700, filed Jul. 12, 2005, entitled “WORKFLOW SYSTEMS.”
BACKGROUND
Workflow technologies are often used to manage and monitor business processes. For example, workflow technologies allow users to efficiently define and track processes that involve work spanning multiple individuals and/or departments within an organization (or even across organizations). Existing workflow technologies often allow users to automate a range of tasks, which are often dependent on large amounts of specific information. Accordingly, executing a task may involve performing functions (sometimes repeatedly) on large sets of input data.
In general, tasks are created to perform a single or limited set of functions and then combined with other tasks as part of larger processes. Some high-level examples of task functions include retrieving data from a data store, retrieving data from an external application, sending data to a data store, sending data to an external application, re-formatting input data to output data, transforming (computing) data from input to output, deriving new data from input data, relating multiple input streams of data with respect to each other, etc. As a practical example, workflow tasks may be responsible for notifying employees of pending work orders. Likewise, workflow tasks may enable managers to efficiently observe status and route approvals quickly.
Because the demand for workflow technology is high, there are many types of workflow technologies on the market. Most workflow technologies are generally comprised of a package of several software components that provide functionality in areas of both workflow design and workflow execution. In terms of workflow design, these software components sometimes include workflow diagramming functionality having a workspace or canvas used to create workflow diagrams (e.g., specify the placement of tasks and pipes, which define the sequence and flow of information between tasks in a workflow). In facilitating workflow design, the software components of workflow technologies often allow a user to specify parameters and business rules to guide the flow of control, the flow of data, and the functions of tasks. In addition to facilitating the design of workflows, the software components of typical workflow technologies also facilitate the initiation, evaluation, and review of workflows.
In terms of executing workflows, typical workflow technologies include processing capabilities that manage the flow of information along the pipes between tasks, apply business rules to direct execution path and data at pipe junctions, ensure data is passed as input to tasks, ensure user parameter metadata is provided to tasks, monitor and propagate error status of the tasks and pipes, and save and restore job context between sessions. However, existing workflow technologies are often limited in the way that they execute tasks. For example, they typically operate by reading input data one record at a time (with each record limited to similarly shaped data), applying a task (function) to the data, and outputting modified data after performing the task, one record at a time. In other words, in most workflow systems, each task within a workflow inputs, processes, and outputs a single record prior to processing a subsequent record. In such systems, scalability is achieved by invoking parallel instances of a task, although each instance still incurs the individual memory and computational overhead.
Some workflow systems have been designed to support data merging tools that, in executing tasks, enable the merging of different types of input data into a single output document or set of output documents. However, because there are so many different types of data that any given workflow system may need to handle, such merging capabilities are typically implemented using specialized tasks that are custom-designed (e.g., using software programming techniques) for individual cases. Accordingly, for such tools to accommodate additional data types for merging, additional programming is almost always a necessity.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram showing an example of an environment in which a workflow facility having vector-based characteristics and/or complex data merging capabilities may be implemented.
FIG. 2 is a block diagram showing an example implementation of a supporting architecture for implementing some embodiments of the workflow facility.
FIG. 3 is a data flow/block diagram showing aspects of a vector-based workflow facility.
FIG. 4 is a data flow/block diagram showing aspects of assembling input data for use in a vector-based workflow facility.
FIG. 5 is a data flow/block diagram showing aspects of assembling output data resulting from processing in a vector-based workflow facility.
FIG. 6 is a data flow/block diagram illustrating an example of joining or merging data for use by a task of a workflow facility.
FIG. 7 is a data diagram showing an example of hierarchically related data structures that the workflow facility can merge or join.
FIG. 8 is a flow diagram showing an example of applying a join or merge routine at a workflow facility in association with performing a task or action.
FIG. 9 is a flow diagram showing an example of a routine for designing a join or merge at a workflow facility in association with defining a task or action.
FIGS. 10-12 are display diagrams showing views or screens of a user interface for use in designing a join or merge at a workflow facility in association with defining a task or action.
In the drawings, the same reference numbers identify identical or substantially similar elements or acts. To facilitate the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced (e.g., element 204 is first introduced and discussed with respect to FIG. 2).
A portion of this disclosure contains material to which a claim for copyright is made. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or patent disclosure (including Figures), as it appears in the Patent and Trademark Office patent file or records, but reserves all other copyright rights whatsoever.
DETAILED DESCRIPTION I. Overview
As described in greater detail below, a software system or facility allows for the efficient creation and management of workflows and other customizable processes that define a sequence of tasks performed to reach a common goal (e.g., a common business goal). In general, the facility allows for merging a wide variety of data into a workflow application by reference to a key indicator, which is a value derived from the document schema. Each of these tasks is typically dependent on information that the workflow application imports, derives, modifies, or exports. For example, a task may depend on the workflow application having the capability to intelligently merge complex data from multiple data sources for the purpose of creating new data for delivery as output. Accordingly, the facility may allow for the definition of complex relationships between multiple documents in a workflow application through the use of complex data merging functionality. This complex data merging functionality is integrated into the infrastructure of the workflow application architecture. For example, the workflow facility may include one or more data transformation engines that intercept input data used in performing tasks prior to the input data being passed to one or more processing modules (e.g., adapters) that perform the actual work associated with the task. In some cases, to implement a hierarchical join, such transformation engines perform data analysis, data relationship rule application, sorting, filtering, and manipulation as needed to complete the join. The output of the transformation engine may be a revised single input document having a specified shape, name, etc.
For example, complex merging functionality may be used to define the relationships among items of data in multiple independent input XML documents. In another example, the complex merging functionality may be used to qualify items of data and their mappings to identify how different items of data match and relate to each other. In various cases, the complex merging functionality may also be used to generate a single input XML document with merged information that matches a target formal input schema.
In some embodiments, every task in a workflow can take advantage of the facility's merging capabilities without having to enable specially programmed tasks. In this way, opportunities to merge disparate data are greater, as no special tasks need be written to merge data once it is inputted into the system.
In some embodiments, when creating new workflows, workflow designers may access the complex merging functionality via a graphical user interface in a way that does not require additional programming to enable the merge of data from multiple data sources. Moreover, the complex merging functionality may be configured so that it is generally applicable to any data being passed through the system, at any time, with the shape (e.g., size and configuration) of the output data determined at run-time and driven by the results of the merging process. Thus, the complex merging functionality is flexible in that it can be applied to a variety of data sources (including new data sources) without the need for additional programming of the workflow facility. In some embodiments, the facility's complex merging functionality may be defined and managed at the workflow application level (as opposed the task level).
In addition to including functionality for complex data merging, the workflow facility may be configured as a vector-based workflow facility that is configured to retrieve and manage a collection of records (as opposed to a single record) for processing in association with a task. In other words, each time the workflow facility invokes a task or action, the task or action can act on a collection of records (e.g., a sequence) as opposed to a single record, thus resulting in more efficient workflow execution.
II. Example System Architecture
FIG. 1 is a block diagram showing an example of a system environment 100 in which aspects of the workflow facility can be implemented. The system environment 100 may include various components, thereby allowing the workflow facility to perform various processes. Examples of such processes may include information capture processes 102, information analysis processes 104, information processing processes 106, information formatting processes 108, information delivery processes 110, etc.
The workflow facility's information capture processes 102 are used to retrieve information for use by the workflow facility in performing various actions. In performing information capture processes 102, the workflow facility may capture content from various input sources 112, which may include common business applications (e.g., systems such as Great Plains software, SAP applications, etc.). Examples of content captured from the input sources 112 include documents 114, processes 116, and applications 118. In general, the workflow facility is configured to capture both content that is internal to the workflow facility and content that is external to the workflow facility.
The workflow facility's information analysis processes 104 are used to manage and organize captured information so that the captured information can be handled most appropriately by the workflow facility during processing. For example, in performing information analysis processes 104, the workflow facility may identify or categorize the captured content (e.g., identify it as a purchase order, an invoice, etc.) and then associate the content with an appropriate business process. Accordingly, the information analysis processes 104 allow the workflow facility to effectively handle a wide variety of content and data. In some embodiments, the information analysis processes 104 are implemented using one or more transformation engines 134 (shown as part of a supporting architecture 132), which perform processing associated with data analysis, data relationship rule application, sorting, filtering, data manipulation, etc.
The workflow facility's information analysis processes 104 are often followed by information processing processes 106. The processing of captured content using the information processing processes 106 may include transforming aspects of data from the captured content into HTML and extracting specific fields or areas of information to produce output data 120 into a standard format such as XML. In some embodiments, the information processing processes 106 are implemented using one or more adapters 136 (shown as part of the supporting architecture 132).
An adapter 136 may be specific to a designated function. Examples of different types of adapters 136 include adapters for data capture, adapters for report generation, and adapters for information delivery (e.g., email adapter, fax adapter, SMS adapter, etc.). In some embodiments, each adapter 136 may be hosted inside of a unique Windows service. For example, a Service Control Manager (SCM) can be used to start or stop each adapter process. Each adapter may include a unique task performer component, which provides the specialized task processing capabilities associated with each adapter 136 (e.g., generate report vs. send batch email). When more processing power is needed, a group of adapters 136 can be used to process task requests. In this case, load balancing happens between all adapters 136 in the group.
To allow delivery of different types of output to different types of systems, output resulting from the information processing processes 106 may be formatted by one or more information formatting processes 108. For example, the information formatting processes 108 may use a template approach to format output data so that it conforms to an external system or so that it meets fidelity and quality requirements for a particular delivery method to be used.
The workflow facility may rely on information delivery processes 110 that allow formatted output to be delivered to an intended recipient. Such information delivery processes 110 may be associated with various delivery methods (e.g., fax, email, print, web (HTML, XML), wireless (SMS for mobile devices), etc.). The information delivery processes 110 may be configured to work with technologies capable of high-volume, simultaneous multi-channel delivery, making communication with customers, partners, suppliers, and employees more personalized and cost-effective. For example, one delivery process may be associated with automatically sending out large numbers of emails or faxes in single batches. In some embodiments, delivery may include delivery to a process or even delivery to a data store.
The complex data merging performed by the workflow facility, which is described in more detail with respect to FIGS. 6-12, may rely on a combination of the processes described above (102-110). For example, after a user specifies documents having data to be merged, the information capture processes 102 may be used to retrieve the information and the information analysis processes 104 may be used to organize it prior to the joining. The joining/merging of the data itself may be performed by one or more of the information processing processes 106. The resulting output (including the requested merged information) may then be formatted using one or more of the information formatting processes 108. Finally, the information delivery processes 110 may be used for delivery of the output, as appropriate. Examples of different types of output data that result from the workflow facility's information processing processes 106 include documents 122, applications 124, and processes 126.
The various components that make up the workflow facility and enable it to perform various processes, including the processes described above (102-110), include a delivery rules engine 128, a design environment 130, and various aspects of the supporting architecture 132. For example, the delivery rules engine 128 performs tasks such as data acquisition, identification, functional processing, output preparation, formatting, and delivery. Accordingly, the delivery rules engine 128 may provide support for many of the processes associated with the workflow facility, including intelligent routing between the information capture processes 102, the information analysis processes 104, the information processing processes 106, the information formatting processes 108, and the information delivery processes 110.
The design environment 130 generally serves as an interface for administrators of the workflow facility (including both software developers and individuals with more basic programming skills). For example, the design environment provides various design, management, reporting, and administration tools/functionality. The features of the design environment 130 may enable developers to open an existing model, start with a blank model design canvas, or optionally use a predefined model created externally (e.g., a Visio diagram) to start development. In this way, administrators can customize the workflow facility for the needs of a particular organization. The creation of a workflow model may include designing custom actions to be performed by the workflow facility, designing custom end-user interfaces, and specifying input sources 112 and output sources 120. The design environment 130 may also provide aspects of one or more end-user interfaces that are configured for users who do not have programming skills. FIGS. 10-12, which relate to complex data merging, provide examples of such end-user interfaces. In particular, these end-user interfaces allow users to provide simple input parameters that allow for complex data merging without otherwise having to know how to manipulate databases (e.g., via SQL commands). In many cases, these end-user interfaces provide dropdown menus and browsing options to make data selection as easy as possible. For more complex activities, wizards may be provided to guide users in specifying the appropriate input.
The underlying supporting architecture 132 provides a hardware and software framework for implementing the facility. An example implementation of the supporting architecture 132 is described in more detail with respect to FIG. 2, which is a block diagram showing various sample implementation details for the supporting architecture 132 of FIG. 1. The supporting architecture 132 may include aspects of a conventional computer 200, which includes a processing unit 202, a system memory 204 and a system bus 206 that couples various system components including the system memory to the processing unit. The processing unit 202 may be any logic processing unit, such as one or more central processing units (CPUs), digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. Unless described otherwise, the construction and operation of the various blocks shown in FIG. 2 are of conventional design. As a result, such blocks need not be described in further detail herein, as they will be readily understood by those skilled in the relevant art.
The system bus 206 can employ any known bus structures or architectures, including a memory bus with memory controller, a peripheral bus, and a local bus. The system memory 204 includes random access memory (“RAM”) 208 and read-only memory (“ROM”) 210. A basic input/output system (I/O) 212, which can form part of the ROM 210, contains basic routines that help transfer information between elements within the computer 200, such as during start-up. The hardware elements of the input/output system 212 allow a user to enter commands and information into the computer 200 through input devices such as a keyboard, a pointing device such as a mouse, or other input devices including a microphone, joystick, game pad, scanner, etc. (all not shown). These and other input devices are connected to the processing unit 202 through an interface such as a serial port interface that couples to the bus 206, although other interfaces such as a parallel port, game port, or universal serial bus (“USB”) can be used. For example, other hardware devices, such as a PCMCIA reader that receives a card, can be coupled to the interface. A monitor or other display device is coupled to the bus 206 via a video interface, such as a video adapter. The computer 200 can include other output devices, such as speakers, printers, etc.
The computer 200 also includes a hard disk drive 214 for reading from and writing to a hard disk (not shown), and an optical disk drive 216 and a magnetic disk drive 218 for reading from and writing to removable optical disks 220 and magnetic disks 222, respectively. The optical disk 220 can be a CD-ROM, while the magnetic disk 222 can be a magnetic floppy disk. The hard disk drive 214, optical disk drive 216, and magnetic disk drive 218 communicate with the processing unit 202 via the bus 206. The hard disk drive 214, optical disk drive 216, and magnetic disk drive 218 may include interfaces or controllers (not shown) coupled between such drives and the bus 206, as is known by those skilled in the art. The drives 214, 216, and 218, and their associated computer-readable media, provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for the computer 200. Although the depicted computer 200 employs a hard disk, optical disk 220, and magnetic disk 222, those skilled in the relevant art will appreciate that other types of computer-readable media that can store data accessible by a computer may be employed, such as magnetic cassettes, flash memory cards, digital video disks (“DVDs”), Bernoulli cartridges, RAMs, ROMs, smart cards, nanotechnology memory, etc.
Program modules can be stored in the system memory 204, such as an operating system 224 and other application programs 226, including various aspects of the workflow facility such as those described with respect to FIG. 1. The system memory 204 may also include a web browser 228 for permitting the computer 200 to access and exchange data with web sites in the World Wide Web of the Internet, as described below. The application programs 226, including the workflow facility, may have access to one or more databases, which may be internal or external to the computer. For example, the workflow facility may have access to a workflow database 230 (which stores designed workflows/diagrams), a results database 232 (which stores results from executed workflows), and multiple input source databases 234.
The computer 200 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 250. For example, the computer 200 may be involved in performing a first set of tasks in a workflow and the remote computer 250 may be involved in performing a second set of tasks in the workflow. In another example, the remote computer 250 offers an input source for a workflow facility hosted at the computer 200. Likewise, the computer 200 may be involved in designing workflows having tasks to be performed by the remote computer 250. Like the computer 200, the remote computer 250 can be a personal computer, a server, a router, a network PC, a peer device, or other common network node, and typically includes many or all of the elements described above for the computer 200. Typically, the remote computer 250 includes a memory storage device such as a disk drive 252. The remote computer 250 is logically connected to the computer 200 under any known method of permitting computers to communicate, such as through a local area network (“LAN”) 254 or a wide area network (“WAN”) or Internet 256. Such networking environments are well known in offices, enterprise-wide computer networks, intranets, and the Internet.
In a LAN networking environment, the computer 200 is connected to the LAN 254 through an adapter or network interface (not shown) coupled to the bus 206. When used in a WAN networking environment, the computer 200 often includes a modem or other device for establishing communications over the WAN/Internet 256. In a networked environment, program modules, application programs, or data, or portions thereof, can be stored in the remote computer 250, such as in the disk drive 252. Those skilled in the relevant art will readily recognize that the network connections shown in FIG. 2 are only some examples of establishing communication links between computers, and other links may be used, including wireless links. In general, while hardware platforms, such as the computer 200 and remote computer 250, are described herein, aspects of the invention are equally applicable to nodes on a network having corresponding resource locators to identify such nodes.
III. Vector-Based Workflow System
The workflow facility may be implemented as a vector-based workflow facility, where tasks can operate on more than one record at a time. For example, in a vector-based workflow facility, a single call to a data source retrieves a collection of records for repeatable processing, as opposed to retrieval of and individual processing of one or more single records. In this way, each computation task within a workflow receives 0-N collections of records for processing as inputs at one time, and outputs 0-N records as output.
In some embodiments, the vector-based workflow facility further defines tasks as being comprised of two or more distinct components (e.g., a data handling component and a data processing component). For example, a data handling component may receive collections of data as input, manage the parsing of the collection of records into a set of single records, receive metadata parameters, manage queues of processing requests, and manage multiple instances of a data processing component. Thus, in general, the data handling component manages matters of scale for the vector-based workflow facility. On the other hand, the data processing component may perform a function on a given set of data (much like in a traditional workflow system). In this way, the data processing component does not incur the overhead of invoking multiple instances of a task. Instead, this responsibility is placed on the data handling component, which invokes multiple instances of the data processing component as needed.
FIG. 3 shows an example of a workflow iteration for a collection of retrieved records. At block 301, the facility (and more specifically the data handling component) reads in the input data one collection of records at a time. Details of an example of this process are illustrated and described with respect to FIG. 4. At block 302, the facility applies a task to each record of data, prior to advancing to the next task. More specifically, the data handling component may invoke one or more instances of a data processing component to perform the task on each record in the collection. At block 303, the facility advances to apply the task to the next collection of records. Again, multiple instances of a data processing component may be invoked to perform this task. At block 304, the facility procures data output that results from performing the tasks. Details of an example of this process are illustrated and described with respect to FIG. 5. Like the data input, this data output may include a collection of records (as opposed to a single record). At block 305, the facility iterates over additional collections of records (if there is more than one collection of records to be acted on).
As demonstrated in the above example, the vector-based workflow facility supports collections and/or sequences of input data (as opposed to single records), and hence, it executes sequences of tasks for each invocation of that task. For example, while a more typical workflow system executes a task to send one email to one recipient list, the vector-based workflow facility sends a sequence of emails, each to its own recipient list. In other words, the vector-based workflow facility supports performing tasks with respect to sequences (including very large sequences). In this way, the vector-based workflow facility enables efficiencies in workflows and supports very high throughput delivery scenarios because the overhead of the workflow facility is kept to a minimum.
Support for invoking tasks on collections or sequences of information in custom actions (e.g., tasks or actions that have been created by a designer by specifying the location of input files and extraction scripts and templates) introduces some complexity in workflow design because a designer provides additional information to describe how to combine information coming from multiple disparate sources in a workflow design database, like joins, additional inputs, filters, or custom transforms.
FIGS. 4 and 5 illustrate examples of actions performed by a vector-based workflow facility at run-time. For example, as illustrated in FIG. 4, in some embodiments, pre-processing occurs on input (e.g., XML input) to create a formal input document that a task may act on. More specifically, joining and mapping 408 may occur with respect to a sequence of input documents (402, 404, and 406). The joining and mapping 408 may involve collecting additional input 410 from existing workflow design or input documents in a workflow design store. In some embodiments, the joining and mapping 408 may be similar to the joining and mapping described and illustrated with respect to FIGS. 6-12. The result may be a single document 414 (e.g., an XML document) that comprises one or more tasks that match the formal input schema for a data processing component or adapter 418. In addition to joining and mapping, this process may involve the use of filters 412 that limit the tasks and task data produced (e.g., do not send an invoice to customers who are being charged less than one dollar). Additionally or alternatively, the process may employ custom transforms 416 specified at design time that add an extensible and customizable mechanism to manipulate the task parameters prior to submission to the adapter (e.g., custom transformations may include almost any transformation or manipulation of the data that cannot be handled by either the joining itself or the filtering). This data (e.g., XML data) from the formal input document 414 is broken down as job and task parameters and passed to the adapter 418 for processing. In this way, the adapter 418 has all the information it needs to perform the task passed to it. In some embodiments, the adapter is designed to be product agnostic.
As illustrated in FIG. 5, after processing by the adapter 418, the workflow facility may collect task and job results (502, 504, and 506), and reassemble these resources into a single output document reassembly 508 (e.g., an XML document). In some cases, the output document reassembly 508 may incorporate information from one or more workflow design files 510. As discussed above with respect to FIG. 3, in some embodiments, not all tasks may result in the creation of output or results that are re-associated with the facility. However, in the illustrated embodiment, portions of the results are automatically extracted and persisted in a workflow storage system 514. A corresponding identifier may replace the actual content in the result 512 prior to storing.
In some instances, additional data is associated with each task result even though the additional data may not be a part of the formal input or, output schema of the adapter 418. For example, it may be desirable that each task result contain a unique identifier (e.g., InvoiceID) associated with the task result. The additional input may be part of an input document 402 used in a join operation 408. However, the formal output schema for the adapter may not contain this information. As part of the document reassembly 508, additional data not passed to the adapter may be recombined with the results and thus referenced at a later point in the workflow. This may be accomplished by associating the additional data with a unique identifier that will be output from the adapter in the task result.
Additional details associated with a vector-based workflow facility are described in commonly owned U.S. patent application Ser. No. 11/486,398, filed Jul. 12, 2006, entitled “VECTOR-BASED RECORD HANDLING, SUCH AS IN A WORKFLOW APPLICATION.”
IV. Complex Data Merging
FIG. 6 shows an example of complex data merging (or joining) performed by the facility to combine information from multiple input components (e.g., XML documents), each containing sequences of information conforming to a record type, commonly known as a schema (e.g., records of results from a prior task performed by the facility). In this example, a first XML document 602 contains information relating to a sequence of 10,000 invoices for many customers, with each invoice in the sequence associated with its own record. A second XML document 604 contains information relating to a sequence of customer records for 2,000 customers, with each customer associated with at least one customer record.
In the given example, a generate report task 606 (a task controlled by the workflow facility) relies, at least in part, on the facility's complex data merging functionality to automatically complete its task of generating individual personalized invoices for each of the 2,000 users based on the information in the first XML document 602 and the second XML document 604. More specifically, after determining the existence of a parent/child relationship between the two XML documents, the complex data merging functionality identifies relationships between invoice records associated with the first XML document and customer records associated with the second XML document. For example, each invoice record associated with the first XML document 602 (in this example, the parent document) contains a customer ID field as a foreign key. The complex data merging functionality identifies and collects information for all the records with foreign key relationships and then matches each foreign key to a corresponding primary key from the customer records associated with the second XML document 604 to produce output 608 for delivery.
Use of parent/child relationships provides flexibility and allows the complex data merging functionality to be used in cases involving merging more than two input components (e.g., XML documents). In general, the parent XML document may control the size and shape of the output. For example, in the illustrated embodiment of FIG. 6, if the parent XML document is the first XML document 602 (relating to invoice records), then the merged data output 608 would be the length of the invoice sequence (e.g., 10,000 personalized invoices generated, with one customer record per invoice record). Alternatively, if the parent XML document is the second XML document 604 (relating to customer records), then the merged data output 608 would be the length of the customer sequence (e.g., 2,000 personalized invoices generated, with at least some of the personalized invoices associated with more than one invoice record per customer).
Table A below shows an example of an XML schema for the two XML documents (602 and 604) depicted in the embodiment of FIG. 6. Table A is derived from the XML schema and record types for each document. Each column conforms to a specific record type derived from the XML schema for each document. In this example, <invoices> and <users> are the record types, respectively.
TABLE A
<invoices> <users>
 <invoice>  <user>
  UserID + Invoice data   UserID + user data
 </invoice>  </user>
 <invoice>  <user>
  UserID + Invoice data   UserID + user data
 </invoice>  </user>
. . . . . .
</invoices> </users>
Table B below illustrates the resultant XML output schema from the task 606 of FIG. 6. The left-hand column of the table shows the output schema when the customer XML information/document 604 is the parent document and the right-hand column of the table shows the output schema when the invoices XML information/document 602 is the parent. InvoiceData and UserData are the contents of the <invoice> and <user> elements, respectively. Such contents may themselves be elements or text, depending on the hierarchy described by the schema.
TABLE B
User is the parent record: Invoice is the parent record:
<user> <invoice>
 InvoiceData  UserData
 InvoiceData </invoice>
 . . . <invoice>
</user>  UserData
<user> </invoice>
 . . . . . .
</user>
. . .
In some embodiments involving the merging of information from more than two input components that form hierarchical relationships, the relationships among the input components having contents to be merged are identified with a single root/parent document that defines a top level sequence. In such cases, aside from the parent document, all subsequent documents participating in the merge are directly or indirectly children of the parent. The children may define their relationships with only their closest parent, as illustrated in FIG. 7. Multiple children may share the same parent, but a child does not have a direct relationship with a grandparent. For example, using the XML documents from the example of FIG. 6, the customer information of the previous example includes a city ID, and the city information is obtained from another XML document with city records 702 (also having a city ID field). However, the joining of this information may be independent of the joining of the invoice information 602 with the customer information 604.
Other sample cases include the following: In the case where only one input is used, there is no join involved since the single document is the root document. Where two documents are related purely by the order of the records in the document, it may be possible to use an implicit key relationship comprising the row number, even though the row number is not an explicit field in either record. The workflow facility may also use literal/scalar values instead of collections where a value is replicated as often as needed (e.g., a single message to be sent to all recipients of a notification). Other samples of schema that may be produced by the workflow facility are shown in Tables C and D below. In particular, Tables C and D show examples of XML that is passed from a custom action to an adapter (components of the workflow facility that are described in more detail with respect to FIG. 2). Table C shows an example of XML for a single input document.
TABLE C
<!-- Single Input - Invoices as Document -->
<JobRequestParameters>
 <OutputDestination>C:\folder</OutputDestination>
 <ReportFormat>PDF</ReportFormat>
 <OutputPrefix>FileName</OutputPrefix>
</JobRequestParameters>
<TaskParameters>
 <TaskParameter taskParameterID=“43493fecf”>
  UserID + Invoice data
 </TaskParameter>
 <TaskParameter taskParameterID=“63495fefa”>
  UserID + Invoice data
 </TaskParameter>
 . . .
</TaskParameters>
Table D shows an XML example of two input documents that have been joined.
TABLE D
<!-- Merged Input - Invoices as Parent Document, Users as
Child Document -->
<JobRequestParameters>
 <OutputDestination>C:\folder</OutputDestination>
 <ReportFormat>PDF</ReportFormat>
 <OutputPrefix>FileName</OutputPrefix>
</JobRequestParameters>
<TaskParameters>
 <TaskParameter taskParameterID=“83c93cecf”>
  UserID + Invoice data + user data
 </TaskParameter>
 <TaskParameter taskParameterID=“13c93c6ce”>
  UserID + Invoice data + user data
 </TaskParameter>
 . . .
</TaskParameters>
FIG. 8 is a flow diagram showing an example of a routine 800 for applying/executing a merge/join. The routine 800 may invoke various processes associated with the workflow facility, such as information capture processes 102, information analysis processes 104, information processing processes 106, information formatting processes 108, and information delivery processes 110 (each described in more detail with respect to FIG. 1). At block 801, the routine 800 initiates a task or action for which a join of data is imposed. This task or action may be initiated by the request of a user (e.g., through an end-user interface). For example, the task or action may be selected from a list of available tasks or actions. At block 802, the routine 800 retrieves a first input component for the join. Like the task or action, the first input component may be specified by a user via an end-user interface. An example of such an interface is depicted in FIG. 11A. At block 803, the routine 800 retrieves a next input component for the join (assuming there is more than one input component). As with the first input component, this next input component may be specified by the user via the end-user interface. In the illustrated embodiment, the end-user interface is such that programming skills are not needed to specify the input components.
At block 804, the routine 800 determines the child/parent status of each of the retrieved inputs. As with the input components, the child/parent status of each of the retrieved inputs may be specified by the user via the end-user interface without the need for programming actions (see, e.g., FIGS. 11A and 11B). At block 805, the routine 800 identifies a controlling input component based on the child/parent status of each of the retrieved inputs. This controlling input component determines the shape, size, and/or format of any resulting data outputs. At block 806, the routine 800 identifies any relevant keys/identifiers for the retrieved input components. These keys/identifiers may be specified by the user for each input component and, in most cases, represent a common data field between the first component and the next component (which may or may not share a common field name). In some embodiments, the keys/identifiers may be represented by either element data or attribute data and may have few, if any, limitations on the type of data that each key/identifier represents. For example, with respect to the first input component, the relevant key/identifier may be a UserID primary key, and for the next input component, the relevant key/identifier may be a UserID foreign key. At decision block 807, the routine 800 determines if there are additional input components needed. If at decision block 807, additional input components are needed, the routine 800 loops back to block 803 to retrieve the next input component. Otherwise, the routine 800 proceeds to block 808 to perform matching based on the identified keys/indicators. As described with respect to FIG. 1, this matching involves invoking one or more processes associated with the workflow facility, such as information analysis processes 104, information processing processes 106, and information formatting processes 108. As a result of the matching, an output may be produced, such as a single merged document. Producing this output may involve invoking, for example, the information formatting processes 108 of FIG. 1. The routine 800 then ends.
IV. Complex Data Merging User Interfaces
FIGS. 9-12 provide an illustration of the processes and user interfaces involved in implementing workflows having tasks that rely on complex data merging capabilities. In some embodiments, when creating new workflows, workflow designers may access the complex merging capabilities via a graphical user interface in a way that does not require additional programming to enable the merge of data from multiple data sources. Moreover, the complex merging functionality may be configured so that it is generally applicable to any data being passed through the system, at any time, with the shape (e.g., size and configuration) of the output data determined at run-time and driven by the results of the merging process. Thus, the complex merging capabilities are flexible in that they can be applied to a variety of data sources (including new data sources) without the need for additional programming of the workflow facility.
FIG. 9 is a flow diagram showing an example of a routine 900 for defining a merge/join in a workflow design, without requiring that the workflow designer write special code. At block 901, the routine 900 receives a task selection from a designer. For example, as illustrated in the display diagram of FIG. 10, the task may be a “Send Batch E-mail” task. At block 902, the routine 900 receives an indication that the task requires a joining or merging of data. An example of a screen for inputting such an indication is the screen 1000 of FIG. 10. More specifically, from the screen 1000 of FIG. 10, the user can select to edit or delete an existing join function (not shown) or create a new join function by selecting a NEW button 1002.
At block 903, the routine 900 displays a define data join screen so that the user may input information about the join or merge. Examples of define data join screens 1100 and 1150 are illustrated in FIGS. 11A and 11B. Such define data join screens may be accessed, for example, by clicking the NEW button 1002 of FIG. 10. FIG. 11B also includes a DEFINED JOINS list box 1152. If available, highlighting an item listed in the DEFINED JOINS list box 1152 populates the fields at the right side of the define data join screen 1150 with that item's settings. At block 904, the routine 900 receives definition information for a parent input component. At block 905, the routine 900 receives definition information for at least one child input component. FIG. 11A shows an example of fields that allow a user to input such information, including a PARENT DOCUMENT field 1102, a PARENT KEY field 1104, a CHILD DOCUMENT field 1106, and a CHILD KEY field 1108. Thus, as shown in FIG. 11A, receiving the definition information for a parent input component may include receiving an indication of any relevant data keys in addition to receiving document identifiers. Providing the received definition information does not require that the user perform programming activities. FIG. 11B shows an example of similar fields, including an ENTER A DESCRIPTION FOR THIS JOIN field 1154, an ENTER THE PARENT (CONTROLLING) DOCUMENT field 1156, an ENTER THE CHILD (CONTROLLED) DOCUMENT field 1158, an ENTER THE PARENT (FOREIGN) KEY field 1160, and an ENTER THE CHILD (PRIMARY) KEY field 1162. In addition, FIG. 11B displays various buttons including a WIZARD button 1164 (launches a wizard that helps a user define a join), a NEW button 1165 (inserts a new blank join in the list and highlights it so settings can be filled in and saved), a DELETE button 1166 (deletes the selected join in the DEFINED JOINS list box 1152), a SAVE button 1168 (saves the join in the DEFINED JOINS list box 1152 and/or updates the join that has been selected), a DATA BROWSER BUTTON 1170 (launches a browse box), an OK button 1172 (saves settings and closes define data join screen 1150), and a CANCEL button 1174 (aborts setting changes and closes define data join screen 1150).
At block 906, the routine 900 displays a dialog input mapping screen, through which it receives information that allows it to map data values to input fields and select corresponding joins without the need for user programming (block 907). An example of such a screen 1200 is shown in FIG. 12. In general, the dialog input mapping screen 1200 provided by the workflow facility provides an alternative and comprehensive interface for quickly specifying, viewing, referencing, and/or accessing information relating to data fields, values, and/or joins. For example, input provided using one or more of the advanced functionality screens of the illustrated embodiment (e.g., the additional data screen, the joins screen, the template input mapping screen, the filters screen, the custom transform screen, etc.) may be displayed, in whole or in part, in the appropriate fields of the dialog input mapping screen 1200. If data has not yet been provided, then the dialog input mapping screen 1200 may offer data input functionality so that, for example, a user may input missing fields or modify previously inputted fields. For example, in the case of joins, a previously defined join, which has been saved for future use, may be quickly selected/specified using the dialog input mapping functionality. In this way, the user is saved from the hassle of having to redefine a recurring join over and over again.
The information from the fields displayed on the dialog input mapping screen 1200 will eventually be used by one or more processing modules (e.g., adapter modules) to perform the underlying task (e.g., send batch email). The ability to identify and merge data that have common attributes, as described herein, can be tied to the use of specific resources in the computing environment as well. Another embodiment or application of the vector-based workflow facility described herein would be its use in conjunction with a simulation engine. The simulation engine may analyze a workflow application's overhead and/or identify potential run-time bottlenecks resulting from anticipated data handling. The simulation engine may then use the results of the analysis to set a threshold value or otherwise suggest the need for the use of vector-based operations to enhance system performance with workflow applications that are used to handle large volumes of documents or that perform operations on complex XML schema.
V. Conclusion
Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to.” Additionally, the words “herein,” “above,” “below” and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application. When the claims use the word “or” in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
The above detailed description of embodiments of the invention is not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific embodiments of, and examples for, the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. For example, while processes or blocks are presented in a given order, alternative embodiments may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed in parallel, or may be performed at different times. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number, respectively.
The teachings of the invention provided herein can be applied to other systems, not necessarily the system described herein. The elements and acts of the various embodiments described above can be combined to provide further embodiments.
This application is related to commonly owned U.S. patent application Ser. No. 10/938,396, filed Sep. 10, 2004, entitled “CUSTOM AND CUSTOMIZABLE COMPONENTS, SUCH AS FOR WORK FLOW APPLICATIONS”; commonly owned U.S. patent application Ser. No. 11/486,398, filed Jul. 12, 2006, entitled “VECTOR-BASED RECORD HANDLING, SUCH AS IN A WORKFLOW APPLICATION”; and commonly owned U.S. patent application Ser. No. 10/938,118, filed Sep. 10, 2004, entitled “USER-FRIENDLY DATA BINDING, SUCH AS DRAG-AND-DROP DATA BINDING IN A WORKFLOW APPLICATION.” All of the above patents and applications and other references, including any that may be listed in accompanying filing papers, are incorporated herein by reference. Aspects of the invention can be modified, if necessary, to employ the systems, functions, and concepts of the various references described above to provide yet further embodiments of the invention.
These and other changes can be made to the invention in light of the above Detailed Description. While the above description details certain embodiments of the invention and describes the best mode contemplated, no matter how detailed the above appears in text, the invention can be practiced in many ways. Details of the workflow facility may vary considerably in their implementation details, while still be encompassed by the invention disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the invention should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the invention with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the invention to the specific embodiments disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the invention encompasses not only the disclosed embodiments, but also all equivalent ways of practicing or implementing the invention under the claims.
While certain aspects of the invention are presented below in certain claim forms, the inventors contemplate the various aspects of the invention in any number of claim forms. For example, while only one aspect of the invention is recited as embodied in a computer-readable medium, other aspects may likewise be embodied in a computer-readable medium. Accordingly, the inventors reserve the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the invention.

Claims (24)

I claim:
1. A method for complex data merging, comprising:
at a computer having a workflow facility:
retrieving, at the workflow facility, multiple input components from one or more input sources accessible by the workflow facility, wherein the multiple input components comprise a first input component and a second input component, wherein the first input component contains a first sequence of information conforming to a first record type, wherein the first sequence of information relates to a first plurality of database records of results from a first prior task performed by the workflow facility, wherein the second input component contains a second sequence of information conforming to a second record type, and wherein the second sequence of information relates to a second plurality of database records of results from a second prior task performed by the workflow facility;
determining, at the workflow facility, a parent/child status between the first input component and the second input component;
identifying, at the workflow facility, one of the first input component and the second input component as a controlling input component based on the parent/child status between the first input component and the second input component;
matching, at the workflow facility, each foreign key contained in each of the first plurality of database records associated with the first input component with a corresponding primary key from the second plurality of database records associated with the second input component; and
producing, at the workflow facility, a single merged document based on a result of the matching, wherein a shape, size, format, or a configuration of the single merged document is determined at run-time based on the controlling input component.
2. The method according to claim 1, wherein the first sequence of information comprises a sequence of invoices, with each invoice in the sequence associated with its own customer record, and wherein the second sequence of information comprises a sequence of customer records for a plurality of customers, with each of the plurality of customers associated with at least one of the customer records.
3. The method according to claim 1, wherein the first input component and the second input component are Extensible Markup Language (XML) documents.
4. The method according to claim 1, wherein the multiple input components further comprise documents, processes, and applications.
5. The method according to claim 1, wherein the multiple input components comprise content that is internal or external to the workflow facility.
6. The method according to claim 1, wherein the multiple input components comprise content that is internal to the workflow facility and content that is external to the workflow facility.
7. The method according to claim 1, wherein the one or more input sources comprise software applications.
8. The method according to claim 1, further comprising:
prior to performing the matching, determining if additional input components are needed; and
if one or more additional input components are needed, retrieving the one or more input components from the one or more input sources; or
if no additional input components are needed, performing the matching.
9. A computer program product comprising at least one non-transitory computer readable medium storing instructions translatable by at least one processor to perform, at a workflow facility:
retrieving multiple input components from one or more input sources accessible by the workflow facility, wherein the multiple input components comprises a first input component and a second input component, wherein the first input component contains a first sequence of information conforming to a first record type, wherein the first sequence of information relates to a first plurality of database records of results from a first prior task performed by the workflow facility, wherein the second input component contains a second sequence of information conforming to a second record type, and wherein the second sequence of information relates to a second plurality of database records of results from a second prior task performed by the workflow facility;
determining a parent/child status between the first input component and the second input component;
identifying one of the first input component and the second input component as a controlling input component based on the parent/child status between the first input component and the second input component;
matching each foreign key contained in each of the first plurality of database records associated with the first input component with a corresponding primary key from the second plurality of database records associated with the second input component; and
producing a single merged document based on a result of the matching, wherein a shape, size, format, or a configuration of the single merged document is determined at run-time based on the controlling input component.
10. The computer program product of claim 9, wherein the first sequence of information comprises a sequence of invoices, with each invoice in the sequence associated with its own customer record, and wherein the second sequence of information comprises a sequence of customer records for a plurality of customers, with each of the plurality of customers associated with at least one of the customer records.
11. The computer program product of claim 9, wherein the first input component and the second input component are Extensible Markup Language (XML) documents.
12. The computer program product of claim 9, wherein the multiple input components further comprise documents, processes, and applications.
13. The computer program product of claim 9, wherein the multiple input components comprise content that is internal or external to the workflow facility.
14. The computer program product of claim 9, wherein the multiple input components comprise content that is internal to the workflow facility and content that is external to the workflow facility.
15. The computer program product of claim 9, wherein the one or more input sources comprise software applications.
16. The computer program product of claim 9, wherein the instructions are further translatable by the at least one processor to perform:
prior to performing the matching, determining if additional input components are needed; and
if one or more additional input components are needed, retrieving the one or more input components from the one or more input sources; or
if no additional input components are needed, performing the matching.
17. A system for complex data merging, comprising:
at least one processor; and
at least one non-transitory computer readable medium storing instructions translatable by the at least one processor to perform, at a workflow facility:
retrieving multiple input components from one or more input sources accessible by the workflow facility, wherein the multiple input components comprises a first input component and a second input component, wherein the first input component contains a first sequence of information conforming to a first record type, wherein the first sequence of information relates to a first plurality of database records of results from a first prior task performed by the workflow facility, wherein the second input component contains a second sequence of information conforming to a second record type, and wherein the second sequence of information relates to a second plurality of database records of results from a second prior task performed by the workflow facility;
determining a parent/child status between the first input component and the second input component;
identifying one of the first input component and the second input component as a controlling input component based on the parent/child status between the first input component and the second input component;
matching each foreign key contained in each of the first plurality of database records associated with the first input component with a corresponding primary key from the second plurality of database records associated with the second input component; and
producing a single merged document based on a result of the matching, wherein a shape, size, format, or a configuration of the single merged document is determined at run-time based on the controlling input component.
18. The system of claim 17, wherein the first sequence of information comprises a sequence of invoices, with each invoice in the sequence associated with its own customer record, and wherein the second sequence of information comprises a sequence of customer records for a plurality of customers, with each of the plurality of customers associated with at least one of the customer records.
19. The system of claim 17, wherein the first input component and the second input component are Extensible Markup Language (XML) documents.
20. The system of claim 17, wherein the multiple input components further comprise documents, processes, and applications.
21. The system of claim 17, wherein the multiple input components comprise content that is internal or external to the workflow facility.
22. The system of claim 17, wherein the multiple input components comprise content that is internal to the workflow facility and content that is external to the workflow facility.
23. The system of claim 17, wherein the one or more input sources comprise software applications.
24. The system of claim 17, wherein the instructions are further translatable by the at least one processor to perform:
prior to performing the matching, determining if additional input components are needed; and
if one or more additional input components are needed, retrieving the one or more input components from the one or more input sources; or
if no additional input components are needed, performing the matching.
US11/486,397 2005-07-12 2006-07-12 Complex data merging, such as in a workflow application Active 2029-11-25 US8429527B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/486,397 US8429527B1 (en) 2005-07-12 2006-07-12 Complex data merging, such as in a workflow application

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US69870005P 2005-07-12 2005-07-12
US69867805P 2005-07-12 2005-07-12
US11/486,397 US8429527B1 (en) 2005-07-12 2006-07-12 Complex data merging, such as in a workflow application

Publications (1)

Publication Number Publication Date
US8429527B1 true US8429527B1 (en) 2013-04-23

Family

ID=48095022

Family Applications (3)

Application Number Title Priority Date Filing Date
US11/486,398 Expired - Fee Related US8645175B1 (en) 2005-07-12 2006-07-12 Workflow system and method for single call batch processing of collections of database records
US11/486,397 Active 2029-11-25 US8429527B1 (en) 2005-07-12 2006-07-12 Complex data merging, such as in a workflow application
US14/138,696 Abandoned US20140180754A1 (en) 2005-07-12 2013-12-23 Workflow System and Method for Single Call Batch Processing of Collections of Database Records

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/486,398 Expired - Fee Related US8645175B1 (en) 2005-07-12 2006-07-12 Workflow system and method for single call batch processing of collections of database records

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/138,696 Abandoned US20140180754A1 (en) 2005-07-12 2013-12-23 Workflow System and Method for Single Call Batch Processing of Collections of Database Records

Country Status (1)

Country Link
US (3) US8645175B1 (en)

Cited By (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100287016A1 (en) * 2007-12-28 2010-11-11 Nec Corporation Method of monitoring a combined workflow with rejection determination function, device and recording medium therefor
US20100313111A1 (en) * 2009-03-24 2010-12-09 Mehmet Kivanc Ozonat Building a standardized web form
US20130055264A1 (en) * 2011-08-25 2013-02-28 Brandon Lawrence BURR System and method for parameterizing documents for automatic workflow generation
US8645175B1 (en) 2005-07-12 2014-02-04 Open Text S.A. Workflow system and method for single call batch processing of collections of database records
US20140067804A1 (en) * 2012-08-29 2014-03-06 Hitachi, Ltd. Workflow generation server and method of generating workflow
US8752030B1 (en) * 2006-03-09 2014-06-10 Verizon Services Corp. Process abstraction and tracking, systems and methods
US8855999B1 (en) 2013-03-15 2014-10-07 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
WO2014186771A1 (en) 2013-05-16 2014-11-20 Nfluence Media, Inc. Privacy sensitive persona management tools
US8909597B2 (en) 2008-09-15 2014-12-09 Palantir Technologies, Inc. Document-based workflows
US8930897B2 (en) 2013-03-15 2015-01-06 Palantir Technologies Inc. Data integration tool
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
WO2015123675A1 (en) * 2014-02-17 2015-08-20 Unify Square, Inc. Unified communication service deployment system
US9275069B1 (en) 2010-07-07 2016-03-01 Palantir Technologies, Inc. Managing disconnected investigations
US9286373B2 (en) 2013-03-15 2016-03-15 Palantir Technologies Inc. Computer-implemented systems and methods for comparing and associating objects
US9392008B1 (en) 2015-07-23 2016-07-12 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US9483546B2 (en) 2014-12-15 2016-11-01 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
US9495353B2 (en) 2013-03-15 2016-11-15 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US9501552B2 (en) 2007-10-18 2016-11-22 Palantir Technologies, Inc. Resolving database entity information
US9514414B1 (en) 2015-12-11 2016-12-06 Palantir Technologies Inc. Systems and methods for identifying and categorizing electronic documents through machine learning
US9558245B1 (en) * 2015-12-07 2017-01-31 International Business Machines Corporation Automatic discovery of relevant data in massive datasets
US9619567B2 (en) 2011-06-06 2017-04-11 Nfluence Media, Inc. Consumer self-profiling GUI, analysis and rapid information presentation tools
US20170139685A1 (en) * 2014-06-25 2017-05-18 Chengdu Puzhong Software Limted Company Visual software modeling method to construct software views based on a software meta view
US9715518B2 (en) 2012-01-23 2017-07-25 Palantir Technologies, Inc. Cross-ACL multi-master replication
US9760556B1 (en) 2015-12-11 2017-09-12 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US9852205B2 (en) 2013-03-15 2017-12-26 Palantir Technologies Inc. Time-sensitive cube
US9898756B2 (en) 2011-06-06 2018-02-20 autoGraph, Inc. Method and apparatus for displaying ads directed to personas having associated characteristics
US9898335B1 (en) 2012-10-22 2018-02-20 Palantir Technologies Inc. System and method for batch evaluation programs
US9984428B2 (en) 2015-09-04 2018-05-29 Palantir Technologies Inc. Systems and methods for structuring data from unstructured electronic data files
US9996229B2 (en) 2013-10-03 2018-06-12 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US10019730B2 (en) 2012-08-15 2018-07-10 autoGraph, Inc. Reverse brand sorting tools for interest-graph driven personalization
US10061828B2 (en) 2006-11-20 2018-08-28 Palantir Technologies, Inc. Cross-ontology multi-master replication
US10103953B1 (en) 2015-05-12 2018-10-16 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10127289B2 (en) 2015-08-19 2018-11-13 Palantir Technologies Inc. Systems and methods for automatic clustering and canonical designation of related data in various data structures
US10133588B1 (en) 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
US10140664B2 (en) 2013-03-14 2018-11-27 Palantir Technologies Inc. Resolving similar entities from a transaction database
US10180977B2 (en) 2014-03-18 2019-01-15 Palantir Technologies Inc. Determining and extracting changed data from a data source
US10235533B1 (en) 2017-12-01 2019-03-19 Palantir Technologies Inc. Multi-user access controls in electronic simultaneously editable document editor
CN110308898A (en) * 2019-07-06 2019-10-08 朱洪俊 It is a kind of that the gift book software systems of export printing are provided
US10452678B2 (en) 2013-03-15 2019-10-22 Palantir Technologies Inc. Filter chains for exploring large data sets
US10470021B2 (en) 2014-03-28 2019-11-05 autoGraph, Inc. Beacon based privacy centric network communication, sharing, relevancy tools and other tools
US10540515B2 (en) 2012-11-09 2020-01-21 autoGraph, Inc. Consumer and brand owner data management tools and consumer privacy tools
US10579647B1 (en) 2013-12-16 2020-03-03 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10628834B1 (en) 2015-06-16 2020-04-21 Palantir Technologies Inc. Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces
US10636097B2 (en) 2015-07-21 2020-04-28 Palantir Technologies Inc. Systems and models for data analytics
US10706370B2 (en) * 2014-02-14 2020-07-07 Fujitsu Limited Device and method for managing a plurality of documents
US10762102B2 (en) 2013-06-20 2020-09-01 Palantir Technologies Inc. System and method for incremental replication
US10795909B1 (en) 2018-06-14 2020-10-06 Palantir Technologies Inc. Minimized and collapsed resource dependency path
US10838987B1 (en) 2017-12-20 2020-11-17 Palantir Technologies Inc. Adaptive and transparent entity screening
US10853454B2 (en) 2014-03-21 2020-12-01 Palantir Technologies Inc. Provider portal
CN112347122A (en) * 2020-11-10 2021-02-09 西安宇视信息科技有限公司 SQL workflow processing method and device, electronic equipment and storage medium
US10970261B2 (en) 2013-07-05 2021-04-06 Palantir Technologies Inc. System and method for data quality monitors
US11061874B1 (en) 2017-12-14 2021-07-13 Palantir Technologies Inc. Systems and methods for resolving entity data across various data structures
US11061542B1 (en) 2018-06-01 2021-07-13 Palantir Technologies Inc. Systems and methods for determining and displaying optimal associations of data items
US11074277B1 (en) 2017-05-01 2021-07-27 Palantir Technologies Inc. Secure resolution of canonical entities
US11106692B1 (en) 2016-08-04 2021-08-31 Palantir Technologies Inc. Data record resolution and correlation system
US11140564B2 (en) * 2019-05-28 2021-10-05 Samsung Electronics Co., Ltd. Method and apparatus for performing radio access network function
US11302426B1 (en) 2015-01-02 2022-04-12 Palantir Technologies Inc. Unified data interface and system

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9659260B2 (en) * 2011-03-15 2017-05-23 Dan Caligor Calendar based task and time management systems and methods
US9305106B1 (en) * 2011-07-15 2016-04-05 The Boeing Company Open web architecture and gadget workbench for cyber situational awareness and method therefor
US20140278631A1 (en) * 2013-03-15 2014-09-18 Ram Karuppusamy System and method for managing business functions for one or more companies
WO2015048787A1 (en) 2013-09-30 2015-04-02 Maximus, Inc. Contact center system with efficiency analysis tools
WO2015048790A2 (en) 2013-09-30 2015-04-02 Maximus, Inc. Request process optimization and management
WO2015048789A2 (en) * 2013-09-30 2015-04-02 Maximus, Inc. Process tracking and defect detection
GB201417262D0 (en) * 2014-09-30 2014-11-12 Bizagi Group Contextual workflow management
US10768975B2 (en) * 2016-03-04 2020-09-08 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method
US11030697B2 (en) 2017-02-10 2021-06-08 Maximus, Inc. Secure document exchange portal system with efficient user access
CN107045675A (en) * 2017-05-23 2017-08-15 成都牵牛草信息技术有限公司 The method that workflow approval node is set examination & approval role by role
US10831774B2 (en) 2018-09-05 2020-11-10 International Business Machines Corporation Accumulating results from batch processing and resuming execution of a data integration flow with the accumulated results passed in
US11494227B2 (en) * 2019-09-12 2022-11-08 Anto George System and method for creating process automation workflow of a process automation task in a robotic process automation environment

Citations (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339423A (en) 1989-06-16 1994-08-16 International Business Machines Corporation System for accessing objects external to an application using tables containing path definitions
US5649220A (en) 1993-08-24 1997-07-15 Scitex Corporation Ltd. System and method for artwork design and production
US5966512A (en) 1997-06-05 1999-10-12 International Business Machines Corporation Groupware save operation
US5974418A (en) * 1996-10-16 1999-10-26 Blinn; Arnold Database schema independence
US6196393B1 (en) 1999-04-02 2001-03-06 Inscerco Mfg., Inc. Extraction and scanning system
US6249291B1 (en) 1995-09-22 2001-06-19 Next Software, Inc. Method and apparatus for managing internet transactions
US20010045963A1 (en) 1997-04-14 2001-11-29 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US6330006B1 (en) 1998-05-12 2001-12-11 Silverstream Software, Inc. Method and apparatus for synchronizing an application's interface and data
US6339838B1 (en) 1998-01-02 2002-01-15 At&T Corp. Control of commercial processes
US20020007405A1 (en) 2000-03-15 2002-01-17 Mushtaq Bahadur Data importer
US20020029376A1 (en) 1998-11-30 2002-03-07 Jesse Ambrose Development tool, method, and system for client server applications
US6415259B1 (en) 1999-07-15 2002-07-02 American Management Systems, Inc. Automatic work progress tracking and optimizing engine for a telecommunications customer care and billing system
US20020085020A1 (en) 2000-09-14 2002-07-04 Carroll Thomas J. XML-based graphical user interface application development toolkit
US6430538B1 (en) 1998-04-30 2002-08-06 Enterworks Workflow management system, method and medium with personal subflows
US6437805B1 (en) 1996-09-23 2002-08-20 National Instruments Corporation System and method for accessing object capabilities in a graphical program
US6442563B1 (en) 1998-04-30 2002-08-27 Enterworks Workflow management system, method, and medium that morphs work items
US20020165912A1 (en) 2001-02-25 2002-11-07 Storymail, Inc. Secure certificate and system and method for issuing and using same
US6484150B1 (en) * 1996-10-16 2002-11-19 Microsoft Corporation Electronic shopping and merchandising system accessing legacy data in a database independent schema manner
US6493731B1 (en) 1999-01-27 2002-12-10 Xerox Corporation Document management system for recording and viewing the history of document use
US20030093433A1 (en) 2001-11-14 2003-05-15 Exegesys, Inc. Method and system for software application development and customizible runtime environment
US20030093755A1 (en) * 2000-05-16 2003-05-15 O'carroll Garrett Document processing system and method
US6621505B1 (en) 1997-09-30 2003-09-16 Journee Software Corp. Dynamic process-based enterprise computing system and method
US20040003353A1 (en) 2002-05-14 2004-01-01 Joey Rivera Workflow integration system for automatic real time data management
US20040006598A1 (en) * 2002-03-01 2004-01-08 Tralix, L.L.C. Method and system of sending and tracking electronic mail messages
WO2004012109A1 (en) * 2002-07-29 2004-02-05 Trade Wind Communications Ltd A bulk communications process using multiple delivery media
US20040078258A1 (en) 2002-07-31 2004-04-22 Karsten Schulz Transformations between private and shared workflows
US20040088647A1 (en) 2002-11-06 2004-05-06 Miller Adrian S. Web-based XML document processing system
US6745221B1 (en) 1999-03-01 2004-06-01 Mitel, Inc. Dynamic resource reallocation
US20040127279A1 (en) 2001-07-20 2004-07-01 Jean-Marie Gatto Methods, systems and email content enabling email recipients to win prizes
US20040236835A1 (en) 2003-05-24 2004-11-25 Blankenship Mark H. Direct mail manager for tracking customer attributes
US20040250213A1 (en) 2003-06-03 2004-12-09 International Business Machines Corporation System and method for dynamic uploading of user interface generation logic
US20050015746A1 (en) 2003-07-14 2005-01-20 Microsoft Corporation Orchestration designer
US6860422B2 (en) 2002-09-03 2005-03-01 Ricoh Company, Ltd. Method and apparatus for tracking documents in a workflow
US20050066287A1 (en) 2003-09-11 2005-03-24 Tattrie Scott I. User-friendly data binding, such as drag-and-drop data binding in a workflow application
US20050066304A1 (en) 2003-09-11 2005-03-24 Captaris, Inc. Custom and customizable components, such as for workflow applications
US6874146B1 (en) 1999-06-30 2005-03-29 Unisys Corporation Metadata driven system for effecting extensible data interchange based on universal modeling language (UML), meta object facility (MOF) and extensible markup language (XML) standards
US20050102608A1 (en) * 1999-10-01 2005-05-12 Microsoft Corporation Method and system for previewing and printing customized forms
US20050114405A1 (en) 2003-11-25 2005-05-26 Microsoft Corporation Flat file processing method and system
US6904412B1 (en) 2000-03-14 2005-06-07 Everbank Method and apparatus for a mortgage loan originator compliance engine
US20050216830A1 (en) * 2004-03-29 2005-09-29 Turner Jeffrey S Access tool to facilitate exchange of data to and from an end-user application software package
US6968503B1 (en) 2000-03-09 2005-11-22 Quovadx, Inc. XML user interface for a workflow server
US20050262429A1 (en) 2004-05-24 2005-11-24 Elder Michael J System, method and computer program for an integrated digital workflow for processing a paper form
US20050262430A1 (en) * 2004-04-26 2005-11-24 Creo Inc. Systems and methods for comparing documents containing graphic elements
US20050273272A1 (en) 2004-04-22 2005-12-08 Applera Corporation, A Delaware Corporation System and method for laboratory-wide information management
US6975914B2 (en) 2002-04-15 2005-12-13 Invensys Systems, Inc. Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with unified messaging interface
US20060004827A1 (en) 2004-05-07 2006-01-05 International Business Machines Corporation XML based scripting language
US20060047665A1 (en) 2001-01-09 2006-03-02 Tim Neil System and method for simulating an application for subsequent deployment to a device in communication with a transaction server
US7017123B2 (en) 2000-12-27 2006-03-21 National Instruments Corporation Graphical user interface including palette windows with an improved search function
US7076728B2 (en) 2000-12-22 2006-07-11 International Business Machines Corporation Method and apparatus for end-to-end content publishing system using XML with an object dependency graph
US7124373B1 (en) 2002-01-09 2006-10-17 International Business Machines Corporation System and method for rearranging run-time ordering of open tasks
US7127716B2 (en) 2002-02-13 2006-10-24 Hewlett-Packard Development Company, L.P. Method of load balancing a distributed workflow management system
US7134090B2 (en) 2001-08-14 2006-11-07 National Instruments Corporation Graphical association of program icons
US20060259524A1 (en) 2003-03-17 2006-11-16 Horton D T Systems and methods for document project management, conversion, and filing
US7143343B2 (en) 2002-04-11 2006-11-28 International Business Machines Corporation Dynamic creation of an application's XML document type definition (DTD)
US20060282473A1 (en) 2005-06-08 2006-12-14 Horrocks Adam S Rules-based data evaluation and process trigger system and method
US7159185B1 (en) 2000-09-14 2007-01-02 Microsoft Corporation Function objects
US7161108B2 (en) 2003-03-02 2007-01-09 Pitney Bowes Inc. System and method for routing imaged documents
US7194737B2 (en) 2002-10-02 2007-03-20 Infinity Systems Software, Inc. System and method for expediting and automating mainframe computer setup
US20070192402A1 (en) 2005-03-29 2007-08-16 Trx, Inc. System and method for automating workflow
US7321864B1 (en) 1999-11-04 2008-01-22 Jpmorgan Chase Bank, N.A. System and method for providing funding approval associated with a project based on a document collection
US20080189679A1 (en) 2007-02-05 2008-08-07 Jared Rodriguez Method and system for creating, deploying, and utilizing a service
US7426548B2 (en) 2002-05-01 2008-09-16 Bea Systems, Inc. Enterprise application platform
US7428495B2 (en) 2000-10-02 2008-09-23 International Projects Consultancy Services, Inc. Object based workflow system and method
US20080275907A1 (en) * 2007-03-23 2008-11-06 International Business Machines Corporation Scalable algorithms for mapping-based xml transformation
US7483902B2 (en) 2003-07-11 2009-01-27 Computer Associates Think, Inc. System and method for creating and using self describing events in automation
US7500185B2 (en) 2004-04-29 2009-03-03 Koninklijke Philips Electronics N.V. Framework of validating DICOM structured reporting documents using XSLT technology
US7634756B2 (en) 2001-03-22 2009-12-15 Robert Dean Bjornson Method and apparatus for dataflow creation and execution
US7640548B1 (en) 2002-06-21 2009-12-29 Siebel Systems, Inc. Task based user interface
US7788214B2 (en) 2003-07-11 2010-08-31 Computer Associates International, Inc. XML configuration technique and graphical user interface (GUI) for managing user data in a plurality of databases
US7917888B2 (en) 2001-01-22 2011-03-29 Symbol Technologies, Inc. System and method for building multi-modal and multi-channel applications
US7945093B2 (en) 2008-01-16 2011-05-17 Eastman Kodak Company Simplified color workflow
US8082189B2 (en) 2007-12-13 2011-12-20 Dai Nippon Printing Co., Ltd. Information providing system for providing store information to a mobile terminal device
US8090612B2 (en) 2005-07-19 2012-01-03 Hewlett-Packard Development Company, L.P. Producing marketing items for a marketing campaign

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5079714A (en) * 1989-10-03 1992-01-07 Pitney Bowes Inc. Mail deliverability by mail and database processing
US6449646B1 (en) * 1998-10-13 2002-09-10 Aspect Communications Corporation Method and apparatus for allocating mixed transaction type messages to resources via an integrated queuing mechanism
US6560501B1 (en) * 2000-03-07 2003-05-06 I2 Technologies Us, Inc. System and method for collaborative batch aggregation and scheduling
US20010027463A1 (en) * 2000-03-22 2001-10-04 Fujitsu Limited Task priority decision apparatus and method, workflow system, work processing method, and recording medium
US20020038450A1 (en) * 2000-08-03 2002-03-28 International Business Machines Corporation Method and system to run stored procedures as workflow activity implementations
US7929562B2 (en) * 2000-11-08 2011-04-19 Genesis Telecommunications Laboratories, Inc. Method and apparatus for optimizing response time to events in queue
GB2381340A (en) * 2001-10-27 2003-04-30 Hewlett Packard Co Document generation in a distributed information network
US20030225662A1 (en) * 2002-04-01 2003-12-04 Horan James P. Managed asset platform system and method
US7818657B1 (en) * 2002-04-01 2010-10-19 Fannie Mae Electronic document for mortgage transactions
US20030233366A1 (en) * 2002-06-17 2003-12-18 Aspetuck Systems Inc. Database monitoring system with formatted report information delivery
US7689443B2 (en) * 2002-12-31 2010-03-30 Employers Reinsurance Corporation Methods and structure for insurance industry workflow processing
US7653876B2 (en) * 2003-04-07 2010-01-26 Adobe Systems Incorporated Reversible document format
US8082169B2 (en) * 2004-06-18 2011-12-20 Canon Kabushiki Kaisha User interface for workflow builder
US20060036649A1 (en) * 2004-08-12 2006-02-16 Simske Steven J Index extraction from documents
US8170946B2 (en) * 2004-08-21 2012-05-01 Co-Exprise, Inc. Cost management file translation methods, systems, and apparatuses for extended commerce
US20070100834A1 (en) * 2004-09-15 2007-05-03 John Landry System and method for managing data in a distributed computer system
US20060212455A1 (en) * 2005-03-15 2006-09-21 Microsoft Corporation Method and system for organizing image files based upon workflow
US8645175B1 (en) * 2005-07-12 2014-02-04 Open Text S.A. Workflow system and method for single call batch processing of collections of database records
US20070061144A1 (en) * 2005-08-30 2007-03-15 Caterpillar Inc. Batch statistics process model method and system
US20070124343A1 (en) * 2005-11-30 2007-05-31 Hewlett-Packard Development Company, L.P. Method or apparatus for processing data in a system management application program
US20080012525A1 (en) 2006-07-17 2008-01-17 Jung-Tsung Lin Insulation type battery charging structure/chargeable battery

Patent Citations (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339423A (en) 1989-06-16 1994-08-16 International Business Machines Corporation System for accessing objects external to an application using tables containing path definitions
US5649220A (en) 1993-08-24 1997-07-15 Scitex Corporation Ltd. System and method for artwork design and production
US6249291B1 (en) 1995-09-22 2001-06-19 Next Software, Inc. Method and apparatus for managing internet transactions
US6437805B1 (en) 1996-09-23 2002-08-20 National Instruments Corporation System and method for accessing object capabilities in a graphical program
US5974418A (en) * 1996-10-16 1999-10-26 Blinn; Arnold Database schema independence
US6484150B1 (en) * 1996-10-16 2002-11-19 Microsoft Corporation Electronic shopping and merchandising system accessing legacy data in a database independent schema manner
US20010045963A1 (en) 1997-04-14 2001-11-29 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US7194692B2 (en) 1997-04-14 2007-03-20 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US6429880B2 (en) 1997-04-14 2002-08-06 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US5966512A (en) 1997-06-05 1999-10-12 International Business Machines Corporation Groupware save operation
US6621505B1 (en) 1997-09-30 2003-09-16 Journee Software Corp. Dynamic process-based enterprise computing system and method
US6339838B1 (en) 1998-01-02 2002-01-15 At&T Corp. Control of commercial processes
US6430538B1 (en) 1998-04-30 2002-08-06 Enterworks Workflow management system, method and medium with personal subflows
US6442563B1 (en) 1998-04-30 2002-08-27 Enterworks Workflow management system, method, and medium that morphs work items
US6330006B1 (en) 1998-05-12 2001-12-11 Silverstream Software, Inc. Method and apparatus for synchronizing an application's interface and data
US20020029376A1 (en) 1998-11-30 2002-03-07 Jesse Ambrose Development tool, method, and system for client server applications
US6553563B2 (en) 1998-11-30 2003-04-22 Siebel Systems, Inc. Development tool, method, and system for client server applications
US6493731B1 (en) 1999-01-27 2002-12-10 Xerox Corporation Document management system for recording and viewing the history of document use
US6745221B1 (en) 1999-03-01 2004-06-01 Mitel, Inc. Dynamic resource reallocation
US6196393B1 (en) 1999-04-02 2001-03-06 Inscerco Mfg., Inc. Extraction and scanning system
US6874146B1 (en) 1999-06-30 2005-03-29 Unisys Corporation Metadata driven system for effecting extensible data interchange based on universal modeling language (UML), meta object facility (MOF) and extensible markup language (XML) standards
US6415259B1 (en) 1999-07-15 2002-07-02 American Management Systems, Inc. Automatic work progress tracking and optimizing engine for a telecommunications customer care and billing system
US20050102608A1 (en) * 1999-10-01 2005-05-12 Microsoft Corporation Method and system for previewing and printing customized forms
US7321864B1 (en) 1999-11-04 2008-01-22 Jpmorgan Chase Bank, N.A. System and method for providing funding approval associated with a project based on a document collection
US6968503B1 (en) 2000-03-09 2005-11-22 Quovadx, Inc. XML user interface for a workflow server
US6904412B1 (en) 2000-03-14 2005-06-07 Everbank Method and apparatus for a mortgage loan originator compliance engine
US20020007405A1 (en) 2000-03-15 2002-01-17 Mushtaq Bahadur Data importer
US20030093755A1 (en) * 2000-05-16 2003-05-15 O'carroll Garrett Document processing system and method
US6990654B2 (en) 2000-09-14 2006-01-24 Bea Systems, Inc. XML-based graphical user interface application development toolkit
US20020085020A1 (en) 2000-09-14 2002-07-04 Carroll Thomas J. XML-based graphical user interface application development toolkit
US7159185B1 (en) 2000-09-14 2007-01-02 Microsoft Corporation Function objects
US7428495B2 (en) 2000-10-02 2008-09-23 International Projects Consultancy Services, Inc. Object based workflow system and method
US7076728B2 (en) 2000-12-22 2006-07-11 International Business Machines Corporation Method and apparatus for end-to-end content publishing system using XML with an object dependency graph
US7017123B2 (en) 2000-12-27 2006-03-21 National Instruments Corporation Graphical user interface including palette windows with an improved search function
US20060047665A1 (en) 2001-01-09 2006-03-02 Tim Neil System and method for simulating an application for subsequent deployment to a device in communication with a transaction server
US7917888B2 (en) 2001-01-22 2011-03-29 Symbol Technologies, Inc. System and method for building multi-modal and multi-channel applications
US20020165912A1 (en) 2001-02-25 2002-11-07 Storymail, Inc. Secure certificate and system and method for issuing and using same
US7634756B2 (en) 2001-03-22 2009-12-15 Robert Dean Bjornson Method and apparatus for dataflow creation and execution
US20040127279A1 (en) 2001-07-20 2004-07-01 Jean-Marie Gatto Methods, systems and email content enabling email recipients to win prizes
US7134090B2 (en) 2001-08-14 2006-11-07 National Instruments Corporation Graphical association of program icons
US20030093433A1 (en) 2001-11-14 2003-05-15 Exegesys, Inc. Method and system for software application development and customizible runtime environment
US7124373B1 (en) 2002-01-09 2006-10-17 International Business Machines Corporation System and method for rearranging run-time ordering of open tasks
US7127716B2 (en) 2002-02-13 2006-10-24 Hewlett-Packard Development Company, L.P. Method of load balancing a distributed workflow management system
US20040006598A1 (en) * 2002-03-01 2004-01-08 Tralix, L.L.C. Method and system of sending and tracking electronic mail messages
US7143343B2 (en) 2002-04-11 2006-11-28 International Business Machines Corporation Dynamic creation of an application's XML document type definition (DTD)
US6975914B2 (en) 2002-04-15 2005-12-13 Invensys Systems, Inc. Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with unified messaging interface
US7426548B2 (en) 2002-05-01 2008-09-16 Bea Systems, Inc. Enterprise application platform
US20040003353A1 (en) 2002-05-14 2004-01-01 Joey Rivera Workflow integration system for automatic real time data management
US7640548B1 (en) 2002-06-21 2009-12-29 Siebel Systems, Inc. Task based user interface
US20080278740A1 (en) * 2002-07-29 2008-11-13 Nicholas Rowland Bird Bulk Communications Process Using Multiple Delivery Media
WO2004012109A1 (en) * 2002-07-29 2004-02-05 Trade Wind Communications Ltd A bulk communications process using multiple delivery media
US20040078258A1 (en) 2002-07-31 2004-04-22 Karsten Schulz Transformations between private and shared workflows
US6860422B2 (en) 2002-09-03 2005-03-01 Ricoh Company, Ltd. Method and apparatus for tracking documents in a workflow
US7194737B2 (en) 2002-10-02 2007-03-20 Infinity Systems Software, Inc. System and method for expediting and automating mainframe computer setup
US20040088647A1 (en) 2002-11-06 2004-05-06 Miller Adrian S. Web-based XML document processing system
US7161108B2 (en) 2003-03-02 2007-01-09 Pitney Bowes Inc. System and method for routing imaged documents
US20060259524A1 (en) 2003-03-17 2006-11-16 Horton D T Systems and methods for document project management, conversion, and filing
US20040236835A1 (en) 2003-05-24 2004-11-25 Blankenship Mark H. Direct mail manager for tracking customer attributes
US20040250213A1 (en) 2003-06-03 2004-12-09 International Business Machines Corporation System and method for dynamic uploading of user interface generation logic
US7788214B2 (en) 2003-07-11 2010-08-31 Computer Associates International, Inc. XML configuration technique and graphical user interface (GUI) for managing user data in a plurality of databases
US7483902B2 (en) 2003-07-11 2009-01-27 Computer Associates Think, Inc. System and method for creating and using self describing events in automation
US20050015746A1 (en) 2003-07-14 2005-01-20 Microsoft Corporation Orchestration designer
US20050066287A1 (en) 2003-09-11 2005-03-24 Tattrie Scott I. User-friendly data binding, such as drag-and-drop data binding in a workflow application
US20100070945A1 (en) 2003-09-11 2010-03-18 Tattrie Scott I Custom and customizable components, such as for workflow applications
US20050066304A1 (en) 2003-09-11 2005-03-24 Captaris, Inc. Custom and customizable components, such as for workflow applications
US20050114405A1 (en) 2003-11-25 2005-05-26 Microsoft Corporation Flat file processing method and system
US20050216830A1 (en) * 2004-03-29 2005-09-29 Turner Jeffrey S Access tool to facilitate exchange of data to and from an end-user application software package
US20050273272A1 (en) 2004-04-22 2005-12-08 Applera Corporation, A Delaware Corporation System and method for laboratory-wide information management
US20050262430A1 (en) * 2004-04-26 2005-11-24 Creo Inc. Systems and methods for comparing documents containing graphic elements
US7500185B2 (en) 2004-04-29 2009-03-03 Koninklijke Philips Electronics N.V. Framework of validating DICOM structured reporting documents using XSLT technology
US20060004827A1 (en) 2004-05-07 2006-01-05 International Business Machines Corporation XML based scripting language
US7539982B2 (en) 2004-05-07 2009-05-26 International Business Machines Corporation XML based scripting language
US20050262429A1 (en) 2004-05-24 2005-11-24 Elder Michael J System, method and computer program for an integrated digital workflow for processing a paper form
US20070192402A1 (en) 2005-03-29 2007-08-16 Trx, Inc. System and method for automating workflow
US20060282473A1 (en) 2005-06-08 2006-12-14 Horrocks Adam S Rules-based data evaluation and process trigger system and method
US8090612B2 (en) 2005-07-19 2012-01-03 Hewlett-Packard Development Company, L.P. Producing marketing items for a marketing campaign
US20080189679A1 (en) 2007-02-05 2008-08-07 Jared Rodriguez Method and system for creating, deploying, and utilizing a service
US20080275907A1 (en) * 2007-03-23 2008-11-06 International Business Machines Corporation Scalable algorithms for mapping-based xml transformation
US8082189B2 (en) 2007-12-13 2011-12-20 Dai Nippon Printing Co., Ltd. Information providing system for providing store information to a mobile terminal device
US7945093B2 (en) 2008-01-16 2011-05-17 Eastman Kodak Company Simplified color workflow

Non-Patent Citations (54)

* Cited by examiner, † Cited by third party
Title
"Captaris Announces Teamplate for .NET 4.1," CMSWire, Apr. 4, 2004, printed from http://www.cmswire.com/cms/portal/captaris-announces-template-for-net-41-000271.php on Jul. 14, 2010, 3 pages.
"Captaris Workflow Technical Overview," Captaris, 2005, 4 pages.
"Captaris Workflow, powered by Teamplate," Captaris, 2005, 3 pages.
"Primary and Foreign Key Constraints," retrieved from http://msdn.microsoft.com/en-us/library/ms179610(d=printer).aspx on Sep. 6, 2012, 5 pages.
Arpinar, Ismailcem Budak et al., An Efficient Data Extraction and Storage Utility for XML Documents Proceedings of the 39th Annual ACM Southeast Conference, 2001, 6 pages.
Bae, et al. "A document-process association model for workflow management," Department of Industrial Engineering, Seoul National Univerity, Jun. 7, 2001, 16 pages.
Berlea, Alexnadru et al, fxt-A Transformation Language for XML Documents, Journal of Computing and Information Technology, vol. 10, 2001, 19 pages.
Captaris, "Alchemy Workflow Solutions-Datasheet," Captaris, 2005, 4 pages.
Captaris, "Doculabs MarketFocus White Paper: Analysis of the Captaris Solution for Fixed Content Management," Doculabs, 2005, 18 pages.
Captaris, "Nexant Automates Energy Efficiency with Captaris Workflow, Case Study," 2005, 3 pages.
Castellanos, et al., "IBOM: A Platform for Intelligent Business Operation Management," Proceedings of the 21st International Conference on Data Engineering, 2005, pp. 1-12.
Chen, Qiming, et al., "Multi-Agent Cooperation, Dynamic Workflow and XML for E-Commerce Automation," HP Laboratories Palo Alto, Oct. 1999, 10 pages.
Continuous Business Process Management with HOLOSOFX BPM Suite and IBM MQSeries Workflow, ibm.com/redbooks, May 2002, p. 1-534.
Dan et al., "Web services on demand: WSLA-driven automated management," IBM Systems, Journal, vol. 43, No. 1, 2004, pp. 136-158.
Doucent, Antoine et al., Accurate Retrieval of XML Document Fragments Using EXTI RP, INEX 2003 Workshop Proceedings, 2003, 8 pages.
Eder, Johann et al., Composition of Transformations for XML Schema Based Documents, Proceedings of Short Papers of the 7'h East European Conference on Advances in Databases and Information Systems, 2003, 10 pages.
Examiner's Report for Canadian Patent Application No. 2,443,454, mailed Jan. 25, 2011, 6 pgs.
Examiner's Report for Canadian Patent Application No. 2,451,164, mailed Feb. 16, 2011, 4 pgs.
Examiner's Report issued for Canadian Patent Application No. 2,443,454, mailed Jul. 24, 2012, 6 pages.
Filho, Roberto Silveira Silva, "A Fully Distributed Architecture for Large Scale Workflow Enactment," International Journal of Cooperative Information Systems, vol. 12, No. 4, 2003, 16 pages.
Gannon, et al., "A Quick Tour of LEAD via LEAD Portal & Application Orchestration," Indiana University, Jul. 21-22, 2005, p. 1-46.
Hsiao, Hui-I, Advanced Technology for Managing XML Document Collections IEEE, 2005, 4 pages.
IBM DB2: Administering XML Extender (IBM DB2 Help Manual), IBM, 2006, 3 pages.
International Search Report and Written Opinion; International Patent Application No. PCT/US07/68825; Filed May 11, 2007; Applicant; Captaris, Inc.; Mailed: Jul. 17, 2008; 12 pages.
Kay, Michael, "Building Workflow Applications with XML and Xquery," DataDirect Technologies, Inc., 2006, 10 pages.
Krishnan, Rupa et al., "Xdoc-WFMS: A Framework for Document Centric Workflow Management Lecture Notes in Computer Science," 2002, vol. 2464/2002, pp. 348-362.
LeVitus et al, 'MacWorld Microsoft Office 2001 Bible', IDG Books Worldwide, Inc, 2001, pp. 163-178. *
Marchetti, Andrea et al., "Xflow: An XML-Based Document Centric Workflow," WISE 2005, LNCS 3806, 2005, 14 pages.
Michelle A. Poolet, "SQL by Design: How to Choose a Primary Key," retrieved from http://www.sqlmag.com/print/systems-administrator/sql-by-design-how-to-choose-a-primary-key, dated Apr. 1, 1999, 4 pages.
Office Action for U.S. Appl. No. 10/938,118, mailed May 8, 2012, 38 pages.
Office Action for U.S. Appl. No. 11/486,398, mailed Jul. 9, 2012, 35 pages.
Office Action for U.S. Appl. No. 11/486,398, mailed Mar. 20, 2012, 36 pgs.
Office Action for U.S. Appl. No. 12/396,445 mailed Mar. 13, 2012, 16 pgs.
Office Action issued in U.S. Appl. No. 10/938,118, mailed Jan. 14, 2009, 21 pages.
Office Action issued in U.S. Appl. No. 10/938,118, mailed May 14, 2008, 27 pages.
Office Action issued in U.S. Appl. No. 10/938,118, mailed Nov. 3, 2009, 17 pages.
Office Action issued in U.S. Appl. No. 10/938,118, mailed Oct. 29, 2007, 32 pages.
Office Action issued in U.S. Appl. No. 11/486,398, mailed Jul. 26, 2010, 16 pages.
Office Action issued in U.S. Appl. No. 11/486,398, mailed Nov. 9, 2010, 20 pages.
Page, Sam, XSL Pipeline Processing Using XML, 2005, 6 pages.
Pediaditakis, Michael et al., Device neutral pipelined processing of XML documents, WWW2003, 12th International World Wide Web Conference, 2003, 4 pages.
Rossi, Davide, Orchestrating Document-based Workflows with X-Folders, 2004 ACM Symposium on Applied Computing, 2004, 5 pages.
Schmidt, "Building Workflow Business Objects," OOPSLA '98 Business Object Workshop IV, 1998, p. 1-14.
Senkul and Torosola, "An Architecture for Workflow Scheduling Under Resource Allocation Constraints," Information Systems 30 (2005), p. 399-422.
Shegalov, German, et al., "XML-Enabled Workflow Management for E-Services Across Heterogeneous Platforms," The VLDB Journal, vol. 10, 2001, 13 pages.
Song, Minrong et al., REPOX: An XML Repository for Workflow Design and Specifications, Aug. 26, 2001, 43 pages.
Sparta Systems, Inc., "TrackWise-User's Guide," 2000, 175 pages.
Stauch, Marc, et al., "Design and Implementation of an XSL-T and XML-based Workflow System," XML Europe, 2001, 18 pages.
Teamware Group, "Teamware Flow 3.1 User's Guide," Third Edition Apr. 2000, 164 pages.
Tennison, Jeni, Processing XML Documents with Pipelines, DocEng. 06, 2006, 44 pages.
Tripathy, Anand R., et al., "Implementing Distributed Workflow Systems from XML Specifications," University of Minnesota Department of Computer Science, 2000, 9 pages.
Wang, Alf Inge, "Experience Paper: Using XML to Implement a Workflow Tool," NTNU, Trondheim, Norway, Apr. 4, 2001, 7 pages.
Workflow Management Coalition Workflow Standard-Interoperability Wf-XML, The Workflow Management Coalition. May 1, 2000, 40 pages.
XML Pipeline definition, Wikipedia.org, Retrieved Mar. 16, 2012, 5 pages.

Cited By (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645175B1 (en) 2005-07-12 2014-02-04 Open Text S.A. Workflow system and method for single call batch processing of collections of database records
US20140180754A1 (en) * 2005-07-12 2014-06-26 Open Text S.A. Workflow System and Method for Single Call Batch Processing of Collections of Database Records
US8752030B1 (en) * 2006-03-09 2014-06-10 Verizon Services Corp. Process abstraction and tracking, systems and methods
US10061828B2 (en) 2006-11-20 2018-08-28 Palantir Technologies, Inc. Cross-ontology multi-master replication
US10733200B2 (en) 2007-10-18 2020-08-04 Palantir Technologies Inc. Resolving database entity information
US9846731B2 (en) 2007-10-18 2017-12-19 Palantir Technologies, Inc. Resolving database entity information
US9501552B2 (en) 2007-10-18 2016-11-22 Palantir Technologies, Inc. Resolving database entity information
US20100287016A1 (en) * 2007-12-28 2010-11-11 Nec Corporation Method of monitoring a combined workflow with rejection determination function, device and recording medium therefor
US8756093B2 (en) * 2007-12-28 2014-06-17 Nec Corporation Method of monitoring a combined workflow with rejection determination function, device and recording medium therefor
US8909597B2 (en) 2008-09-15 2014-12-09 Palantir Technologies, Inc. Document-based workflows
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
US10747952B2 (en) 2008-09-15 2020-08-18 Palantir Technologies, Inc. Automatic creation and server push of multiple distinct drafts
US9159090B2 (en) * 2009-03-24 2015-10-13 Hewlett-Packard Development Company, L.P. Building a standardized web form
US20100313111A1 (en) * 2009-03-24 2010-12-09 Mehmet Kivanc Ozonat Building a standardized web form
US9275069B1 (en) 2010-07-07 2016-03-01 Palantir Technologies, Inc. Managing disconnected investigations
US11693877B2 (en) 2011-03-31 2023-07-04 Palantir Technologies Inc. Cross-ontology multi-master replication
US10482501B2 (en) 2011-06-06 2019-11-19 autoGraph, Inc. Method and apparatus for displaying ads directed to personas having associated characteristics
US9898756B2 (en) 2011-06-06 2018-02-20 autoGraph, Inc. Method and apparatus for displaying ads directed to personas having associated characteristics
US9619567B2 (en) 2011-06-06 2017-04-11 Nfluence Media, Inc. Consumer self-profiling GUI, analysis and rapid information presentation tools
US20130055264A1 (en) * 2011-08-25 2013-02-28 Brandon Lawrence BURR System and method for parameterizing documents for automatic workflow generation
US9058315B2 (en) 2011-08-25 2015-06-16 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US8732574B2 (en) * 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US10706220B2 (en) 2011-08-25 2020-07-07 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US9715518B2 (en) 2012-01-23 2017-07-25 Palantir Technologies, Inc. Cross-ACL multi-master replication
US10019730B2 (en) 2012-08-15 2018-07-10 autoGraph, Inc. Reverse brand sorting tools for interest-graph driven personalization
US20140067804A1 (en) * 2012-08-29 2014-03-06 Hitachi, Ltd. Workflow generation server and method of generating workflow
US9898335B1 (en) 2012-10-22 2018-02-20 Palantir Technologies Inc. System and method for batch evaluation programs
US11182204B2 (en) 2012-10-22 2021-11-23 Palantir Technologies Inc. System and method for batch evaluation programs
US10540515B2 (en) 2012-11-09 2020-01-21 autoGraph, Inc. Consumer and brand owner data management tools and consumer privacy tools
US10140664B2 (en) 2013-03-14 2018-11-27 Palantir Technologies Inc. Resolving similar entities from a transaction database
US10452678B2 (en) 2013-03-15 2019-10-22 Palantir Technologies Inc. Filter chains for exploring large data sets
US10152531B2 (en) 2013-03-15 2018-12-11 Palantir Technologies Inc. Computer-implemented systems and methods for comparing and associating objects
US8855999B1 (en) 2013-03-15 2014-10-07 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US10120857B2 (en) 2013-03-15 2018-11-06 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US9286373B2 (en) 2013-03-15 2016-03-15 Palantir Technologies Inc. Computer-implemented systems and methods for comparing and associating objects
US9852205B2 (en) 2013-03-15 2017-12-26 Palantir Technologies Inc. Time-sensitive cube
US9495353B2 (en) 2013-03-15 2016-11-15 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US10977279B2 (en) 2013-03-15 2021-04-13 Palantir Technologies Inc. Time-sensitive cube
US8930897B2 (en) 2013-03-15 2015-01-06 Palantir Technologies Inc. Data integration tool
US20140344953A1 (en) * 2013-05-16 2014-11-20 Nfluence Media, Inc. Privacy sensitive persona management tools
US9875490B2 (en) 2013-05-16 2018-01-23 autoGraph, Inc. Privacy sensitive persona management tools
US10346883B2 (en) 2013-05-16 2019-07-09 autoGraph, Inc. Privacy sensitive persona management tools
WO2014186771A1 (en) 2013-05-16 2014-11-20 Nfluence Media, Inc. Privacy sensitive persona management tools
US9348979B2 (en) * 2013-05-16 2016-05-24 autoGraph, Inc. Privacy sensitive persona management tools
US10762102B2 (en) 2013-06-20 2020-09-01 Palantir Technologies Inc. System and method for incremental replication
US10970261B2 (en) 2013-07-05 2021-04-06 Palantir Technologies Inc. System and method for data quality monitors
US9996229B2 (en) 2013-10-03 2018-06-12 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US10198515B1 (en) 2013-12-10 2019-02-05 Palantir Technologies Inc. System and method for aggregating data from a plurality of data sources
US11138279B1 (en) 2013-12-10 2021-10-05 Palantir Technologies Inc. System and method for aggregating data from a plurality of data sources
US10579647B1 (en) 2013-12-16 2020-03-03 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10706370B2 (en) * 2014-02-14 2020-07-07 Fujitsu Limited Device and method for managing a plurality of documents
WO2015123675A1 (en) * 2014-02-17 2015-08-20 Unify Square, Inc. Unified communication service deployment system
US20150236927A1 (en) * 2014-02-17 2015-08-20 Unify Square, Inc. Unified communication service deployment system
US10180977B2 (en) 2014-03-18 2019-01-15 Palantir Technologies Inc. Determining and extracting changed data from a data source
US10853454B2 (en) 2014-03-21 2020-12-01 Palantir Technologies Inc. Provider portal
US10470021B2 (en) 2014-03-28 2019-11-05 autoGraph, Inc. Beacon based privacy centric network communication, sharing, relevancy tools and other tools
US20170139685A1 (en) * 2014-06-25 2017-05-18 Chengdu Puzhong Software Limted Company Visual software modeling method to construct software views based on a software meta view
US10242072B2 (en) 2014-12-15 2019-03-26 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
US9483546B2 (en) 2014-12-15 2016-11-01 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
US11302426B1 (en) 2015-01-02 2022-04-12 Palantir Technologies Inc. Unified data interface and system
US10103953B1 (en) 2015-05-12 2018-10-16 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10628834B1 (en) 2015-06-16 2020-04-21 Palantir Technologies Inc. Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces
US10636097B2 (en) 2015-07-21 2020-04-28 Palantir Technologies Inc. Systems and models for data analytics
US9392008B1 (en) 2015-07-23 2016-07-12 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US9661012B2 (en) 2015-07-23 2017-05-23 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US11392591B2 (en) 2015-08-19 2022-07-19 Palantir Technologies Inc. Systems and methods for automatic clustering and canonical designation of related data in various data structures
US10127289B2 (en) 2015-08-19 2018-11-13 Palantir Technologies Inc. Systems and methods for automatic clustering and canonical designation of related data in various data structures
US9984428B2 (en) 2015-09-04 2018-05-29 Palantir Technologies Inc. Systems and methods for structuring data from unstructured electronic data files
US9558245B1 (en) * 2015-12-07 2017-01-31 International Business Machines Corporation Automatic discovery of relevant data in massive datasets
US10817655B2 (en) 2015-12-11 2020-10-27 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US9514414B1 (en) 2015-12-11 2016-12-06 Palantir Technologies Inc. Systems and methods for identifying and categorizing electronic documents through machine learning
US9760556B1 (en) 2015-12-11 2017-09-12 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US11106692B1 (en) 2016-08-04 2021-08-31 Palantir Technologies Inc. Data record resolution and correlation system
US10133588B1 (en) 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
US11074277B1 (en) 2017-05-01 2021-07-27 Palantir Technologies Inc. Secure resolution of canonical entities
US10235533B1 (en) 2017-12-01 2019-03-19 Palantir Technologies Inc. Multi-user access controls in electronic simultaneously editable document editor
US11061874B1 (en) 2017-12-14 2021-07-13 Palantir Technologies Inc. Systems and methods for resolving entity data across various data structures
US10838987B1 (en) 2017-12-20 2020-11-17 Palantir Technologies Inc. Adaptive and transparent entity screening
US11061542B1 (en) 2018-06-01 2021-07-13 Palantir Technologies Inc. Systems and methods for determining and displaying optimal associations of data items
US10795909B1 (en) 2018-06-14 2020-10-06 Palantir Technologies Inc. Minimized and collapsed resource dependency path
US11140564B2 (en) * 2019-05-28 2021-10-05 Samsung Electronics Co., Ltd. Method and apparatus for performing radio access network function
CN110308898A (en) * 2019-07-06 2019-10-08 朱洪俊 It is a kind of that the gift book software systems of export printing are provided
CN112347122A (en) * 2020-11-10 2021-02-09 西安宇视信息科技有限公司 SQL workflow processing method and device, electronic equipment and storage medium

Also Published As

Publication number Publication date
US8645175B1 (en) 2014-02-04
US20140180754A1 (en) 2014-06-26

Similar Documents

Publication Publication Date Title
US8429527B1 (en) Complex data merging, such as in a workflow application
US6606740B1 (en) Development framework for case and workflow systems
US8880461B2 (en) Method and system for managing enterprise content
US8412813B2 (en) Customizable asset governance for a distributed reusable software library
US7895563B2 (en) Managing reusable software assets
US7673340B1 (en) System and method for analyzing system user behavior
US8412549B2 (en) Analyzing business data for planning applications
US9852382B2 (en) Dynamic human workflow task assignment using business rules
US20060129974A1 (en) Service meta model for an enterprise service architecture
US8688626B2 (en) Software tool for generating technical business data requirements
JP2013530464A (en) Integrated workflow and database transactions
KR100483630B1 (en) System and Method for Creating Personalized Template for Monitoring Workflows
JP2006528801A (en) Service management of service-oriented business framework
KR101944973B1 (en) Method and system for sharing user-defined Enterprise Resource Planning function and computing system performing the same
US20230102947A1 (en) Providing operations in accordance with worksheet relationships and data object relationships
JPH11167584A (en) Page shift method and its execution device and medium recording page shift processing program and data
Nguyen Improving the ETL process for a case company
CA2607129C (en) Customizable asset governance for a distributed reusable software library
JP2007280238A (en) Data display defining information making device and method, data display device and method, and program used for realizing these devices
Abu Sabha An Automated Generation of Business Application using Entity Relationship Diagram and Business Process Model
Bogdanović BAB (BUSINESS APPLICATION BUILDER) FRAMEWORK FOR RAPID DEVELOPMENT OF BUSINESS INFORMATION SYSTEMS
Mehta et al. Design documentation for jawe2openflow project
Tunçer Un/cefact ccts based e-business document design and customization environment for achivieng data interoperability

Legal Events

Date Code Title Description
AS Assignment

Owner name: ELRINGKLINGER AG, GERMANY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MAIER, UWE;FRITZ, WOLFGANG;SIGNING DATES FROM 20060829 TO 20060928;REEL/FRAME:018487/0647

AS Assignment

Owner name: ELRINGKLINGER AG, GERMANY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MAIER, UWE;FRITZ, WOLFGANG;SIGNING DATES FROM 20060829 TO 20060928;REEL/FRAME:018768/0216

AS Assignment

Owner name: CAPTARIS, INC., WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ARBOGAST, EMMANUEL;REEL/FRAME:018835/0607

Effective date: 20070119

AS Assignment

Owner name: WELLS FARGO FOOTHILL, LLC, AS AGENT, CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:CAPTARIS, INC.;REEL/FRAME:020362/0679

Effective date: 20080102

AS Assignment

Owner name: CAPTARIS, INC., WASHINGTON

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO FOOTHILL, LLC, AS AGENT;REEL/FRAME:021849/0895

Effective date: 20081117

AS Assignment

Owner name: OPEN TEXT INC., WASHINGTON

Free format text: MERGER;ASSIGNOR:CAPTARIS, INC.;REEL/FRAME:023942/0697

Effective date: 20090625

AS Assignment

Owner name: OPEN TEXT S.A., LUXEMBOURG

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:OPEN TEXT INC.;REEL/FRAME:027292/0666

Effective date: 20110725

AS Assignment

Owner name: OPEN TEXT S.A., LUXEMBOURG

Free format text: CORRECTION BY DECLARATION OF INCORRECT APPL. NO. 11/468,397, PREVIOUSLY RECORDED ON R/F 018487/0647;ASSIGNOR:OPEN TEXT S.A.;REEL/FRAME:029619/0658

Effective date: 20120906

Owner name: OPEN TEXT S.A., LUXEMBOURG

Free format text: CORRECTION BY DECLARATION OF INCORRECT APPL. NO. 11/468,397 PREVIOUSLY RECORDED ON R/F 018768/0216;ASSIGNOR:OPEN TEXT S.A.;REEL/FRAME:029619/0702

Effective date: 20120906

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
AS Assignment

Owner name: OT IP SUB, LLC, DELAWARE

Free format text: IP BUSINESS SALE AGREEMENT;ASSIGNOR:OPEN TEXT S.A.;REEL/FRAME:039872/0605

Effective date: 20160701

Owner name: OPEN TEXT SA ULC, CANADA

Free format text: CERTIFICATE OF AMALGAMATION;ASSIGNOR:IP OT SUB ULC;REEL/FRAME:039872/0662

Effective date: 20160708

Owner name: IP OT SUB ULC, CANADA

Free format text: CERTIFICATE OF CONTINUANCE;ASSIGNOR:OT IP SUB, LLC;REEL/FRAME:039986/0689

Effective date: 20160702

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8