OverviewAs a Peer Reviewer I want to have a fast and predictable method of checking the quality of application patches so that I do not have to exert a lot of time and energy manually checking these against the application standards.
As a Lead Developer I want to define and manage the quality standards that comprise the 'Definition of Good' for my application so that they can be applied and reported on in a peer review against an application patch.
Key Features & Functionality
Report on missing labels/accessibility text for Interface Object components
Hi JJ Cañas - whilst you cannot export the whole of an analysis in a WebAPI the WebAPIs you mention can be used as part of a CI/CD pipeline.:
Were you expecting/wanting a WebAPI to be able to do something else?
Hi Kurt Bunge - thanks for adding this clarification. I've tried to articulate in the documentation that AQuAMan simply presents some findings (always expressed as "risks") and that it's entirely up to the user to establish what the risks are and whether what - if anything - should be done to address them. And, of course, context is key in any such assessment.
In short: AQuAMan should not be used as a blunt tool where the findings are Boolean (good versus bad!) but as a source of insight from which actions may be taken.
Hi Team,
The client has asked us if it would be possible to export the Aquaman analyzes. I have seen that the application has this two web apis:
But it seems that none of them work for what the client is asking for.
Is there a way to expose these analyzes in a web api so that they are consumed by a CI/CD tool?
Thanks!
Hello Dimitark,
I faced this too and found the the Xpath function is using XPATH to OBJECT attribute from [AQA_OBJECT_ATTRIBUTE] wrt to Object type ID.
That attribute is corrupted when we are converting mssql to Mysql to server.
First verify the Object type
Verify the object attribute which is getting the call when rule is failing and then try to pass that attribute. Once you able to find out the attribute. Please compare it with the one which is provided in package and see the difference.
Also c heck case : "612282 - Please make an incident for Xpath broken"
Thanks
Hi Team, For the first time we've tried deploying AQuAMan QA application (in Cloud) but we're seeing behavior which is almost identical to the issue posted by subhadeepr3242 6 months ago - where issue occurs only when evaluation some Process Models, but not others. Here's a stack trace of the error: - any ideas on what can be done?[1] object: pv!Object, attributeName: #"_a-0000e385-9976-8000-9bac-011c48011c48_3445850", objectAttributes: pv!objectAttributes ) =>(EXCEPTION) [2] 2024-04-15 06:48:58,298 [Appian Work Item - 194049 - WorkID 339 - execution02 - process 536878506 - model 1159 : ExpressionGroupRequest] DEBUG com.appiancorp.core.expr.tree.Variable - Variable local!xPathDocument => Context Reference local!xPathDocument Îåà 2024-04-15 06:48:58,298 [Appian Work Item - 194049 - WorkID 339 - execution02 - process 536878506 - model 1159 : ExpressionGroupRequest] DEBUG com.appiancorp.core.expr.tree.Variable - Variable local!xPathDocument => Context Reference local!xPathDocument Îåà 2024-04-15 06:48:58,299 [Appian Work Item - 194049 - WorkID 339 - execution02 - process 536878506 - model 1159 : ExpressionGroupRequest] DEBUG com.appiancorp.core.expr.Parse - =#"_a-0000e385-9976-8000-9bac-011c48011c48_3446005"( object: pv!Object, attributeName: #"_a-0000e385-9976-8000-9bac-011c48011c48_3445850", objectAttributes: pv!objectAttributes ) =>(EXCEPTION) 2024-04-15 06:48:58,299 [Appian Work Item - 194049 - WorkID 339 - execution02 - process 536878506 - model 1159 : ExpressionGroupRequest] DEBUG com.appiancorp.core.expr.Parse - Could not evaluate expression parse tree: =#"_a-0000e385-9976-8000-9bac-011c48011c48_3446005"( object: pv!Object, attributeName: #"_a-0000e385-9976-8000-9bac-011c48011c48_3445850", objectAttributes: pv!objectAttributes ) com.appiancorp.core.expr.exceptions.ExpressionRuntimeException$AppianExceptionProvider: Expression evaluation error in rule 'aqa_er_getobjectattributevaluebyattributename': Invalid index (1) for list: valid range is empty (APNX-1-4198-000) at <DESIGNER RULE>.(_a-0000e385-9976-8000-9bac-011c48011c48_3446005:1) at ______________________________SAIL_TO_JAVA_BOUNDARY______________________________.esId=BFH2LI9O(Unknown Source) at com.appiancorp.core.expr.exceptions.ExpressionRuntimeException.<init>(ExpressionRuntimeException.java:112) at com.appiancorp.core.expr.exceptions.AppianScriptException.<init>(AppianScriptException.java:28) at com.appiancorp.core.expr.exceptions.AppianScriptException.<init>(AppianScriptException.java:24) at com.appiancorp.core.expr.tree.Select.evalWrapped(Select.java:207) at com.appiancorp.core.expr.Tree.eval(Tree.java:448) at com.appiancorp.core.expr.Tree.eval0(Tree.java:438) at com.appiancorp.core.expr.Tree.eval(Tree.java:341) at com.appiancorp.core.expr.rule.Rule.evalBody(Rule.java:1569) at com.appiancorp.core.expr.rule.Rule.doEval(Rule.java:962) at com.appiancorp.core.expr.rule.Rule.eval(Rule.java:849) at com.appiancorp.core.expr.rule.Rule.evalAndCache(Rule.java:743) at com.appiancorp.core.expr.rule.Rule.eval(Rule.java:735) at com.appiancorp.core.expr.rule.Rule.evalWithMetrics(Rule.java:716) at com.appiancorp.core.expr.rule.Rule.eval(Rule.java:702) at com.appiancorp.core.expr.tree.FreeformRule.evalWrapped(FreeformRule.java:162) at com.appiancorp.core.expr.Tree.eval(Tree.java:448) at com.appiancorp.core.expr.tree.FreeformRule.eval0(FreeformRule.java:133) at com.appiancorp.core.expr.Tree.eval(Tree.java:341) at com.appiancorp.core.expr.Parse.evalInner(Parse.java:433) at com.appiancorp.core.expr.Parse.eval(Parse.java:383) at com.appiancorp.core.expr.Parse.eval(Parse.java:369) at com.appiancorp.core.expr.AppianScriptEngine.eval(AppianScriptEngine.java:79) at com.appiancorp.process.engine.ExpressionGroup.eval(ExpressionGroup.java:290) at com.appiancorp.process.engine.ExpressionGroup.eval(ExpressionGroup.java:354) at com.appiancorp.process.engine.ExpressionGroupRequest.execute0(ExpressionGroupRequest.java:106) at com.appiancorp.common.persistence.data.AppianDataUserContextProvider.executeWithConsistentDataReads(AppianDataUserContextProvider.java:143) at com.appiancorp.process.engine.ProcessContinuationRequest.executeOuter(ProcessContinuationRequest.java:68) at com.appiancorp.process.engine.ContinuationRequest.execute(ContinuationRequest.java:129) at com.appiancorp.process.workpoller.UnattendedRequestHandlerBean.onMessage(UnattendedRequestHandlerBean.java:36) at com.appiancorp.process.workpoller.WorkItem.run(WorkItem.java:110) at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:241) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.ArrayIndexOutOfBoundsException: Invalid index (1) for list: valid range is empty at com.appiancorp.core.expr.portable.storage.StorageArray.arrayIndexOutOfBoundsException(StorageArray.java:360) at com.appiancorp.core.expr.portable.storage.StorageArray.doSelect_integerScalarIndex(StorageArray.java:737) at com.appiancorp.core.expr.portable.storage.Storage.doSelect(Storage.java:735) at com.appiancorp.core.expr.portable.storage.Storage._select(Storage.java:693) at com.appiancorp.core.expr.portable.storage.Storage.select(Storage.java:673) at com.appiancorp.core.expr.portable.Value.select(Value.java:209) at com.appiancorp.core.Data.select(Data.java:124) at com.appiancorp.core.expr.tree.Select.eval(Select.java:223) -- 2024-04-15 06:48:58,300 [Appian Work Item - 194049 - WorkID 339 - execution02 - process 536878506 - model 1159 : ExpressionGroupRequest] ERROR com.appiancorp.process.engine.ExpressionGroup - An error occurred while evaluating expression: =rule!AQA_ER_getObjectAttributeValueByAttributeName( object: pv!Object, attributeName: cons!AQA_TEXT_OBJECT_ATTRIBUTE_NAME, objectAttributes: pv!objectAttributes ) (Expression evaluation error in rule 'aqa_er_getobjectattributevaluebyattributename': Invalid index (1) for list: valid range is empty) com.appiancorp.core.expr.exceptions.ExpressionRuntimeException$AppianExceptionProvider: Expression evaluation error in rule 'aqa_er_getobjectattributevaluebyattributename': Invalid index (1) for list: valid range is empty (APNX-1-4198-000) at <DESIGNER RULE>.(_a-0000e385-9976-8000-9bac-011c48011c48_3446005:1) at ______________________________SAIL_TO_JAVA_BOUNDARY______________________________.esId=BFH2LI9O(Unknown Source) at com.appiancorp.core.expr.exceptions.ExpressionRuntimeException.<init>(ExpressionRuntimeException.java:112) at com.appiancorp.core.expr.exceptions.AppianScriptException.<init>(AppianScriptException.java:28) at com.appiancorp.core.expr.exceptions.AppianScriptException.<init>(AppianScriptException.java:24) at com.appiancorp.core.expr.tree.Select.evalWrapped(Select.java:207) at com.appiancorp.core.expr.Tree.eval(Tree.java:448) ....
The last list item for Key Features and Functionality indicates a test is performed for missing accessibilityText parameter values. Note that no one should be relying on this test (the labels test is valid). Just because a component does not have accessibility text does not mean it fails any a11y requirement. In fact, accessibility text should not need to be used in most cases. It should only be used to provide additional information to non-sighted users. However, the need to do so is based on context. If you design your content correctly, accessibility text should never be needed. In cases where you may believe it IS needed, then you should consider redesigning your content so the information is available to all users, not just non-sighted users. The accessibilityText parameter is one of the most overused of Appian component parameters. In most cases where it is used, it either creates redundancy or confusion for users who rely on a screen reader. The parameter name is misleading because its use does not necessarily make content accessible or even "more accessible".
Hi, can you please adapt scripts from Maria DB to Oracle and/or other DBs as well? GPT isn't quite able to adapt it yet
Hi sushilkapoor2418
The referenced plug-in is this one: https://community.appian.com/b/appmarket/posts/text-file-reader
Okay Thanks..
Just to clarify - the fix worked in the environment where an existing instance of AQuAMan was running so it's not an (AQuAMan) application issue.
Regarding support for MSSQL - apologies, I do not have the scripts for any other DB other than MariaDB.