Académique Documents
Professionnel Documents
Culture Documents
MOTS CLES
Maintenance, GMAO, AMDEC, Oracle, Forms, Reports, SQL, PL/SQL
REMERCIEMENTS
Je tiens remercier toutes les personnes qui m'ont aid au travers de mon TF,
aussi bien en me fournissant de l'information que de l'assistance proprement
parler. Comme la maintenance n'est pas trs facile d'approche lorsqu'on n'est
pas directement dans le milieu de l'industrie, la liste des personnes qui sont
intervenues est longue
Je remercie chaleureusement M. Jacques Benoit, M. Luc Charlier, M. Philippe Mack
et M. Pascal Pourbaix pour leur implication et pour m'avoir permis la ralisation
de ce TF sur l'intgration de la maintenance Technifutur.
Chez Fabricom, je remercie galement M. Martin Van Haute, pour sa
connaissance de Senergy et le temps qu'il a bien voulu me consacrer, M. Danny
Crme, qui m'a accueilli quelques jours chez Ariston Malonne o il intgrait un
plan de maintenance, ansi que M. Saban Sonmez pour les explications fournies
sur la ralisation d'une AMDEC.
Chez Technifutur, je remercie M. Philippe Vivegnis et M. Philippe Ryhon pour l'aide
technique sur la comprhension du fonctionnement de la chaine Farcon, ainsi que
M. Fabio De Martino Rosaroll qui m'a fourni de l'explication et une expertise
complmentaire sur la lubrification de cette chaine.
Chez IFCS/Pepite, je remercie Christophe larbouillat qui m'a aid l'installation de
Senergy, ainsi que Constantza Balan Samola, Vassil Vassilev, Sbastien
Lafourcade et Simon Nielly pour m'avoir support et pour l'inestimable aide sur la
comprhension de leur logiciel.
Sans oublier mon pre et ma mre qui m'ont aid dans la relecture de ce TF et
tout au long des mes tudes.
I. INTRODUCTION
Le travail demand consiste en la ralisation d'un plan de maintenance
prventive sur une chaine d'emballage pharmaceutique de marque Farcon. Il faut
ensuite l'intgrer dans la gestion de la maintenance assiste par ordinateur
(GMAO), laide du logiciel Senergy. Cette chaine est ddie son utilisation
pour la maintenance, elle se trouve chez Technifutur et nest plus destine la
production, mais uniquement tre utilise dun point de vue didactique.
Pour ce faire il faut dfinir toute une srie de normes et de mthodes spcifiques
la maintenance (AMDEC, types de maintenance, dossier machine ), il faudra
galement avoir une bonne comprhension des mcanismes d'utilisation du
logiciel Senergy. Et finalement comprendre les rouages du logiciel afin de pouvoir
l'adapter en fonction des demandes spcifiques (programmation Oracle,
modifications, ).
3
4
10
Une action de maintenance conditionnelle doit prendre le dessus sur une action
systmatique ds que c'est possible. Ceci permet d'viter de remplacer un article
trop tt (encore fonctionnel), voir trop tard (maintenance corrective) car il y a un
risque que l'article mont sur l'quipement soit dfectueux et ne tienne mme
pas la priodicit dfinie.
La maintenance prvisionnelle se base sur l'volution suite diffrents
contrles. Avec cette volution et l'historique de l'quipement, on tente de
prdire le moment o l'article va casser. De cette manire, on pourra l'utiliser
pratiquement jusqu' sa fin de vie et on pourra augmenter le temps entre les
inspections. C'est une sous classe du conditionnel objectif, utilis dans la
maintenance de haut niveau.
Dans tout les cas, si une action de contrle prventive est suivie par une action
de maintenance, elle fera partie, elle aussi, de la maintenance prventive.
1.1.3 LA MAINTENANCE AMLIORATIVE
L'amlioratif reprend toutes les actions de maintenance qui visent modifier,
adapter l'quipement. Ceci afin d'amliorer la productivit, la qualit, la scurit,
la fiabilit, la maintenabilit, la mise en conformit, la durabilit, de cet
quipement.
Cette maintenance ne reprend pas les actions effectues par le service de
maintenance dans le cadre de l'installation d'un quipement neuf (montage, mise
en route, rglages, ). Il en va de mme pour tout ce qui est rglage pour un
changement de produit, on ne peut pas dire qu'adapter un quipement un des
produits qu'il peut fabriquer apporte une amlioration quelconque, c'est
simplement une fonction de l'quipement qui demande de la main d'uvre plus
qualifie, on se tourne alors gnralement vers le service de maintenace. Il est
utile de prvoir une catgorie supplmentaire pour ce type de maintenance dans
la GMAO.
1.1.4 RPARTITION DANS LES DIFFRENTS TYPES DE MAINTENANCE
La rgle de bonne pratique de la maintenance veut qu'il y ait un bon quilibre
des temps d'excution passs sur les 3 types d'activit. Un tiers du temps doit
tre prvu pour le prventif, moins d'un tiers du temps doit tre consacr faire
du curatif et plus d'un tiers doit tre consacr l'amlioratif (prpondrant). La
recherche de cet quilibre amne le mailleur rapport service rendu / cot.
Une action curative rcurrente peut devenir prventive systmatique
(remplacement calandaire) ou conditionnelle (ajout de capteurs). Cette mme
action pourrait mme disparaitre en liminant le problme la source avec de la
maintenance amliorative.
1.2 LA GMAO
GMAO est l'acronyme de gestion de maintenance assiste par ordinateur. Il s'agit
d'un logiciel qui aide l'quipe de maintenance d'une entreprise dans sa tche
11
Les logiciels les plus connus en Europe sont : CARL Master, Coswin, Maximo,
OptiMaint, Senergy n'y est pas encore trs implant et arrive sur un march
dj bien en place. Une entreprise n'a pas les mmes besoins qu'une autre et un
logiciel conviendra peut-tre une alors qu'une autre entreprise fera un autre
choix. Il faut rflchir avant de prendre un logiciel pour ne pas se retrouver avec
une GMAO qui ne conviendrait pas l'entreprise (perte de temps et d'argent).
Dans notre cas, le choix n'a pas t ncessaire puisque c'est le partenaire qui
apporte le logiciel, il faudra s'y adapter si une fonctionnalit requise n'est pas
prsente.
2. DOSSIER MACHINE
Le dossier machine reprend l'ensemble de la documentation utile la
maintenance. C'est--dire : le plan de maintenance, la documentation technique
(plans lectriques, pneumatiques, mcaniques, schmas, instructions de
montage, de changement de formats), la liste des pices de rechange et
l'historique.
La chaine Farcon a t fournie avec la documentation qu'a laisse UCB :
1. Description et caractristiques de la machine
2. Installation /Branchements
3. Description groupes composant la machine
4. Procdure oprative
5. Changement de format
6. Entretien / graissage
7. Liste des pices dtaches
8. Installation pneumatique
9. MANQUANT (probablement l'installation mcanique)
10.Dclarations
11.Documentation pices commerciales
12
12.Installation lectrique
Dans cette documentation, le chapitre 3 est intressant pour comprendre le
fonctionnement de l'installation. Le chapitre 6 aide la cration du plan de
maintenance prventive. Les chapitres 8 et 12 donnent une liste d'articles sur la
chaine Farcon.
Il y a aussi au chapitre 11 de la documentation sur les gros quipements
commerciaux prsents sur la chaine (colleuse Nordson, plieuse guk, ).
Le chapitre 7, malgr son titre attractif ne contient que 4 pages avec quelques
rfrences Farcon, sans grand intrt. Il n'y a galement pas de plan mcanique,
d'o une difficult supplmentaire pour rfrencer les articles de la chaine
Farcon.
La liste des pices dtaches en fiches articles, on les lie aux quipements
et on gre les stocks directement dans diffrents magasins.
On crera le plan de maintenance prventive dans le logiciel, avec les
paramtres (temps, compteur) ncessaires la gnration automatique
des OT.
L'historique se crera automatiquement avec la gestion des OT curatifs,
prventifs et amlioratifs.
Le reste de la documentation (plans, schmas) sera mis sous forme de
PDF, images, fichiers Word et sera li l'quipement, article, action de
maintenance, De cette manire on ne les perdra pas et on a la
possibilit d'y accder rapidement. Malheureusement, il n'est pas facile de
les modifier contrairement la liste des articles ou les actions de
maintenances, ce sont donc des documents morts.
13
Un assembleur est une personne ou une entreprise qui ne fabrique pas tel quel un
quipement, mais qui le monte partir d'quipements "standards". Par exemple la chaine
Farcon est monte par un assembleur.
14
Pas de fonction (c'est la dfaillance principale, dans la plupart des cas, elle
sera suffisante)
Fonction partielle / excessive / insuffisante
Fonction intermittente
Fonction non prvue
15
3.1.4 LA GRAVIT
La gravit est le premier facteur de la criticit dfinir, on commence par celui-ci
car en fonction de sa note, on doit ou pas continuer l'AMDEC. Voici la liste utilise
pour dfinir la gravit chez Fabricom :
Gravite
Mineure
Moyenne
Importante
Catastrophi
que
Dtail
Scurit : Aucune incidence mesurable
Production : Aucune incidence mesurable
Qualit : Aucune incidence mesurable
Environnement : Aucune incidence mesurable
Rputation : Aucune incidence mesurable
Scurit : Risque faible pour les machines seulement
Production : Retard rattrapable en travail normal
Qualit : Manque de qualit acceptable
Environnement : Emissions, rejets dans les normes,
mais au dessus de l'optimum
Rputation : Mcontentement ponctuel d'un client
sans modification des habitudes
Scurit : Risque faible pour le personnel
Production : Retard rattrapable en travail
supplmentaire
Qualit : Manque de qualit rattrapable
Environnement : Pollution accidentelle confine au
site de production
Rputation : Mcontentement du client avec perte
de march
Scurit : Risque grave pour le personnel et les
machines
Production : Retard non rattrapable
Qualit : Manque de qualit non rattrapable
Environnement : Pollution accidentelle affectant
l'extrieur du site
Rputation : Perte de marchs importants avec
dstabilisation possible de la socit
Note
1
Il faut dfinir la gravit d'une dfaillance pour chacun des 5 points : la scurit, la
production, la qualit, l'impact environnemental et la rputation de l'entreprise.
Si un des points a un score plus haut que les autres, on prendra la note la plus
haute afin de faire ressortir le point critique.
Ici si la gravit vaut 1, on ne continue pas l'AMDEC, on peut se contenter de faire
du graissage, du nettoyage et un simple contrle visuel par l'oprateur.
Si la gravit vaut 4, on peut galement arrter l'AMDEC, il y a visiblement
quelque chose qui ne va pas, les risques sont trop levs, il faut revoir la
conception de l'quipement.
Si la gravit vaut 2 ou 3, on continue l'AMDEC et on recherche les causes de la
dfaillance.
16
Dtail
La possibilit d'une dfaillance est pratiquement
inexistante
Une dfaillance s'est dj produite ou pourrait se
produire
Il y a eu traditionnellement des dfaillances dans le
pass
Il est presque certain que la dfaillance se produira
souvent
Note
1
2
3
4
3.1.7 LA DTECTABILIT
La dtectabilit est un point important, si on ne peut pas prdire la panne, il y a
un plus grand risque d'arrt cause d'elle. On peut rduire la dtectabilit et
donc la criticit d'un quipement en lui affectant des capteurs ou en le
remplaant par un qui l'intgre.
Dtectab
ilit
Trs
bonne
Bonne
difficile
pas
dtectabl
e
Dtail
Il existe des capteurs en ligne
La dfaillance est dcelable ou visible
Ncessite un dmontage ou utilisation d'un appareil de
contrle
La dfaillance n'est pas dcelable ou encore sa localisation
ncessite une expertise approfondie
Not
e
1
2
3
4
3.1.8 LA CRITICIT
Une fois les trois facteurs dfinis, on peut passer au calcul de la criticit. Ici la
note est propre Fabricom, on peut trs bien utiliser des notes allant de 1 5 ou
1 10 en fonction de la finesse que l'on veut pour chaque facteur. Mais vouloir
faire trop fin, on risque vite de ne pas bien diffrencier deux niveaux diffrents et
associer une mauvaise note un quipement.
Criticit = Gravit x Occurrence x Dtectabilite
17
Criticit
C < 16
Action
Ne pas tenir compte (hormis la maintenance de base : lubrification,
nettoyage, contrle visuel par l'oprateur)
16 <= C < Mise sous maintenance prventive frquence faible
32
32 <= C < Mise sous maintenance prventive frquence leve
36
36 <= C < Recherche d'amlioration
48
C >= 48
Reprendre la conception
Une fois la criticit obtenue, on peut dfinir les actions de maintenance
effectuer sur un quipement. Un quipement qui une criticit faible n'aura besoin
que de maintenance de base, un autre plus critique aura des contrles plus
rguliers faire et dans les cas extrmes, il faudra revoir l'quipement.
3.1.9 AMDEC SUR LE MAGASIN DES CARTONS PLAT
L'AMDEC pour le magasin de cartons plat 1 est disponible en annexe 3.
18
gros
points
noirs
qu'il
faudrait
19
20
Le logiciel Senergy est fournit vide, cest une base de donnes bien structure
qui facilite lintgration de la maintenance, mais elle laisse beaucoup de libert
et il faudra dfinir toute une srie de codes et de paramtres pour son bon
fonctionnement.
Il peut sembler premire vue que des explications sur l'utilisation du logiciel ne
relvent pas d'un haut niveau de rflexion, mais il faut veiller bien comprendre
toute une srie de mcanismes et la logique particulire d'utilisation choisie.
Sans comprendre le logiciel, il serait facile de commettre des erreurs et perdre
son temps.
21
S'il n'y a pas deux utilisateurs identiques sur deux bases diffrentes.
22
[4] Cette zone est trs utilise dans Senergy, plutt que douvrir une fentre de
confirmation sur laquelle il faut cliquer, les messages de confirmation ou derreur
sont affichs dans cette zone. Il faut y veiller fortement, ce nest pas trs habituel
premire vue et on peut a voir limpression que le logiciel ne fait rien si on n'y
prte pas attention. Une fois que l'habitude est prise, c'est beaucoup plus
agrable que d'avoir une fentre de confirmation qu'il faut fermer chaque
action.
23
Oracle indique toujours quand on est dans un champ qui est associ une liste.
On peut voir le message "List of Values" dans la zone infrieure de l'cran. Ceci
peut avoir son importance, le fait que le champ soit bleu est un choix des
concepteurs de Senergy, il pourrait arriver qu'un item associ une liste n'en ai
ni la couleur, ni la prsence d'une flche ct indiquant qu'on a une liste
associe, le seul moyen de l'afficher resterait alors le raccourci CTRL+L.
24
Pour crer un quipement, il faut que la fentre soit vide, on ne peut pas crer un
nouvel quipement si on est dans l'dition d'un autre prexistant. Si l'cran n'est
pas vide la base, on doit l'effacer avec le bouton . On enregistre le nouvel
quipement avec le bouton "confirmer" en bas droite.
4.3.3 NUMRO DE LQUIPEMENT
Le numro de lquipement est la premire chose renseigner, sans ce numro,
il ny aurait pas dquipement, il sagit en ralit de la cl primaire 7 de
lquipement, elle ne peut pas tre change une fois encode 8. Il faut donc faire
trs attention, Senergy permet de la dfinir selon maximum 8 caractres
alphanumriques, il faut plus la voir comme un numro utile Senergy et non
pas comme la rfrence de l'quipement dans l'atelier. Dans la pratique
l'oprateur et le maintenancier ne connaitront pas ce numro ou alors
uniquement pour quelques gros quipements.
Dans les bases de donnes, toute entre doit tre dfinie par une cl primaire, cest
cette cl qui permet de ne pas confondre les diffrentes entres de la base les unes avec
les autres. Pour ce faire cette cl doit toujours tre unique. (Dans certains cas l cl peut
tre compose, c'est--dire qu'elle est la combinaison de plusieurs champs)
8
En principe, mais la modification est tout de mme prvue dans un trigger Oracle.
Cependant, si une table est ajoute et qu'elle n'est pas ajoute dans le trigger, a
poserait problme, donc on n'y touche pas par prcaution.
25
Les numros des quipements seront donc dans notre cas une simple suite
numrique : 1, 2, 3, 4, Pour assurer que ce numro soit compltement unique,
nous utiliserons le pfixe E pour les quipements : E1, E2, De cette manire, il
ne sera pas confondu avec un article, un OT, etc.
Cette prcaution est importante du fait de la non-modifiabilit, si par exemple on
avait utilis NORDSON1 pour dfinir la colleuse Nordson numro 1, on aurait eu
des problmes le jour o on aurait du changer de marque de colleuse pour une
raison de panne, de pices de rechange introuvables, etc Il faut toujours
penser au ct contraignant de la codification (Est-ce que je naurai pas de
problme lavenir avec ce choix ? Est-ce que je ne risque pas de devoir
intercaler un quipement?), ceci est valable pour toute donne entre dans
Senergy.
Il n'est pas obligatoire de renseigner le numro d'quipement, lorsqu'on dfinira
le code de classification de niveau 1, Senergy en proposera un automatiquement
depuis une squence enregistre dans la base de donnes. Cependant comme il
s'agira d'un nombre pur, cela ne correspondra pas la numrotation retenue
avec le prfixe E.
4.3.4 CLASSIFICATION DES QUIPEMENTS
La classification des quipements est une chose qui parait simple mais peut vite
devenir complexe. Dans Senergy, elle est modifiable pour un quipement donn.
Nanmoins il serait prfrable de ne pas devoir trop y toucher durant la vie dun
quipement.
Senergy prvoit la classification suivant trois niveaux :
-
26
27
Il s'agit ici clairement d'un choix, qui s'avrera judicieux ou non au fil de
l'utilisation, il peut exister des centaines de logiques de classification, le choix
28
doit tre rflchi en fonction du cas dans lequel on se trouve car il n'voluera que
trs difficilement une fois mis en place.
Pour dfinir les classifications, il faut se rendre dans :
Senergy Gestion Equipements Classification
La gestion n'est pas forcment disponible pour tous les utilisateurs de Senergy, il
vaut mieux rserver a l'administrateur de manire gnrale.
4.3.6 FAMILLE DQUIPEMENTS
Senergy permet de dfinir une famille dquipement pour un quipement donn,
il ne faut pas le voir comme une codification mais plus comme un regroupement
dquipement ayant des caractristiques communes.
Pour chaque famille, il y a une cl primaire (3 caractres max) et un nom. La cl
primaire ne peut plus tre change une fois cre, il faut donc bien faire
attention aux diffrents choix.
Lavantage de la famille est que pour chacune delles, on peut dfinir jusqu 20
champs descriptifs (puissance, amprage, dbit, anne, etc ). Cest pratique si
on ne veut pas avoir une description rallonge pour chaque quipement, mais il
faut faire attention penser tout, si on ne spare pas deux familles qui aurait
du ltre la base, on risque de se retrouver avec une description inadapte ou
manquante. Par exemple on peut faire une famille moteur, mais il faut aussi
penser quil y a des moteurs lctriques, thermiques, hydrauliques. Pour chaque
type de moteur, il faudra crer une famille.
Ce code prend toute son utilit lorsqu'on fait une recherche d'quipements qui
ont des caractristiques communes, lorsqu'on doit par exemple en remplacer un.
Il ne faut donc pas sur-dfinir les champs descriptifs pour une famille, ce qui est
entr pour un quipement donn doit tre utile l'avenir, il ne faut pas tomber
dans l'excs d'encodage.
Pour dfinir les codes familles, il faut se rendre dans :
Senergy Gestion Equipements Familles
29
dpartement,
les diffrents
Chaque quipement doit avoir un dpartement, sil nen a pas, il ne sera pas list
dans la liste des quipements disponibles sur la page principale de Senergy.
Il existe un dpartement "Catalogue" qui reprend les quipements dfinis mais
qui ne font pas rellement partie de l'installation. Ce dpartement peut tre
facilement ignor lors d'une recherche d'quipement.
Pour dfinir les dpartements, il faut se rendre dans :
Senergy Gestion Equipements Dpartements
4.3.9 DOCUMENTS
Senergy permet de rfrencer la liste des documents relatifs un quipement
pour permettre lemploy de maintenance de les retrouver facilement. Ces
documents sont stocks dans des armoires, bibliothques, etc. Le but tant de
les retrouver facilement.
30
4.3.10 COMPTEURS
On peut encoder les diffrents compteurs dun quipement dans Senergy afin de
planifier les actions de maintenance conditionnelles.
4.3.11 ACTIONS ASSOCIS UN QUIPEMENT
Il y a sur la gauche de la fentre des quipements un menu vertical qui permet
de raliser quelques actions associes l'quipement ouvert. Pour un nouvel
quipement, il faut confirmer l'enregistrement avant de cliquer sur une de ces
actions.
Ce bouton permet de copier un quipement avec toutes ses actions de
maintenances, ses articles, ses documents.
Ce bouton permet d'associer un ou plusieurs fournisseurs l'quipement.
Ce bouton affiche l'historique d'talonnage de l'quipement.
Ce bouton affiche les actions de maintenance prvues sur cet quipement.
Ce bouton permet d'afficher les actions de maintenance associes
l'quipement.
Ce bouton permet d'afficher les cots de maintenance de l'quipement et
mme de ses sous-quipements cumuls. Il fournit lhistorique des actions dj
ralises.
Ce bouton permet d'afficher la liste des quipements et articles qui
composent l'quipement, il permet aussi d'en ajouter ou d'en supprimer.
Ce bouton permet d'afficher la liste des quipements pour lesquels
l'quipement courant est un composant.
Ce bouton permet de grer les garanties constructeur-fournisseur sur
l'quipement.
Ce bouton permet d'associer une application DDE l'quipement, c'est--dire
qu'un document word, une image, un pdf peut tre consult ou s'ouvrir lorsque
l'on imprimera un OT par exemple.
Ce bouton permet de dfinir une formule de calcul pour le cot d'arrt d'un
quipement.
4.3.12 COPIE D'UN QUIPEMENT
Lorsque l'on copie un quipement, un nouveau numro est automatiquement
gnr depuis une squence, on peut le modifier sa guise. L'cran des copies
31
32
33
34
4.4.4 CLASSIFICATION
Ici le but proprement parl de la classification n'est plus d'indiquer la hirarchie
mais de classer les articles en famille. Il existe dj un champ famille, la
classification est donc redondante avec la famille et celle-ci devrait donc rester
relativement vague pour viter justement le double emploi.
Afin de ne pas se compliquer la tche, nous utiliserons les grandes familles
suivantes :
HYD Hydraulique : Tout le matriel en rapport avec l'hydraulique, allant de la
vanne la pompe eau.
PNE Pneumatique : Tout ce qui touche l'air comprim : les tuyaux, les pompes
vide, les filtres air, le matriel Festo en gnral.
VIS La visserie : rondelles, crous, vis, boulons, chevilles, clous,
MEC Mcanique : roulements, arbres, cames, courroies,
ELC Electricit : cbles, moteur lectriques, disjoncteurs,
LUB Lubrifiant : les graisses, huiles et poudres de lubrification.
Il est possible qu'un article ne rentre pas dans une de ses familles, il faudra peuttre adapter cette liste en fonction de l'utilisation du logiciel. Cette dcoupe a
nanmoins l'avantage d'tre dcoupe par spcialit.
4.4.5 E-CLASS
Il existe une classe europenne de classement des articles, il a t envisag de
l'utiliser, mais de lavis dun professionnel, elle est trs dure adapter la
maintenance dans Senergy (voir en gnral).
4.4.6 CODE FAMILLE
Ici on fera rellement une famille pour tout : roulements, crous, boulons, cbles
lectriques, graisses, courroies, Chaque famille aura galement ses champs
descriptifs comme pour les familles d'quipement.
Pour dfinir les codes familles des articles, il faut se rendre dans :
Senergy Gestion Inventaire Familles d'articles
35
Pour faire une prise d'inventaire, il faut d'abord slectionner le magasin. Ensuite
pour chaque article, on peut renseigner le nombre compt. Il est important de
donner un prix unitaire lorsque le nombre change, sinon ils seront considrs
comme reu gratuitement dans la GMAO.
Le champ ajustement permet de voir la diffrence par rapport l'origine. Pour
qu'une modification soit effective, il faut cocher la case en fin de ligne. On
termine en confirmant l'cran.
36
37
38
toutes les 1000h sur la chaine Farcon. Ce sera donc une action type avec un
mode opratoire type qui sera utilise juste pour cette chaine.
Il aurait t possible de raliser une action de lubrification type pour n'importe
quel quipement, mais le mode opratoire n'est pas forcment le mme donc il
est prfrable de la sparer des autres.
Aprs on slectionne le code quipe (le mtier principal de l'action). Dans l'onglet
"Editer action", on va pouvoir dfinir les paramtres dclencheurs et l'action en
elle-mme. Tout ce qui est entr dans l'action type doit tre universel pour les
actions qui en dcoulent, on pourrait entrer une dure prvue pour la
maintenance, mais une lubrificaiton n'est pas l'autre, il vaut mieux laisser ce
champs libre.
On slectionne ensuite le type de maintenance : prventif ou conditionnel (on
pourra galement crer des actions de maintenance pour le curatif ou la
production, mais la logique n'est pas la mme).
Si on slectionne "prventif", alors on pourra entrer un nombre de jours dans le
champ priode. Si on slectionne "conditionnel", on pourra entrer une condition
pour le futur compteur associ. Ici comme on fait une action prventive toute les
1000h9, on entrera la priode de 88 jours. On aurait pu faire une action type sans
indiquer de dure, mais par la suite, cela aurait t plus contraignant que de
raliser une action par priode. De plus, on peut trouver facilement les
quipements qui ont une lubrification toutes les 1000h, si l'action avait t plus
large (toutes les lubrifications), on aura du mal les retrouver.
Il ne faut pas entrer de date d'initialisation pour la maintenance prventive, sinon
une nouvelle action lie par la suite commencerait d'office avec cette date. Il faut
la dfinir plus tard.
On peut galement dfinir la priorit, la catgorie de maintenance, l'tat de
l'quipement pendant l'intervention et la description de l'action (la description
n'est pas complte ici, il faudra ajouter soi-mme les diffrents points de
graissages par aprs).
39
10
Sauf qu'elles sont toujours lies l'action de base pour les retrouver facilement, mais
c'est tout.
40
41
42
43
44
45
11
Ce n'est pas forcment un BT proprement parler, pour du prventif, c'est l'action qui
s'imprime mais d'un point de vue logique, c'est le bon de travail.
46
Pour clturer un bon de travail, on se met dans l'onglet rapport et on clique sur
"ferm". On peut ajouter une description pour notre rapport d'intervention.
L'onglet "employs" permet de voir les pointages sur un bon de travail, mais ce
n'est pas l'cran le plus simple pour pointer. Dans l'onglet utilisation, on peut
notifier les quantits utilises pour diffrents articles dans diffrents magasins.
Dans l'onglet dpenses, on ajoute tout ce qui ne peut pas tre repris dans la liste
des employs ou dans la liste des utilisations. Si un article n'est pas encod dans
Senergy, on pourra y ajouter sa valeur, mme chose pour la facture d'un soustraitant qui ne serait pas dans la liste des employs.
On peut galement changer le statut de l'OT, si par exemple le prparateur ouvre
le bon, il ne le fermera pas, mais il passera simplement le statut "prt", ceci
indiquera au maintenancier qu'il peut effectuer la tche.
Le rapport d'intervention est aussi accessible via le menu, mais ne fonctionnera
pas pour une action prventive ou conditionnelle si on n'a pas dfini de numro
d'OT associ, il faut absolument passer par le bouton
47
Aprs avoir entr un code et un nom pour la route, on peut cliquer sur le cne
afin de dfinir la liste des actions lui associer. Chaque action doit tre ajoute
via la flche verte, on peut galement dfinir un ordre pour l'impression, afin
d'avoir une liste cohrente vis--vis de points qui se suivent. On peut entrer
plusieurs fois le mme ordre, ici l'ordre 1 est dfini pour les quipements
FAR001A, comme ils sont fort proche, l'ordre entre les points pour FAR001A n'a
pas bcp d'importance.
On peut y voir toutes les maintenaces dues qui y sont associes, la liste varie
donc en fonction de la priodicit ou des conditions.
Pour imprimer la liste, on clique sur l'imprimante
48
4.6 MTIER
Il est prvu pour les OT, demandes planifis et actions prventives ou
conditionnelles de choisir un code quipe, ce code quipe reprend en ralit une
spcialit ou un mtier. De cette manire les lectriciens voient directement ce
qu'ils ont faire, mme chose pour les mcaniciens. On peut aussi ajouter une
quipe sous-traitant pour diffrencier ces OT (voir mme le nom du sous-traitant
si on veut les diffrencier).
49
4.7 PRPARATEUR
Le prparateur est la personne qui s'occupe de prparer la tche en runissant
les bons articles et en mettant tout ce qu'il faut disposition.
De base Senergy ne prvoit pas de champ pour le prparateur pour un OT. C'est
contraignant vis--vis du dsidrata de Technifutur.
Il y a malgr tout moyen de s'en sortir. Si on veut, on peut associer une action
prventive ou conditionnelle un ou plusieurs employs, il suffit alors
simplement de slectionner le prparateur pour cette action. Pour avoir plus
facile, on donnera un numro qui commence par M pour les maintenancier et par
P pour les prparateurs (M3,P1,).
Ansi le prparateur pourra facilement voir les actions pour lesquels il est associ.
On peut galement le faire pour les demandes planifies. La demande n'est pas
un OT en elle-mme mais elle en gnrera un qui dans son onglet "employs"
contiendra la liste des employs associs. Pour les OT, on peut faire l'action que
fait la demande planifis, c'est--dire ajouter manuellement les employs.
Attention, la liste des employs dans les OT sert au pointage, mais on peut
ajouter un pointage vide, de cette manire, on retrouvera l'OT associ un
employ, mme si celui-ci n'a pas point, c'est l'astuce qui est utilis lors de la
cration d'un OT pour une demande planifie.
Maintenant, on peut grer le reste facilement avec les statuts des OT, si un OT
est "cr", alors a voudra dire que les prparateurs doivent s'en occuper, si un
prparateur s'en occupe, il passera le statut "en prparation", plus aucun autre
prparateur ne s'en occupera. Quand le statut est "prt", ca voudra dire que le
technicien de maintenance peut s'en occuper.
On peut utiliser cette mme logique pour d'autres actions qui devraient se suivre.
50
*Test123* *code_PLUS_lONG*
Chaque caractre est reprsent par 5 lignes noires et 4 lignes blanches qui
peuvent tre fines (6 fines) ou paisses (3 paisses, d'o code 3 de 9). La suite
de lignes fines et paisses reprsente un code binaire pour le caractre. Il y a
galement une fine ligne blanche qui spare chaque groupe de neuf lignes.
4.8.3 CONFIGURATION DU LECTEUR DE CODES-BARRES
Le lecteur de codes-barres usb s'identifie comme un clavier sur l'ordinateur
(plug&play pas besoin de drivers), il faut savoir qu'un clavier n'envoie pas le code
du caractre de la touche enfonce, mais sa "position". Donc si le lecteur de code
12
Attention, certaines polices sont payantes, une police code 39 gratuite est disponible ici
: http://grandzebu.net/index.php?page=/informatique/codbar/code39.htm
51
barre est mal configur par rapport l'ordinateur, on risque d'avoir des
inversions de caractres (clavier QWERTY, AZERTY, QWERTZ, belge, franais, ).
Certains lecteurs demandent une configuration pour connaitre le type de clavier,
mais le MS320 USB dtecte automatiquement le clavier configur, il n'y a rien
faire ce niveau l.
Il faut galement configurer la fin de la lecture pour avoir une tabulation au lieu
de la touche ENTRER (par dfaut). La plupart des lecteurs codes-barres se
configurent en lisant des codes barres spcialement dits pour leurs
configurations. Pour le MS320, le moyen de finir la lecture par une tabulation est
d'ajouter un suffixe la chaine lue. Le ou les caractres ajouts doivent l'tre
avec leur code ascii (09 pour TAB).
Voici la liste des codes lire avec le lecteur pour configurer la tabulation. Ces
codes correspondes dans l'ordre : Mode de programmation, dfinition du
suffixe, 0, 9, confirmation, sortie du mode de programmation.
52
4.11 POINTAGE
L'cran des pointages permet un employ de noter facilement ses heures sur
un OT, il suffit de renseigner le numro de l'OT et le matricule de l'employ. Pour
une raison pratique, il est utile de crer des OT fictifs de dbut et fin de journe,
ainsi qu'un OT de pause, de cette manire on ne laissera pas un pointage trop
longtemps sur un OT parce qu'on est parti en pause ou qu'on a finit la journe.
5. TECHNOLOGIES DE SENERGY
Senergy est bas sur la base de donnes Oracle. Il peut fonctionner sur la version
10g XE (Express Edition), cette version plus limite a lavantage indniable dtre
53
5.1 SQL
SQL (Structured Query Language) est un langage informatique qui permet de
grer les donnes dans une base : ajouter, modifier, supprimer, consulter. Il
permet aussi la gestion complte des tables : crer une table, la supprimer,
ajouter un champ, changer le type d'un champ,
L'explication sur l'utilisation de ce langage sort du cadre de ce TF, il existe de
nombreux ouvrages de rfrence sur le sujet (voir bibliographie).
5.2 PL/SQL
PL/SQL est un langage procdural dvelopp par Oracle, il permet de grouper des
requtes SQL, d'utiliser des variables, des boucles, des procdures, des fonctions,
C'est une utilisation avance du SQL.
Voici un petit exemple simple de PL/SQL
CREATE OR REPLACE PROCEDURE EXEMPLE (var1 VARCHAR2, var2
VARCHAR2) IS
exemplevariable VARCHAR2(128);
BEGIN
exemplevariable := var1 || ' et ' || var2;
INSERT INTO matable (champ) VALUES (exemplevariable);
END;
/
On peut voir que cette petite procdure rcupre deux variables, les assemble et
les insre dans une table. Le PL/Sql est utilis au niveau des Forms Oracle, cest
ce langage qui est utiliss pour toute la programmation des Forms.
54
Ici la requte INSERT est du SQL englob dans du PL/SQL (la procdure exemple).
F
eFentre SQL*Plus
5.3.2 ORACLE APEX
LApex permet dexplorer facilement la base de donnes Oracle, on peut voir les
diffrentes tables, triggers, etc., assez facilement. Cest un peu comparable
Phpmyadmin pour les bases de donnes Mysql, mais en plus pouss bien sr.
Oracle Apex
55
56
57
Lorsque l'on ajoute un trigger par le layout editor, on peut voir une proposition
des triggers les plus utiliss pour ce type d'item, c'est une bonne aide lorsque
l'on commence dvelopper des Forms et que l'on ne connait pas encore bien
tout. Si on souhaite en avoir d'autres, il suffit de cliquer sur Other.
Par la mthode du navigateur d'objet, on se retrouve dans le cas o l'on aurait
cliqu sur Other depuis le layout editor.
58
Il existe 5 types de dclencheurs, les PRE, Les ON, les WHEN, les POST et les KEY.
Les PRE se dclenchent juste avant l'vnement qu'il dsigne, les ON se
dclenchent la place, les WHEN pendant l'vnement, les POST aprs et les KEY
sur une combinaison de touches.
Une fois le trigger cre, on arrive dans l'diteur PL/SQL, c'est l qu'on peut mettre
le code de l'application, il sera dclench de manire relative au trigger qui lui
est associ.
On clique ensuite sur le bouton juste droite, il permet de compiler le code cr.
Les deux autres sont l pour faire des essais en mode normal et en mode
dbogage.
5.3.5 REPORTS BUILDER
Reports Builder est le logiciel qui permet de modifier les rapports (PDF), c'est
cette mthode qui est utilise pour tout ce qui attrait l'impression de donnes
dans Senergy. On ne crera pas de toute pice un rapport, mais on modifiera
ceux de Senergy.
59
Comme pour Forms Builder, l'lement principal est le navigateur d'objet. Ce qui
nous intresse principalement ici c'est le paper layout et le data model.
60
61
values
62
WHERE PK_LABEL =
Une fois fait, on peut ajouter pour chaque utilisateur la fentre dans le menu
flottant.
63
64
65
Afin de configurer l'cran, voici un petit exemple de requtes qui peuvent tre
utilises
66
Il faut bien comprendre ici qu'on a d'abord une action laquelle sont attachs un
ou plusieurs champs. Dans l'exemple donne, la valeur du premier champ que le
formulaire va rcuprer sera mise dans la variable globale request_pk qui est
utilise dans le Fomrs REQ_F de Senergy. De cette manire la validation, la
fentre
des
demandes
d'interventions
s'ouvrira
et
slectionnera
automatiquement la demande qu'on viendra de crer avec le numro venant de
la squence des demandes d'intervention.
Les diffrents types entrer pour le champ sont L pour liste (ce champs interroge
la base de donnes, il faut dfinir une clause, s'il n'en faut pas on ajoute '1=1'
pour une question de syntaxe), S pour squence (ce champ rcupre une valeur
depuis une squence existante), D pour date (la date du jour) et T pour texte (il
accpte n'importe quoi).
Ensuite pour chaque action, on peut encoder une ou plusieurs requtes
excuter. Soit un INSERT, soit un UPDATE. Pour chaque requtes, il est possible de
dfinir des "options", pour les UPDATES on ajoute dans OPTION1 les modifications
qu'on veut apporter mais qui ne sont pas dans les champs de l'cran 'var =value,
var2 =value2'. Pour les INSERT il faut dfinir les champs dans OPTION1 et leur
valeur dans OPTION2 (voir l'exemple).
Pour chaque requtes on dfinit les champs de l'cran qu'on souhaite intgrer en
donnant sa position et sous quel nom il doit tre ajout dans la requtes.
A la validation de l'cran, les requtes sont excutes.
Pour configurer cet cran, il faut une bonne connaissance des tables et des
mcanismes de Senergy, les tables sont assez logique et il suffit de faire un test
67
avec le vrai cran de Senergy pour trouver facilement la table et les champs
dfinir pour une action qu'on souhaite ajouter.
. Il faut ensuite se
68
positionner dans la requte qui sort le champ qu'on veut afficher sous la forme
d'un code-barres.
Aprs ajoute, il faut faire un clic-droit et ouvrir le Property Inspector. Pour la
mthode avec la police de caractres, on slectionne simplement Character dans
la proprit Datatype. Pour la seconde mthode, on fait la mme chose, mais on
slectionne galement Image pour File Format et on entre 500 pour Width.
Une fois fait, on peut ajouter du code PL/SQL dans la Formula, il suffit de faire un
clic droit et de slectionner PL/SQL Editor.
Pour la premire mthode, voici un exemple utilis pour gnrer un code-barres
article :
function CF_1FORMULA0005 return Char is
val varchar2(50) := :ITEM_PK;
begin
return('*' || val || '*');
end;
Un fois la formule cre, il faut l'associer un Field dans le Layout Model. Avec le
Property Inspector, on peut slectionner la formule associe dans Field->Source.
69
III. CONCLUSIONS
Ce travail aborde les diffrents points et notions de la maintenance ncessaires
l'laboration d'un plan de maintenance sans trop bercer dans la thorie pure. Il
n'est pas possible d'laborer un bon plan de maintenance sans le vcu du terrain
et sans l'exprience que peuvent apporter des personnes plus exprimentes. Le
plan de maintenance prventive mis en place est cohrent, mais il pourra (voir
devra) voluer avec l'utilisation de la chaine. Il faut qu'il se renouvle
constamment pour suivre l'volution relle de l'utilisation de cette chaine. Un
plan de maintenance n'est pas fig et une piste de rflexion sur la justesse et
l'amlioration de la lubrification a t propose.
Du point de vue logiciel, toute une srie de choix et de mcanismes d'utilisation
sont expliqus clairement, ils ont ts choisit le plus judicieusement possible afin
de coller la ralit de Technifutur. Senergy est un logiciel qui permet beaucoup
de liberts et il s'adapte assez facilement une logique donne si on le connait
bien et qu'on l'a bien en main. Il faut du temps et de l'investissement personnel
pour bien le maitriser, mais une fois fait, il se rvle tre un outil puissant.
De plus il est assez facile de le modifier ou d'y ajouter ses ralisations en
programmation. Une fois pass les prmices de l'utilisation d'oracle et de ses
outils de dveloppement, il a t possible de crer de toute pice un cran ddi
l'utilisation simplifi de l'encodage dans Senergy et de modifier les rapports
pour les adapter aux besoins de Technifutur. L'cran ajout t pens pour tre
facilement configurable toute une srie de cas pratique, c'est un cran qui peut
tre adapt un nouveau cas sans avoir connaitre le langage de
programmation d'Oracle (une connaissance de la structure de la base de donnes
est tout de mme ncessaire). La mthode utilise pour raliser un cran
personnel et l'intgration sont fidlement dcrites de manire permettre un
utilisateur futur une rapide prise en main.
70
IV. BIBLIOGRAPHIE
VISINTINI (G.), Comment augmenter sa productivit par la maintenance, Paris,
CEP EDition (ditions de l'usine nouvelle), 1985
POURBAIX (P.), Dfinitions des catgories de maintenance, procdure Fabricom,
2009
SONMEZ (S.), Processus de la mthodologie de la cration d'un plan de
maintenance, document interne Fabricom, 2010
DEGRELLE FRANCOIS, Le guide Oracle Forms 9i/10g, juin 2005,
http://sheikyerbouti.developpez.com/forms10g/
DEGRELLE FRANCOIS, Oracle PL/SQL, juillet 2005,
http://sheikyerbouti.developpez.com/pl_sql/
CYRIL GRUAU, Rudiments SQL pour Oracle, 2003, ftp://ftpdeveloppez.com/oracle/guide/SQL.pdf
WIKIPEDIA (page consulte le 25 mai 2010), Gestion de maintenance assiste par
ordinateur,
http://fr.wikipedia.org/wiki/Gestion_de_maintenance_assiste_par_ordinateur
WIKIPEDIA (page consulte le 5 avril 2010), Maintenance,
http://fr.wikipedia.org/wiki/Maintenance
IFCS, Manuel d'utilisation de Senergy, (aucune information supplmentaire
disponible)
71
72
4.3.9 Documents............................................................................................ 28
4.3.10 Compteurs.......................................................................................... 29
4.3.11 Actions associs un quipement......................................................29
4.3.12 Copie d'un quipement.......................................................................29
4.3.13 Associer quipements.........................................................................30
4.3.14 Ensemble d'quipements....................................................................30
4.3.15 Garantie d'quipements......................................................................31
4.3.16 Application DDE.................................................................................. 31
4.4 Crations d'articles..................................................................................... 31
4.4.1 Diffrence entre quipements et articles..............................................31
4.4.2 Fentre des articles............................................................................... 32
4.4.3 Code article........................................................................................... 32
4.4.4 Classification......................................................................................... 32
4.4.5 e-class................................................................................................... 33
4.4.6 Code famille.......................................................................................... 33
4.4.7 Articles et description........................................................................... 33
4.4.8 Magasin................................................................................................. 33
4.4.9 Prise d'inventaires................................................................................. 34
4.4.10 Intgration au magasin de Technifutur................................................34
4.5. Crations de tcheS de maintenance.........................................................35
4.5.1 Les actions de maintenance..................................................................35
4.5.1.1 Les diffrents type d'actions de maintenance....................................35
4.5.1.2 Cration d'une action de maintenance prventive ou conditionnelle 36
4.5.1.3 Action de maintenance de bris ou sans type.....................................39
4.5.2 Demande d'interventions......................................................................40
4.5.2.1 Gestion des demandes.......................................................................41
4.5.3 Rapport d'intervention..........................................................................42
4.5.4 Diffrents points de vue........................................................................42
4.5.4.1 L'oprateur......................................................................................... 42
4.5.4.2 Le superviseur.................................................................................... 42
4.5.4.3 Le technicien maintenance................................................................42
4.5.5 Routes d'actions.................................................................................... 44
4.6 Mtier.......................................................................................................... 46
4.7 Prparateur................................................................................................. 46
4.8 Utilisation pratique de Senergy l'aide d'un lecteur de codes-barres........47
73
74
75
VI. ANNEXES
ANNEXE 1 : CALCUL DE ROULEMENT
Un palier SKF FY504M a t rpertori sur la machine Farcon au niveau du
magasin plat, afin de calculer la dure de vie du roulement de celui-ci,
quelques approximations seront ncessaires. D'aprs la documentation SKF, le
roulement associ ce palier est le suivant : YAR 204-012-2RF.
Sont Couple dynamique vaut : C = 12.7 kN
Premirement, ce roulement (double, de chaque ct) ne reprend pas de force
axiale, on peut considrer que la seule force radiale est celle exerce par la
rsistance de la courroie. Cette force est en ralit compose de deux forces
puisqu'il y a deux courroies, mais comme il y symtrie de part et d'autre, on a en
ralit un force rsultante reprenant toute la traction du tapis distance gale de
chaque roulement. (On nglige les actions dues la gravit)
Chaque roulement reprend donc la moiti de la force de traction en force radiale.
L'arbre est entrain par un moteur dont voici les caractristiques :
0.96 Nm 2000 rpm = 33.33 s-1
On peut considrer que ce moteur a t dimensionn au plus juste, c'est donc le
couple max qu'on risque de rencontrer.
Il y a galement un rducteur, ce qui va changer la vitesse de rotation de l'arbre
et augmenter le couple. C'est un rducteur de 30, on se retrouve ds lors avec un
couple de
P = C*w = 0.96 * 33.33 = 32W = cste
C = P/w = 32/(33.33/30) = 28 Nm
Le diamtre de la roue est de 80mm, F vaut donc 700N.
Si on se reporte la formule de la dure de vie d'un roulement (avec une
probabilit de 90%) :
Nd*H10*60
= [C/Re]a
33.33 x 500 x 60
Nd vaut 33.33/30, H10, on le cherche, C vaut 12700Nm , Re vaut 700N, et a vaut
3 (roulement billes)
76
77
78
Composante
Dfaillance
Effet
Chassis
Ne maintient plus en
place
N'entraine plus
bonne cadance
Arrt du magasin
Rducteur
Ne transmet plus de
couple
Arrt de la courroie du
magasin
Arbre cannel
entrainement
Ne transmet plus de
couple
Arrt de la courroie du
magasin
Moteur
lectrique
rouleau
moteur
rouleau libre
rouleau
tendeur
courroie
crante
glissire
Arrt de la courroie du
magasin
N'entraine plus la
courroie bonne
cadance
Ne guide plus la
courroie
Ne tend plus la
courroie
Ne porte plus les
cartons
Arrt de la courroie du
magasin
Ne guide plus la
courroie
Arrt de la courroie du
magasin
Arrt de la courroie du
magasin
Arrt de la courroie du
magasin
Arrt de la courroie du
magasin
Gravit Cause
2 accident (pont,
clark)
2 dsserrage
2 problme
lectrique
2 dsserrage
2 Usure
2 grippage
roulement
2 dsserrage
2 bris
2 usure
1
3
4
6
2
2
2
1
3
3
4
12
12
2
1
1
1
1
2
4
2
4
2 bris
2 dsserrage
2 saute
2 dchire
2 usure
2
1
1
1
1
1
4
2
2
79
rglage
format
Ne permet plus le
changement de
format
Empche le changement
de format
1 -
80
Procdure VALID_FORMS
Cette procdure permet la validation du formulaire d'excuter une ou
plusieurs requtes dans la base de donnes et d'ouvrir une fentre de
Senergy
/************************************************
** VALIDATION DU FORMULAIRE DE CODE BARRE
** Permet d'executer une srie de requtes et
** d'ouvrir un fichier de Senergy
*************************************************/
PROCEDURE VALID_FORMS IS
-- Definition des types
TYPE req_info_type IS RECORD (
TYP TECH_SEN_QUERY.TYP%TYPE,
TABL TECH_SEN_QUERY.TABL%TYPE,
OPTION1 TECH_SEN_QUERY.OPTION1%TYPE,
OPTION2 TECH_SEN_QUERY.OPTION2%TYPE );
TYPE req_field_type IS RECORD (
"NAME" TECH_SEN_QUERY_FIELD."NAME"%TYPE,
POS TECH_SEN_QUERY_FIELD.POS%TYPE );
-- Definition des variables
glob VARCHAR2(255); -- Rcupre le nom de la variable globale
fmx VARCHAR2(255); -- Rcupre le nom du fichier form fmx
typ VARCHAR2(1); -- Rcupre du type d'item
nb NUMBER;
nb2 NUMBER;
nb3 NUMBER;
acti VARCHAR(50);
requete VARCHAR(1024); -requete_field VARCHAR(1024); -requete_field2 VARCHAR(1024); -req_info req_info_type;
req_field req_field_type;
req_type VARCHAR(1);
nb_l NUMBER := 0;
nb_s NUMBER := 0;
nb_d NUMBER := 0;
nb_t NUMBER := 0;
type_selected VARCHAR2(1);
BEGIN
/* Rcupration du nom de la variable globale */
SELECT nvl(GLOBALVAR,'') INTO glob FROM TECH_SEN_ACTION WHERE
CODE = :BLOCK7.ACTION;
81
82
nb_s+1;
nb_t+1;
/* INSERT ou UPDATE */
IF req_info.TYP = 'INSERT' THEN
requete_field := requete_field ||
'''' || NAME_IN('BLOCK7.ITEM'|| type_selected || nb3) || ''', ';
requete_field2 := requete_field2
|| req_field."NAME" || ', ';
ELSIF req_info.TYP = 'UPDATE' THEN
requete_field := requete_field ||
req_field."NAME" || ' = ''' || NAME_IN('BLOCK7.ITEM'|| type_selected ||
nb3) || ''' , ';
END IF;
END IF;
END LOOP;
length(requete_field)-2);
length(requete_field2)-2);
requete_field := substr(requete_field, 0,
requete_field2 := substr(requete_field2, 0,
/* INSERT ou UPDATE */
IF req_info.TYP = 'INSERT' THEN
requete := requete || ' (' || requete_field2
|| req_info.OPTION1 || ') VALUES (' || requete_field|| req_info.OPTION2 ||
')';
ELSIF req_info.TYP = 'UPDATE' THEN
requete := requete || requete_field ||
req_info.OPTION1 || ' WHERE ' || glob || ' = ' || Name_in('BLOCK7.ITEM' ||
typ || '1');
END IF;
--message(requete);
SEN_EM(requete);
standard.commit;
END LOOP;
/*OUVERTURE FICHIER FMX*/
-- S'il est renseign, le premier champ formulaire est repris
comme valeur pour la variable globale
-- Seul le premier champ peut tre pris, il faut l'y mettre en
consquence.
correspondante */
83
84
type_selected := 'D';
type_selected := 'S';
type_selected := 'T';
ch_2 := rec.PREF;
ch10 := substr(:BLOCK7.ITEM8,0,length(ch_2));
IF ch10 = ch_2 THEN CHANGE_LIST('BLOCK7.ITEM'|| type_selected ||
nb,:BLOCK7.ITEM8); test := false; END IF;
IF rec.PREF = 'CATCH_ALL' THEN
CHANGE_LIST('BLOCK7.ITEM'|| type_selected || nb,:BLOCK7.ITEM8); test
:= false;
END IF;
IF nvl(Name_in('BLOCK7.ITEM'|| type_selected || nb),'') = '' THEN
valid := false; END IF;
END Loop;
/* FIN */
END IF;
:BLOCK7.ITEM8 := '';
if test Then
set_item_property('BLOCK7.ITEM8',BACKGROUND_COLOR,'r150g0b0'); end if;
IF valid AND autovalid = 1 THEN VALID_FORMS; END IF;
END;
Procdure CHANGE_LIST
Vrifie si l'entre est dans la liste et la modifie au cas o ce serait le cas
PROCEDURE CHANGE_LIST (item VARCHAR2, key2find VARCHAR2) IS
Nbre NUMBER;
BEGIN
Nbre := Get_List_Element_Count( item ) ;
For j IN 1 .. Nbre Loop
If Get_List_Element_Value( item, j ) = key2find Then
Copy(Get_List_Element_Value(item, j ),item);
Exit ;
End if ;
End loop ;
END;
Procdure FILL_LIST
85
liste d'lments
PROCEDURE FILL_LIST (field_pk IN VARCHAR2, field IN VARCHAR2, tabl IN
VARCHAR2, cond IN VARCHAR2, list_name IN VARCHAR2 ) IS
nb NUMBER;
req VARCHAR2(1024);
var VARCHAR2(61);
entree VARCHAR2(255);
pk VARCHAR2(100);
BEGIN
/*Rcupration du nombre d'entre pour la requte*/
req := 'SELECT count(*) FROM ' || tabl || ' WHERE ' || cond;
nb := Sen_EM_Num(req);
/*Nettoyage de la liste*/
CLEAR_LIST(list_name);
/*Rcupration des entres*/
For i IN 1 .. nb Loop
req := 'SELECT ' || field || ' FROM ( SELECT ' || field ||
',ROW_NUMBER() OVER (ORDER BY '|| field_pk ||') num FROM ' || tabl || '
WHERE ' || cond || ') WHERE num = ' || i;
entree := To_char(Sen_EM_Varch(req));
IF field = 'STRINGID' THEN
req := 'SELECT DESIGNATION FROM SEN_STRINGS WHERE STRINGID = ' ||
entree || ' AND PK_LANGAGE = ''FRAN''' ;
entree := To_char(Sen_EM_Varch(req));
END IF;
req := 'SELECT ' || field_pk || ' FROM ( SELECT ' || field_pk ||
',ROW_NUMBER() OVER (ORDER BY '|| field_pk ||') num FROM ' || tabl || '
WHERE ' || cond || ') WHERE num = ' || i;
pk := To_char(Sen_EM_Varch(req));
ADD_LIST_ELEMENT (list_name, i,pk || ' - ' || entree, pk);
End loop ;
/*Copy(to_char(nb),list_name);*/
END;
Procedure SET_POS_ITEM
PROCEDURE SET_POS_ITEM (ITEM2 VARCHAR2, largeur pls_integer, hauteur
pls_integer, ESPACE pls_integer, POS_X VARCHAR2, POS_Y VARCHAR2) IS
Calc pls_integer;
BEGIN
SET_ITEM_PROPERTY(ITEM2, VISIBLE, PROPERTY_TRUE);
SET_ITEM_PROPERTY(ITEM2, ENABLED, PROPERTY_TRUE);
SET_ITEM_PROPERTY(ITEM2, WIDTH, largeur);
SET_ITEM_PROPERTY(ITEM2, HEIGHT, hauteur);
SET_ITEM_PROPERTY(ITEM2, POSITION, Name_in(POS_X), Name_in(POS_Y));
86
Copy((Name_in(POS_Y)+ESPACE+hauteur),POS_Y);
Set_Window_Property('DOUCHETTE', HEIGHT, (Get_Window_Property('DOUCHETTE',
HEIGHT)+ESPACE+hauteur) );
END;
Procdure SHOW_ITEM
Place les champs demands en fonction de l'action choisie
PROCEDURE SHOW_ITEM IS
LISTE VARCHAR2(60) := 'BLOCK7.ACTION';
ACT VARCHAR2(30) := Name_in(LISTE);
TYPE recup IS RECORD
(DESCIPTION TECH_SEN_ITEM.DESCIPTION%TYPE,
"TYPE" TECH_SEN_ITEM."TYPE"%TYPE,
TABL TECH_SEN_ITEM.TABL%TYPE,
KEY_CHAMP TECH_SEN_ITEM.KEY_CHAMP%TYPE,
VALUE_CHAMP TECH_SEN_ITEM.VALUE_CHAMP%TYPE,
CLAUSE TECH_SEN_ITEM.CLAUSE%TYPE );
rec recup;
nb NUMBER;
nb_l NUMBER := 0;
nb_s NUMBER := 0;
nb_d NUMBER := 0;
nb_t NUMBER := 0;
type_selected VARCHAR2(1);
BEGIN
Set_Window_Property('DOUCHETTE', HEIGHT, 110 );
for i IN 1 .. 12 Loop
set_item_property('BLOCK7.ITEML'||i,VISIBLE, PROPERTY_FALSE);
end loop;
for i IN 1 .. 4 Loop
set_item_property('BLOCK7.ITEMT'||i,VISIBLE, PROPERTY_FALSE);
end loop;
for i IN 1 .. 1 Loop
set_item_property('BLOCK7.ITEMS'||i,VISIBLE, PROPERTY_FALSE);
end loop;
for i IN 1 .. 1 Loop
set_item_property('BLOCK7.ITEMD'||i,VISIBLE, PROPERTY_FALSE);
end loop;
Copy(80,'BLOCK7.POS_Y');
SELECT COUNT(*) INTO nb FROM TECH_SEN_ITEM WHERE ACTION = ACT;
for i IN 1 .. nb Loop
SELECT DESCIPTION, "TYPE", TABL, KEY_CHAMP, VALUE_CHAMP, CLAUSE INTO
REC FROM TECH_SEN_ITEM WHERE ACTION = ACT AND POS = i;
nb_l;
type_selected := 'D';
87
type_selected := 'S';
type_selected := 'T';
SET_POS_ITEM('BLOCK7.ITEM'|| type_selected ||
nb,500,22,2,'BLOCK7.POS_X','BLOCK7.POS_Y');
copy('','BLOCK7.ITEM'|| type_selected || nb);
IF rec."TYPE" = 'L' THEN FILL_LIST (rec.KEY_CHAMP, rec.VALUE_CHAMP,
rec.TABL, rec.CLAUSE, 'BLOCK7.ITEM' || type_selected || nb);
ELSIF rec."TYPE" = 'S' THEN copy(to_char(SEN_EM_NUM('SELECT ' ||
rec.TABL || '.NEXTVAL FROM DUAL')),'BLOCK7.ITEM'|| type_selected ||
to_char(nb)); set_item_property('BLOCK7.ITEM'|| type_selected ||
to_char(nb),ENABLED, PROPERTY_FALSE);
ELSIF rec."TYPE" = 'D' THEN
copy(to_char(SEN_EM_VARCH('SELECT (to_date(SYSDATE,
''dd/mm/yy'')) FROM DUAL')),'BLOCK7.ITEM'|| type_selected || to_char(nb));
END IF;
set_item_property('BLOCK7.ITEM'|| type_selected || nb, PROMPT_TEXT,
rec.DESCIPTION);
END;
END Loop;
NULL;
88
89