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 😀

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: https://github.com/filippobottega/RemoteOpenSQL

Sostieni il blog con una piccola donazione! Grazie!

2 thoughts on “Remote Open SQL

  1. Ciao anche nella mia azienda utilizzano questo gestionale, già ora faccio qualche piccola estrazione , aiutandomi con la registrazione delle macro.
    Però alcune volte ci sono degli oggetti all’interno delle viste che mi impediscono di fare questo.
    Sapresti indirizzarmi o consigliarmi qualche sito?
    l’applicativo che stai sviluppando(se non ho capito male) potrebbe aiutarmi?

    Ciao
    Lorenzo

    1. Ciao Lorenzo,
      con RemoteOpenSQL è possibile creare delle query OpenSQL. Non ho testato in dettaglio l’accesso alle viste ed è possibile che ci siano dei campi con particolari tipi dato che anche con RemoteOpenSQL non possono essere letti.
      Puoi provare il programma e capire se effettivamente è un limite anche per RemoteOpenSQL. Ricorda comunque che l’installazione richiede la creazione di un Function Module in SAP. Attività spiegata nella documentazione e non particolarmente complessa. In ogni caso richiede competenze di uno sviluppatore ABAP.

      Fammi sapere com’è andata,
      Filippo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

36 ÷ six =