load( local!sort, local!pagingInfo: a!pagingInfo(startIndex:1,batchSize:-1,sort:local!sort), local!tableDataSet: a!queryEntity( entity:cons!CWM_DISTRO_LIST_EXT_USERS_DSE, query:if(or(rule!APN_isBlank(ri!distroListId),rule!CWM_getExternalUsersByDistroId(ri!distroListId).totalcount<1), a!query( filter: a!queryFilter( field:"distroUserId", operator:"=", value:0 ), selection:a!querySelection( { a!queryColumn(field:"name"), a!queryColumn(field:"emailAddress"), a!queryColumn(field:"distroUserId") } ), pagingInfo:local!pagingInfo ), a!query( filter: a!queryFilter( field:"distroUserId", operator:"in", value:tointeger(rule!CWM_getExternalUsersByDistroId(ri!distroListId).data.userId) ), selection:a!querySelection( { a!queryColumn(field:"name"), a!queryColumn(field:"emailAddress"), a!queryColumn(field:"distroUserId") } ), pagingInfo:local!pagingInfo )) ), local!tableEmpty:if(local!tableDataSet.totalCount=0,true,false), with( a!gridLayout( label:"External", helpTooltip:"Edit an existing row or click the link to add a new row.", emptyGridMessage: "Currently no external users in this list.", headerCells:{ a!gridLayoutHeaderCell(label:"Name"), a!gridLayoutHeaderCell(label:"Email Address"), a!gridLayoutHeaderCell(label:"") }, columnConfigs:{ a!gridLayoutColumnConfig("DISTRIBUTE"), a!gridLayoutColumnConfig("DISTRIBUTE"), a!gridLayoutColumnConfig("NARROW") }, rows:{ if(or( not(local!tableEmpty),not ( rule!APN_isBlank(ri!addRow) )), a!applyComponents( function:rule!CWM_DistroListEditableGridRowLayout( index:_, dataset:local!tableDataSet.data, delete:ri!delete, distroListId:ri!distroListId ), array:1+ enumerate(local!tableDataSet.totalCount) ), {} ) }, selectionSaveInto:{}, addRowLink: a!dynamicLink( label:"Add an External User", value: 'type!{cws/appian/types}CWM_DistroListExtUsers'(), saveInto:{a!save(ri!addRow, append(ri!addRow, save!value))} ), validations:{} ) ) )