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
Hi @Stewart Burchell,
Aquaman is not working with latest Appian version 24.2 as we are getting error:
An error occurred while evaluating expression: patchMetaData:rule!AQA_ER_getPatchMetadata(patchContent: pv!patchContent) (Expression evaluation error in rule 'aqa_er_getpatchmetadata' at function 'type!{urn:com:appian:types:AQA}AQA_PATCH_METADATA' [line 26]: Invalid index (2) for list: valid range is 1..1) (Data Outputs)
it is due to change in the order of manifest file in new version:
the new version of manifest file:
Manifest-Version: 1.0Appian-Version: 24.2.295.0Created-On: 2024-07-04T12:09:28.760Z
older version:
Manifest-Version: 1.0Created-On: 2021-08-19T07:11:28.264ZAppian-Version: 21.2.335.0
I have changed the index in AQA_ER_getPatchMetadata from 3 to 2 but Aquaman result showing no analysis.
Can you please check that.
Per my observation, there are two issues
1. Appian function `document()` returns the filename without extension for `name` attribute - check on line 7 (AQA_ER_getPatchMetadata)
document(fv!item,"name")=cons!AQA_TEXT_MANIFEST_NAME
will never match the manifest file from the patch because
2. the constant AQA_TEXT_MANIFEST_NAME has by default the full filename as value (MANIFEST.MF). Hence, the local variable `local!manifest` will remain empty. This leads to
3. local variable `local!manifestContent` will initialize as list of strings (because the manifest file seems not present in the patch), not as a single string (as it is done by the readtextfromfile() function)
4. function `fn!keyval()` expects a single string, not a list of strings. In this case, it receives a list of strings and will never return the expected value (Created-On), but null instead
This causes the error described above.
Stewart Burchell Would you please consider looking at this and fixing it in the source code?
Thanks!
Hi Swati Sharda
Try changing the end of the expression AQA_ER_getPatchMetadata to this:
local!appianVersion: filter( fn!regexmatch("Appian-Version",_), local!manifestContentItems ), local!createdOn: filter( fn!regexmatch("Created-On",_), local!manifestContentItems ), 'type!{urn:com:appian:types:AQA}AQA_PATCH_METADATA'( appianVersion: trim(split(local!appianVersion,"Appian-Version:"))[2], patchDateTime: rule!AQA_ER_getPatchDateTime(patchCreatedDate: trim(split(local!createdOn,"Created-On:"))[2]) )