AREASMS - Invio messaggi SMS¶
Posizione nel menu Programma non a menu Linkage section
| Tipo | Dato | Formato | Contenuto |
|---|---|---|---|
| INPUT | AREASMS-OPE | x(20) | Vedi argomenti successivi |
| AREASMS-TESTO | x(500) | Testo del messaggio | |
| AREASMS-DEST-NUM | x(15) | Numero di telefono a cui inviare il messaggio, o da accodare all'elenco Se contiene |
|
| AREASMS-DEST-BULK | x(01) | Usato con operazione "INVIA*" Se "S", il numero a cui inviare non e' quello passato in input con AREASMS-DEST-NUM, ma il file di testo riempito precedentemente |
|
| AREASMS-ID-SMS | x(20) | Id dell'SMS generato | |
| AREASMS-ATT | 9(12) | Numero attività CRM da agganciare al messaggio | |
| AREASMS-INFO | 9(04) | Usata in "ACCODA" Contiene il numero di informazione da cui proviene il numero |
|
| AREASMS-NOM | 9(08) | Usata in "ACCODA" Contiene il codice nominativo a cui fa riferimento l'accodamento |
|
| AREASMS-USCITA-TST-FUN | 9(05) | Uscita con tasto funzione senza invio e diverso da ESc. (passare il valore del tasto funzione che se passato lo fa uscire senza invaire sms) il campo areasms-stato-invio assumera' il valore del tst-fun. |
|
| AREASMS-ID | 9(12) | Id della testata messaggio | |
| OUTPUT | AREASMS-STATO-INVIO | 9(05) | |
| FILLER | x(978) |
Logica generale Questo programma fornisce insieme l'interfaccia per l'invio manuale di un SMS, e alcune funzioni di utilità necessarie alla preparazione e all'invio stesso. Maschera del programma
La maschera verrà visualizzata in caso di "INVIO-MAN" Dati importanti File "destinatari" File sequential di appoggio che viene riempito con successive operazioni "ACCODA", e che serve come base per determinare i numeri a cui inviare SMS. Potrà contenere direttamente numeri o altre informazioni da cui ricavarle. Vedi Metodi di ricerca destinatario File "istruzioni" File sequential che viene generato al momento dell'invio vero e proprio. Contiene le informazioni da passare all'esegubile "AREASMS.EXE" che colloquia direttamente con il server KPN. Tabella W/S "posticipi" Tabella che dovrà contenere un elenco una tabella con gli invii previsti richiesti dall'operatore. Se la tabella è vuota l'invio sarà 1 e immediato. Elaborazione L'elaborazione cambia a seconda dell'operazione richiesta Operazioni possibili
| Operazione | Documentata? |
|---|---|
| INVIA | |
| INVIA-MAN | |
| INVIA-SILENT | Operazione: INVIA-SILENT |
| INVIA-SESSIONE | Operazione: INVIA-SESSIONE |
| ACCODA | |
| CONTROLLA | |
| RICHIEDI-POSTICIPO | Operazione: RICHIEDI-POSTICIPO |
Operazione: RICHIEDI-POSTICIPO¶
- Descrizione Richiama un sottoprogramma che permette di richiedere il posticipo del messaggio, e di inviare in successione lo stesso messaggio fino a 5 volte. Chiamata standard
| Tipo | Dato | Contenuto |
|---|---|---|
| INPUT | AREASMS-OPE | RICHIEDI-POSTICIPO |
| OUTPUT | AREASMS-STATO-INVIO | In questo caso questo dato (equivalente a funzio) potrà valere: |
| FILLER |
Elaborazione In questo caso AREASMS farà solo da tramite per la chiamata a MSGPOST: richiesta dati per invio posticipato messaggio. In AREASMS prevedere quindi una tabella di working che rispecchia quella di linkage richiesta da MSGPOST. All'inizio tale tabella sarà vuota. Ad ogni richiesta di "RICHIEDI-POSTICIPO" eseguire una chiamata a MSGPOST:
| Dato | Contenuto |
|---|---|
| MSGPOST-OPE | "ACCEPT" |
| MSGPOST-TAB-SESSIONI | Riempire la tabella con il contenuto attuale della tabella di working |
All'uscita, se MSGPOST-TF-USCITA = K-F3, salvare la tabella di linkage su quella di working. Poi in ogni caso restituire MSGPOST-TF-USCITA su AREAMS-STATO-INVIO e uscire.
Operazione: INVIA-SILENT¶
Descrizione Esegue la creazione in background di una o più sessioni del messaggio, in funzione dei dati preparati precedentemente. Poi se l'invio è immediato esegue anche "INVIA-SESSIONE". Chiamata standard
| Tipo | Dato | Contenuto |
|---|---|---|
| INPUT | AREASMS-OPE | INVIA-SILENT |
| AREASMS-DEST-BULK | Se questo parametro vale "S", significa che in precedenza sono state eseguite 1 o più chiamate con operazione "ACCODA" | |
| AREASMS-DEST-NUM | Parametro necessario se AREASMS-DEST-BULK <> "S" | |
| AREASMS-ATT | Se passato, il messaggio verrà collegato all'attività | |
| AREASMS-TESTO | Il testo da inviare | |
| OUTPUT | AREASMS-STATO-INVIO | In questo caso questo dato (equivalente a funzio) potrà valere: |
| FILLER |
Elaborazione Questa elaborazione dà per scontato che in precedenza sia stata eseguita una o più operazioni "ACCODA", con cui vengono aggiunti destinatari ad file di appoggio. In tal caso si dovrà passare AREASMS-DEST-BULK ="S" In alternativa, attualmente è possibile passare AREASMS-DEST-NUM, pero' solo nel formato "OPERATORE=nnn": in questo modo il programma effettuerà un'operazione automatica di accodamento "e-esamina-operatore" Quindi, se la tabella w/s "posticipi": * E' vuota: si dovrà eseguire un unico invio immediato; perciò: * A - Creazione sessione * B - Invio sessione * Contiene 1 o più elementi: per ciascun elemento: * A - Creazione sessione * (l'invio verrà eseguito da un programma automatico, quando si raggiunge data/ora prevista) A - Creazione sessione A.1 - Inserimento COGMSGTS
| Nome campo | Note |
|---|---|
| "S" | |
| Primo progressivo libero | |
| MST-MSG-ID | " " |
| MST-DATA-INVIO-EFF | 0 |
| MST-ORA-INVIO-EFF | |
| MST-DATA-ESITO | 0 |
| MST-ORA-ESITO | |
| MST-DATA-INVIO-PRV | Se la sessione è: |
| MST-ORA-INVIO-PRV | |
| MST-DOC-TIP | "A" |
| MST-DOC-KEY | Numero attività passato in input |
| MST-DOC-SESSIONE | Progressivo di sessione per lo stesso messaggio |
| MST-STATO-INVIO | "N" |
| MST-TESTO | Testo del messaggio passato in input |
| MST-SITUAZIONE | 0 |
| MST-FL-VISTO | "N" |
A.2 - Esame destinatari Se l'invio è: * "Manuale", il destinatario sarà 1 e si eseguirà direttamente A.2.1 * "Bulk": si scorre il file "destinatari"; ciascuna riga verrà esaminata e inclusa nell'elenco: vedi Metodi di ricerca destinatario A.2.1 - Inserimento COGMSGES
| Nome campo | Note |
|---|---|
| "S" | |
| MST-ID | |
| Progressivo di destinatario | |
| MSE-DATA-INVIO | Data/ora invio del messaggio |
| MSE-ORA-INVIO | |
| MSE-DST | Destinatario (numero di telefono) |
| MSE-DES-ESITO | " " |
| MSE-DST-TIP | " " |
| MSE-DST-KEY | " " |
(Perchè ora non viene memorizzato il destinatario collegato?) Parte da introdurre in una operazione ad hoc Il file di istruzioni è un file di testo che viene creato in EXT-TMP-DIR, con nome "sms-data_sistema-ora_sistema.ini". Contiene le informazioni di invio come richiesto dall'eseguibile "AREASMS"; il contenuto quindi sarà:
| Riga | Note |
|---|---|
| !!!AZIONE=1 | Riga fissa |
| !!!TESTOSMS=testo | Il testo da inviare |
| !!!NUMERISMS=numero_destinatario | Questa riga è ripetuta "n" volte, in funzione dei numeri di telefono a cui inviare Per ciascun numero destinatario verrà anche generato un record di dettaglio COGMSGES (vedi A.2.1) Se l'invio è: Metodi di ricerca destinatario |
Operazione: INVIA-SESSIONE¶
Descrizione Operazione di pura elaborazione, che parte da una sessione ben definita e la invia. Chiamata standard
| Tipo | Dato | Contenuto |
|---|---|---|
| INPUT | AREASMS-OPE | INVIA-SESSIONE |
| AREASMS-ID | ID della sessione da inviare | |
| OUTPUT | AREASMS-STATO-INVIO | In questo caso questo dato (equivalente a funzio) potrà valere: |
| FILLER |
Elaborazione Il programma chiamante dovrà conoscere l'id della sessione da inviare. La sessione richiesta dovrà avere MST-STATO-INVIO = "N" (ancora in attesa di invio). Il processo dovrà essere: * MST-STATO-INVIO verrà portato a "T", in modo che eventuali altri processi non eseguano l'elaborazione nel frattempo * Lettura dei record COGMSGES collegati all'id richiesto; per ciascuno * Creazione di un record sul file "istruzioni" * Chiamata al programma di invio messaggio "Areasms.exe" * Modifica a testata:
| Nome campo | Note |
|---|---|
| MST-DATA-INVIO-EFF | Data/ora sistema |
| MST-ORA-INVIO-EFF | |
| MST-STATO-INVIO | "S" |
Composizione file "istruzioni" Il file di istruzioni è un file di testo che viene creato in EXT-TMP-DIR, con nome "sms-data_sistema-ora_sistema.ini". Contiene le informazioni di invio come richiesto dall'eseguibile "AREASMS"; il contenuto quindi sarà:
| Riga | Note |
|---|---|
| !!!AZIONE=1 | Riga fissa |
| !!!TESTOSMS=testo | Il testo da inviare |
| !!!NUMERISMS=numero_destinatario | Questa riga è ripetuta "n" volte, in funzione dei numeri di telefono a cui inviare |
"e-esamina-operatore"¶
Questa routine viene eseguita quando il destinatario passato è un codice operatore; in questo caso 1. Lettura dell'anagrafica operatore: PRNTOPE2 2. Si esamina PTO2-SMS: potrebbe contenere + numeri di telefono separati da ";" 3. Ogni numero valido trovato viene accodato al file destinatari
Metodi di ricerca destinatario¶
I destinatari da accodare ad un messaggio vengono registrati nel file "destinatari", che potrebbe essere composto nel seguente modo:
| DST-NUM | DST-INFO | DST-NOM | Elaborazione |
|---|---|---|---|
| "NOMINATIVO" | 0 | cod_nominativo | Si esaminano i contatti del nominativo cod_nominativo Saranno considerati solo quelli con: |
| num_telefono | 0 | 0 | Il numero di telefono viene ripulito da caratteri non conformi e utilizzato |
| num_telefono | > 0 | 0 | Questo caso è utilizzato in caso di invio manuale. L'utente potrebbe aver spuntato una sola delle informazioni configurate che contengono numeri di telefono. In questo caso DST-INFO conterrà il numero informazione da cui proviene il numero DST-NUM. Quindi se l'info collegata risulta spuntata, il numero sarà utilizzato, altrimenti sarà scartato |
Estratto da documentazione interna ClickUp