• Non ci sono risultati.

Capitolo Cinque

N/A
N/A
Protected

Academic year: 2021

Condividi "Capitolo Cinque"

Copied!
21
0
0

Testo completo

(1)

Capitolo Cinque

Mobile Timesheet

5.1) Introduzione

Il progetto di tesi è stato ideato e sviluppato insieme all’azienda be@Integration, società di consulenza e servizi che opera nel settore dell’Information Technology. In particolare, il lavoro ha visto la collaborazione e la supervisione della sede operativa di Lucca, che si trova all’interno del Polo Tecnologico Lucchese.

L’azienda è specializzata sulle soluzioni del panorama SAP, multinazionale tedesca leader nel settore degli ERP e più in generale del software e dei servizi aziendali1. Con

essa ha un legame consolidato da oltre dieci anni, in particolare con l’area Educational, per la quale si occupa di fornire la quasi totalità dei corsi formativi di natura tecnologica e sviluppo.

Il progetto ha visto lo sviluppo di un app mobile multipiattaforma, integrata con l’ERP2

di SAP. L’app, dal nome Mobile Timesheet, è progettata sulla base delle esigenze di una azienda che opera nel settore delle macchine per ceramiche, packaging alimentare, processi alimentari e lavorazione di materiali plastici.

L’obiettivo dell’app è fornire supporto alle attività di manutenzione che operai, interni o esterni alla società, devono realizzare, per la rendicontazione delle ore durante le

1 Ha circa 66.000 dipendenti e più 250.000 clienti sparsi in 188 paesi.

2 Enterprise Resource Planning, è un sistema di gestione, che integra tutti i processi di business rilevanti

(2)

trasferte presso i clienti. Si vuole dotare i manutentori di uno strumento di gestione delle ore fruibile quotidianamente, che permetta di lavorare anche in modalità offline e allo stesso tempo in grado di sincronizzare le informazioni con l'ERP SAP.

Attualmente, i manutentori compilano manualmente su bolle cartacee le informazioni realative alle ore e, solo alla fine di ogni trasferta, queste vengono inviate all’azienda che procede manualmente all'imputazione a sistema delle ore lavorate.

Avvalendosi dell’applicazione sviluppata sarà possibile ricevere le informazioni delle ore inserite anche prima della fine delle trasferte, grazie alla possibilità per il manutentore di inserire di volta in volta i dati, in maniera rapida e precisa, e di sincronizzarli ogni volta che il dispositivo sarà online.

5.2) L’idea di business

Il progetto di ideazione di un’applicazione mobile con le funzionalità indicate è partito dall’analisi dei processi esistenti all’interno dell’azienda cliente, che evidenziano una grande spreco di risorse (personale e tempo) per realizzare l’attività di imputazione delle ore a sistema.

Quest’attività, per come è attualmente gestita, richiede la compilazione delle bolle cartacee da parte dei manutentori, la consegna delle stesse in sede, e il successivo inserimento delle ore lavorate all’interno del sistema informativo.

Dotare i manutentori di uno strumento che permetta loro di effettuare l’operazione di rendicontazione delle ore, in maniera più pratica e veloce, inserendo direttamente le ore lavorate a sistema, permetterebbe di eliminare interamente il passaggio successivo di imputazione. Questo consente di liberare completamente il personale che compie quest’attività, ricollocandolo su altre più proficue.

Inoltre si eliminano tutte le problematiche conseguenti agli errori di trascrizione, che costituiscono in realtà il costo maggiore per l’organizzazione. Ad un errore di inserimento nell’ERP aziendale consegue un’errata retribuzione del manutentore. Quindi risulta per lui necessario avviare una procedura di reclamo che prevede di recuperare la bolla cartacea e procedere a una verifica, alla quale seguirà una rettifica della retribuzione nella successiva busta paga. In più, il solo rischio che si possa verificare la suddetta situazione implica il mantenimento e la catalogazione delle bolle.

(3)

In termini di benefici, dunque, appare chiaro come un diretto inserimento da parte del manutentore fa sì che non debbano più esserci movimenti di materiale cartaceo e riduce a zero i successivi errori di inserimento. Si facilità l’operazione da parte del manutentore che non deve più preoccuparsi di avere con se le bolle di inserimento ore, e può fruire di uno strumento a lui familiare, come il suo smartphone, per effettuare l’operazione. Ciò può avvenire in qualsiasi istante, anche in un momento di pausa e anche se non è disponibile una connessione. Infatti, una volta che il dispositivo sarà online le ore potranno essere sincronizzate con l’ERP aziendale.

