Skip to end of metadata
Go to start of metadata

Analysis JIRA: KULRICE-8792 - Data cannot be retrieved due to an unexpected error

Google Docs: Inquiry Gap AnalysisInquiry Permission Gap Analysis

Features

Conversion Notes : Inquiry

Focus Group Slides : Technical Focus Group Slides

ID

KNS Feature

Implemented in KRAD

Notes

User GuideKNS SampleKRAD Sample
I1

Inquiry action can be invoked from anywhere by passing the BO class and a set of unique keys.

  • These are usually the primary key(s), but they do not have to be. The InquiryForm class looks for a list of alternate keys. However, this really seems limited to EBOs. (E.g. allow principalName instead of principalId for Person inquiries.) Any keys not in the PK list or this alternate list will be dropped.
  • If, for whatever reason, more than one result is returned, only the first is given. This function currently uses the lookup service.

(tick)

 

n/a

Person inquiry using principalName as key

Person inquiry using principalId as key 

Person inquiry using principalName as key

Person inquiry using principalId as key  

I2

Support for redirection of inquiry pages for EBO classes. It looks up the inquiry URL from the appropriate module service and redirects the display to that URL.

(tick)

 

IM1  
I3

Bombs the inquiry if enough parameters are not passed.

(tick)

 

n/agroup inquiry without keyTravel Account Type inquiry without key
I4

Blows with a fairly unfriendly error message if the inquiry fails to find a matching record.

(tick)

 

n/aGroup inquiry with invalid keyTravel Account Type inquiry with invalid key
I5

KualiInquiryAction contains special support for downloading attachments linked to BOs.

(error) KULRICE-10261

JR: None of the documents in KFS are using this.  Per JHK: "It looks like it was a special case where a field could be designated on the BO for the inquiry when the "downloadCustomBOAttachment" methodToCall is used.  It must have all been custom - there is no support in the system for building links with these parameters.  So, there would have been a custom Inquirable and hacked in fields in place just to support this.  It seems that, in the KRAD framework, there are probably easier ways to accomplish this.  But, I'm leaning toward removing it given the new screen capabilities of KRAD.  It doesn't seem that this would need to be baked into the Inquiry controller."  Can this functionality be removed?

PG: found out that Customer and VendorDetail are using this, although I can't get them to display on testdrive.

n/a  
I6

Support for the expand all/collapse all buttons at the top. (This is presently done with a reload from the server for some reason even though individual tabs are expanded via JavaScript.)

(tick)

 

n/aGroup inquiryTravel Account Type inquiry
I7

Support for a custom export of the business object if the BO class has an "exporterClass" defined in the DD.

(tick)

 

n/aDocument Type inquiryTravel Account Type inquiry
I8

Ability to define an "Inquirable" class in the InquiryDefinition for the business object.

(tick)

JHK: This is an interesting one. The Inquiry screen is (in KRAD) properly part of the UIF. However, the Inquirable, which is responsible for retrieving the object, may be better suited as linked to the data dictionary. But, that may depend on how we handle having different inquiry "views" and whether they need different retrieval logic.

IBB4  
I9

Use of a "default" inquirable (KualiInquirableImpl) if none is specified in the DD.

(tick)

The default inquiry implementation was provided by KualiInquirableImpl in KNS. This is replaced by InquirableImpl in KRAD. The default implementation can be overriden by specifying a viewHelperServiceClass in KRAD and inquirableClass in KNS.

n/aKFS Chart code InquiryTravel Account Inquiry
I10

Checks the forceUppercase on the attribute definition and implements as appropriate.

(tick)

 

n/aKFS Chart code Inquiry (chartOfAccountsCode=ba)Inquiry - forceUppercase
I11

Decrypts URL parameters deemed sensitive before passing through to perform the BO lookup.

(tick)

JHK: Does anyone besides me think it's foolish to be passing around sensitive information on the URL? URLs are often captured by server logs (while POST parameters are not (unless the server is in debug mode)). Having it in a file which is not often secured would allow for easier access to that information followed by offline attacks on the data to decrypt it.

n/aKFS ACH Bank InquiryTravel Account Type Parameter Decryption Inquiry
I12

If a BO contains a collection of "Inactivatable" BOs, the inactive ones are not loaded by default and a link is rendered to display them if needed.

(tick)

 

n/an/aTravel Company Category Inquiry
I13

