English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Document Orientation
  • IOT Connector
  • Events

Before Save

evento copia link

Condizioni di notifica

Questo evento viene notificato al documento più volte durante la fase di salvataggio verso il servizio. Il parametro Phase indica a quale stato è arrivata la procedura di salvataggio e può valere da 0 a 3, come indicato nel seguente elenco:

  • Fase = 0 - PRE SAVE: in questa fase a tutti i documenti in fase di salvataggio viene notificato che la procedura di salvataggio è iniziata. È possibile usare questa fase per sistemare lo stato reciproco dei sotto documenti.
  • Fase = 1 - INSERTING: in questa fase vengono inseriti i documenti in stato Inserted. L'evento viene notificato a tutti i documenti in fase di salvataggio, che siano in stato Inserted o meno, subito prima dell'esecuzione della chiamata al servizio.
  • Fase = 2 - UPDATING: in questa fase vengono aggiornati i documenti in stato Updated. L'evento viene notificato a tutti i documenti in fase di salvataggio, che siano in stato Updated o meno, subito prima dell'esecuzione della chiamata al servizio.
  • Fase = 3 - DELETING: in questa fase vengono cancellati i documenti in stato Deleted. L'evento viene notificato a tutti i documenti in fase di salvataggio, che siano in stato Deleted o meno, subito prima dell'esecuzione della chiamata al servizio. La notifica per questa fase avviene in ordine inverso, ossia prima i documenti figli e poi i padri.
  • Fase = 4 - LINKING: in questa fase vengono aggiornati i collegamenti dei documenti in stato Updated. L'evento viene notificato a tutti i documenti in fase di salvataggio che hanno almeno un collegamento verso un'altra entità o che sono contenuti in collection con molteplicità N:M, subito prima dell'esecuzione della chiamata al servizio.

Utilizzo consigliato

L'evento Before Save viene utilizzato per rendere coerenti i documenti ed i sotto documenti prima del salvataggio, oppure qualora la richiesta composta dal framework sia errata o incompleta.

Non deve essere utilizzato invece per effettuare validazioni o segnalare errori, infatti a tale scopo occorre utilizzare l'evento OnValidate.

Argomenti

Document Documento da salvare.
Skip Parametro di output booleano. Se impostato a true segnala al framework di non effettuare la chiamata al servizio perché sarà gestita in autonomia.
Cancel Parametro di output booleano. Se impostato a true segnala al framework di annullare la procedura di salvataggio a causa di errori occorsi. Poiché tutto il documento viene salvato nella stessa transazione, l'intero salvataggio verrà annullato.
Phase È un numero intero da 0 a 3 che indica lo stato di avanzamento del salvataggio come indicato all'inizio dell'articolo.
Url Path Parte di URL che verrà appeso all'endpoint del servizio per effettuare la chiamata.
Parameters Parametri che verranno inviati durante la chiamata
Link Questo parametro indica il link delle classi di servizi OData che sta per essere salvato. Vale sempre -1 se Phase è diverso da 4.
  • Durante la notifica di questo evento, il documento è ancora in stato modificato. È quindi possibile sapere quali modifiche sono state fatte e qual è il valore originale delle proprietà.
  • Questo evento viene notificato in ogni fase a tutti i documenti in fase di salvataggio. Ad esempio, BeforeSave Fase 1 viene notificato sia ai documenti in stato Inserted che agli altri. Dopo aver notificato l'evento, l'operazione di inserimento viene effettuata solo per quelli in stato Inserted.
  • L'evento con Phase=4 viene notificato solo per i documenti di servizi OData e vale 0 se il documento è contenuto in una collection con molteplicità N:M oppure un numero maggiore di 0 corrispondente al numero della proprietà del documento corrispondente al collegamento da salvare.
  • I documenti di servizi OData contenuti in collection con molteplicità N:M non vengono salvati in quanto non sono figli propri del documento master.
  • Si consiglia di aprire il sistema di debug per rendersi conto dell'effettivo ciclo di notifica degli eventi BeforeSave, anche in congiunzione con i corrispettivi eventi BeforeCommit ed AfterCommit del pannello DO.
  • Qualora il servizio richieda l'autenticazione OAuth e l'AccessToken sia scaduto, il framework tenta di rinnovarlo automaticamente se è valorizzato anche il RefreshToken.
  • Quando viene notificato questo evento, il framework ha già preparato la chiamata valorizzando opportunamente i parametri UrlPath e Parameters.
  • Internamente verrà usata la funzione GetHTTP per effettuare la chiamata con la mappa dei parametri così com'è. Essa contiene già il parametro ID_HEADERS con gli header da aggiungere alla richiesta tra cui l'header per l'autenticazione (Authorization: Bearer AccessToken ).
  • La chiamata verso il servizio è di tipo POST per l'inserimento, PUT per l'aggiornamento e DELETE per la cancellazione.

Ultima modifica: 15/11/2021 / Validità: da 13.1.5700

Vedi Anche

  • Inserted (proprietà)
  • Updated (proprietà)
  • Deleted (proprietà)
  • On Validate (evento)
  • Before Commit (evento)
  • After Commit (evento)
  • Access Token (proprietà)
  • Refresh Token (proprietà)
  • Get HTTP (funzione)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum