Rilascio dei sorgenti, si cambia

Ridefinita completamente la politica distributiva dei sorgenti di Gea.Net Pro, Basic e Web.
Le novità principali riguardano l’estensione dei servizi associati alla distribuzione dei codici sorgenti dei software in oggetto.

Con l’eccezione di Gea.Net Basic il cui supporto tecnico rimane di un mese, l’assistenza è stata estesa a 2 mesi (Pro) e 3 mesi (Web), tempi normalmente richiesti per permettere agli sviluppatori di adeguare i codici standard ad un software personalizzato (rimarchiatura e interventi preliminari).
Nella maggior parte dei casi questo periodo è sufficiente per rilasciare sul mercato un nuovo software anche molto diverso da Gea.Net. Ma anche se i tempi necessari fossero maggiori, dopo questo tempo gli sviluppatori si possono considerare completamente formati ed autonomi nelle scelte.
Inoltre per tutta la durata del servizio è possibile scalare verso l’assistenza pluriennale recuperando l’intero importo pagato.

Le seconda novità è l’inserimento nel pacchetto dei servizi di una formazione iniziale di almeno 4 ore (8 per Gea.Net Web) che è il tempo minimo richiesto per potere fare una panoramica sulla struttura del progetto.
Fino ad ora la formazione era facoltativa ma personalmente ho riscontrato una notevole differenza di produttività tra chi era formato e chi non lo era. Sia detto per completezza che ritengo che le ore di formazione incluse siano il minimo indispensabile e non sarebbe male prevederne di più, ma questa rimane una scelta dello sviluppatore che potrà decidere di integrarle in qualunque momento.

Ma sicuramente la novità che sarà maggiormente apprezzata è la possibilità di richiedere l’ultima versione disponibile sia di Gea.Net Pro che di Gea.Net Web.
Fino ad ora la versione più recente veniva rilasciata solo ai partner con assistenza pluriennale ma il rapido adeguamento normativo degli ultimi anni, spesso rendeva obsoleta anche la versione appena precedente, alle volte vecchia solo di pochi mesi.
Però anche in questo caso mi sia permesso un piccolo inciso. Soprattutto per quanto riguarda Gea.Net Pro, la differenza tra i soli "Sorgenti + servizi base" e l’assistenza pluriennale PRO2 è di 1.200 Euro, ma anche senza voler considerare gli altri benefit, la seconda include 4 ore di formazione in più, 22 mesi di assistenza in più e soprattutto gli aggiornamenti dei sorgenti per due anni.
Visto la continua evoluzione delle regole fiscali che si stanno susseguendo negli ultimi tempi, quest’ultima da sola vale ampiamente la differenza di costo.

Pubblicità

Verifica Partita IVA comunitaria

La Commissione Europea mette a disposizione degli sviluppatori un servizio di verifica e controllo dell’esistenza degli operatori economici registrati presso un paese UE.
Questo permette di assicurarsi che un nuovo cliente o fornitore sia correttamente censito, evitando truffe o altri guai vendendo o comprando da aziende fantasma.
Il sistema si chiama VIES (VAT Information Exchange System – sistema di scambio di informazioni relative all’IVA).
Si tratta di uno strumento elettronico per la convalida del numero di partita IVA delle aziende registrati nell’UE per le transazioni transfrontaliere di beni e servizi.
Dal punto di vista tecnico l’interrogazione è piuttosto semplice e di seguito vediamo il codice VB.Net che restituisce le informazioni anagrafiche relative al VAT Number.
La variabile PIVA che deve essere passata alla funzione è il numero della Partita IVA con il codice dello stato che è un prefisso di due caratteri ("IT" per Italia)

 

Public ControllaPIVA_FromWebService_Dati As String = ""
Function ControllaPIVA_FromWebService(ByVal PIVA As String) As Boolean

    Try
        ControllaPIVA_FromWebService_Dati = ""

        Dim NAZIONE As String = "IT"
        NAZIONE = Mid(PIVA, 1, 2)
        PIVA = Mid(PIVA, 3)

        Dim requestUrl As String = "http://ec.europa.eu/taxation_customs/vies/services/checkVatService"
        Dim requestString As String = "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:urn=""urn:ec.europa.eu:taxud:vies:services:checkVat:types"">
<soapenv:Header/>
<soapenv:Body>
  <urn:checkVat>
     <urn:countryCode>COUNTRY</urn:countryCode>
     <urn:vatNumber>VATNUMBER</urn:vatNumber>
  </urn:checkVat>