Automatic conversion of fields into drill-down links on fields which are primary keys to other data objects with defined relationships.

(tick)

org.kuali.rice.kns.inquiry.KualiInquirableImpl.getInquiryUrl(BusinessObject, String, boolean)

n/aKNS Inquiry CampusBo code=BLKRAD Inquiry TravelPerDiemExpense = 10000
I14

For field types of ControlDefinition.FILE, render the field as a image button allowing the attachment to be downloaded.

n/a - dropping per Jonathan

 

n/a  
I15

Ability to specify an InquiryAuthorizer implementation to control the visibility and masking of sections and fields based on permission checks.

(tick)

 

IBB5KFS Proposal InquiryLab Authorization Inquiry Demo
I16

Ability to specify an InquiryPresentationController implementation to control the visibility and masking of sections and fields based on the data rather than permissions.

(tick)

Data Dictionary

IBB6KFS Proposal InquiryLab Presentation Controller Inquiry Demo
I17

Ability to define sections which contain the fields for the inquiry display.

(tick)

Data Dictionary

IBB1KFS Award InquiryTravel Account Inquiry
I18

Ability to specify the number of columns within an non-collection inquiry section.

(tick)

Data Dictionary

IS5KFS Chart Code InquiryContext Inquiry (Context Id: CONTEXT1)
I19

Ability to specify whether a section should be open or closed by default.

(tick)

Data Dictionary

IS4KFS Asset InquiryDisclosure widget
I20

Ability to suppress the automatically generated inquiry link on fields.

(tick)

Data Dictionary : noInquiry=true

IS11KFS Account Inquiry. noInquiry on accountNumberPer diem expense - no inquiry on primary destination
I21

Ability to specify an additional field which should be displayed (E.g., a name) with another property via DD configuration.

(tick)

Data Dictionary

n/a2.2 KNS Travel Account Inquiry - Fiscal Officer IdKRAD Labs Inquiry - AttributionDefinition Formatting (first and last name)
I22

Automatic addition of KualiCodeBase display of codes to include a delimiter and the name after the code value.

(tick)

Code, DataObject needs to implement KualiCode or extend KualiCodeBase

n/aKFS Chart of Accounts - Account InquiryTravel Account Type Inquiry
I23

Formats the value for display as appropriate based on the AttributeDefinition

(tick)

 

n/aKNS Contracts & Grants - Award KRAD Travel Expense Item

Inquirable

ID

KNS Feature

Implemented in KRAD

Notes

User GuideKNS SampleKRAD Sample
I24

Ability to, via code, add new sections dynamically to the resulting page.

(tick)  

KFS Example: org.kuali.kfs.coa.businessobject.inquiry.OrgInquirable.addAdditionalSections(List, BusinessObject)

IS6KFS Organization InquiryTravel Account Type Dynamic Sections Inquiry
I25

Ability to, via code, remove or modify existing sections.

(tick)

KFS Example: org.kuali.kfs.module.cam.businessobject.inquiry.AssetInquirableImpl.getSections(BusinessObject)

IS7KFS Asset Inquiry (No good example, but payment section would be hidden if there were too many records)Travel Account Type Dynamic Sections Inquiry
I26

Ability to override/customize the Inquiry URL rendered. The defined Inquirable for the business object is used whenever an inquiry to that object is needed.

(tick)  

 

II1KFS Account Inquiry (See link dynamically created for Indirect Cost Rate)Travel Account Type Custom Link Inquiry
I27

Ability to add content to the header section of the inquiry (where the inquiry title is shown.)

(tick)

This did not work in the KNS but now works in KRAD

IOF1N/A, but a similar example for lookup: KC Activity Lookup (see the Main link in the top right corner)Travel Account Type Custom Header Inquiry
I28

Opening of Inquiries in separate windows, even if lightbox opening is enabled. (Like the lookups, power-users may want to have multiple windows of related objects open in tabs.)

(tick)  

 

n/a  
I29

Special support when the BO class is DocumentHeader to build a workflow DocHandler.do link to cause the document to load.

(tick)

 

n/aNo known sampleDocument Header Inquiry

Permission Checks

Conversion Notes: Inquiry Permissions

Lab Authorization Inquiry Demo

ID

Check Description

Implemented in KRAD

Location

KIM Permission

User GuideKNS SampleKRAD Sample
I30

