Salve,
viste le differenze tra la 0.9 e la 1.1 nella gestione degli external connector volevo porvi la seguente questione,
come si deve configurare l'external connector per gestire l'attivazione di un workflow via mail?
Dalla documentazione allegata la software degli external connector non sono riuscito a ben comprendere come completare la
configurazione vi riepilogo i passi svolti secondo il vostro Readme.txt:
1. scompattare l'archivio connectors.zip
non essendoci indicazioni sul dove l'ho scompattato nella directory webapps/cmdbuild creando un folder connectors
2. creare dentro l'inventory (ad esempio dentro OCS) le viste
necessarie per recuperare i dati estratti... un esempio di viste per
OCSInventory può essere quello inserite nel rilascio (viste.sql)
non essendo mio obiettivo utilizzare OCS ho saltato questo passo
3. andare nella cartella "xml" e modificare i seguenti file:
- configuration.xml - contiene le informazioni di configurazioni di CMDBuild e di OCSInventory
(o di qualsiasi altro tipo di inventory si voglia utilizzare)
- cmdbuild-schema.xml - deve contenere lo schema di CMDBuild delle classi interessate all'aggiornamento
- transform.xsl - contiene il mapping fra CMDBuild e OCS
ovviamente dovendo gestire la configurazione per la mail ho operato producendo i file:
(configuration.xml e transform.xls li ho recuperati modificandoli dalla versione 0.90)
Configuration.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<cmdbuild>
<ServerAddress>localhost</ServerAddress>
<Context>cmdbuild</Context>
<Port>8080</Port>
</cmdbuild>
<servermail>
<ProtocolType>POP3</ProtocolType>
<ServerAddress>pop3.dominio.it</ServerAddress>
<ServerPort>110</ServerPort>
<User>cmdb@dominio.it</User>
<Password>password</Password>
</servermail>
</configuration>
Transform.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/servermail">
<Activity>
<ActivityDescription>
<xsl:value-of select="./content"/>
</ActivityDescription>
<data>
<xsl:value-of select="./data"/>
</data>
<Utente>
<xsl:value-of select="./sender"/>
</Utente>
<ticket>
<xsl:value-of select="./subject"/>
</ticket>
</Activity>
</xsl:template>
</xsl:stylesheet>
nel quale:
ActivityDescription
data
Utente
ticket
Sono gli attributi della classe Esempio definita in Attività costruita nel CMDB che devono essere associati ai campi della mail.
Questa classe è associata al workflow che chiamo esempio e che svolge le attività rappresentate nello schema seguente:
+--------- -+ +--------+
|sendmail | |Close |-- Stop
+-----------+ +--------+
/ | /
+-------+ / +------+ /
Start -----|open tk|/ | work |/
+-------+ +-------+
Ovviamente con il connector vorrei aprire un ticket ovvero far si che il task Open tk acquisisse i dati dalla mail secondo il file di transform costruito
in merito al file cmdbuild-schema.xml ho incontrato il primo problema.
dalle vostre indicazioni il file deve contenere:
cmdbuild-schema.xml deve contenere:
- l'intestazione del file xml
- il tag CMDBUILD che conterrà tutti i tag relativi a tutte le classi
- un tag per ogni classe di cmdbuild (nell'esempio Computer e SchedaRete)
contenente il nome (non la descrizione) della classe
- per ogni classe devono esserci almeno (se non tutti) i nomi degli attributi
interessati dall'aggiornamento (anche qui, il nome non la descrizione)
- all'interno del tag col nome della classe deve essere presente il nome dei domini attivi
Il template fornito nel software è il seguente:
<?xml version="1.0"?>
<CMDBUILD>
<Client>
<Code>
</Code>
<Description>
</Description>
<GruppoLavoro>
</GruppoLavoro>
<SO>
</SO>
<RAM>
</RAM>
</Client>
</CMDBUILD>
che fa chiaramente riferimento ad OCS nel mio caso come cambierebbe il contenuto?
Se ho interpretato correttamente le indicazioni lo schema del file sarebbe
<?xml version="1.0"?>
<CMDBUILD>
<Esempio>
????
</Esempio>
</CMDBUILD>
dove Esempio è il nome del workflow?
cosa devo utilizzare al posto dei ???? le tag seguenti?
<Code>
</Code>
<Description>
</Description>
<ActivityDescription>
</ActivityDescription>
<data>
</data>
<Utente>
</Utente>
<ticket>
</ticket>
e basta, per cui il file risulterebbe essere:
<?xml version="1.0"?>
<CMDBUILD>
<Esempio>
<Code>
</Code>
<Description>
</Description>
<ActivityDescription>
</ActivityDescription>
<data>
</data>
<Utente>
</Utente>
<ticket>
</ticket>
</Esempio>
</CMDBUILD>
4. consiglierei di inserire questi file in questa gerarchia precisa di
directory che è come li utilizzo io (e che è la stessa che le ho
inviato in allegato)
ExternalConnector1.0.jar
conf > repository
> cmdbuild-schema.xml
> configuration.xml
> transform.xsl
se il folder di riferimento è quello specificato nello step 1 allora ho rispettato anche lo step 4
5. creare dentro CMDBuild un processo che supporti l'inserimento dei
dati tramite il tool externalsync. Si noti che bisogna avere il
workflow funzionante.
Un esempio semplicissimo xpdl di processo è in allegato, e funziona
solo per la classe-processo ImportOCS.
qui sorge un'altra domanda:
il processo da creare per la gestione della mail deve essere diverso da quello che vi ho rappresentato sopra?
in tal caso come faccio a far aggiornare i dati se il processo che ha il tool externalSync è diverso inoltre
quali sono i parametri da specificare per il tool externalSync, ovvero il primo parametro cosa deve contenere?
6 . eseguire la sincronizzazione digitando java -jar ExternalConnector1.0.jar {percorso xartella contenente gli xml} {nome classe processo}
Ad esempio java -jar ExternalConnector1.0.jar ./conf/ ImportOCS
ovviamente il passo 6 non è attuabile senza aver risolto i passi precedenti.
ritengo che manchi poco a permettermi di far funzionare l'external connector per la mail ma non riesco a capire cosa mi manca
vi sarei grati se poteste darmi una mano
Grazie