Su IO Invio da files tramite import da csv - non si attiva però pulsante promemoria. Perché?

Buongiorno,
sono nuovo qui e temo che potrebbe non essere la categoria giusta. Se così ditemi…Mi hanno consigliato su forum.italia.it comunque di scrivervi per capire se potete darmi una mano.

Ho notato l’attivazione su IO della possibilità di “ Inviare da files ” importando un csv. Ora facendo così sembra correttamente prendere tutti i campi, compresa la colonna con data scadenza, in realtà, inviando, il ricevente non visualizza il pulsante Promemoria (per scegliere se impostarlo o meno). Cosa che invece avviene con invio da template verso liste o verso utenti singoli, o in caso di invio rapido.
Qualcuno ha notato medesimo problema? Ha risolto? Può aiutarmi nel capire quale sia il format giusto per il csv affinché il pulsante promemoria si attivi nell’app del ricevente?

Spero possiate essermi di aiuto. Grazie

La categoria è giusta. Se il ricevente non visualizza il promemoria il problema potrebbe essere nella conversione dei dati. Ci sono molti modi di verificare. Io ti chiederei innanzitutto di riportarmi cosa vedi nel log dei messaggi inviati che ci dovrebbero essere i parametri di quello che è stato inviato. È possibile fare anche di più verificando esattamente cosa importa ma intando partiamo da lì…

Grazie mille intanto per questo primo riscontro.
Dove trovo il log dei messaggi inviati? Siamo in fase di test. Ma a giorni saremo ufficialmente in APP come Comune…

Sotto debug ci sta la visualizzazione dei messaggi in coda e inviati, quelli inviati iniziano con sent:codicefiscale. Per fare cose più sofisticate puoi inviare direttamente il file di excel all’importer e vedere cosa ritorna. La procedura è questa , con tools unix (linux/mac):

DATA="nome/de/file/di/data.xlsx"
URL="http://localhost:3280/api/v1/web/guest/iosdk/import"
JSON='{"file": "'$(base64 $DATA | tr -d '\n')'"}'
HEAD="Content-Type: application/json"
curl -s $URL -H "$HEAD" -d "$JSON" 

L’output è un file json convertito da cui si può controllare che dati sono stati esportati.

Ciao! Anch’io ho litigato parecchio con le date a causa della formattazione sia del file excel che della conversione poi in JSON. A momento sono riuscito a stabilizzare la generazione sia del promemoria che della richiesta di pagamento. Non funziona ancora la gestione dell’offset UTC: la data viene convertita correttamente nel messaggio ma poi nell’app c’è un ora di differenza.
Ho committato sul mio fork se volete provare. https://github.com/tkdudine/io-sdk-javascript/tree/scadenza_pagamento. Trovate anche un file di esempio che funziona!

Ora mi ricordo… il connettore di Excel era stato fatto prima che fosse stato aggiunto il supporto alle scadenze e non era stato aggiornato, modifica che hai fatto appunto tu, @andrea.saccavini.

Grazie della Pull Request la revisiono subito

2 Mi Piace

Ho verificato e mergiato le modifiche di @andrea.saccavini , ora però il file di dati richiesto è diverso.

@giuragu portresti aggiornare il connettore? Dovresti andare nella directory, fare git pull origin master e poi ./build.sh dall’editor. Non ho modo di verificare ora, per favore fai un test e facci sapere se è ok…

1 Mi Piace

Ho fatto una prova con il merge e a me funziona.

1 Mi Piace

Buongiorno,
grazie per le dritte su IO-SDK. In realtà la domanda iniziale era relativa a IO in generale ed al suo back office. Però sto iniziando a provare IO-SDK e quindi alla fine il vostro intervento si rivela comunque necessario e quindi utilissimo. Se comunque avete qualche info sul perché non funzioni questa cosa nel back office di IO sono qui :slight_smile:
Ancora grazie

Hmmm se guardi quello che fa IO-SDK (qui) hai un esempio di una funzione che riesce a comunicare con il server e a mandare notifiche.

1 Mi Piace

Buongiorno @giuragu
dall’interfaccia di backoffice di IO puoi inviare il promemoria impostando la data di scadenza che , al contrario di quel che sembra, non serve solo per il pagamento ma per il “messaggio”. Ho fatto diverse prove nel w.e. proprio per studiare il comportamento e infatti ho trovato un piccolo bug anche in IO-SDK proprio sulla gestione della data. Appena posso vedo di proporre un fix.

1 Mi Piace

grazie. Verifico ad esempio se il formato che vedo “2021-01-01T00:00:00.000Z” può risolvere o meno.

Si quando si invia singolo messaggio prende correttamente scadenza e si attiva promemoria. Non per invio da files. Grazie per la proposta di fix.

Aspetta un po’ … mi stai dicendo che la data di scadenza la devo mettere sempre? Il codice di send.py e’ scritto per cercare di inviare sempre un messaggio valido anche se i parametri sono “poco curati”, che valore gli do se non ce l’ ho?

No, non mi sono spiegato: ora la data di scadenza viene testata sse c’è un importo, viceversa invece va testata e valorizzata indipendentemente dall’importo:

  • data scadenza <> null -> valorizzo e produce lato utente il promemoria
  • importo <> null -> controllo anche il codice dell’avviso e il fatto che sia pagabile o meno oltre scadenza e lato utente compare anche l’azione “paga”

Infatti la struttura del dato sull’API è la seguente:

  "time_to_live": 3600,
  "content": {
    "subject": "Welcome new user !",
    "markdown": "# This is a markdown header\n\nto show how easily markdown can be converted to **HTML**\n\nRemember: this has to be a long text.",
    "payment_data": {
      "amount": 1,
      "notice_number": "string",
      "invalid_after_due_date": false
    },
    "prescription_data": {
      "nre": "stringstringstr",
      "iup": "string",
      "prescriber_fiscal_code": "TCNZRO80R13C555Y"
    },
    "due_date": "2018-10-13T00:00:00.000Z"
  },
  "default_addresses": {
    "email": "foobar@example.com"
  },
  "fiscal_code": "SPNDNL80R13C555X"
}

e due_date sta fuori da payment_data

@andrea.saccavini ti ho editato il messaggio, basta mettere 3 backticks prima e dopo, e viene il codice bello formattato e leggibile…

Tipo cosi’?

Yes! Per fare un test devi rilasciare una snap?

Puoi aggiornare l’azione “in place”:

curl https://raw.githubusercontent.com/sciabarracom/io-sdk/fix-date/admin/packages/iosdk/send.py >send.py
iosdk debug wskprops
wsk action update iosdk/send send.py --docker sciabarracom/actionloop-python-v3.7:2020-10-21

Test effettuato, la modifica funziona perfettamente!
Se vuoi fare bingo, dovresti capire dove si introduce l’errore sull’ora (un ora in più sull’app rispetto a quella prevista) ovvero se sta in io-sdk o in io-backend. Nella porzione di codice analizzata non vedo nessuna azione “sospetta”.

1 Mi Piace