OLE License Request Technical Specification

Rice2.x Framework

License Request is going to be developed using the new Rice2.x codebase which offers rich UI via the KRAD framework. The various features pertaining to License Request will be tested and demonstrated independently of OLE_Rice1.x. Workflow for License Request will be developed using KRMS framework. License workflow will be integrated with Requisition workflow which exist in OLE_Rice1.x.

License Request :

  • A KRAD Document used to create/view/update a License Request Document.
  • Participants:
  • FrameWork: Rice2.x
  • workflow:

License Request Workflow

Compare License Flow
 

License Negotiation Flow

License Request Search:

  • Simple KRAD screen will be used to search the License Request Documents using the Title, License Request Status, Owned By, Current Location.
  • The Result fields will be Doc Id, Bib Title, License Request Status, Date Last Modified, Initiator, Current Location.
  • This Search will have the option for saving with a name.
  • Participants:
  • FrameWork: Rice2.x

Manage CheckList:

  • A simple KRAD Maintenance Document will used for upload/create, search, delete past checklist and update checklist description and active status
  • This will have checklist name,checklist author and active indicator as the search criterias.
  • Participants:
  • FrameWork: Rice2.x

Agreement Search:

  • A simple KRAD screen which will search the agreement details from the docstore.
  • Search filters will be agreement title, contract number, licensee, licensor/agent and the result fields will be agreement title, licensee, licensor/agent, date modified and the agreement method.
  • Participants:
  • FrameWork: Rice2.x

Requistion :

  • Existing Transactional Document in Rice 1.x
  • Contains a checkbox for the License Request initiation.
  • Participants:
  • FrameWork: Rice1.x
  • workflow:

Requisition Search:

  • Existing Requisition Search screen in Rice 1.x.Extended the Requisition Search to have the new Licensing Workflow value ALNC- Awaiting Licensing Negotiation Completion, DLNF- Disapproved- License Negotiation Failed in the Requisition Status.
  • Participants:
  • FrameWork : Rice1.x

Order Holding Queue Search:

  • Existing Order Holding Queue Search screen in Rice 1.x.Modified Order Holding Queue to have the new Licensing Workflow value ALNC- Awaiting Licensing Negotiation Completion, DLNF- Disapproved- License Negotiation Failed in the Requisition Status.
  • Participants:
  • FrameWork : Rice1.x

Security:

General Business Rules :

  • Requisition can link to only one or no License Request.
  • A License request can link to one or many Agreement documents.
  • A License request can link to only one Agreement if License Request Type is New.
  • A License request can link to one or more Agreement if License Request Type is Renewal or Addendum.
  • Agreements can be linked to 1:Many Agreement Documents.
  • Version all Agreement Documents.
  • Upon uploading Agreement Documents through the License Request- the License Request, Requisition, Agreement, and Agreement Documents should be linked with each other.
  • Agreements can be linked to 1:Many License Requests.
  • Agreement meta data and content can only be “viewed” from the License Request. It can be edited only through ONIX-PL license Editor.       

 Roles :

 a) OLE_Licenses : OLE_Licenses are the assignees for Requisitions requiring licenses or license negotiations. This role is the “owner” of the license agreement, and has full edit, attachment, routing, and status change permissions. Can create, edit, and delete Agreements. Can upload, edit, and delete Agreement Documents. Can edit a License Request to record events or send a license request. Can select only from allowable "intiate licensing workflow" options: License Needed, License Requested, Licence Received, In Process, In Negotiation

 b) OLE_LicenseManager : OLE_Licenses are the assignees for Requisitions requiring licenses or license negotiations. This role is the “owner” of the license agreement, and has full edit, attachment, routing, and status change permissions. Can create, edit, and delete Agreements. Can upload, edit, and delete Agreement Documents. Can edit a License Request to record events or send a license request. Can initiate any selection from "initiate licensing
workflow"

 c) OLE_Licensing_Approver : Permission to add to event log, execute Action buttons, Ad hoc routing, edoc Notes/Attachments. Cannot edit Agreements,change or upload Agreement documents, or edit status. Blanket Approve (to complete workflow), or Disapprove (requires Event Log entry and returns edoc to designated workflow.

 d) OLE_LicenseConfiguration : View, Edit, Create, delete Checklists only.

 e) OLE_Signatory : View, Edit, download/upload Agreement Documents. Can edit a License Request to change status, store correspondence, or add notes.

 f) OLE_User : Can add to Event log, upload Agreement Docs, and Submit if routed adhoc FYI or Acknowledge. Cannot modify Agreements (view only). Cannot delete anything. Cannot download.

 g) OLE_LicenseViewer : This role can "view only" Agreements, Agreement docs, License Requests. No editing or download.

 h) OLE_LicenseReviewer: View only License Request and Agreement; download & upload agreement docs.

