Building Applications with the KNS
The History of the KNS KFS spent a large amount of development time up front, using the best talent from each of the partner institutions Came up with a foundation on which to build KFS - the Kuali Nervous System It focused on a unified approach to development of functionality – A standard way to use workflow, perform CRUD operations, handle business transactions KNS extracted into Rice as a module
KNS Overview The Kuali Nervous System provides a rich set of open source functionality which can be used to build an electronic document – started as part of the Kuali Financial Systems project – now part of Rice and Kuali Research Administration uses it too
KNS Overview (2) Provides reusable code, shared services, integration layer, and a development strategy Provides a common look and feel through screen drawing framework A document (business process) centric model with workflow as a core concept
KNS Diagram
KNS Development CHART_T Chart (POJO) ORM Map Data Dictionary Lookups and Inquiries Maintenance Documents Transactional Documents Workflow (KEW)
KNS – The Toolkit KNS frameworks provide infrastructure for common business object operations. – Lookups allow users to find and return specific values. – Inquiries allow users to see related data for a specific value’s record. – Maintenance documents create or update new business object entities.
Other KNS Features Data Dictionary Question component Notes and attachments Pluggable business rules KIM Integration for Authorization System parameters
Lookup Page
Inquiry Page
Maintenance Document
Data Dictionary Business Objects o Attributes o Lookups o Inquiries o Relationships Document Definitions o Sections o Fields o Collections
The Data Dictionary Business Object XML Provides metadata for business object properties – i.e. maxLength, labels, control types Metadata is accessible in JSPs for business object field rendering Contains lookup and inquiry sections used for constructing those screens by the frameworks
The Data Dictionary (cont) Transactional Document XML Associates a Rule class and Authorizer class with the document type Maps a document class to a workflow document name and document type Maintenance Document XML Has many of the same features, but also defines the layout of the maintenance document itself.
Business Objects Attributes o Labels o UI Widgets o Validation Lookups Inquiries Relationships
Types of Documents Two types of documents – Maintenance Documents – Transactional Documents
Maintenance Documents Creates, Edits, Copies, and Inactivates Business Objects
Maintenance Documents (2) No GUI programming required, user interface is rendered by framework These are used for maintaining data An easy way to maintain support tables in a database Supports creation of new records and editing of existing records Examples include: – Budget rates – Project codes
Transactional Documents Any service you can think of
Transactional Documents (2) These are data-entry centric documents or “transactions” that model the business processes Examples include: Proposal Development, Journal Entry, Payment Reimbursement Built on a case by case basis using the Kuali Rice tag libraries (encompass snippets of UI behavior): – Notes and attachments – Workflow route log (audit log) Integrated with workflow
The Document Hierarchy
Parallel Hierarchies
KIM - Permissions KIM has the concepts of Permission Templates and Permissions Permission Template represents some course-grained permission – Use Screen, Initiate Document, Maintain Records, etc. A Permission is created from a template and has more specific information identified on it’s permission details – for example “Initiate Document” of type “Transfer of Funds”
KIM - Permissions Evaluation of permissions is handled by the permission service. KIM provides plug points for implementing custom logic for permission checking – Example: permission checks based on hierarchical data Example Service Operations: – Is principal authorized by permission name w/details – Is principal authorized by permission template name w/details – Get assignees for permission – Get authorized permissions for principal – Get ids of roles that have given permission
Permission Data Model
KNS usage of KIM Permissions Many permissions exist that are used by KNS, examples: – Edit Document – Look Up Records – Use Screen – Create / Maintain Records