add elixForms runner for field retrieval

This commit is contained in:
2026-03-25 13:44:53 +01:00
parent 21f06574dd
commit a1b25f744b
15 changed files with 1442 additions and 11 deletions
@@ -1,7 +1,7 @@
info:
name: Authorization
type: folder
seq: 5
seq: 6
request:
auth: inherit
@@ -1,7 +1,7 @@
info:
name: Calendar 2.0
type: folder
seq: 11
seq: 12
request:
auth: inherit
@@ -1,7 +1,7 @@
info:
name: Cambio stato e/o integrazione
type: folder
seq: 9
seq: 10
request:
auth: inherit
@@ -1,7 +1,7 @@
info:
name: Comunicazioni formali
type: folder
seq: 10
seq: 11
request:
auth: inherit
@@ -1,7 +1,7 @@
info:
name: EFTL processing
type: folder
seq: 3
seq: 5
request:
auth: inherit
@@ -1,7 +1,7 @@
info:
name: Request details
type: folder
seq: 7
seq: 8
request:
auth: inherit
@@ -1,7 +1,7 @@
info:
name: Requests lookup
type: folder
seq: 6
seq: 7
request:
auth: inherit
@@ -0,0 +1,899 @@
info:
name: Get request details
type: http
seq: 6
http:
method: GET
url: "{{elixFormsApiUrl_Default}}/request/:request_id/get"
headers:
- name: x-requested-with
value: XMLHttpRequest
- name: x-api-username
value: "{{elixFormsApiUsername}}"
params:
- name: username
value: "{{elixFormsApiUsername}}"
type: query
description: lo username con cui si è effettuato il login
disabled: true
- name: recordOrder
value: NONE
type: query
description: case sensitive
disabled: true
- name: request_id
value: REPLACE
type: path
body:
type: form-urlencoded
auth: inherit
runtime:
scripts:
- type: before-request
code: |-
if (!bru.hasVar("elixFormsQueryRequestIds"))
{
console.error("Pre: NO RequestIds FOUND!");
}
const requestIds = bru.getVar("elixFormsQueryRequestIds");
if (!bru.hasVar("elixFormsQueryRequestIndex"))
{
console.error("Pre: NO RequestIndex FOUND!");
}
const requestIndex = bru.getVar("elixFormsQueryRequestIndex");
const requestId = requestIds[requestIndex];
if (requestId === undefined)
{
console.log(bru.getVar("elixFormsQueryOutput"));
console.log("Undefined");
}
else
{
console.log("Calling method with requestId: " + requestId);
req.setUrl(req.getUrl().replace(":request_id", requestId));
}
- type: after-response
code: |-
if (!bru.hasVar("elixFormsQueryRequestIds"))
{
console.error("Pre: NO elixFormsQueryRequestIds FOUND!");
}
const requestIds = bru.getVar("elixFormsQueryRequestIds");
if (!bru.hasVar("elixFormsQueryRequestIndex"))
{
console.error("Post: NO elixFormsQueryRequestIndex FOUND!");
}
const requestIndex = bru.getVar("elixFormsQueryRequestIndex");
if (!bru.hasVar("elixFormsQueryOutput"))
{
console.error("Post: NO elixFormsQueryOutput FOUND!");
}
const jsonOutput = JSON.parse(bru.getVar("elixFormsQueryOutput"));
// Get response data
const request = res.getBody().value.request;
const recordId = request.steps?.find(s => s.stepHeader == "Dati generali")?.schemas?.find(s => s.schemaId == "341")?.records?.[0]?.recordId ?? "";
if (recordId != "")
{
const contraenti = request.steps?.find(s => s.stepHeader == "Dati generali")?.schemas?.find(s => s.schemaId == "341")?.records?.[0]?.sections?.find(s => s.sectionKey == "SEC_0001")?.columns?.find(c => c.columnKey == "COL0004")?.columnValue ?? "";
const responsabili = request.steps?.find(s => s.stepHeader == "Dati generali")?.schemas?.find(s => s.schemaId == "341")?.records?.[0]?.sections?.find(s => s.sectionKey == "SEC_0003")?.columns?.find(c => c.columnKey == "COL0017")?.columnValue ?? "";
// Now prepare values as needed
const contraentiCsv = contraenti.split("\n").map(c => c.split(", CF/PIVA: ")[0]).join(", ");
const responsabiliCsv = responsabili.split("\n").map(r => r.split(", CF: ")[0]).join(", ");
const stringElement = '{ "S_341_'+recordId+'_COL0118": "' + responsabiliCsv + '", "S_341_'+recordId+'_COL0119": "' + contraentiCsv + '" }';
const jsonElement = JSON.parse(stringElement);
jsonOutput.push(jsonElement);
bru.setVar("elixFormsQueryOutput", JSON.stringify(jsonOutput));
}
else
{
console.log("Cannot retrieve recordId from request");
};
// Set next request if needed
if (requestIndex < requestIds.length - 1)
{
bru.setVar("elixFormsQueryRequestIndex", requestIndex + 1);
bru.runner.setNextRequest("Get request details");
}
else
{
console.log(JSON.stringify(jsonOutput));
}
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
examples:
- name: Get Request - Success
request:
url: "{{elixFormsApiUrl_Default}}/request/:request_id/get?username={{elixFormsApiUsername}}"
method: GET
params:
- name: username
value: "{{elixFormsApiUsername}}"
type: query
description: lo username con cui si è effettuato il login
- name: recordOrder
value: NONE
type: query
description: case sensitive
disabled: true
- name: request_id
value: "7007"
type: path
body:
type: form-urlencoded
response:
statusText: "200"
headers:
- name: cache-control
value: no-cache, no-store, must-revalidate
- name: pragma
value: no-cache
- name: proxy-connection
value: Keep-Alive
- name: x-content-security-policy
value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
- name: content-type
value: application/it.elixforms.api.v1.2+json;charset=UTF-8
- name: transfer-encoding
value: chunked
- name: strict-transport-security
value: max-age=63072000;includeSubDomains
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
- name: x-frame-options
value: SAMEORIGIN
- name: x-xss-protection
value: 1;mode=block
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
body:
type: text
data: |-
{
"value": {
"code": "OK",
"description": "OK",
"complete": true,
"globalStatus": "OK",
"serviceInformationList": {
"serviceInformation": [
{
"ITSystemName": "EF-CORE",
"complete": true,
"serviceVersion": "1.2.0",
"statusDetailList": {
"statusDetail": [
{
"code": "OK",
"description": "OK",
"detailStatus": "OK"
}
]
}
}
]
},
"uuid": "1d889f27-cf95-487b-9523-84033df41391",
"version": "3.9.2.17",
"request": {
"idRequest": 7007,
"moduleCategoryTag": "ASI-RIC, CONTO_TERZI",
"moduleTag": "PROPOSTA_CCT_DOCENTE",
"moduleUrl": "https://unipr.elixforms.it/rwe2/forms/recap.jsp?IUQOID=7007&amp;RWE2_TAB_REL=14900&amp;IURTLGY=schemadata&amp;ELANG=it&amp;IATL=it",
"requestTitle": "RWE2 - Request",
"attributes": [
{
"columnKey": "COL0008",
"columnTitle": "Created",
"columnValue": "true"
},
{
"columnKey": "COL0009",
"columnTitle": "Created date",
"columnValue": "16-04-2025 15:39"
},
{
"columnKey": "COL0010",
"columnTitle": "Confirmed",
"columnValue": "true"
},
{
"columnKey": "COL0011",
"columnTitle": "Confirmed date",
"columnValue": "16-04-2025 15:41"
},
{
"columnKey": "COL0012",
"columnTitle": "Complete",
"columnValue": "true"
},
{
"columnKey": "COL0013",
"columnTitle": "Complete date",
"columnValue": "16-04-2025 15:41"
},
{
"columnKey": "COL0035",
"columnTitle": "Complete (first time)",
"columnValue": "true"
},
{
"columnKey": "COL0036",
"columnTitle": "Complete date (first time)",
"columnValue": "16-04-2025 15:41"
},
{
"columnKey": "COL0037",
"columnTitle": "Evasa",
"columnValue": "true"
},
{
"columnKey": "COL0038",
"columnTitle": "Data di evasione",
"columnValue": "16-04-2025 16:10"
},
{
"columnKey": "COL0039",
"columnTitle": "Archiviata",
"columnValue": ""
},
{
"columnKey": "COL0040",
"columnTitle": "Data di archiviazione",
"columnValue": ""
}
],
"steps": [
{
"conditionalForm": false,
"moduleTabGenId": 14906,
"multipleForms": false,
"stepHeader": "Richiedente",
"schemas": [
{
"recordSize": 1,
"schemaId": 327,
"tag": "",
"title": "PROPOSTA_CCT_DOCENTE_Richiedente",
"records": [
{
"columnSize": 4,
"recordId": 23629,
"recordNum": 1,
"sections": [
{
"sectionKey": "SEC_0001",
"sectionTitle": "Richiedente",
"columns": [
{
"columnKey": "COL0003",
"columnName": "COL0003",
"columnTitle": "Cognome",
"columnType": "STRING",
"columnValue": ""
},
{
"columnKey": "COL0004",
"columnName": "COL0004",
"columnTitle": "Nome",
"columnType": "STRING",
"columnValue": ""
},
{
"columnKey": "COL0001",
"columnName": "COL0001",
"columnTitle": "Codice Fiscale",
"columnType": "STRING",
"columnValue": "MMMPPL74T17E463A"
},
{
"columnKey": "COL0005",
"columnName": "COL0005",
"columnTitle": "Email",
"columnType": "STRING",
"columnValue": ""
}
]
}
]
}
]
}
]
},
{
"conditionalForm": false,
"moduleTabGenId": 18917,
"multipleForms": false,
"stepHeader": "Dati generali e Costi",
"schemas": [
{
"recordSize": 1,
"schemaId": 326,
"tag": "",
"title": "PROPOSTA_CCT_DOCENTE_Dati_generali",
"records": [
{
"columnSize": 20,
"recordId": 23630,
"recordNum": 1,
"sections": [
{
"sectionKey": "SEC_0001",
"sectionTitle": "Dati del contratto",
"columns": [
{
"exportTag": {
"exportGroup": "API;PROPOSTA_CCT_DOCENTE_GROUP",
"exportTag": "contratto.Titolo"
},
"columnKey": "COL0005",
"columnName": "COL0005",
"columnTitle": "Titolo",
"columnType": "TEXTAREA",
"columnValue": "Titolo"
},
{
"columnKey": "COL0006",
"columnName": "COL0006",
"columnTitle": "Struttura principale",
"columnType": "STRING",
"columnValue": "U.O. Sistemi Applicativi"
},
{
"columnKey": "COL0007",
"columnName": "COL0007",
"columnTitle": "Codice struttura",
"columnType": "STRING",
"columnValue": ""
},
{
"exportTag": {
"exportGroup": "API;PROPOSTA_CCT_DOCENTE_GROUP",
"exportTag": "contratto.durataInMesi"
},
"columnKey": "COL0008",
"columnName": "COL0008",
"columnTitle": "Durata (mesi)",
"columnType": "STRING",
"columnValue": "17"
},
{
"exportTag": {
"exportGroup": "API;PROPOSTA_CCT_DOCENTE_GROUP",
"exportTag": "contratto.corrispettivo"
},
"columnKey": "COL0009",
"columnName": "COL0009",
"columnTitle": "Corrispettivo / contributo € (IVA esclusa)",
"columnType": "STRING",
"columnValue": "12500"
}
]
},
{
"sectionKey": "SEC_0002",
"sectionTitle": "Responsabile Scientifico proponente",
"columns": [
{
"columnKey": "COL0012",
"columnName": "COL0012",
"columnTitle": "Nome",
"columnType": "STRING",
"columnValue": "Pier Paolo"
},
{
"columnKey": "COL0013",
"columnName": "COL0013",
"columnTitle": "Cognome",
"columnType": "STRING",
"columnValue": "MAMMI"
},
{
"columnKey": "COL0038",
"columnName": "COL0038",
"columnTitle": "Email",
"columnType": "STRING",
"columnValue": "pierpaolo.mammi@unipr.it"
},
{
"columnKey": "COL0014",
"columnName": "COL0014",
"columnTitle": "Codice fiscale",
"columnType": "STRING",
"columnValue": "MMMPPL74T17E463A"
},
{
"columnKey": "COL0015",
"columnName": "COL0015",
"columnTitle": "Struttura",
"columnType": "STRING",
"columnValue": "U.O. Sistemi Applicativi"
},
{
"columnKey": "COL0016",
"columnName": "COL0016",
"columnTitle": "Codice struttura",
"columnType": "STRING",
"columnValue": "106143"
},
{
"columnKey": "COL0046",
"columnName": "COL0046",
"columnTitle": "Titolo accademico (nascosto)",
"columnType": "STRING",
"columnValue": ""
}
]
},
{
"sectionKey": "SEC_0008",
"sectionTitle": "Costi",
"columns": [
{
"columnKey": "COL0053",
"columnName": "COL0053",
"columnTitle": "Dettaglio dei costi",
"columnType": "TEXTAREA",
"columnValue": "dettaglio"
}
]
},
{
"sectionKey": "SEC_0009",
"sectionTitle": "Altro",
"columns": [
{
"columnKey": "COL0054",
"columnName": "COL0054",
"columnTitle": "Note aggiuntive",
"columnType": "TEXTAREA",
"columnValue": ""
}
]
},
{
"sectionKey": "SEC_0006",
"sectionTitle": "",
"columns": [
{
"columnKey": "COL0020",
"columnName": "COL0020",
"columnTitle": "UUID",
"columnType": "STRING",
"columnValue": "e116f677-a115-45eb-b51b-66f8dd754b6b"
},
{
"columnKey": "COL0002",
"columnName": "COL0002",
"columnTitle": "JSON",
"columnType": "TEXTAREA",
"columnValue": "{&#34;value&#34;:{&#34;code&#34;:&#34;OK&#34;,&#34;description&#34;:&#34;&#34;,&#34;complete&#34;:true,&#34;globalStatus&#34;:&#34;OK&#34;,&#34;serviceInformationList&#34;:{&#34;serviceInformation&#34;:[{&#34;ITSystemName&#34;:&#34;EF-PROXY&#34;,&#34;complete&#34;:true,&#34;serviceVersion&#34;:&#34;1.0.0&#34;,&#34;statusDetailList&#34;:{&#34;statusDetail&#34;:[{&#34;code&#34;:&#34;OK&#34;,&#34;detailStatus&#34;:&#34;OK&#34;}]}}]},&#34;uuid&#34;:&#34;e116f677-a115-45eb-b51b-66f8dd754b6b&#34;,&#34;version&#34;:&#34;3.0.0&#34;,&#34;json&#34;:{&#34;idAb&#34;:&#34;269139&#34;,&#34;matricola&#34;:&#34;050713&#34;,&#34;nome&#34;:&#34;Pier Paolo&#34;,&#34;cognome&#34;:&#34;MAMMI&#34;,&#34;dataFineRapporto&#34;:null,&#34;dataInizioRapporto&#34;:&#34;2025-01-20&#34;,&#34;codice_attivita&#34;:&#34;0001&#34;,&#34;descrizione_attivita&#34;:&#34;In servizio&#34;,&#34;emailAteneo&#34;:&#34;pierpaolo.mammi&#64;unipr.it&#34;,&#34;cellulare_servizio&#34;:null,&#34;ruolo&#34;:&#34;ND&#34;,&#34;profilo&#34;:&#34;SETTORE_10&#34;,&#34;inquadramento&#34;:&#34;FU0&#34;,&#34;genere&#34;:&#34;M&#34;,&#34;cod_fis&#34;:&#34;MMMPPL74T17E463A&#34;,&#34;codice_struttura&#34;:&#34;106143&#34;,&#34;nome_struttura&#34;:&#34;U.O. Sistemi Applicativi&#34;,&#34;codice_struttura_padre&#34;:&#34;106139&#34;,&#34;nome_struttura_padre&#34;:&#34;Area - Sistemi Informativi&#34;,&#34;telefono&#34;:&#34;0521 904145&#34;,&#34;comitato&#34;:null,&#34;codiceSsd&#34;:&#34;000000000000&#34;,&#34;area_disciplinare&#34;:&#34;00&#34;,&#34;nome_sup_diretto&#34;:&#34;Simona&#34;,&#34;cognome_sup_diretto&#34;:&#34;BERTE&#39;&#34;,&#34;cf_sup_diretto&#34;:&#34;BRTSMN69B65G337A&#34;,&#34;mail_sup_diretto&#34;:&#34;simona.berte&#64;unipr.it&#34;,&#34;matricola_sup_diretto&#34;:&#34;005603&#34;,&#34;nome_sup_apicale&#34;:&#34;Candeloro&#34;,&#34;cognome_sup_apicale&#34;:&#34;BELLANTONI&#34;,&#34;matricola_sup_apicale&#34;:&#34;028973&#34;,&#34;cf_sup_apicale&#34;:&#34;BLLCDL60C28H224V&#34;,&#34;mail_sup_apicale&#34;:&#34;candeloro.bellantoni&#64;unipr.it&#34;,&#34;pt_tipo&#34;:null,&#34;pt_ds_tipo&#34;:null,&#34;perc_pt&#34;:&#34;100&#34;,&#34;descrizione_ruolo&#34;:null,&#34;descrizione_profilo&#34;:&#34;Settore tecnico - informatico&#34;,&#34;descrizione_inquadramento&#34;:&#34;Area dei Funzionari&#34;,&#34;id_fascicolo_titulus&#34;:&#34;5404836&#34;}}}"
},
{
"columnKey": "COL0021",
"columnName": "COL0021",
"columnTitle": "Messaggio",
"columnType": "STRING",
"columnValue": ""
},
{
"columnKey": "COL0022",
"columnName": "COL0022",
"columnTitle": "Errore",
"columnType": "STRING",
"columnValue": ""
}
]
},
{
"sectionKey": "SEC_0007",
"sectionTitle": "Valori calcolati (nascosti)",
"columns": [
{
"columnKey": "COL0052",
"columnName": "COL0052",
"columnTitle": "Docente",
"columnType": "STRING",
"columnValue": "MAMMI Pier Paolo"
},
{
"columnKey": "COL0055",
"columnName": "COL0055",
"columnTitle": "Corrispettivo formattato",
"columnType": "STRING",
"columnValue": "12.500,00"
}
]
}
]
}
]
}
]
},
{
"conditionalForm": false,
"moduleTabGenId": 22115,
"multipleForms": false,
"stepHeader": "Contraenti e Partecipanti",
"schemas": [
{
"recordSize": 1,
"schemaId": 374,
"tag": "",
"title": "PROPOSTA_CCT_DOCENTE_Contraenti_Partecipanti",
"records": [
{
"columnSize": 2,
"recordId": 23634,
"recordNum": 1,
"sections": [
{
"sectionKey": "SEC_0001",
"sectionTitle": "Contraenti",
"columns": [
{
"columnKey": "COL0001",
"columnName": "COL0001",
"columnTitle": "Elenco dei contraenti",
"columnType": "TEXTAREA",
"columnValue": "Contraenti"
}
]
},
{
"sectionKey": "SEC_0002",
"sectionTitle": "Partecipanti",
"columns": [
{
"columnKey": "COL0002",
"columnName": "COL0002",
"columnTitle": "Elenco dei partecipanti",
"columnType": "TEXTAREA",
"columnValue": "Partecipanti"
}
]
}
]
}
]
}
]
},
{
"conditionalForm": false,
"moduleTabGenId": 14904,
"multipleForms": false,
"stepHeader": "Dichiarazioni",
"schemas": [
{
"recordSize": 1,
"schemaId": 325,
"tag": "",
"title": "PROPOSTA_CCT_DOCENTE_Dichiarazioni",
"records": [
{
"columnSize": 15,
"recordId": 23635,
"recordNum": 1,
"sections": [
{
"sectionKey": "SEC_0001",
"sectionTitle": "Dichiarazioni",
"columns": [
{
"columnKey": "COL0001",
"columnName": "COL0001",
"columnTitle": "La/Il Prof.ssa/Prof./Dott.ssa/Dott. DICHIARA",
"columnType": "CHECKBOX",
"columnValueList": {
"columnValue": [
{
"1": "di conoscere il testo dell'Accordo e gli adempimenti a proprio carico previsti nello stesso;"
}
]
},
"columnValue": null
},
{
"columnKey": "COL0002",
"columnName": "COL0002",
"columnTitle": "",
"columnType": "CHECKBOX",
"columnValueList": {
"columnValue": [
{
"2": "di accettare e impegnarsi a rispettare gli obblighi di segretezza e confidenzialità, la disciplina dei \"Risultati\" e/o della \"Proprietà Intellettuale\" e delle \"Pubblicazioni\", nonché tutti i termini e condizioni previsti nell'Accordo;"
}
]
},
"columnValue": null
},
{
"columnKey": "COL0003",
"columnName": "COL0003",
"columnTitle": "",
"columnType": "CHECKBOX",
"columnValueList": {
"columnValue": [
{
"3": "che le attività di cui all'Accordo non determinano alcuna violazione degli obblighi in materia di proprietà intellettuale già assunti dall'Università nei confronti di altri contraenti con i quali l'Ateneo ha sottoscritto specifici contratti/convenzioni nell'ambito dei quali il dichiarante è stato/a individuato/a come \"responsabile scientifico\";"
}
]
},
"columnValue": null
}
]
},
{
"sectionKey": "SEC_0005",
"sectionTitle": "Attività oggetto dell'accordo",
"columns": [
{
"columnKey": "COL0018",
"columnName": "COL0018",
"columnTitle": "",
"columnType": "CHECKBOX",
"columnValueList": {
"columnValue": [
{
"12": "che l'attività oggetto dell'accordo consiste nell'esecuzione di contratti di ricerca e/o la fornitura di servizi svolti nell'interesse di terzi;"
}
]
},
"columnValue": null
},
{
"columnKey": "COL0019",
"columnName": "COL0019",
"columnTitle": "",
"columnType": "CHECKBOX",
"columnValue": null
},
{
"columnKey": "COL0020",
"columnName": "COL0020",
"columnTitle": "",
"columnType": "CHECKBOX",
"columnValueList": {
"columnValue": [
{
"14": "che l'attività oggetto dell'accordo consiste in attività di formazione svolta nell'interesse di terzi;"
}
]
},
"columnValue": null
},
{
"columnKey": "COL0021",
"columnName": "COL0021",
"columnTitle": "",
"columnType": "CHECKBOX",
"columnValue": null
}
]
},
{
"sectionKey": "SEC_0006",
"sectionTitle": "Utilizzo proprietà intellettuali",
"columns": [
{
"columnKey": "COL0005",
"columnName": "COL0005",
"columnTitle": "",
"columnType": "RADIO",
"columnValueList": {
"columnValue": [
{
"9": "che nello svolgimento delle attività dell'Accordo VERRÀ impiegata proprietà intellettuale titolata (domanda di brevetto/brevetto avente ad oggetto invenzioni, modelli di utilità, marchi registrati, software, opere dell'ingegno) di cui l'Università è proprietaria/titolare e/o comproprietaria/contitolare secondo la normativa vigente, avente tipologia indicata nel seguito:"
}
]
},
"columnValue": "che nello svolgimento delle attività dell'Accordo VERRÀ impiegata proprietà intellettuale titolata (domanda di brevetto/brevetto avente ad oggetto invenzioni, modelli di utilità, marchi registrati, software, opere dell'ingegno) di cui l'Università è proprietaria/titolare e/o comproprietaria/contitolare secondo la normativa vigente, avente tipologia indicata nel seguito:"
},
{
"columnKey": "COL0006",
"columnName": "COL0006",
"columnTitle": "",
"columnType": "TEXTAREA",
"columnValue": "sdasdasd"
}
]
},
{
"sectionKey": "SEC_0007",
"sectionTitle": "Presenza conflitto d'interessi",
"columns": [
{
"columnKey": "COL0007",
"columnName": "COL0007",
"columnTitle": "",
"columnType": "RADIO",
"columnValueList": {
"columnValue": [
{
"11": "di TROVARSI in situazioni e/o in condizioni di conflitto di interessi, anche potenziale, con riferimento all'Accordo di cui alla presente proposta secondo quanto previsto dalle disposizioni di cui alla normativa in materia inerente status giuridico, nonché dalle disposizioni contenute nel Codice di comportamento dell'Università degli Studi di Parma, avente motivazione indicata nel seguito:"
}
]
},
"columnValue": "di TROVARSI in situazioni e/o in condizioni di conflitto di interessi, anche potenziale, con riferimento all'Accordo di cui alla presente proposta secondo quanto previsto dalle disposizioni di cui alla normativa in materia inerente status giuridico, nonché dalle disposizioni contenute nel Codice di comportamento dell'Università degli Studi di Parma, avente motivazione indicata nel seguito:"
},
{
"columnKey": "COL0008",
"columnName": "COL0008",
"columnTitle": "",
"columnType": "TEXTAREA",
"columnValue": "swerr523w4r5dfsdf"
}
]
},
{
"sectionKey": "SEC_0003",
"sectionTitle": "",
"columns": [
{
"columnKey": "COL0012",
"columnName": "COL0012",
"columnTitle": "Luogo",
"columnType": "STRING",
"columnValue": "Parma"
},
{
"columnKey": "COL0013",
"columnName": "COL0013",
"columnTitle": "Data",
"columnType": "STRING",
"columnValue": "16-04-2025"
}
]
},
{
"sectionKey": "SEC_0002",
"sectionTitle": "Valori calcolati (nascosti)",
"columns": [
{
"columnKey": "COL0010",
"columnName": "COL0010",
"columnTitle": "Valore utilizzo brevetti",
"columnType": "STRING",
"columnValue": ""
},
{
"columnKey": "COL0011",
"columnName": "COL0011",
"columnTitle": "Valore conflitto interessi",
"columnType": "STRING",
"columnValue": ""
}
]
}
]
}
]
}
]
},
{
"conditionalForm": false,
"moduleTabGenId": 18920,
"multipleForms": true,
"stepHeader": "Allegati",
"schemas": []
},
{
"conditionalForm": false,
"moduleTabGenId": 0,
"multipleForms": false,
"stepHeader": "Riepilogo",
"schemas": []
},
{
"conditionalForm": false,
"moduleTabGenId": 0,
"multipleForms": false,
"stepHeader": "Convalida",
"schemas": []
},
{
"conditionalForm": false,
"moduleTabGenId": 0,
"multipleForms": false,
"stepHeader": "Inoltro",
"schemas": []
}
],
"exported_schemas": []
},
"requestSize": 1
}
}
- name: Get Request - Not Found
request:
url: "{{elixFormsApiUrl_Default}}/request/:request_id/get?username={{elixFormsApiUsername}}"
method: GET
params:
- name: username
value: "{{elixFormsApiUsername}}"
type: query
description: lo username con cui si è effettuato il login
- name: request_id
value: "12"
type: path
body:
type: form-urlencoded
response:
statusText: "200"
headers:
- name: cache-control
value: no-cache, no-store, must-revalidate
- name: pragma
value: no-cache
- name: proxy-connection
value: Keep-Alive
- name: x-content-security-policy
value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
- name: content-type
value: application/it.elixforms.api.v1.2+json;charset=UTF-8
- name: content-length
value: "456"
- name: strict-transport-security
value: max-age=63072000;includeSubDomains
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
- name: x-frame-options
value: SAMEORIGIN
- name: x-xss-protection
value: 1;mode=block
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
body:
type: text
data: |-
{
"value": {
"code": "WARNING",
"description": "Nessuna pratica trovata per l'id 12",
"complete": true,
"globalStatus": "WARNING",
"serviceInformationList": {
"serviceInformation": [
{
"ITSystemName": "EF-CORE",
"complete": true,
"serviceVersion": "1.2.0",
"statusDetailList": {
"statusDetail": [
{
"code": "WARNING",
"description": "Nessuna pratica trovata per l'id 12",
"detailStatus": "WARNING"
}
]
}
}
]
},
"uuid": "05aea0b0-921c-4304-ab9c-7254ebb6cded",
"version": "3.9.2.17",
"requestSize": 0
}
}
@@ -0,0 +1,255 @@
info:
name: Login once
type: http
seq: 3
http:
method: POST
url: "{{elixFormsApiUrl}}/authentication/login/v1"
headers:
- name: x-requested-with
value: XMLHttpRequest
body:
type: json
data: |-
{
"username": "{{elixFormsApiUsername}}",
"password": "{{elixFormsApiPassword}}"
}
runtime:
scripts:
- type: after-response
code: |-
test("Status code is 200", function () {
expect(res.getStatus()).to.equal(200);
var jsonData = res.getBody();
bru.setVar("elixFormsApiAuthToken", jsonData.value.authToken);
});
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
examples:
- name: Login - Success
request:
url: "{{elixFormsApiUrl}}/authentication/login/v1"
method: POST
body:
type: form-urlencoded
data:
- name: username
value: "{{elixFormsApiUsername}}"
- name: password
value: "{{elixFormsApiPassword}}"
response:
statusText: "200"
headers:
- name: cache-control
value: no-cache, no-store, must-revalidate
- name: pragma
value: no-cache
- name: proxy-connection
value: Keep-Alive
- name: x-content-security-policy
value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
- name: content-type
value: application/json;charset=UTF-8
- name: strict-transport-security
value: max-age=63072000;includeSubDomains
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
- name: x-frame-options
value: SAMEORIGIN
- name: x-xss-protection
value: 1;mode=block
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
- name: transfer-encoding
value: chunked
- name: vary
value: Accept-Encoding
- name: content-encoding
value: gzip
body:
type: json
data: |-
{
"value": {
"code": "OK",
"description": "OK",
"complete": true,
"globalStatus": "OK",
"resultNumber": 1,
"serviceInformationList": {
"serviceInformation": [
{
"ITSystemName": "EF-CORE",
"complete": true,
"serviceVersion": "1.1.0",
"statusDetailList": {
"statusDetail": [
{
"code": "OK",
"description": "OK",
"detailStatus": "OK"
}
]
}
}
]
},
"uuid": "9d0ba2e7-8e98-4a7a-9fa1-67d421d0aa1e",
"version": "3.0.0",
"matchingEntitiesSize": 1,
"authToken": "2coDKQPTPJAQxWLSNRItM="
}
}
- name: Login - Failure
request:
url: "{{elixFormsApiUrl}}/authentication/login/v1"
method: POST
body:
type: form-urlencoded
data:
- name: username
value: "{{elixFormsApiUsername}}"
- name: password
value: "{{elixFormsApiPassword}}x"
response:
statusText: "401"
headers:
- name: cache-control
value: no-cache, no-store, must-revalidate
- name: pragma
value: no-cache
- name: proxy-connection
value: Keep-Alive
- name: x-content-security-policy
value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
- name: content-language
value: ""
- name: content-type
value: text/html;charset=UTF-8
- name: content-length
value: "1074"
- name: strict-transport-security
value: max-age=63072000;includeSubDomains
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
- name: x-frame-options
value: SAMEORIGIN
- name: x-xss-protection
value: 1;mode=block
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
body:
type: html
data: |-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Payara Server 6.2025.1 #badassfish - Error report</title>
<style type="text/css">
<!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}HR {color : #525D76;}-->
</style>
</head>
<body>
<h1>HTTP Status 401 - Unauthorized</h1>
<hr/>
<p>
<b>type</b> Status report
</p>
<p>
<b>message</b>Unauthorized
</p>
<p>
<b>description</b>This request requires HTTP authentication.
</p>
<hr/>
<h3>Payara Server 6.2025.1 #badassfish</h3>
</body>
</html>
- name: Login
request:
url: "{{elixFormsApiUrl}}/authentication/login/v1"
method: POST
body:
type: form-urlencoded
data:
- name: username
value: "{{elixFormsApiUsername}}"
- name: password
value: "{{elixFormsApiPassword}}"
response:
statusText: "200"
headers:
- name: cache-control
value: no-cache, no-store, must-revalidate
- name: pragma
value: no-cache
- name: proxy-connection
value: Keep-Alive
- name: x-content-security-policy
value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
- name: content-type
value: application/json;charset=UTF-8
- name: strict-transport-security
value: max-age=63072000;includeSubDomains
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
- name: x-frame-options
value: SAMEORIGIN
- name: x-xss-protection
value: 1;mode=block
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
- name: transfer-encoding
value: chunked
- name: vary
value: Accept-Encoding
- name: content-encoding
value: gzip
body:
type: json
data: |-
{
"value": {
"code": "OK",
"description": "OK",
"complete": true,
"globalStatus": "OK",
"resultNumber": 1,
"serviceInformationList": {
"serviceInformation": [
{
"ITSystemName": "EF-CORE",
"complete": true,
"serviceVersion": "1.2.0",
"statusDetailList": {
"statusDetail": [
{
"code": "OK",
"description": "OK",
"detailStatus": "OK"
}
]
}
}
]
},
"uuid": "31ee57d5-01b9-4fce-94e2-a224282c08ec",
"version": "3.0.0",
"matchingEntitiesSize": 1,
"authToken": "Z8uKwrp86iSWykuRlRM1k="
}
}
@@ -0,0 +1,270 @@
info:
name: Lookup requests
type: http
seq: 5
http:
method: GET
url: "{{elixFormsApiUrl_Default}}/request/lookup/by-status?requestStatus=SUBMITTED&requestStatus=IN_PROGRESS&moduleTag=PROPOSTA_CCT_OPERATORE"
headers:
- name: x-requested-with
value: XMLHttpRequest
- name: x-api-username
value: "{{elixFormsApiUsername}}"
params:
- name: requestStatus
value: SUBMITTED
type: query
description: |-
Valori possibili:
- IN_PROGRESS
- SUBMITTED
- PROCESSED
possibile selezionare valori multipli
- name: requestStatus
value: IN_PROGRESS
type: query
- name: moduleTag
value: PROPOSTA_CCT_OPERATORE
type: query
description: Possibile specificare valori multipli
- name: moduleTag
value: PROPOSTA_CCT_DOCENTE
type: query
disabled: true
- name: swfOptionKey
value: "1"
type: query
disabled: true
- name: swfOptionMode
value: IN
type: query
disabled: true
auth: inherit
runtime:
scripts:
- type: after-response
code: |-
bru.deleteVar("elixFormsQueryRequestIds");
bru.deleteVar("elixFormsQueryRequestIndex");
bru.deleteVar("elixFormsQueryOutput");
// Carica il file JSON (sostituisci con il tuo oggetto JSON)
const jsonData = res.getBody();
const requests = jsonData.value.requests;
const requestIds = [];
for (const r of requests)
{
requestIds.push(r.requestId);
}
console.log(requestIds);
bru.setVar("elixFormsQueryRequestIds", requestIds);
bru.setVar("elixFormsQueryRequestIndex", 0);
bru.setVar("elixFormsQueryOutput", JSON.stringify(JSON.parse("[]")));
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
examples:
- name: Lookup By Status (w SWF) - Success
request:
url: "{{elixFormsApiUrl_Default}}/request/lookup/by-status"
method: POST
headers:
- name: x-requested-with
value: XMLHttpRequest
body:
type: form-urlencoded
data:
- name: username
value: "{{elixFormsApiUsername}}"
- name: requestStatus
value: PROCESSED
description: |-
Valori possibili:
- IN_PROGRESS
- SUBMITTED
- PROCESSED
possibile selezionare valori multipli
- name: moduleTag
value: PROPOSTA_CCT_OPERATORE
disabled: true
- name: moduleTag
value: PROPOSTA_CCT_DOCENTE
description: |-
Per restringere il risultato alle sole richieste del/i modulo/i aventi tag specificato
Possibile selezionare valori multipli
- name: swfOptionKey
value: "1"
- name: swfOptionMode
value: IN
response:
statusText: "200"
headers:
- name: cache-control
value: no-cache, no-store, must-revalidate
- name: pragma
value: no-cache
- name: proxy-connection
value: Keep-Alive
- name: x-content-security-policy
value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
- name: content-type
value: application/it.elixforms.api.v1+json;charset=UTF-8
- name: content-length
value: "787"
- name: strict-transport-security
value: max-age=63072000;includeSubDomains
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
- name: x-frame-options
value: SAMEORIGIN
- name: x-xss-protection
value: 1;mode=block
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
body:
type: text
data: |-
{
"value": {
"code": "OK",
"description": "OK",
"complete": true,
"globalStatus": "OK",
"serviceInformationList": {
"serviceInformation": [
{
"ITSystemName": "EF-CORE",
"complete": true,
"serviceVersion": "1.2.0",
"statusDetailList": {
"statusDetail": [
{
"code": "OK",
"description": "OK",
"detailStatus": "OK"
}
]
}
}
]
},
"uuid": "88b0ea46-f1c2-4ed3-a5f2-1a43c6e1fd58",
"version": "3.10.0.23",
"requests": [
{
"moduleTag": "PROPOSTA_CCT_DOCENTE",
"requestId": 10699,
"step": "Inoltrata, senza stato di workflow semplice disponibile per il modulo"
},
{
"moduleTag": "PROPOSTA_CCT_DOCENTE",
"requestId": 10728,
"step": "Inoltrata, senza stato di workflow semplice disponibile per il modulo"
},
{
"moduleTag": "PROPOSTA_CCT_DOCENTE",
"requestId": 10868,
"step": "Inoltrata, senza stato di workflow semplice disponibile per il modulo"
}
],
"requestsSize": 3
}
}
- name: Lookup By Status - Error
request:
url: "{{elixFormsApiUrl_Default}}/request/lookup/by-status"
method: POST
body:
type: form-urlencoded
data:
- name: username
value: "{{elixFormsApiUsername}}"
- name: requestStatus
value: IN_PROGRESS
description: |-
Valori possibili:
- IN_PROGRESS
- SUBMITTED
- PROCESSED
possibile selezionare valori multipli
- name: moduleTag
value: PROPOSTA_CCT_OPERATORE
- name: moduleTag
value: PROPOSTA_CCT_DOCENTE
description: |-
Per restringere il risultato alle sole richieste del/i modulo/i aventi tag specificato
Possibile selezionare valori multipli
disabled: true
- name: swfOptionKey
value: "1"
response:
statusText: "200"
headers:
- name: cache-control
value: no-cache, no-store, must-revalidate
- name: pragma
value: no-cache
- name: proxy-connection
value: Keep-Alive
- name: x-content-security-policy
value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
- name: content-type
value: application/it.elixforms.api.v1+json;charset=UTF-8
- name: content-length
value: "925"
- name: strict-transport-security
value: max-age=63072000;includeSubDomains
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
- name: x-frame-options
value: SAMEORIGIN
- name: x-xss-protection
value: 1;mode=block
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
body:
type: text
data: |-
{
"value": {
"code": "ERROR",
"description": "Il modulo identificato dal tag \"PROPOSTA_CCT_OPERATORE\" NON contiene un workflow semplice (la scheda modulo 10 contiene un valore nullo o 0 nella colonna S_10_COL0051), ma è stato richiesto di filtrare i risultati per il valore INOLTRATA (uno stato di workflow semplice)",
"complete": true,
"globalStatus": "ERROR",
"serviceInformationList": {
"serviceInformation": [
{
"ITSystemName": "EF-CORE",
"complete": true,
"serviceVersion": "1.2.0",
"statusDetailList": {
"statusDetail": [
{
"code": "ERROR",
"description": "Il modulo identificato dal tag \"PROPOSTA_CCT_OPERATORE\" NON contiene un workflow semplice (la scheda modulo 10 contiene un valore nullo o 0 nella colonna S_10_COL0051), ma è stato richiesto di filtrare i risultati per il valore INOLTRATA (uno stato di workflow semplice)",
"detailStatus": "ERROR"
}
]
}
}
]
},
"uuid": "ed18681c-a40e-458e-8f70-0b982a19ab0b",
"version": "3.9.2.17",
"requestsSize": 0
}
}
@@ -0,0 +1,7 @@
info:
name: Runner- Get all requests by ModuleTag and status
type: folder
seq: 1
request:
auth: inherit
@@ -1,7 +1,7 @@
info:
name: "Set Request Status: Incomplete"
type: http
seq: 12
seq: 13
http:
method: POST
@@ -1,7 +1,7 @@
info:
name: User info
type: folder
seq: 8
seq: 9
request:
auth: inherit
@@ -1,7 +1,7 @@
info:
name: _HACKS
type: folder
seq: 2
seq: 4
request:
auth: inherit
@@ -1,7 +1,7 @@
info:
name: _Untested
type: folder
seq: 1
seq: 2
request:
auth: inherit