Blog Archives

coreBOS story – luglio/agosto 2014

Siamo arrivati alla quarta parte della storia di coreBOS. In questo articolo, Joe Bordes elenca e spiega le implementazioni e le modifiche apportate nell’estate del 2014. L’articolo originale in inglese si trova sul blog ufficiale di coreBOS.

3c865ec98023581c0caa808d6689867525a37b44-julyaugust.png

Tra luglio e agosto 2014 iniziavamo a prendere controllo del fork ed eravamo ancora concentrati sul “supporto a lungo termine per vtiger CRM 5.4”. Stavamo quindi iniziando ad aggiungere funzionalità e a correggere parti che erano sempre state rotte.

SVILUPPO

Farò un breve elenco dei cambiamenti che vale la pena menzionare.

coreBOS translator

AT Consulting contribuisce al progetto di coreBOS translator

Miglioramenti sul tag cloud e sui tag

Siamo arrivati a comprendere l’importanza dei tag. Personalmente, penso che sia uno strumento dell’applicazione completamente frainteso. Quando qualcuno entra nel mondo del CRM e vede il tag cloud, solitamente la spiegazione che riceve è:

i Tag Clouds consentono all’utente di costruire categorie non limitate ad un singolo modulo CRM. Tali categorie sono indipendenti da quelle definite al master data di ogni entry sul CRM, solitamente le pick list entry.

In altre parole, è possibile raggruppare diversi record nel CRM secondo un criterio basato su una singola parola scelta dall’utente. Ma il tagging è molto di più. La prova tangibile è Twitter. Uno degli usi più efficacy dei tag è la creazione di liste di segmentazione attraverso cui connettere facilmente tutti i contatti e gli account che hanno qualcosa in comune, per poi usare quei tag per inviare email o eseguire altre azioni di marketing o altre transazioni.

Abbiamo aggiunto il supporto per i tag nel sistema di workflow, così da poter aggiungere o rimuovere tag sulla base di specifiche condizioni sul record in modo dinamico, mentre si lavora sul sistema. Si chiama Smart Lists in HubSpot.

WorkflowTag.png

Abbiamo anche aggiunto un’azione di Mass Tag sulla list view degli Account, dei Contatti e dei Lead.

MassTag.png

E abbiamo integrato tali tag con il nostro modulo Segmentation List e con la nostra estensione Mass Actions, così da poter eseguire ogni tipo di azione con i record taggati.

Supporto per CORS e post in format application/json

Abbiamo creato molte applicazioni satelliti intorno a coreBOS, utilizzando la potente interfaccia Webservice. Utilizziamo ogni sorta di framework di sviluppo per creare applicazioni specifiche e rivolte ad uno specifico target. Alcuni dei framework più moderni sono basati su Javascript e funzionano seguendo alcuni rigidi standard, soprattutto per ragioni di sicurezza. Abbiamo migliorato coreBOS così che funzioni perfettamente con AngularJS, Polymer e altri. Abbiamo anche creato library di sviluppo open source per entrambi:

Tra le altre library che abbiamo creato e di cui curiamo la manutenzione.

Aggiunta del modulo di pagamento

Abbiamo aggiunto il nostro modulo di pagamento, che abbiamo sviluppato per vtiger CRM, e aggiunto il supporto per un generico Payment Gateway direttamente nell’applicazione, utilizzando la Omnipay Library.

Espressione del Workflow e altri miglioramenti

Miglioriamo costantemente l’interfaccia del Workflow per rendere più facile il lavoro su coreBOS. In questi giorni abbiamo aggiunto il supporto per:

  • Più espressioni per le condizioni
  • Relate Sales, che consente di riempire la lista prodotti degli account e dei contatti con prodotti venduti con fattura
  • Tag Task(vedi sopra)
  • evalworkflow script, un tool MOLTO potente per il debug del workflow

tra gli altri aggiustamenti e correzioni.

Individuazione del filtro Errore e non interruzione dell’applicazione

Questa è una correzione che avrebbe dovuto essere fatta anni fa. In certe configurazioni dei filtri è possibile definire un set di condizioni scorrette. Non tanto per la selezione delle condizioni ma più in materia di cancellazione dei campi o di restrizione delle autorizzazioni dopo che il filtro è stato creato. In questo caso, vtiger CRM restituiva un errore e obbligava l’utente a sloggarsi e a non selezionare MAI più quel filtro, neanche per cancellarlo!