</soapenv:Body>
</soapenv:Envelope>"
        requestString = requestString.Replace("COUNTRY", NAZIONE)
        requestString = requestString.Replace("VATNUMBER", PIVA)

        Dim wc As New System.Net.WebClient()
        wc.Headers(System.Net.HttpRequestHeader.ContentType) = "application/x-www-form-urlencoded"
        Dim HtmlResult As String = wc.UploadString(requestUrl, requestString)

        If InStr(LCase(HtmlResult), "<valid>true</valid>") > 0 Then
            Try
                Dim P1 As Integer = InStr(LCase(HtmlResult), "<name>")
                Dim P2 As Integer = InStr(LCase(HtmlResult), "</name>")
                If P1 > 0 Then
                    ControllaPIVA_FromWebService_Dati = ControllaPIVA_FromWebService_Dati + Mid(HtmlResult, P1 + 6, P2 – P1 – 6) + vbCrLf
                End If
            Catch ex As Exception
            End Try
            Try
                Dim P1 As Integer = InStr(LCase(HtmlResult), "<address>")
                Dim P2 As Integer = InStr(LCase(HtmlResult), "</address>")
                If P1 > 0 Then
                    ControllaPIVA_FromWebService_Dati = ControllaPIVA_FromWebService_Dati + Mid(HtmlResult, P1 + 9, P2 – P1 – 9) + vbCrLf
                End If
            Catch ex As Exception
            End Try

            Return True
        Else
            Return False
        End If

    Catch ex As Exception
        Return False

    End Try

End Function

La funzione interroga il servizio e se trova il codice passato restituisce i dati anagrafici che permettono di verificare l’autenticità delle informazioni in nostro possesso.
Se il servizio non trova il VAT Number, dopo avere controllato di averlo scritto correttamente (senza spazi o altri caratteri speciali), si potrebbe essere in presenza di un soggetto passivo ai fini IVA o di eccezioni che possono essere varie per i diversi stati membri.
Sulla rete queste casistiche si trovano ben documentate nei siti istituzionali dei vari paesi.
Per l’Italia si veda https://www.agenziaentrate.gov.it/wps/content/nsilib/nsi/contatta
In particolare se si è certi che la partita IVA è formalmente corretta ma non viene riconosciuta, l’attività potrebbe essere cessata o trattarsi di azienda individuale o associazione no profit.

Possiamo concludere dicendo che il mancato riscontro non è garanzia di azienda non registrata mentre è vero il contrario, ovvero che se il servizio risponde fornendo i dati anagrafici del soggetto possiamo operare tranquillamente.

Google Apis e le traduzioni automatiche

Nelle settimane scorse ho fatto un grosso lavoro per rendere Gea.Net disponibile in varie lingue. Come base di partenza ho sfruttato un servizio di Google Traduzioni che con poche righe di codice ha fatto il grosso del lavoro. Di seguito trovate le poche righe Vb.Net necessarie per consumare il servizio.

Function Traduci_DaGoogleApis(ByVal Text2Translate As String, SourceLang As String, TargetLang As String) As String

    Try
        Dim outputFile As String = "C:\TEMP\TRANSLATE_GOOGLEAPIS.TMP"
        Dim requestUrl As String = "https://translate.googleapis.com/translate_a/single?client=gtx&sl="
        requestUrl = requestUrl + SourceLang
        requestUrl = requestUrl + "&tl=" + TargetLang
        requestUrl = requestUrl + "&dt=t&q=" + Text2Translate

        Dim wc As New System.Net.WebClient()
        wc.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 " +
                                      "(KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36")
        wc.DownloadFile(requestUrl, outputFile)

       Dim TextOut as string = [TESTO RICAVATO DA OUTPUTFILE]

        Return TextOut

    Catch ex As Exception
        Return Text2Translate
    End Try

End Function

Il servizio offerto è veramente favoloso ed è gratuito però per fare un bel lavoro non bisogna accontentarsi degli automatismi.

Per quanto veloce (la risposta del servizio è veramente più che soddisfacente) per tradurre una serie di testi come possono essere quelli presenti su una schermata o su una stampa, il servizio deve essere interrogato decine o centinaia di volte e questo implica che il caricamento richieda qualche secondo, tempi non accettabili per l’utente. Le soluzioni possono essere diverse ma in Gea.Net abbiamo scelto di richiedere la traduzione di un testo solo se non già precedentemente tradotto, salvando in locale la traduzione. Questo ci ha permesso di rispondere in modo soddisfacente anche al problema che segue.

Gli algoritmi di traduzione automatica si stanno affinando e pur avendo già raggiunto un buon livello di affidabilità, non sono ancora in grado di competere con la traduzione svolta da un umano. Salvare il testo tradotto in un database (o in un file di testo come abbiamo preferito fare in Gea.Net) permette di ritrattarlo traducendolo correttamente laddove il robot fallisce.

Il terzo problema nasce dalla punteggiatura o dai CRLF che il servizio interpreta in modo non ottimale costringendo a creare un algoritmo di transcodifica più complesso. In Gea.Net ci siamo inventati dei simboli che passati al traduttore questo ignora. Quindi abbiamo sostituito il CRLF con “;;” , il doppio apice con l’apice singolo ecc. Naturalmente deve essere reinterpretata al contrario la stringa tradotta.

L’ultimo problema, ma di sicuro quello di più difficile soluzione, è stato fare digerire al traduttore tutte le parole abbreviate o le sigle di uso corrente. Infatti il robot non traduce (giustamente) le parole che non capisce, così la stringa “N.” deve essere convertita in “Numero” prima di essere inviata al traduttore e per contro dovrà essere ritrattata nella stringa di ritorno. Chi scrive software sa che per ragioni di spazio a video e su carta, non è possibile rinunciare alle abbreviazioni. Anche in questo caso la soluzione adottata in Gea.Net è stata quella di mettere filtri prima e dopo la traduzione.

Quello che invece ho maggiormente apprezzato è la traduzione delle frasi. A tutti sarà capitato di leggere una pagina web tradotta dall’inglese e questo all’inizio mi lasciava piuttosto scettico. L’operazione inversa (da italiano ad inglese) è decisamente migliore. Forse dipende dalla maggiore complessità della lingua italiana, forse è il miglioramento degli algoritmi, fatto sta che se la frase di origine non è ambigua o contiene termini di dubbia interpretazione la traduzione è corretta. In definitiva, nella ritrattazione delle stringhe tradotte abbiamo speso maggiori risorse a tradurre i testi di 4-5 parole che le frasi più lunghe.

Per concludere

L’esperienza è stata positiva e se si deve tradurre un software o anche un testo tecnico conviene certamente partire da qui ma occorre mettere in conto la revisione dei testi tradotti. Se durante la stesura dei testi originali avete già in preventivato di passare per una traduzione automatica, pensate come un robot fin dall’inizio. Più siete stati chiari nel testo di origine, meno lavoro dovrete fare dopo.

Bentornato SMAU

Era da qualche giorno che mi ripromettevo di scrivere due righe riguardo a SMAU.

Chi ha qualche anno di più identificherà SMAU con la fiera dell’informatica che si teneva a Milano a fine settembre (se ricordo bene).
Nei primi anni un evento per nerds che con il passare del tempo si era trasformato in un grande baraccone.
Pochi affari, costi alti per gli espositori, flotte di ragazzini alla ricerca di gadget. Il giusto mix per fare collassare il tutto.
Ricordo di avere partecipato come espositore uno degli ultimi anni. Sei giorni nelle vicinanze dello stand Mediaworld il cui business si basava sulla vendita di PC multimediali.
SMAU morì senza rimpianti nel giro di due anni ad inizio di questo secolo.

Ora SMAU è rinato da qualche anno ma di quella fiera mantiene solo il nome.
Niente più hardware (e poco software), solo servizi.
Gli espositori sono per lo più piccole aziende che hanno un know-how da proporre o Start Up alla ricerca di finanziatori.
Piccoli stand con una sedia, una scrivania e un PC, workshop di 50 minuti, diretta streaming per chi si vuole fare conoscere in tre minuti.
Durata dell’evento 2-3 giorni, visitatori in continua crescita, tutta sostanza e poco fumo negli occhi.
Si può andare alla ricerca di un idea da riproporre su larga scala o di uno stimolo per svilupparne una nuova.
Ma il vero punto di forza credo sia che si tratta di una fiera itinerante che si muove sia in Italia che all’estero, riservando ad ogni evento la centralità ai settori che sono maggiormente presenti sul territorio limitrofo.

Ringrazio la Regione Emilia Romagna per l’opportunità che mi è stata riservata e invito tutti a consultare https://www.smau.it . Un giro merita di essere fatto.

Novità sui servizi Gea.Net per i partner

Nell’ambito della revisione periodica dei servizi di collaborazione, da Aprile 2018 saranno introdotte interessanti novità.

Il servizio di Assistenza Partner includerà la possibilità di ricevere i sorgenti dell’ultima versione dei moduli base di Gea.Net Pro e degli aggiornamenti di versione che saranno rilasciati durante il periodo.
Si tratta di un notevole vantaggio economico per le piccole aziende che non intendono impegnarsi per diversi anni pur necessitando di un software sempre aggiornato.

Il servizio Pro4 è stato potenziato dando diritto ad uno sconto del 20% (invece del 10%) sull’Assistenza Partner per gli anni successivi alla scadenza qualora si decidesse di continuare la collaborazione.