Inoltre, l’operatore potrà apportare modifiche alle ore inserite finché non decide di chiudere l’attività, assumendosi la responsabilità delle informazioni comunicate.

L’azienda beneficia delle informazioni che arrivano in tempo reale e che possono essere immediatamente analizzate.

Tutto ciò avviene in maniera più semplice e meno laboriosa rispetto all’attuale procedura, con notevoli benefici per l’intera gestione dell’operazione.

5.3) Specifica dei requisiti funzionali

Vediamo ora nel dettaglio i requisiti funzionali dell’applicazione, in particolare i requisiti utente, cioè l’insieme di servizi e funzionalità che il sistema deve fornire ai propri utenti, senza scendere in dettagli implementativi.

Gli utenti dell’applicazione sono rappresentati dai manutentori che si recano dal cliente per svolgere le operazioni previste.

Una volta che l’utente ha avviato l’applicazione dal proprio dispositivo mobile, la prima schermata che si presenta è quella di login al sistema. Egli dovrà inserire nome utente e password, credenziali di accesso che gli saranno fornite dall’azienda in precedenza3.

L’utente potrà effettuare il salvataggio delle credenziali in modo che queste siano già presenti al successivo accesso.

Effettuato l’accesso, e nel caso le credenziali siano corrette, il manutentore visualizzerà un calendario, che è possibile scorrere di mese in mese. Cliccando sul giorno desiderato si accede ad una schermata di ricerca. Da qui sarà possibile ottenere tutte le attività in

(4)

corso previste per quel dato giorno in base a determinati criteri di ricerca, che possono ad esempio essere la ragione sociale del cliente o l’identificativo dell’attività.

Ottenute le attività da svolgere, o eventualmente un messaggio indicante che nessuna operazione è stata trovata (teoricamente potrebbe non esserci alcuna attività in un determinato giorno lavorativo, ma dal punto di vista pratico non accade), sarà possibile cliccare su uno dei record presenti nella schermata per entrare nella schermata di inserimento ore della specifica attività.

L’utente potrà indicare le ore lavorate, specificando ore standard, ore di straordinario, festive e ore di viaggio. Quest’ultime sono suddivise tra ore viaggio cantiere e ore viaggio andata/ritorno. Le ore viaggio andata/ritorno sono riferite al caso in una giornata non ci siano ore lavorate, ma solo ore di viaggio. In caso contrario saranno ore viaggio cantiere. Sarà possibile per il manutentore indicare i chilometri percorsi, se il mezzo proprio o fornito dalla ditta e delle note, cioè un contenuto testuale che indica altre informazioni sull’attività svolta.

Una volta immesse le varie informazioni, o anche solo parte di esse, l’utente avrà a disposizione un tasto di invio per il salvataggio, salvo errori di inserimento che verranno segnalati. In quest’ultimo caso l’utente viene invitato a correggere i dati.

Da ciascuna schermata, cliccando il tasto menu, l’utente potrà effettuare la sincronizzazione dei dati memorizzati sul dispositivo. Per fare ciò, ha necessità di disporre di una connessione Internet sul dispositivo.

Sia dalla schermata di inserimento che da quella di ricerca l’utente potrà tornare al calendario, cliccando su un’apposita immagine, oppure effettuare il logout dell’applicazione.

Segue il diagramma dei casi d’uso che mostra in maniera grafica le funzionalità esposte. Un diagramma dei casi d’uso mostra un insieme di scenari senza però rappresentare né esprimere nessuna informazione circa il processo di esecuzione dei casi d’uso in esso riportati (per esempio non indica quale caso d’uso va eseguito prima o dopo un altro).

(5)

5.4) Descrizione dell’applicazione

L’applicazione è stata sviluppata in linguaggio Javascript con l’utilizzo del framework Titanium. L’ambiente di sviluppo è Titanium Studio, basato sull’IDE Aptana.

