Report Xojo Web

Prova a mettere un try/catch
probabilmente non hai i diritti di scrittura sulla cartella

Ciao Antonio, ora provo, il comportamento strano ora ho messo un try/catch cosi fatto :

			Try
					f = GetFolderItem(name,0)
					'f = new FolderItem(name,FolderItem.PathTypeShell)
					f = SpecialFolder.Documents.Child(name)
					t = f.CreateBinaryFile("pdf")
					t.Write me.buffer
					t.close
					App.MyFile = WebFile.Open(f)
					App.MyFile.ForceDownload = True
					Session.ShowURL(App.MyFile.URL, TRUE)
			Catch e As NilObjectException
			   Exception err as NilObjectException
					  MsgBox err.message+" Error No.: "+Str(err.ErrorNumber)
			End Try

E’ corretto?
Ho rimesso il programma in ftp e non mi da pi errore… il codice non l’ho toccato per
Faccio un po di test e vediamo.

Grazie sempre

leggera rettifica a quanto sopra, dopo un po di tempo mi ritorna a dare il problema senza che io aggiorni nulla, il server un Centos7 in cui gira apache, ora con il try/catch non ritorna nulla ma non si blocca il programma, forse a impostare il catch su “NilObjectException” ?

sempre grazie

Scusami ma oggi non ho avuto tempo di verificare …
Devi creare una routine che controlla se il file PDF gi esistente e se esistente lo cancella.
Oppute crea un file pdf con un nome univoco; in questo modo volendo puoi archiviarli.

L’errore NilObjectException viene generato appunto quanto il file gi presente con lo stesso nome.

L’errore NilObjectException pu essere dato da f, se ad esempio il percorso non raggiungibile
da t se non riesce a creare il file

Essendo un’applicazione web magari sono due utenti che creano lo stesso file.

Visto che hai identificato l’errore puoi trovare strategie per risolverlo.
Quando testi un’app web in locale hai, di solito, accesso alle cartelle con tutti i permessi e un utente solo.

Puoi provare a dividere l’azione tipo:
dim f as folderItem
try
f = GetFolderItem(name,0)
Catch e As NilObjectException
MsgBox e.message+" Error No.: “+Str(e.ErrorNumber)
f=nil
end try
if f<>nil then
dim t as BinaryStream
try
t= f.CreateBinaryFile(“pdf”)
catch e As NilObjectException
MsgBox e.message+” Error No.: "+Str(e.ErrorNumber)
t=nil
end try
if t<>nil then
t.write me.buffer
end if

end if

Non c’ bisogno di chiudere t tanto va fuori scopo