| IntroduzioneElastico Bridge è nato per facilitare l'integrazione e l'utilizzo dei dati del database di Elastico 2004 da parte di applicazioni sviluppate da terze parti. Quando è in esecuzione Elastico Bridge crea un vero e proprio ponte tra il database di Elastico 2004 e l'applicazione client, la quale tramite una connessione TCP/IP e utilizzando il protocollo di comunicazione di Elastico Bridge, può inviare uno o più comandi ad Elastico Bridge il quale provvederà ad eseguire i comandi e restituire i risultati utilizzando la stessa connessione TCP/IP. Configurazione e avvioNormalmente non è necessario configurare Elastico Bridge in quanto gli unici due valori che è possibile impostare, e cioè l'indirizzo IP e in  numero di porta del server vengono già impostati su valori predefiniti automaticanente.In caso di necessità è comunque possibile modificarli ed Elastico Bridge memorizzarà l'ultima impostazione usata per riproporla come predefinita nelle esecuzioni successive. Una volta impostati l'indirizzo IP e la porta è sufficiente cliccare sul tasto Avvia server ed Elastico Bridge sarà pronto per ricevere le richiesta da parte del client. Protocollo di comunicazioneTutte le comunicazioni tra Elastico Bridge e le applicazioni client sono suddivise in pacchetti. Un pacchetto è un blocco di dati formato da 4 bytes di intestazione che contengono la lunghezza dei dati contenuti nel pacchetto. I quatto bytes di intestazione devone essere codificati secondo la convenzione Little Endian. Nonostante il valore massimo rappresentabile con quattro bytes sia 0xFFFFFFFFla lunghezza massima del pacchetto non può superare il valore0x07FFFFFF. Elastico Bridge è in grado di accettare solo richieste composte da un singolo pacchetto, ma può inviare al client risposte composte da un numero illimitato di pacchetti.Un pacchetto contenente una richiesta da parte del client è sempre composto da 4 bytes Little Endian contenenti l'identificativo del comando da eseguire e da un numero variabile di bytes che dipende dal tipo di comando.
 I comandi attualmente riconosciuti da Elastico Bridge sono: BRIDGE_CMD_SETCURAZI (0x00000001)
Il comando BRIDGE_CMD_SETCURAZIseleziona l'azienda, e quindi il database, su cui verranno eseguiti tutti i comandi successivi.Il server risponde a questo comando inviando un pacchetto di un byte che può valere
 0x00se l'azienda è stata aperta correttamente, oppure0xFFse si è verificato un errore. In questo caso il server invierà un ulteriore pacchetto con il codice e la descrizione dell'errore separati da una virgola. Esempio di comando BRIDGE_CMD_SETCURAZI06 00 00 00                                           Lunghezza pacchettoRisposta del server01 00 00 00                                           BRIDGE_CMD_SETCURAZI
 44 4D                                                 DM
 
 
 01 00 00 00                                           Lunghezza pacchetto00                                                    Ok
 
 BRIDGE_CMD_QUERY (0x00000002)
Il comando BRIDGE_CMD_QUERYpermette di eseguire query che possono restituire un numero arbitrario di records, composti da un numero arbitrario di colonne.Il protocollo prevede che la risposta sia articolata nel seguente modo:
 Per prima cosa il server risponde con un pacchetto di un byte che può contenere
 0xFFin caso di errore, oppure un numero compreso tra0x01e0xFEche indica il numero di colonne di cui sono composti i records.Nel primo caso il server invierà solamente un altro pacchetto con il codice e la descrizione dell'errore separati da virgola, altrimenti il server invierà una prima serie di pacchetti con le le informazioni sulle colonne, utilizzando un pacchetto per ogni colonna. Le informazioni su una colonna sono rappresentate da una serie di valori separati da virgola, secondo il seguente formato:
 
 
 nome_tabella,nome_campo,tipo_dati,dimensione,attributi
 Una volta inviate le informazioni sui campi il server invierà i dati veri e propri utilizzando un pacchetto per ogni colonna. Il compito di suddividere questi dati in records è affidato al client, il quale deve utilizzare il numero di campi per stabilire quando finisce un record e ne inizia un altro.
 Nel caso di campi con valore NULL verrà inviato un pacchetto di un byte con valore
 0x00. I valori numerici sia interi che decimali verranno inviati come stringa con il carattere punto usato come separatore per i decimali.La fine dei dati viene segnalata con un pacchetto vuoto.
 Esempio di comando BRIDGE_CMD_QUERY28 00 00 00                                           Lunghezza pacchettoRisposta del server02 00 00 00                                           BRIDGE_CMD_QUERY
 73 65 6c 65 63 74 20 65 6c 5f 63 6f 64 61 72 74 2c 65 select el_codart,e
 6c 5f 64 65 73 63 20 66 72 6f 6d 20 61 72 74 69 63 6f l_desc from artico
 
 
 Pacchetto 1 - Numero di colonne 01 00 00 00                                           Lunghezza pacchetto02                                                    Numero di colonne
 
 
 Pacchetto 2 - Informazioni colonna 1 18 00 00 00                                           Lunghezza pacchetto61 72 74 69 63 6f 2c 65 6c 5f 63 6f 64 61 72 74 2c 31 artico,el_codart,1
 30 2c 32 30 2c 30                                     0,20,0
 
 
 Pacchetto 3 - Informazioni colonna 2 16 00 00 00                                           Lunghezza pacchetto61 72 74 69 63 6f 2c 65 6c 5f 64 65 73 63 2c 31 30 2c artico,el_desc,10
 34 30 2c 30                                           ,40,0
 
 
 Pacchetto 4 - Record 1 - Colonna 1 04 00 00 00                                           Lunghezza pacchetto30 30 30 31                                           0001
 
 
 Pacchetto 5 - Record 1 - Colonna 2 12 00 00 00                                           Lunghezza pacchetto4f 4c 49 56 45 54 54 49 20 50 48 49 4c 4f 53 20 33 33 OLIVETTI PHILOS 33
 
 
 Pacchetto 6 - Record 2 - Colonna 1 04 00 00 00                                           Lunghezza pacchetto30 30 32 33                                           0023
 
 
 Pacchetto 7 - Record 2 - Colonna 2 15 00 00 00                                           Lunghezza pacchetto43 52 45 4d 41 20 4e 49 4f 53 4f 4d 45 20 4c 41 4e 43 CREMA NIOSOME LANC
 4f 4d 45                                              OME
 
 
 Pacchetto 8 - Fine dei dati 00 00 00 00                                           Pacchetto vuoto
 BRIDGE_CMD_EXECUTE (0x00000003)
Il comando BRIDGE_CMD_EXECUTEpermette di eseguire una query di insermento di un nuovo record o di aggiornamento o cancellazione di record esistenti.Il server risponde a questo comando inviando un pacchetto di un byte che può valere
 0x00se l'istruzione è stata eseguita correttamente, oppure0xFFse si è verificato un errore. In questo caso il server invierà un ulteriore pacchetto con il codice e la descrizione dell'errore separati da una virgola. Esempio di comando BRIDGE_CMD_EXECUTE00 00 00 16                                           Lunghezza pacchettoRisposta del server00 00 00 03                                           BRIDGE_CMD_EXECUTE
 64 65 6c 65 74 65 20 66 72 6f 6d 20 61 72 74 69 63 6f delete from artico
 
 01 00 00 00                                           Lunghezza pacchetto00                                                    Ok
 
 BRIDGE_CMD_GET_IMAGE (0x00000007)(dalla versione 1.1.0)
Il comando BRIDGE_CMD_GET_IMAGEpermette di scaricare le immagini di: ArticoliGruppi articoliAgentiLogo dell'azienda
 
 La richiesta dell'immagine deve essere effettuata secondo il seguente formato:
 
 tipo_archivio,codice,formato_immagine[,dimensione_massima] Il campo tipo_archiviopuò assumere uno dei seguenti valori: | Valore | Immagine | 
|---|
 | ART | Scarica l'immagine associata ad un Articolo di magazzino |  | GRP | Scarica l'immagine associata ad un Gruppo articoli |  | AGE | Scarica l'immagine associata ad un Agente |  | AZI | Scarica il logo dell'azienda | 
Il campo codicedeve contenere il codice interno dell'articolo,il codice del gruppo o il codice dell'agente, a seconda del contenuto del campotipo_archivio.Nel caso del logo dell'azienda questo parametro verrà ignorato. Il campo formato_immaginepuò assumere uno dei seguenti valori: | Valore | Descrizione | 
|---|
 | JPG | Scarica l'immagine in formato jpeg |  | BMP | Scarica l'immagine in formato bitmap | 
Il campo dimensione_massimaindica al server che l'immagine deve essere ridimensionata matenendo le proporzioni e impostando il lato più lungo dell'immagine pari al numero di pixel indicati nel campo.Questo campo è opzionale.
 Il protocollo prevede che la risposta sia articolata nel seguente modo:Per prima cosa il server risponde con un pacchetto di un byte che può contenere
 0xFFin caso di errore, oppure0x00se l'immagine è stata trovata e sta per essere inviata.Quindi viene inviato un pacchetto con il nome dell'immagine e infine un pacchetto con l'immagine vera e propria.
 Esempio di comando BRIDGE_CMD_GET_IMAGE0F 00 00 00                                           Lunghezza pacchettoRisposta del server07 00 00 00                                           BRIDGE_CMD_GET_IMAGE
 41 52 54 2c 31 2c 6a 70 67 2c 30                      ART,1,jpg,64
 
 
 Pacchetto 1 - Risultato 01 00 00 00                                           Lunghezza pacchetto00                                                    Ok
 
 
 Pacchetto 2 - Nome del file 0C 00 00 00                                           Lunghezza pacchetto32 34 38 30 31 31 36 34 2e 6a 70 67                   24801164.jpg
 
 
 Pacchetto 3 - Immagine A7 24 00 00                                           Lunghezza pacchettoxx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx Dati immagine
 
 
 BRIDGE_CMD_GET_ATTACHMENT (0x00000009)(dalla versione 1.1.0)
Il comando BRIDGE_CMD_GET_ATTACHMENT permette di scaricare gli allegati collegati a: Articoli di magazzinoRegistrazioni di prima notaOrdini clientiPreventivi clientiOrdini fornitoriDocumenti di venditaClientiFornitoriDocumenti di produzioneBilancio CEE
 Ulteriori informazioni sugli allegati
 La richiesta dell'allegato deve essere effettuata secondo il seguente formato:
 
 tipo_archivio,codice,nome_file Il campo tipo_archiviopuò assumere uno dei seguenti valori: | Valore | Descrizione | 
|---|
 | ARTICO | Scarica un allegato associato ad un Articolo di magazzino |  | DATREG | Scarica un allegato associato ad una Registrazione di prima nota |  | ORCLIT | Scarica un allegato associato ad un Ordine cliente |  | ORCPRE | Scarica un allegato associato ad un Preventivo cliente |  | ORDFOT | Scarica un allegato associato ad un Ordine a fornitore |  | DOCVEN | Scarica un allegato associato ad un Documento di vendita |  | PRODTS | Scarica un allegato associato ad un Documento di produzione |  | CLIENT | Scarica un allegato associato ad un Cliente |  | FORNIT | Scarica un allegato associato ad un Fornitore |  | BILCEE | Scarica un allegato associato ad un Bilancio CEE | 
Il campo codicedeve contenere il codice interno dell'articolo,documento, ecc.a seconda del contenuto del campotipo_archivio. Il campo nome_filedeve contenere il nome dell'allegato così come compare nella gestione Allegati di Elastico 2004. Il protocollo prevede che la risposta sia articolata nel seguente modo:Per prima cosa il server risponde con un pacchetto di un byte che può contenere
 0xFFin caso di errore, oppure0x00se l'allegato è stata trovato e sta per essere inviato.Quindi vengono inviati i seguenti pacchetti:
 Nome dell'allegato (senza il percorso)TipoCodiceDescrizioneNumero di riga dell'allegato in Elastico 2004Contenuto del file
 
 Esempio di comando BRIDGE_CMD_GET_ATTACHMENT19 00 00 00                                           Lunghezza pacchettoRisposta del server07 00 00 00                                           BRIDGE_CMD_GET_IMAGE
 41 52 54 49 43 4f 2c 31 2c 64 65 70 6c 69 61 6e 74 2e ARTICO,1,depliant.
 70 64 66                                              pdf
 
 
 Pacchetto 1 - Risultato 01 00 00 00                                           Lunghezza pacchetto00                                                    Ok
 
 
 Pacchetto 2 - Nome del file 0C 00 00 00                                           Lunghezza pacchetto64 65 70 6c 69 61 6e 74 2e 70 64 66                   depliant.pdf
 
 
 Pacchetto 3 - Tipo 06 00 00 00                                           Lunghezza pacchetto41 52 54 49 43 4f                                     ARTICO
 
 
 Pacchetto 4 - Codice 01 00 00 00                                           Lunghezza pacchetto31                                                    1
 
 
 Pacchetto 5 - Descrizione 14 00 00 00                                           Lunghezza pacchetto44 65 70 6c 69 61 6e 74 20 69 6e 66 6f 72 6d 61 74 69 Depliant informati
 76 6f                                                 vo
 
 
 Pacchetto 6 - Numero riga 01 00 00 00                                           Lunghezza pacchetto31                                                    1
 
 
 Pacchetto 3 - Contenuto del file A7 24 00 00                                           Lunghezza pacchettoxx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx Contenuto del file
 
 
 Si ricorda che per ottenere una lista di tuttli gli allegati è necessario eseguire una query sulla tabella FILEXT contenuta nel database di una azienda di Elastico 2004. BRIDGE_CMD_SERVER_INFO (0x00000008)(dalla versione 1.1.0)
