info: name: Process EFTL type: http seq: 5 http: method: POST url: "{{elixFormsApiUrl}}/eftl/process/v1" headers: - name: x-requested-with value: XMLHttpRequest - name: x-api-key value: "{{elixFormsWsAuthenticationToken}}" - name: x-ef-request-id value: "7792" body: type: json 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: |- const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) prepareEftlDocument(String.raw`

VERSIONE ITALIANA

[TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG]

Tipologia: [TAG]SCHEMAID,341,COL0003,IUQOID, , [/TAG]

Corrispettivo: [TAG]SCHEMAID,341,COL0009,IUQOID, , [/TAG]

Decreto del Rettore


[EFTL]

[TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG]

Tipologia: [TAG]SCHEMAID,341,COL0003,IUQOID, , [/TAG]

Corrispettivo: [TAG]SCHEMAID,341,COL0009,IUQOID, , [/TAG]

[/EFTL] ... [eftl] [!-- Inizio blocco EFTL --] [!-- Blocco di codice riportato in output come scrittura non EFTL --] testo tra tag html [!-- Blocco di codice riportato in output come scrittura non EFTL --] testo senza tags [VAR name="i" type="number"] [!-- Inizio blocco VAR per la definizione di una variabile --] [% i = 0; %] [!-- Blocco di assegnazione valore ad una variabile --] [/VAR]

un po' di testo che verrà riportato

[!-- Blocco di codice riportato in output come scrittura non EFTL --] [!-- Inizio blocco if/then/elese --] [IF] [CONDITION] [!-- Condizione del blocco IF da valutare: risultato aspettato di tipo booleano --] [% lang == "IT" %] [/CONDITION] [THEN] [!-- Se blocco condizione true --] [FOR varName="doc" iterable="docs"] doc: [%= doc %] [/FOR] [!-- Condizione Blocco while --] [WHILE] [CONDITION] [% docs != null && i < docsSize %] [/CONDITION] [DO] [!-- Blocco while da eseguire se condizione è "true" --]

value of var "i" is: [%= i %]

[FOR varName="doc" iterable="docs"] [!-- Blocco FOR di iterazione --] doc corrente: [%= doc %] [!-- Blocco esposizione del valore della variabile --] Sto ciclando sul documento con nome e prezzo [/FOR] [% i = i + 1; %] [!-- Blocco di assegnazione valore ad una variabile --]

value of var "i" after increment is: [%= i %]

[/DO] [/WHILE] [/THEN] [ELSE] [!-- Se blocco condizione false --] fixed-time RESEARCH ASSISTANT CONTRACT/S for COLLABORATION at RESEARCH ACTIVITY [/ELSE] [/IF] [!-- Fine blocco EFTL --] [/EFTL] ...

testo tra un documento blocco EFTL© e l'altro

... [EFTL] [!-- Inizio 2° blocco EFTL --]
  1. Decreto del rettore del [TAG]SCHEMAID,202,COL0030,ID_OBJECT, , [/TAG] nr. [TAG]SCHEMAID,202,COL0022,ID_OBJECT, , [/TAG]
  2. Decreto del rettore nr. [TAG]GETVALUEBYTAG,NUM_PROT,REQUEST,IUQOID[FILTER]ACTION_NAME=pers_a_inviaPerFirmaRemotaBando_facEcon[/FILTER][/TAG] del [TAG]GETVALUEBYTAG,PROVV_DATE,REQUEST,IUQOID[FILTER]ACTION_NAME=pers_a_inviaPerFirmaRemotaBando_facEcon[/FILTER],,,dd/MM/yyyy[/TAG]
altro tag [!-- Fine 2° blocco EFTL --] [/EFTL]

Resto del documento...

The Rector

Digitally signed

`); settings: encodeUrl: true timeout: 0 followRedirects: true maxRedirects: 5 examples: - name: Process EFTL - Success request: url: "{{elixFormsApiUrl}}/eftl/process/v1" method: POST headers: - name: x-requested-with value: XMLHttpRequest - name: x-api-key value: "{{elixFormsWsAuthenticationToken}}" - name: x-ef-request-id value: "7792" 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 }" 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": "EFTL", "complete": true, "serviceVersion": "1.0.0", "statusDetailList": { "statusDetail": [ { "code": "OK", "description": "OK", "detailStatus": "OK" } ] } } ] }, "uuid": "a6c6d1c6-14fb-457e-bd82-b1cc137f8c95", "version": "3.9.2.21", "processedDocument": "CjxodG1sPgo8IS0tIGNvZGljZSBOT04gcHJvY2Vzc2F0byBkYSBFRlRMIC0tPgo8aGVhZD4KPC9oZWFkPgo8Ym9keSBzdHlsZT0iZm9udC1mYW1pbHk6IFRhaG9tYSwgVmVyZGFuYSwgU2Vnb2UsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJweDsgZm9udHN0eWxlOiBub3JtYWw7IGxpbmUtaGVpZ2h0OiAxOS42cHg7Ij4KPHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAxM3B0OyBwYWRkaW5nLXRvcDogNXB0OyI+CjxhIGhyZWY9IiNJVEFMSUFOTyI+VkVSU0lPTkUgSVRBTElBTkE8L2E+PC9wPgo8cCBzdHlsZT0icGFkZGluZy1ib3R0b206IDVwdDsiPiA8L3A+CjxoMiBhbGlnbj0iY2VudGVyIj48c3Ryb25nPltUQUddU0NIRU1BSUQsMzQxLENPTDAwMDUsSVVRT0lELCAsIFsvVEFHXTwvc3Ryb25nPjwvaDI+CjxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMTRwdDsgcGFkZGluZy10b3A6IDI1cHQ7Ij5UaXBvbG9naWE6IDxzdHJvbmc+W1RBR11TQ0hFTUFJRCwzNDEsQ09MMDAwMyxJVVFPSUQsICwgWy9UQUddPC9zdHJvbmc+PC9wPgo8cCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDE0cHQ7IHBhZGRpbmctdG9wOiAyNXB0OyI+Q29ycmlzcGV0dGl2bzogPHN0cm9uZz5bVEFHXVNDSEVNQUlELDM0MSxDT0wwMDA5LElVUU9JRCwgLCBbL1RBR108L3N0cm9uZz48L3A+CjxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMTRwdDsgcGFkZGluZy10b3A6IDVwdDsiPkRlY3JldG8gZGVsIFJldHRvcmU8L3A+CjxociAvPgoKPCEtLSBRdWVzdG8gaW52ZWNlICZlZ3JhdmU7IHByb2Nlc3NhdG8gLS0+Cgo8aDIgYWxpZ249ImNlbnRlciI+PHN0cm9uZz48L3N0cm9uZz48L2gyPgo8cCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDE0cHQ7IHBhZGRpbmctdG9wOiAyNXB0OyI+VGlwb2xvZ2lhOiA8c3Ryb25nPjwvc3Ryb25nPjwvcD4KPHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAxNHB0OyBwYWRkaW5nLXRvcDogMjVwdDsiPkNvcnJpc3BldHRpdm86IDxzdHJvbmc+PC9zdHJvbmc+PC9wPgoKCi4uLgoKIAoKPHRhZz50ZXN0byB0cmEgdGFnIGh0bWw8L3RhZz4gCnRlc3RvIHNlbnphIHRhZ3MKCjxwPnVuIHBvJyBkaSB0ZXN0byBjaGUgdmVyciZhZ3JhdmU7IHJpcG9ydGF0bzwvcD4gCgogCgoKIAo8cD4gdmFsdWUgb2YgdmFyICJpIiBpczogMC4wPC9wPgogCmRvYyBjb3JyZW50ZTogeyJuYW1lIjoiZG9jMSIsInF1YW50aXR5IjozLCJwcmljZSI6MTIzLjN9CjxzdHJvbmc+IFN0byBjaWNsYW5kbyBzdWwgZG9jdW1lbnRvIGNvbiBub21lIGUgcHJlenpvIDwvc3Ryb25nPgogCmRvYyBjb3JyZW50ZTogeyJuYW1lIjoiZG9jMiIsInF1YW50aXR5Ijo1LCJwcmljZSI6MjEzLjN9CjxzdHJvbmc+IFN0byBjaWNsYW5kbyBzdWwgZG9jdW1lbnRvIGNvbiBub21lIGUgcHJlenpvIDwvc3Ryb25nPgogCmRvYyBjb3JyZW50ZTogeyJuYW1lIjoiZG9jMyIsInF1YW50aXR5IjoxMCwicHJpY2UiOjMyMS4zfQo8c3Ryb25nPiBTdG8gY2ljbGFuZG8gc3VsIGRvY3VtZW50byBjb24gbm9tZSBlIHByZXp6byA8L3N0cm9uZz4KCjxwPiB2YWx1ZSBvZiB2YXIgImkiIGFmdGVyIGluY3JlbWVudCBpczogMS4wPC9wPgogCjxwPiB2YWx1ZSBvZiB2YXIgImkiIGlzOiAxLjA8L3A+CiAKZG9jIGNvcnJlbnRlOiB7Im5hbWUiOiJkb2MxIiwicXVhbnRpdHkiOjMsInByaWNlIjoxMjMuM30KPHN0cm9uZz4gU3RvIGNpY2xhbmRvIHN1bCBkb2N1bWVudG8gY29uIG5vbWUgZSBwcmV6em8gPC9zdHJvbmc+CiAKZG9jIGNvcnJlbnRlOiB7Im5hbWUiOiJkb2MyIiwicXVhbnRpdHkiOjUsInByaWNlIjoyMTMuM30KPHN0cm9uZz4gU3RvIGNpY2xhbmRvIHN1bCBkb2N1bWVudG8gY29uIG5vbWUgZSBwcmV6em8gPC9zdHJvbmc+CiAKZG9jIGNvcnJlbnRlOiB7Im5hbWUiOiJkb2MzIiwicXVhbnRpdHkiOjEwLCJwcmljZSI6MzIxLjN9CjxzdHJvbmc+IFN0byBjaWNsYW5kbyBzdWwgZG9jdW1lbnRvIGNvbiBub21lIGUgcHJlenpvIDwvc3Ryb25nPgoKPHA+IHZhbHVlIG9mIHZhciAiaSIgYWZ0ZXIgaW5jcmVtZW50IGlzOiAyLjA8L3A+CiAKPHA+IHZhbHVlIG9mIHZhciAiaSIgaXM6IDIuMDwvcD4KIApkb2MgY29ycmVudGU6IHsibmFtZSI6ImRvYzEiLCJxdWFudGl0eSI6MywicHJpY2UiOjEyMy4zfQo8c3Ryb25nPiBTdG8gY2ljbGFuZG8gc3VsIGRvY3VtZW50byBjb24gbm9tZSBlIHByZXp6byA8L3N0cm9uZz4KIApkb2MgY29ycmVudGU6IHsibmFtZSI6ImRvYzIiLCJxdWFudGl0eSI6NSwicHJpY2UiOjIxMy4zfQo8c3Ryb25nPiBTdG8gY2ljbGFuZG8gc3VsIGRvY3VtZW50byBjb24gbm9tZSBlIHByZXp6byA8L3N0cm9uZz4KIApkb2MgY29ycmVudGU6IHsibmFtZSI6ImRvYzMiLCJxdWFudGl0eSI6MTAsInByaWNlIjozMjEuM30KPHN0cm9uZz4gU3RvIGNpY2xhbmRvIHN1bCBkb2N1bWVudG8gY29uIG5vbWUgZSBwcmV6em8gPC9zdHJvbmc+Cgo8cD4gdmFsdWUgb2YgdmFyICJpIiBhZnRlciBpbmNyZW1lbnQgaXM6IDMuMDwvcD4KCgoKPCEtLSBjb2RpY2UgTk9OIHByb2Nlc3NhdG8gZGEgRUZUTCAtLT4KCi4uLgoKPHA+dGVzdG8gdHJhIHVuIGRvY3VtZW50byBibG9jY28gRUZUTCZjb3B5OyBlIGwnYWx0cm88L3A+CgouLi4KCiAKPG9sPgo8bGk+CkRlY3JldG8gZGVsIHJldHRvcmUgZGVsICBuci4gCjwvbGk+CjxsaT4KRGVjcmV0byBkZWwgcmV0dG9yZSBuci4gIGRlbCAKPC9saT4KPC9vbD4KPHRhZz5hbHRybyB0YWc8L3RhZz4KCgo8IS0tIGNvZGljZSBOT04gcHJvY2Vzc2F0byBkYSBFRlRMIC0tPgo8cCBhbGlnbj0iY2VudGVyIj4KPGVtPlJlc3RvIGRlbCBkb2N1bWVudG8uLi48L2VtPgo8L3A+CjxwPiA8L3A+CjxwPlRoZSBSZWN0b3I8L3A+CjxwPkRpZ2l0YWxseSBzaWduZWQ8L3A+CjwvYm9keT4KPC9odG1sPgo=" } } - name: "Process EFTL - TEST #1" request: url: "{{elixFormsApiUrl}}/eftl/process/v1" method: POST headers: - name: x-requested-with value: XMLHttpRequest - name: x-api-key value: "{{elixFormsWsAuthenticationToken}}" - name: x-ef-request-id 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 }" 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": "EFTL", "complete": true, "serviceVersion": "1.0.0", "statusDetailList": { "statusDetail": [ { "code": "OK", "description": "OK", "detailStatus": "OK" } ] } } ] }, "uuid": "ffaa1626-1841-41cd-8b7e-827b171e439e", "version": "3.9.2.21", "processedDocument": "ZmFsc2U=" } }