Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications...

Preview:

Citation preview

Eric Westfall – Indiana UniversityJeremy Hanson – Iowa State University

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 functionalityo 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

• 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_TChart

(POJO)ORMMap

Data Dictionary

Lookups and

Inquiries

MaintenanceDocuments

TransactionalDocuments

Workflow(KEW)

KNS – The Toolkit

• KNS frameworks provide infrastructure for common business object operations.o Lookups allow users to find and return

specific values.o Inquiries allow users to see related data for a

specific value’s record.o 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

Business Objects

• Attributeso LabelsoUI WidgetsoValidation

• Lookups• Inquiries• Relationships

Data Dictionary

• Business Objectso Attributeso Lookupso Inquirieso Relationships

• Document Definitionso Sectionso Fieldso Collections

The Data Dictionary

Business Object XML• Provides metadata for business object properties

o 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 Presentation Controller or

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.

Types of Documents

• Two types of documents

• Maintenance Documents

• Transactional Documents

Maintenance Documents

• Creates, Edits, Copies, and Inactivates Business Objects

• 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

Transactional Documents

• Any service you can think of• 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):o Notes and attachmentso 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 permissiono Use Screen, Initiate Document, Maintain Records, etc.

• A Permission is created from a template and has more specific information identified on it’s permission detailso 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 checkingo Example: permission checks based on hierarchical data

• Example Service Operations:o Is principal authorized by permission name w/detailso Is principal authorized by permission template name

w/detailso Get assignees for permissiono Get authorized permissions for principalo 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:o Edit Documento Look Up Recordso Use Screeno Create / Maintain Records

Building a maintenance document (1)

We start with a business object:• a Java class• a mapping for the persistence layer• a business object data dictionary file • our goal: create new ones, edit or inactivate old ones

Building a maintenance document (2)

Step 1: Build a data dictionary file• Business object class to maintain• The maintainable• Locking keys• A rules class• Default existence checks• The authorizer and presentation controller• KEW document type • The document's sections and fields

Building a maintenance document (3)

The business rules class• React to events which occur on the document

o saveo routeo approve

• You have access to user input through the getNewMaintainable().getBusinessObject()

Building a maintenance document (4)

Set your KIM permissions• Who can initiate this document?• Who can edit the maintenance document?• What fields and sections can be viewed and edited?

Building a maintenance document (5)

Routing is set through a standard KEW document type

Building a maintenance document (6)

Add a link in your portal...

...and you're done!

Final Maintenance Document Screen

Recommended