Rechercher dans ce blog

mardi 17 avril 2012

Compteur volumétrique d'ECS associé à un controleur thermique

Cette association de compteurs est modélisée par un contrôleur de rendement entre un compteur thermique père (Chauffage & ECS ou ECS) et un compteur volumétrique d’ECS.

Le compteur thermique père est un compteur de chauffage&ECS en mode été (à l'état Marche) ou un compteur thermique ECS.

L’association avec le compteur volumétrique d’ECS se fait par le bais de son compteur fils virtuel multiplicateur thermique ECS. Le compteur virtuel multiplicateur utilise le ratio de conversion qECS ou R TH, VOL.

Noter que les alertes de rendement sont associées aux relevés du compteur père.

lundi 16 avril 2012

Création de compteur virtuel multiplicateur

Un compteur virtuel multiplicateur est créé automatiquement par le système, à la création d'un compteur volumétrique. Il y a alors 2 cas de création d'un multiplicateur:
- si un ratio est renseigné au niveau du compteur
- si une valeur qECS est assignée au niveau de la ligne de contrat (uniquement pour les volumétriques ecs)

jeudi 12 avril 2012

NO PERMISSION TO ACCESS THIS DATA MODEL

L'erreur suivante est due à un chargement du datacontrol avec le mauvais moduleId.
Pour corriger :

- ajouter le droit d'accès à partir de cc pour ce datamodel
- mettre le moduleId du datamodel en paramètre (on le fait déjà dans Serialiseur)





_!_!_ERROR_!_!_  NO PERMISSION TO ACCESS THIS DATA MODEL :dataModel[CCIAG_CC_DEMANDE_TABBORD] DataModelModuleId[cc] AccessModule[amon] java.lang.Throwable
-    at com.imagina.packbox.logger.LoggerMessage.getPrintStack(LoggerMessage.java:323)
-    at com.imagina.noon.toolbox.datamodel.DataModelFactory.getDataModel(DataModelFactory.java:1102)
-    at com.imagina.noon.toolbox.datacontrol.core.DataControlFactory.getByModelId(DataControlFactory.java:360)
-    at com.imagina.noon.toolbox.datacontrol.core.DataControlFactory.loadWithDataOnlyForData(DataControlFactory.java:2385)
-    at com.imagina.noon.toolbox.datacontrol.core.DataControlFactory.getCompleteDataControlOnlyForData(DataControlFactory.java:1830)
-    at com.imagina.noon.toolbox.datacontrol.core.DataControlFactory.getDataControl(DataControlFactory.java:1116)
-    at com.alma.cciag.cc.aten.Serialiseur.getDataControl(Serialiseur.java:392)
-    at com.alma.cciag.cc.aten.Serialiseur.getDataControl(Serialiseur.java:315)
-    at com.alma.cciag.cc.aten.scheduler.GenTabBordScheduler.generateTabBord(GenTabBordScheduler.java:345)
-    at com.alma.cciag.cc.aten.scheduler.GenTabBordScheduler.execute(GenTabBordScheduler.java:286)
-    at com.imagina.noon.engine.NoonActivity.executeActivity(NoonActivity.java:506)
-    at com.imagina.sobek.engine.SobekMapExecute.execute(SobekMapExecute.java:180)
-    at com.imagina.noon.activities.batch.BatchReport.executeUrl(BatchReport.java:1152)
-    at com.imagina.noon.activities.batch.BatchReport.executeBatch(BatchReport.java:776)

mercredi 11 avril 2012

DatacontrolCommandTransition

pour avoir la possibilité de faire un rollback sur un ensemble de traitement en cas d'erreur : on peut utiliser une telecommande

attention l'utilisation de la telecommande n'améliore pas les performances

    try {
            DataControlCommandTransition telecommande = new  DataControlCommandTransition(atenContext);
            telecommande.beginTransaction(atenContext);


foreach (.............datacontrols ){
//traitement sur le dc
telecommande.playtransition(datacontrol);



}
    telecommande.endTransaction(true);
        } catch (LoggerException e1) {
            String eventsString = "";
            for (LoggerEvent event : e1.getEventList()) {
                if (event != null) {
                    eventsString += Utils.nonNull(event.toString()) + " ; ";
                }
            }






L'erreur suivante arrive si on utilise dans le même thread monDatacontrol.transition et telecommande.playtransition(monDatacontrol).

 _!_!_ERROR_!_!_  Same thread ask stmt twice !!! [null] and stackTrace=[java.lang.Throwable
    at com.imagina.packbox.database.DatabaseConnection.reserveStatementFromPool(DatabaseConnection.java:1500)
    at com.imagina.packbox.database.DatabaseConnection.createStatement(DatabaseConnection.java:791)
    at com.imagina.packbox.lock.Lock.lock(Lock.java:259)
    at com.imagina.packbox.lock.Lock.lockWait(Lock.java:201)
    at com.imagina.packbox.lock.Lock.multipleLock(Lock.java:116)
    at com.imagina.packbox.lock.LockResourceManager.lock(LockResourceManager.java:231)
    at com.imagina.noon.toolbox.datacontrol.core.DataControl.transition(DataControl.java:3455)
    at com.imagina.noon.toolbox.datacontrol.core.DataControl.transition(DataControl.java:3269)

vendredi 23 mars 2012

Définitions chaîne compteur

Période été = pour les compteurs thermiques CH et ECS: compteur à l'état marche ECS; pour les compteurs thermiques CH: compteur à l'état arrêt

Période hiver = pour les compteurs thermiques CH et ECS: compteur à l'état marche ECS et chauffage; pour les compteurs thermiques CH: compteur à l'état marche


Mois de changement d'état = dans le mois (ou plutôt dans l'intervalle de date correspondant au mois) il existe au moins un relevé avec l'événement marqué "Changement état fonctionnement"

mercredi 14 mars 2012

trier un searchform

utiliser     <form additionalfilter=" cciag_cc_frequence.AT_lifestatus like 'ACTI'" searchformid="acti" title="" defaultorder="AT_DATECREAT" >
(cf datamodelcciag_cc_ligne)

la balise fieldsort ne marche pas.

mercredi 15 février 2012

pour inclure un fichier javascript ds un écran (datamodel ou configurateur ):
<screen>
        <importjavascript classname="hotep"/>
{....}

</screen>
où hotep.js est ds le dossier javascript du module