Appian Community
Site
Search
Sign In/Register
Site
Search
User
DISCUSS
LEARN
SUCCESS
SUPPORT
Documentation
AppMarket
More
Cancel
I'm looking for ...
State
Not Answered
Replies
7 replies
Subscribers
4 subscribers
Views
2085 views
Users
0 members are here
Share
More
Cancel
Related Discussions
Home
»
Discussions
»
Reports
173229 - no subject - We have a Portal Report that work on ver
mohamedb
over 9 years ago
We have a Portal Report that work on version 7.3 to read some data from a CDT process variable. The Department columns in this report is configured to get its value from the following expression.
=if(isnull(pv!cdtHighLevelEstimate1.tDeptAssigned),pv!cdtHighLevelEstimateLevel2.tDeptAssigned,pv!cdtHighLevelEstimate1.tDeptAssigned)
All the other columns are defined using the same CDTs in the same fashion. The Portal Report takes care of formatting and looping; which is nice.
Now, we want to replace this Portal Report with a Dynamic Channel that displayed the table as displayed below. How can we achieve that and loop on the CDTs while doing the same if-condition as we did in Portal Report?
Thanks.
OriginalPostID-173229
Discussion posts and replies are publicly visible
Parents
0
mohamedb
over 9 years ago
Thanks csteward, let me explain what I am trying to achieve a bit more ...
The expression takes two input CDTs (both multiple)
pv!cdtHighLevelEstimate1
pv!cdtHighLevelEstimate2
Each CDT contain text fields that represent:
Department/Division
Status
Due Date
Started
Completed
Estimate
Uptil now, I was able to obtain the attached table using the following expression:
=if(
and(rule!fdCheckIsNull(pv!cdtHighLevelEstimate1),rule!fdCheckIsNull(pv!cdtHighLevelEstimate2)),"No Data available for Pipeline View.",
rule!fdGetPipelineViewHeader() &
apply(rule!fdGetPipelineViewRow,
merge({"text1"}, {"text2"}, {"text3"}, {"text4"}, {"text5"}, {"text6"})
)
)
The question is: I would like to have the table populated from CDT arrays following the rules below:
1- if(isnull(pv!cdtHighLevelEstimate1.tDeptAssigned),pv!cdtHighLevelEstimateLevel2.tDeptAssigned,pv!cdtHighLevelEstimate1.tDeptAssigned),
2- if(isnull(pv!cdtHighLevelEstimate1.iTaskId),pv!cdtHighLevelEstimateLevel2.tStatus ,pv!cdtHighLevelEstimate1.tStatus),
3- text(todate(if(isnull(pv!cdtHighLevelEstimate1.iTaskId),pv!cdtHighLevelEstimateLevel2.dTaskDueDate,pv!cdtHighLevelEstimate1.dTaskDueDate)),"mmm dd, yyyy"),
4- text(todate(if(isnull(pv!cdtHighLevelEstimate1.iTaskId),pv!cdtHighLevelEstimateLevel2.dTaskStartTime,pv!cdtHighLevelEstimate1.dTaskStartTime)),"mmm dd, yyyy"),
5- text(todate(if(isnull(pv!cdtHighLevelEstimate1.iTaskId),pv!cdtHighLevelEstimateLevel2.dTaskEndTime,pv!cdtHighLevelEstimate1.dTaskEndTime)),"mmm dd, yyyy"),
6- index ( {cons!FD_DD_HIGH_LEVEL_ESTIMATES_DISPLAY , cons!FD_DD_HIGH_LEVEL_ESTIMATES_UPDATED_DISPLAY} , lookup ( {cons!FD_DD_HIGH_LEVEL_ESTIMATES_VALUE , cons!FD_DD_HIGH_LEVEL_ESTIMATES_UPDATED_VALUE}, if ( isnull ( pv!cdtHighLevelEstimate1 .iTaskId ) , pv!cdtHighLevelEstimateLevel2 .tHighLevelEstimate , pv!cdtHighLevelEstimate1 .tHighLevelEstimate ) , - 1 ) , "Not Available" )
Do you think there is a way to use the merge() function for that? Will it loop on the CDT array accessing each field? Is there a right syntax for this?
Thanks
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
Reply
0
mohamedb
over 9 years ago
Thanks csteward, let me explain what I am trying to achieve a bit more ...
The expression takes two input CDTs (both multiple)
pv!cdtHighLevelEstimate1
pv!cdtHighLevelEstimate2
Each CDT contain text fields that represent:
Department/Division
Status
Due Date
Started
Completed
Estimate
Uptil now, I was able to obtain the attached table using the following expression:
=if(
and(rule!fdCheckIsNull(pv!cdtHighLevelEstimate1),rule!fdCheckIsNull(pv!cdtHighLevelEstimate2)),"No Data available for Pipeline View.",
rule!fdGetPipelineViewHeader() &
apply(rule!fdGetPipelineViewRow,
merge({"text1"}, {"text2"}, {"text3"}, {"text4"}, {"text5"}, {"text6"})
)
)
The question is: I would like to have the table populated from CDT arrays following the rules below:
1- if(isnull(pv!cdtHighLevelEstimate1.tDeptAssigned),pv!cdtHighLevelEstimateLevel2.tDeptAssigned,pv!cdtHighLevelEstimate1.tDeptAssigned),
2- if(isnull(pv!cdtHighLevelEstimate1.iTaskId),pv!cdtHighLevelEstimateLevel2.tStatus ,pv!cdtHighLevelEstimate1.tStatus),
3- text(todate(if(isnull(pv!cdtHighLevelEstimate1.iTaskId),pv!cdtHighLevelEstimateLevel2.dTaskDueDate,pv!cdtHighLevelEstimate1.dTaskDueDate)),"mmm dd, yyyy"),
4- text(todate(if(isnull(pv!cdtHighLevelEstimate1.iTaskId),pv!cdtHighLevelEstimateLevel2.dTaskStartTime,pv!cdtHighLevelEstimate1.dTaskStartTime)),"mmm dd, yyyy"),
5- text(todate(if(isnull(pv!cdtHighLevelEstimate1.iTaskId),pv!cdtHighLevelEstimateLevel2.dTaskEndTime,pv!cdtHighLevelEstimate1.dTaskEndTime)),"mmm dd, yyyy"),
6- index ( {cons!FD_DD_HIGH_LEVEL_ESTIMATES_DISPLAY , cons!FD_DD_HIGH_LEVEL_ESTIMATES_UPDATED_DISPLAY} , lookup ( {cons!FD_DD_HIGH_LEVEL_ESTIMATES_VALUE , cons!FD_DD_HIGH_LEVEL_ESTIMATES_UPDATED_VALUE}, if ( isnull ( pv!cdtHighLevelEstimate1 .iTaskId ) , pv!cdtHighLevelEstimateLevel2 .tHighLevelEstimate , pv!cdtHighLevelEstimate1 .tHighLevelEstimate ) , - 1 ) , "Not Available" )
Do you think there is a way to use the merge() function for that? Will it loop on the CDT array accessing each field? Is there a right syntax for this?
Thanks
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
Children
No Data