Dans un configurateur il faut utiliser la balise
importcss (cf planning javascript : configuratorplanning.xml). Il faut placer le css dans un
répertoire “style” déclaré dans le module en question ou dans le noonpublic si
commun à plusieurs module.
Rechercher dans ce blog
mardi 3 juillet 2012
jeudi 28 juin 2012
récupérer le technicien responsable d'un compteur
Exemple de code (point de départ: la ligne possédant une série de compteurs):
COALESCE((SELECT TOP 1 p2.at_firstname + ' ' + p2.at_lastname as techInstall
FROM cciag_cc_compteur
left outer join aten_prod_machine on aten_prod_machine.at_idmachine = cciag_cc_compteur.at_idmachinecompteur
left outer join ATEN_GENE_TREEL treelMachine on treelMachine.AT_NOONKEY='db:' + cast(aten_prod_machine.at_idmachine as varchar) +'@ATEN_PROD_MACHINE'
left outer join ATEN_GENE_TREEL treelEquipement on treelMachine.at_idtreelfather = treelEquipement.at_idtreel and treelEquipement.AT_NOONKEY like '%@ATEN_PROD_EQUIPEMENTH'
left outer join ATEN_GENE_TREEL treelInstallation on treelEquipement.at_idtreelfather = treelInstallation.at_idtreel and treelInstallation.AT_NOONKEY like '%@ATEN_PROD_INSTALLATIONH'
left outer join ATEN_PROD_INSTALLATIONH on treelInstallation.AT_NOONKEY='db:' + cast(ATEN_PROD_INSTALLATIONH.AT_IDINSTALLATIONH as varchar) +'@ATEN_PROD_INSTALLATIONH'
left outer join aten_prod_person p2 on ATEN_PROD_INSTALLATIONH.AT_IDFIRSTTECHNICAL=p2.at_idperson
where cciag_cc_ligne.cciag_idligne=cciag_cc_compteur.cciag_idligne and aten_prod_machine.AF_EXTENDCODE in
(
select AT_EXTENDCODE from ATEN_ADMIN_EXTENDL where at_idextendl in
(
select at_idextendl from ATEN_ADMIN_EXTENDFIELDDESCRIPTION
where AT_IDEXTENDFIELD in
(
select AT_IDEXTENDFIELD from aten_admin_extendfield where AT_FIELDCODE = 'TECHNICIEN'
)
and AT_IDEXTENDTABLE =
(
select AT_IDEXTENDTABLE from ATEN_ADMIN_EXTENDTABLE where AT_EXTENDTABLE = 'ATEN_PROD_MACHINE'
)
)
) order by techInstall desc
),'') AS tech2,
COALESCE((SELECT TOP 1 p2.at_firstname + ' ' + p2.at_lastname as techInstall
FROM cciag_cc_compteur
left outer join aten_prod_machine on aten_prod_machine.at_idmachine = cciag_cc_compteur.at_idmachinecompteur
left outer join ATEN_GENE_TREEL treelMachine on treelMachine.AT_NOONKEY='db:' + cast(aten_prod_machine.at_idmachine as varchar) +'@ATEN_PROD_MACHINE'
left outer join ATEN_GENE_TREEL treelEquipement on treelMachine.at_idtreelfather = treelEquipement.at_idtreel and treelEquipement.AT_NOONKEY like '%@ATEN_PROD_EQUIPEMENTH'
left outer join ATEN_GENE_TREEL treelInstallation on treelEquipement.at_idtreelfather = treelInstallation.at_idtreel and treelInstallation.AT_NOONKEY like '%@ATEN_PROD_INSTALLATIONH'
left outer join ATEN_PROD_INSTALLATIONH on treelInstallation.AT_NOONKEY='db:' + cast(ATEN_PROD_INSTALLATIONH.AT_IDINSTALLATIONH as varchar) +'@ATEN_PROD_INSTALLATIONH'
left outer join aten_prod_person p2 on ATEN_PROD_INSTALLATIONH.AT_IDFIRSTTECHNICAL=p2.at_idperson
where cciag_cc_ligne.cciag_idligne=cciag_cc_compteur.cciag_idligne and aten_prod_machine.AF_EXTENDCODE in
(
select AT_EXTENDCODE from ATEN_ADMIN_EXTENDL where at_idextendl in
(
select at_idextendl from ATEN_ADMIN_EXTENDFIELDDESCRIPTION
where AT_IDEXTENDFIELD in
(
select AT_IDEXTENDFIELD from aten_admin_extendfield where AT_FIELDCODE = 'TECHNICIEN'
)
and AT_IDEXTENDTABLE =
(
select AT_IDEXTENDTABLE from ATEN_ADMIN_EXTENDTABLE where AT_EXTENDTABLE = 'ATEN_PROD_MACHINE'
)
)
) order by techInstall desc
),'') AS tech2,
mardi 24 avril 2012
SVN merger les revisions de la branche vers le trunk
Dans le trunk >Team > merge
- ne pas cocher Ignor ancestry
- résoudre les conflits dans l'éditeur graphique (pour les fichiers contenus dans des révisions à ne pas embarquer)
- en cas de revert, faire le revert sur dossier parent.
- En cas de tree conflits (selon le conflit): view tree conflit > clic droit sur ficher > Resolve
Projet Trunk > History > toolbar de la view history > bouton triangle tout à droite > include merged revisions
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)
- 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)
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)
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)
Inscription à :
Articles (Atom)