Question
Error in Process Model Properties a Process Start Form: Neither variable(s) nor rule(s) found: whentrue
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Ã%A0 e calcolo automatico del codice fiscale*/
local!is_omocodia: false,
/*variabili per selezionare il tesserato dalla grliglia omonimi/giÃ%A0 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Ã%A0 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Ã%A0 e calcolo automatico del codice fiscale*/
local!isOmocodia: false,
/*variabile di controllo per i tesserati è giÃ%A0 censiti*/
local!esistente: 'type!{urn:com:appian:types:TES}TES_Tesserato'(),
/*variabili per selezionare il tesserato dalla grliglia omonimi/giÃ%A0 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Ã%A0 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Ã%A0 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
)
}
)
}
)