Remote Open SQL

Un saluto a tutti,

da alcuni mesi ormai sto dedicando il mio tempo libero alla realizzazione di un nuovo prodotto software. Si chiama Remote Open SQL e si rivolge a coloro che per lavoro (difficilmente per divertimento… :) hanno la necessità di estrarre da SAP R/3 una gran mole di dati.

Come avrete già intuito l’argomento è tecnico ed avanzato per cui se fra di voi c’è chi vorrebbe sentire le ultime news sui miei viaggi lo invito a ripassare più tardi…

L’ora è tarda per cui vi lascio solo un breve accenno alle idee alla base del progetto.

Spesso mi capita di voler vedere i dati delle tabelle di SAP in Excel o in Access per poter rielaborare i dati. A questo scopo esistono diverse transazioni in SAP, SE11, SE16, SE16N, oppure si possono creare dei programmi che connettendosi a SAP via RFC possono richiamare il function module RFC_READ_TABLE (per vederla transazione SE37).

Questi metodi hanno tutti dei limiti, essenzialmente di velocità, di flessibilità e di scalabilità.

Il mio progetto si pone come obiettivo il superamento di tutti questi limiti e per raggiungere lo scopo ho dovuto mettere in campo tutto quello che ho imparato durante la mia, se pur breve, carriera lavorativa.

Originariamente volevo creare un software simile ad Everything che funzionasse con i file archiviati in SAP (ad esempio con quelli presenti nel KPRO) ma poi mi sono scontrato con problemi che via via mi hanno portato a concentrarmi sul primo passo necessario: la rapida estrazione di dati.

Recentemente poi ho deciso di pubblicare il mio progetto con licenza GPLv2 e quindi a breve pubblicherò il tutto in CodePlex.

Appena possibile aggiornerò questo articolo con tutti i riferimenti.

In breve quello che Remote Open SQL è in grado per ora di fare è quello di consentire all’utente di scrivere una query di tipo Open SQL e di eseguirla connettendosi a SAP via RFC.

Le sfide più grandi che ho dovuto affrontare sono state:

  1. La comprensione dei limiti del linguaggio Open SQL unito all’utilizzo delle funzioni RFC
  2. L’ottenimento della scalabilità in termini di dimensioni delle tabelle estratte (milioni di record).
  3. L’ottenimento di performance di estrazione elevate in termini assoluti (decine di milioni di record all’ora).
  4. Verificare le autorizzazioni dei singoli utenti in base alle tabelle oggetto delle query.
  5. Eliminare la possibilità di SQL injection.
  6. Ideare un sistema sufficientemente semplice per l’esecuzione delle query. Questa parte comunque è in continua evoluzione.
  7. Ridurre al minimo i passi per l’installazione.

Cosa manca? Moltissimo! Il mio è solo il primo passo per saggiare l’interesse del mercato. Ho deciso di rendere il progetto Open Source per favorirne il più possibile la diffusione e poter sperimentare personalmente le difficoltà che è necessario superare prima di poter offrire un prodotto affidabile. Inoltre mi interessa toccare tutti i passaggi della filiera: dall’ideazione, alla realizzazione prototipale (situazione odierna), alla pubblicazione, alla promozione, all’assistenza e chi lo sa … magari anche alla ricezione di qualche offerta :D

Se siete interessati al tema rimanete in contatto! Mancano pochi giorni alla prima pubblicazione di Remote Open SQL!

Aggiornamento!

Il progetto è online! Ecco il link: http://remoteopensql.codeplex.com/

Il CMS Concrete5

Salve a tutti,

ho appena messo online il mio primo sito realizzato con Concrete5: Tabia. Ho provato in precedenza Drupal, Joomla e naturalmente WordPress ma Concrete5 si è rivelato il miglior CMS che abbia provato.

E’ l’unico infatti che consente di creare in modo realmente visuale il layout delle pagine web. E’ fornito di semplici ma efficaci strumenti di editing associati a molteplici tipologie di blocchi.

In realtà ogni CMS ha particolari peculiarità che lo rendono più o meno adatto alla realizzazione di una tipologia di sito. Sarebbe in effetti scomodo realizzare un blog come quelli che si possono fare con WordPress  utilizzando Concrete5. Per l’esigenza che avevo, realizzare un sito semplice ma dal layout che fosse proprio come io lo volevo, Concrete5 si è rivelato l’ideale.

Gli altri CMS non consentono di modificare il layout dei template al volo, e questo è un grosso limite. Quasi sempre i template contengono qualche parte da rimuovere oppure mancano proprio di quel riquadro che serviva per migliorare l’usabilità del sito. Con Concrete5 si può modificare tutto in modo molto intuitivo ed il risultato è immediatamente online. Inoltre la bacheca viene utilizzata raramente e non è il luogo dove inserire i contenuti. Infatti i contenuti si inseriscono direttamente nella pagina online.

Sul sito Concrete5 potete trovare diversi AddOn. Io ho provato tutti quelli gratuiti ma sinceramente il prodotto originale dispone di tutto quello che serve ed è comodissimo dalla prima installazione.

Unica accortezza: ricordatevi di impostare il set caratteri e la collation del database MySQL a utf8 e utf8_general_ci prima di installare Concrete5 altrimenti non potrete scrivere parole in altre lingue per la mancanza dei caratteri unicode. Per farlo potete seguire la guida:

How to change table character sets / collation of a MySQL database

SmartIce

<Attualmente la sezione riguardante questo programma è in fase di creazione>

SmartIce è un programma sviluppato con lo scopo di agevolare il Gelatiere nella sua professione di inventore di nuove sensazioni; la potenza di questo applicativo sta nell’ aver azzerato il tempo necessario per bilanciare e gestire qualsiasi ricetta.

E’ possibile scaricare il setup dell’ultima versione disponibile:

SmartIce 4.1 2005-02-11.exe

Per installare SmartIce è sufficiente scaricare il file di installazione in una cartella qualsiasi ed eseguirlo. Se la protezione dai virus macro è attivata, comparirà un messaggio che chiederà di disabilitare le macro. Per poter installare SmartIce premere il bottone Attiva Macro e proseguire con il programma di installazione. Il programma provvederà ad installare i file nella cartella scelta dall’utente ed una volta terminato sarà possibile utilizzare le funzionalità di SmartIce.

Ecco come appare una ricetta tipica visualizzata in Excel:

Ricetta dimostrativa - Gelato di pesca al latte

Ricetta dimostrativa - Gelato di pesca al latte