Accesso al Calendario Exchange in Node.js via Connect Bridge

Accesso al calendario Exchange in Node.js tramite Connect Bridge

Ana NetoConnectors, Technical Leave a Comment

Microsoft dispone sempre di API e SDK per i propri sistemi facilmente utilizzabili nei linguaggi .NET.

L'accesso a tali sistemi basati su Microsoft da applicazioni Node.js, specialmente quelle non ospitate su una piattaforma Microsoft Windows, può essere più complicato.

So che potreste obiettare, dicendo che di solito ci sono servizi web pubblicati insieme alle API e agli SDK, ma a cuor leggero, siete pronti a usarli subito in modo veloce ed efficiente? Scommetto che vi aspettate un certo ritardo nella curva di apprendimento.

Non sarebbe più facile se una piattaforma di integrazione vi permettesse di creare, recuperare, aggiornare e cancellare i dati nei principali sistemi aziendali attraverso l'esecuzione di semplici istruzioni SQL? All'inizio potrebbe sembrare pericoloso - queste operazioni CRUD non minaccerebbero l'integrità dei dati?

Il fatto è che questa possibilità esiste - utilizzando il metodo Connect Bridge che userò in questo tutorial da Connecting Software. Si tratta di uno strumento commerciale, ma è possibile accedere alla sua versione di prova gratuita. Perché non lo provate?

Per iniziare

Richiedi il tuo trial Connect Bridge, scarica e attiva la tua licenza seguendo questa procedura video tutorial.

Avremo anche bisogno di una macchina con Node.js installato. Dimostreremo su una macchina Linux con una distribuzione CentOS 7.x.

Preparare l'ambiente

Presumo che abbiate scelto la vostra distribuzione Linux preferita. Il primo passo è installare Node.js nel vostro ambiente. Su CentOS, ho usato il mio gestore di pacchetti preferito, Yum. Se non siete sicuri di come installare Node.js nel vostro sistema operativo, consultate il file pagina delle guide all'installazione di node.js.

Ora dovrete collegarvi al vostro sistema di destinazione, per esempio, Microsoft Exchange. Per questo, eseguite Connect Bridge Management Studio e  

  1. Aggiungi un account per Exchange (Accounts - Add account). Per aggiungere l'account, devi selezionare il connettore Microsoft Exchange e utilizzare le tue credenziali di accesso Exchange 
  2. Aprite l'opzione New Query e poi il Connection Browser. Trova il connettore Exchange ed espandilo fino a che non vedi DefaultConnection. Fai clic destro su DefaultConnection e scegli Get Connection string. Copiate la stringa di connessione ODBC, poiché ne avrete bisogno per passarla allo script. 
  3. Usa l'opzione Nuova query per provare una query che acceda a ciò che ti serve in Exchange. PNota che anche se sembra che stiamo usando direttamente un database, non è così. Connect Bridge sta accedendo all'API e poi la presenta come se fosse un database. Una volta che avete la vostra query, copiatela, poiché dovrete passarla allo script. 

La soluzione


Aggiorna: Il servizio Connect Bridge Playground di cui sotto non è più disponibile. Questo articolo sarà presto aggiornato di conseguenza.

Nel frattempo, se volete utilizzare Connect Bridge per i vostri progetti di integrazione di Node.js, non esitate a lasciare un commento qui sotto o a mettervi direttamente in contatto con il nostro esperti.


La prodedura per questa soluzione è la seguente:

  1. Creare una cartella per la soluzione. L'ho chiamata 'nodearticle' per ovvie ragioni.
  2. Creare un file manifesto per l'applicazione nodejs. Il nome del file è package.json. Trovare il contenuto del file qui sotto.
{
  "nome": "nodejsExchangeDDemo",
  "versione": "0.0.1",
  "descrizione": "una dimostrazione di accesso al calendario di escrescenza nei nodej",
  "principale": "app.js",
  "autore": {
    "nome": "",
    "e-mail": ""
  },
  "dipendenze": {
  }
}

3. Per questa azione abbiamo bisogno che la macchina sia collegata a Internet. Apri il tuo guscio preferito. Ed eseguire il seguente comando per installare un modulo di dipendenza per la nostra applicazione chiamato connect-bridge-nodo.

npm installare collegamento-ponte-ponte-nodo -salvare

