giovedì 14 dicembre 2017

Range numerazione documenti contabili.


In SAP i documenti contabili hanno in chiave anche l'anno; questo significa che la numerazione dei documenti può riutilizzare gli stessi numeri in anni differenti.

Quando siamo partiti con SAP la società di consulenza ha operato con una, probabilmente sua, consuetudine di numerazione impostanto le prime 2 cifre di ogni range FI con l'anno e poi con l'identificativo del numero di range.

mercoledì 6 dicembre 2017

Collegarsi a SQL server e leggere tabelle.

Esempio di connessione ad un database SQL server e di lettura tabella.

Nota: si utilizzano i driver di collegamento ODBC di Microsoft, se non sono già installati nel PC si deve procedere con l'installazione, altrimenti restituisce l'errore:

pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][Driver Manager ODBC] Nome origine dati non trovato e driver predefinito non specificato.

martedì 28 novembre 2017

Python: lavorare con i file Excel.

Con Python è possibile, tramite la libreria openpyxl, lavorare sui file Excel.

Nel mio caso il problema proposto era il seguente: in una condivisione di rete si vogliono salvare dei file excel che contengono delle "Action List": le righe contengono delle attività con delle date di scadenza. Si vuole inviare, in modo automatico, delle mail quando l'attività non è stata completata e la data di scadenza viene superata.

Tramite le macro VBA in Excel si possono testare le date e inviare mail, ma per poterle attivare si dovrebbe aprire il file.

Invece, tramite Python, posso creare un programma che legga i files e poi schedularlo in modo venga eseguito ad intervalli regolari.

Creare lista files contenuti in una cartella.

Si vuole creare una lista bidimensionale [ percorso , nome file ] di tutti i file che hanno una determinata estensione contenuti in una cartella.

Nell'esempio si lavora con 2 percorsi differenti: nel primo vengono analizzate anche le sottocartelle, nel secondo si prendono in considerazione solo i files presenti nella cartella.

giovedì 23 novembre 2017

Google Script per invio SMS alla ricezione di una mail.

Google Apps for business, oppure anche la versione Educational, prevede la possibilità di impostare il numero di telefono nel calendario e, negli appuntamenti, si può prevedere l'invio di SMS come remainder.

L'intento è quello che, alla ricezione di determinate mail, venga inviato un SMS al numero legato al calendario utente.

Per spiegare con un esempio concreto: Abbiamo un UPS che invia una mail in caso di problemi (per esempio mancanza di energia elettrica); si vuole che, quando arriva una mail dall'UPS, venga anche inviato un SMS di avviso.

giovedì 26 ottobre 2017

PowerShell: script per copiare files.

Windows PowerShell è una shell con un linguaggio di scripting avanzato, questa la definizione che dà Microsoft "Windows PowerShell™ is a new task-based command-line shell and scripting language designed especially for system administration".

In effetti è molto potente, quasi un linguaggio di programmazione vero e proprio.

sabato 7 ottobre 2017

Python: lock file.

Il programmino in Python scritto per dialogare con la macchina PLC usa diversi file aperti in modalità scrittura, ed ero convinto che questo fosse sufficiente per impedire l'esecuzione multipla dello stesso programma.

Invece, anche se un file è aperto un modalità 'w' (write), il file non risulta bloccato, pertanto il programma può essere in esecuzione in sessioni differenti nello stesso PC.

domenica 1 ottobre 2017

Automazione lancio comandi SSH al vcenter ESXi.

Dopo aver messo in piedi il backup delle VM in un server ESXi (vedi post), restava il problema di automatizzare il lancio del backup.

Inizialmente mi avevano proposto di installare una VM con un piccolo linux, per poter schedulare il lancio del backup.

Francamente però mi sembrava esagerato, per cui ho cercato il modo di poterlo fare direttamente dal server windows già attivo.

giovedì 21 settembre 2017

VMware backup.

Per il backup del nostro ambiente VMware principale, che ha collegati tre nodi fisici, utilizziamo il Software Veeam: molto potente, flessibile, facile da usare e con molte funzionalità.

Abbiamo però anche un single server, in un plant estero, dove è stato scelto di installare lo strato VMware e poi una singola VM di un sistema Windows, in previsione di poter installare in seguito altre VM nello stesso server fisico.

