This document describes an SOA workflow API that exposes workflow functionality through REST/SOAP APIs. It includes a component diagram, implementation overview, list of API endpoints, database structure, and details about the error handling mechanism. The API allows clients to create and manage workflow processes and tasks, get task histories, and integrate with additional systems like email and SharePoint for notifications and attachments. It provides functionality for process and user management, task initiation and updates, and retrieving task lists and reports through a set of administrative and standard APIs.
1. SOA Workflow API
• Component Diagram (Cloud version)
• Implementation overview
• Database Components
• API’s List
• Use case diagram (to be included)
• Error handler mechanism
3. Implementation
Overview
• All workflow API’s exposed to clients over the
network
• Workflow can be initiated by client
• SOA first create the task using Human task service
then create entries in custom DB tables
• All task related histories can be retrieved from DB
tables itself through API’s
• In case of exceptions SOA will not allow any
actions to the errored task further till the issue
resolved through error handler mechanism
4. Implementation
Overview (Contd..)
• Process versions can be maintained, and decision
can be taken on whether to terminate older
version tasks or not
• Email notifications and look and feel can be
changed through API itself w.r.t client’s branding
• API’s are ready for mobile app development with
REST/SOAP variants
• New process can be added dynamically through
API for supporting workflow for it (with
additional pricing)
5. Implementation
Overview (Contd..)
• Process creation involves following steps
Create process entry
Create Approval matrix
Create email template
• Similarly new users can be added through API on
demand
• User repository can be a custom table or any other
user repositories (AD, OID etc)
• Currently email notification is supported but in future
SMS service also possible through SMS gateway
• All workflow related attachments are uploaded into
SharePoint and accessed through secured links
6. API’s list
• Below are the few of the API’s that can be used by client application
createProcess (Admin API)
createProcessInstance
manageUser (create/update/delete) (Admin API)
manageEmailTemplate (Admin API)
manageApprovalMatrix (Admin API)
initiateTask
getTaskList
getTaskHistory
updateOutcome
updateVacation
reAssignTask
Request/Submit Info
viewTaskReports (Admin API)
etc
7. Database Components
(Tables)
• Process
– To store process metadata like, process id, name, error assignee etc
• ProcessInstance
– To store each process transaction data like, creator, approval type,
status etc.
• Map_ProcessAndApprovers
– To manage approval matrix like approver list, approval type, approval
sequence, SLA etc
• USERS_MASTER
– To store user list with their email, mobile etc. This can be a User
repository like OID, AD as well.
• EmailCategoryTags
– To store email notification template
8. Database Components
(Tables) contd..
• DashBoardTable
– This table is used to retrieve requested users
(logged in) task list,
Submitted Tasks (In Progress, Approved, Rejected,
Cancelled)
Pending Tasks
• WorklistTable
– This table will have the history of all approvers
interactions/action with each tasks.
9. Database Components
(PL/SQL)
• GetDashBoardData
– This SP will be called when ‘getTaskList’ API is invoked
Tables involved:
DashBoardTable (for submitted/pending task list)
WorklistTable (for brief approver icons)
• GetApproverHistory
– This SP will be called when ‘getTaskHistory’ API is
invoked
Tables involved:
WorklistTable (for complete task history like, each approvers and
their status etc)
10. Database Components
(PL/SQL) contd..
• GetEmailNotitifyHdr
– This SP will be called for to get email template for sending
notification
Tables involved:
EmailCategoryTags (to get Approver/ Submitter email template)
• InsertUpdateWFAction
– This SP will be called when following API’s invoked
updateOutcome
requestMoreInfo
submitInfo
Tables involved:
WorklistTable (to update action against actioned approver)
DashBoardTable (to disable the view from dash board for actioned user)
ProcessInstance (update task status in case of overall task outcome
concluded)