Italian Procedura schedulata

luke2012

Well-Known Member
Licensed User
Ciao a tutti,
non so se qualcuno di voi ha avuto la necessità di dover schedulare una procedura che giri regolarmente su B4J server ?
Ecco io mi stavo propio chiedendo come è possibile creare uno script / classe che aggiorni, in modalità schedulata, alcuni campi nel db locale direttamente su server.

So che si possono creare degli handlers e richiamarli (on demand) tramite un client B4A ma non so come schedurare un possibile handler che giri schedulato su server. Voi ? ;)
 

LucaMs

Expert
Licensed User
Scusa ma la domanda non MI è chiarissima (spero anche perché sono le 6:37 di mattina e ho dormito... zero).

Da dove arrivano i dati per aggiornare il db? Da come mi sembra di capire, non arrivano dal client b4a.

I cosiddetti Handler, se ci fai caso, non sono che normalissime Classi, solo che, a seconda del tipo, hanno un template diverso e puoi associarle ad un percorso del server (questo almeno è quanto mi ricordo).

Non puoi semplicemente attivare un timer che richiami l'aggiornamento del DB?
L'Interval del Timer è un long; ora, a meno che il Timer non abbia però un suo limite, puoi impostarlo fino a 9223372036854775807 millisecondi (oltre 292 mila anni, se non ho sbagliato i calcoli :p)
 

luke2012

Well-Known Member
Licensed User
Ciao Luca!
Prima di tutto grazie per aver risposto anche se la mia domanda non ti era così chiara ;)

Il "giro del fumo" che vorrei implementare, prevede una tabella con la lista dei prodotti con le relative quantità (che chiamiamo tabella A) che verranno aggiornate manualmente dall'utente tramite un'apposita client app.

All'interno del db esiste un'altra tabella che chiamiamo B che contiene i prodotti con descrizione e prezzi.
La disponibilità dei prodotti nella tabella B dipende dalla disponibilità dei relativi prodotti che la compongono contenuti nella tabella A.

Quindi a fronte dei cambiamenti (inventario continuo) che effettua l'utente sulle quantità dei prodotti contenuti nella tabella A dovrei aggiornare la tabella B andando a valorizzare un campo che indica lo stato di disponibilità di un certo prodotto (tab. B) che dipende appunto dalla disponibilità dei suoi componenti (tab. A).

Ti faccio un esempio: se il prodotto nella tabella B è una bicicletta potenzialmente ordinabile dal cliente, ma nella tabella A (componenti) manca il prodotto manubrio e il prodotto sella, devo indicare che il prodotto bicicletta (tabella B) non è disponibile.

Quindi la procedura che gira periodicamente dovrebbe fare il lavoro che ti ho indicato nell'esempio.
In questo modo l'utente che legge la tabella B dei prodotti ordinabili dal cliente, sà per tempo cosa è disponibile al momento dell'ordinazione del cliente.

Ora ti è un pò più chiaro ? ;)
 

LucaMs

Expert
Licensed User
Non moltissimo (beh, non avendo dormito di notte, ho dormito finora, spero sia solo questo il problema, altrimenti si tratta di demenza senile leggermente anticipata :p).

Fino ai 4/5 del tuo post precedente, avevo supposto una cosa, ma le ultime due righe me ne fanno pensare un'altra (che fossero componenti, possibili parti di articoli nella tabella A, non era chiaro dall'inizio).

Comunque, non penso che cambi molto. perché penso che non debba essere il server a farsi un giretto a scadenze x.

La tabella A "dipende" dalla B in qualche modo? Si. La tabella B viene modificata dagli utenti? Si. Quindi, perché non far aggiornare la A dal server nel momento in cui l'utente modifica la B???

(consiglio utile e gratuito - oggi mi sento genereso :p: io creerei una tabella Articoli senza i prezzi ed una tabella Prezzi in relazione con la prima.
Questo potrebbe essere fatto anche tra Articoli-Componenti - sarebbe anche possibile utilizzare di Trigger che, alle modifiche su Componenti, aggiornino automaticamente Articoli, ma tali automatismi sono complicati e soprattutto poco gestibili)

Se mi sveglio meglio, rileggerò e magari capirò meglio (spero :))
 
Top