Per il backup di questo sistema, anche con VM accesa, abbiamo utilizzato delle funzionalità native di ESX gestite tramite uno script bash open source: GhettoVCB.

lunedì 18 settembre 2017

CSapEditorCtrl::GetObject: Object NN does not exist

Oggi provo a modificare uno smartforms costruito qualche giorno fa da un consulente esterno e...SORPRESA!!!

quando vado a  toccare un testo si apre una schermata di errore:


mercoledì 6 settembre 2017

Ponte Tibetano

Questo fine settimana ho fatto, per la prima volta, il ponte tibetano nei pressi di Campogrosso.

Inaugurato circa un anno fa si tratta di un ponte di corde realizzato interamente in acciaio su 105 metri di lunghezza e 35 metri nell'altezza massima, dotato di corde anti-vento per evitare le oscillazioni.

Con il ponte è possibile superare una frana che aveva interrotto la strada che dall'ossario del Pasubio porta a rifugio Campogrosso, ed è quindi possibile percorrere il consueto percorso chiamato "anello di Campogrosso".

martedì 29 agosto 2017

Fuso orario utente SAP.

Lavorando con Plant produttivi in zone del mondo con un timezone differenti da quello locale Italiano, dove è installato il server SAP centrale, mi ero chiesto come si facesse a gestire il fatto che nello stesso momento, può accadere, ci si trovi in giorni di calendario differenti.

