Italian problema su ftp senza wireless

Discussion in 'Italian Forum' started by insoft, Aug 8, 2018.

  1. insoft

    insoft Member Licensed User

    Buongiorno a tutti.
    Premetto che sono un principante di b4a.
    Sto scrivendo un app che come prima cosa deve scaricare dei file csv da un server cloud aruba.
    Ho scopiazzato pezzi di codice di Erel utilizzando la libreria NET versione 1.77

    Mi sono accorto che funziona ma solo all'interno di una rete wireless.
    Se disattivo il wireless sullo smartphone e voglio sfruttare la rete dati legata alla sim del gestore non va nulla.
    E' perché ho usato la libreria net al posto di quella ftp o c'è qualcosa d'altro che non conosco.

    Un saluto a tutti e un grazie particolare a chi mi darà una soluzione.
     
  2. Star-Dust

    Star-Dust Expert Licensed User

    Sembra un comportamento strano.
    Possiamo vedere il codice del download? Hai una connessione 3g/4g valida e pagata?
     
  3. insoft

    insoft Member Licensed User

    Premesso che l'ho provato su un tablet non mio ma che riceve e fa messaggi e telefonate con una sim tim questo è il codice

    Sub CaricaCSVDaCloud (ServerFolder As String)

    ProgressDialogShow2("Importazione chiamate dal server cloud",False)
    ftp.Initialize("FTP", IndirizzoFTP, PortaFtp, UserIDFTP, PasswordFTP)

    ftp.List(ServerFolder)
    Wait For FTP_ListCompleted (ServerPath As String, Success As Boolean, Folders() As FTPEntry, Files() As FTPEntry)

    If Success Then
    For Each f As FTPEntry In Files
    ftp.DownloadFile(ServerPath & "/" & f.Name, False, File.DirDefaultExternal & "/Scambio", f.Name)

    Wait For FTP_DownloadCompleted (ServerPath2 As String, Success As Boolean)

    Log($"File ${ServerPath2} downloaded. Success = ${Success}"$)

    Next

    End If

    ProgressDialogHide

    Come dicevo è scopiazzato da uno degli esempi del sito b4a
     
  4. Star-Dust

    Star-Dust Expert Licensed User

    per favore inserisci il codice all'interno dei target:
    [ CODE] ... [ /CODE]
    cosi possiamo capire meglio il codice.


    Cmq superficialmente mi sembra corretto. Può essere un problema della rete del dispositivo.

    Hai i permessi per scrivere nella Memoria interna? Qual'é l'sdk target?
     
  5. insoft

    insoft Member Licensed User

     
  6. insoft

    insoft Member Licensed User

    Code:
    Sub CaricaCSVDaCloud (ServerFolder As String)

        
    ftp.Initialize("FTP", IndirizzoFTP, PortaFtp, UserIDFTP, PasswordFTP)
       
        
    ftp.List(ServerFolder)
        
    Wait For FTP_ListCompleted (ServerPath As String, Success As Boolean, Folders() As FTPEntry, Files() As FTPEntry)
        
        
    If Success Then
            
    For Each f As FTPEntry In Files
                 
    ftp.DownloadFile(ServerPath & "/" & f.Name, FalseFile.DirDefaultExternal & "/Scambio", f.Name)
                 
    Wait For FTP_DownloadCompleted (ServerPath2 As String, Success As Boolean)
                 
    Log($"File ${ServerPath2} downloaded. Success = ${Success}"$)
            
    Next
         
    End If
    Spero adesso il codice sia più chiaro.
    Riproverò appena ho per le mani di nuovo il tablet in oggetto verificando innanzitutto che disattivando la wireless il dispositivo navighi in internet cosa che mi sono dimenticato di fare.

    Quindi dici che l'uso della libreria NET anziché di quella FTP non può influire.

    Intanto grazie.
     
  7. insoft

    insoft Member Licensed User

    I permessi penso siano corretti anche perché con la rete wireless attiva scarica i file correttamente.
    Se non dico una castroneria l'sdk target è il 16 (derivato dal configura percorsi di b4a - spero di non averti detto una fesseria).

    Ancora grazie.
     
  8. Star-Dust

    Star-Dust Expert Licensed User

    Ti da la lista e non scarica il file oppure non ti da nemmeno la lista in 3g?

    Non ho ben capito la parte in cui dici che usi .NET intendi la libreria?
     
  9. insoft

    insoft Member Licensed User

    Dimenticavo di dire che nella stessa app c'è un il richiamo a un web service che manda una stringa json sullo stesso server cloud e che disabilitando la rete wireless funziona sempre perfettamente, quindi penso non dovrebbe essere un problema di navigazione altrimenti fuori rete neanche quella funzionerebbe.
     
  10. insoft

    insoft Member Licensed User

     
  11. insoft

    insoft Member Licensed User

  12. Star-Dust

    Star-Dust Expert Licensed User

    Quindi ricapitolando.

    Hai un App che scarica un file da un server ma anche invia una stringa JSON sullo stesso server.
    Quando passi in 3g non ti scarica il file dal server.

    Domanda: segnala errore? non da risultati? ti da la lista dei file presenti sul server?
     
  13. insoft

    insoft Member Licensed User

    Si in effetti è così.

    Si tratta di una app per gestire le chiamate di un centro assistenza elettrodomestici.

    Per prima cosa scarica via ftp dei csv che contengono i dati delle chiamate della giornata (che sono stati mandati sul server cloud tramite il server aziendale e un apposita estrazione) e popola alcune tabelle sqlite (ovviamente lo scarico non deve essere legato alla presenza fisica di una rete wireless ma deve poter essere fatto la mattina dal tecnico magari quando è già sul furgone).

    Attraverso l'app vengono completati i dati dell'intervento a intervento terminato (ora inizio, fine, materiali utilizzati, importi vari ecc.)

    Al termine il tecnico da per chiusa la chiamata e parte un web service che manda tutti questi dati al server cloud.

    Spero di aver chiarito almeno l'applicazione.

    Comunque hai ragione, prima devo verificare le cose che mi hai chiesto (o fatto una prova al volo stamattina e non ho con me il tablet in questione).
    Faccio tutte queste verifiche appena posso per poter dare risposta a queste tue giuste domande.
     
  14. Star-Dust

    Star-Dust Expert Licensed User

    Ok, verifica e poi vediamo.
    Io ti consiglio di usare un php di Aruba, gratuito e molto più snello per gestire il tipo di App che hai creato tu.

    Puoi usarlo come DataBase remoto, inserendo, consultando, modificando (campi) e anche eliminando singoli record e non dovendo scaricarsi tutto il database per passarlo dentro l'App.

    Questo permetterà durante il giorno di fare dei piccoli aggiornamenti sulle chiamate, magari lo stato (Conclusa, Non effettuata, Annullata, eccc..) o aggiungere una singola chiamata
     
  15. insoft

    insoft Member Licensed User

    ok penso alla tua soluzione e mi documento un po' (come ti dicevo sono un principiante in materia anche se vecchio di programmazione e non solo, ho cominciato prima del primo pc ibm del 1980 ma si lavorava in cobol e rpg).
    Verifico le altre cose e poi ci riaggiorniamo.
    Per ora 1000 grazie.
     
  16. Star-Dust

    Star-Dust Expert Licensed User

    qua il più giovane ha 80 anni e sviluppava app sui nastri forati (non esistevano ancora i floppy) :D
     
  17. insoft

    insoft Member Licensed User

    Allora mi consolo!!!:p
     
  18. giannimaione

    giannimaione Well-Known Member Licensed User

    ... e se il problema fosse Aruba ?
    verifica nel pannello di controllo FTP quali sono i paesi/nazioni o il range di indirizzi IP che possono accedere tramite FTP.
     
    Star-Dust likes this.
  19. insoft

    insoft Member Licensed User

    Grazie del suggerimento - provo a verificare
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice