310 likes | 437 Views
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
E N D
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 Development CHART_T Chart(POJO) Data Dictionary ORMMap Lookups and Inquiries MaintenanceDocuments TransactionalDocuments 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
Data Dictionary • Business Objects • Attributes • Lookups • Inquiries • Relationships • Document Definitions • Sections • Fields • 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 • Labels • UI Widgets • 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
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
KNS usage of KIM Permissions • Many permissions exist that are used by KNS, examples: • Edit Document • Look Up Records • Use Screen • Create / Maintain Records