Details

    • Type: Task
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.4
    • Component/s: Development
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Rice Module:
      KRAD
    • KRAD Feature Area:
      Maintenance
    • Application Requirement:
      Rice
    • Sprint:
      2.4.0-m3 KRAD Sprint 4
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Code Review Status:
      Not Required
    • Include in Release Notes?:
      Yes

      Description

      M: Automatically clears out secure fields upon a BO copy operation.
      1) Build a KRAD sample linked from the KRAD sample app / labs / maintenance page, and
      2) identify a KNS example.
      Add links to these in the corresponding row the Maintenance Gap Analysis wiki page (https://wiki.kuali.org/display/KULRICE/Gap+Analysis+-+Maintenance+Document) to these examples.

      The TravelerDetail has a masked secure fields. For the sample we'll need a maintenance document view and lookup to copy the BO.

      In KNS this was implemented in KualiMaintenanceDocumentAction.clearUnauthorizedNewFields

        Attachments

          Issue Links

            Activity

            Hide
            eghm-kuali-m Erik Meade added a comment -

            Permissions

            Show
            eghm-kuali-m Erik Meade added a comment - Permissions
            Hide
            eghm-kuali-m Erik Meade added a comment -

            KULRICE-10235 might be considered a blocker, but I'll see about adding the data I need via SQL

            Show
            eghm-kuali-m Erik Meade added a comment - KULRICE-10235 might be considered a blocker, but I'll see about adding the data I need via SQL
            Hide
            eghm-kuali-m Erik Meade added a comment -

            Work around Doc Type Maintenance exception

            Show
            eghm-kuali-m Erik Meade added a comment - Work around Doc Type Maintenance exception
            Show
            eghm-kuali-m Erik Meade added a comment - KRAD Demo Lookup Basic copy link is http://localhost:8080/krad-dev/kr-krad/maintenance?viewTypeName=MAINTENANCE&number=a1&maintenanceCopy&dataObjectClassName=org.kuali.rice.krad.demo.travel.dataobject.TravelAccount
            Show
            eghm-kuali-m Erik Meade added a comment - - edited Copy URL http://localhost:8080/krad-dev/kr-krad/maintenance?viewTypeName=MAINTENANCE&id=1&methodToCall=maintenanceCopy&dataObjectClassName=edu.sampleu.travel.dataobject.TravelerDetail&backdoorId=dev1
            Hide
            eghm-kuali-m Erik Meade added a comment -
            Show
            eghm-kuali-m Erik Meade added a comment - Traveler Details Inquiry URL (not phone number differences between backdoorId dev1 and admin) http://env14.rice.kuali.org/kr-krad/inquiry?methodToCall=start&dataObjectClassName=edu.sampleu.travel.dataobject.TravelerDetail&id=1&backdoorId=dev1
            Hide
            eghm-kuali-m Erik Meade added a comment - - edited

            Couple of validation errors that need to be tracked down for Submit, the dateOfBirth validation error is odd as the dateOfBirth input is in this format, maybe it's not getting copied so it's blank. The {0} value '{1}' is not formatted correctly, Looks like an issue between 0-1 and boolean values, not to mention the missing message (needs to be added to property file maybe) in the error itself.

            Show
            eghm-kuali-m Erik Meade added a comment - - edited Couple of validation errors that need to be tracked down for Submit, the dateOfBirth validation error is odd as the dateOfBirth input is in this format, maybe it's not getting copied so it's blank. The {0} value '{1}' is not formatted correctly, Looks like an issue between 0-1 and boolean values, not to mention the missing message (needs to be added to property file maybe) in the error itself.
            Hide
            eghm-kuali-m Erik Meade added a comment -

            Hacked up the code base to get around Permission and Validation issues. Upon submitting the maintenanceCopy, the UI reports success, however the document is not in the DB and there is an error and JTA Roolback stack trace in the logs:

            
            [EL Warning]: 2013-12-13 14:17:51.285--UnitOfWork(7941180)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.1.v20130918-f2b9fc5): org.eclipse.persistence.exceptions.DatabaseException
            Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '' for key 'PRIMARY'
            Error Code: 1062
            Call: INSERT INTO TRVL_TRAVELER_DTL_T (ACTV_IND, citizenship, city_nm, country_cd, customer_num, doc_nbr, drive_lic_exp_dt, drive_lic_num, email_addr, first_nm, gender, last_nm, MIDDLENAME, non_res_alien, OBJ_ID, phone_nbr, EMP_PRINCIPAL_ID, postal_state_cd, addr_line_1, addr_line_2, traveler_typ_cd, VER_NBR, postal_cd) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
            	bind => [23 parameters bound]
            Query: InsertObjectQuery(edu.sampleu.travel.dataobject.TravelerDetail@27d82f0a)
            2013-12-13 14:17:51,285 [TRAVEL/KSB-pool-1-thread-2] u:dev1/d: INFO  org.objectweb.jotm - Rollback during beforeCompletion in SubCoordinator.commit_one_phase
            2013-12-13 14:17:51,287 [TRAVEL/KSB-pool-1-thread-2] u:dev1/d: ERROR org.kuali.rice.ksb.messaging.MessageServiceInvoker - Error processing message: [RouteQueue: , routeQueueId=479, ipNumber=192.168.170.1applicationId=TRAVEL, serviceName={http://rice.kuali.org/kew/v2_0}documentProcessingQueue, methodName=processWithOptions, queueStatus=R, queuePriority=5, queueDate=2013-12-13 14:17:51.059]
            org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException
            	at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1014)
            	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:755)
            	at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724)
            	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:148)
            	at org.kuali.rice.ksb.messaging.MessageServiceInvoker.run(MessageServiceInvoker.java:67)
            	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
            	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
            	at java.lang.Thread.run(Thread.java:722)
            Caused by: javax.transaction.RollbackException
            	at org.objectweb.jotm.TransactionImpl.commit(TransactionImpl.java:331)
            	at org.objectweb.jotm.Current.commit(Current.java:474)
            	at sun.reflect.GeneratedMethodAccessor147.invoke(Unknown Source)
            	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            	at java.lang.reflect.Method.invoke(Method.java:601)
            	at org.kuali.rice.core.framework.persistence.jta.UserTransactionFactoryBean$LazyInitializationHandler.invoke(UserTransactionFactoryBean.java:73)
            	at $Proxy13.commit(Unknown Source)
            	at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1011)
            	... 7 more
            2013-12-13 14:17:51,287 [TRAVEL/KSB-pool-1-thread-2] u:dev1/d: ERROR org.kuali.rice.ksb.messaging.exceptionhandling.DefaultExceptionServiceImpl - Exception caught processing message 479 {http://rice.kuali.org/kew/v2_0}documentProcessingQueue: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException
            
            
            Show
            eghm-kuali-m Erik Meade added a comment - Hacked up the code base to get around Permission and Validation issues. Upon submitting the maintenanceCopy, the UI reports success, however the document is not in the DB and there is an error and JTA Roolback stack trace in the logs: [EL Warning]: 2013-12-13 14:17:51.285--UnitOfWork(7941180)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.1.v20130918-f2b9fc5): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '' for key 'PRIMARY' Error Code: 1062 Call: INSERT INTO TRVL_TRAVELER_DTL_T (ACTV_IND, citizenship, city_nm, country_cd, customer_num, doc_nbr, drive_lic_exp_dt, drive_lic_num, email_addr, first_nm, gender, last_nm, MIDDLENAME, non_res_alien, OBJ_ID, phone_nbr, EMP_PRINCIPAL_ID, postal_state_cd, addr_line_1, addr_line_2, traveler_typ_cd, VER_NBR, postal_cd) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) bind => [23 parameters bound] Query: InsertObjectQuery(edu.sampleu.travel.dataobject.TravelerDetail@27d82f0a) 2013-12-13 14:17:51,285 [TRAVEL/KSB-pool-1-thread-2] u:dev1/d: INFO org.objectweb.jotm - Rollback during beforeCompletion in SubCoordinator.commit_one_phase 2013-12-13 14:17:51,287 [TRAVEL/KSB-pool-1-thread-2] u:dev1/d: ERROR org.kuali.rice.ksb.messaging.MessageServiceInvoker - Error processing message: [RouteQueue: , routeQueueId=479, ipNumber=192.168.170.1applicationId=TRAVEL, serviceName={http: //rice.kuali.org/kew/v2_0}documentProcessingQueue, methodName=processWithOptions, queueStatus=R, queuePriority=5, queueDate=2013-12-13 14:17:51.059] org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1014) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:755) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:148) at org.kuali.rice.ksb.messaging.MessageServiceInvoker.run(MessageServiceInvoker.java:67) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang. Thread .run( Thread .java:722) Caused by: javax.transaction.RollbackException at org.objectweb.jotm.TransactionImpl.commit(TransactionImpl.java:331) at org.objectweb.jotm.Current.commit(Current.java:474) at sun.reflect.GeneratedMethodAccessor147.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.kuali.rice.core.framework.persistence.jta.UserTransactionFactoryBean$LazyInitializationHandler.invoke(UserTransactionFactoryBean.java:73) at $Proxy13.commit(Unknown Source) at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1011) ... 7 more 2013-12-13 14:17:51,287 [TRAVEL/KSB-pool-1-thread-2] u:dev1/d: ERROR org.kuali.rice.ksb.messaging.exceptionhandling.DefaultExceptionServiceImpl - Exception caught processing message 479 {http: //rice.kuali.org/kew/v2_0}documentProcessingQueue: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException
            Hide
            eghm-kuali-m Erik Meade added a comment -

            SQL Exception in logs without Incident report. UI message was that document submission was successful. KULRICE-10341

            Show
            eghm-kuali-m Erik Meade added a comment - SQL Exception in logs without Incident report. UI message was that document submission was successful. KULRICE-10341
            Show
            eghm-kuali-m Erik Meade added a comment - M44 Sample URL (dev1) http://localhost:8080/krad-dev/kr-krad/maintenance?viewTypeName=MAINTENANCE&id=1&methodToCall=maintenanceCopy&dataObjectClassName=edu.sampleu.travel.dataobject.TravelerDetail&backdoorId=dev1 M44 Sample URL (admin) http://localhost:8080/krad-dev/kr-krad/maintenance?viewTypeName=MAINTENANCE&id=1&methodToCall=maintenanceCopy&dataObjectClassName=edu.sampleu.travel.dataobject.TravelerDetail&backdoorId=admin
            Hide
            eghm-kuali-m Erik Meade added a comment -

            TravelerDetailMainenanceValidationError.png date validation error was due to the Drivers license exp date, adding the field to the form caused it to be formatted properly. Liability Insurance requires 0 1 or blank, vs true/false.

            Show
            eghm-kuali-m Erik Meade added a comment - TravelerDetailMainenanceValidationError.png date validation error was due to the Drivers license exp date, adding the field to the form caused it to be formatted properly. Liability Insurance requires 0 1 or blank, vs true/false.
            Hide
            eghm-kuali-m Erik Meade added a comment -

            ClearSecureBoCopyBlankId.png - Notice the blank id, which then causes a duplicate primary key after the first copy. Doc Number is ?? that isn't right is it? Phone Number is null, which is expected behavior as Phone Number is the secured field.

            Show
            eghm-kuali-m Erik Meade added a comment - ClearSecureBoCopyBlankId.png - Notice the blank id, which then causes a duplicate primary key after the first copy. Doc Number is ?? that isn't right is it? Phone Number is null, which is expected behavior as Phone Number is the secured field.
            Hide
            eghm-kuali-m Erik Meade added a comment -

            M44KnsExample.png - KFS user ahrens on Main Menu ACHBank search (routing numbers) (Rice KNS example was in travelapp has been removed from sampleapp)

            org/kuali/kfs/pdp/businessobject/datadictionary/ACHBank.xml:

              <bean id="ACHBank-bankRoutingNumber-parentBean" abstract="true" parent="AttributeDefinition">
                <property name="name" value="bankRoutingNumber"/>
                <property name="forceUppercase" value="false"/>
                <property name="label" value="Bank Routing Number"/>
                <property name="shortLabel" value="Bank Routing Number"/>
                <property name="maxLength" value="9"/>
                <property name="validationPattern">
                  <ref bean="NumericValidation" />
                </property>
                <property name="required" value="true"/>
                <property name="control">
                  <bean parent="TextControlDefinition" p:size="9"/>
                </property>
                <property name="attributeSecurity">
                            <bean parent="AttributeSecurity">
                                    <property name="mask" value="true"/> 
                                    <property name="maskFormatter">
                                    <bean parent="MaskFormatterLiteral" p:literal="*********"/> 
                                    </property>
                            </bean>
                    </property>
              </bean>
            
            Show
            eghm-kuali-m Erik Meade added a comment - M44KnsExample.png - KFS user ahrens on Main Menu ACHBank search (routing numbers) (Rice KNS example was in travelapp has been removed from sampleapp) org/kuali/kfs/pdp/businessobject/datadictionary/ACHBank.xml: <bean id= "ACHBank-bankRoutingNumber-parentBean" abstract = " true " parent= "AttributeDefinition" > <property name= "name" value= "bankRoutingNumber" /> <property name= "forceUppercase" value= " false " /> <property name= "label" value= "Bank Routing Number " /> <property name= "shortLabel" value= "Bank Routing Number " /> <property name= "maxLength" value= "9" /> <property name= "validationPattern" > <ref bean= "NumericValidation" /> </property> <property name= "required" value= " true " /> <property name= "control" > <bean parent= "TextControlDefinition" p:size= "9" /> </property> <property name= "attributeSecurity" > <bean parent= "AttributeSecurity" > <property name= "mask" value= " true " /> <property name= "maskFormatter" > <bean parent= "MaskFormatterLiteral" p:literal= "*********" /> </property> </bean> </property> </bean>
            Hide
            eghm-kuali-m Erik Meade added a comment - - edited

            Example completed, but there are implementation issues with the copy functionality (blank id, ?? doc number)

            Show
            eghm-kuali-m Erik Meade added a comment - - edited Example completed, but there are implementation issues with the copy functionality (blank id, ?? doc number)

              People

              • Assignee:
                eghm-kuali-m Erik Meade
                Reporter:
                cniesen Claus Niesen
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 1 day Original Estimate - 1 day
                  1d
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 2 days, 6 hours, 35 minutes
                  2d 6h 35m