Ma la maggiore novità è certamente la nascita di PRO2, il nuovo servizio di assistenza e aggiornamento dei sorgenti di Gea.Net Pro della durata di soli due anni ma con la possibilità di essere protratto agli anni successivi.
Il nuovo servizio è dedicato a Sviluppatori, a Partner e a Punti di Assistenza Gea.Net. Alla scadenza, come per gli altri servizi di assistenza pluriennale, è possibile decidere di passare al servizio "Assistenza Partner" con uno sconto del 20% sul prezzo di listino e con differimento di anno in anno. Pertanto se si decide di proseguire la collaborazione, si ha un impegno minimo che può sempre essere interrotto in qualunque momento.
Pro2 offre numerosi vantaggi rispetto ad altri servizi fino ad ora disponibile :

  • Rispetto alla richiesta diretta dei sorgenti è possibile lavorare sulla versione più recente e rimanere aggiornati per tutta la durata del servizio.
  • Se paragonato ad “Assistenza Partner", il costo è lo stesso che si dovrebbe sostenere per due anni di questo e anche il pagamento è dilazionato in modo da non esserci prossochè nessuna differenza. Ma rispetto all’opzione annuale sono inclusi maggiori servizi – tra cui anche 8 ore di formazione – e la possibilità di usufruire di forti sconti alla scadenza. Inoltre la durata non è sull’anno solare ma dalla data di sottoscrizione con ulteriori vantaggi in caso di attivazione in corso d’anno.
  • Rispetto a Pro4 e Pro6 il costo è sensibilmente inferiore e l’impegno è di solo due anni, durante i quali si ha comunque diritto agli aggiornamenti di versione.
    Nonostante questo, alla scadenza non si perde il diritto ai forti sconti qualora si intenda proseguire con la collaborazione.

Per maggiori info si veda http://www.fborghi.it/Sorgenti.htm#PARTNER

E per finire alcune offerte speciali valide per il solo mese di Aprile 2018. Fino al 30 Aprile sarà possibile richiedere i moduli base di Gea.Net Pro 5.2 al prezzo di 750 Euro (invece di 990) o 3 add-in al prezzo di 2 (in omaggio l’add-in con costo più basso).

Previsioni rosee per il software gestionale

La legge di stabilità 2018 e le precedenti direttive emanate dall’AE comportano che i documenti di vendita emessi in versione cartacea non saranno più da considerare conformi a partire dall’ 1 gennaio 2019. In particolare la fatturazione elettronica tra privati, che nel 2019 diventerà obbligatoria, renderà obsoleti la maggior parte dei software gestionali attualmente utilizzati.

I prossimi mesi si preannunciano come una nuova età dell’oro per il software e sembra che anche il pacato e sonnolento settore informatico se ne stia accorgendo. Mai come nelle ultime settimane ho attivato nuove collaborazioni e riscontrato tanto interesse da parte dei colleghi. Molti si trovano nella condizione di dover salvaguardare un parco clienti che opera su pacchetti obsoleti la cui manutenzione comporta un costo notevole e si rischia di andare fuori tempo massimo nella consegna. Ma si stanno anche affacciando nuovi attori che che fiutano le prospettive e sono pronti a reinventarsi.

Per tutti loro la GN Suite si propone come la soluzione più vantaggiosa perchè permette la distribuzione senza dover sostenere alcun costo ma anche la creazione in piena autonomia di una soluzione proprietaria e personalizzata partendo da uno standard preconfezionato. Quello che viene richiesto spesso coincide proprio con quelli che sono i punti si forza di Gea.Net :

  • Sviluppo open source in ambiente Microsoft .Net
  • Integrazione tra contabilità, magazzino e produzione (in particolare Industria 4.0)
  • Disponibilità in versione Desktop o Web utilizzabile anche da smartphone e tablet
  • Possibilità di fork del software come salvaguardia dell’investimento
  • Possibilità di partnership pluriennale con rilascio costante dei sorgenti

Agli sviluppatori chiedo sempre di valutare in via preliminare se preferiscono rendersi autonomi nel minor tempo possibile o se sono più propensi ad una collaborazione continuativa nel tempo. Consigliando ai primi di orientarsi sullo sviluppo sostenendo un costo una tantum (i sorgenti e i servizi basilari per acquisire know-how è fornito a partire da 530 Euro, offerta Marzo 2018) mentre ai secondi di instaurare un servizio di partnership pluriennale che include nel costo il rilascio dei sorgenti stessi e degli aggiornamenti per tutta la durata della collaborazione.

