I essentially need to pass the data stored in a few local variables to rule inputs so I can use them to fill in a template. The local variables are inside a forEach statement nested inside another forEach statement (see code below). The long if statements in both saveInto parameters are my first attempt at this and if only one item is selected from the multiple dropdown, it works perfectly, but if more than one item is chosen, each item overwrites the previous item instead of being saved into their own variables.
Does anyone have an idea of how make this work or have a better idea of how to accomplish this? Thanks!
a!multipleDropdownField( label: if( or( ri!SealModel = "DRC", ri!SealModel = "DTP", ri!SealModel = "DRP", ri!SealModel = "SMD", ri!SealModel = "DGS", ri!SealModel = "EDP", ri!SealModel = "RBD", ri!SealModel = "ESD", ri!SealModel = "UMC", ri!SealModel = "PRO", ri!SealModel = "PDM", ri!SealModel = "KMS" ), "Inboard Rotary Face:", "Rotary Face:" ), labelPosition: "ABOVE", placeholder: "Choose symptoms", choiceLabels: { "Missing", "Carbon Dusting", "Chipped", "Cracked", "Broken", "Corroded", "Pitted", "Eroded", "Leached", "Blistered", "Heat Checked", "Thermal Markings", "Product Residue", "Rubbed", "Worn", "Grooved", "Heavily Damaged", "Plugged", "Dented" }, choiceValues: { "Missing", "Carbon Dusting", "Chipped", "Cracked", "Broken", "Corroded", "Pitted", "Eroded", "Leached", "Blistered", "Heat Checked", "Thermal Markings", "Product Residue", "Rubbed", "Worn", "Grooved", "Heavily Damaged", "Plugged", "Dented" }, value: ri!IBRotFaceSym, saveInto: ri!IBRotFaceSym, searchDisplay: "AUTO", validations: {} ) ) }, alignVertical: "MIDDLE" ), /* IB Rotary Face */ a!forEach( ri!IBRotFaceSym, a!localVariables( local!numarray: { 1 }, local!Label: fv!item, a!forEach( local!numarray, a!localVariables( local!Sev, local!Loc, local!Pic, local!num: index(local!numarray, length(local!numarray)), a!columnsLayout( columns: { a!columnLayout( contents: { a!sideBySideLayout( items: { a!sideBySideItem( item: a!dropdownField( label: local!Label & " Severity", labelPosition: "ADJACENT", placeholder: "--- Select a Value ---", choiceLabels: { "N/A", "Light", "Moderate", "Heavy", "Extreme" }, choiceValues: { "N/A", "Light", "Moderate", "Heavy", "Extreme" }, value: local!Sev, saveInto: {local!Sev, a!save(if(contains(ri!IBRotFaceSym, "Missing"), ri!MissingSev[fv!index], if(contains(ri!IBRotFaceSym, "Carbon Dusting"), ri!CarbDustSev[fv!index], if(contains(ri!IBRotFaceSym, "Chipped"), ri!ChippedSev[fv!index], if(contains(ri!IBRotFaceSym, "Cracked"), ri!CrackedSev[fv!index], if(contains(ri!IBRotFaceSym, "Broken"), ri!BrokenSev[fv!index], if(contains(ri!IBRotFaceSym, "Corroded"), ri!CorrodedSev[fv!index], if(contains(ri!IBRotFaceSym, "Pitted"), ri!PittedSev[fv!index], if(contains(ri!IBRotFaceSym, "Eroded"), ri!ErodedSev[fv!index], if(contains(ri!IBRotFaceSym, "Leached"), ri!LeachedSev[fv!index], if(contains(ri!IBRotFaceSym, "Blistered"), ri!BlisteredSev[fv!index], if(contains(ri!IBRotFaceSym, "Heat Checked"), ri!CarbDustSev[fv!index], if(contains(ri!IBRotFaceSym, "Thermal Markings"), ri!ThermMarkSev[fv!index], if(contains(ri!IBRotFaceSym, "Product Residue"), ri!ProdResSev[fv!index], if(contains(ri!IBRotFaceSym, "Rubbed"), ri!RubbedSev[fv!index], if(contains(ri!IBRotFaceSym, "Worn"), ri!WornSev[fv!index], if(contains(ri!IBRotFaceSym, "Grooved"), ri!GroovedSev[fv!index], if(contains(ri!IBRotFaceSym, "Heavily Damaged"), ri!HeavyDamSev[fv!index], if(contains(ri!IBRotFaceSym, "Plugged"), ri!PluggedSev[fv!index], if(contains(ri!IBRotFaceSym, "Dented"), ri!DentedSev[fv!index], null))))))))))))))))))), local!Label & " " & local!Sev & " " & local!Loc & " " & fv!index)}, validations: {} ) ), a!sideBySideItem( item: a!dropdownField( label: local!Label & " Location", labelPosition: "ADJACENT", placeholder: "--- Select a Value ---", choiceLabels: { "N/A", "ID", "OD", "Face", "Face ID", "Face OD", "Pin Slot", "Multiple Locations" }, choiceValues: { "N/A", "ID", "OD", "Face", "Face ID", "Face OD", "Pin Slot", "Multiple Locations" }, value: local!Loc, saveInto: { local!Loc, a!save( if(contains(ri!IBRotFaceSym, "Missing"), ri!MissingSev[fv!index], if(contains(ri!IBRotFaceSym, "Carbon Dusting"), ri!CarbDustSev[fv!index], if(contains(ri!IBRotFaceSym, "Chipped"), ri!ChippedSev[fv!index], if(contains(ri!IBRotFaceSym, "Cracked"), ri!CrackedSev[fv!index], if(contains(ri!IBRotFaceSym, "Broken"), ri!BrokenSev[fv!index], if(contains(ri!IBRotFaceSym, "Corroded"), ri!CorrodedSev[fv!index], if(contains(ri!IBRotFaceSym, "Pitted"), ri!PittedSev[fv!index], if(contains(ri!IBRotFaceSym, "Eroded"), ri!ErodedSev[fv!index], if(contains(ri!IBRotFaceSym, "Leached"), ri!LeachedSev[fv!index], if(contains(ri!IBRotFaceSym, "Blistered"), ri!BlisteredSev[fv!index], if(contains(ri!IBRotFaceSym, "Heat Checked"), ri!HeatCheckSev[fv!index], if(contains(ri!IBRotFaceSym, "Thermal Markings"), ri!ThermMarkSev[fv!index], if(contains(ri!IBRotFaceSym, "Product Residue"), ri!ProdResSev[fv!index], if(contains(ri!IBRotFaceSym, "Rubbed"), ri!RubbedSev[fv!index], if(contains(ri!IBRotFaceSym, "Worn"), ri!WornSev[fv!index], if(contains(ri!IBRotFaceSym, "Grooved"), ri!GroovedSev[fv!index], if(contains(ri!IBRotFaceSym, "Heavily Damaged"), ri!HeavyDamSev[fv!index], if(contains(ri!IBRotFaceSym, "Plugged"), ri!PluggedSev[fv!index], if(contains(ri!IBRotFaceSym, "Dented"), ri!DentedSev[fv!index], null))))))))))))))))))), local!Label & " " & local!Sev & " " & local!Loc & " " & fv!index), a!save(ri!IBRotFaceSev, {ri!MissingSev; ri!CarbDustSev; ri!ChippedSev; ri!CrackedSev; ri!BrokenSev; ri!CorrodedSev; ri!PittedSev; ri!ErodedSev; ri!LeachedSev; ri!BlisteredSev; ri!CarbDustSev; ri!ThermMarkSev; ri!ProdResSev; ri!RubbedSev; ri!WornSev; ri!GroovedSev; ri!HeavyDamSev; ri!PluggedSev; ri!DentedSev})}, searchDisplay: "AUTO", validations: {} ) ), a!sideBySideItem( item: a!fileUploadField( label: "Upload Photos", labelPosition: "ADJACENT", target: cons!IBRotFacePics, fileNames: ri!ControlNumber & " IB Rotary Face " & local!Label & " " & fv!index, value: local!Pic, saveInto: local!Pic, validations: {}, buttonStyle: "SECONDARY" ), width: "MINIMIZE" ) } ), a!sideBySideLayout( items: { a!sideBySideItem( item: a!linkField( links: { a!dynamicLink( label: "Add Location", value: append(local!numarray, local!num + 1), saveInto: local!numarray, showWhen: if( local!numarray[length(local!numarray)] =< fv!item, true(), false() ) ) } ), width: "MINIMIZE" ), a!sideBySideItem( item: a!linkField( links: { a!dynamicLink( label: "Remove Location", value: remove(local!numarray, fv!index), saveInto: {local!numarray, a!save(ri!MissingSev, remove(ri!MissingSev, fv!index))} ) } ), width: "MINIMIZE" ) } ) } ) } ) ) ) ) ),
Discussion posts and replies are publicly visible