Filtro per le meta variabili: utenti e dati

Meta variabili per cambi speciali: Current User e blank date

Blocco delle picklists dipendenti per evitare incongruenze

Se una o più picklist hanno dipendenze non saranno modificabili nella inline, la modifica del campo individuale su Detail View per evitare di selezionare combinazioni di valori che non sono permesse.

Alcune altre:

  • Miglior gestione di Tax
  • Campo di supporto personalizzato con FAQ
  • Eliminazione degli avvertimenti e pulizia del codice (questa è una costante mensile ancora oggi)
  • Traduzione e supporto dei caratteri speciali
  • Sicurezza e velocità

 

Grazie per la lettura.

coreBOS Updater: concetti

Continuiamo con le traduzioni della serie di post di Joe Bordes dedicati a ripercorrere la storia di coreBOS. La versione originale è pubblicata sul blog ufficiale di coreBOS.

Buona lettura!

8ec854455f9472822b7fc2d3f09f4086e2f380ae-cbupdater.png

Ho scritto di coreBOS updater quando è stato lanciato, e l’ho anche documentato un po’ sulla wiki del progetto.

Ci sono molti esempi di cosa si può fare con coreBOS Updater su coreBOS, soprattutto perché sono ormai tre anni che lo utilizziamo con risultati eccellenti.

In questo post non scriverò di come funziona, ma di cosa ha dato all’applicazione, degli incredibili risultati in termini di manutenzione e distribuzione, del dinamismo e della facilità con cui sia gli sviluppatori che gli utenti possono aggiornare il loro corBOS, e di come abbia reso inutili le versioni.

Quando abbiamo iniziato a sviluppare coreBOS Updater volevamo trovare un modo per sincronizzare i cambiamenti sul database con il codice. Lasciate che cerchi di spiegarmi.

Nel momento in cui sviluppiamo nuove features e/o correggiamo errori, modifichiamo il codice e cambiamo il contenuto dei molti file del progetto. Alcune di queste modifiche richiedono dei cambiamenti sul database per funzionare. Al giorno d’oggi distribuire i cambiamenti effettuati sui file è generalmente molto semplice, e specialmente quando si usa git e tutti condividono file con struttura e contenuto simile, ma distribuire i cambiamenti effettuati sul database è complicato, ognuno ha contenuti diversi con identificativi dinamici e assegnati in modo diverso, campi personalizzati, ecc.

Per questa ragione la maggior parte delle applicazioni ha script di migrazione. Il produttore sa che ogni utente usa una versione del suo software, così crea uno script su misura con tutte le modifiche sul database per convertire ogni database alla versione successiva. Tutto questo è un processo che richiede tempo, è complesso e sensibile di errori. È un problema sia per il produttore che per la persona responsabile dell’implementazione dell’aggiornamento.

Era necessario che eliminassimo questo processo da coreBOS, così da poter utilizzare il tempo facendo cose utili.

coreBOS Updater sostituisce lo script di migrazione per molti piccoli script che sono inclusi nell’applicazione nel modo in cui sono necessari. In questo modo, se lo sviluppatore ha bisogno di operare una modifica sul database che consenta al codice di funzionare può farlo immediatamente: nel momento stesso in cui si accorge che è necessario, può registrare la modifica sull’Updater e passare oltre. Quando si aggiorna il codice si ricevono le modifiche sui file e anche l’aggiornamento del database, insieme ad ogni altro cambiamento consequenziale. L’Updater è abbastanza smart da sapere quali modifiche sono sospese in ogni database, così le contrassegna e consente di bloccare o eliminare i cambiamenti.

In breve, mantiene il database sincronizzato con il codice in piccoli passaggi graduali che sono di facile applicazione, eliminazione e controllo.

Si può immaginare un mondo pieno di installazioni coreBOS, ognuna di esse ad un punto diverso del processo di sviluppo, mentre coreBOS Updater sa precisamente di cosa ha bisogno ognuna di esse per essere aggiornata con l’attuale stato del progetto.

L’impatto che Updater ha avuto su coreBOS è più grande di quanto immaginassi.

Ci ha permesso di rilasciare features e aggiustamenti ad un ritmo incredibile, senza doverci preoccupare del database o del punto in cui ogni cliente ha la sua installazione. Possiamo destreggiarci facilmente tra un numero infinito di installazione e… anche voi! Ha anche eliminato completamente la necessità di versioni, e questo sarà l’argomento del mio prossimo post.