Creato un nuovo progetto, Titanium Studio ne genera la struttura di default, che prevede una cartella principale Resources e alcuni file di configurazione, tra i quali il più importante è il file tiapp.xml. Le informazioni contenute al suo interno, ad esempio identificatore e nome dell’applicazione, permettono in fase di compilazione di costruire il file AndroidManifest. All’interno della cartella Resources sarà presente un’ulteriore cartella con file specifici per ogni piattaforma supportata, come le schermate di caricamento o l’icona dell’applicazione. Sempre all’interno della cartella Resources devono essere posizionati i file che contengono il codice dello sviluppatore. Il file principale, prodotto anch’esso in maniera automatica durante la creazione di un nuovo progetto, è il file app.js. Esso è il primo file che viene lanciato quando viene eseguito il programma e quindi rappresenta la porta d’ingresso dell’applicazione. Secondo queste regole è costituita la struttura del progetto Mobile Timesheet, illustrata dalla seguente figura.

(6)

Sono presenti quattro file, ognuno dei quali corrisponde ad una schermata dell’applicazione. Il file app.js costituisce, come detto precedentemente, il primo file mandato in esecuzione, quindi la prima schermata.

Il file app.js corrisponde al login, che il manutentore deve effettuare con le credenziali fornitegli dall’azienda. È inoltre possibile effettuare il salvataggio delle credenziali in modo da non doverle reinserire ad ogni accesso.

(7)

Nel caso le credenziali inserite siano errate, verrà mostrato una schermata contenente un messaggio di errore. Successivamente l’utente potrà correggere i dati di accesso precedentemente inseriti.

Login - Errore

Una volta effettuato l’accesso al sistema, la schermata successiva è quella del calendario, contenuta nel file calendar.js. Si tratta di un normale calendario che può essere visitato cliccando sulle frecce che si trovano ai lati del nome del mese. Nella barra blu, in alto, è presente il pulsante per il logout, mentre, in quella in basso, è indicata la data corrente.

Calendario

Cliccando su una data del mese selezionato si accede alla schermata di ricerca. Da essa è possibile accedere a tutte le operazioni attive in quella data, cioè iniziate nel giorno scelto o nei giorni precedenti, e non ancora terminate.

(8)

All’interno della pagina della ricerca (file

find.js), nella barra in alto, si può vedere il

tasto per il logout, mentre, in quella in basso, al posto della data del giorno corrente, è riportata la data selezionata. Sulla destra di quest’ultima, è presente un’icona che rappresenta il calendario, cliccando su di essa si può tornare alla pagina precedente.

La schermata contiene un campo textbox nel quale inserire il testo della ricerca. Se non viene digitata alcuna parola, una volta premuto il bottone “trova”, si ottengono tutte le attività presenti in quel giorno. È, infine, presente un menu a tendina che permette di selezionare i vari criteri di ricerca.

Ricerca

Le opzioni possibili sono sei. Tra queste la più intuitiva è il nome del cliente identificato dalla ragione sociale. Le altre possibili scelte fanno riferimento a campi del database specifici dell’ERP SAP, che per compatibilità con esso sono stati riportati nella base di dati dell’applicazione. Sono campi utilizzati per muoversi tra le tabelle SAP.

(9)

Ogni ordine realizzato con un cliente ha associato alcuni identificatori. Questi sono il

numero d’ordine interno (o ordine di servizio), il numero del contratto di vendita (o

ordine di vendita), e un numero d’ordine di acquisto. Sono utili per consentire al manutentore di effettuare delle ricerche più mirate.

Selezionata una delle opzioni, ed

eventualmente inserito un valore nel campo testuale, è possibile che il risultato della ricerca non restituisca alcuna attività nella data scelta. Questo può accadere sia perché non è presente nessuna attività sia perché il valore di ricerca è errato. In entrambi i casi viene visualizzato un messaggio che indica l’assenza di risultati ottenuti.

Ricerca - Nessun risultato

Mentre nella situazione in cui la ricerca produce dei risultati validi, verranno visualizzati tutti i record che rispettano i criteri indicati.

Ricerca - Risultati validi

(10)

I risultati riportano la ragione sociale del cliente, il numero dell’ordine interno e una descrizione dell’attività. Le righe di colore celeste indicano al manutentore che per quella giornata ha già inserito delle ore, mentre quelle di colore bianco gli comunicano che non è stata inserita alcuna ora nel sistema. Cliccando su una delle righe si accede alla schermata di inserimento delle ore. Questa corrisponde al file task.js.