Per tutti il passo iniziale è scaricare una versione aggiornata di Gea.Net Pro dalla pagina https://sourceforge.net/projects/geanetprov5/ per poi valutare anche i vari GN Web, Basic o Small di cui sono disponibili gratuitamente anche i sorgenti.

Perchè Microsoft Access si corrompe

Microsoft Access è uno dei database più diffuso a livello mondiale, è molto semplice da manutenere, è compatto, garantisce buone prestazioni soprattutto se confrontate a database di pari livello come Mysql e ci sono tanti altri molti buoni motivi per usarlo. Ma come tutti i database, o i documenti in genere che non sono gestiti da un servizio, è più fragile di quelli il cui accesso è possibile solo attraverso un servizio che gira sul computer.

Ho deciso di scrivere questo breve articolo perchè mi confronto spesso con utenti che mi chiedono se vale la pena migrare a database come SqlServer o portare il database in cloud. Facendo un po’ di attenzione e conoscendo le possibili cause si possono prevenire situazioni spiacevoli e continuare ad usare la soluzione più leggera. Se poi questo non basta, migrare a qualcosa di più robusto è sempre possibile anche con tempi e costi estremamente contenuti.

A volte il database può danneggiarsi e gli utenti non ne riescono a capire il motivo ma spesso le cause sono da ricercare tra le seguenti :

  • Arresto improvviso : Di solito è il classico calo di corrente il cui picco alle volte è talmente breve da non essere sufficiente a spegnere il PC e quindi di fatto è impercettibile. In questa categoria possiamo annoverare anche difetti delle batterie del notebook. Il modo per prevenirlo è utilizzare un gruppo di continuità o verificare lo stato delle batterie dei notebook.
  • Problemi al disco rigido : Naturalmente il guasto o il malfunzionamento del disco rigido è tra le cause più difficili da prevedere ed è comune anche a database più robusti, anzi in questo caso le dimensioni solitamente più ridotte di Access sono un vantaggio. La prevenzione è sempre e solo una : fare le copie regolarmente.
  • Hardware di rete difettoso : Se c’è qualche difetto nel dispositivo di rete il database può agire in modo improprio e di conseguenza danneggiarsi. Questo problema può essere causato da una qualunque periferica come cavi di rete, hub, schede di rete, ecc. e se si aggiunge che la struttura di una rete negli ultimi tempi è composta da sempre più oggetti, il panorama diventa più inquietante. Con l’avvento delle reti wireless poi, il problema è cresciuto esponenzialmente e ora tra le cause troviamo anche le interferenze con altri apparecchi. Insomma capire dove sta il problema è un vero rompicapo e il più delle volte occorre affidarsi all’esperienza di un tecnico perchè anche gli strumenti non sono in grado di aiutarci. Al momento questa è di gran lunga la causa principale dei possibili danneggiamenti o non sono al riparo neppure le installazioni monoutente (solo su un PC). Prevenire queste situazioni è praticamente impossibile se non spostando il database in cloud e il problema di questa gestione sulle spalle del provider.
  • Problema al motore Jet : Sullo stesso PC possono essere presenti più versioni dello stesso motore (che in pratica è il software che permette di colloquiare con il database) installati da software diversi. Se si hanno motori non compatibili eseguiti su un’unica rete, l’errore che si presenta è piuttosto grave e non è facile recuperare il database. Spesso alla fine della ricostruzione si possono riscontrare perdite di alcune registrazione. Per fortuna questa situazione è piuttosto remota ma se si verifica occorre individuare i software incompatibili e spostarli su computer diversi.
  • Dimensione del file : Per quanto le specifiche tecniche rilasciate da Microsoft siano più stringenti, per esperienza posso dire che database fino a 300 MB e su cui lavorano anche 7-8 utenti contemporaneamente, si comportano egregiamente. Oltre questi limiti si ha un rallentamento notevole e il rischio di danneggiare il database cresce esponenzialmente. Una soluzione per ridurre le dimensioni del database sarebbe quella di eliminare le registrazioni degli anni precedenti e compattare frequentemente il database. Spesso i movimenti di magazzino degli anni precedenti sono inutili perchè l’informazione è sempre presente anche sui documenti. Rimuoverli significa recuperare fino al 40% dello spazio. Ma se ancora si superano questi limiti migrare verso Sql Server è la scelta migliore.
  • Virus : Negli ultimi anni il capitolo virus e malware in genere è diventato una causa da non sottovalutare soprattutto da quando i ramsonware di nuova generazione hanno iniziato a colpire anche i database (i primi si limitavamo a criptare documenti Word, Excel e poco altro). Personalmente sconsiglio sempre di pagare il riscatto richiesto anche per un fattore etico, ma se ci si trova in questa situazione occorre valutare anche quelli che sono i costi conseguenti alla perdita dei dati. Certamente se si è lavorato bene in precedenza installando firewall e antivirus adeguati e si fanno regolarmente le copie il problema non si pone.

 