Il comando BRIDGE_CMD_SERVER_INFOpuò essere utilizzato per ottenere informazioni sul server.Il server risponde a questo comando inviando un pacchetto di un byte che può valere
 0x00se le informazioni sono disponibile e stanno per essere inviate, oppure0xFFse si è verificato un errore. In questo caso il server invierà un ulteriore pacchetto con il codice e la descrizione dell'errore separati da una virgola. In caso di successo le informazioni saranno inviate in pacchetti separati.Attualmente le informazioni inviate dal server sono: Versione del server di Elastico Bridge nel formato xx.yy.zzVersione di Elastico 2004 nel formato xx.yy.zzLa data e l'ora del server nel formato dd/mm/yyyy hh:mm:ss
 
 Esempio di comando BRIDGE_CMD_SERVER_INFO00 00 00 04                                           Lunghezza pacchettoRisposta del server00 00 00 04                                           BRIDGE_CMD_BEGINTRANS
 
 Pacchetto 1 - Versione Elastico Bridge 05 00 00 00                                           Lunghezza pacchetto31 2e 31 2e 30                                        1.1.0
 
 
 Pacchetto 2 - Versione Elastico 2004 16 00 00 00                                           Lunghezza pacchetto36 2e 32 2e 31                                        6.2.1
 
 
 Pacchetto 3 - Data e ora del server 13 00 00 00                                           Lunghezza pacchetto32 34 2f 31 31 2f 32 30 30 35 20 31 37 3a 33 32 2e 32 24/11/2005 17:32.2
 33                                                    3
 
 
 BRIDGE_CMD_BEGINTRANS (0x00000004)
Il comando BRIDGE_CMD_BEGINTRANSavvia una transazione sul database selezionato.Il server risponde a questo comando inviando un pacchetto di un byte che può valere
 0x00se la transazione è stata aperta correttamente, oppure0xFFse si è verificato un errore. In questo caso il server invierà un ulteriore pacchetto con il codice e la descrizione dell'errore separati da una virgola. Esempio di comando BRIDGE_CMD_BEGINTRANS00 00 00 04                                           Lunghezza pacchettoRisposta del server00 00 00 04                                           BRIDGE_CMD_BEGINTRANS
 
 01 00 00 00                                           Lunghezza pacchetto00                                                    Ok
 
 BRIDGE_CMD_COMMITTRANS (0x00000005)
Il comando BRIDGE_CMD_COMMITTRANSconferma tutte le modifiche effettuate dopo l'ultimo comandoBRIDGE_CMD_BEGINTRANSIl server risponde a questo comando inviando un pacchetto di un byte che può valere
 0x00se la transazione è stata confermata correttamente, oppure0xFFse si è verificato un errore. In questo caso il server invierà un ulteriore pacchetto con il codice e la descrizione dell'errore separati da una virgola. Esempio di comando BRIDGE_CMD_COMMITTRANS00 00 00 04                                           Lunghezza pacchettoRisposta del server00 00 00 05                                           BRIDGE_CMD_COMMITTRANS
 
 01 00 00 00                                           Lunghezza pacchetto00                                                    Ok
 
 BRIDGE_CMD_ROLLBACKTRANS (0x00000006)
Il comando BRIDGE_CMD_ROLLBACKTRANSannulla tutte le modifiche effettuate dopo l'ultimo comandoBRIDGE_CMD_BEGINTRANSIl server risponde a questo comando inviando un pacchetto di un byte che può valere
 0x00se la transazione è stata annullata correttamente, oppure0xFFse si è verificato un errore. In questo caso il server invierà un ulteriore pacchetto con il codice e la descrizione dell'errore separati da una virgola. Esempio di comando BRIDGE_CMD_ROLLBACKTRANS00 00 00 04                                           Lunghezza pacchettoRisposta del server00 00 00 06                                           BRIDGE_CMD_ROLLBACKTRANS
 
 01 00 00 00                                           Lunghezza pacchetto00                                                    Ok
 
 BRIDGE_CMD_DISCONNECT (0x00FFFFFF)
Il comando BRIDGE_CMD_DISCONNECTchiude la connessioneQuesto comando non prevede nessuna risposta da parte del server.
 Esempio di comando BRIDGE_CMD_DISCONNECT00 00 00 04                                           Lunghezza pacchetto00 FF FF FF                                           BRIDGE_CMD_DISCONNECT
 
 LimitazioniElastico Bridge non può gestire connessioni provenienti da più client contemporaneamente, tuttavia, anche questo limite non dovrebbe costituire un problema, nel caso si abbia la necessità di più connessioni contemporanee è possibile lanciare più istanze di Elastico Bridge e assegnare una porta diversa per ognuna. Downloads |