Scopo
Questa funzione permette di trasferire un file dal web server all'applicazione. Dopo aver memorizzato il file nel file system dell'applicazione, restituisce il percorso locale in cui file è stato registrato.
Sintassi
string LocalFileName = "" // Leggo il nome del file salvato in locale
//
LocalFileName := WebService.ReceiveFile(percorso locale, percorso remoto)
//
LocalFileName := WebService.ReceiveFile(percorso locale, percorso remoto)
Argomenti
Percorso locale | E' una stringa contenente il percorso per il salvataggio in locale del file ricevuto dal web service. |
Percorso remoto | E' una stringa contenente il percorso remoto al quale il web service deve recuperare il file richiesto. E' un percorso assoluto relativo al server dove è installato il Web Service. |
Valore di ritorno
Viene ritornata una stringa contenente il percorso completo del file ricevuto dal web service. Nel caso in cui il file non venga salvato in locale a causa di un errore, viene ritornata una stringa nulla.
Esempio di codice
// *******************************************
// Scarica un determinato file dal Web Service
// *******************************************
public void FileRepository.ScaricaFile()
{
// se c'è un nome file
if NOT(IsNull(Files.FileNome))
{
string LocalFilename = "" //
MyEsempiGLWebService ws = new() //
string remotepath = "" //
//
remotepath := ws.Percorso()
//
// Imposto l'indirizzo di questa istanza del Web Service
ws.Url := GetSetting(Application, WebServiceUrl)
//
// Scarico e apro il file
LocalFilename := ws.ReceiveFile(Path() +c C\ +c temp, remotepath +c
Files.FileNome)
//
// Apro il documento in un'altra finestra
EsempiGL.OpenDocument(Mid(LocalFilename, Length(Path()) + C2, ??),
True, ??)
//
// Aggiungo il file alla lista dei file temporanei da cancellare alla fine
// della sessione
EsempiGL.AddTempFile(LocalFilename)
}
}
// Scarica un determinato file dal Web Service
// *******************************************
public void FileRepository.ScaricaFile()
{
// se c'è un nome file
if NOT(IsNull(Files.FileNome))
{
string LocalFilename = "" //
MyEsempiGLWebService ws = new() //
string remotepath = "" //
//
remotepath := ws.Percorso()
//
// Imposto l'indirizzo di questa istanza del Web Service
ws.Url := GetSetting(Application, WebServiceUrl)
//
// Scarico e apro il file
LocalFilename := ws.ReceiveFile(Path() +c C\ +c temp, remotepath +c
Files.FileNome)
//
// Apro il documento in un'altra finestra
EsempiGL.OpenDocument(Mid(LocalFilename, Length(Path()) + C2, ??),
True, ??)
//
// Aggiungo il file alla lista dei file temporanei da cancellare alla fine
// della sessione
EsempiGL.AddTempFile(LocalFilename)
}
}
- La funzione ReceiveFile non funziona se il web service non è stato creato con IN:DE.
- La funzione ReceiveFile non funziona se il web service e l'applicazione che lo utilizza sono sviluppati in linguaggi diversi, per funzionare correttamente quindi devono essere entrambi in C# o entrambi in Java.
- Per utilizzare la ReceiveFile è necessario conoscere il percorso assoluto del file sul server dove risiede il WebService. E' quindi necessario conoscere a priori il percorso e i nomi del file, oppure realizzare una funzione nel Web Service che fornisca questi valori all'applicazione.
- Inviando un file ad Web Service con la SendFile e scaricandoli con la ReceiveFile, è possibile realizzare un contenitore di file condiviso tra tutte le applicazioni che utilizzano il Web Service, centralizzando i documenti e mantenendone un'unica copia.
- A partire dalla versione 20.5 la funzione restituisce NULL se l'operazione non è stata autorizzata dal web service tramite l'evento OnFileOperation.
-
Il primo parametro Percorso locale deve indicare una directory. Il sistema genera un GUID random, vi inserisce il contenuto del file ricevuto dal web service, e restituisce il path completo del file creato in locale. A partire dalla versione 20.0 se il primo parametro è una directory viene aggiunto il GUID random ma se il percorso punta ad un file il sistema utilizza quello come percorso completo del file locale.
Per esempio:
- la chiamata
ReceiveFile("C:\TEMP", "[REMOTEPATH])
crea un file locale in C:\TEMP\[GUID-RANDOM].[EXT] dove EXT è l'estensione fornita dal web service. - la chiamata
ReceiveFile("C:\TEMP\MyImage.gif", "[REMOTEPATH])
creava un file locale in C:\TEMP\MyImage.gif\[GUID-RANDOM].[EXT] nelle versioni precendenti mentre crea il file C:\TEMP\MyImage.gif a partire dalla versione 20.5.
- la chiamata
Ultima modifica: 02/03/2022 / Validità: da 6.7.2950