La buona notizia è che spesso non è sufficiente una singola situazione a danneggiare il database ma è il reiterato presentarsi di situazioni anomale che ne corrompe la struttura. Inoltre nella maggior parte dei casi i dati non vengono quasi mai alterati rendendo possibile il recupero al 100%.

Altra buona notizia è che solitamente il recupero va a buon fine in pochi minuti ma se ci si trova di fronte a problemi hardware la ricostruzione del database potrebbe essere necessaria anche una o più volte al giorno e alla lunga questa diventa una soluzione insostenibile.

Ricostruire un database Access è molto semplice. Il supporto Microsoft come al solito è esaustivo e consiglio a tutti di leggere

https://support.office.com/it-it/article/Compattare-e-ripristinare-file-di-database-f20401f5-d39d-414c-bfbd-def1bc707324

Prima di procedere alla ricostruzione è sempre bene fare una copia del database anche se danneggiato, situazione da cui ripartire se l’operazione fallisse o si verificassero altri problemi.

Rilasciato Gea.Net Pro 5.3

Da oggi, 2 novembre 2017, è disponibile Gea.Net Pro 5.3 che cambia il modo di interpretare il gestionale, sempre più strumento aperto verso l’esterno. Il 2017 è l’anno che più di ogni altro segna un punto di rottura con il passato dell’amministrazione fiscale, con l’affacciarsi di sistemi di comunicazione massivi come l’obbligo di inoltro trimestrale dei totali di liquidazione IVA e l’elenco delle fatture e corrispettivi (spesometro). Proprio il tanto bistrattato spesometro, senz’altro nato nel peggiore dei modi con errori anche molto gravi dell’AE, per i prossimi anni rappresenterà lo strumento più efficiente per la lotta all’evasione. Al contrario dei precedenti, il nuovo tracciato include pochi dati ma facilmente verificabili, rendendo possibile accertamenti incrociati automatici e con scarse possibilità di errore. Ne consegue che non sono più possibili approssimazioni, o meglio le registrazioni approssimative si pagano a ridosso della scadenza degli invii, con l’evidenziarsi di tutta una serie di errori da risolvere pena la mancata accettazione della comunicazione. Gea.Net Pro 5.3 blocca la registrazione di documenti che poi sarebbero scartati, anche se in qualche modo è possibile ignorare gli alert evidenziati e forzarne la scrittura.

Ma il 2017 è stato anche l’anno di Industria 4.0 con l’integrazione tra l’ufficio e la produzione. Chi ha saputo cogliere l’occasione ora si trova tra le mani un sistema da cui trarrà benefici per molti anni a venire. Gea.Net Pro era predisposto per produzione e MRP già dalla versione 4.0 e non sono stati necessari grossi interventi sulla struttura di base potendosi concentrare sui dettagli o direttamente sulle personalizzazioni. Chi lo utilizzava già ha potuto riscontrare che con pochi sforzi ci si è trovati ad avere in casa una soluzione unica, mentre altri utenti vi si sono approcciati dopo una completa revisione dei processi produttivi aziendali traendone enormi risparmi. Sono nate soluzioni ibride dove a volte il gestionale controlla le macchine, altre volte è il sistema CNC a riportare le attività svolte all’interno di Gea.Net, ma il più delle volte i due mondi collaborano pariteticamente in modo virtuoso.

Non poteva mancare il consolidarsi delle esperienze cloud su cui ci si è mossi a partire dalla versione 5.0. Qui le principali novità riguardano il miglioramento del sistema di sicurezza che ora prevede un doppio strato. Alle password criptate per poter accedere a DbService gestite direttamente dal sistema Gea.Net, è stato affiancato per impostazione predefinita anche il certificato SSL DV o HTTPS. Anche se non si possiede una VPN si possono dormire sonni tranquilli.

Un ringraziamento particolare va ai numerosi utenti registrati che hanno voluto contribuire con consigli per migliorie a volte anche banali ma che solo un utente smart che opera costantemente su un processo è in grado di elaborare.

La nota dolente è che ancora una volta non è stato possibile mantenere la compatibilità del database con le versioni precedenti quindi per migrare dalla 5.2 occorre la conversione del database. Ma se si proviene da versioni 5.0 o successive la procedura è semplice e consolidata da tempo : basta comunicare la versione di origine e attendere di ricevere i files di script. La grande novità invece riguarda gli utenti cloud che hanno depositato il database in remoto per i quali l’aggiornamento è completamente automatizzato e comporta l’attesa di pochi secondi al primo avvio delle nuova versione.