People Flow Logic : Below table lists the People Work flow based on the Rule. The rule need to pass two determinants (License Request Type and Agreement Method). Based on the Rule evaluation People Flow (workflow) Allowed,Not Allowed, Required determined.

Based on the user selection in drop down provided for Initiate License Workflow (selected by user in OLE_LicenseManager Role) and upon submission of document, the rule is evaluated and document routed to the users in People flow based on the selection.

If unallowable workflow status is selected, determined by the rule evaluation, the exception message (“Owner must select allowable workflow for this license request type and Agreement Method.” ) is shown.

Rule

Allowed

*Not Allowed*

Required

Approval Requirements

License Request Type = New and Agreement Method= Negotiated License

 

Manual (Self), Signatory Only, Review Only, Approval Only Renewal, Addendum

Full Approval

Need to be approved by ALL USERS in role.

License Request Type = New and Agreement Method= SERU

Full Approval,Signatory Only
Review Only, Approval Only

Manual (Self), Renewal,Addendum

 

Need to be approved by ALL USERS in role.

License Request Type = New and Agreement Method = *Copyright Law*

Full Approval,Review Only, Approval Only

Manual (Self), Renewal,Addendum

 

ANY in Role.

License Request Type = New and Agreement Method = *Click Thru*

Review Only, Approval Only

Manual (Self), Renewal,Addendum

 

ANY in Role.

License Request Type = New and Agreement Method = *Shrink Wrap*

Review Only, Approval Only 

Manual (Self), Renewal,Addendum, Full Approval

 

ANY in Role.

License Request Type = Renewal and Agreement Method= Negotiated License

 

Manual (Self),Signatory Only, Review Only, Approval Only Full Approval, Addendum

Renewal

Need to be approved by ALL USERS in role.

License Request Type = Renewal and Agreement Method= SERU

Manual (Self),Signatory Only, Review Only, Approval Only Full Approval, Renewal

Addendum

 

ANY in Role.

License Request Type = Renewal and Agreement Method = *Copyright Law*

Manual (Self), Signatory Only, Review Only, Approval Only Full Approval, Renewal

Addendum

 

ANY in Role.

License Request Type = Addendum and Agreement Method= Negotiated License

Manual (Self),Signatory Only, Review Only, Approval Only Full Approval, Addendum

Renewal

 

ANY in Role.

License Request Type = Addendum and Agreement Method = SERU

Manual (Self), Signatory Only, Review Only, Approval Only Full Approval, Addendum

Renewal

 

ANY in Role.

 

Roles assigned to People Flow :

Manual (Self) : Blanket Approve by the owner of the Document.

Review Only : Initiated by selecting Pending Review (PREV) by OLE_LicenseManager and submits the document. OLE_LicensingReveiwer Role approves the document. Upon Complete status changed to Review Complete (RVWC) .

Signatory Only : Initiated by selecting Pending Signature(PSIG) by OLE_LicenseManager and submits the document. Document moves to action list of OLE_Signatory Role. Upon Complete status changed to Signature Complete(SIGC).

Approval Only : Initiated by selecting Pending Approval (PAPP) by OLE_LicenseManager and submits the document. OLE_LicensingApprover Role approves or disapproves the document. If document is approved status changed to Complete (LC) and document continues with Requisition workflow, else status changed to Negotiation Failed. (LNF) . Requisition document owner is notified of the status change.

Full Approval : Document first goes to Review Step. Upon completion status changed to Pending University (PUNI) . University processing complete (UNIC) selected manually by OLE_LicenseManager and document submitted again. Document goes to Signatory step and upon completion goes to Approval step.

Renewal : Document first goes to Review Step. Upon completion status changed to Pending University (PUNI) . University processing complete (UNIC) selected manually by OLE_LicenseManager and document submitted again. Document goes to Signatory step and upon completion goes to Approval step.

Addendum : Document first goes to Review Step. Upon completion document goes to Signatory step and upon completion goes to Approval step.

Services:

Agreement lookup search :

  • OleAgreementSearchService
    • getAgreementSearchResults
    • getAgreementSearchResults(Map agreementFilters)