Inserimento

La barra superiore e inferiore sono identiche a quelle della schermata precedente. Come si vede dalla figura, è possibile inserire le ore lavorate standard, le ore di straordinario effettuate, le ore festive e le ore di viaggio. Queste ultime possono essere ore viaggio cantiere, nel caso ci siano altre ore lavorative nella giornata, altrimenti, se si hanno solamente ore di viaggio, vanno indicate nel campo ore viaggio andata/ritorno. Le ore lavorate hanno un dettaglio minimo di mezz’ora (in questo caso è necessario inserire valori del tipo “n.5”), mentre le ore di viaggio hanno un dettaglio minimo di un’ora.

(11)

Infine è possibile indicare i chilometri di viaggio percorsi, la proprietà del veicolo utilizzato per gli spostamenti, un auto propria o un mezzo aziendale, e delle note sull’attività svolta. Una volta inseriti tutti i dati, o anche solo parte di essi, è possibile memorizzare i dati nel sistema. Se tutti i dati sono inseriti correttamente verrà visualizzata la vista sottostante.

Inserimento (2)

Il sistema effettua vari controlli sui dati inseriti. Ad esempio, verifica che non vengano inseriti caratteri non validi, come valori letterali nel caso delle ore, che il dettaglio minimo delle ore e dei chilometri percorsi sia corretto o che non vengano inserite più di 24 ore giornaliere.

Nel caso non si rispettino queste regole, una volta premuto il bottone di invio, i dati non saranno memorizzati e verrà visualizzato un messaggio di errore come quello della schermata seguente.

Invio dati - Operazione corretta

(12)

Nella prima riga del messaggio di errore, viene riportato il primo campo (o l’unico) nel quale esso è stato commesso. Ciò salvo non sia un caso come quello della figura, dove l’errore riguarda la somma delle ore inserite, e quindi non è possibile determinare in quale campo deve essere apportata la correzione.

Invio dati - Errore

Il manutentore può decidere in qualsiasi momento di sincronizzare le ore inserite, tramite la pressione del tasto menu. Questo a condizione che abbia a disposizione una connessione Internet. Nel caso la rete non sia attiva viene mostrata una schermata di avviso. Inoltre, può presentarsi una schermata che indica che non esistono nuovi dati da sincronizzare, come la seguente.

(13)

Nel caso la sincronizzazione vada a buon fine viene mostrata la seguente schermata, la quale indica che il Web Service è stato correttamente invocato e ha restituito un risultato positivo, quindi i dati sono stati inviati correttamente all’ERP.

Sincronizzazione corretta

Da tutte le schermate è possibile effettuare il logout dall’applicazione cliccando sull’icona in alto a destra. Verrà visualizzata una schermata che chiede se si desidera abbandonare l’applicazione o meno.

(14)

5.5) Integrazione di Mobile Timesheet con SAP ERP

L’applicazione Mobile Timesheet prevede l’invio all’ERP SAP delle ore inserite. La sincronizzazione avviene dietro input del manutentore, e viene effettivamente realizzata solamente nel caso ci siano nuovi dati da inviare al sistema centrale e non ancora inoltrati. La sincronizzazione avviene tramite una chiamata ad un Web Service che si occupa di realizzare il trasferimento dei dati.

Lo schema architetturale e i componenti coinvolti nella sincronizzazione sono i seguenti:

Sincronizzazione - Schema architetturale

Il Web service è definito all’interno del componente SAP Process Integration4 e

richiamato dall’app mobile. Una volta inviato l’input per la sincronizzazione, l’applicazione effettua una chiamata SOAP che contiene, nel corpo della richiesta, i dati da sincronizzare. Il Web service effettua il salvataggio delle ore in database custom, opportunamente creato, il quale è un’esatta replica della tabella HOURS presente nell’applicazione. Una volta salvati i dati, il lavoro svolto dall’app Mobile Timesheet termina, poiché essi sono memorizzati nel sistema SAP.

I passi successivi prevedono che i dati presenti nella tabella custom vengano trasferiti da un operatore dell’azienda all’interno del Cross-Application Times Sheet, il quale non viene utilizzato per l’inserimento diretto, ma solo per la consultazione degli stessi. Questo trasferimento avviene tramite l’utilizzo delle BAPI, cosa nascosta all’utente che

