Salta ai contenuti. | Salta alla navigazione

Sezioni

Forum

Un luogo per gli utilizzatori di CMDBuild. Consigli e suggerimenti, modelli di integrazione e sviluppo.

Chiedi agli esperti

Richiedi il supporto e l'assistenza professionale del maintainer del progetto. Training personalizzati e sviluppo estensioni funzionali.

Azioni sul documento

Problema sincronizzazione connettore esterno

Tu sei qui: Home Supporto Forum Forum in Italiano Problema sincronizzazione connettore esterno
Vai al livello superiore

Problema sincronizzazione connettore esterno

Lasciato da Carlo il 1 settembre 2010 alle 15:8

Buongiorno,

ho configurato CMDBuild 1.2.1 e Shark per l'utilizzo dei workflow. Vorrei utilizzare i connettori esterni per l'aggiornamento e l'inserimento automatico di schede a partire da un DB PostgreSQL.

Premetto che il DB usato da CMDBuild si chiama CMDB la cui tabella da aggiornare si chiama Responsabili_RTI, il DB usato come fonte esterna di dati si chiama Staging e la vista che ho creato su quest'ultimo si chiama CMDBuild_responsabili.

Ho settato i file XML come segue:

cmdbuild-schema.xml:

<CMDBUILD>
    <Responsabili_RTI>
              <Code/>       
              <Description/>
              <E_mail/>
    </Responsabili_RTI>
</CMDBUILD>

 

configuration.xml:

<configuration>
  <cmdbuild>
    <ServerAddress>127.0.0.1</ServerAddress>
    <ServerContext>cmdbuild</ServerContext>
    <ServerPort>8080</ServerPort>
    <Username>admin</Username>
    <Password>admin</Password>
  </cmdbuild>
  <inventory>
    <DbType>postgres</DbType>
    <DbAddress>127.0.0.1</DbAddress>
    <DbPort>5432</DbPort>
    <DbName>Staging</DbName>
    <DbUser>postgres</DbUser>
    <DbPassword>admin</DbPassword>
  </inventory>
</configuration>

 

transform.xsl:

...righe lasciate così come sono nel file di esempio...

<xsl:template match="/inventory/CMDBuild_responsabili">
    <Responsabili_RTI key="Code">
      <Code>
        <xsl:value-of select="/inventory/CMDBuild_responsabili/Nome_completo"/>
      </Code>
      <Description>
        <xsl:value-of select="/inventory/CMDBuild_responsabili/Nome_completo"/>
      </Description>
      <E_mail>
        <xsl:value-of select="/inventory/CMDBuild_responsabili/Mail"/>
      </E_mail>>
    </Responsabili_RTI>
  </xsl:template>
  <xsl:template match="/CMDBUILD/Responsabili_RTI">
    <Responsabili_RTI key="Code">
      <xsl:attribute name="objid">
        <xsl:value-of select="./@objid"/>
      </xsl:attribute>
      <Code>
        <xsl:value-of select="./Code"/>
      </Code>
      <Description>
         <xsl:value-of select="./Description"/>
      </Description>
      <E_mail>
        <xsl:value-of select="./E_mail"/>
      </E_mail>
    </Responsabili_RTI>
  </xsl:template>

e lanciato la procedura di sincronizzazione descritta nel manuale: java -jar ExternalConnector1.2.1.jar ecc..

L'output su terminale ha esito positivo, senza eccezioni, tuttavia nel file di log ExternalConnector.log ottengo la seguente eccezione SQL:

>>> Program Started  - version (ExternalConnector 1.2 - 15/02/2010)<<<
Parsing XML file [./\conf\configuration.xml]
Reading the transform file.
SQLException while getting the schema of the inventory ->ERROR: relation "CMDBuild_catalog" does not exist
SQL Exception
ERROR: relation "CMDBuild_catalog" does not exist

Dove è che sbaglio?

Grazie per il supporto!

 

Carlo

 

Re: Problema sincronizzazione connettore esterno

Lasciato da Tecnoteca il 1 settembre 2010 alle 15:45

Previously Carlo wrote:

SQL Exception
ERROR: relation "CMDBuild_catalog" does not exist

 

L'errore è quello indicato, è necessario creare una vista CMDBuild_catalog che elenchi le viste presenti da cui prelevare i dati.Nello specifico, per un database postgres, dovrebbe essere:

CREATE OR REPLACE VIEW "CMDBuild_catalog"
AS select relname from pg_class
where relname like '%CMDBuild_%' and relname <> 'CMDBuild_catalog'; 

 

Saluti,
Lisa

 

 

Re: Problema sincronizzazione connettore esterno

Lasciato da Carlo il 1 settembre 2010 alle 16:25

Grazie per il prezioso e tempestivo aiuto!

 

Saluti

 

Carlo

 

Re: Problema sincronizzazione connettore esterno

Lasciato da Carlo il 1 settembre 2010 alle 16:40

Vorrei porre alla vostra attenzione che c'è un bug nel codice del connettore esterno versione 1.2 - 15/02/2010.

nel file org.cmdbuild.externalconnector.inventory.data.GetDataFromInventory.java alla riga 365 la stringa orderBy viene costruita in maniera tale che su DB Postgres genera eccezione in quanto la columnName in questo caso andrebbe posta fra doppi apici.

Spero di essere stato utile.

Saluti

Carlo

 

Re: Problema sincronizzazione connettore esterno

Lasciato da Tecnoteca il 7 settembre 2010 alle 17:36

Grazie per la segnalazione,

la correzione verrà introdotta nel prossimo rilascio.

 

Lisa

 

Sviluppato da Ploneboard
Tecnoteca

Tecnoteca ha progettato e realizzato CMDBuild ed è maintainer del progetto.

 

Per contatti:
Tecnoteca srl
Via L'Aquila 1/B
33010 Tavagnacco UD
tel. 0432.689094  
fax 0432.689572
modulo contatti

Partecipa
Twitter LinkedIn Google+ RSS YouTube SlideShare