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

30
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS

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

Page 1: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Eric Westfall – Indiana UniversityJeremy Hanson – Iowa State University

Building Applications with the KNS

Page 2: Eric Westfall – Indiana University Jeremy 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

Page 3: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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

Page 4: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

KNS Diagram

Page 5: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

KNS Development

CHART_TChart

(POJO)ORMMap

Data Dictionary

Lookups and

Inquiries

MaintenanceDocuments

TransactionalDocuments

Workflow(KEW)

Page 6: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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.

Page 7: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Other KNS Features

• Data Dictionary• Question component• Notes and attachments• Pluggable business rules• KIM Integration for Authorization• System parameters

Page 8: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Lookup Page

Page 9: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Inquiry Page

Page 10: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Maintenance Document

Page 11: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Business Objects

• Attributeso LabelsoUI WidgetsoValidation

• Lookups• Inquiries• Relationships

Page 12: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Data Dictionary

• Business Objectso Attributeso Lookupso Inquirieso Relationships

• Document Definitionso Sectionso Fieldso Collections

Page 13: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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

Page 14: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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.

Page 15: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Types of Documents

• Two types of documents

• Maintenance Documents

• Transactional Documents

Page 16: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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

Page 17: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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

Page 18: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

The Document Hierarchy

Page 19: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Parallel Hierarchies

Page 20: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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”

Page 21: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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

Page 22: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Permission Data Model

Page 23: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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

Page 24: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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

Page 25: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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

Page 26: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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()

Page 27: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

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?

Page 28: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Building a maintenance document (5)

Routing is set through a standard KEW document type

Page 29: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Building a maintenance document (6)

Add a link in your portal...

...and you're done!

Page 30: Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.

Final Maintenance Document Screen