<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>http://wiki.netsitech.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cavazza</id>
	<title>WikiSitech - Contributi utente [it]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.netsitech.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cavazza"/>
	<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php/Speciale:Contributi/Cavazza"/>
	<updated>2026-09-17T05:36:25Z</updated>
	<subtitle>Contributi utente</subtitle>
	<generator>MediaWiki 1.34.4</generator>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15079</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15079"/>
		<updated>2026-09-15T12:23:57Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: /* Selection Tool */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
# [[#errori-noti|Errori noti]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Durante il mapping si può assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''. (facoltativo/se serve)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Nome del proprio server” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
&lt;br /&gt;
Grazie alle funzioni di UPDATE e CHECK IN del CAS si può lavorare in più persone su un progetto (simil GIT) e gestire versioni diverse. Per maggiori informazioni vedere:&lt;br /&gt;
&amp;lt;br&amp;gt;https://wiki.netsitech.com/index.php/Guida_al_lavoro_in_parallelo_su_Exstream&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
Per l'ufficio interno i rilasci vengono effettuati solo sul CAS SITECH.&lt;br /&gt;
&amp;lt;br&amp;gt; Per farlo serve fare una CHECK IN sul CAS compilando così il form:&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;errori-noti&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Errori noti ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&amp;lt;br&amp;gt;&lt;br /&gt;
* Se ci sono più CallProc (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&lt;br /&gt;
* Se da Story Teller non si riescono a trascinare i campi nella Story: Sullo storyteller: File --&amp;gt; Data --&amp;gt; Switch to message&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15078</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15078"/>
		<updated>2026-09-15T12:23:08Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: /* Da StoryTeller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
# [[#errori-noti|Errori noti]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Nome del proprio server” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
&lt;br /&gt;
Grazie alle funzioni di UPDATE e CHECK IN del CAS si può lavorare in più persone su un progetto (simil GIT) e gestire versioni diverse. Per maggiori informazioni vedere:&lt;br /&gt;
&amp;lt;br&amp;gt;https://wiki.netsitech.com/index.php/Guida_al_lavoro_in_parallelo_su_Exstream&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
Per l'ufficio interno i rilasci vengono effettuati solo sul CAS SITECH.&lt;br /&gt;
&amp;lt;br&amp;gt; Per farlo serve fare una CHECK IN sul CAS compilando così il form:&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;errori-noti&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Errori noti ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&amp;lt;br&amp;gt;&lt;br /&gt;
* Se ci sono più CallProc (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&lt;br /&gt;
* Se da Story Teller non si riescono a trascinare i campi nella Story: Sullo storyteller: File --&amp;gt; Data --&amp;gt; Switch to message&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15053</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15053"/>
		<updated>2026-09-10T12:45:48Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: /* Errori noti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
# [[#errori-noti|Errori noti]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Nome del proprio server” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
&lt;br /&gt;
Grazie alle funzioni di UPDATE e CHECK IN del CAS si può lavorare in più persone su un progetto (simil GIT) e gestire versioni diverse. Per maggiori informazioni vedere:&lt;br /&gt;
&amp;lt;br&amp;gt;https://wiki.netsitech.com/index.php/Guida_al_lavoro_in_parallelo_su_Exstream&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
Per l'ufficio interno i rilasci vengono effettuati solo sul CAS SITECH.&lt;br /&gt;
&amp;lt;br&amp;gt; Per farlo serve fare una CHECK IN sul CAS compilando così il form:&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;errori-noti&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Errori noti ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&amp;lt;br&amp;gt;&lt;br /&gt;
* Se ci sono più CallProc (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&lt;br /&gt;
* Se da Story Teller non si riescono a trascinare i campi nella Story: Sullo storyteller: File --&amp;gt; Data --&amp;gt; Switch to message&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15052</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15052"/>
		<updated>2026-09-10T12:39:25Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: /* Rilascio interno */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
# [[#errori-noti|Errori noti]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Nome del proprio server” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
&lt;br /&gt;
Grazie alle funzioni di UPDATE e CHECK IN del CAS si può lavorare in più persone su un progetto (simil GIT) e gestire versioni diverse. Per maggiori informazioni vedere:&lt;br /&gt;
&amp;lt;br&amp;gt;https://wiki.netsitech.com/index.php/Guida_al_lavoro_in_parallelo_su_Exstream&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
Per l'ufficio interno i rilasci vengono effettuati solo sul CAS SITECH.&lt;br /&gt;
&amp;lt;br&amp;gt; Per farlo serve fare una CHECK IN sul CAS compilando così il form:&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;errori-noti&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Errori noti ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&amp;lt;br&amp;gt;&lt;br /&gt;
* Se ci sono più CallProc (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15051</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15051"/>
		<updated>2026-09-10T12:38:07Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: /* CAS: lavoro condiviso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
# [[#errori-noti|Errori noti]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Nome del proprio server” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
&lt;br /&gt;
Grazie alle funzioni di UPDATE e CHECK IN del CAS si può lavorare in più persone su un progetto (simil GIT) e gestire versioni diverse. Per maggiori informazioni vedere:&lt;br /&gt;
&amp;lt;br&amp;gt;https://wiki.netsitech.com/index.php/Guida_al_lavoro_in_parallelo_su_Exstream&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;errori-noti&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Errori noti ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&amp;lt;br&amp;gt;&lt;br /&gt;
* Se ci sono più CallProc (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15050</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15050"/>
		<updated>2026-09-10T12:36:26Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: /* Control Center */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
# [[#errori-noti|Errori noti]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Nome del proprio server” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;errori-noti&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Errori noti ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&amp;lt;br&amp;gt;&lt;br /&gt;
* Se ci sono più CallProc (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15049</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15049"/>
		<updated>2026-09-10T12:35:07Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: /* Errori noti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
# [[#errori-noti|Errori noti]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Riccardo” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;errori-noti&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Errori noti ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&amp;lt;br&amp;gt;&lt;br /&gt;
* Se ci sono più CallProc (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15048</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15048"/>
		<updated>2026-09-10T12:34:58Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: /* Errori noti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
# [[#errori-noti|Errori noti]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Riccardo” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;errori-noti&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Errori noti ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&amp;lt;br&amp;gt;&lt;br /&gt;
**Se ci sono più CallProc (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15047</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15047"/>
		<updated>2026-09-10T12:34:31Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: /* Errori noti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
# [[#errori-noti|Errori noti]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Riccardo” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;errori-noti&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Errori noti ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&lt;br /&gt;
Se ci sono più CallProc (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15046</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15046"/>
		<updated>2026-09-10T12:33:19Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
# [[#errori-noti|Errori noti]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Riccardo” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;errori-noti&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Errori noti ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15045</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15045"/>
		<updated>2026-09-10T12:32:22Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Riccardo” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15044</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15044"/>
		<updated>2026-09-10T12:31:09Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: /* CAS: lavoro condiviso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Riccardo” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
Si può lavorare su uno stesso progetto in più persone grazie alle funzioni di check in e update del CAS, per maggiore informazioni:&lt;br /&gt;
https://wiki.netsitech.com/index.php/Guida_al_lavoro_in_parallelo_su_Exstream&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15043</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15043"/>
		<updated>2026-09-10T12:29:22Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#cas-lavoro-condiviso|CAS: lavoro condiviso]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Riccardo” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cas-lavoro-condiviso&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CAS: lavoro condiviso ==&lt;br /&gt;
&lt;br /&gt;
''(sezione da completare)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15042</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15042"/>
		<updated>2026-09-10T12:27:21Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: /* Come fare il rilascio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''(se serve)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Riccardo” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
Questa parte è solo di carattere informativo per chi lavora in ufficio, i rilasci in quel caso vengono effettuati sul CAS interno&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15041</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15041"/>
		<updated>2026-09-10T12:24:53Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: /* Resource Set — DefaultNomemoduloResourceSet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''(se serve)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Riccardo” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15040</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15040"/>
		<updated>2026-09-10T12:24:03Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;wiki-streamserve-guida-operativa&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Wiki StreamServe — Guida Operativa =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Raccolta di appunti operativi su Communication Builder, StoryTeller, Control Center, Overlay Editor e procedure di rilascio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;indice&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Indice ==&lt;br /&gt;
&lt;br /&gt;
# [[#communication-builder|Communication Builder]]&lt;br /&gt;
# [[#storyteller|StoryTeller]]&lt;br /&gt;
# [[#control-center|Control Center]]&lt;br /&gt;
# [[#overlay-editor|Overlay Editor]]&lt;br /&gt;
# [[#note-varie|Note Varie]]&lt;br /&gt;
# [[#3270|3270]]&lt;br /&gt;
# [[#come-fare-il-rilascio|Come fare il rilascio]]&lt;br /&gt;
# [[#apache-tomcat|Apache Tomcat]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;communication-builder&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Communication Builder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creazione-progetto&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Creazione progetto ===&lt;br /&gt;
&lt;br /&gt;
Struttura: '''progetto → nuova cartella “Nome modulo” → new message, new runtime, new resource set'''&lt;br /&gt;
&lt;br /&gt;
Il '''nome del progetto''' è il nome del modulo presente nell’XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;message-nomemodulo_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Message — &amp;lt;code&amp;gt;nomemodulo_Msg&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Add event '''xmlin''' → &amp;lt;code&amp;gt;nomemodulo_IN&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add process '''storyteller''' → &amp;lt;code&amp;gt;nomemodulo_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;runtime-nomemodulo_run&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Runtime — &amp;lt;code&amp;gt;nomemodulo_Run&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Job &amp;lt;code&amp;gt;nomemodulo_Job&amp;lt;/code&amp;gt; → ''add runtime component'' → selezionare il msg&lt;br /&gt;
* Collegare i 2 input e &amp;lt;code&amp;gt;httpdPfOut&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nell’out togliere ''select automatically''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;resource-set-defaultnomemoduloresourceset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Resource Set — &amp;lt;code&amp;gt;DefaultNomemoduloResourceSet&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Nuova cartella con: 1. '''Sample''' 2. '''Overlay'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmlin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XMLIN ===&lt;br /&gt;
&lt;br /&gt;
* '''Resource Set → Sample''': importare tutti gli XML del modulo (''import'')&lt;br /&gt;
* '''MSG''': aprire xmlin → ''File → Open Sample'' (se non presente, aggiungere il resource set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mappare-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Mappare XML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;selection-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Selection Tool ====&lt;br /&gt;
&lt;br /&gt;
* Seleziona soltanto, non effettua azioni.&lt;br /&gt;
* Se seleziona una data o un importo già mappato dal Field Tool → ''Input Format'' → selezionare dal resource set il formattatore (tabella &amp;lt;code&amp;gt;Formats.txt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pattern-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Pattern Tool ====&lt;br /&gt;
&lt;br /&gt;
Usarlo per mappare l’attributo &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt; del modulo (cliccando sul contenuto o su &amp;lt;code&amp;gt;mod&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;field-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Field Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i dati “secchi” all’altezza in cui ci si trova.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Prime cose da mappare:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$stampa_tipo&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;abi&amp;amp;gt;&amp;lt;/code&amp;gt; → variabile &amp;lt;code&amp;gt;$sicurezza_abi&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Assegnare una variabile solo in casi specifici (es. se il tag serve per una funzione).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per mappare un singolo campo tra diversi uguali:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/s9Env/parametri/param[@nome='valoreNomeCampo']&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;block-tool&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Block Tool ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Mappa i blocchi che si ripetono.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Esempio:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;firmatari&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
  &amp;lt;cdg&amp;gt;&amp;lt;/cdg&amp;gt;&lt;br /&gt;
&amp;lt;/firmatari&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Selezionare &amp;lt;code&amp;gt;firmatari&amp;lt;/code&amp;gt; con il Block Tool, poi selezionare la cartella creata (es. &amp;lt;code&amp;gt;BlockFirmatari&amp;lt;/code&amp;gt;) e selezionare il campo che si ripete (es. &amp;lt;code&amp;gt;cdg&amp;lt;/code&amp;gt;) col Block Tool — solo perché è un blocco a sé stante.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che il blocco venga mappato (diventa '''grigio'''); se non succede, mapparlo col Field Tool all’interno dei field del blocco.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Il Block Tool può essere usato anche su campi che non si ripetono, solo per dare un ordine.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;msg-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== MSG (script) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiamare la callProc: &amp;lt;code&amp;gt;CallProc(&amp;amp;quot;nomedellOut&amp;amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare un campo non definito come variabile (vale ovunque):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;nomeCampoMappato&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Recuperare il valore di un campo in un blocco a un dato indice:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgGetValue(&amp;amp;quot;blocco:indice/campo&amp;amp;quot;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In basso a sinistra, tabella '''Note | Dependencies''': aggiungere i resource set (tasto destro → ''Add Resource Set'').&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nello script:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;// Data di oggi&lt;br /&gt;
$dataOggi = dformat(&amp;quot;dd/mm/yyyy&amp;quot;, getDate());&lt;br /&gt;
&lt;br /&gt;
// Recuperare il logo&lt;br /&gt;
$overlay_logo = cse_getoverlaylogost($sicurezza_abi);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; nel MSG, si possono cambiare i valori delle variabili tra una e l’altra.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più &amp;lt;code&amp;gt;CallProc&amp;lt;/code&amp;gt; (es. a seconda di una condizione se ne esegue una piuttosto che un’altra) e questo dà problemi, bisogna usare variabili con i nomi degli output.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== StoryTeller ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-base&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Setup base ===&lt;br /&gt;
&lt;br /&gt;
* Su '''OUT''' → ''Connector Selector → Lookup'' → &amp;lt;code&amp;gt;key = $stampa_tipo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value = TipoOutConnector&amp;lt;/code&amp;gt;&lt;br /&gt;
* Si apre con doppio click sull’OUT.&lt;br /&gt;
* '''Page → Insert → Storyframe''' (w:19, x:1, h:26, y:3)&lt;br /&gt;
* Sullo storyframe, tasto destro → ''Insert Table'' per inserire una tabella:&lt;br /&gt;
** La tabella deve avere altezza 0; le altre dimensioni si settano “a piacimento” → settare 0 da ''Layout''.&lt;br /&gt;
** '''Story''' (a destra) → ''Repeating → Repeat'': l’XPath indica il blocco che si ripete.&lt;br /&gt;
* '''TextArea → Insert → Substitution''': in ''Data XPath'' inserire il nome della variabile.&lt;br /&gt;
* Selezionando il campo → ''Format'': si può cambiare il formato di date e importi in OUT.&lt;br /&gt;
* Per il repeater in tabella: prima selezionare il repeater (''Table → Repeating → Repeat'' → blocco da ripetere), poi trascinare i campi.&lt;br /&gt;
* '''Repeater → Dati → Location''': decide se la ripetizione è verticale o orizzontale.&lt;br /&gt;
* '''Area Break''': passa a pagina successiva (tasto destro sulla document view).&lt;br /&gt;
* Una volta terminato, su Communication Builder cliccare '''EXPORT'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;funzioni-utili&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Funzioni utili ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;MsgCountID(&amp;amp;quot;nome_del_blocco&amp;amp;quot;)     // conta gli elementi di un blocco&lt;br /&gt;
StEvalXpath(&amp;amp;quot;nomecampo&amp;amp;quot;)          // prende il valore di nomecampo nel repeater&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;StEvalXpath(&amp;amp;quot;/data/message/Block_SOTTOSCR/CODFISC[&amp;amp;quot;+$prog+&amp;amp;quot;]&amp;amp;quot;);&lt;br /&gt;
// recupera il campo CODFISC all'indice $prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+F&amp;lt;/code&amp;gt; → apre la ricerca (font, variabili, …)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fragment-overlay-logo&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Fragment / Overlay / Logo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Page → Insert → New Fragment → Content Dependent''' → ''Edit Fragment'' → ''Fragment View'' → ''Insert → New Fragment → Overlay'' (w:11,99 h:4) → ''Fragment''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Fragment URI''' → in ''Modification'' mettere &amp;lt;code&amp;gt;$overlay_logo&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Chiudere la Fragment Page → recuperare il logo nel MSG:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$overlay_logo = cse_getoverlaylogopers($sicurezza_abi);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per numero di pagina e footer (sempre dal fragment creato): in fondo creare una tabella, poi 2 substitution:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$pg = page();&lt;br /&gt;
$pgS = pages();&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;punto-firma&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Punto firma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$firma = &amp;amp;quot;Firma &amp;amp;quot; + StEvalXpath(&amp;amp;quot;cdg&amp;amp;quot;) + &amp;amp;quot; con Tablet ___________________________ &amp;amp;quot; + &amp;amp;quot;progressivo&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Il punto firma deve essere di colore '''bianco non trasparente'''.&lt;br /&gt;
* Il font del punto firma deve essere massimo '''6''' di grandezza.&lt;br /&gt;
* Inserire i nomi dei firmatari nei punti firma.&lt;br /&gt;
* Gli importi hanno '''2 cifre decimali''' e sono allineati a '''destra'''.&lt;br /&gt;
* Si possono creare story per gli elementi che si ripetono.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;repeater&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Repeater ===&lt;br /&gt;
&lt;br /&gt;
* Su '''Repeater Filter XPath''' si può filtrare mettendo &amp;lt;code&amp;gt;nome_campo = &amp;amp;quot;value&amp;amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Su XPath si può mettere un filtro tra quadre: &amp;lt;code&amp;gt;/BLOCK[nome_campo = 'valore']&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;position() = 1&amp;lt;/code&amp;gt; → prende solo il primo valore (al netto di un eventuale filtro già presente nell’XPath).&lt;br /&gt;
* '''Sorting Criteria → XPath''': setta il campo per il sorting (controllare che dia solo il percorso relativo del campo, non tutto).&lt;br /&gt;
* Se due blocchi hanno una '''FK''' (foreign key) in comune → si può fare un repeater dentro l’altro e confrontare la FK, in modo da stampare solo i valori corrispondenti, usando il filtro XPath.&lt;br /&gt;
* &amp;lt;code&amp;gt;skip()&amp;lt;/code&amp;gt; salta il dato nel ciclo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;control-center&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Control Center ==&lt;br /&gt;
&lt;br /&gt;
Per stampare localmente il modulo su cui si sta lavorando si usa il '''Control Center''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Generare l’export da Communication Builder.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;''Export → Export From File''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Controllare che nell’XML il campo &amp;lt;code&amp;gt;&amp;amp;lt;tipo&amp;amp;gt;&amp;lt;/code&amp;gt; sia valorizzato a &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Una volta avviato, mettere l’XML in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\spool&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nella cartella di '''out''' si trovano i PDF.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se il risultato va in ''undeliverable'', probabilmente ci si è scordati di impostare &amp;lt;code&amp;gt;FILEPDF&amp;lt;/code&amp;gt; nell’XML — il PDF si trova comunque nella cartella &amp;lt;code&amp;gt;undeliverable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\ManagementGateway\16.6\root\applications\Riccardo\Production\exported_configurations&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;si trovano i file di Run; se ci sono errori nel runtime si vedono lì.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per aggiornare il deploy in caso di modifiche: '''“Riccardo” → Redeploy'''.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Nelle commit inserire: &amp;lt;code&amp;gt;&amp;amp;quot;descrizione&amp;amp;quot; (modulo) [ticket_jira]&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;overlay-editor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Overlay Editor ==&lt;br /&gt;
&lt;br /&gt;
* Converte PDF in '''LXF'''.&lt;br /&gt;
* '''Import del PDF''': trascinare il PDF, oppure ''File → Open → …''&lt;br /&gt;
* Controllare che il font sia '''Arial''' o '''Arial Narrow'''; volendo si può aprire l’LXF con Notepad e sostituire in blocco tutti i font diversi da Arial.&lt;br /&gt;
* &amp;lt;code&amp;gt;ALT + &amp;amp;quot;+&amp;amp;quot;&amp;lt;/code&amp;gt; oppure ''Object → Arrange → Consolidate'': consolida le caselle di testo, da fare riga per riga selezionando la riga intera.&lt;br /&gt;
* Da Communication Builder importare l’overlay (LXF necessario) nelle risorse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;da-storyteller&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Da StoryTeller ===&lt;br /&gt;
&lt;br /&gt;
* '''Overlay → Fragment URI''' → selezionare l’LXF dal resource set del modulo.&lt;br /&gt;
* Per aggiungere altre pagine dell’LXF: ''Add New Page'' → selezionare la pagina → copiare l’overlay dalla prima → (dalle proprietà) &amp;lt;code&amp;gt;Page ID = numero della pagina&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Aggiungere comunque un content dependent per la numerazione delle pagine, e poi toglierla dal PDF dell’overlay.&lt;br /&gt;
* Per inserire i campi si usano i '''Text Area''', non le tabelle.&lt;br /&gt;
* Durante il mapping, assegnare ciascun campo a una variabile: ''Tools → Event Option → Create Field Variable''.&lt;br /&gt;
* Non serve la story.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;altre-note&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Altre note ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se si fanno modifiche all’LXF dopo averlo importato: da '''Resource''' → ''Update From File'' (selezionando l’LXF stesso), poi chiudere e riaprire StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Dalla barra laterale è possibile creare riquadri.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Se ci sono più campi che andrebbero in un repeater (uso delle tabelle sconsigliato), si possono creare variabili nel MSG per ogni campo della lista:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$nome_Campo = MsgGetValue(&amp;amp;quot;Blocco/posizione/nomeCampo&amp;amp;quot;);&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Si possono aprire due PDF nella stessa finestra di Overlay Editor per fare copia/incolla.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;'''Form → Form Info → Fonts''': cambiare un font ad Arial. Aprendo l’LXF con Notepad si cambiano i font da lì: impostare &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;; il &amp;lt;code&amp;gt;charset=&amp;amp;quot;symbol&amp;amp;quot;&amp;lt;/code&amp;gt; va cancellato e sostituito con &amp;lt;code&amp;gt;name=&amp;amp;quot;Arial&amp;amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Per cancellare pagine: ''Page → Delete'' → intervallo delle pagine da cancellare (“prima pagina - ultima pagina”).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Cancellare il numero delle pagine dell’LXF e impostarne uno coerente da StoryTeller.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;note-varie&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Note Varie ==&lt;br /&gt;
&lt;br /&gt;
* '''File Transfer''' da SiWeb di Valid per fare il rilascio (aprire il SiWeb della banca) → allegare l’export.&lt;br /&gt;
** Codice: &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
** Se consortile, il codice è sempre &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Se da StoryTeller non si riescono a passare i campi mappati nel MSG: '''File → Data → Switch to Message'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3270 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; = valid, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; = prod + &amp;lt;code&amp;gt;&amp;amp;quot;ics&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; = INVIO&lt;br /&gt;
* Da terminale 3270 si possono cercare i servizi per le relative ABI: &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; sul terminale per cercarle.&lt;br /&gt;
* &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → ''logoff'' per uscire.&lt;br /&gt;
* Per cambiare banca: tasto &amp;lt;code&amp;gt;pausa&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;SRAM ABI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;come-fare-il-rilascio&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Come fare il rilascio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;siweb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== SiWeb ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Selezionare '''File Transfer''' (&amp;lt;code&amp;gt;BAL0FTRA&amp;lt;/code&amp;gt;)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Inserire il codice:&amp;lt;/p&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo&lt;br /&gt;
! Codice&lt;br /&gt;
|-&lt;br /&gt;
| Consortile&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CSEE16&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Banca&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;quot;S9VE&amp;amp;quot; + NUMERO_VERSIONE + ULTIMA_LETTERA_DEL_SERVIZIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| KIID&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARKI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Allegati&lt;br /&gt;
| &amp;lt;code&amp;gt;S9CARAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Trasmissione: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Allegato: inserire il file ZIP per gli allegati &amp;lt;code&amp;gt;.lxf&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Altri casi: inserire l’export&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Sovrascrivi e conferma&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;section-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3270 ===&lt;br /&gt;
&lt;br /&gt;
# Accedere all’ambiente su cui rilasciare&lt;br /&gt;
# Accedere&lt;br /&gt;
# &amp;lt;code&amp;gt;S9RS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CNTRL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; sulla nostra export → aggiungere una descrizione (con &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ci si sposta) → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; per tornare alla home&lt;br /&gt;
# &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; (se consortile) o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; (per gli altri)&lt;br /&gt;
# Su timestamp → &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; → selezionare la nostra export&lt;br /&gt;
# Su codice URL → cercare il nostro servizio → &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; su &amp;lt;code&amp;gt;CSEE16&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;INSE16&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; attiva → &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; autorizzazione finale → &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; per refresh e controllare che non vada in errore&lt;br /&gt;
# Per gli allegati: &amp;lt;code&amp;gt;S9JS&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;CARAL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; → (&amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt;) → &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;versionamento&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Versionamento ===&lt;br /&gt;
&lt;br /&gt;
Da Communication Builder:&lt;br /&gt;
&lt;br /&gt;
# '''Update Release''' (icona con le 2 frecce verdi) → per controllare le modifiche ''(facoltativo)''&lt;br /&gt;
# '''Crea Release''':&lt;br /&gt;
#* '''Label''': &amp;lt;code&amp;gt;&amp;amp;quot;v&amp;amp;quot; + anno + mese + giorno + &amp;amp;quot;_&amp;amp;quot; + ambiente&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* '''Description''': descrizione della modifica + &amp;lt;code&amp;gt;(modulo) [ticket di riferimento]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rilascio-interno&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Rilascio interno ===&lt;br /&gt;
&lt;br /&gt;
* '''Nome''': &amp;lt;code&amp;gt;&amp;amp;quot;V&amp;amp;quot; + Data_oggi&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Descrizione''': ticket&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;apache-tomcat&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Apache Tomcat ==&lt;br /&gt;
&lt;br /&gt;
* '''Apache Tomcat 8.5 MrB''' → attivarlo per usare StreamServe.&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15039</id>
		<title>Exsteram</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Exsteram&amp;diff=15039"/>
		<updated>2026-09-10T12:23:08Z</updated>

		<summary type="html">&lt;p&gt;Cavazza: Creata pagina vuota&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cavazza</name></author>
		
	</entry>
</feed>