Script per impedire creazione record duplicato

Come utilizzare gli script. Automatizzare gli archivi. Utilizzo dei pulsanti

Moderatore: Moderatori

Rispondi
sargul
Messaggi: 3
Iscritto il: martedì 25 giugno 2019, 22:06
Versione FileMaker: 14
Sistema operativo: windows 10

Script per impedire creazione record duplicato

Messaggio da sargul » martedì 25 giugno 2019, 22:24

Salve a tutti, non sono uno sviluppatore, ho creato con successo un modulo gestionale per il mio centro medico. Un ID cliente univoco permette di identificare i clienti in fase di accettazione ed è ovviamente univoco. Un ID appuntamento in una tabella correlata, varia da un cliente all'altro ed ovviamente uno stesso ID cliente può avere più ID appuntamento a secondo che torni più volte e con più medici differenti.

Ho un problema pratico. Alcuni medici e la stessa segretaria van in difficoltà con i pulsanti di lancio, per cui, a volte, la segretaria crea due schede appuntamenti per lo stesso ID cliente, per errore, quando in sala ha più persone o risponde al telefono la distrazione ci può stare.

E lo stesso vale per i medici che usano una tabella di refertazione che crea un nuovo record correlato ad accettazione e scheda appuntamenti rispettivamente mediante l'ID cliente (che permette l'importazione di nome-cognome e codice fiscale) e ID appuntamento (che permette l'importanza di tipologia di esame e specialista che eseguiranno la visita).

Volevo creare uno script da inserire nella scheda appuntamenti e nella scheda referti che impedisse alla segretaria per la prima ed ai medici per la seconda di creare una nuova scheda appuntamento ed una nuova scheda di refertazione se già create un'attimo prima.

Avevo pensato ad un impunt che riconoscesse se l'ID APPUNTAMENTO nella scheda referto fosse giù stato usato, in maniera da eliminare il record facendo ritornare indietro al piano di lavoro giornaliero che ogni medico ha a disposizione in cui vede, in lista, i nomi degli utenti accettati e registrati con loro.
Qualcuno sa darmi qualche info utile?
Ho trovato un GET ERROREVALUTAZIONE 504, ma non funziona con il campo ID appuntamento, e se lo applico al campo Referto, esegue il blocco su ogni tentativo di creazione di un nuovo file.

Sarebbe interessante, se ci fosse qualcosa si opposto a EVuoto, se vede che il campo IDAppuntamento contiene il dato numerico dovrebbe segnalare che non si può procedere.

Avatar utente
fabio.beri
Messaggi: 1274
Iscritto il: sabato 4 ottobre 2014, 16:24

Re: Script per impedire creazione record duplicato

Messaggio da fabio.beri » mercoledì 26 giugno 2019, 12:33

Buon giorno. Potrebbe essere sufficiente fare una SELECT per verificare se esiste un altro record con quell'ID referto. La sto buttando lì, perché per essere esatti, bisognerebbe conoscere l'applicazione.

Ti posto un link di spiegazione delle select sql : https://fmhelp.filemaker.com/help/16/fm ... tesql.html
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18

Omnia Studio

-----------------------------------------
http://www.omniagest.it

sargul
Messaggi: 3
Iscritto il: martedì 25 giugno 2019, 22:06
Versione FileMaker: 14
Sistema operativo: windows 10

Re: Script per impedire creazione record duplicato

Messaggio da sargul » sabato 29 giugno 2019, 15:07

Grazie della risposta . Io uso FMP14, al momento ho risolto rendendo univoco il campo contenente il codice fiscale per la anagrafica clienti.
Sicchè quando la segretaria si trovasse, nella tabella anagrafica, a tentare di creare due fascicoli per lo stesso cliente, riconosciuto attraverso il c.f, viene segnalato il messaggio di Ripristina per file già creato
Idem quando dalla lista pazienti di giornata (che mostra in formato lista, le schede appuntamenti create dalla segretaria sottoclassificate per medico e data esame) il medico tenta di creare una seconda scheda referti sullo stesso ID appuntamento.
Funziona ma con due limiti:
- che al ripristina poi mi va all'ultimo record
- che il ripristina viene lanciato quando si finisce di riempire l'unico campo su cui il medico lavora (gli altri sono trascritti dalle relazioni con la scheda appuntamenti e la scheda anagrafica), quello dove scrivere il referto.
Seccante la seconda perchè se non si è accorto di far la cosa sbagliata, magari scrive un bel papello che gli sarà cancellato, dovuto ma seccante se il referto di cui per errore si è tentato il duplicato è invece rimasto vuoto....
Seccante perchè vorrei semplificargli la vita e avere uno script che riconoscesse l'esistenza di due ID appuntamenti già presenti e quindi un duplicato, procedere alla eliminazione del doppione e attraverso un search portando sul record contenente l'ID appuntamento anzichè all'ultimo record nel formato.
Insomma ottimizzare

sargul
Messaggi: 3
Iscritto il: martedì 25 giugno 2019, 22:06
Versione FileMaker: 14
Sistema operativo: windows 10

Re: Script per impedire creazione record duplicato

Messaggio da sargul » martedì 2 luglio 2019, 16:19

fabio.beri ha scritto:
mercoledì 26 giugno 2019, 12:33
Buon giorno. Potrebbe essere sufficiente fare una SELECT per verificare se esiste un altro record con quell'ID referto. La sto buttando lì, perché per essere esatti, bisognerebbe conoscere l'applicazione.

Ti posto un link di spiegazione delle select sql : https://fmhelp.filemaker.com/help/16/fm ... tesql.html
:D :D :D :D :D :D :D :D :D :D :D :D :D :D

Ringrazio comunque del supporto.
Non so se ha l'eleganza attesa ma sicuramente questo script da me scritto fa quello che ho chieesto, identifica il duplicato presente nel formato in cui viene scritto il record, trovando mediante riconoscimento di valore univoco che si è già utilizzato l'ID Appuntamento e dopo il ripristina, ti fa la ricerca dell'originale e ti ci porta.

imposta variabile [$Current_Customer_ID;
Valore: Anagrafica Clienti:: ID Cliente
imposta variabile [$Current_Appointment_ID;
Valore: Scheda Appuntamenti:: ID Appuntamento
Vai al formato [Scheda Referti]
Nuovo record
Id [Get (Ultimoerrore)="504"]
Elimina il record
End if
Esegui la ricerca per Scheda Referti: ID Appuntamento=$Current_Appointment_ID
Mostra tutti i record

E' vero che in questo lavoro di anche se non scatta l'IF esegue l'ultima istruzione, l'esegui ricerca, che diventa ridondante non essendoci alcun duplicato e quindi non essendoci stato il ripristina record a monte del lancio dello script, ma è tutto così veloce che la ridondanza della ricerca non si vede

Saluti

Rispondi