Hi, i've this pm with the following error in interface
I post the code of interface but not so precisely where the error may be
a!localVariables( /*utente e lavorazione*/ local!utente: rule!TES_getUtenteWeb(utente: ri!utente), local!idUtente: index(local!utente, "id", null), local!lavorazioneFO: a!isNotNullOrEmpty(local!idUtente), local!tesseratoDB: rule!TES_getTesseratoByIdTesserato(id_tesserato: ri!richiesta.idTesserato), /*modifica anagrafica: nome, cognome, dt_nascita tesserato*/ local!anagraficaModificata: a!refreshVariable( value: rule!TES_checkModificaAnagraficaTesserato( tesseratoDB: local!tesseratoDB, tesseratoModificato: ri!tesserato ), refreshOnVarChange: { ri!tesserato } ), /*gestione omocodia per disabilitare controllo congruità e calcolo automatico del codice fiscale*/ local!is_omocodia: false, /*variabili per selezionare il tesserato dalla grliglia omonimi/già censiti*/ local!confermaAttivita: false, local!idMansioniScelte: index( ri!richiestaAddettoMansione, "idMansione", null ), /*variabile che salva le vecchie mansioni*/ local!richiestaAddettoMansioneOld: a!refreshVariable( value: a!update( ri!richiestaAddettoMansione, "attivo", false ), refreshOnReferencedVarChange: false ), local!richiestaAddettoMansioneNew: a!forEach( items: local!idMansioniScelte, expression: 'type!{urn:com:appian:types:CYB}CYB_RichiestaAddettoMansione'( idMansione: fv!item, idRichiesta: ri!richiesta.id, attivo: true ) ), /*variabile che salva le vecchie attività professionali*/ local!attivitaProfessionaliOld: a!refreshVariable( value: a!update( ri!attivitaProfessionali, "attivo", false ), refreshOnReferencedVarChange: false ), /*variabile per le nuove attivita professionali*/ local!attivitaProfessionaliNew: a!forEach( items: ri!attivitaProfessionali, expression: a!update( fv!item, { "id", "attivo", "id_tesserato", "id_richiesta_addetto" }, { null, true, ri!tesserato.id, ri!richiesta.id } ) ), /*check allegato da modificare*/ local!rigeneraDichiarazione: rule!CYB_allegatoDichiarazioneDaRigenerare( tesseratoOriginale: local!tesseratoDB, tesseratoModificato: ri!tesserato, attivitaProfessionaliOriginali: local!attivitaProfessionaliOld, attivitaProfessionaliModificate: local!attivitaProfessionaliNew ), /*gestione omocodia per disabilitare controllo congruità e calcolo automatico del codice fiscale*/ local!isOmocodia: false, /*variabile di controllo per i tesserati è già censiti*/ local!esistente: 'type!{urn:com:appian:types:TES}TES_Tesserato'(), /*variabili per selezionare il tesserato dalla grliglia omonimi/già censiti*/ local!tesseratoSelezionato: 'type!{urn:com:appian:types:TES}TES_Tesserato'(), local!cancel, /*calcolo e controlli codice fiscale*/ local!codice_fiscale: a!refreshVariable( value: if( and( a!isNotNullOrEmpty(ri!tesserato.paese_di_nascita), ri!tesserato.paese_di_nascita = cons!TES_NAZIONALITA[2], a!isNotNullOrEmpty(ri!tesserato.luogo_di_nascita), not(local!isOmocodia), a!isNotNullOrEmpty(ri!tesserato.nome), a!isNotNullOrEmpty(ri!tesserato.cognome), a!isNotNullOrEmpty(ri!tesserato.sesso), a!isNotNullOrEmpty(ri!tesserato.dt_nascita), a!isNotNullOrEmpty(ri!tesserato.paese_residenza), ri!tesserato.paese_residenza = cons!TES_NAZIONALITA[1], ), /*estero*/ rule!TES_CalcolaCF( nome: ri!tesserato.nome, cognome: ri!tesserato.cognome, sesso: ri!tesserato.sesso, dataNascita: ri!tesserato.dt_nascita, codiceBelfiore: index( rule!TES_getCodiceBelfioreEstero(ri!tesserato.luogo_di_nascita), "codicebelfiore", null ) ), /*italia*/ if( and( not(local!isOmocodia), a!isNotNullOrEmpty(ri!tesserato.nome), a!isNotNullOrEmpty(ri!tesserato.cognome), a!isNotNullOrEmpty(ri!tesserato.sesso), a!isNotNullOrEmpty(ri!tesserato.dt_nascita), a!isNotNullOrEmpty(ri!tesserato.luogo_di_nascita) ), rule!TES_CalcolaCF( nome: ri!tesserato.nome, cognome: ri!tesserato.cognome, sesso: ri!tesserato.sesso, dataNascita: ri!tesserato.dt_nascita, codiceBelfiore: index( rule!TES_getCodiceBelfiore(ri!tesserato.luogo_di_nascita), "codicebelfiore", null ) ), null ) ), refreshOnReferencedVarChange: true ), /*controllo univocità tesserato post modifica*/ local!isAnagraficaRecuperata: false, local!is_omonimia: false, local!tesseratoNonUnivocoPostModificaRef: a!refreshVariable( value: if( local!anagraficaModificata, rule!TES_checkUnivocitaAnagraficaTesseratoModificata(tesserato: ri!tesserato), false ), refreshOnVarChange: { ri!tesserato.nome, ri!tesserato.cognome, ri!tesserato.dt_nascita } ), local!tesseratoNonUnivocoPostModifica: local!tesseratoNonUnivocoPostModificaRef, local!checkCodiceFiscale: a!refreshVariable( value: if( a!isNotNullOrEmpty( index( rule!TES_getTesseratoByCodiceFiscale(codice_fiscale: local!codice_fiscale), "id", null ) ), index( rule!TES_getTesseratoByCodiceFiscale(codice_fiscale: local!codice_fiscale), "id", null ) = ri!tesserato.id, true ), refreshOnVarChange: { local!codice_fiscale } ), local!codiceFiscaleOmocodia: local!tesseratoDB.codice_fiscale, local!checkAnagraficaRecuperataNonUnivocaOmocodia: and( local!isAnagraficaRecuperata, a!isNotNullOrEmpty(local!codiceFiscaleOmocodia), local!codiceFiscaleOmocodia <> ri!tesserato.codice_fiscale, a!isNotNullOrEmpty( index( rule!TES_getTesseratoByCodiceFiscale( codice_fiscale: local!codiceFiscaleOmocodia ), "id", null ) ), toboolean(ri!tesserato.omocodia) = true ), local!checkAnagraficaRecuperataNonUnivocaOmonimia: and( local!isAnagraficaRecuperata, toboolean(local!is_omonimia) <> true, a!isNotNullOrEmpty( index( rule!TES_getTesseratoByCodiceFiscale( codice_fiscale: local!codice_fiscale ), "id", null ) ), toboolean(ri!tesserato.omocodia) = true ), local!checkOmocodiaEdit: and( toboolean(local!isAnagraficaRecuperata) <> true, a!isNotNullOrEmpty(local!codiceFiscaleOmocodia), local!codiceFiscaleOmocodia <> local!tesseratoDB.codice_fiscale, a!isNotNullOrEmpty( index( rule!TES_getTesseratoByCodiceFiscale( codice_fiscale: local!codiceFiscaleOmocodia ), "id", null ) ), toboolean(ri!tesserato.omocodia) = true ), local!checkOmocodiaInsert: and( toboolean(local!isAnagraficaRecuperata) <> true, a!isNotNullOrEmpty(local!codiceFiscaleOmocodia), a!isNotNullOrEmpty( index( rule!TES_getTesseratoByCodiceFiscale( codice_fiscale: local!codiceFiscaleOmocodia ), "id", null ) ), toboolean(local!is_omocodia) = true ), local!checkOmonimiaInsert: and( toboolean(local!isAnagraficaRecuperata) <> true, a!isNotNullOrEmpty( index( rule!TES_getTesseratoByCodiceFiscale( codice_fiscale: local!codice_fiscale ), "id", null ) ), toboolean(local!is_omonimia) = true ), local!recuperoInCorso: or( /*modifica senza recupero*/ local!tesseratoNonUnivocoPostModifica, /*modifica post recupero*/ and( not(local!checkCodiceFiscale), toboolean(local!is_omocodia) <> true, toboolean(ri!tesserato.omocodia) <> true ), /*omocodia*/ local!checkAnagraficaRecuperataNonUnivocaOmocodia, local!checkOmocodiaEdit, local!checkOmocodiaInsert, /*omonimia*/ local!checkAnagraficaRecuperataNonUnivocaOmonimia, local!checkOmonimiaInsert ), { /*banner tesserato già censito */ if( local!recuperoInCorso, rule!TES_BannerModificaTesseratoCensito( is_omocodia: local!isOmocodia, azione_bo: not(local!lavorazioneFO), tesseratoDB: local!tesseratoDB, tesseratoModificato: ri!tesserato, tesseratoSelezionato: local!tesseratoSelezionato, tesseratoNonUnivocoPostModifica: local!tesseratoNonUnivocoPostModifica, codiceFiscaleOmocodia: local!codiceFiscaleOmocodia, isAnagraficaRecuperata: local!isAnagraficaRecuperata, is_omonimia: local!is_omonimia, codiceFiscale: local!codice_fiscale ), null ), /*Dettagli richiesta*/ rule!TES_ModificaDatiAnagrafici( tesserato: ri!tesserato, modificaFO: local!lavorazioneFO, pratica: ri!pratica, isOmocodia: local!is_omocodia, codiceFiscale: local!codice_fiscale, processo: cons!TES_TIPOLOGIA_PROCESSO[9], codiceFiscaleOmocodia: local!codiceFiscaleOmocodia, recuperoInCorso: local!recuperoInCorso, isAnagraficaRecuperata: local!isAnagraficaRecuperata, isOmonimia: local!is_omonimia ), /*attivita professionali e mansione*/ rule!CYB_DettagliRichiestaAddetto( attivitaProfessionali: ri!attivitaProfessionali, tesserato: ri!tesserato, conferma_attivita: local!confermaAttivita, idMansioniScelte: local!idMansioniScelte, generatePortalUrl: ri!richiesta.compilazionePortal, lavorazioneFO: local!lavorazioneFO, richiesta: ri!richiesta, scalo: ri!richiesta.scalo ), a!buttonLayout( primaryButtons: { a!buttonWidget( label: "CONFERMA", saveInto: { a!save(ri!lavorazioneFO, local!lavorazioneFO), a!save(ri!tesserato.codice_fiscale, local!codice_fiscale), a!save( ri!richiesta, a!update( ri!richiesta, { "modificatoIl", "modificatoDa" }, { now(), loggedInUser() } ) ), a!save( ri!richiestaAddettoMansione, local!richiestaAddettoMansioneNew ), a!save( ri!attivitaProfessionali, { local!attivitaProfessionaliOld, local!attivitaProfessionaliNew } ), a!save( ri!richiestaAddettoMansione, { local!richiestaAddettoMansioneOld, local!richiestaAddettoMansioneNew } ), a!save( ri!attivitaProfessionaliOld, local!attivitaProfessionaliOld ), a!save( ri!rigeneraDichiarazione, local!rigeneraDichiarazione ) }, submit: true, style: "SOLID", disabled: or( a!isNotNullOrEmpty(local!esistente.id), and( or( ri!richiesta.compilazionePortal = true, and( ri!richiesta.compilazionePortal = false, not(local!confermaAttivita), ) ), local!lavorazioneFO ) ), loadingIndicator: true ) }, secondaryButtons: { a!buttonWidget( label: "ANNULLA", saveInto: { a!save(ri!cancel, true) }, submit: true, color: "ACCENT", loadingIndicator: true, validate: false ) } ) } )
Discussion posts and replies are publicly visible
Hi fabiopalladino
I don't understand this language, but it seems like those variables are either not defined or deleted. Can you translate the message in English if possible?
Also, please share the screenshot of the process start form configurations in the process model
This error will occur when you have an error state in your Start Form (as noted) including any rule it calls as a precedent, which you have quite a few of. That or you're calling it in an invalid way / passing in something invalid where it's referenced in the process model configuration.
Your sample / start form code here doesn't contain a "whereTrue" keyword but if you have something incorrectly defined in any sub rules / interfaces then the process model will see them as well (we can pretend that it "flattens" all code into a single rule call when evaluating it for saving). The easiest first step should be to make sure your start form is loading / working correctly in the Interface Editor - if it's working but you still get this error, then search all precedents for anything containing the problematic keyword and look for invalid syntax.
I think the process variables have been deleted or changed. You can check that.
Did you try to search for "whentrue" in the expression search mode in designer?