4 Process Integration è uno dei quattro livelli di SAP NetWeaver, l’infrastruttura tecnologica che offre

servizi a tutti i componenti SAP. Process integration permette la comunicazione tra sistemi SAP e tra sistemi SAP e sistemi esterni, anche alla compagnia stessa.

ECC 6.0

HR (TM)

DB

CUSTOM

SAP PI

Web

Services

Dispositivo

mobile

Mobile

Timesheet

(15)

effettua l’operazione e non è a conoscenza dei dettagli implementativi. Dall’applicazione CATS i dati saranno poi inviati al sistema target, nel nostro caso rappresentato dal componente Time Management, che, come detto all’inizio del capitolo, fa parte del modulo Human Resource.

Vediamo le interfacce del sistema SAP che permettono di svolgere i passi appena illustrati. La seguente è l’interfaccia di PI dalla quale si possono monitorare le richieste al Web service che gestisce la sincronizzazione.

Process Integration – Monitor

Cliccando su una richiesta tra quelle mostrate si entra nella pagina di dettaglio. È possibile notare nella parte superiore l’header della chiamata e, nella parte sottostante, il corpo del messaggio, che riporta le ore inserite prelevate dall’app mobile.

Process Integration – Dettaglio

Una volta salvati i dati, questi sono inseriti nella tabella replica della tabella HOURS e sono visibili come mostrato dalla schermata successiva.

(16)

ERP - Tabella custom

Per inviare i dati verso il Time Management l’operatore ha a disposizione un cruscotto, la cui interfaccia è quella mostrata di seguito.

Cruscotto invio dati

Infine si può vedere l’interfaccia standard del Cross-Application Time Sheet. Tramite essa i dati vengono inviati al Time Management o essere eventualmente utilizzati da altri componenti del sistema.

(17)

5.6) Struttura del database

Il database è rappresentato dal file timesheet.sqlite5, di seguito lo schema del database

con il dettaglio delle varie tabelle. Alcuni campi hanno un significato più intuitivo, mentre altri lo risulteranno meno. In particolare questo riguarda i campi interni SAP, molti dei quali non hanno un’utilità pratica nell’applicazione, ma sono stati riportati per motivi di compatibilità con l’ERP. In questo caso eviteremo di descrivere la loro funzione. Le chiavi primarie sono indicate in grassetto.

USER (id_user, name, surname, email, enabled, type)

Tabella relativa ai manutentori. Contiene l’identificativo più alcune informazioni personali. Il campo type specifica se è un dipendente (D), o un manutentore esterno (E).

CUSTOMER (id_cust, company1, company2, country)

Tabella dei clienti. Contiene un identificativo del cliente, la ragione sociale, che può essere composta da due campi, e il paese in cui il cliente ha sede.

DEVICE (id_device, id_user, dateend, datestart, pass)

Tabella associata al dispositivo. Indica gli utenti che possono utilizzare il dispositivo, associando l’identificativo dell’utente a quello del dispositivo. Inoltre, è presente il campo password utilizzato per effettuare la verifica quando avviene il login.

ODV_VBAK (id_odv, norder, method, datebuy, nextra, version)

Tabella contenente il numero del documento di vendita, il quale rappresenta l’identificatore della tabella. L’ordine di vendita è un documento che specifica i servizi ordinati da un cliente relativi a un ordine di servizio (ODS). Inoltre, è presente il campo

norder che indica il numero dell’ordine di acquisto.

(18)

ODV_VBAP (id_odv, id_pos, textpos)

Associa un ordine di vendita alla posizione, in quanto un ordine di vendita può avere più posizioni correlate con esso, che indicano le varie attività che compongono l’ordine, indicate dal campo id_pos.

ODS_AUFK (id_ods, typeorder, text, contrarea)

Tabella che associa l’ordine di vendita con l’ordine di servizio, cioè il campo id_ods.

ODS (id_device, id_user, id_ods, nop, typeactivity, id_cust, id_odv, id_pos, id_supp, stratprev, daysprev, status, dateend, sync)

Questa tabella contiene i dati delle operazioni relative agli ordini di servizio associati a ogni manutentore. Saranno sincronizzati solo i dati degli utenti che utilizzano l'applicazione su un determinato dispositivo.