La Cina ha una differenza di fuso di -6 ore (-7 con l'ora solare), quindi quando là è mattina presto da noi è la sera del giorno precedente.

sabato 26 agosto 2017

VMware vSphere: A general system error occurred: Connection refused When starting Virtual Machines.

Ieri stavo creando una nuova VM clonando da un template già esistente ma, quando ho tentato di accendere la macchina, il sistema rispondeva con un

"A general system error occurred: Connection refused"

senza ulteriori dettagli.

giovedì 20 luglio 2017

Condizioni di pagamento e traduzione dei testi.

Le condizioni di pagamento sono gestite in SAP con la transazione OBB8.

Come per molti altri "oggetti cliente" SAP ha previsto la possibilità di gestire la traduzione dei testi nelle varie lingue: viene creato il codice di pagamento con la sua descrizione ed è possibile inserire la traduzione nelle lingue che si vogliono gestire.

In questo caso però la gestione della traduzione è un po' particolare e, se posso dire, inutilmente complicata.

martedì 18 luglio 2017

Changzhou

Changzhou è una "piccola" cittadina a nord ovest di Shanghai di circa 5 milioni di abitanti.

Ci sono stato la settimana scorsa per lavoro e queste sono alcune mie impressioni.

sabato 1 luglio 2017

SMARTFORMS: formato data.

Nelle stampa con Smartforms, il formato in cui viene esposta in stampa una variabile di tipo data, dipende da vari fattori.

In alcuni casi dal formato data definito a livello di utente nella SU01:

lunedì 26 giugno 2017

Monte Pasubio, rifugio Achille Papa.

Sabato la Salita!

Il Pasubio è un massiccio calcareo situato al confine tra le province di Vicenza e Trento, famoso per i combattimenti, le trincee della prima guerra mondiale e per la strada delle 52 gallerie.

All'altezza di circa 1920 metri slm si trova il rifugio Achille Papa.

Il mio giro è stato il classico: Enna, S.Caterina, colle Xomo, bocchetta Campiglia, strada degli scarrubi, Rifugio A.Papa; poi ritorno per strada degli eroi, Valli.

mercoledì 14 giugno 2017

Divisioni in ABAP con risultato su numero intero.


Fare attenzione poichè, in ABAP, anche se la variabile dove si porta il risultato è senza decimali, il sistema comunque approssima all'intero più vicino.

sabato 10 giugno 2017

Monte Novegno - Forte Rione

Oggi seconda uscita con salita degna.

Il Monte Novegno è una montagna delle Prealpi Vicentine alta 1.552 m. Forte Rione invece si trova a circa 1.700 slm.

Giornata così così, stamattina c'era qualche nuvoletta e sono partito con i manicotti a coprire le braccia perchè un pò freddino (alla faccia del caldo Africano di cui i metereologhi parlano da qualche giorno).

venerdì 9 giugno 2017

SAPgui 7.50 baco


Dopo l'installazione della versione 7.50 compilation 1 riscontro un problema con l'editor dei programmi ABAP.

L'editor dei programmi SE38 comprende dei tool per facilitare la scrittura; uno di questi è che se si fa un doppio click sul nome di una PERFORM e la FORM in questione non esiste, il sistema chiede se si vuole creare e, in caso affermativo, la crea con un modello predefinito.

giovedì 8 giugno 2017

SAPgui 7.50


La versione 7.50 è stata rilasciata da SAP ancora in maggio 2017; in questi giorni ho provato a installarla nel mio PC per tentare di risolvere un problema, a mio parere piuttosto grave, che riscontro da quando ho installato la 7.40:

tengo normalmente aperti 3 modi nel sistema di produzione e almeno 3 o 4 modi nel sistema di sviluppo: se chiudo un modo dopo poco tempo dal login tutto ok, ma se è passato un po' di tempo e chiudo una finestra della SAPgui mi si interrompono, senza nessun avviso, tutte le altre.

Davvero fastidioso e anche con il rischio di perdere dati se, su una finestra, non si è già salvato il lavoro.

domenica 4 giugno 2017

SAPgui: creazione di collegamenti.

Con la SAPgui è possibile creare dei collegamenti a menù oppure a singole transazioni, che possono essere molto comodi e rapidi da eseguire.

Inoltre è possibile anche salvare, in formato non in "chiaro", la password utente in modo che sia sufficiente lanciare lo shortcut per entrare direttamente nel sistema.

Nota bene: questa possibilità è attiva solo se è impostata una precisa chiave di registro nel PC, altrimenti di norma il salvataggio password è disabilitato.

sabato 27 maggio 2017

Script per impostazione proxy in ambiente Windows.

Spesso, dalle reti interne aziendali, non è consentita la navigazione diretta verso Internet, ma si è obbligati all'utilizzo di un proxy server posizionato in LAN.

Sui notebook però, che possono essere utilizzati anche fuori azienda, si deve cambiare l'importazione di navigazione su Internet Explorer/Chrome in modo da escludere o abilitare il proxy server a seconda del contesto.

L'operazione richiede pochi passaggi, ma alla lunga è piuttosto noiosa, per cui ho preparato uno script per facilitare l'impostazione.

Monte Summano


Oggi prima uscita con una salita degna di questo nome: il monte Summano è una montagna delle Prealpi Vicentine alta 1.296 m.

La giornata era splendida, con una temperatura ideale: nè troppo calda nè troppo fredda, niente vento, a voler essere pignoli c'era forse, come si nota anche dalla foto, un po' di umidità in pianura.

mercoledì 24 maggio 2017

Impossibile cambiare Aggiornamenti Automatici in Windows server.



Un server nella nostra infrastruttura era impostato con aggiornamenti automatici di Windows, che portavano però ad un riavvio notturno che si voleva evitare.

L'impostazione da pannello di controllo degli aggiornamenti era la seguente:

venerdì 12 maggio 2017

Lettura Stock SAP da foglio Excel.

Volevo preparare un foglio Excel che, dato un codice materiale, premendo un pulsante visualizzi le giacenze di magazzino per una divisione.

Pensavo che esistesse una funzione o una BAPI da chiamare (simile alla MMBE per intenderci), ma non sono riuscito a trovare qualcosa di adatto. Pertanto mi sono costruito una semplice funzione che restituisce una tabella con le giacenze di magazzino. Ho operato alcune semplificazioni, che descriverò dopo, se avete delle necessità differenti potete utilizzare il mio codice come modello e modificarlo secondo i vostri scopi.

giovedì 4 maggio 2017

Rinnovo certificato saprouter.

La connessione ai sistemi centrali di SAP, per esempio per lo scaricamento delle note tramite SNOTE, viene realizzata attraverso una VPN oppure tramite dei saprouter.

Nel secondo caso sono necessari dei certificati, che hanno validità un anno, da installare nel proprio server che funge da saprouter.

Vediamo nel dettaglio i passaggi da seguire per il rinnovo di un certificato.

mercoledì 3 maggio 2017

Virus

Qualche giorno fa è arrivata una mail ben fatta, non con i soliti errori ortografici o di traduzione, ma il cui mittente era sconosciuto e pertanto mi hanno chiesto di controllare se si poteva aprire l'allegato.

Il file allegato alla mail era un file zippato con password.

In effetti si trattava di un virus/malware che poi il mio antivirus ha classificato come "behavior monitoring", vediamo come è costruito.

martedì 21 marzo 2017

Gnocchi di patate

Altra ricetta di mia suocera Margherita.

Anche in questo caso è utile un grande piano di lavoro, ma si possono fare anche su un normale tavolo da cucina.






venerdì 17 marzo 2017

Smartforms con caratteri cinesi: viene modificato l'aspetto delle scritte occidentali.

Da qualche giorno mi sto "dilettando" a tradurre degli Smartforms in lingua cinese: un vero divertimento!

Pensavo che la traduzione fosse una operazione molto "meccanica", come ho già fatto per la lingua Turca tramite la SE63, ma con i caratteri cinesi mi sono trovato a dover risolvere un problema nuovo:

Quando in uno Smartforms sono usati caratteri cinesi, vengono modificati aspetto e dimensioni anche alle scritte che restano con caratteri occidentali.

lunedì 6 marzo 2017

Variante lancio report di default per utente.


Per facilitare l'immissione dei dati di lancio nei report o per riprendere sempre gli stessi valori ci sono in SAP vari strumenti.


Alcuni sono a livello di codice sorgente, pertanto di competenza dei programmatori, altri sono disponibili lato utente.


mercoledì 22 febbraio 2017

Lancio massivo MRP per una selezione di materiali.

Nella maschera di lancio dell'MRP massivo non è possibile inserire una selezione di materiali.

SAP però mette a disposizione l'ampliamento M61X0001, per definire dei filtri personalizzati, in modo che l'elaborazione MRP possa lavorare solo su alcuni codici materiale.

Nel nostro caso abbiamo un MRP massivo che gira esternamente a SAP (su uno schedulatore a capacità finita: J-Flex), ma abbiamo anche dei materiali, gestiti a scorta minima, per i quali vogliamo che l'MRP venga elaborato in SAP.

sabato 18 febbraio 2017

Chiacchiere....

... o meglio crostoli in veneto!

Visto che siamo in periodo di carnevale, condivido la ricetta dei crostoli che mi ha passato mia suocera Margherita:

molto buoni e leggeri poichè fatti senza burro e con poco zucchero!

inoltre, in genere, risultano sempre abbastanza asciutti assorbendo poco olio di frittura.

venerdì 10 febbraio 2017

Python: interrompere un loop con la pressione di un tasto

Il problema che mi si è presentato era questo:

in un programma lanciato da riga di comando, senza bottoni o oggetti grafici, volevo che fosse consentito premere un pulsante per terminare un loop ma che però, se non viene premuto nulla, il loop resti in esecuzione.

In pratica l'operatore deve poter fermare un programma, tramite la pressione di un tasto, ma il programma dovrebbe continuare a essere in esecuzione: se non si preme nessun tasto il loop prosegue.

sabato 4 febbraio 2017

Comunicare con un PLC Ethernet

Il python dispone di una libreria per la gestione della comunicazione con i PLC.

Nel nostro caso si trattava di dialogare con un Siemens 1500, non ho idea se la cosa funzioni anche per altri PLC o se sono necessarie librerie differenti.

Si tratta del package snap7, non è distributito nella installazione standard di python, pertanto si deve procedere ad una semplice installazione.

venerdì 3 febbraio 2017

Python

Mi sono avvicinato al Python qualche tempo fa quando mia figlia, iscritta ad un corso di Laurea in Matematica, doveva preparare un lavoro per l'esame di programmazione.

Nota: questo è un post introduttivo all'argomento Python, dove voglio solo condividere il mio (iniziale) giudizio su questo linguaggio, seguiranno altri post relativi a problemi risolti con lo stesso.

martedì 24 gennaio 2017

Gestione Semaforo

Accade a volte che la gestione dello stesso file può avvenire da programmi differenti o comunque da postazioni/utenti differenti.

In questi casi è utile la gestione di un semaforo per far lavorare i programmi uno alla volta: se trovo il semaforo rosso attendo il mio turno appena diventa verde.

Per esempio noi gestiamo la stampa delle etichette tramite l'applicazione NICELABEL: tutte le informazioni vengono scritte in un file, ma lo stesso file può essere scritto da programmi o utenti differenti; è importante gestire il fatto che non ci siano sovrapposizioni che porterebbero ad errori o inconsistenze.