Hi All,
Below is the screenshot of requirement
a!localVariables( local!Employeefilterdata:"Employee_Id", /*local!Employeefilterdata: rule!ETA_filterEmployeesData(),*/ local!Employeedata: rule!ETA_employeeData(local!Employeefilterdata), local!deletedEmployeeIds, /* Create Pagination */ local!startIndex: 1, local!batchSize: 5, local!pagingInfo: a!pagingInfo( startIndex: local!startIndex, batchSize: local!batchSize ), local!datasubset: todatasubset( arrayToPage: local!Employeedata, pagingConfiguration: local!pagingInfo ), a!formLayout( label: " Employee Data", instructions: "Add, Update and Remove Employee Data", contents: { a!imageField( label: "", labelPosition: "ABOVE", images: {a!documentImage(cons!ETA_HRA)}, size: "FIT", isThumbnail: false, style: "STANDARD", marginAbove: "EVEN_LESS" ), a!dropdownField( label: "Selection", labelPosition: "ABOVE", placeholder: "--- Select a Value ---", choiceLabels: {cons!ETA_EMPLOYEE_CDT_DSE_POINTER}, choiceValues: {cons!ETA_EMPLOYEE_CDT_DSE_POINTER}, value: local!Employeefilterdata, saveInto: {local!Employeefilterdata}, searchDisplay: "AUTO", validations: {} ), a!gridLayout( totalCount: local!datasubset.totalCount, headerCells: { /*a!gridLayoutHeaderCell(label: "Employee Id" ),*/ a!gridLayoutHeaderCell(label: "Employee Name" ), a!gridLayoutHeaderCell(label: "DOB" ), a!gridLayoutHeaderCell(label: "Department" ), a!gridLayoutHeaderCell(label: "Designation" ), /*a!gridLayoutHeaderCell(label: "Phone Number" ),*/ a!gridLayoutHeaderCell(label: "Date Of Joining" ), a!gridLayoutHeaderCell(label: "Gender" ), a!gridLayoutHeaderCell(label: "Email Address" ), a!gridLayoutHeaderCell(label: "Status"), /*a!gridLayoutHeaderCell(label: "Start Date", align: "RIGHT" ),*/ /* For the "Remove" column */ a!gridLayoutHeaderCell(label: " " ) }, /* Only needed when some columns need to be narrow */ columnConfigs: { a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:3 ), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:3 ), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:3 ), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:3 ), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:3 ), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:2 ), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight: 4), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight: 3) }, /* * a!forEach() will take local!employee data and used that data to loop through an * expression that creates each row. * * When modifying the recipe to work with your data, you only need to change: * 1.) the number of fields in each row * 2.) the types of fields for each column (i.e. a!textField() for text data elements) * 3.) the fv!item elements. For example fv!item.firstName would change to fv!item.yourdata */ rows: a!forEach( items: local!datasubset, expression: a!gridRowLayout( id: fv!index, contents: { /*a!textField(*/ /* Labels are not visible in grid cells but are necessary to meet accessibility requirements */ /*label: "Employee Id " & fv!index,*/ /*value: fv!item.Employee_Id,*/ /*saveInto: fv!item.Employee_Id,*/ /*required: true*/ /*),*/ /* For the Employee Name Column*/ a!textField( /* Labels are not visible in grid cells but are necessary to meet accessibility requirements */ label: "Employee Name " & fv!index, value: fv!item.Employee_Name, saveInto: {fv!item.Employee_Name, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Employee_Name: save!value} )) }, required: true ), /* For the DOB Column*/ a!dateField( label: "DOB " & fv!index, value: fv!item.DOB, saveInto: {fv!item.DOB, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {DOB: save!value} )) }, required:true ), /* For the Department Column*/ a!dropdownField( label: "Department " & fv!index, placeholder: "-- Select -- ", choiceLabels: {"Desktop Support", "Helpdesk","Systems Engineering","Network Engineering","Application Management"}, choiceValues: {"Desktop Support", "Helpdesk","Systems Engineering","Network Engineering","Application Management"}, value: fv!item.Department, saveInto: {fv!item.Department, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Department: save!value} )) }, required:true ), /* For the Designation Column*/ a!dropdownField( label: "Designation " & fv!index, placeholder: "-- Select -- ", ChoiceLabels: {"Cloud Computing Engineer", "Network Specialist", "Support Specialist", "Database Administrator", "Information Technology Analyst", "Technology Leadership", "Security Specialist", "Software/Application Developer"}, choiceValues: {"Cloud Computing Engineer", "Network Specialist", "Support Specialist", "Database Administrator", "Information Technology Analyst", "Technology Leadership", "Security Specialist", "Software/Application Developer"}, value: fv!item.Designation, saveInto: {fv!item.Designation, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Designation: save!value} )) }, required:true ), /* For the Phone Number Column*/ /*a!textField(*/ /*label: "Phone Number " & fv!index,*/ /*placeholder:"555-456-7890",*/ /*value: fv!item.Phone_Number,*/ /*saveInto: fv!item.Phone_Number*/ /*),*/ a!dateField( label: "Date Of Joining " & fv!index, value: fv!item.Date_Of_Joining, saveInto: {fv!item.Date_Of_Joining, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Date_Of_Joining: save!value} )) }, required:true, align: "RIGHT" ), /* For the Gender Column*/ a!dropdownField( label: "Gender " & fv!index, placeholder: "-- Select -- ", choiceLabels: {"Male","Female"}, choiceValues: {"Male","Female"}, value: fv!item.Gender, saveInto: {fv!item.Gender, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Gender: save!value} )) }, required:true ), /* For the Email Address Column*/ a!textField( label: "Email Address" & fv!index, value: fv!item.Email_Address, saveInto: {fv!item.Email_Address, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Email_Address: save!value} )) }, required:true ), a!textField( label: "Status" &fv!index, value: cons!ETA_Status, saveInto:{cons!ETA_Status, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Email_Address: save!value} )) }, required:true ), /* For the Removal Column*/ a!richTextDisplayField( label: "Action", value: a!richTextIcon( icon: "close", /*color: "STANDARD",*/ altText: "delete " & fv!index, caption: "Remove" & fv!item.Employee_Name, link: a!dynamicLink( value: fv!identifier, saveInto: { if( isnull( fv!identifier), {}, a!save( local!deletedEmployeeIds, append(local!deletedEmployeeIds, fv!item.Employee_Id)) ), a!save(ri!Value2, true), a!save(ri!EmployeeId, local!deletedEmployeeIds), a!save(local!Employeedata, remove(local!Employeedata, save!value)), disabled: contains(local!Employeedata, fv!index) } ), linkStyle: "STANDALONE", color: "NEGATIVE" ) ) } ) ), addRowlink: a!dynamicLink( label: "Add Employee", value: 'type!{urn:com:appian:types:ETA}ETA_EmployeeDt'(), saveInto: { a!save(local!Employeedata, append(local!Employeedata, save!value)) } ), shadeAlternateRows: true, rowHeader: 1 ), /* Pagination Functionality */ rule!ETA_customPagingForGrid( startIndex: local!startIndex, batchSize: local!batchSize, totalCount: local!datasubset.totalCount ) }, buttons: a!buttonLayout( primaryButtons: a!buttonWidget( label: "Submit", saveInto: a!save(ri!Item,local!Employeedata), submit: true, style: "PRIMARY" ), secondaryButtons: { a!buttonWidget( label: "Cancel", value: true, saveInto: {ri!Cancel}, submit: true, style: "NORMAL", validate: false ) } ) ) )
Discussion posts and replies are publicly visible
Hi,
You can use Choose() function instead of having multiple if conditions. Please refer to https://docs.appian.com/suite/help/22.1/fnc_logical_choose.html for more.
Thanks!
I wouldn't use choose() if running an environment already on 22.1 since it now has a!match(). I usually avoided using choose() before due to its inability to handle any alternate conditions or errors, but now with a!match() i'm actively hunting down older implementations of choose() (as well as instances of "nested ifs") to replace.
Thanks! Mike, I will try this too.