Un ordine di servizio (ODS) rappresenta l'attività assegnata al manutentore, da svolgere in un determinato periodo di tempo in trasferta presso il cliente.

Il campo startprev indica la data di inizio dell’attività, necessario durante la ricerca, per determinare se un certo giorno è compreso nell’attività corrispondente, cioè se si tratta di una data successiva o coincidente con quella di inizio.

Il campo status rappresenta l'operazione di “conferma finale” al termine dell’inserimento di tutte le informazioni per un ordine di servizio. Grazie a questo campo, sarà possibile bloccare sul dispositivo l'imputazione di ulteriori ore sull'attività.

HOURS (id_device, id_user, id_ods, nop, day, hourstd, hourot, hourotc, hourholy, hourtravelar, hourtravel, km, typecar, notes, sync, state)

Questa tabella contiene i dati che i manutentori inseriranno sul dispositivo e che verranno sincronizzati dal manutentore.

L’identificatore è costituito dagli stessi campi della tabella ODS più una data. Poiché ogni attività si compone tipicamente di più giornate lavorative, è necessario associare ad ogni ordine di servizio il giorno di cui il manutentore inserisce le ore lavorate. Gli altri campi infatti, tranne gli ultimi due, corrispondono a quelli popolati dall’operatore tramite l’applicazione.

(19)

Se in una certa data non sono mai stati inseriti dei dati (cioè non è stato mai premuto il pulsante invio), nella tabella HOURS non sarà presente alcun record per quella giornata, ma verrà creato nel momento che vengono memorizzate le informazioni.

Infine, il campo sync indica la data dell’ultima sincronizzazione.

Il campo state indica se l’ordine è chiuso o meno. Nel momento che il manutentore effettua la chiusura dell’ordine, questo valore viene modificato in modo da segnalare che il record non potrà essere più modificato, in quanto l’ordine non è più attivo6.

5.7) Evoluzioni possibili

Tra i miglioramenti che possono essere introdotti nell’applicazione vi è la criptazione della password utente, al momento memorizzata in chiaro, e l’estensione di alcune funzionalità tramite Web service, che possono essere utilizzati per registrare l’utente e ottenere nome utente e password, e per effettuare la sincronizzazione degli ordini di servizio. Quest’ultima operazione deve avvenire ogni volta che l’utente avvia l’applicazione e risulta connesso alla rete, in modo da aggiornare le attività che deve svolgere.

Evoluzioni più sostanziali riguardano la possibilità di stampare in formato pdf un riepilogo delle ore inserite, da effettuare in maniera facoltativa una volta che il manutentore ha chiuso un’attività e, quindi da quel momento non potrà più essere modificata. In questo modo è possibile avere a disposizione un prospetto dei dati inseriti di facile consultazione, che permetterebbe una verifica più veloce ed efficace dei dati inseriti.

Inoltre, è possibile estendere l’applicazione anche per la registrazione delle note spese, da inserire direttamente nel sistema in modo che siano immediatamente rendicontate. Questo è facilitato dall’infrastruttura sottostante offerta da SAP, che permette di gestire, senza alcuno sforzo maggiore, l’elaborazione di queste informazioni aggiuntive.

(20)

5.8) Conclusioni

La metodologia di sviluppo è stata incentrata su tre concetti principali: utilizzo di tecnologie di sviluppo non proprietarie, realizzazione di un prodotto multipiattaforma e facilità di integrazione con un sistema complesso, come può essere l’ecosistema SAP. Quest’ultimo punto è stata la base di partenza, in quanto la facilità di integrazione è di per sé offerta dalla piattaforma tecnologica di SAP, chiamata SAP NetWeaver, che tra i vari servizi offerti permette di integrare facilmente sistemi anche esterni al mondo SAP. Nel nostro caso, tramite il componente di NetWeaver, Process Integration, è stata possibile la realizzazione del Web Service che effettua la sincronizzazione dei dati con l’ERP. Il Web Service, tramite una semplice chiamata HTTP contenente il messaggio SOAP, consente di inviare le informazioni dall’applicazione Mobile Timesheet al sistema centrale SAP.

Gli altri due aspetti costituiscono la sfida maggiore. L’utilizzo di tecnologie proprietarie SAP, quali ad esempio il linguaggio di programmazione ABAP impiegato per produrre tutti i componenti dell’ecosistema SAP, comporta dei costi relativi alle licenze di utilizzo molto alti, che costituiscono un forte ostacolo per il cliente, soprattutto nell’adozione di una strategia connessa alla mobilità.