Dopo questa azione la dipendenza da connessione ponte-ponte-nodo dovrebbe apparire nel nostro file manifesto package.json.
4. Nel prossimo passo sfrutteremo un po' il codice sorgente stesso del modulo connect-bridge-nodo (scritto da me). Copieremo il file test.js dal file github repository del modulo. e modificarlo in modo che assomigli a questo (spiegheremo il codice nei commenti del codice stesso):

//richiedere la dipendenza dal modulo e passare i parametri di connessione
// per ottenere le credenziali di collegamento ponte-ponte-nodo si prega di seguire
// il capitolo "Come faccio a scoprire le mie credenziali?
//questo articolo
var cbnode = require('connect-bridge-node')('pg.connecting-software.com', 4433, 'michalhainc0036',
					 '29e)5d2bc9044e2c42878A4A63BC6777', 'EX2010_PLAYGROUND_michalhainc0036');
 
//gestore degli errori per le operazioni di collegamento a ponte
funzione onError(err) {
    console.error(err);
}
 
//connected event handler - eseguito quando è stato collegato con successo
// a un'integrazione Connect Bridge
// istanza del server
funzione suConnected() {
    console.log ('Connesso a Connect Bridge');
    console.log('Inserimento record a Exchange Calendario...');
    //a dopo una connessione di successo
	//creare un appuntamento e chiamare l'onRecordInserted
	//callback dopo
    cbnode.execute("INSERIRE INTO [Appuntamento] (Oggetto, StartDate, EndDate, Località) "+
				   "VALORI (?, ?, ?, ?, ?); ",
				   //parametri per la dichiarazione di inserimento
				   ['il mio appuntamento', '2015-10-11 10:00', '2015-10-11 10:00', 'Bratislava' ],
				   onRecordInserted, onError);
}
 
funzione suRecordInserted() {
    //primi 100 appuntamenti dal calendario Exchange
    //f dal nostro conto del parco giochi CB
    // recupereremo solo un certo campo
    console.log ("Recuperare i primi 100 appuntamenti dal calendario Exchange...")
    cbnode.execute("SELEZIONA TOP 100 Oggetto, Posizione, StartDate, EndDate "+
					"DA [Appuntamento];",
					// array di parametri vuoti
					[], onRecordsRetrieved, onError);
}
 
//disconnected event handler - eseguito quando viene scollegato con successo
//f da un'integrazione Connect Bridge
// istanza del server
funzione suDisconnected() {
    console.log ('Disconnesso');
}
 
//registrazioni ricevute event handler - eseguite quando i record di dati sono
//ricevuto da Connect Bridge per uno statement SQL eseguito in precedenza
funzione suRecordsRetrieved(risultato)
{
    console.log(risultato);
    cbnode.disconnect(onDisconnected, onError);
}
 
// iniziare la connessione al server di integrazione Connect Bridge
cbnode.connect(onConnected, onError);

5. Eseguire l'app.js tramite la riga di comando utilizzando il seguente comando


nodo app.js

6. Lo script app.js inserirà un appuntamento nel vostro calendario del CB Playground Exchange. E recupera i primi 100 appuntamenti dal vostro calendario in seguito.
7. Se tutto è andato bene, dovreste vedere la seguente uscita:

Calendario Exchange in Node.js

8. E voi-la, ci dovrebbe essere il vostro appuntamento mostrato nel Web Access Outlook del server CB Playground Exchange:

Calendario Exchange in Node.js

Come faccio a scoprire le mie credenziali?

Ecco una breve panoramica per scoprire le vostre credenziali:

Scarica il Pacchetto client Connect Bridge Playground (nella tua email di registrazione hai un hyperlink che lo indica). Se non avete ancora un account gratuito per il parco giochi, non esitate a registrarvi.
Estrarre il contenuto della confezione e trovare il file CBQueryAnalyzer.bat ed eseguirlo

Calendario Exchange in Node.js

L'applicazione Query Analyzer vi chiederà di registrare un driver ODBC (necessario solo per l'applicazione, non per il vostro progetto del nodo app.js).
Cliccare con il tasto destro del mouse sul collegamento EX2010 nel pannello di collegamento sinistro. Scegliere 'Modifica connessione'.

Calendario Exchange in Node.js

Vai alla scheda 'Avanzate' e copia le credenziali sottolineate nello script app.js tranne che del parametro della porta che dovrebbe essere nel nostro caso 4433.

Calendario Exchange in Node.js

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.