elixFormsAPI - update syntax and add prepare global function

This commit is contained in:
2026-02-23 10:28:54 +01:00
parent fd3d0da848
commit 98a6019e32
51 changed files with 1716 additions and 3379 deletions
@@ -36,8 +36,9 @@ runtime:
scripts:
- type: before-request
code: |-
const { prepareEftlDocument } = require("./elixFormsJs.js")
// Copy-pasta your EFTL document below inside the template literals (`)
var eftlDocumentToBeProcessed = String.raw`
prepareEftlDocument(String.raw`
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
[VAR name="D1_1" type="number"][TAG]GETVALUEBYTAG,PROPOSTA_CCT_CONTRATTO_D_1_1,REQUEST,IUQOID[/TAG][/VAR]
[VAR name="D1_2" type="number"][TAG]GETVALUEBYTAG,PROPOSTA_CCT_CONTRATTO_D_1_2,REQUEST,IUQOID[/TAG][/VAR]
@@ -52,11 +53,7 @@ runtime:
[FORMAT type="number" pattern="#,##0.00"][% QuotaAteneo %][/FORMAT]
[/EFTL]
`;
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);
bru.setVar("elixBase64EftlDocument", base64EncodedDocument);
`);
settings:
encodeUrl: true
@@ -42,8 +42,9 @@ runtime:
scripts:
- type: before-request
code: |-
const { prepareEftlDocument } = require("./elixFormsJs.js")
// Copy-pasta your EFTL document below inside the template literals (`)
var eftlDocumentToBeProcessed = String.raw`
prepareEftlDocument(String.raw`
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
[VAR name="ceiling" type="string"][TAG]GETVALUEBYTAG,CORRISPETTIVO_CEILING,REQUEST,IUQOID[/TAG][/VAR]
[!-- HACK per numeri corretti!!!1! --]
@@ -79,11 +80,7 @@ runtime:
[%= ritenuta2maxMessage %]
[/EFTL]
`;
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);
bru.setVar("elixBase64EftlDocument", base64EncodedDocument);
`);
settings:
encodeUrl: true
@@ -15,119 +15,102 @@ http:
value: "16204"
body:
type: json
data: "{\r
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
\ \"userContext\": {\r
\ \"lang\": \"IT\",\r
\ \"itemCodiceContratto\": \"CRIS_G_25_CCS_IST_RA_UNIVERSITÀPOLITECNICADELL_01\"\r
\ }\r
}"
data: |-
{
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
"userContext": {
"lang": "IT",
"itemCodiceContratto": "CRIS_G_25_CCS_IST_RA_UNIVERSITÀPOLITECNICADELL_01"
}
}
auth: inherit
runtime:
scripts:
- type: before-request
code: "// Copy-pasta your EFTL document below inside the template literals (`)\r
code: "const { prepareEftlDocument } = require(\"./elixFormsJs.js\")
var eftlDocumentToBeProcessed = String.raw`\r
// Copy-pasta your EFTL document below inside the template literals (`)
[EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r
prepareEftlDocument(String.raw`
[VAR name=\"codiceContratto\" type=\"string\"][VALUE_OF varname=\"itemCodiceContratto\" /][/VAR]\r
[EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]
[VAR name=\"debug\" type=\"boolean\"][% debug = false; %][/VAR]\r
[VAR name=\"codiceContratto\" type=\"string\"][VALUE_OF varname=\"itemCodiceContratto\" /][/VAR]
\r
[VAR name=\"debug\" type=\"boolean\"][% debug = false; %][/VAR]
[!-- Titolo contratto ha il formato \"[codice_contratto] titolo\" --]\r
[!-- La prima split fatta per \"\\] \" mi restituisce \"[codice_contratto\" --]\r
[!-- Titolo contratto ha il formato \"[codice_contratto] titolo\" --]
[VAR name=\"firstSplit\" type=\"iterable\"][SPLIT regex=\"\\] \"][VALUE_OF varname=\"itemCodiceContratto\" /][/SPLIT][/VAR]\r
[!-- La prima split fatta per \"\\] \" mi restituisce \"[codice_contratto\" --]
[VAR name=\"firstSplitIdx\"][% firstSplitIdx = 0; %][/VAR]\r
[VAR name=\"firstSplit\" type=\"iterable\"][SPLIT regex=\"\\] \"][VALUE_OF varname=\"itemCodiceContratto\" /][/SPLIT][/VAR]
[!-- La seconda split fatta per \"\\[\" mi restituisce \"codice_contratto\" --]\r
[VAR name=\"firstSplitIdx\"][% firstSplitIdx = 0; %][/VAR]
[VAR name=\"secondSplit\" type=\"iterable\"][SPLIT regex=\"\\[\"][VALUE_OF varname=\"firstSplit\" index=\"firstSplitIdx\" /][/SPLIT][/VAR]\r
[!-- La seconda split fatta per \"\\[\" mi restituisce \"codice_contratto\" --]
[VAR name=\"secondSplitIdx\"][% secondSplitIdx = 1; %][/VAR]\r
[VAR name=\"secondSplit\" type=\"iterable\"][SPLIT regex=\"\\[\"][VALUE_OF varname=\"firstSplit\" index=\"firstSplitIdx\" /][/SPLIT][/VAR]
\r
[VAR name=\"secondSplitIdx\"][% secondSplitIdx = 1; %][/VAR]
[VAR name=\"condizione\"][SIZE_OF varname=\"secondSplit\" /][/VAR]\r
[IF]\r
[VAR name=\"condizione\"][SIZE_OF varname=\"secondSplit\" /][/VAR]
\ [CONDITION][% condizione > 1 %][/CONDITION]\r
[IF]
\ [THEN]\r
\ [CONDITION][% condizione > 1 %][/CONDITION]
\ [VAR name=\"codiceContratto\" type=\"string\"][VALUE_OF varname=\"secondSplit\" index=\"secondSplitIdx\" /][/VAR]\r
\ [THEN]
\ [/THEN]\r
\ [VAR name=\"codiceContratto\" type=\"string\"][VALUE_OF varname=\"secondSplit\" index=\"secondSplitIdx\" /][/VAR]
[/IF]\r
\ [/THEN]
\r
[/IF]
[VAR name=\"codiceContrattoSplit\" type=\"iterable\"][SPLIT regex=\"À\"][VALUE_OF varname=\"codiceContratto\" /][/SPLIT][/VAR]\r
[VAR name=\"condizioneSplit\"][SIZE_OF varname=\"codiceContrattoSplit\" /][/VAR]\r
[VAR name=\"codiceContrattoSplit\" type=\"iterable\"][SPLIT regex=\"À\"][VALUE_OF varname=\"codiceContratto\" /][/SPLIT][/VAR]
[IF]\r
[VAR name=\"condizioneSplit\"][SIZE_OF varname=\"codiceContrattoSplit\" /][/VAR]
\ [CONDITION][% condizioneSplit > 1 %][/CONDITION]\r
[IF]
\ [THEN]\r
\ [CONDITION][% condizioneSplit > 1 %][/CONDITION]
\ [% debug = true; %]\r
\ [THEN]
\ [VAR name=\"codiceContrattoSplitFirst\" type=\"string\"][VALUE_OF varname=\"codiceContrattoSplit\" index=\"firstSplitIdx\" /][/VAR]\r
\ [% debug = true; %]
\ [VAR name=\"codiceContrattoSplitSecond\" type=\"string\"][VALUE_OF varname=\"codiceContrattoSplit\" index=\"secondSplitIdx\" /][/VAR]\r
\ [VAR name=\"codiceContrattoSplitFirst\" type=\"string\"][VALUE_OF varname=\"codiceContrattoSplit\" index=\"firstSplitIdx\" /][/VAR]
\ [% codiceContratto = codiceContrattoSplitFirst + \"%C3%80\" + codiceContrattoSplitSecond; %]\r
\ [VAR name=\"codiceContrattoSplitSecond\" type=\"string\"][VALUE_OF varname=\"codiceContrattoSplit\" index=\"secondSplitIdx\" /][/VAR]
\ [/THEN]\r
\ [% codiceContratto = codiceContrattoSplitFirst + \"%C3%80\" + codiceContrattoSplitSecond; %]
[/IF]\r
\ [/THEN]
\r
[/IF]
<html>\r
<ul>\r
<html>
<li>[%= codiceContratto %]</li>\r
<ul>
<li>[%= codiceContrattoSplit %]</li>\r
<li>[%= codiceContratto %]</li>
<li>[%= debug %]</li>\r
<li>[%= codiceContrattoSplit %]</li>
</ul>\r
<li>[%= debug %]</li>
</html>\r
</ul>
[/EFTL]\r
</html>
`;\r
[/EFTL]
\r
console.log(eftlDocumentToBeProcessed);\r
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
\r
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
`);"
settings:
encodeUrl: true
@@ -15,177 +15,94 @@ http:
value: "8463"
body:
type: json
data: "{\r
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
\ \"userContext\": {\r
\ \"lang\": \"IT\",\r
\ \"docs\": [\r
\ {\r
\ \"name\": \"doc1\",\r
\ \"quantity\": 3,\r
\ \"price\": 123.3\r
\ },\r
\ {\r
\ \"name\": \"doc2\",\r
\ \"quantity\": 5,\r
\ \"price\": 213.3\r
\ },\r
\ {\r
\ \"name\": \"doc3\",\r
\ \"quantity\": 10,\r
\ \"price\": 321.3\r
\ }\r
\ ],\r
\ \"docsAsEntities\": [\r
\ {\r
\ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r
\ \"eftlEntity\": {\r
\ \"name\": \"doc1\",\r
\ \"quantity\": 3,\r
\ \"price\": 123.3\r
\ }\r
\ },\r
\ {\r
\ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r
\ \"eftlEntity\": {\r
\ \"name\": \"doc2\",\r
\ \"quantity\": 5,\r
\ \"price\": 213.3\r
\ }\r
\ },\r
\ {\r
\ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r
\ \"eftlEntity\": {\r
\ \"name\": \"doc3\",\r
\ \"quantity\": 10,\r
\ \"price\": 321.3\r
\ }\r
\ }\r
\ ],\r
\ \"singleEntity\": {\r
\ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r
\ \"eftlEntity\": {\r
\ \"name\": \"doc1\",\r
\ \"quantity\": 3,\r
\ \"price\": 123.3\r
\ }\r
\ },\r
\ \"simpleList\": [\r
\ \"s1\",\r
\ \"s2\",\r
\ \"s3\"\r
\ ],\r
\ \"docsSize\": 3\r
\ }\r
}"
data: |-
{
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
"userContext": {
"lang": "IT",
"docs": [
{
"name": "doc1",
"quantity": 3,
"price": 123.3
},
{
"name": "doc2",
"quantity": 5,
"price": 213.3
},
{
"name": "doc3",
"quantity": 10,
"price": 321.3
}
],
"docsAsEntities": [
{
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
"eftlEntity": {
"name": "doc1",
"quantity": 3,
"price": 123.3
}
},
{
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
"eftlEntity": {
"name": "doc2",
"quantity": 5,
"price": 213.3
}
},
{
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
"eftlEntity": {
"name": "doc3",
"quantity": 10,
"price": 321.3
}
}
],
"singleEntity": {
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
"eftlEntity": {
"name": "doc1",
"quantity": 3,
"price": 123.3
}
},
"simpleList": [
"s1",
"s2",
"s3"
],
"docsSize": 3
}
}
auth: inherit
runtime:
scripts:
- type: before-request
code: "// Copy-pasta your EFTL document below inside the template literals (`)\r
code: |-
const { prepareEftlDocument } = require("./elixFormsJs.js")
// Copy-pasta your EFTL document below inside the template literals (`)
prepareEftlDocument(String.raw`
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
[VAR name="tipologiaCodice" type="string"][TAG]GETVALUEBYTAG,TIPOLOGIA_CODICE,REQUEST,IUQOID[/TAG][/VAR]
[VAR name="isEconomico" type="boolean"][% isEconomico = true; %][/VAR]
[VAR name="tipologieNonEconomico" type="iterable"][SPLIT regex=";"][TAG]GETVALUEBYTAG,TIPOLOGIE_NON_ECONOMICO,REQUEST,IUQOID[/TAG][/SPLIT][/VAR]
var eftlDocumentToBeProcessed = `\r
[IF]
[CONDITION]
[CONTAINS varname="tipologieNonEconomico"][VALUE_OF varname="tipologiaCodice" /][/CONTAINS]
[/CONDITION]
[THEN][% isEconomico = false; %][/THEN]
[/IF]
[EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r
[VAR name=\"tipologiaCodice\" type=\"string\"][TAG]GETVALUEBYTAG,TIPOLOGIA_CODICE,REQUEST,IUQOID[/TAG][/VAR]\r
[VAR name=\"isEconomico\" type=\"boolean\"][% isEconomico = true; %][/VAR]\r
[VAR name=\"tipologieNonEconomico\" type=\"iterable\"][SPLIT regex=\";\"][TAG]GETVALUEBYTAG,TIPOLOGIE_NON_ECONOMICO,REQUEST,IUQOID[/TAG][/SPLIT][/VAR]\r
\r
[IF]\r
\ [CONDITION]\r
\ [CONTAINS varname=\"tipologieNonEconomico\"][VALUE_OF varname=\"tipologiaCodice\" /][/CONTAINS]\r
\ [/CONDITION]\r
\ [THEN][% isEconomico = false; %][/THEN]\r
[/IF]\r
\r
[%= isEconomico %]\r
[/EFTL]\r
`;\r
\r
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
\r
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
[%= isEconomico %]
[/EFTL]
`);
settings:
encodeUrl: true
@@ -42,8 +42,9 @@ runtime:
scripts:
- type: before-request
code: |-
const { prepareEftlDocument } = require("./elixFormsJs.js")
// Copy-pasta your EFTL document below inside the template literals (`)
var eftlDocumentToBeProcessed = String.raw`
prepareEftlDocument(String.raw`
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
[VAR name="C_B3" type="number"][TAG]GETVALUEBYTAG,C_B3,REQUEST,IUQOID[/TAG][/VAR]
[VAR name="D1_1" type="number"][TAG]GETVALUEBYTAG,PROPOSTA_CCT_CONTRATTO_D_1_1,REQUEST,IUQOID[/TAG][/VAR]
@@ -69,11 +70,7 @@ runtime:
[FORMAT type="number" pattern="#,##0.00"][% D2 %][/FORMAT]
[/EFTL]
`;
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);
bru.setVar("elixBase64EftlDocument", base64EncodedDocument);
`)
settings:
encodeUrl: true