License Request create/Search:

  • OleLicenseRequestCreateService (invoked by requisition submit)
    • createLicenseRequest
  • OleLicenseRequestService
    • generateAgreement
    • ingestAgreement
    • processAgreementResponse
    • getLicenseRequestSearchResults(Map licenseFilters)
    • Data Model

XML Ingest for KRMS Builder:

        Related jira - https://jira.kuali.org/browse/OLE-3144

   Sample xml for creating Rules:  license.xml

   1) The above xml contains list of Agendas.

   2) An Agenda contains list of Rules,each rule contains either a simple proposition or compound proposition and true Actions.

      a) A Simple proposition can be validated in two different ways namely

                        LHS & RHS  validations (LHS-Term,RHS-Constant)

                        Function validations(Term as argument).

      b) A Compound proposition is a collection of Simple proposition with an operand.

      c) If Proposition of the given rule becomes true, true Actions will be executed which contain list of action.

                      An Action contain  i) service name (e.g.approvalPeopleFlowActionTypeService,notificationPeopleFlowActionTypeService) - to define whether to approve or notify the document.

                                                  j) name - people flow name which is already defined through script, the defined people flow contain certain predefined roles(e.g. OLE_Signatory etc.).

   3)The Following rules are implemented:

   a) Rule1 (newNegFAppCheck) : Validates whether the licenseType is New,the agreementMethod is Negotiated License and the workflowName is Full Approval, if this validation becomes true, newNegFApp People Flow Action  will be executed which contains certain predefined roles namely OLE_LicenseReviewer,OLE_LicenseManager,OLE_Signatory and OLE_Licensing_Approver.

   b) Rule2 (newSERUSignCheck) : Validates whether the licenseType is New,the agreementMethod is SERU and the workflowName is Signatory Only, if this validation becomes true, newSERUSign People Flow Action  will be executed which contains certain predefined roles namely OLE_Signatory and OLE_LicenseManager.

   c) Rule3 (newSERURevCheck) : Validates whether the licenseType is New,the agreementMethod is SERU and the workflowName is Review Only, if this validation becomes true, newSERURev People Flow Action   will be executed which contains certain predefined roles namely OLE_LicenseReviewer and OLE_LicenseManager.

   d) Rule4 (newSERUAppCheck) : Validates whether the licenseType is New,the agreementMethod is SERU and the workflowName is Approval Only, if this validation becomes true, newSERUApp People Flow Action  will be executed which contains certain predefined roles namely OLE_Licensing_Approver and OLE_LicenseManager.

   e) Rule5 (newSERUFAppCheck) : Validates whether the licenseType is New,the agreementMethod is SERU and the workflowName is Full Approval, if this validation becomes true, newSERUFApp People Flow Action  will be executed which contains certain predefined roles namely OLE_LicenseReviewer,OLE_LicenseManager,OLE_Signatory and OLE_Licensing_Approver.

   f) Rule6 (newCopyRevCheck) : Validates whether the licenseType is New,the agreementMethod is CopyrightLaw and the workflowName is Review Only, if this validation becomes true, newCopyRev People Flow Action  will be executed which contains certain predefined roles namely OLE_LicenseReviewer and OLE_LicenseManager.

   g) Rule7 (newCopyAppCheck) : Validates whether the licenseType is New,the agreementMethod is CopyrightLaw and the workflowName is Approval Only, if this validation becomes true, newCopyApp People Flow Action  will be executed which contains certain predefined roles namely OLE_Licensing_Approver and OLE_LicenseManager.

   h) Rule8 (newCopyFAppCheck) : Validates whether the licenseType is New,the agreementMethod is CopyrightLaw and the workflowName is Full Approval, if this validation becomes true, newCopyFApp People Flow Action  will be executed which contains certain predefined roles namely OLE_LicenseReviewer,OLE_LicenseManager,OLE_Signatory and OLE_Licensing_Approver.

   i) Rule9 (newClickRevCheck) : Validates whether the licenseType is New,the agreementMethod is ClickThru and the workflowName is Review Only, if this validation becomes true, newClickRev People Flow Action   will be executed which contains certain predefined roles namely OLE_LicenseReviewer and OLE_LicenseManager.

   j) Rule10 (newClickAppCheck) : Validates whether the licenseType is New,the agreementMethod is ClickThru and the workflowName is Approval Only, if this validation becomes true, newClickApp People Flow Action  will be executed which contains certain predefined roles namely OLE_Licensing_Approver and OLE_LicenseManager.

   k) Rule11 (newShrinkRevCheck) : Validates whether the licenseType is New,the agreementMethod is ShrinkWrap and the workflowName is Review Only, if this validation becomes true, newShrinkRev People Flow Action  will be executed which contains certain predefined roles namely OLE_LicenseReviewer and OLE_LicenseManager.

   l) Rule12 (newShrinkAppCheck) : Validates whether the licenseType is New,the agreementMethod is ShrinkWrap and the workflowName is Approval Only, if this validation becomes true, newShrinkApp People Flow Action  will be executed which contains certain predefined roles namely OLE_Licensing_Approver and OLE_LicenseManager.

   m) Rule13 (RenNegRenCheck) : Validates whether the licenseType is Renewal,the agreementMethod is Negotiated License and the workflowName is Renewal, if this validation becomes true, RenNegRen People Flow Action  will be executed which contains certain predefined roles namely OLE_LicenseReviewer,OLE_LicenseManager,OLE_Signatory and OLE_Licensing_Approver.

   n) Rule14 (renSERUSignCheck) : Validates whether the licenseType is Renewal,the agreementMethod is SERU and the workflowName is Signatory Only, if this validation becomes true, renSERUSign People Flow Action  will be executed which contains certain predefined roles OLE_Signatory and OLE_LicenseManager.

   o) Rule15 (renSERURevCheck) : Validates whether the licenseType is Renewal,the agreementMethod is SERU and the workflowName is Review Only, if this validation becomes true, renSERURev People Flow Action  will be executed which contains certain predefined roles namely OLE_LicenseReviewer and OLE_LicenseManager.

   p) Rule16 (renSERUAppCheck) : Validates whether the licenseType is Renewal,the agreementMethod is SERU and the workflowName is Approval Only, if this validation becomes true, renSERUApp People Flow Action  will be executed which contains certain predefined roles namely OLE_Licensing_Approver and OLE_LicenseManager.

   q) Rule17 (renSERUFAppCheck) : Validates whether the licenseType is Renewal,the agreementMethod is SERU and the workflowName is Full Approval, if this validation becomes true, renSERUFApp People Flow Action  will be executed which contains certain predefined roles namely OLE_LicenseReviewer,OLE_LicenseManager,OLE_Signatory and OLE_Licensing_Approver.

   r) Rule18 (renSERURenCheck) :Validates whether the licenseType is Renewal,the agreementMethod is SERU and the workflowName is Renewal, if this validation becomes true, renSERURen People Flow Action  will be executed which contains certain predefined roles namely OLE_LicenseReviewer,OLE_LicenseManager,OLE_Signatory and OLE_Licensing_Approver.

   s) Rule19 (renCopyRevCheck) : Validates whether the licenseType is Renewal,the agreementMethod is CopyrightLaw and the workflowName is Review Only, if this validation becomes true, renCopyRev People Flow Action  will be executed which contains certain predefined roles namely OLE_LicenseReviewer and OLE_LicenseManager.

   t) Rule16 (renCopyAppCheck) : Validates whether the licenseType is Renewal,the agreementMethod is CopyrightLaw and the workflowName is Approval Only,, if this validation becomes true, renCopyApp People Flow Action  will be executed which contains certain predefined roles namely OLE_Licensing_Approver and OLE_LicenseManager.

   u) Rule17 (renCopyFAppCheck) : Validates whether the licenseType is Renewal,the agreementMethod is CopyrightLaw and the workflowName is Full Approval, if this validation becomes true, renCopyFApp People Flow Action  will be executed which contains certain predefined roles namely OLE_LicenseReviewer,OLE_LicenseManager,OLE_Signatory and OLE_Licensing_Approver.

   v) Rule18 (renCopyRenCheck) : Validates whether the licenseType is Renewal,the agreementMethod is CopyrightLaw and the workflowName is Renewal, if this validation becomes true, renCopyRen People Flow Action  will be executed which contains certain predefined roles namely OLE_LicenseReviewer,OLE_LicenseManager,OLE_Signatory and OLE_Licensing_Approver.

etc..

If None of the above rules becomes true, validation message should be thrown in the screen.

4) Admin can add a new rule by adding a rule tag in the license.xml , changing the constant for licenseType,agreementMethod and workflowName if needed, and the People Flow Action should be predefined with certain roles,the  name of Predefined People Flow should be given under action name.

Operated as a Community Resource by the Open Library Foundation