Il est possible dans EzGED de créer vos propres scripts python pour des besoins spécifiques. Vous pourrez ainsi créer une nouvelle étape de COLD ou un travail cyclique afin de réaliser des opérations non couvertes par les scripts existants. ====== Templates ====== ===== Travail cyclique ===== #!/usr/bin/python # -*- coding: ISO-8859-15 -*- import traceback import sys import _common import common import db_common import libjobdext def execscript(params=None, edb=None, debug=0, exec_session=None): """ La fonction execscript est la fonction principale (comme une fonction main en C par exemple) qui sera appelée par le serveur des travaux afin d'exécuter le script. @param params: la liste des arguments fournis au script. @type params: list @param edb: Une instance de connexion à la base de données. @type edb: instance """ parameters = {} if params is None: #Dans le cas d'un appel en ligne de commande on récupère les arguments qui ont été fournies via cette ligne de commande. params = sys.argv #Ci-dessous on récupère dans un dictionnaire python les arguments passés au script. ret = _common.getscriptparameters(parameters, params, "instance","jobqueueid","secusrid") if ret <> 0 : return ret, str(ret) gses, vjobdir, dbtype = libjobdext.get_job_script_session(parameters, exec_session) if edb is None: db_common.sql_dbcontext(gses) db=gses.db else: gses.db=edb db=edb if db == None: return -1, gses.lng("Unable to connect to database") else: #Dans ce bloc on va écrire toute la logique de notre script. print("Hello, World!") if edb is None: #Le script a été appelé sans lui fournir une connexion à la bdd. #Dans ce cas on ferme la connexion que nous avons ouverte au sein du script. db.disconnect() return 0,"ok" if __name__ == "__main__": print sys.argv try: errorcode,errorstr=execscript() except: print "@error" traceback.print_exc(file=sys.stdout) sys.exit(-100) if errorcode <> 0: print "@error",errorstr sys.exit(errorcode) ===== Etape COLD ===== Le canevas pour une étape COLD est sensiblement identique à quelques lignes près #!/usr/bin/python # -*- coding: ISO-8859-15 -*- import traceback import sys import _common import common import db_common import libjobdext from coldtrt import coldscript class MONETAPE(coldscript): def __init__(self): coldscript.__init__(self) self.typeIn = ("PDF",) #Liste des flux en entrée self.typeOut = ("PDF",)#Liste des flux en sortie def execscript(params=None, edb=None, debug=0, exec_session=None): """ La fonction execscript est la fonction principale (comme une fonction main en C par exemple) qui sera appelée par le serveur des travaux afin d'exécuter le script. @param params: la liste des arguments fournis au script. @type params: list @param edb: Une instance de connexion à la base de données. @type edb: instance """ parameters = {} if params is not None: #Dans le cas d'un appel en ligne de commande on récupère les arguments qui ont été fournies via cette ligne de commande. sys.argv = params #Ci-dessous on récupère dans un dictionnaire python les arguments passés au script. ret = _common.getscriptparameters(parameters, sys.argv, "instance","jobqueueid","secusrid") if ret <> 0 : return ret, str(ret) gses, vjobdir, dbtype = libjobdext.get_job_script_session(parameters, exec_session) if edb is None: db_common.sql_dbcontext(gses) db=gses.db else: gses.db=edb db=edb if db == None: return -1, gses.lng("Unable to connect to database") else: #Dans ce bloc on va écrire toute la logique de notre script. print("Fait quelque chose") if edb is None: #Le script a été appelé sans lui fournir une connexion à la bdd. #Dans ce cas on ferme la connexion que nous avons ouverte au sein du script. db.disconnect() return 0,"ok" if __name__ == "__main__": print sys.argv try: errorcode,errorstr=execscript() except: print "@error" traceback.print_exc(file=sys.stdout) sys.exit(-100) if errorcode <> 0: print "@error",errorstr sys.exit(errorcode) ====== Ajouter une étape de référence ====== ===== Via interface ===== Importer le script via l'Administration -> Travaux -> Travaux de référence -> Etapes de référence