Invio file xml a web service

di il
7 risposte

Invio file xml a web service

E' possibile con access? e nel caso … qualche suggerimento per iniziare?

7 Risposte

  • Re: Invio file xml a web service

    Genericamente sì.

  • Re: Invio file xml a web service

    21/10/2023 - muttley005 ha scritto:


    qualche suggerimento per iniziare?

    Oh… chi non si cancella (o è bannato) si rivede.

    Se ci dai qualche dettaglio in più andiamo oltre il “tecnicamente si può”. Anzi, ho quasi le idee fresche in merito, avendo cercato di recente qualcosa.

  • Re: Invio file xml a web service

    Eh già, sono un lungoassente :) … ma non voglio tornare sul perchè

    Tornando alla questione già che si possa fare è confortante, quindi entro un pò + nel merito:

    La mia Azienda mensilmente invia dati ad “Azienda superiore” ed ora si presenta la possibilità di cambiare la modalità da caricamento manuale su una pagina web (protetta con utente/password chiaramente) ad un webservice … che a quel punto potrebbe essere automatizzato e sto cercando di capire quale automazione predisporre e mi sono chiesto se una di queste vie fosse Access.

    Trattasi di invio ad un web service di file XML.

    Il documento di sintesi fornitomi spiega che ci si deve autenticare con la funzione LOGIN che restituisce un Token univoco che identifica la sessione utente.

    Qui alcuni esempi forniti:

    Esempio di login + invio
    L’esempio mostra come fare la login, ottenere il token ed effettuare un invio ottenendo il progressivo invio.  

    
    LoginWsService service1 = new LoginWsService(); 
    LoginWs loginService = service1.getLoginWsPort();  
    FlussiRegionaleWsService service2 = new FlussiRegionaleWsService(); 
    FlussiRegionaleWs flussiService = service2.getFlussiRegionaleWsPort();  
    // Effettuo la login, ottengo il token da utilizzare nelle richieste successive 
    String token = loginService.login("nome.cognome","password");  
    // Preparo i file da inviare 
    List<FlussiFile> files = new ArrayList<FlussiFile>(); 
    FlussiFile fileA = new FlussiFile(); 
    fileA.setCodTipoFile("SDO2_XMLA"); 
    fileA.setFile(Files.readAllBytes(Paths.get("c:\\file_a.xml"))); 
    fileA.setNomeFile("file_a.xml"); 
    fileA.setNumRecord(20);  
    FlussiFile fileB = new FlussiFile(); 
    fileB.setCodTipoFile("SDO2_XMLB"); 
    fileB.setFile(Files.readAllBytes(Paths.get("c:\\file_b.xml"))); 
    fileB.setNomeFile("file_b.xml"); 
    fileB.setNumRecord(20);  
    files.add(fileA); 
    files.add(fileB);  
    // Effettuo l'invio dei file, ottengo il prgInvio da utilizzare nelle richieste successive 
    BigDecimal prgInvio = flussiService.invioFile(token, "SDO2", 2017, 1, files); 

    Esempio di simulazione

    L’esempio mostra come effettuare la simulazione e verificare lo stato di elaborazione. Gli stati sono definiti nella tabella Esiti// Simulo l'invio effettuato 

    // L'esito della richiesta di simulazione è "CSSIM", ovvero simulazione in corso 
    Esito simula = flussiService.simula(token, prgInvio);  
    // Fintanto che la simulazione è in corso, aspetto 
    while(flussiService.stato(token, prgInvio).getCodStato().equals("CSSIM")){ Thread.sleep(2000); } 
  • Re: Invio file xml a web service

    23/10/2023 - muttley005 ha scritto:


    Trattasi di invio ad un web service di file XML.

    Quello che tu hai è un esempio di colloquio con una libreria client verso il Web Service che ti è stato esposto dal servizio allo scopo di veicolare il documento XML con i dati significativi.

    Contattare un WS usando VBA da Access sicuramente non è la via più facile, però puoi fare ricerche su Google con questi termini per ottenere qualche indicazione, tipo questa domanda su StackOverflow.

  • Re: Invio file xml a web service

    Sto vagliando varie strade, access era una di queste, e passando da un software di ETL che si chiama Pentaho PDI penso di aver risolto … quasi, mi rimane solo la conversione del file da inviare, ma per quanto riguarda login, recupero del token (chiave di sessione) e “colloquio” funziona.
    Rimane il fatto che non mi dispiacerebbe portare a termine anche questa via anche solo a scopo didattico.

    Per ora grazie per le dritte, se/quando andrò avanti con access posterò qualcosa

    Grazie ancora a chi è intervenuto

  • Re: Invio file xml a web service

    Hai provato aa seguire il link di Alka e magari provare 

     Public Function http_Resp(ByVal sReq As String) As String
    
        Dim byteData() As Byte
        Dim XMLHTTP As Object
    
        Set XMLHTTP = CreateObject("MSXML2.XMLHTTP")
    
        XMLHTTP.Open "GET", sReq, False
        XMLHTTP.send
        byteData = XMLHTTP.responseBody
    
        Set XMLHTTP = Nothing
    
        http_Resp = StrConv(byteData, vbUnicode)
    
    End Function

    Ovviamente partendo da qui ed adattando a quello che ti serve

  • Re: Invio file xml a web service

    Si, mi sono appuntato il link e trascritto i codici, ma come detto avevo varie strade e quella che mi ha dato riscontri positivi (anche per i colleghi) è quella trovata nell'ETL di Pentaho che ho approntato ed è quasi finito.  Questo non significa che abbandonerò la pista VBA, anzi, vorrei provarci.

    Grazie ancora

Devi accedere o registrarti per scrivere nel forum
7 risposte