This application relates to electronic collaboration tools and applications. In particular, this application relates to integration of collaboration tools and applications into electronic business applications.
Business applications, such as those used to perform management consulting, banking, insurance etc. services, often use a complex set of resources and personnel to serve a client's needs. The resources and personnel needed to meet a client's needs may vary throughout a particular business process. With today's business and technology requirements, creating a cost-effective collaboration infrastructure that effectively identifies and leverages a business' best personnel and resources for a given task can be challenging.
The system may be better understood with reference to the following drawings and description. The elements in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the type model. In the figures, like-referenced numerals designate corresponding features throughout the different views.
A Process-driven Collaboration (PDC) application embeds collaboration into business processes and applications to achieve top and bottom-line business results. The PDC application may be applied to many different industries—Banking, Insurance, Utilities, etc.—and provides a significant impact where, for example, the following circumstances may be present: Highly complex and/or exception driven processes; value is based on speed of turnaround; scarce resources are critical to success; and remote physical presence is required.
The PDC application is a vendor-agnostic, service-based solution that allows clients to quickly implement process-driven collaboration for a particular process/processes. This includes integrating into the client's enterprise systems—business process management (BPM), enterprise service bus (ESB), and the core business application (e.g., banking application).
The UI components layer 202 includes a light-weight set of Javascript widgets that can be embedded into existing applications. These widgets may include a process guidance (PG) widget 208, a relevant feeds widget 210, a related documents widget 212, a related experts widget 214, a current task widget 216 and an activity feed 218.
The service layer 204 includes controllers 220-230 for processing relevant data/information for the widgets of the UI components layer 202. For example, the service layer 204 includes a process service controller 220, related feed controller 222, document service controller 224, expert service controller 226 and collaboration service controller 228 corresponding to the PG widget 208, relevant feeds widget 210, related documents widget 212, related experts widget 214 and current task widget 216, respectively. The service layer 204 also includes a communication service controller 230 that processes relevant data/information for available external communication tools 232.
The service layer 204 includes services 234-244 corresponding to the controllers 220-230, respectively. The service layer 204 also includes adapters 246-256 that provide integration and communication with external systems and applications. The process adapter 246, for example, provides integration into businesses processes contained in a client's underlying Business Process Management (BPM) engine 258. The service layer 204 may include adapters for a variety of BPM suite vendors. The service layer 204 also includes one or more collaboration templates 260 that stores appropriate collaboration calls for the process service 246 and the static metadata for services 234-244, as well as core/common utilities 262 that support the overall functionality of the service layer 204. The core/common utilities 262 may include a metadata service 264 that obtains the static metadata for the services 234-244. The metadata service 264 includes a collaboration template adapter 266 and the one or more collaboration templates 260.
The functionality of the controllers 220-230, services 234-244, adapters 246-256, and metadata service 264 is described in more detail below. The controllers 220-230, services 234-244, adapters 246-256 and core/common utilities 262, such as the metadata service 264, may be stored in the memory of the PDC system and encoded with data representing one or more computer programs that can cause the computer processor of the PDC system to perform the functionality of the PDC application described herein.
The external systems layer 206 includes a set of libraries, services and configurations to adapt external services 268, 270, 272, 274 and/or 232 for process-driven collaboration. For example, the external systems layer 206 may include a collaboration API library, which includes a set of pre-configured libraries and starter code to allow collaboration capabilities from multiple vendors to be embedded into any application. The external systems layer 206 may also include BPM configurations that include code and configurations built within various BPM vendor suites to connect the particular BPM to the service layer 204. The external services include collaboration-facilitating applications 274 that PDC application embedded into or linked to from an existing business application.
In one example of a client implementation, PDC system services may include the following consulting and implementation services for the client: Analysis of where/how collaboration can be embedded into the process to enhance it; Implementation of PDC application; and Integration of PDC application into client's BPM, ESB, and core business application.
To accelerate the implementation, the system may also provide the following items to the client: High Performance Business Process with collaboration embedded into it; PDC application, including adapters for various BPM suites, such as, for example, Pega®, IBM®, Oracle®, or other BPM suites; and Pre-configured integration into collaboration tools from various vendors.
The PDC application requests the current activity within the Business Process from the PDC CollaborationServiceController 228. The PDC application may be configured to detect a change in business activity and request the new current activity when such a change is detected. The PDC application may also be configured to periodically request the current activity and when the current activity is returned, determine whether the current activity has changed. The PDC application may use the PDC UI Current Task Widget to the request the current activity. The PDC application, using the CollaborationServiceController 228, converts the UI request to a Java CollaborationRequest object and calls the CollaborationService 242 for further processing. If a current process activity ID is not provided as part of the request from the PDC UI, the PDC application requests, using the CollaborationService 242, the current process activity ID from the ProcessAdapter 246 through the ProcessService 234. The PDC application, using the ProcessAdapter 246, interacts with the BPM 258 to return the ID of the current process activity.
The current process activity ID is passed to the PDC application, and in particular, to the CollaborationService 242. The PDC application, using the CollaborationService 242, queries the CollaborationTemplateAdapter 266 of the metadata service 264 for the collaboration calls and associated static metadata for this current process activity ID. The static metadata may include contextual keywords and recommended collaboration activities associated with the current process activity. The keywords may include descriptors, tags, phrases or other searchable [blank] that can be used to improve search results returned to the related expert/feeds/documents/etc. widgets. For example, if the relevant business process relates to mortgage services, a keyword may include “mortgage” as static metadata such that the keyword search for relevant experts, documents, feeds, etc. includes the term “mortagage.” The recommended collaboration activities in the collaboration template may include a list of activities that are relevant to the current process activity.
The PDC application, using the CollaborationService 242, maps the business process obtained from the BPM to the set of collaboration activities that are to be pushed to the PDC UI. The collaboration calls are returned to the CollaborationServiceController 228 of the PDC application and then to the PDC UI Current Task Widget 216 for display.
The disclosed methods, processes, programs, and/or instructions may be encoded in a signal-bearing medium, a computer-readable medium such as a memory, programmed within a device such as on one or more integrated circuits, or processed by a controller or a computer processor. If the methods are performed by software, the software may reside in a memory resident to or interfaced to a communication interface, or any other type of non-volatile or volatile memory. The memory may include an ordered listing of executable instructions for implementing logical functions. A logical function may be implemented through digital circuitry, through source code, through analog circuitry, or through an analog source such as that occurring through an analog electrical, audio, or video signal. The software may be embodied in any computer-readable or signal-bearing medium, for use by, or in connection with, an instruction executable system, apparatus, or device. Such a system may include a computer-based system, a processor-containing system, or another system that may selectively fetch instructions from an instruction executable system, apparatus, or device that may also execute instructions.
The various components of the PDC architecture 200 shown in
The UI components layer 202 of the PDC architecture includes the Current Task, Relevant Documents, Relevant Experts, Relevant Feeds, Process Guidance widget, and Activity Feed widgets. Each may be configured through an administration console.
The communications network may be any private or public communications network or combination of networks. The communications network may be configured to couple one computing device, such as a server, system, database, or other network enabled device, to another device, enabling communication of data between the devices. The communications network may generally be enabled to employ any form of computer-readable media for communicating information from one computing device to another. The communications network may include one or more of a wireless network, a wired network, a local area network (LAN), a wide area network (WAN), a direct connection, such as through a Universal Serial Bus (USB) port, and may include the set of interconnected networks that make up the Internet. The communications network ay implement any communication method by which information may travel between computing devices. For the sake of explanation, the architecture 500 is described as used in a network environment, but the architecture 500 may also operate outside of the network environment.
i) JavaScript Libraries
The PDC UI may utilize the jQuery library. It may also utilize a menu widget, which is based on jQuery, for the process guidance bar. The menu widget may be found at http://www.filamentgroup.com/lab/jquery_ipod_style_and_flyout_menus/.
ii) JavaScript Class Namespacing
JavaScript files used in the application described herein may be namespaced to avoid naming collisions. This may be accomplished by making all properties and functions members of an over-arching object called PDC. The existence of this object may be checked for, and created as needed, at the top of each JavaScript file. Table 1 provides an example of a JavaScript file.
iii) Base JavaScript Files
The PDC UI may be delivered through a collection of JavaScript-based widgets. A back-end web-server 502 may be used to host the widget JavaScript files. A file, PDCBase.js, may be used to load the other JavaScript files and classes.
v) Loading the Widgets
When a client 504 wishes to incorporate the PDC UI into their web site, they may insert a piece of JavaScript code that loads the appropriate JavaScript file from the widget web-server 502. Table 3 provides an example. When the browser 506 loads the JavaScript, it may utilize the Document Object Model (DOM) to construct the widget.
vi) Performing Cross-Domain AJAX Calls
The browser 506 security model may prohibit use of XMLHTTPRequest (which is the basis for AJAX) calls to domains other than the original source of the page. Therefore, the widget may make traditional AJAX calls to the domain from which the containing webpage is served. The PDC UI makes AJAX-style calls to various different tools, often hosted on different domains. To implement this ability, a small Flex application 508 and a proxy server 510 may be utilized.
vii) Flex Application 508
A small Flex application 508 may be loaded on the page and may be given Opx height and width, in order to make the application 508 invisible to the user. The Flex SWF may be hosted on the same domain as the webpage that contains the widgets. When the widget makes an AJAX call, it calls a JavaScript method that utilizes the external interface of Flex to make a Flex method call. This Flex method creates an HTTP request, executes the request, and returns the results by calling a JavaScript method. The Flex application 508 may have one source file and the following methods:
In order for the Flex application 508 to make cross-domain HTTP requests, the server receiving the request deploys a cross-domain XML file. This file grants permission for cross-domain requests to the domain from which the flex application 508 is served. If the Flex application 508 was being served by http://www.[clientdomain].com, for example, and wanted to make a request to https://www.[hostdomain].com, then a crossdomain.xml would be located on the [hostdomain] server 502 with the following content:
ix) Proxy
A back-end proxy 510 may also be used, such as if the target server of the cross-domain call is unable or unwilling to deploy a cross-domain xml file. It may run as a Java servlet and may be deployed on an Apache Tomcat web-server containing a cross-domain file. The back-end proxy 510 may accept GET or POST requests. When the back-end proxy 510 receives a request, it may inspect the request for anactionTargetURL parameter. The back-end proxy 510 may then construct a GET or POST request (depending on what it received), add any remaining parameters from the original request that it received (other than the actionTargetURL parameter), direct the request to the URL specified in the actionTargetURL parameter, and execute the request. The back-end proxy 510 may then forward the response from the request back to the original requestor.
x) PDCXDRequest.js
The file PDCXDRequest.js may implement the class PDC.XDRequest. It may be responsible for interfacing with the Flex application 508 to make HTTP calls. It may include the following methods:
xi) XML Schema
The ProcessServiceController 220 may return XML to the PDC UI. The XML may be constructed using the following elements (with their attributes and children):
(1) Process
(2) Step
(3) PostProcessingAction
PostProcessingAction define what action is taken when a user interacts with the Step or SubStep and may be implemented using LaunchTool. The LaunchTool PostProcessingAction may take the following options:
(4) Tool: defines the specific collaboration tool that may be used
(5) Hierarchy
The process guidance service returns an XML response including the above elements, in the following hierarchy: 1) Process; 2) Steps; then 3) Substeps.
xii) General JavaScript Classes
Several JavaScript classes may be utilized by the different UI components. Each may reside in a separate JavaScript file and be selectively loaded and utilized as needed. The JavaScript files may include:
(1) PDCProcess.js
This file contains the class PDC.PDCProcess and includes properties according to Table 7.
(2) PDCStep.js
This file contains the class PDC.Step and includes properties according to Table 8.
(3) PDCTool.js
This file contains the class PDC.Tool and includes properties according to Table 9.
(4) PDCExpert.js
This file contains the class PDC.Expert and includes properties according to Table 10.
(5) PDCDocument.js
This file contains the class PDC.Document and includes properties according to Table 11.
(6) PDCTip.js
This file contains the class PDC.Tip and includes properties according to Table 12.
(7) PDCXMLParser.js
This file contains the class PDC.XMLParser and includes methods for parsing the XML returned by the process guidance and tasks back-end services. The file utilizes jQuery's built in XML functionality to parse the schema defined above and place the information into the appropriate PDC objects, which are also defined above.
xiii) Process Guidance Bar 512
(1) Overview
The process guidance widget provides insight into the user's current activity/step in the process. The PDC application allows the user to view the entire business process, the steps within the process, and the associated collaboration activities within a given step. The PDC UI also allows the user to click on any of the collaboration activities.
The process guidance bar 512 may be contained in a JavaScript file named PDCPGBar.js, may be in the namespace PDC.PGBar, and may be hosted on the widget web-server. It may use the cross-domain strategy described above to retrieve the current process XML from the ProcessServiceController 220, which will be loaded into iPod-style menus, or the like, with breadcrumbs, which can be found, for example, at the following url: http://www.filamentgroup.com/lab/jquery_ipod_style_and_flyout_menus/. The menu may be modified to contain a small image next to each menu item, which may in turn be populated with the image from the item's imageURL property.
(2) PDC.PGBar Methods
xiv) PDC Toolbox
(1) Overview
The PDC UI may also provide a PDC toolbox. The PDC toolbox is a drop-down menu that opens when the user clicks the toolbox icon. The PDC toolbox may be contained in the file PDCToolbox.js and will be in the namespace PDC.Toolbox. The PDC toolbox may utilize a stack menu plugin, which is contained in the file stack-2.js.
(2) PDC.ToolboxMethods
xv) Task Widget
(1) Overview
A tasks widget provides another drop down menu (similar to those used in the PGBar), but can also be docked on the right side of the business application window. It may be contained in the file PDCTaskWidget.js and will implement the namespace PDC.TaskWidget.
(2) PDC.Tasks Methods
(3) PDC.Tasks Properties
Table 13 shows PDC.Tasks properties.
xvi) Tool Launcher
(1) Overview
When a user performs some action that triggers a ‘LaunchTool’ PostProcessingAction (such as through the process guidance bar or the task widget), the tool is opened using the PDC.ToolLauncher.
(2) PDC.ToolLauncher Methods
xvii) Activity Feed 514
An activity feed widget, such as, for example, the activity feed widget 218 shown in
The service layer of the PDC architecture includes the controllers, core services, and adapters for providing the Process Guidance/Current Task, Relevant Feeds/Experts/Docs, and collaboration tool integration.
The services layer 706 of the PDC application makes a method call to the adapters layer 708 and obtains a current process activity ID. The adapters layer 708 of the PDC application may correspond to one or more of the adapters 246-256 shown in
Based on the metadata list 804 and the activity identification, the PDC application makes an expert request to the ExpertAdapter 252. The PDC application, using the ExpertAdapter 252, obtains an expert list 806 by making calls to external Expert Search services, such as Cisco Pulse® depicted in
The MetadataService 902 then combines the dynamic and static metadata into a merged metadata list 904 and returns the information to the respective Docs/Feeds/Experts services. Each service, in turn, then searches for relevant Docs/Feeds/Experts, respectively, using the search criteria based on the metadata. The MetadataService 902 may merge the dynamic and static metadata by combining each metadata list into a single list. As an alternative, the MetadataService 902 may merge the dynamic and static metadata based on historical queries and the corresponding results.
The PDC application, using the related documents widget 214, requests document identification parameters. The PDC application, using the DocumentServiceController 224, converts the parameter request to an Java DocumentRequest object and calls the DocumentService 238. The PDC application, using the DocumentService 238, obtains an activity identification that identifies the current activity. The PDC application, using the DocumentService 238, requests metadata associated with the current activity from a MetadataService 1004, such as the MetadataService 902 shown in
Based on the metadata list 804 and the activity identification, the PDC application makes a document request to the DocumentAdapter 250. The PDC application, using the DocumentAdapter 250, obtains the document list 1002 by making calls to external an Document Management System. This list may include an identification and location of documents relevant to the current activity being performed in the business application, based on the metadata 1006 and/or the activity identification. The document list 1002 is pushed to the PDC interface may be information based on the current activity/task the user is engaged in with the business application. The identity and location of the relevant documents is pushed to the PDC interface to be integrated with the business application. Links to the relevant documents may also be pushed to the PDC interface to be integrated with the business application.
The PDC application, using the related feed widget 212, requests document identification parameters. The PDC application, using the RelatedFeedServiceController 222, converts the parameter request to an Java RelatedFeedRequest object and calls the RelatedFeedService 236. The PDC application, using the RelatedFeedService 236, obtains an activity identification that identifies the current activity. The PDC application, using the RelatedFeedService 236, requests metadata associated with the current activity from a MetadataService 1104, such as the MetadataService 902 shown in
Based on the metadata list 804 and the activity identification, the PDC application makes a document request to the RelatedFeedAdapter 248. The PDC application, using the RelatedFeedAdapter 248, obtains the related feed list 1102 by making calls to external an external feed service that provides external feeds. This list may include an identification and location of feeds relevant to the current activity being performed in the business application, based on the metadata 1006 and/or the activity identification. The related feed list 1102 is pushed to the PDC interface may be information based on the current activity/task the user is engaged in with the business application. The identity and location of the relevant feeds is pushed to the PDC interface to be integrated with the business application. Links to the relevant feeds may also be pushed to the PDC interface to be integrated with the business application.
i) Common Utility Library
(1) Exception Handling
Business logic will be wrapped around the ‘try’, ‘catch’ blocks identified below for any unexpected events to be caught and any resources that needs to be released will be handled in ‘finally’ block. The ‘catch’ block creates the component (Process Guidance, Activity Feed etc.) specific exception instance and throws to the presentation layer hosting the UI Components; for any other system exception generic ‘Exception’ may be thrown to the presentation layer.
The service layer logs an exception stack traceusing logger.error( )method before throwing the custom exception to the presentation layer. Table 14 provides an example.
(1) Logging
The PDC application may use three of the six logging level provided by the log4j: (1) ERROR—Logging runtime errors or unexpected conditions; (2) INFO—Logging runtime events, critical dataset/ message ID; and (3) DEBUG—Detailed information on the flow through the system, this should be switched off in production environment for better performance of application.
The PDC application may use a property file based logging mechanism for logging the application-specific traces. The following are the steps that may be used to configure and log message:
The external services include the collaboration API libraries and BPM/ESB configurations for BPM/ESB vendors, such as Pega® and Oracle®.
BPM Integration:
The PDC application interacts with the Business Process Management (BPM) system in order to retrieve both the current state of the business process and available documents attached to that process. Integration may be provided with the Pega®, Oracle®, IBM®, or other BPM suites. PDC determines the current state of the business process by making calls to the BPM system web API if there is one in place. If no API is available, configurations and/or code is built within the BPM system to provide the necessary data to the requesting PDC service layer. The same process occurs in order to retrieve any documents attached to the business process.
The PDC application uses the current state of the business process instance to determine the appropriate collaboration activities.
i) Collaboration Tool API Integration
ii) screen sharing capability tool, such as WebEx®
(1) Web conferencing Services
The PDC application may interface with a web conferencing service, such as, for example, Webex®, to deliver web conferencing services through a hosted service offering.
(a) URL API
The URL API is HTTP(S)-based, and provides a convenient, lightweight mechanism to provide browser-based, external hooks into the WebEx® services. The URL API is typically used in enterprise portal integrations to support basic interactions such as Single Sign-On (SSO), scheduling meetings, starting and joining simple meetings, and inviting attendees and presenters.
The URL is formed as follows http://<WebexHostedName>.webex.com/<WebexHostedName>/[m|p|o|h|c].php?AT=[Command]
where,
1. User Login
2. User Logout
3. Start an Impromptu Meeting
4. Invite Attendees
(b) XML Web Services API
The WebEx® XML API uses a Service Oriented Architecture to provide a very comprehensive set of services to external applications needing to interact with one or more WebEx® services.
Tables 18-19 show the XML Services available for use in the development of the application.
(2) Expert Finding Capability Tool
The PDC application may integrate with an expert finding capability tool, such as, for example, Cisco's Pulse®, to aid in selecting and returning a list of appropriate experts based on keywords that will be passed in through HTTP-based API calls. On the backend, the expert finding capability tool may use the keywords to match individual or groups of expert contacts from its internal database. Experts will then be prioritized and returned based on:
Presence
Geography
Organization and Role
A first-identified expert may receive a notification, such as through their IM client, that their assistance is being requested. The expert may accept or deny the request through the IM. If denied, the expert finding capability tool may move on to the next identified expert and repeat the notification sequence. This may continue until an expert accepts the request. Once accepted, expert finding capability tool may return the agent ID of the expert and initiate a video conference with the requesting agent.
(3) Corporate Video Sharing Platform
The PDC application may integrate with a corporate video sharing platform, such as Cisco's Show and Share tool, to allow employees to (1) record a video or screen-recording (2) upload the recording to Show and Share's video repository (3) push related videos to the PDC Related Feeds UI widget
(4) Presence
The PDC application may interface with an enterprise presence service, such as Cisco's Unified Presence Server, to provide real-time information on the status of a user's presence (away, available, busy, etc).
(5) Contact Center
The PDC application may interface with an enterprise contact center, such as Cisco's Unified Contact Center for Enterprise, to allow Contact Center agents (1) to “click-to-call” from an application (2) to automatically open the relevant customer's web page when the customer calls into the Contact Center.
(6) Grapevine
The PDC application may interface with Accenture's Innovation Grapevine application to allow users to (1) add a topic (2) add an idea (3) rate an idea (4) share an idea with other users (5) push relevant ‘seeds’ in the PDC Related Feeds widget
(7) Digital Whiteboard
The PDC application may interface with a digital whiteboard tool such as, for example, Accenture's Whitespace application, to allow users to (1) add an item to a Whitespace ‘board’ (2) create a new Whitespace ‘board’ (3) push relevant ‘board updates’ to the PDC Related Feeds widget.
(8) Multi-Channel Communication Engine
The PDC application may interface with a multi-channel communication engine such as, for example, Backflip™, to provide multiple-channel communication options for the user—SMS, chat, audio, email
It will be appreciated that other communication and collaboration tools may be implemented using the PDC Communication and Collaboration adapters.
The following is an example of implementation of the PDC application in the retail banking industry. Specifically, described below is an example of PDC integration for a banking software that provides a custom interface which brings together a bank's core systems, such as Alnova, SAP and IBM BPM Suite in this example.
For the integration of Process-driven Collaboration, the solution is decoupled from the BPM. Service calls of the banking software are used to manipulate the collaboration interfaces.
To populate the PDC collaboration interface, the collaboration interface utilizes an Interaction Adaptation Layer of the banking software. The PDC application may use business software's service calls in order to access the needed information. Additional service calls may be needed to populate the collaboration widgets.
Table 20 provides examples of expert methods for the Related Expert widgets.
The following is an example of related document method. It can be both process and instance metadata: getDocumentsByMetadata
The following are examples of related Feed methods. It can be both process and instance metadata: getFeedByMetadata
If the banker searches for a customer, a trigger is sent to the collaboration widget that an ‘identifying customer screen’ is being opened. For example, the banker may be searching for a customer whose loan has come to the end. The results are returned to the Site Footer and the banker chooses the customer in the list. The following Site service calls may be utilized:
When the Banker opens an identifying customer screen, their current task will be “Search”. The related experts widget displays the availability of a search for a tech support expert in cases where the banker is not getting accurate or any search result. This may be triggered by a click on “Search” in the Global Navigation Menu or once the identifying customer screen is loaded have a custom JSP code on the page which will communicate to the Related Expert Widget. If the banker enters, for example, data into the “Bank” or “Branch Fields,” the PDC application captures that data and pushes it to the collaboration widget to display additional expert's 1804 specific to the bank or branch.
In this example, the banker next clicks on Search Customer Name, and the following data is displayed via the PDC interface:
When a customer is selected, a customer product list may be displayed by the banking application. An alert is displayed on the customer synthesis page. The banker clicks on it to initiate loan renewal.
Once the banker opens the customer page, the current task widget may contain an Instant WebEx Meeting link to meet with the customer. The Related Expert widget may be populated with the Experts associated with a Products to be proposed table. If the banker clicks on “renew customer loan,” the following data may be displayed via the PDC interface:
Next the banker may navigate to a fulfillment screen of a banking application enhanced by the PDC application. The customer and banker provide all the mandatory information/documents.
When the banker gets to the fulfillment tab, the current task widget may contain Screen Sharing/Simulation. Then banker at this point can share his/her screen to discuss the details of the loan renewal with the customer. The Expert Feed 1804 may list one or more experts identified by the PDC application, such as experts on the specific product and/or an interest rate experts to help determine the appropriate interest rate. For the document the PDC application may push customer documents that already exist in the system.
If the banker clicks on the “update customer data” link, the following data may be displayed via the PDC interface:
The banker may then navigate to a customer details screen of a banking application enhanced by the PDC application.
On this screen the banker can update the customer information. The Current Task of the PDC interface may display Set Preferred Method of Communication. If the banker clicks OK, the following data may be displayed:
The banker may then navigate to a summary screen of a banking application enhanced by the PDC application. On this screen the banker may confirm the information with the customer. In the Current Task area of the PDC interface, the banker is prompted to run a simulation or share their screen if further collaboration is required to serve the customer. If the banker accepts the prompt, the following data may be displayed:
The banker in this example may then navigate to a document upload screen of a banking application enhanced by the PDC application. Through this screen the banker can upload documents. The PDC application may integrate a whitespace collaboration tool. In particular, the PDC interface may display the following:
The banker may then navigate to an amortization table of a banking application enhanced by the PDC application.
The PDC interface may display the following:
The banking application may show a second summary screen of a banking application enhanced by the PDC application. On this screen the banker may review loan details and send for back office validation.
On this screen the banker may click “validate” to send an approval request to a back-office manager. A multi-channel communication engine, such as BackFlip™, may be utilized to rout the approval to the back office manager's phone. The PDC interface may display the following:
The banking application may provide an approver home screen. The PDC interface may display the following in the activity feed area: MOCK received request to approved loan
The banking application may provide an approval/reject loan renewal screen. The user logs in as an approver to review and approve contract.
BackFlip™, or other multi-channel communication protocols, may also be used here to communicate with the user. The PDC interface may display the following:
The banking application may provide a banker home screen showing that the loan was approved. The PDC interface may display the following in the activity feed region: MOCK Loan Approved.
The banking application may include a finalize contract screen. The user may log back in as a banker to print the contract and obtain a signature from the customer.
On this screen the banker may schedule another meeting with customer, print contracts, and finalize. BackFlip™ may be used to send a confirmation request to the customer via SMS. The PDC interface may display the following:
Exemplary aspects, features, and components of the system are described above. However, the PDC system and application may be implemented in many different ways. For example, although some features are shown stored in computer-readable memories (e.g., as logic implemented as computer-executable instructions or as data structures in memory), all or part of the system and its logic and data structures may be stored on, distributed across, or read from other machine-readable media. The media may include hard disks, floppy disks, CD-ROMs, a signal, such as a signal received from a network or received over multiple packets communicated across the network.
The system may be implemented with additional, different, or fewer components. As one example, a processor may be implemented as a microprocessor, a microcontroller, a DSP, an application specific integrated circuit (ASIC), discrete logic, or a combination of other types of circuits or logic. As another example, memories may be DRAM, SRAM, Flash or any other type of memory. The processing capability of the system may be distributed among multiple components, such as among multiple processors and memories, optionally including multiple distributed processing systems. Parameters, databases, and other data structures may be separately stored and managed, may be incorporated into a single memory or database, may be logically and physically organized in many different ways, and may implemented with different types of data structures such as linked lists, hash tables, or implicit storage mechanisms. Logic, such as programs or circuitry, may be combined or split among multiple programs, distributed across several memories and processors, and may be implemented in a library, such as a shared library (e.g., a dynamic link library (DLL)). The DLL, for example, may store code that prepares intermediate mappings or implements a search on the mappings. As another example, the DLL may itself provide all or some of the functionality of the system, tool, or both.
A “computer-readable medium,” “machine-readable medium,” and/or “signal-bearing medium” may include any means that contains, stores, communicates, or transports software for use by or in connection with an instruction executable system, apparatus, or device. The computer-readable medium may selectively be, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. A non-exhaustive list of examples of a computer-readable medium may include: an electrical connection “electronic” having one or more wires, a portable magnetic or optical disk, a volatile memory such as a Random Access Memory “RAM” (electronic), a Read-Only Memory “ROM” (electronic), an Erasable Programmable Read-Only Memory (EPROM or Flash memory) (electronic), or an optical fiber (optical). A computer-readable medium may also include a tangible medium upon which software is printed, as the software may be electronically stored as an image or in another format (e.g., through an optical scan), then compiled, and/or interpreted, or otherwise processed. The processed medium may then be stored in a computer and/or machine memory.
Provided below are service definitions corresponding to the Process Service, such as the Process Service 234 shown in
1. getProcessModel
a. Overview
The process list associated with the given instanceID. The list contains the main process and associated flows utilized as subflows within the main process.
b. Request
c. Response
d. Sample Success Response
e. Complex Data Types
i. ProcessList
This is the root node for the getProcessModel response. It contains all the processes that make up a flow.
ii. Process
This defines a process/flow.
iii. Activity
This is an activity in a process/flow performed by the user or a subflow activity.
iv. ActivityIDList
This is a list of activity ids.
2. getCurrentActivity
a. Overview
This service returns the latest activity a user has participated in. This activity is not necessarily the current activity of the end to end process.
b. Request
c. Response
d. Sample Success Response
e. Complex Data Types
i. Activity
This is an activity in a process/flow performed by the user or a subflow activity.
ii. ActivityIDList
This is a list of activity ids.
3. getParticipantRole
a. Overview
This service returns the given user's role in the process.
b. Request
c. Response
d. Sample Success Response
e. Complex Data Types
i. Role
This is a role held by a user in the business process.
4. getInstanceMetadata
a. Overview
This service returns the metadata associated with the latest activity the given user has interacted with. This activity is not necessarily the current activity of the end to end process.
b. Request
c. Response
d. Sample Success Response
e. Complex Data Types
i. MetadataList
This is the list of metadata items in the latest activity the user has participated in.
ii. Metadata
This is the set of keywords/values associated with a specific field (i.e. in a form) or response.
5. getInstanceDocuments
a. Overview
This service returns the documents associated/attached to the given process instance.
b. Request
c. Response
d. Sample Success Response
e. Complex Data Types
i. DocumentList
This is the list of documents associated/attached to the process instance.
iii. Document
This is a document that is associated/attached to a process instance.
Provided below is a interface definition of ProcessAdapter 246, shown in the PDC architecture shown in
getProcessModel returns an object of type ProcessList (defined in PDC code). getProcessModel is used by the process guidance widget to display the activities that the user partakes in within the end to end business process. getCurrenActivity returns an object of type Activity (defined in PDC code). getCurrentActivity is used by the widgets to determine the current activity within the process instance. getParticipantRole is used by PDC to retrieve the user's role and perform subsequent filtering on contextual data (Experts, Document, Alerts). getInstanceMetadata returns a list of String objects. getInstanceMetadata is used by PDC to retrieve the relevant metadata (values) from the process instance. This is used to query different services to filter and retrieve contextual data (Experts, Documents, Alerts). getInstanceDocuments return an object of type DocumentList (defined in PDC code). getInstanceDocuments is used by PDC to retrieve the documents associated with the process instance and display them to the user.
While various embodiments of the disclosure have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the disclosure. Accordingly, the disclosure is not to be restricted except in light of the attached claims and their equivalents.
This application claims priority to U.S. Provisional Patent Application No. 61/389,860, filed Oct. 5, 2010, which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61389860 | Oct 2010 | US |