I have this expression rule :
a!localVariables( /* Loop checks against passed in value of type to pull values from specific requirementActivity match */ a!forEach( items: ri!requirement.requirementActivities, expression: if(contains(fv!item.type, ri!activityType), 'type!{urn:com:appian:types:UW}UW-Requirement-Activity'( key: fv!item.key, type: fv!item.type, creatorId: fv!item.creatorId, creatorFullName: fv!item.creatorFullName, createdDate: fv!item.createdDate, commentText: fv!item.commentText ), {}), ), ),
And I'm using it in my interface :
a!localVariables( requirementsResponse: rule!UW_GetRequirementsByCase_RDS("SomeKey"), local!requirements: { a!forEach( items: local!requirementsResponse, expression: a!map( type: fv!item.name, status:fv!item.status, orderDate: fv!item.createdTimestamp, orderRep: fv!item.requestedBy, receiveDate: rule!UW_GetRequirementActivityByType(fv!item, "RECEIVED").createdDate, receiveRep: rule!UW_GetRequirementActivityByType(fv!item, "RECEIVED").creatorFullName, resolveDate: rule!UW_GetRequirementActivityByType(fv!item, or("WITHDRAWN", "ACCEPTED")).createdDate, resolveRep: rule!UW_GetRequirementActivityByType(fv!item, or("WITHDRAWN", "ACCEPTED")).creatorFullName, resolutionStatus: rule!UW_GetRequirementActivityByType(fv!item, or("ACCEPTED", "WITHDRAWN")).type, resolutionNotes: rule!UW_GetRequirementActivityByType(fv!item, or("ACCEPTED", "WITHDRAWN")).commentText ) ) },
Which I'm using to help populate fields. Everything works great until I save close out and go back...
Then I end up with this error: "Could not display interface. Please check definition and inputs. Interface Definition: Expression evaluation error at function a!forEach [line 6]: Error in a!forEach() expression during iteration 11: Expression evaluation error at function a!map parameter 7 [line 16]: Invalid index: Cannot index property 'createdDate' of type Text into type List of Variant"
Which is pointing to : resolveDate: rule!UW_GetRequirementActivityByType(fv!item, or("WITHDRAWN", "ACCEPTED")).createdDate,
It's not a fan of how I am using the or function - if I remove it and just pass one of the options all is fine. However I only want these fields populated if one or the other value is found. Is there another way to do this? I feel like this should work and again it does but then it does not.
Discussion posts and replies are publicly visible
If you run into something like this in the future. this thread was very helpful