E per i nuovi utenti un paio di regali che saranno certamente graditi : Premium Pack 2017 Medium viene attivato gratuitamente a tutti gli utenti che eseguiranno la registrazione entro il 31 Dicembre, ma anche senza registrazione è possibile usare liberamente le funzioni Premium fino a fine anno. Inoltre sono disponibili funzioni semplici e gratuite per migrare da altri software o catturare i dati da fonti esterne, importando le tabelle clienti, fornitori, articoli, distinta base, documenti (ordini, ddt, fatture) del ciclo attivo e passivo e anche il piano dei conti. Le specifiche di formattazione dei file sono ampiamente documentate .

Per avere una lista completa delle funzionalità disponibili si consulti la pagina di Gea.Net Pro .

Porting database Gea.Net da Access a SqlServer

Il database Access può ritenersi la soluzione ideale per usare Gea.Net Pro in una piccola azienda o in fase di startup di una media impresa ma al crescere delle esigenze si può scalare verso un database più performante come Sql Server. La stessa Microsoft sconsiglia l’uso di Access per più di 5 postazioni di lavoro anche se personalmente ritengo che questo numero dipenda dall’uso che se ne fa e possa essere aumentato di qualche unità. Altri motivi che potrebbero fare preferire database diversi possono essere know-how aziendale, sistemi di sicurezza o di backup più adeguati. Comunque sia prima di una scelta definitiva si consiglia una accurata analisi con la consulenza di un tecnico.

Se la scelta ricade su SqlServer, per il porting dei dati è possibile usare SSMS che prevede un funzione di import di una base dati Access pertanto il tutto è piuttosto semplice. Altri database possono rendere questa operazione un po’ più complessa o addirittura necessario riscrivere le tabelle ma se si hanno le competenze su uno specifico database può valerne la pena. In tutti i casi si deve partire da AZIENDA.MDB che nell’installazione standard si trova nella cartella geanet\bin\DATI . Terminata l’importazione si deve solo cambiare la DBConnectionString per fare puntare Gea.Net al nuovo database.

Per eseguire il porting da DB Access a SQL Server :

  1. Accedere a SQL Server Management Studio (o Enterprise Manager per versioni precedenti alla 2005), creare un nuovo database, quindi selezionare la voce “Importa Dati” (“Import data”) da “Tutte le attività” selezionando il file Access come file sorgente. Questa funzione importa la struttura delle tabelle e i dati ma potrebbe non ricreare alcune parti della struttura. In ogni caso da questo momento il database è già utilizzabile da Gea.Net quindi accedere alle “Impostazioni” dei “Dati Anagrafici” e modificare la DBConnectionString per farla puntare al database SqlServer. In realtà la funzione di “Importa Dati” si comporta diversamente nelle diverse versioni di SSMS o EM quindi anche se la connessione è verificata con successo e tutto sembra funzionare, utilizzando alcune funzioni si potrebbe incorrere in errori che rendono necessario eseguire i punti successivi.
  2. Ricreare tutti gli indici. La funzione di “Importa Dati” da Access crea le tabelle ma purtroppo non gli indici. In questo caso Gea.Net dovrebbe essere in grado di operare ugualmente ma con il popolarsi delle tabelle si riscontrerebbe un notevole degrado delle prestazioni. Per evitare di ricreare a mano tutti gli indici come definiti nel database Access di origine ci si può avvalere dell’importazione della struttura di Gea.Net. Si devono chiedere 3 file di script a info@geanetweb.com , copiarli nella cartella geanet\bin e avviare Gea.Net che eseguirà alcune operazioni di riallineamento della struttura. Terminata questa operazione le tabelle del database dovrebbero presentare gli indici corretti. Se tutto è andato bene ricordarsi di eliminare i files di script dalla cartella bin.
  3. “Importa Dati” converte la struttura correttamente ma i campi bit (boolean) creati non consentono l’uso del NULL. Sulle tabelle importate possono essere presenti colonne inutilizzate di tipo boolean o registrazioni fatte precedentemente con vecchie versioni all’inserimento di una colonna (che pertanto avranno valore NULL). La funzione di allineamento della struttura per mezzo dei files di script potrebbe avere risolto anche questo problema ma sarebbe bene verificare che TUTTI i campi bit di TUTTE le tabelle possano accettare anche NULL in caso contrario potrebbero verificarsi errori sui comandi di “INSERT” durante l’utilizzo di Gea.Net. Visto che la procedura di verificare ogni singola tabella sarebbe lunga e noiosa, se si vuole prendere una scorciatoia è possibile provare ad inserire una scheda anagrafica, una scheda prodotto, un documento e altre schede usate. Qualora non sia possibile inserire la scheda è probabile che l’errore riporti anche il nome del campo bit che ha causato l’errore. Comunque sia, se si riscontrano problemi e per evitare di modificare a mano le proprietà di ogni singolo campo bit del database, è possibile scaricare il file http://www.geanetweb.com/SET_ALLOWNULL_SQLSERVER.txt contenente la lista dei comandi che modificheranno la proprietà in tutti i campi interessati. Le righe di questo file potranno essere copiate ed eseguite in SSMS.
  4. Solo per versioni precedenti Gea.Net Pro 4.0. Le tabelle FC_DISPONIBILITA e FC_COMMESSE si avvalgono di due campi contatore (rispettivamente DC_CONTATORE e OC_CONTATORE). Nel porting questi due campi vengono creati erroneamente con tipo timestamp anziché numerico identità. E’ necessario ricreare i contatori cambiando il tipo dei due campi e impostando la colonna identità nelle proprietà della struttura (per Sql Server 2000 IDENTITY = Yes sulle proprietà del campo) altrimenti non è disponibile la funzione di calcolo del fabbisogno.