Checks the class of the business object against the user's ability to inquiry objects of that type.

(tick)

(warning) Peter, see email from Dan

KualiInquiryAction

KR-NS / Inquire Into Records

IKP30  
I31

Checks if a security-masked field can be displayed in the clear

(tick)

BusinessObjectAuthorizationServiceImpl.canFullyUnmaskField

KR-NS / Full Unmask Field

IKP31

Full Unmask Field Permission

Examples: Bank Inquiry

Bank Account Number Masked - user: abeal

Bank Account Number Unmasked - user khuntley

Unmask Field Permission Demo

Examples: Traveler Detail

Phone Number Masked - user: fred

Phone Number Fully Unmasked - user: dev1

I32

Checks if a security-masked field can be partially displayed

(tick)

BusinessObjectAuthorizationServiceImpl.canPartiallyUnmaskField

KR-NS / Partial Unmask Field

IKP32

Partial Unmask Field Permission

Examples: Bank Inquiry

Bank Account Number Masked - user: abeal  

Bank Account Number Partially Unmasked - user wbrazil

(warning) broken - RICECNTRB-8

Unmask Field Permission Demo  

Examples: Traveler Detail

Phone Number Masked - user: fred

Phone Number Partially Unmasked - user: admin


I33

Checks if a security-hidden field or hidden by the presentation controller can be displayed

(tick)

BusinessObjectAuthorizationServiceImpl.considerBusinessObjectFieldViewAuthorization

KR-NS / View Inquiry or Maintenance Document Field

IOF3KFS Asset Inquiry 
I34

Checks if a section designated as hidden by the presentation controller can be seen

(tick)

BusinessObjectAuthorizationServiceImpl.considerInquiryOrMaintenanceDocumentAuthorizer

KR-NS / View Inquiry or Maintenance Document Section

IOF2KFS Proposal InquiryLab Authorization Inquiry Demo

Involved Classes

Class

Notes

Finished Analysis

Struts Classes

 

 

org.kuali.rice.kns.web.struts.action.KualiInquiryAction

 

(tick)

org.kuali.rice.kns.web.struts.form.InquiryForm

 

(tick)

JSP/Tag Files

 

 

KualiInquiry.jsp

Stub file - doesn't do anything.

(tick)

inquiryPage.tag

Really just a wrapper around rowDisplay.tag - nothing special.

(tick)

inquiryControls.tag

Displays the buttons at the bottom of the page. (Close and export)

(tick)

rowDisplay.tag

Handles the actual display of the data cells in the inquiry. (Uses internal "isInquiry" flag.)

(tick)

Inquirable

 

 

org.kuali.rice.kns.inquiry.Inquirable

 

(tick)

org.kuali.rice.krad.inquiry.InquirableImpl

 

(tick)

org.kuali.rice.kns.inquiry.KualiInquirableImpl

 

(tick)

Data Dictionary Classes

 

 

org.kuali.rice.kns.datadictionary.InquiryDefinition

 

(tick)

org.kuali.rice.kns.datadictionary.InquirySectionDefinition

 

(tick)

org.kuali.rice.kns.datadictionary.InquirySubSectionHeaderDefinition

I think this rendered a dark-gray bar as a separator.

(tick)

org.kuali.rice.kns.datadictionary.InquiryCollectionDefinition

 

(tick)

org.kuali.rice.kns.inquiry.InquiryPresentationController

 

(tick)

org.kuali.rice.kns.inquiry.InquiryPresentationControllerBase

 

(tick)

org.kuali.rice.kns.inquiry.InquiryAuthorizer

 

(tick)

org.kuali.rice.kns.inquiry.InquiryAuthorizerBase

 

(tick)

org.kuali.rice.kns.inquiry.InquiryRestrictions

DTO class which contains the results of all presentation controller and authorizer checks on inquiry sections and fields. Used by the KNS UI classes to alter the contents of the inquiry.

(tick)

org.kuali.rice.kns.bo.authorization.BusinessObjectAuthorizerBase

 

(tick)

org.kuali.rice.kns.util.FieldUtils

 

(tick)

org.kuali.rice.kns.web.ui.FieldBridge

Converts the field metadata into UI objects used by rowDisplay.tag

(tick)

org.kuali.rice.kns.web.ui.SectionBridge

Converts the section metadata into UI objects used by rowDisplay.tag

(tick)

  • No labels