A presto!

coreBOS story: da marzo a giugno 2014

Sul blog ufficiale di coreBOS, Joe Bordes ha dato il via ad una serie di post dedicati a ripercorrere la storia di coreBOS CRM fin dai suoi albori.

Abbiamo piacere di proporre una traduzione del primo post (qui l’originale), che racconta dei primi mesi di lavoro su coreBOS e da cui si può iniziare a capire perché è un progetto davvero funzionale e innovativo.

DA MARZO A GIUGNO

Marzo-Giugno 2014: coreBOS 5.5

Dunque, cosa ho fatto durante i primi mesi di vita di coreBOS?

Beh, ero soprattutto nervoso, in attesa delle reazioni della community. Mi era stato chiesto centinaia di volte di portare avanti questo fork. Avevamo appena concluso un altro vtiger Europe day e tutti i partecipanti mi avevano parlato di “fork-are” il crm vtiger. In generale, ciò che avevo ottenuto erano freddezza e un’altra grande delusione dalla mia esperienza con vtiger crm. Pochissimi, dopo l’evento, restarono in contatto. Non fui solo ignorato, molti mi dissero che sbagliavo, che era una cosa stupida. Ovviamente, mi sentii malissimo. Ma c’era stato anche chi aveva supportato e incoraggiato la mia iniziativa. Devo ringraziare entrambi gli schieramenti. Il primo per avermi dato il coraggio per continuare, l’altro per avermi dato i motivi e il supporto per rendere realtà coreBOS.

Sviluppo

coreBOS è stato ideato all’inizio del 2014. Era già tardi e avrebbe dovuto essere fatto prima, ma credo che le cose accadano quando è il loro momento.

Abbiamo trascorso i primi mesi organizzando il progetto e abbiamo rilasciato un primo release ufficiale il 25 Marzo, iniziando dal codice base già esistente di vtiger CRM 5.4.

Da quel giorno fino all’inizio del Luglio 2014, la maggior parte del lavoro ha riguardato cose che vtiger crm avrebbe dovuto fare per anni, e così sarebbe stato se davvero vtiger fosse una compagnia “open”:

  • aggiustamenti alla sicurezza che erano già disponibili nella community
  • funzionalità di base che il nostro e altri team avevano già condiviso con vtiger crm ma che erano stati completamente ignorati (proprio come accade ancora nel 2017 ad esempio)
  • riempimento dell’indirizzo e-mail quando si invia un PDF
  • supporto di open office sulla funzione mail-merge
  • numeri negativi nei moduli di inventario
  • pagine per le liste correlate
  • molte correzioni delle traduzioni
  • campi personalizzati sui documenti

e molto altro.

Sul lato dello sviluppo

  • Abbiamo intensificato immensamente il web service con il supporto di moduli di inventario, documenti ed e-mail e anche una miriade di aggiustamenti e aggiunte per rendere facile la programmazione di programmi esterni, a quel punto erano questi gli obiettivi principali.
  • Più opzioni di importazione per la ricerca su campi correlati
  • Ristrutturazione dei pack per renderli più facili da mantenere
  • Supporto per PHP5.4
  • Piccoli miglioramenti dei “workflow”

Abbiamo lanciato coreBOS 5.5 il 30 Giugno

Qui è possibile consultare la lista completa dei cambiamenti.

Tutto questo lavoro necessario è adeguato al rumore di fondo che è una costante in coreBOS ancora oggi, e che è visibile in tutti i post.

Ogni settimana, ogni giorno coreBOS cambia!

C’è un movimento inarrestabile del codice, sia che aggiustiamo gli errori che individuiamo, che eliminiamo problemi di sicurezza o che semplicemente puliamo il codice per rendere più semplice lavorarci e mantenerlo, ma mentre tutto questo accade ci sono anche features di grande impatto che vengono inserite nell’applicazione: si tratta di quei progetti a lungo termine che necessitano di tempo e che vengono aggiunti solo quando sono pronti.

Nel primo periodo, quello a cui faccio riferimento in questo post, il cambiamento epocale è stato il nuovo modulo coreBOS Updater.

Per via dell’importanza di questa estensione (importanza che non ero in grado di comprendere in quel momento), dedicherò il prossimo post alla descrizione di coreBOS Updater: cos’è, come riesce a fare le sue magie e, spero, a trasmettere in modo completo il modo di mantenere l’installazione di coreBOS aggiornata.

A presto!