420 likes | 651 Views
Building KFS using KNS. Presented by. Building KFS using KNS. 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
E N D
Building KFS using KNS Presented by
Building KFS using KNS 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
What is an eDoc? A conglomeration of business objects A user can enter values on and have them validated Routed in the Kuali Enterprise Workflow engine Associates authorizations with functionality
When finalized, does a service The platform: your browser Overview Of Documents
Types of Docs • Two types of documents • Maintenance Documents • Transactional Documents
Maintenance Documents • Creates, Edits, Copies, and Inactivates Business Objects
Transactional Documents • Any service you can think of
Business Objects Central to the KNS frameworks Represent entities of the business domain Plain Old Java Objects Mapped to tables using OJB Transferred through application layers
Business Objects On the Move! Business Objects
Business Objects can contain other child business objects A document can contain many of these course grained business objects Business Objects
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.
Lookup Example Lookups/Inquiries
Inquiry Example Lookups/Inquiries
Maintenance Document Example Maintenance
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
Transactional Document XML Maps a document class to a document name (workflow) and document type Associates a Rule class and Authorizer class with the document type Defines initiation workgroup Indicates whether the transaction can be copied or error corrected Defines title and description for the document The Data Dictionary
Workflow • Now we need to decide who all gets to approve our document…
Configured by XML Rules decide what goes where Also: we set document search functionality here Workflow
KFS – The Classes A document is also Business Object but one that implements the ‘Document’ interface But, of course, there’s a large infrastructure that you can extend
The Document Hierarchy The Document Hierarchy
Document Hierarchy • If you’ve got accounting lines on a document, you’ll be extending AccountingDocumentBase • lots of base functionality for accounting documents
Parallel Hierarchies Parallel Hierarchies
Business Rules Central to the KFS! A rule class is linked to a document through the document’s data dictionary Rules are in code, but are highly customizable System Parameters Redefine rule class in the data dictionary The rule classes follow the document hierarchy, so many validations can be inherited
Rules respond to actions on a document like save or route Rules receive a copy of the object to validate Errors are added to a Global Map Errors are associated with a document property so they can be displayed near the invalid property Business Rules
Document Authorizers Even with rules and permissions, not all users can access all documents Document Authorizers are the guards!
Document Authorizers Document authorizers tell whether a document Can be initiated by the current user What fields can be changed by the current user Can be routed, saved, or approved by the current user
Document Service Provides common document Service methods What can Document Service do for you? Get a new Document instance Retrieve a current document Validate (by calling rules engine) and persist a document
The Document Face KFS uses Struts That means each doc needs: A form that wraps the document An action to defer to services JSP pages to show everything Uses JSP taglets
Document Tags Document Page Tag Document Overview Tag
Accounting Lines Tag Document Tags
Pending Entries Tag Document Tags Notes Tag
Route Log Tag Document Tags
Document Controls Tag Document Tags
Services • Finally, when our doc goes to final, it needs to do something! Thankfully, we have a rich service library in KFS that can be extended, changed, and used by documents to do their transaction
1. CreateBusiness Objects, Data Dictionary files, and the Document object The Document Recipe
2. Create a JSP file and include common tags. Then create tags for specific content The Document Recipe
3. Create Action form for holding the document and Action class for handling requests The Document Recipe
4. Create a Rule class and write rules for approve, route, and other events The Document Recipe
5. Create an Authorizer class to export any custom permission schemes The Document Recipe
6. Configure the Workflow XML that describes how the document will Route The Document Recipe
Credit Card Receipt Demo & Code Walkthrough
Now You Talk! Questions? Comments?