Smart Business Framework | |||
Avvio del programma (Smart Business Server) Versione minima di android supportata: 4.0.0 (apilevel 14), si sconsiglia l'utilizzo di device di fascia bassa (tutti i test sono stati effettuati su Samsung Tab2 con rilsoluzione 1024 x 768). Versione minima di ios: 7 (ipad 2 requisito minimo, meglio iPad AIR). Il componente server SBS può essere istanziato (quindi può accettare altrettante connessioni dal client SBC) 15 volte per la versione a 32bit e 50 per la versione a 64bit. All'avvio si attiva un socket in attesa sulla porta impostata e si lancia SBS (Smart Business Server) dalla cartella di Business.
Si può disabilitare la partenza in automatico impostando come parametri di riga di comando, il numero della porta ed il parametro /NOSTART (per esempio: C:\programmi\bus\sbs64.exe 85 /NOSTART). Altri parametri sono /LOGFULL oppure /NOLOG. Nel caso fossero presenti più schede di rete sulla macchina su cui gira SBS è possibile indicare il numero della scheda di rete da utilizzare con il parametro da riga di comando /NETWORK=-1 (-1 è la prima rete disponibile), altrimenti il numero di una delle schede di rete installate (NB: in questo caso è obligatorio indicare anche il numero della porta), per esempio: c:\BIZ2014\TEST\SBS64.exe 85 /NETWORK=1. All'avvio SBS elenca le schede di rete disponibili con a fianco il numero di riferimento.
Questa connessione rimarrà aperta fino a quando il client non avviserà di eseguire la disconnessione, o fino a quando il server non verrà chiuso/messo in stop. Se il client va in crash, oppure si chiude il client senza aver fatto la disconnessione, lato server, la sessione rimane aperta. Dopo che un client si è "loggato", può accedere ad una sessione precedentemente lasciata aperta con il comando 'connetti a sessione'. Possono essere riprese solo sessioni dove ci si era loggati con lo stesso user della sessione corrente e a parità di device! Da tablet non è possibile avviare la stessa App più volte, per cui all'avvio viene verificato se era presente una sessione orfana e, nel caso, si collega direttamente. La connessione del client sul server rimane attiva per 24 ore senza che il client lo contatti. Oltre tale tempo viene chiusa in automatico. In questa modalità la password dell'operatore di business è sempre obbligatoria: Operatore, password, database, profilo di Business non devono contenere spazi e/o il carattere "|". Tutto è sincrono: parte sempre la richiesta dal child lato client. Il child lato server, se deve visualizzare una msgbox, ritorna allo stream di visualizzare il messaggio ed aspetta la risposta, il child lato remoto visualizzerà il messaggio e quando risponderà il child lato server continuerà l'operatività. Per diminuire il traffico di rete, quando viene creato lo stream che descrive la form lato client vengono mappati solo gli eventi che lato server sono stati effettivamente collegati. Oltre a questi eventi, alcuni vengono sempre settati. Ad esempio per il textbox è mappato sempre l'evento lato client LEAVE, diversamente dopo aver modificato il testo lato client non ci sarebbe nessun evento che lo trasporterebbe lato server. NOTA: è compilato per default per lavorare in modalità nativa anche a 64 bit, per cui in caso di installazione su pc x64 è necessario installare la runtime di crystal report 13 x64 e copiare le dll di crystal 13 .net (Crystaldecision.*) nella dir di Business. ATTENZIONE: SBS.exe; attualmente può essere contattato solo da client con lunghezza del codice articolo di default, a 18 caratteri e lunghezza serie protocollo di 1 carattere (vedi Precisazione), tutte le sessioni che si collegano al quel SBS, devono avere la stessa impostazione; quando SBS parte istanzia BN__STD che sarà comune a tutte le sessioni di busnet che verranno avviate e le impostazioni suddette sono definitiva SHARED in CLN__STD, per cui in caso di diversi settaggi verrebbe sempre memorizzata ed utilizzata l'ultima impostata! Precisazione: se ci sono aziende Aziende/Ditte che vogliono gestire articoli con codice con un numero di caratteri maggiore e/o Serie documenti/protocolli di 2/3 caratteri, deve essere lanciata un'altra sessione di SBS. E' possibile far apparire il logo del rivenditore, basta che sia presente in BNIMAGES un file con nome 'sbs_logoriv.png' di dimensione 200x80. Configurazione di SBC (Smart Business Client) Dopo avere lanciato il componente in Windows o l'APP su Android/IOS, bisogna configurare in Impostazioni le Connessioni con i Server SBS. Operatore, password, database, profilo di Business non devono contenere spazi e/o il carattere "|".
Descrizione inserire la descrizione del Server al quale ci si vuole collegare che apparirà in alto a sinistra. Server:Porta indicare il nome del server o l'indirizzo IP del server (meglio il secondo) al quale della connessione, poi a fianco senza lasciare spazi indicare dopo il carattere ":", la porta di ascolto del server SBS. Utente indicare il nome dell'Operatore di Business con il quale si vuole accedere. Password (**) è opzionale e se non impostata verrà chiesta al momento della connessione.
Profilo Database Ditta indicare in successione, intercalati da uno spazio fra uno e l'altro, il Profilo di Business, il Database sul quale si intende operare e la ditta. Programma (*) possibilità di inserire in modo opzionale il programma da lanciare alla connessione. Se seguito da parametro restricted /R questo disabilita il menu e quando si chiude il programma si disconnette in automatico, per esempio: BNREMENU.FRMREMENU /R Finestra Tablet solo su Windows è possibile decidere se utilizzare le form per tablet o quelle standard da PC (con il check Usa Form Tablet): in ripresa di sessione vengono ricaricate le form come erano state caricate nella sessione precedente, indipendentemente dal flag 'USA FORM TABLET'. Comprimi Flusso per client Windows è possibile indicare se si desidera comprimere o meno il flusso di rete tra client e server. Per tablet IOS/ANDROID il flusso di rete è sempre compresso. Note su SBC Windows™ Android™ iPad™: Resize delle colonne di griglia e altezza righe. Su SBC Windows™ tutto come in modalità desktop, su Android™/iPad™ per allargare le colonne basta cliccate e tener premuto sull'intestazione di colonna; la cella diverrà verde e sarà possibile ridimensionarla. Per l'altezza della riga , con un click sull'intestazione di riga la riga viene alzata di 15 pixel, con un long click viene ridotta di 15 pixel. Gestito il programma 'chiama con skype' su SBC (BN__SKYP). Se sono state inserite delle icone personalizzate sul menu preferiti, queste vengono mostrate anche su menu SBC.
Quando gli zoom articoli e clienti vengono avviati con SBC in modalità tablet, vengono eliminati una serie di filtri per rendere più veloce l'apertura degli zoom. Se si vuole tornare allo zoom completo è presente una spunta "Mostra tutti i filtri". L'applicazione del flag richiede il riavvio dello zoom, ed è recentato. Note su SBC Android™ iPad™: Inserita gesture di trascinamento con due dita da sinistra a destra per mostrare il menu con connetti, disconnetti, programmi aperti ... Se si è in modale il menu è comunque visualizzato, ma è bloccato.Gesture opposta per nasconderlo. Possibilità di memorizzare le coordinate GPS di SBC da Android™/iPad™, se nel device è stato spuntato di comunicare le proprie coordinate GPS.
Quando l'APP è in esecuzione (in primo piano), ogni 5 minuti viene inviato al server un messaggio con le coordinate geografiche. Ovviamente occorre che sul device il GPS sia attivo. Informazione memorizzata sulla tabella CONNESS di ARCPROC sulla colonna cn_gpscoorc.
Note su SBC Android™: Comportamento tasto Back, fino a che non si è connessi esce dall'APP, una volta connessi è come se si premesse il tasto Home e rientrando in SBC ci si ritrova sul programma precedentemente aperto. I Tablet Android™ in commercio hanno le risoluzioni più disparate, partendo da quella minima supportata di 1024x600 da SBC, per esempio: 1024x768, 1280x768, 1280x800, 1536x1152, 1920x1152, 1920x1200, 2048x1536, 2560x1536, 2560x1600. Quindi a seconda della risoluzione del Tablet Android™, è possibile che appaiano due bande laterali nere, rispettivamente a sinistra e a destra, dell'APP. Nelle impostazioni è disponibile una configurazione che permette di scegliere una percentuale di aumento dell'APP (5%, 10%, 20%, 30%), andando di conseguenza a diminuire le bande nere laterali.
Attenzione impostando tale percentuale è possibile che si deva poi effettuare un scroll verticale per vedere tutti i campi. Su SBC-iPad™ questo problema non c'è visto che è su iPad™ la risoluzione è adatta sempre per 1024x768. Su SBC-Windows™ c'è la spunta Finestre tablet.
Colonne di griglia di tipo TEXTBOX MULTI LINEA (memo) su Windows è disponibile il comando ALT+F1 per fare vedere il testo in una casella più grande, su ios/android è disponibile un comando tipo 'zoom' per far fare la stessa cosa. Innanzitutto Bisogna utilizzare WineSkin (testato con mac mavericks tramite WineSkin 1.7) http://wineskin.urgesoftware.com/tiki-index.php per installarlo:
Dal client la stampa su stampante viene disabilitata. La stampa a video viene tradotta lato server in un file ".pdf" che viene inviato al client che successivamente lo renderizzerà: la stampa si appoggia a be__crpeex.exe se non si utilizza come motore di stampa Crystal report 13. Per Windows deve essere installato un programma per visualizzare i PDF. Dopo la stampa a video non è possibile ruotare il foglio in orizzontale/verticale, per cui è necessario che la stampa sia impostata già dall'origine con l'orientamento corretto (con la formula NTSORIENTATION). Su Android i files .pdf vengono salvati in /mnt/sdcard/sbc_tmp/ e, in caso di multireport, vengono stampati tutti ma viene visualizzato solo l'ultimo file. In IOS vengono salvati i files è : /private/var/mobile/Applications/id_app_xxxx/Documents/sbc_tmp. IMPORTANTE: non devono essere realizzati Report con richiesta di campi parametro, questi campi infatti verrebbero richiesti lato server, bloccando l'elaborazione. Per superare questo limite occorre impostare busnet.exe/sbs per utilizzare la runtime di crystal report 13 (si attiva in automatico se il server SBS gira su un pc a 64 bit e sbs.exe è compilato senza la limitazione 'x86' al posto di 'AnyCPU', oppure settando l'opzione di registro 'Business/OPZIONI/UsaCRPENet = -1'. Si rammenta che la runtime di crystal report 13 non viene distribuita/installata con il setup di Business NET 2014. Al momento è scaricabile da http://scn.sap.com/docs/DOC-7824 (la versione da utilizzare è la 13.0.7). Per evitare problemi di blocco lato SBS.EXE, la stampa si chiude comunque dopo un tempo di 30 secondi! In questo modo il server al massimo rimane in attesa di un input utente per richiesta di campo parametro per al max 30 secondi. Se i file da scaricare da SBS a SBC è superiore ad 1 MB viene chiesto all'utente (lato SBC) una richeista di conferma se eseguire o meno il download, in quanto file grossi potrebbero causare blocchi prolungati (o in alcuni casi crash) dell'applicazione. Stampe e Documenti su Word/Download/Upload. Per trasferire i file dalla device al server e viceversa, bisogna utilizzate Dropbox, o strumenti analoghi. SBC ed impostazioni internazionali SBC ignora le impostazioni internazionali del sistema operativo su cui gira ed applica sempre quelle del sistema operativo su cui gira SBS, oppure, se impostati, utilizza i parametri di configurazione dell'utente di Business. Ad esempio, se l'utente di Business non ha nessuna lingua impostata in gestione operatori, SBS passa a SBC le impostazioni del pannello di controllo di windows (normalmente "it-IT"). Se invece l'utente di Business ha una lingua impostata in gestione operatori (per esempio inglese "en-GB"), come all'avvio di Business vengono ignorate le impostazioni del pannello di controllo di windows, anche con SBC vengono applicare le regole "en-GB". Limiti attuali della soluzione Se durante la comunicazione tra client e server (o viceversa) la connessione cade la sessione viene distrutta. Se la connessione cade lato server tutto l'ambiente va in crash. Interfaccia Business For People: gli utenti non verranno mai visti come 'social' (non vanno le me.invoke...) Alt+F2 / ALT+F3 su controllo zoomabile: c'è solo l'ALT+F3 e lo si fa con 'long click'. Autocompletamento su campi zoomabili: su client IOS/Android l'autocompletamento visualizza solo le colonne CODICE E DESCRIZIONE. Stampa su word e/o PDF con invio automatico: è disponibile solo con il modulo PEC-MAIL abilitato. Stampa su word: se eseguita quando SBS è stato fatto eseguire all'accensione del PC dalle operazioni pianificate (quindi senza che l'utente si sia loggato) è possibile che la stampa su word tramite l'utilizzo di WinWord non funzioni e venga generato un errore di COM EXCEPTION: è lo stesso problema di chi cerca di utilizzare word da IIS (e che aveva anche busweb): per la pericolosità di word, microsoft ha inserito tutta una serie di controlli/blocchi che rendono praticamente inutilizzabile word se non si è loggati. L'unica soluzione è utilizzare motori alternativi, come ad esempio libreoffice La configurazione delle maschere (eccetto il vecchi CTRL+ALT+F2) non è accessibile. Per la configurazione delle griglie basta cliccare sulla griglia nella prima cella in alto a SX. Le griglie sul client non sono ordinabili/filtrabili: solo per client windows è possibile ordinare/filtrare le colonne come in busnet standard, ma non sono presenti i layout di salvataggio e in chiusura programma non viene memorizzato l'eventuale ordinamento delle righe (sort) per poterlo riproporre la volta successiva. Export griglia/stampa griglia disponibile solo su client Windiows. ANDOID/IOS – gestione della tastiera software: quando appare la tastiera per default la form sotto NORMALMENTE non si sposta per fare in modo che il textbox che ha il focus sia visibile sopra alla tastiera, ma, manualmente, l'operatore deve far scrollare la form verso l'alto. Il comportamento è voluto perché su android, con child con molti controlli, la show/hide della tastiera comporta un forte rallentamento per calcolare di quanto spostare il child sottostante. La soluzione adottata permette di visualizzare/nascondere la tastiera più velocemente. Inoltre, per il fatto che il child sottostante può essere mosso verticalmente, quando l'operatore non è in visualizzazione ma in editing di controlli (ad esempio per inserire un ordine) non deve far apparire/sparire la tastiera per passare a controlli nascosti dalla stessa! Per lo stesso motivo SBC disabilita il T9 sulla tastiera software. NB: quanto sopra dipende dalla versione di android, per cui è possibile che in alcune versione il comportamento predetto non venga applicato. Colore delle ditte nei programmi (impostato da anagrafica ditta): SBC non gestisce questa funzionalità Problemi di memoria. La memoria massima utilizzabile su sistemi a 32 bit è 2GB, per cui le possibilità sono: impostare il numero massimo di connessioni per ogni SBS a 20, 30, 50 in base a quanta memoria normalmente viene allocata da un utilizzatore, oppure modificare pesantemente SBS per accettare connessioni sulla porta 85 e successivamente non lanciare un nuovo thread ma un nuovo process dicendogli di stare in ascolto su una specifica porta (es 86, 87, eccc) e comunicare la nuova porta all'SBC che ha chiesto di connettersi (che si riconnetterà sulla nuova porta dove c'è in RUN un nuovo SBS aperto in modo univoco su quella porta. In pratica in un SBS per ogni client SBC. Solo windows: SBC.EXE sulla stessa macchina dove gira SBS.EXE: sbs.exe interagisce con l'utente in modo nascosto, per cui è possibile/normale che faccia perdere il focus ai programmi che girano sullo stesso pc con lo stesso utente loggato!!!! Per risolvere questo problema basta che sullo stesso pc SBS.EXE venga fatto eseguire da un utente diverso da quello con cui si lavora abitualmente (tipo terminal server) o far partire SBS.EXE da operazioni pianificate all'avvio del pc, con un utente diverso da quello che si userà per l'attività giornaliera in windows. Eventi enter e leave: se quando entro in un controllo (e conseguentemente esco da un altro) se dal controllo da cui esco eseguo una funzione che farà apparire una form in modo modale, quando la form si chiuderà il focus non verrà dato al controllo in cui dovevo entrare (e comunque tale controllo avrà .Containsfocus = false). Riepilogo limiti
|