Inoltre, lo sviluppo nativo per ogni piattaforma mobile, richiede per la compagnia l’esigenza di avere più risorse che si occupano di sviluppare lo stesso prodotto per una piattaforma differente. È raro che uno sviluppatore dotato di forti competenze in merito allo sviluppo nativo su una piattaforma possieda lo stesso livello di competenze su altre infrastrutture, in quanto utilizzano ambienti di sviluppo diversi e soprattutto linguaggi di programmazione differenti.

Da qui nasce l’esigenza dell’utilizzo di un framework di sviluppo multipiattaforma che non richieda licenze di utilizzo, come è Titanium Appcelerator.

Titanium permette di realizzare applicazioni multipiattaforma realmente native, con un linguaggio fortemente diffuso come JavaScript, grazie alla traduzione delle chiamate alle API di quest’ultimo, nelle API native. In questo modo le applicazioni hanno le stesse prestazioni delle applicazioni sviluppate nativamente, la stessa possibilità di accedere a tutte le funzioni e elementi hardware del dispositivo quali tasti, l’accelerometro, ma con il vantaggio di essere scritte una sola volta. Il risultato è un abbattimento considerevole dei costi, senza rinunciare in nessun modo all’efficienza.

(21)

All’interno di questo contesto l’applicazione Mobile Timesheet costuisce un esempio di come implementare l’infrastruttura proposta realizzando un’applicazione aziendale fortemente personalizzata, che consente di soddisfare un bisogno specifico.

In particolare, l’app permette di automatizzare l’operazione di inserimento delle ore da parte dei manutentori dell’azienda, evitando l’utilizzo di bolle cartacee che comportano un successivo inserimento dei dati a sistema, con evidente spreco di tempo e maggiori costi sia di personale, sia relativi a errori di trascrittura. Mobile Timesheet si integra perfettamente con i sistemi SAP che l’azienda attualmente utilizza, senza richiedere alcun cambiamento sotto questo punto di vista.

Unica pecca che si è evidenziata nello sviluppo dell’applicazione, che ad ogni modo non intacca i benefici esposti, riguarda lo sviluppo della componente grafica. Sarebbe stato comodo avere all’interno di Titanium uno strumento grafico WYSIWYG che permettesse di realizzare l’interfaccia in maniera più veloce, senza dover testare il rendering dell’applicazione di continuo, verificando l’effetto di ciascuna modifica grafica. Questo distoglie lo sviluppatore dalla realizzazione della logica dell’applicazione, con un elevato dispendio di tempo per ottenere dei risultati apprezzabili.

Per concludere, l’unione dei tre elementi esposti costituisce sicuramente una strategia vincente, che consente di realizzare soluzioni che si integrano facilmente con sistemi complessi come l’ERP SAP, contenendo i costi, e con la possibilità di utilizzare quest’infrastruttura di sviluppo anche in combinazione con altri sistemi di gestione e di supporto aziendale.

Riferimenti

Documenti correlati

Il fornitore interno, sulla base della propria organizzazione, svolge autonomamente i servizi e le prestazioni di competenza, collegate alle attività ed ai processi riportati

SOMMARIO: I. I “beni pubblici” nell’ordinamento giuridico italiano. Le res publicae nel sistema giuridico romano. Il titolare dei “beni” e delle ‘res’ pubblici. Il

1 La disponibilità di nuove molecole in grado di interagire con HDAC permette di ottenere una più profonda conoscenza dei meccanismi di regolazione molecolare della trascrizione

Definiti come un gruppo di applicazioni basate in Internet che si basano sulle fondamenta ideologiche e tecnologiche del Web 2.0, e che permettono la creazione e lo scambio

Migration socialement valorisée au retour Départs et séjours réguliers Insécurité dans certains pays Recrutement organisé des candidats à la migration circulaire

Recital 16 states that “Disputes concerning the interpretation and application of this Treaty arising between the Contracting Parties or between the Contracting Parties and the

Available Open Access on Cadmus, European University Institute Research Repository... European University

I parametri di progetto permettono il dimensionamento delle vasche dell’impianto e sono legati alla funzione che le vasche devono garantire: se deve avvenire una