Sito Web di Matteo Ugolini
 
Sito Web di Matteo Ugolini
Sito Web di Matteo Ugolini
 
Sito Web di Matteo Ugolini
   
Sito Web di Matteo Ugolini   Sito Web di Matteo Ugolini
 
Passaggio dati da windows ad AS400
Scritto da Matteo   

A volte si rende necessario interagire fra un sistema Gestionale ed un sistema Amministrativo, per automatizzare al massimo il passaggio di Fatture e dati importanti.
In questo articolo racconto come poter comunicare fra un AS400 ed un sistema Omnis.
Utilizzeremo i comandi di AS400 per eseguire le operazioni sui dati passati da Omnis.

L'alternativa è quella di usare degli stumenti automatici come DBMoto che permettono la replicazione di dati anche su server "diversi".

Nel disegno del nostro progetto abbiamo inserito il sistema gestionale dell'azienda e il sistema amministrativo, il primo è un Client Omnis che gestisce tutto il flusso dati, il secondo è un sistema amministrativo su AS400 che permette di emettere fatture, al momento in manuale, per ogni attività che viene svolta dall'azienda.
Il fulcro di questa soluzione stà nello scambio di file fra i due sistemi, questo introduce un problema di "semafori" che affronteremo successivamente.
Nel sistema AS400 è solitamente disponibile il servizio FTP al quale ci appoggiamo, dovremmo per cui permettere al nostro client di lanciare un file bat che contiene il seguente codice:

ftp -s:\\nome-server\cartella\fattureautomatiche.txt

questa operazione permette l'apertura della porta per la comunicazione via FTP che riceverà i comandi presenti nel nostro file "fattureautomatiche". Il file dovrà quindi contenere tutti quei comandi necessari per la gestione del file che passeremo. In questo caso in AS400 devono essere predisposte delle routin che prelevano i file e li elaborano in base ad un tracciato predisposto.
Il contenuto del file Fattureautomatiche quindi sarà:

open IndirizzoAS400
login
password
quote rcmd addlible NomeLibreria
........
ascii
put //NomeServerScambioDati/PathDelFile/ExportFatture.txt NomeFileInputAS400
quote rcmd call pgm(NomeLibreria/NomeProgrammaPerGenerazioneFatture) param(EventualeParametroDataFattura)
get NomeFileDiOutputAS400 //NomeServerScambioDati/PathDelFile/ExportFattureAS400.txt
quit

i file di input ed output di AS400 vengono usati per caricare e rilasciare le informazioni prima e dopo l'esecuzione dei comandi di AS.
A questo punto non ci rimane che permettere al nostro gestionale di recuperare i file "txt" restituiti da AS400 e gestire gli eventuali valori di ritorno.

Ora affrontiamo il problema dei "semafori", Per fare in modo che più utenti effettuino la stessa operazione contemporaneamente, si introducono dei semafori che permettono di inibire l'esecuzione.
Al momento del lancio del comando da dentro il client il sistema genererà un file chiamato semaforo, la presenza di questo indica al client che già un altro utente stà svolgendo la stessa operazione e ne annulla l'esecuzione.
Anche per AS400 c'e' necessità di impostare un semaforo, per fare questo nel file delle fatture automatiche si deve inserire prima del caricamento del file e dell'esecuzione delle funzioni due comandi, uno per la creazione del semaforo e uno per la scrittura di questo nel path del server per lo scambio dati:

quote rcmd call pgm(NomeFunzionePerCreazioneSemaforo)
get FileDiSemaforoAS400 //NomeServerScambioDati/PathDelFile/Semaforo

E' importante ogni volta che si crea il semaforo aver verificato che non ne sia già presente uno.
Dopo la chiusura del comando FTP si deve procedere alla cancellazione del semaforo appena creato da AS400 inserendo nel file precedente:

del \\NomeDelServerScambioDati\PathDelFile\NomeDelSemaforo

questo comando viene posizionato al ritorno del file FTP perchè solo in quel momento siamo sicuri che il "controllo" del processo è tornato nelle mani del client che ha effettuato la chiamata.

Vi invito a provare la tecnica ed eventualmente segnalare problemi o soluzioni più innovative Embarassed

Commenti
NuovoCerca
Commenta
Nome:
Website:
Titolo:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
:angry::0:confused::cheer:B):evil:
:silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P
:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
Security Image
Please input the anti-spam code that you can read in the image.

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.

 
Pros. >
 
Sito Web di Matteo Ugolini   Sito Web di Matteo Ugolini
 
  Sito Web di Matteo Ugolini   Sito Web di Matteo Ugolini  
   
© 2012 Sito Web di Matteo Ugolini
Joomla! un software libero rilasciato sotto licenza GNU/GPL.