Analysis JIRA:
- Advanced Lookup Requirement for KC: KC Advanced Lookup POC
Demonstration of KRAD lookup functionality:http://env11.rice.kuali.org/kr-krad/labs?viewId=LabsMenuLookupView
Lookup Criteria / Screen
Lookup Criteria Conversion Notes (Temp work area) : Lookup Criteria Conversion
ID | KNS Feature | Implemented in KRAD | Notes | User Guide | KNS Sample | KRAD Sample |
---|---|---|---|---|---|---|
L1 | Data Dictionary configured ordered list of lookup (criteria) fields | Configure a Uif-LookupView | Country | Default | ||
L2 | Ability to arrange criteria into multiple columns by DD configuration. | Set the layoutManager.numberOfColumns property on the criteriaGroup of the Uif-LookupView | LCF8 | Multiple Columns Criteria | ||
L3 | Automatic inclusion of criteria for the "active" attribute when the BO class implements the Inactivateable interface |
| n/a | Context | ||
L4 | Automatic child lookups on criteria based on DD/Persistence layer relationships |
| n/a | State | Default | |
L5 | Ability to suppress child lookups on criteria via DD configuration. (E.g., used to suppress the lookup on the PK field of the business object currently being looked up. It would be nice if this condition were detected automatically to make configuration simpler.) | PK field on same BO does not show quickfinder automatically | LCF4 | Namespace | Quickfinder Disabled | |
L6 | Ability to set default values via DD on lookup criteria. (Both as string literal and via a ValueFinder class.) | Set the defaultValue param on the Uif-LookupCriteriaInputField of the Uif-LookupView | n/a | (see Travel Account Number) | ||
L7 | Automatic inclusion of a "blank" value in select-list lookup criteria if one did not exist after the ValuesFinder is used. |
| n/a | |||
L8 | Automatic conversion of attributes with a checkbox definition into a set of 3 radio buttons. | n/a (included in L3) | Country | Context | ||
L9 | Support for the special lookup operators ( |, <, >, .., etc...) |
| ||||
L10 | Specification of a lookup title. (Nice to have: auto generate this by creating name from the conversion of the business object name) | Use headerText property on Uif-LookupView. Does not do auto generation. | LBB2 | Country | Default | |
L11 | Specification of additional HTML to display in the header section (called "menubar" or "supplementalMenuBar") (Not used by KFS) | The page.header groups support Uif components. | LBB4 | Headings | ||
L12 | Specification of additional buttons to display with the standard lookup buttons. Can specify a strings for the remainder of the HTTP URL and the SRC attribute for the button's image. | The criteriaGroup.footer can be extended or replaced with Uif components. | LCF5 | Criteria Footer | ||
L13 | Ability to clear all input values via button. |
| n/a | Country | Default | |
L14 | Ability to cancel the lookup and return to the calling page. (Presently via the backLocation URL parameter.) | Via close button on light box. | n/a | Country | Default | |
L15 | Ability to hide the entire search criteria section by passing "searchCriteriaEnabled=true" on the URL. (Not in use by KFS) | Uif: renderLookupCriteria property | LCF7 | Hidden Criteria | ||
L16 | Ability to configure on the BO DD file that the search buttons (Search/Clear Values/Cancel) be hidden. Presumably, this would be used by places which also force the search to run automatically.) | Uif: renderCriteriaActions | LCF6 | Without Search Buttons | ||
L17 | Ability to make the search fire off automatically. (Presently, this may require the URL to be altered upon the lookup to use the "search" methodToCall. It might be nice to be able to configure a default for this in the DD and then allow a more explicit override when starting the lookup.) | Can be configured by adding to url methodToCall=search (same as KNS). No DD property to set. | n/a | URL-Search | ||
L18 | Validation of search criteria. Present default implementation will only validate criteria specified in the list in the DD. It will not validation other items in the map even though they may be used by the later lookup code. (And may, in fact, be attributes of the business object for which there could be type validation.) Only appears to validate them for required status and use of the search operators on non-supported data types. | In KNS and KRAD the required criteria is not inherited from the attribute definition | n/a | |||
L19 | Ability to specify in the DD that a field should always be treated literally, even if search operators are present. If a user specifies a value in such a field, an information message is returned. | Uif: disableWildcardsAndOperators | LCF9 | Disable Wildcards | ||
L20 | Ability to define, on the source attribute in the DD which will generate a lookup (quickfinder), a set of lookup parameters. (A mapping between attribute names on the source object and the lookup object which will be pre-populated on the lookup.) | Adding a quickfinder to the LookupCriteriaField | LQF1 | see Input Field -> Quickfinder | ||
L21 | Auto-generation of lookup (quickfinder) parameters (when not explicitly given) based on the key field relationships known to the system. (DD or persistence layer) |
| n/a | State | Default | |
L22 | Ability to pass in default values when initially displaying the lookup by passing propertyName=value pairs on the URL. | &lookupCriteria[<property-name>]=<value> | ||||
L23 | Ability to set any given field (via DD) to trigger a page submit and reload upon changing its value and tabbing out. (triggerOnChange) | support no longer needed | n/a | |||
L24 | Ability to program into the Lookupable a javascript string which would be run upon load of the lookup page. (Presently only used by the document search lookup.) | Add onLoadScript on the Uif-LookupView | LLA28 | |||
L25 | Includes hidden form fields for read-only input criteria so it gets passed to the lookup properly. (As opposed to documents, where the field is maintained in the session so that an HTTP POST hack can not change the value.) |
| n/a | see Hidden Control | ||
L26 | Hitting enter in any text field submits the lookup. |
|
| n/a | Country | Default |
L138 | Ability to define alternative icons that will appear on the lookup screen next to the Search and Clear buttons. | KNS LookupDefinition.setSearchIconOverride | LQF2 | L138 KNS Sample | Labs - Fields - Input Field - Quickfinder | |
L139 | Ability to set HelpDefinition and/or Help URL | LookupDefinition.setHelpDefinition(), .setHelpUrl | LOF2 |
Potential KNS Issues
Issue |
---|
Will display field icons (lookup/direct inquiry) even if the field is labeled as read-only. Seems strange. There is code which explicitly allows it when in "isLookup" mode. |
Will display field on lookup criteria even if there is no attribute definition defined. (It then shows up as an unadorned text field with no label.) If we are going to allow this, then we should make some attempt to label the field, even with just the property name to help the developer troubleshoot. |
Lookup Results Display
Lookup Results Conversion Notes (Temp work area) : Lookup Results Conversion
ID | KNS Feature | Implemented in KRAD | Notes | User Guide | KNS Sample | KRAD Sample |
---|---|---|---|---|---|---|
L27 | Data dictionary configured ordered list of result fields | Configured through Uif-LookupView resultFields property | Country | Default | ||
L28 | Automatic inquiry links on lookup results |
| ResultsField - InputField - inquiry.render=true | n/a | Country | Default |
L29 | Ability to suppress inquiry links in lookup results via DD configuration | Configure through UifLookupView::resultsFields - field.inquiry.render=false | LRF3 | Inquiry Disabled | ||
L30 | Ability to configure lookup result limits globally by system parameter. | Based on RESULT_LIMIT system parameter. Ticket (KULRICE-9034) created to add new KR-KRAD namespace system parameter to prevent configuration issues between KNS from KRAD. | n/a | |||
L31 | Ability to configure lookup result limits per client application by system parameter. |
| Handled in KULRICE-5804. Needs new namespace in KULRICE-9034. | n/a | ||
L32 | Ability to configure lookup result limits by module by system parameter. | Retired. Not used in KNS | n/a | |||
L33 | Ability to configure lookup result limits by business object by system parameter. | Uses KRAD specific* RESULTS_LIMIT and MULTIPLE_VALUE_RESULTS_LIMIT parameters. | LBB5 LBB6 | Result Limit MV Result Limit | ||
L34 | Paging of lookup results. | Handled by default as LookupResultsCollection is based on Uif-PagedRichTable | n/a | Country | see CollectionGroup | |
L35 | Ability to configure page size for results globally by system parameter. |
| Added KULRICE-9086 to deal with adding MULTIPLE_VALUE_RESULTS_PER_PAGE system parameter to KR-KRAD namespace | n/a | ||
L36 | Ability to configure page size for results per client application by system parameter. |
| Added KULRICE-9086 to deal with adding MULTIPLE_VALUE_RESULTS_PER_PAGE system parameter to KR-KRAD namespace | n/a | ||
L37 | Ability to configure page size for results by module by system parameter. | Retired. Not used in KNS | n/a | |||
L38 | Ability to configure page size for results by business object by system parameter. |
|
| ![]() | ||
L39 | System parameter-based maximum result column display length |
| Can be controlled from the p:size parameter. However, may want to find way to incorporate RESULTS_DEFAULT_MAX_COLUMN_LENGTH system property. | n/a | ||
L40 | Automatic detection of whether the lookup is being used from within another function or from the portal/menu pages | renderMaintenanceLinks | LRF7 | |||
L41 | Ability to customize the "actions" available on the left of the lookup results. |
| Client application can override and merge a list of action components into Uif-LookupView-ResultActions. JIRA to allow any component. | LRF4 | KFS Asset |
|
L42 | Permission, workflow, and DD-based control of the appearance of the standard "edit", "copy", and "delete" links.
|
| DD allowsNewOrCopy is handled by allowsMaintenanceNewOrCopyAction | n/a | Travel Company | |
L43 | Configure a set of default sort fields in the DD. Multiple sort field could be specified, although the ascending/descending property could only be applied to the definition as a whole. | KNS:SortDefinition | LRF5 | Default Sort | ||
L44 | Automatic recognition of when the primary key fields were all filled out and display of a message to that effect. |
| KNS: Lookup.jsp searchUsingOnlyPrimaryKeys | n/a | Country | Default |
L45 | Ability to define, on the source attribute in the DD which will generate a lookup, a set of field conversions. (A mapping between attribute names on the lookup object to the source object which will be populated on the source object when the user clicks the return value link on a row.) | KNS: FieldUtils.populateFieldsFromBusinessObject | LQF1 | Default (see Travel Fiscal Officer Quickfinder) appers based on DD relationship | ||
L46 | Auto-generation of field conversions (when not explicitly given) based on the key field relationships known to the system. (DD or persistence layer) | KNS: FieldUtils.populateFieldsFromBusinessObject | n/a | |||
L47 | Automatic translation of code fields which have, as a related class, a business object which extends KualiCode. In these cases, it adds the referenced business object's "name" property and includes that in the display of the column. (via the additionalDisplayPropertyName property) | KNS: FieldUtils.populateFieldsFromBusinessObject; KRAD: View.setTranslateCdoesOnReadOnlyDisplay | LRF8 | add sample | ||
L48 | Storage of the search results in the session backed by a table. (Table may only be used for multiple value lookups...) Clicking on the search button again clears the prior session cache...of *all* lookups in the user's session, not just the current one. |
| Jerry conversion: was disccusions related to the rewrite and how to store this data. See: https://wiki.kuali.org/display/KULRICE/Multi-Value+Lookups
| n/a | ||
L49 | Display of the actual number of results when results are truncated. (This is done by running the lookup with a COUNT(*) instead of the field list.) |
| Value is tracked through the resultSetCount and can be accessed, however there is no message to display (other than datatables sInfo) | Default vs. Results Limit | ||
L50 | Ability to designate certain columns as to be totaled. These must be numeric columns and the result is formatted as currency. The totals are displayed at the bottom of the report. The totaling of the values is a feature provided by the DisplayTag library. |
| See Uif-ColumnCalculationInfo | LRF6 | ||
L51 | Ability to sort results by clicking on header. Clicking a 2nd time reverses the sort. Sort is somewhat data type sensitive, but may (in KNS) depend on the detected datatype in the first row. | See Uif-PagedRichTable.templateOptions.sortableColumns | N/A | Country | Default |
Lookup Results Retrieval
ID | KNS Feature | Implemented in KRAD | Notes |
---|---|---|---|
L52 | Ability to specify a Spring-configured bean to override the default lookup behavior. | Uif-LookupView can be overridden to customize default behavior. Via the viewHelperServiceClass the LookupableImpl can be customized as well. |
Other Features
Lookup Other Features Notes (Temp work area) : Google doc draft
Lookupable has "allowsMaintenanceNewOrCopyAction", not sure if this is actually being used, but overriding the method seems like it would work, also the buildMaintenanceActionLink is public and could be overridden to modify behavior
ID | KNS Feature | Implemented in KRAD | Notes | User Guide | KNS Sample | KRAD Sample |
---|---|---|---|---|---|---|
L53 | Permission check (Look Up Records) on the use of the lookup as a whole. | The LookupView AuthorizerBase class has a method "canOpenView" which looks at the user and their permissions and determines whether they can use lookup as a whole. | ||||
L54 | Checks if the user has the Initiate permission on the maintenance document (via the document authorizer class) related to the business object on the lookup and suppresses the entire action column if so. | KULRICE-8571 / KULRICE-10524 hide action column if not actions are available to user | ||||
L55 | Permission, workflow, and DD-based control of the appearance of the create new link in the upper left. | LookupableImpl method buildMaintenanceActionLink is the method that generates the action link of the "New" button, maintenanceMethodToCall argument with value of "start" is used to generate the new link by default, the method could be overridden. In KRAD, workflow check is done by the allowsMaintenanceNewOrCopyAction, which checks to see if the data object has an associated maintenance document defined for it | ||||
L56 | Ability to override the behavior and contents of the create new link in the Lookupable. | Lookupable has "allowsMaintenanceNewOrCopyAction", not sure if this is actually being used, but overriding the method seems like it would work, also the buildMaintenanceActionLink is public and could be overridden to modify behavior | ![]() | |||
L57 | Ability to open multiple inquiries from the lookup into separate windows. |
UXI Prioritized | By default inquiries are opened in lightboxes. User can open the inquiry in a new tap/windows via the right click context menu (or "Ctrl"-click) | n/a | Country | Default |
L58 | Ability to export lookup results to CSV, Excel, or XML format. | n/a | Country | Default | ||
L59 | Ability to customize the XML export format. (As done by KEW for document types.) | n/a | ||||
L60 | Automatic display of help link (sourced from the DD) for the document or business object being queried. |
| ||||
L61 | KFS (in 3 places) sub-classes the | One of these subclasses seems to be for KFS multivalue lookup customization, this might go away as part of the upgrade to KRAD. Should be able to override LookupableImpl, LookupController, etc to customize | ||||
L62 | KFS (in more than 3 places) sub-classes the |
| The formClass property on Uif-LookupView could be set to point at a customized LookupForm that extends the original | |||
L63 | Lookups first post back to the original page to save their values before redirecting on to the lookup action/controller. This was necessary since we could not employ JavaScript originally. Lots of the code in KualiAction.performLookup() relates to parsing out these "special" values. If lookups always happen in a lightbox now, much of that complexity could go away. | KULRICE-9107 This functionality was determined to be unnecessary for KRAD implementation of multivalue lookups. | ||||
L64 | Ability for the document to specify that, upon returning to the originating document, which reference objects should be refreshed as a result. (I.e., so that the name of the object is displayed in a related field.) This list of references is usually auto-generated by the relationship metadata. |
| KULRICE-5286 | ![]() |
Features Customizable via Lookupable
ID | Lookup Property / Feature | Default Delegated to LookupableHelperService | Implemented in KRAD | Notes | User Guide | KNS Sample | KRAD Sample | Conversion Script Notes |
---|---|---|---|---|---|---|---|---|
L65 | Business Object Class | No - but sets it on the helper service as well. | set/getBusinessObjectClass have been renamed to set/getDataObjectClass. Since now all data objects are supported the requirement that the object is a BussinessObject has been removed. The rename of these methods reflect this change. The data object is usually specified via the dataObjectClassName property of the extended Uif-LookupView bean. | LLA1 |
| |||
L66 | Result set columns | Yes | getColumns has been removed. The result columns are now specified via the Uif-LookupView (see resultFields property). | LLA4 | Conversion script should check for usage of this method and write out a message | |||
L67 | Search Parameter Validation | Yes | validateSearchParameters takes the LookupForm as an additional parameter and returns a boolean value indicating that no validation error message has occurred (true = no error). Warning and informational messages do not affect this return indicator. A ValidationException is no longer thrown. | LLA5 | KFS-Proposal | LabsLookup-PerDiemExpense |
| |
L68 | Returning Search Results | Yes | getSearchResults takes the LookupForm and indicator for bounded/unbounded search as additional parameters. getSearchResultsUnbounded has been removed. | LLA7 |
| |||
L69 | Clearing search criteria | Yes | Yes, but... | performClear takes the searchCriteria map as an additional parameter since it is no longer stored in the Lookupable. The searchCriteria map is returned after clearing the criteria and setting their default values. | LLA8 |
| ||
L70 | Getting return URL (E.g., when used from quickfinder) | Yes | getReturnUrl has been renamed to buildReturnUrlForResult which accepts the LinkField that returns the result from the lookup and the model. | LLA9 |
| |||
L71 | Create New HTML (Renders image and URL. Asks the LookupableHelperService if it should display the link.) | Partially | currently renders as link can be customized by overriding the appropriate header group | n/a |
| |||
L72 | Lookup Menu Bar (Pulled from DD for the business object) | No | configured via Uif | LLA2 |
| |||
L73 | Supplemental Menu Bar | Yes |
| configured via Uif | LLA2 |
| ||
L74 | Input Criteria | Yes | see getRows in conversion guide | LLA3 |
| |||
L75 | Lookup Display Title | Yes | getTitle has been removed. The title is now specified via the Uif-LookupView (see headerText property). | LLA11 |
| |||
L76 | Return Location (Usually passed in) | Yes | getReturnLocation() has been removed. The return location is now stored on the form. Use LookupForm.getReturnLocation(). | LLA13 |
| |||
L77 | Return keys (List of property names from the looked up object which will be returned to the calling page.) | Yes (pulls from PK list for BO) | getReturnKeys() takes the LookupView, LookupForm and the data object as an additional parameter. | LLA12 |
| |||
L78 | Source image for a single extra button (Pulled from DD) | No | getExtraButtonSource() has been removed. Buttons are configured via Uif-LookupCriteriaGroup (see footer property). | LLA14 |
| |||
L79 | Additional URL parameters passed for the extra button (Pulled from DD) | No | getExtraButtonParams() has been removed. Buttons are configured via Uif-LookupCriteriaGroup (see footer property). | LLA15 |
| |||
L80 | Default sort columns | Yes | getDefaultSortColumns() has been removed. Sort columns are configured via Uif-LookupView (see defaultSortAttributeNames property). | LLA17 |
| |||
L81 | "check for additional fields" (Allows the lookupable to determine if there are fields in the HTTP request parameters which should be set on the input criteria. (Once this returns true, they are mapped by the property name.)) | Yes | &lookupCriteria[code]=us | LLA16 |
| |||
L82 | docFormKey (Used to separate multiple lookups within the user's session) | Yes | set/getDocFormKey() has been removed. The document form key is stored on the form. Use LookupForm.getFormKey(). | LLA18 |
| |||
L83 | field conversions | Yes | setFieldConversions() has been removed. The field conversion is specified via Uif (see quickfinder.fieldConversions property). | LLA19 |
| |||
L84 | Read-only fields list | Yes | setReadOnlyFieldsList() has been removed. Read only criteria fields are specified via Uif (see readOnly property). | LLA20 |
| |||
L85 | Support for a "customLookupAction" when returning from a child quickfinder | Yes | see performCustomAction() in conversion guide | LLA26 |
| |||
L86 | Handling fields which need to be encrypted when transmitted | Yes | No special conversion needed. Data dictionary configuration is the same. | n/a |
| |||
L136 | Performs conditional logic (based on current search values or other parameters) to override field hidden, read-only, and required attributes previously set. | Yes | applyConditionalLogicForFieldDisplay() has been removed. Conditional displaying of criteria field is done through Uif configuration. | LLA30 |
Features Customizable via LookupableHelperService
ID | Lookup Property / Feature | Implemented in KRAD | Notes | User Guide | KNS Sample | KRAD Sample |
---|---|---|---|---|---|---|
L87 | (Everything with a "Yes" above) | see above | ||||
L88 | allowsMaintenanceNewOrCopyAction default checks BO Authorization service.canCreate() | ![]() | moved to LookupableImpl | LLH1 | ||
L89 | allowsMaintenanceEditAction default checks BO Authorization service.canMaintain() | ![]() | moved to LookupableImpl | LLH1 | ||
L90 | allowsMaintenanceDeleteAction default checks BO Authorization service.canMaintain() and if the DD allows deletion of this type | ![]() | moved to LookupableImpl | LLH1 | ||
L91 | maintenance URL BADLY NAMED: the URL is not returned by this method - it only sets the anchor title for accessibility | ![]() | The anchor title is set as part of the LookupableImpl.buildMaintenanceActionLink | LLH2 | ||
L92 | Action URLs Returns HTML which forms the links in the Actions column of a lookup. | ![]() | The URL is created in LookupableImpl.buildMaintenanceActionLink | LLH2 | ||
L93 | Obtaining the max length for a column Checks DD then the system parameter table if not set | This is a protected method, not exposed via the API. | n/a | |||
L94 | Retrieval of search results There are a number of methods and it's not obvious which one you should override. (E.g.,
| ![]() | Moved to LookupableImpl. Method signature changed, includes search criteria and unbounded indicator | LLH4 | ||
L95 | Delegation of external business object lookups to their module service. | ![]() | (see LookupableImpl.getSearchResults) | n/a | ||
L96 | In-memory joining to external business objects by running the query against the EBO first and then using the results to filter the "normal" lookup. | ![]() | (see LookupableImpl.getSearchResults) | n/a | ||
L137 | Functional requirements state that users are able to perform searches using criteria values that they are not allowed to view | ![]() | applyFieldAuthorizationsFromNestedLookups() has been removed. Conditional displaying of criteria field is done through Uif configuration. | LLA29 |
Multiple Value Lookup
NOTE: There is only inherent support for processing of multiple-value lookup results for maintenance documents.
ID | KNS Feature | Implemented in KRAD | Analysis | Notes | User Guide | KNS Sample | KRAD Sample |
---|---|---|---|---|---|---|---|
L97 | Pass-through of the collection property name so that, upon return, the values can be added/processed properly. | Passed as a parameter back to the LookupController, the parameter value is lookupCollectionName, the xml property in the DD used to define this is collectionObjectClass | In KNS the "name" property of the MaintainableCollectionDefinition was passed through the Quickfinder. In KRAD this property was renamed to "propertyName". | part of maintenance documents | KFS Account Delegate Global | Term Specs | |
L98 | Tracking of selected items by the objectId property values. | Selected items are tracked successfully (for the most part) not sure if this is using objectId or another property value. | In the KNS, selected items were tracked by ObjectId that ere temporarily persisted in in the database. In KRAD the items are tracked by primary key and passed though a Spring\Flash Attributes via a push back of the form. For cross domain lookups the primary keys are returned as encoded URL parameters. | n/a | |||
L99 | Maintenance of selected items in a KRNS database table (and retaining selected values when page changes.) |
| KULRICE-10302 No longer necessary to maintain a KRNS table for results. However selected values are not currently saved when the lightbox changes to a different page in the result set, or if a lightbox is not used for the lookup, when a different page of the result set is displayed. | n/a | |||
L100 | Additional control buttons to allow selection of all items on a "page" or all items in the resultset. |
UXI Prioritized | Buttons include: "Select all from all pages" "deselect all from all pages" select all from this page" "deselect all from this page" | Currently being reworked. In KRAD these buttons are found as part of a drop-down menu on a multivalue lookup. The multivalue lookup action buttons in the KNS were provided by the displayMultipleValueLookupResults.tag file and were automatically included on any multivalue lookup. In KRAD this functionality has been moved into the component Uif-SelectCollectionItemField which is included by default on multivalue lookups. | n/a | ||
L101 | Separate "per-page" size for multiple value lookups defined by system parameter. Not configurable by business object. |
| LookupView seems to have necessary additional parameter (multipleValuesSelectResultSetLimit), but it doesn't appear that this parameter is initialized by the system, or that there is a corresponding system parameter to store configurable values | ||||
L102 | Authorization checks on lookup results and individual records. | AttributeDefinition security masking | |||||
L103 | Passes a custom "refreshCaller" to the source page to tell it to pull the selected objects. | refreshCaller and refreshCallerType are passed back to the LookupController from the form, refreshCallerType is MULTI_VALUE_LOOKUP for the usage of this functionality | |||||
L104 | Support for multiple value lookups for EBOs. | KULRICE-10350 <property name="collectionLookup">
|
KNS Classes
ID | Reviewed | Class Name | Notes |
---|---|---|---|
L105 | org.kuali.rice.kns.datadictionary.LookupDefinition |
| |
L106 | org.kuali.rice.krad.datadictionary.SortDefinition |
| |
L107 | org.kuali.rice.krad.datadictionary.HelpDefinition | Contained a parameter PK which would contain the help URL. | |
L108 | org.kuali.rice.kns.datadictionary.FieldDefinition |
| |
L109 | rowDisplay.tag | Handles the display of the criteria section of Lookups (and KNS Inquiries and maintenance documents) | |
L110 | KualiLookup.jsp |
| |
L111 | org.kuali.rice.kns.util.FieldUtils | Class which was necessary once upon a time for compensating for limitations in the allowed technologies which we no longer have. | |
L112 | org.kuali.rice.kns.lookup.KualiLookupableImpl |
| |
L113 | org.kuali.rice.kns.lookup.AbstractLookupableHelperServiceImpl |
| |
L114 | org.kuali.rice.kns.lookup.KualiLookupableHelperServiceImpl |
| |
L115 | org.kuali.rice.kns.lookup.LookupUtils | (Most likely, this class should be removed and the functions moved into the abstract lookup helper class. There is already duplication between those classes.) Some is only used from the LookupForm - and so could be moved into the Model class under SpringMVC | |
L116 | org.kuali.rice.krad.service.impl.LookupServiceImpl |
| |
L117 | org.kuali.rice.kns.lookup.LookupResultsService | Can be removed. This interface is no longer implemented anywhere. | |
L118 | org.kuali.rice.kns.web.struts.form.LookupForm |
| |
L119 | org.kuali.rice.kns.web.struts.action.KualiLookupAction |
| |
L120 | org.kuali.rice.kns.web.ui.Column |
| |
L121 | org.kuali.rice.kns.web.ui.Row |
| |
L122 | org.kuali.rice.kns.web.ui.Field |
| |
L123 | org.kuali.rice.krad.lookup.CollectionIncomplete |
| |
L140 | ![]() | org.kuali.rice.kns.lookup.Lookupable | |
L141 | ![]() | org.kuali.rice.kns.lookup.LookupableHelperService | |
L142 | ![]() | org.kuali.rice.kns.lookup.MultipleValueLookupMetadata | |
L143 | ![]() | org.kuali.rice.kns.lookup.LookupResultsSupportStrategyService | A different conceptual approach to multi-value lookups, make this interface and the implementations of it obsolete. |
L144 | ![]() | org.kuali.rice.kns.lookup.DataDictionaryLookupResultsSupportStrategy | |
L145 | ![]() | org....PersistableBusinessObjectLookupResultsSupportStrategy | |
| KFS Classes |
| |
L124 | org.kuali.kfs.gl.web.struts.BalanceInquiryLookupAction |
| |
L125 | org.kuali.kfs.gl.web.struts.BalanceInquiryLookupForm |
| |
L126 | org.kuali.kfs.sys.service.impl.SegmentedLookupResultsServiceImpl | (Used to handle large multiple value lookups - saves Base64 encoded version of entire result set to KRNS_LOOKUP_RSLT_T.) | |
L127 | org.kuali.rice.kns.lookup.LookupResultsService | This service is the one responsible for persisting and retrieving search results performed on a separate request. | |
L128 | org.kuali.rice.kns.maintenance.KualiMaintainableImpl | Contains a |
Types of KFS Code-Based Customizations
Note: These are here as information for things KFS has customized for KFS-specific requirements. These are not in scope for Rice.
Location | Customization |
---|---|
LookupableHelperService | Excluding a specific value to make sure it was never returned in the result list. |
LookupableHelperService | Customization of the search criteria before handing off to the baseline getSearchResults() method. |
LookupableHelperService | Altering the label on the Edit link in the actions column. |
LookupableHelperService | Filtering results which could not be filtered by the LookupService. |
LookupableHelperService | Adding messages/errors to the top of the criteria section. (via KNSGlobalVariables.getMessageList()) |
LookupableHelperService | Override of the inquiry link on result fields. |
LookupableHelperService | Doing just about anything imaginable to the "Actions" column contents. (It would be good to have a more declarative way to create these links.) |
LookupableHelperService | Merging two lookups into a single list. |
LookupableHelperService | Custom validation of search parameters. |
LookupableHelperService | Control the check the newOrCopy action. |
Action (not lookup action) | performLookup() - override the path for the action forward to customize and send to a different Controller based on the BO Class. |
LookupAction | Provide infrastructure for complete rewrite of query logic and display. (KFS Balance Inquiries - really Lookups) This is the "segmented" feature. |
LookupForm | Addition of attributes which need to be persisted in the session for special lookups. This works with the item below. If we can have the Lookupable class stored in the session instead, then we can remove all customization of KualiLookupAction and LookupForm. |
LookupForm | Manipulation of the field values which will be passed to the lookup based on the HTTP request parameters. (Generally, it looks like this should *not* have been done, as they duplicated a large chunk of the code from the base class' populate() method. Most likely, all the logic in the forms can be moved into the lookupable. |
Nice-to-have Features
Note: Nice to Have Features are currently out of scope for 2.4.
ID | Nice-to-have Feature |
---|---|
L129 | Ability to specify separate control definitions for different purposes of fields. Presently, we have a problem in cases that we want to use a select control definition in most cases. But, we can't use that on the document (since we are setting up the values there.) And, we may want to not use it on lookups, as that prevents us from using the special lookup syntax. |
L130 | Validation during DD parsing that the field definitions given have associated attribute metadata. In KNS 2.1.2, you can reference attributes on the BO which do not have AttributeDefinition data, causing the field to have no label and defaulting to a 10-wide text control. Either we should make this more intelligent or throw an error during startup. |
L131 | If the user will not have the necessary permission to perform a lookup from a document or other lookup, then we should not display the quickfinder. |
L132 | DON'T make the display of the maintenance links dependent on the back location containing portal.do. This makes it harder to get standard behavior when linking from outside of the main application. |
L133 | Open up LOOKUP_READONLY fields to data entry. (Parent document type on document type lookup.) You should not have to search for a value to use on a lookup if you already know the value. |
L134 | In the redesign, there is probably no reason that we can not fold multi-value lookup into the main lookup form. It duplicates a lot of the base features anyway. If we design with this in mind (rather than tacking it on afterwards as was done originally.) |
L135 | (KC) Ability to specify whether lookup criteria should be handled in a case-sensitive or insensitive manner. |