DbConnectionString per database diverso da Access

Ora che abbiamo portato i nostri dati da un database ad un altro cosa dobbiamo solo cambiare la DbConnectionString . Se abbiamo optato per SqlServer occorre accedere a “Configurazione”, “Dati Anagrafici” e abilitare la modifica alle proprietà disabilitate.

clip_image002

Selezionando il “Tipo Database” = “SQL SERVER” si genera qualcosa del tipo :

Provider=SQLOleDb.1;Persist Security Info=False;User ID=sa;Password=;Initial Catalog=GEA;Data Source=localhost;Current Language=English;

clip_image004

La DbConnectionString dovrà essere modificata indicando le proprie impostazioni. Ad esempio “Data Source” deve contenere il nome del server, “Initial Catalog” il nome del database, ecc.

La variabile “Current Language = Italian” ( lingua per le composizioni dei comandi ) potrebbe non essere supportata da SQL Server in versione inglese.

Al termine fare click su “Verifica Connessione” e se tutto è stato fatto correttamente si riceverà risposta positiva.

Riavviando Gea.Net Pro si punterà al database SqlServer.

Se all’avvio viene presentato un errore del tipo “Database non trovato”, eseguire nuovamente “Verifica Connessione” e nel caso la verifica sia ancora positiva non rimane che verificare che la struttura sia compatibile con quella del database di origine. Se invece non si ricevono errori all’avvio ma si ricevono durante l’uso invocando comandi di INSERT o UPDATE , è probabile che qualcosa nel porting della struttura sia andato storto (si sarebbero dovuti ricevere errori durante “Importa Dati”) oppure non tutti i campi siano stati posti a NULLABLE. La soluzione più veloce per risolvere il problema è quella di copiare il comando SQL generante l’errore – che viene presentato a video – ed eseguirlo direttamente in SSMS che sarà più preciso nell’indicare il tipo di problema riscontrato.

Novità sui rilasci dei codici sorgenti di Gea.Net Pro

In questi giorni sono in preparazione i pacchetti dei sorgenti di Gea.Net Pro 5.2 .

La struttura di base non cambia ma all’interno dei sorgenti stessi è stata adottata una metodologia che gli sviluppatori apprezzeranno certamente. Oltre alle note operative, già presenti anche sulle versioni precedenti ma che da questa versione sono più dettagliate, ogni modifica significativa del codice sorgente (ma anche le correzioni di piccoli bug) sarà taggata. Le righe interessate dalle modifiche avranno un tag iniziale composto da

: ‘ [numero versione/revision] – [data modifica] : [descrizione]

e un tag finale composto da trattini.

Ad esempio :

‘ v5.1c – 01-03-20116 – Controlla codice IBAN
If ControllaIBAN(BANCAAPP.IBAN) = False Then
    ErroreValidazione("Cod.IBAN non corretto")
End If
‘———————————————

Questo sarà di notevole aiuto a chi desidera riportare solo piccole integrazioni ad un proprio pacchetto base estremamente personalizzato.

Inoltre dalla versione 5,2 verrà adottata una piccola integrazione commerciale. Se fino ad ora l’ultima versione era disponibile solo attraverso un servizio di assistenza e aggiornamento pluriennale (mentre poteva essere liberamente acquistata una versione precedente anche senza obbligo di continuità) ora sarà possibile avere la versione più recente al costo della versione base + un anno di assistenza e aggiornamento. Questo permette di risparmiare circa tra il 20% e il 25% in base agli add-in richiesti.