It is currently 7 June 2025, 20:15 Advanced search

IDManager ed esecuzione script Custom

Questo forum è nato con lo scopo di raccogliere le proposte di modifica di Instant Developer e discuterne insieme.

IDManager ed esecuzione script Custom

Postby teopost » 14 March 2011, 15:04

Sono rimasto piacevolmente colpito dalla splendida funzionalità di deploy automatico introdotta in INDE.
Credo che in molti casi possa essere veramente utile.
Tuttavia, ci sono alcuni casi che, con l'attuale implementazione non riesco a coprire.
Nella maggior parte di installazioni presenti presso i clienti, abbiamo alcune personalizzazioni che riguardano vari aspetti.
Spesso abbiamo icone (splash e quant'altro) personalizzate per il cliente.
Non solo.
In alcuni casi invece ci sono stored procedure e/o funzioni di database personalizzate che vengono applicate dopo il deploy standard perchè, ad esempio, i dati che devono essere mostrati vengono presi da un database di integrazione.
In altri casi abbiamo addirittura script sql che vengono applicati normalmente dopo un deploy per inserire e modificare dati che il deploy standard aggiusta per i fatti suoi (ad esempio i codici di errore dell'applicativo che vengono messi su db).
Tutte queste attività vengono effettuate eseguendo un batch che, dopo l'installazione standard, rimette a posto le cose.
Per ogni cliente, sulla macchina di produzione, abbiamo un batch per riapplica le personalizzazioni.
Potrei risolvere tutti i miei problemi avrei bisogno che il deploy fatto con l' IDManager mi permettesse di eseguire questo script in una fase postuma a quella del deploy.
Per quanto mi riguarda credo che sia una funzionalità essenziale. A meno che non abbiate un'altra idea su come gestire la cosa.
Oracle Database Administrator
User avatar
teopost
 
Posts: 211
Joined: 26 October 2010, 20:46

Re: IDManager ed esecuzione script Custom

Postby g.lanzi » 23 March 2011, 10:01

Ti dico come procedo io di solito:
  • Per le immagini e i file personalizzati per applicazione effettuo il primo deploy e poi li escludo dal deploy del manager, così non verrà mai cambiato il file presente sul server
  • Per quanto riguarda l'adeguamento del database di solito metto una procedura nell'applicazione stessa, visibile solo all'amministratore di sistema, che mi propone automaticamente di effettuare l'operazione riconoscendo lo stato modificato.

E' vero che va fatto a mano la prima volta, ma tanto l'applicazione devi aprirla comunque per verificare che funzioni. In quel frangente finisco il deploy.

Voglio farti una domanda: ma se il tuo script dà errore cosa dovrebbe fare IDManager? E come si fa a capire che è in errore? Non è così semplice decidere se uno script fa parte dell'operazione di deploy o meno, almeno non in automatico.
Giuseppe Lanzi
Director of Support services
Pro Gamma S.p.A.
User avatar
g.lanzi
Pro Gamma
Pro Gamma
 
Posts: 3504
Joined: 29 September 2010, 10:24
Location: Bologna

Re: IDManager ed esecuzione script Custom

Postby lucabaldini » 23 March 2011, 10:18

Potresti scrivere un po' più in dettaglio cosa fai oggi con uno dei tuoi BATCH? Magari me ne potresti inviare uno via e-mail.
Perché non fai eseguire il batch all'applicazione in automatico all'avvio se non è mai stato eseguito? Per esempio potresti controllare se esiste un file su disco e se esiste potresti eseguire il tuo BAT e cancellare il file. Con In.de potresti decidere volta per volta se inviare quel file al manager e in questo modo chiedere all'applicazione di completare l'installazione. Tra l'altro per far sì che l'applicazione esegua il tuo BAT è sufficiente una sola riga Visual Code:
Code: Select all
Applicazione.Shell("PercorsoBAT")


Certo, non ci vuole molto ad aggiungere una proprietà opzionale sul manager che permetta di eseguire un file BAT arbitrario... E' solo che vorrei capire meglio qual è la tua esigenza, vedere se interessa a qualcun altro e, magari, far sì che possa essere utilizzata da tutti.
Per esempio, invece di lanciare un BATCH potrei, al termine dell'aggiornamento dell'applicazione, far sì che il manager avvisi l'applicazione con un apposito evento per dirle che è terminato l'aggiornamento. Per esempio potrei far sì che l'applicazione venga subito risvegliata dopo l'aggiornamento e venga notificato un apposito evento (OnBrowserMessage con Messaggio=POSTPUBLISH?) e lì dentro, in visual code, potresti scrivere la tua procedura di completamento pubblicazione.

Da ultimo, come già ti chiedeva @g.lanzi, vorrei capire meglio come il manager si debba comportare riguardo all'esecuzione e l'eventuale fallimento del BATCH. Deve annullare l'aggiornamento? Il BAT deve essere eseguito "in transazione" ovvero prima di committare le operazioni su DB e sul Filesystem? O deve essere eseguito alla fine se tutto il JOB di pubblicazione ha avuto successo? Per i file splash o altro non potrebbe valer la pena inserirli su database come BLOB in una apposita tabella di parametri dell'applicazione?
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: IDManager ed esecuzione script Custom

Postby teopost » 23 March 2011, 11:31

Nel caso in cio il MIO batch fallisca, ID manager non se ne deve preoccupare.
Quello che scrivo nel BAT l'IDManager non lo può sapere e non mi aspetto che risolva eventuali problemi che il bat ha causato.

Ecco un esempio di un file bat:

Code: Select all
@echo Aggiorno Vertical Common
@sqlcmd -S CRM -U CIM -P CIM -i VerticalCommon.sql

@echo Aggiorno Vertical Prod
@sqlcmd -S CRM -U CIM -P CIM -i VerticalPROD.sql

@echo Aggiorno Integrazione PROD
@sqlcmd -S CRM -U CIM -P CIM -i DDL_IntegrazionePROD.sql

@echo Copio i files custom
@copy "D:\Inetpub\Apex-net Auto Update\Files Personalizzazioni\CIM\*.*" "D:\Inetpub\Apex-net CIM\CIM\images"

@echo Copio file CT
@copy "D:\Inetpub\Apex-net Auto Update\Files Personalizzazioni\NET-CT\*.*" "D:\Inetpub\Apex-net CIM\CT"
@copy "D:\Inetpub\Apex-net Auto Update\Files Personalizzazioni\NET-CT\App_GlobalResources\*.*" "D:\Inetpub\Apex-net CIM\CT\App_GlobalResources"
@copy "D:\Inetpub\Apex-net Auto Update\Files Personalizzazioni\NET-CT\App_LocalResources\*.*" "D:\Inetpub\Apex-net CIM\CT\App_LocalResources"
@copy "D:\Inetpub\Apex-net Auto Update\Files Personalizzazioni\NET-CT\App_Themes\Blus\*.*" "D:\Inetpub\Apex-net CIM\CT\App_Themes\Blus"
@copy "D:\Inetpub\Apex-net Auto Update\Files Personalizzazioni\NET-CT\App_Themes\Blus\Image\*.*" "D:\Inetpub\Apex-net CIM\CT\App_Themes\Blus\Image"
@copy "D:\Inetpub\Apex-net Auto Update\Files Personalizzazioni\NET-CT\App_Themes\images\*.*" "D:\Inetpub\Apex-net CIM\CT\App_Themes\images"


Come vedi Il suddetto file esegue a sua volta alcuni script SQL che sovrascrivono alcune procedure presenti "standard" con alcune "personalizzate"

Mettere l'esecuzione del file bat nell'initializa della mia applicazione mi sembra poco bello.
Vorrei che agli utenti comparisse la maschera di login solo ad aggiornamento finito.
Se ad esempio devo cambiare l'immagine dello splash, vorrei farlo prima di mostrare la pagina di login.
L'IDManager, che si occupa di installare gli aggiornamenti, mi sembrava il posto migliore.
Oracle Database Administrator
User avatar
teopost
 
Posts: 211
Joined: 26 October 2010, 20:46

Re: IDManager ed esecuzione script Custom

Postby teopost » 23 March 2011, 11:35

Aggiungo che l'implementazione che ho suggerito potrebbe essere usata anche per altri scopi.
Estendendo l'idea e ipotizzando di poter eseguire batch in pre e in post installazione, si potrebbe ad esempio fare un batch che esegue il backup del database prima di eseguire l'aggiornamento.
Oracle Database Administrator
User avatar
teopost
 
Posts: 211
Joined: 26 October 2010, 20:46

Re: IDManager ed esecuzione script Custom

Postby lucabaldini » 29 June 2011, 7:22

L'idea che hai suggerito mi è piaciuta... quindi l'ho implementata in 10.1

Trovi maggiori dettagli qui: http://doc.progamma.com/?ARTID=27D8CFF2-42F8-4DDD-8D88-6C369ABB6E4A
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: IDManager ed esecuzione script Custom

Postby teopost » 29 June 2011, 9:57

Ottimo. Gran lavoro. Grazie
Oracle Database Administrator
User avatar
teopost
 
Posts: 211
Joined: 26 October 2010, 20:46


Return to Proposte di modifica

Who is online

Users browsing this forum: No registered users and 11 guests