annexe de la thèse docteur de l'université henri poincaré, nancy i

48
FACULTE DES SCIENCES & TECHNIQUES U.F.R. Sciences et Techniques Mathématiques, Informatique et Automatique École Doctorale IAEM Lorraine Département de Formation Doctorale Automatique Annexe de la Thèse Présentée pour l’obtention du titre de Docteur de l’Université Henri Poincaré, Nancy I en Automatique, Traitement du Signal, Génie Informatique par Jean-Philippe AUZELLE PROPOSITION DUN CADRE DE MODÉLISATION MULTI- ÉCHELLES DUN SYSTÈME D’INFORMATION EN ENTREPRISE CENTRÉ SUR LE PRODUIT. Soutenue publiquement le 11 mars 2009 devant la commission d’examen : Membres du jury : Rapporteurs : M.David Chen Professeur, Université Bordeaux 1, Président du jury M.Angel Ortiz Bas Professeur, Université Polytechnique de Valencia Examinateurs : M. Dominique Luzeaux Directeur adjoint de l'UMESIO à la DGA (Délégation Générale pour l'Armement), HdR M. Gérard Morel Professeur, UHP Nancy I (Directeur de thèse) M. Hervé Panetto Professeur, UHP Nancy I (Codirecteur de thèse) Mme. Frédérique Mayer Maître de conférences, INPL (Codirectrice de thèse) Invité : M. François Vernadat Professeur, Université Paul Verlaine de Metz Centre de Recherche en Automatique de Nancy Faculté des sciences et Techniques – 54500 Vandœuvre lès Nancy

Upload: trinhtuong

Post on 05-Jan-2017

220 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

  

 

 

 

 

FACULTE DES SCIENCES & TECHNIQUES

U.F.R. Sciences et Techniques Mathématiques, Informatique et Automatique

École Doctorale IAEM Lorraine

Département de Formation Doctorale Automatique

Annexe de la Thèse Présentée pour l’obtention du titre de

Docteur de l’Université Henri Poincaré, Nancy I

en Automatique, Traitement du Signal, Génie Informatique

par Jean-Philippe AUZELLE

PROPOSITION D’UN CADRE DE MODÉLISATION MULTI-

ÉCHELLES D’UN SYSTÈME D’INFORMATION EN ENTREPRISE

CENTRÉ SUR LE PRODUIT.

 

Soutenue publiquement le 11 mars 2009 devant la commission d’examen :

Membres du jury :

Rapporteurs : M.David Chen Professeur, Université Bordeaux 1, Président du jury

M.Angel Ortiz Bas Professeur, Université Polytechnique de Valencia

Examinateurs : M. Dominique Luzeaux Directeur adjoint de l'UMESIO à la DGA

(Délégation Générale pour l'Armement), HdR

M. Gérard Morel Professeur, UHP Nancy I (Directeur de thèse)

M. Hervé Panetto Professeur, UHP Nancy I (Codirecteur de thèse)

Mme. Frédérique Mayer Maître de conférences, INPL (Codirectrice de thèse)

Invité : M. François Vernadat Professeur, Université Paul Verlaine de Metz 

Centre de Recherche en Automatique de Nancy

Faculté des sciences et Techniques – 54500 Vandœuvre lès Nancy

Page 2: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

2  

 

   

Page 3: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

3  

SOMMAIRE 

Annexe.1.  Gantt du projet eProduction ............................................................................................................. 4 

Annexe.2.  Diagramme d’activité UML d’Enchaînement des objets de modélisation de la MOA pour notre cas d’étude  5 

Annexe.3.  Meta‐modèle du processus ............................................................................................................... 6 

Annexe.4.  Concepts et représentations symboliques de MEGA Modelling Suite .............................................. 7 

Annexe.5.  Diagramme d’objectifs et d’exigences du SAF global ...................................................................... 11 

Annexe.6.  Diagramme d'environnement de processus du SAF global ............................................................. 11 

Annexe.7.  Prototype d’Outilage de modélisation ............................................................................................ 12 

Modification du méta modèle de MEGA suite .................................................................................................. 12 

Modification du menu contextuel de MEGA .................................................................................................... 14 

Exemple de macro pour la création d’un répertoire pour un SdS (bénéficiaire): « CopierRep&Fichier_SDS » 16 

Exemple de macro pour la création d’un répertoire pour un système contributeur : ..................................... 17 

modification du portail de mega ....................................................................................................................... 19 

Code HTML du portail ................................................................................................................................... 19 

Creation d’un graphique de navigation avec Graphviz ..................................................................................... 22 

Création de page web pour chaque Zachman (composant‐composite) ........................................................... 24 

Visuel ............................................................................................................................................................. 24 

Annexe.8.  Cahier des charge partiel « e‐Production » de l’AIPL ...................................................................... 25 

Annexe.9.  Modèle MESA .................................................................................................................................. 29 

Annexe.10.  Modèle fonctionnel inspiré du Purdue reference model ........................................................... 30 

Annexe.11.  Création du fichier XSLT .............................................................................................................. 31 

Ingénierie .......................................................................................................................................................... 31 

Résultat ............................................................................................................................................................. 32 

 

Page 4: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

  

ANNEXE.1. GANTT  DU  PROJET  EPRODUCTION  

 

Figure 1 Gantt du projet eProduction 

 

Page 5: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

  

ANNEXE.2. DIAGRAMME  D’ACTIVITÉ  UML  D’ENCHAÎNEMENT  DES  OBJETS  DE  MODÉLISATION  DE  LA  MOA  POUR NOTRE  CAS  D’ÉTUDE 

Début SCOPE

Création du paquetage SAF

Création du diagramme d'objectifs et d'exigences du SAF

Création du diagramme de cas d'utilisation du SAF

Exigences du cahier des charges du MOA

Création du diagramme de paquetage du SAF

Création d'un objectif et de ses <n> exigences détaillées

Fin SCOPE

Création du Zachman composite SAFStéréotype : système et système composite

Cellule SCOPE-WHY

Cellule SCOPE-HOW

Cellule SCOPE-WHAT

Emergence des exigences en phase avec le cycle de vie du produit (Choix de le faire à rebours)

Enrichissement du diagramme de cas d'utilisation du SAF A une exigence i correspond un cas d'utilisation j

01

?Existe-t-il un COTS qui puisse répondre à cette exigence?

Création du paquetage du COTS contributeur dans le diagramme de cas

d'utilisation du SAF

Création du Zachman Composant du COTSStéréotype : Système et Système Composant

Association du cas d'utilisation avec le paquetage du COTS dans le diagramme

de cas d'utilisation du SAF

Enrichissement du diagramme de paquetage du SAF avec le paquetage du

COTS

Création du diagramme d'exigences du COTS

Cellule SCOPE-WHY du Zachman COTS

Héritage des objectifs et exigences relatifs au cas d'utilisation du SAF dans

le diagramme d'exigences du COTS

Création du diagramme de cas d'utilisation du COTS Cellule SCOPE-HOW du

Zachman COTS

Héritage des cas d'utilisation du SAF dans le diagramme de cas d'utilisation

du COTS

Création du diagramme de paquetage du COTS Cellule SCOPE-WHAT du

Zachman COTS

Enrichissement du diagramme de paquetage du COTS avec les

informations identifiées fournies par le COTS pour chaque cas d'utilisation

Recherche de ces informations à partir des documents fournis avec le COTS et enrichissement du diagramme de paquetage avec des documents de spécifications détaillées pour chaque cas d'utilisation

06?

Existe-t-il des exigences prérequises au bon fonctionnement du COTS?

Enrichissement du diagramme de cas d'utilisation du COTS par raffinement de ses exigences intrinsèques

[oui]

Enrichissement du diagramme d'exigences du COTS par raffinement de ses exigences intrinsèques

i++

i=n+1

Prise en compte exigence i

i=1

[non]

Création d'un cas d'utilisation dans le diagramme de cas d'utilisation du SAF

[non]

Création du paquetage du nouveau système contributeur dans le

diagramme de cas d'utilisation du SAF

Association du cas d'utilisation avec le nouveau système contributeur dans le diagramme de cas d'utilisation du SAF

Enrichissement du diagramme de paquetage du SAF avec le paquetage du

nouveau système contributeur

Création du diagramme d'exigences du nouveau système contributeur

Héritage des objectifs et exigences relatifs au cas d'utilisation du SAF dans

le diagramme d'exigences du nouveau système contributeur

Création du diagramme de cas d'utilisation du nouveau système

contributeur

Héritage des cas d'utilisation du SAF dans le diagramme de cas d'utilisation

du nouveau système contributeur

Création du diagramme de paquetage du nouveau système contributeur

[non]

02 ?Faut-il créer un paquetage pour le COTS?

[oui]

[oui][non]

Edition d'un document de spécifications détaillées pour ce cas d'utilisation

Possibilité d'associer des documents (ou partie) fournies par l'éditeur

07?

Par rapport au cyle de vie du produit, s'agit-til du dernier objectif?

[oui]

[oui][non]

03

04

[oui]

[oui]

Enrichissement du diagramme d'objectifs et d'exigences du SAF avec

un nouvel objectif d'interopérabilité

[non]

Enrichissement du diagramme d'objectifs et d'exigences des COTS

avec le nouveau sous-objectif d'interopérabilité COTS-COTS

05

Enrichissement du diagramme d'objectifs et d'exigences du SAF avec

un nouveau sous-objectif d'interopérabiltié COTS-COTS

Enrichissement du diagramme d'objectifs et d'exigences du COTS avec les exigences d'interopérabilté

[oui]

[non]

[oui]

[non]

03

?

Il existe une ou plusieurs exigences d'interopérabiltié avec un ou plusieurs autres COTS

04

[oui]

Enrichissement du diagramme d'objectifs et d'exigences du SAF avec

un nouvel objectif d'interopérabilité

Enrichissement du diagramme d'objectifs et d'exigences des COTS

avec le nouveau sous-objectif d'interopérabilité COTS-COTS

05

?

Il n'existe pas d'objectif d'interopérabilité dans le diagramme d'objectifs et d'exigences du SAF

Enrichissement du diagramme d'objectifs et d'exigences du SAF avec

un nouveau sous-objectif d'interopérabiltié COTS-COTS

Enrichissement du diagramme d'objectifs et d'exigences du COTS avec les exigences d'interopérabilté

?

Il n'existe pas de sous-objectif d'interopérabilité COTS-COTS

[oui]

[non]

[oui]

[non]

Page 6: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

6  

ANNEXE.3. META‐MODÈLE  DU  PROCESSUS  

 

Processus

Acteur

Métier

Activité

Procédure

0..1

Activité détenue

0..1

Processus détenteur

OpérationOpération détenue

0..1

Procédure détentrice

Application

Ressource

Service

Site

0..1

IndicateurObjectifExigence

Exigence imposée Objectif assigné

0..1

Rôle

Pourquoi

Quoi

Comment

Qui

Avec quoi

MEGA Process::Autour de processus

Page 7: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

7  

ANNEXE.4. CONCEPTS  ET  REPRÉSENTATIONS  SYMBOLIQUES  DE  MEGA  MODELLING  SUITE 

 

Tableau 1. Symbole ‐ concept ‐ définition des objets de modélisation sous MEGA Modelling Suite 

Symbole  Concept DéfinitionDiagramme d’objectifs et d’exigences

 Projet 

Un projet consiste en un ensemble de tâches confiées à une équipe, qui transforment un système, ou une partie d'un système, en vue d'atteindre un objectif donné. 

 Objectif 

Un objectif est un but que l'on cherche à atteindre ou la cible visée pour un processus ou une opération. Il permet de mettre en évidence les points que l'on veut améliorer pour ce processus ou cette opération.

 Exigence 

Une exigence est un besoin ou une attente formulé explicitement, imposés comme une contrainte à respecter dans le cadre d'un projet de certification, d'organisation ou de modification du système d'information d'une entreprise.

Diagramme de paquetage

 

Paquetage 

Un paquetage partitionne le domaine d'étude et les travaux associés. Il permet de regrouper divers éléments, en particulier des cas d'utilisations et des classes. Un paquetage peut aussi contenir d'autres paquetages. Les paquetages sont liés entre eux à travers des rapports contractuels définissant leur interface.

Diagramme de processus

 

Processus 

Un processus est une chaîne de valeur fournissant un bien ou un service à un client interne ou externe à l'entreprise. Cette chaîne de valeur est décrite par une séquence d'activités de transformation. Elle est mise en oeuvre par des procédures.

 

Acteur externe Un acteur externe représente un organisme qui échange des flux avec l'entreprise. Ex : Client, Fournisseur, Administration.

  Message 

Un message représente un flux circulant à l'intérieur de l'entreprise ou échangé entre l'entreprise et son environnement. C'est généralement un flux d'information comme une commande ou une facture. Par commodité, un flux financier comme le règlement du client, ou un flux de matière comme la livraison d'un produit est également représenté par un message.

  Note 

Une note est une annotation ou remarque apportant un commentaire, un éclaircissement sur un texte ou un dessin. Les notes peuvent être de différents types : Remarque, Question, Documentation, Evolution, Correction, Anomalie, Spécification Technique, ...

Diagramme de site

 Site 

Un site est un lieu géographique où est implantée l'entreprise. Les sites peuvent être des sites-types tels que le siège, l'agence, l'usine, ou des lieux géographiques précis comme l'agence de Marseille, l'usine de Poissy, etc.

   

eProduction

Doter l'AIPL d'une infrastructure de type réactive

Respecter l'ISO 9001:2000

SAF_eProduction<< Système >>

4.3 Gestion des réceptions MP et

NRJ

Fournisseur

Facture

Doit respecter 6 exigences

Zone de réception

Page 8: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

8  

Organigramme

 

Acteur Responsable 

Un acteur interne représente un élément de l'organisation d'une entreprise tel qu'une direction, un service ou un poste de travail. Il est défini à un niveau plus ou moins fin en fonction de la précision à fournir sur l'organisation (cf type d'acteur). Ex : la direction financière, la direction commerciale, le service marketing, l'agent commercial.

 

Acteur structure 

 Acteur 

Un acteur représente une personne ou un groupe de personnes qui interviennent dans les processus ou dans le système d'information de l'entreprise. Un acteur peut être interne ou externe à l'entreprise

Diagramme de séquence

 

Instance 

Un objet est une entité avec une identité et des frontières clairement définies dont l'état et le comportement sont encapsulés. Son état est défini par les valeurs de ses attributs et de ses liens avec d'autres objets. Son comportement est représenté par ses opérations et ses méthodes. Un objet est une instance de classe.

Activation d’objet 

Une activation présente la période de temps pendant laquelle un objet exécute une action, directement, ou par l'intermédiaire d'une sous-procédure. Elle représente à la fois la durée de l'action et le contrôle de l'action par l'appelant.

Diagramme de cas d’utilisation

 

Cas d’utilisation 

Un cas d'utilisation est une suite d'actions qui amène un résultat observable pour un acteur particulier. Des scénarios illustrent les cas d'utilisation par l'exemple.

  Cas inclus 

 

Acteur UML 

   

Directeur

Magasinier

Olivier NARTZ

SAGE-X3:ERP

OA

Réception avec OA

<<Inclut>>

Magasinier

Page 9: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

9  

Diagramme de mise en oeuvre du processus

  Note 

 

Acteur externe Un acteur externe représente un organisme qui échange des flux avec l'entreprise. Ex : Client, Fournisseur, Administration.

 

Opération 

Une opération est une étape d'une procédure correspondant à l'intervention d'un acteur de l'organisation dans le cadre d'une des activités de l'entreprise. Ce peut être une opération industrielle comme 'usiner une pièce' ou logistique comme 'réceptionner une livraison', ou un traitement d'information comme 'enregistrer une commande'. Une opération peut être décomposée en tâches élémentaires.

 

Procédure 

Une procédure décrit la marche à suivre pour mettre en oeuvre tout ou partie du processus d'élaboration d'un produit ou un flux. Une procédure est représentée par une succession d'opérations déclenchées par la réception d'un message.

Diagramme d'architecture applicative

Application 

Une application est un ensemble de composants logiciels qui constituent un tout cohérent au regard des développements informatiques.

Service 

Un service est l'élément de découpage d'une application qui est mis à la disposition de l'utilisateur final de cette application dans le cadre de son travail. Les services représentent un découpage des applications en unités fonctionnelles élémentaires. Un service est une unité de traitement cohérente et indivisible coordonnant un ensemble de messages et d'événements afin d'effectuer une tâche dans le système d'information. Dans l'architecture applicative, le service est l'unité fonctionnelle la plus élémentaire.

Temporisateur 

Un temporisateur indique le moment où se produit un événement comme le déclenchement d'une procédure ou l'émission d'un message. Un temporisateur est un événement déterminé uniquement par le temps qui s'écoule. Ex : Le lundi, à quatre heures, etc.

   

=OA = Bon de commande

Fournisseur

Réceptionner les livraisons avec OA

Réception avec OA

Flexnet

JobScheduler

Toutes les 5 sec

Page 10: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

10  

Diagramme d'architecture technique

Nœud 

Un noeud est un élément du réseau tel qu'une imprimante, un modem, un routeur, etc. Il peut être connecté au réseau, ou bien directement à un poste de travail ou un serveur.

Réseau 

Un réseau est un système d'ordinateurs géographiquement éloignés les uns des autres, interconnectés par des télécommunications, généralement permanentes. Un réseau peut être local à un site de l'entreprise.

Application Une application est un ensemble de composants logiciels qui constituent un tout cohérent au regard des développements informatiques.

Serveur 

Un serveur est une ressource informatique matérielle, pouvant éventuellement disposer d'une base de données et sur laquelle des applications peuvent s'exécuter.

Base de données 

Une base de données permet de spécifier la structure de stockage logique ou physique des données.

Poste de travail (PDA) 

Un poste de travail est un poste type correspondant à un profil d'utilisateur.

 

   

Routeur AIPL Borne Wi-Fi Imprimante matières

Ethernet AIPL

AKEWA

AIP-Lorrain

FLexNet93

PDA

Page 11: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

11  

ANNEXE.5. DIAGRAMME  D’OBJECTIFS  ET  D’EXIGENCES  DU  SAF  GLOBAL 

 

ANNEXE.6. DIAGRAMME  D'ENVIRONNEMENT DE  PROCESSUS  DU  SAF  GLOBAL  

 

Figure 2 Diagramme d'environnement de processus du SAF global. 

SAF_global_tracer-produit

Produit tracé pendant son ingénierie

Produit tracé pendant sa mise à disposition

Assurer l'interopérabilité entre les systèmes d'information

Assurer la synchronisation périodique des échanges

Commercialisation produit

Commande

Gestion de version produitConception produit

BoM BoM

numéro de version

ClientOracle-Siebel

ProEngineer Windchill

Gestion des commandes clients à DIMEG

SAP_DIMEG

Commande

DIMEG

Mise en Production du produit (ISO IEC 62 264)

SAGE X3

Commande

5.0 Achats

Gestion des stocks de PF et préparation des

expéditions

Expédition

3.0 Contrôle de la production

(2.0) Ordonnancement

4.0 Gestion des MP, articles achetés, SF,

Energie

(1.0) Gestion des commandes client et

Planification

Confirmation entrées

Demande d'achat

Besoin long terme

Disponibilité

Besoins à court terme

Données process

Capacité de production

CR OFs

Capacité à réaliser l'OF

OFs

Libération expédition

Confirmation expédition

Doit respecter 6 exigences

OA

Fournisseur

Facture

Commande

OFs

Flexnet

SAGE X3

FlexnetFlexnet

Flexnet

AIPL

Messagerie

Messagerie

Gestion des commandes d'expédition

SAP_DHL

Transport

Information sur la commande

Bon de livraison Ordre de Livraison

DHL

CR fin de livraison

CR fin de livraison

CR fin de livraison

Page 12: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

12  

ANNEXE.7. PROTOTYPE  D’OUTILAGE DE  MODÉLISATION   

MODIFICATION  DU  MÉTA  MODÈLE DE  MEGA  SUITE  

L’expérience de notre équipe de recherche sur la meta-modélisation et l’adaptation de l’environnement MEGA

Modelling Suite nous a amené, naturellement, à adapter certaines de ses fonctionnalités et surtout d’en ajouter de

nouvelles. Les modifications sont relatives au méta modèle du concept de « paquetage » et du concept de

« diagramme » :

• Méta classe « Paquetage »

o Ajout du méta attribut « cellule de rattachement » de type string, longueur 63 caractères,

format du méta attribut « énumération ». (Figure 3) (Figure 7)

o Ajout du méta attribut « type de système » de type string, longueur 63 caractères, format du

méta attribut « énumération ». (Figure 4)

• Méta classe « diagramme » 

o Ajout du méta attribut « cellule de rattachement » de type string, longueur 63 caractères,

format du méta attribut « énumération », dont la valeur est dérivée du Paquetage détenteur de

ce Diagramme. (Figure 5) 

Pour simplifier le développement, s’agissant uniquement d’un prototype, nous avons implémenté le concept 

de PointDeVue par une liste enumérée de la combinatoire des valeurs « niveau/observation » (Figure 6). 

 

Figure 3 Propriétés de METACLASS de l'objet Paquetage : méta attribut « cellule Zachman de rattachement »

Page 13: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

13  

 

Figure 4 Propriétés de METACLASS de l'objet paquetage : méta atrribut "type de système (composite‐composant)

 

Figure 5 Propriétés de METACLASS de l'objet Diagramme : méta attribut « cellule Zachman de rattachement »

Page 14: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

14  

Figure 6. Stéréotype particulier pour l’association d’un paquetage ou d’un diagramme à une cellule d’un Zachman. 

Figure 7. Stéréotype particulier pour décrire le type de système (composant / composite). 

MODIFICATION  DU  MENU CONTEXTUEL  DE  MEGA    

 

Nous avons ajouté des  commandes dans  le menu  contextuel de  l’objet « paquetage » dont  l’objectif est de créer  des  répertoires  sur  le  disque  local  du  modélisateur  dans  lesquels  seront  placés  les  éléments  de contruction d’une page web incluant le Zachman correspondant à chaque système. 

Page 15: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

15  

 

Pour insérer de nouvelles commandes il faut accéder (click-droit) à la méta-classe « paquetage » puis sur « propriétés ». Puis dans l’onglet « interface utilisateur » / « commande de menu » on ajoute une nouvelle commande en l’associant à une macro déjà existante. A titre d’exemple, la macro « CopierRep&Fichiers_SDS » est donnée par la suite. 

  

 

  

 

 

 

 

 

Commande de suppression d’un Zachman 

Commandes de création d’un Zachman 

Page 16: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

16  

Note : attention la modification du menu n’est effective que si l’on ferme le diagramme et qu’on le relance ensuite. 

La valeur 256 permet d’avoir le menu dans la partie « nouveau » du menu contextuel existant. 

EXEMPLE  DE  MACRO  POUR  LA  CRÉATION  D’UN  RÉPERTOIRE  POUR  UN  SDS  (BÉNÉFICIAIRE):  «  CopierRep&Fichier_SDS  » 

Cette macro est stockée dans la base de l’environnement. Elle est accessible à partir de l’affichage « utilitaires », puis dans le repertoire « Macro VBS/MEGA/SDS ». 

'MegaContext(External)

Option Explicit

'----------------------------------------------------------------------------------------------------------------------------------------

' Copie C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Zachman

'vers

'C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Projets_User\(le-nom-paquetage)\

' Copie C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Zachman_vbs\sds\*.*

'vers

'C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Projets_User\(le-nom-paquetage)\

'----------------------------------------------------------------------------------------------------------------------------------------

Sub CmdInvoke(oRoot, num)

Dim fso

Dim sfol

Dim dfol

Dim oNameStereotype

Dim oStereotype

oStereotype=oRoot.GetCollection("stereotype")

If oStereotype.count > 0 Then

oNameStereotype=oStereotype.item(1).Name

MsgBox "votre paquetage est stéréotypé " & oNameStereotype

End If

If oNameStereotype <> "Système" Then

MsgBox "Le stéréotype " & oNameStereotype & " doit être changé par le stéréotype 'Système'"

Else

dfol=oRoot.GetProp("Name")

dfol=replace(dfol,"::","\")

MsgBox dfol

Page 17: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

17  

dfol="C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Projets_User\" & dfol

sfol="C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Zachman" ' change to match the source folder path

Set fso = CreateObject("Scripting.FileSystemObject")

If Not fso.FolderExists(dfol) Then

fso.CopyFolder sfol, dfol

Else

MsgBox dfol & " already exists!", vbExclamation, "Folder Exists"

End If

sfol = "C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Zachman_vbs\sds\" ' change to match the source folder path

Set fso = CreateObject("Scripting.FileSystemObject")

On Error Resume Next

If Not fso.FolderExists(sfol) Then

MsgBox sfol & " is not a valid folder/path.", vbInformation, "Invalid Source"

ElseIf Not fso.FolderExists(dfol) Then

MsgBox dfol & " is not a valid folder/path.", vbInformation, "Invalid Destination"

Else

fso.CopyFile (sfol & "\*.*"), dfol ' Change "\*.*" to "\*.xls" to move Excel Files only

End If

If Err.Number = 53 Then MsgBox "File not found"

End If

End Sub

EXEMPLE  DE  MACRO  POUR  LA  CRÉATION  D’UN  RÉPERTOIRE  POUR  UN  SYSTÈME  CONTRIBUTEUR  :  

'MegaContext(External) 

Option Explicit 

‘‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 

' Copie C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Zachman  

'vers  

'C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Projets_User\(le‐nom‐paquetage)\ 

' Copie C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Zachman_vbs\system\*.* 

'vers  

'C:\Program Files\MEGA\MEGA 2007\Mega_Std\Solutions\portal\zachman\SDS\Projets_User\(le‐nom‐paquetage)\ 

' ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 

Sub CmdInvoke(oRoot, num) 

Dim fso 

Dim sfol 

Page 18: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

18  

Dim sfol_vbs  

Dim dfol 

Dim oNameStereotype 

Dim oStereotype 

Dim changement 

Dim chemin 

chemin="C:\Program Files\MEGA\MEGA 2007\Mega_Std" 

oStereotype=oRoot.GetCollection("stereotype") 

If oStereotype.count > 0 Then 

  oNameStereotype=oStereotype.item(1).Name 

  MsgBox "votre paquetage est stéréotypé " & vbcrlf & oNameStereotype 

End If 

If oNameStereotype <> "Système" Then 

  MsgBox "Le stéréotype " & oNameStereotype & " doit être changé par le stéréotype " & vbcrlf & "'Système'" 

Else  

  dfol=oRoot.GetProp("Name") 

  dfol=replace(dfol,"::","\") 

'  MsgBox dfol 

  dfol= chemin & "\Solutions\portal\zachman\SDS\Projets_User\" & dfol 

  sfol= chemin & "\Solutions\portal\zachman\SDS\Template\Zachman" ' change to match the source folder path 

  sfol_vbs = chemin & "\Solutions\portal\zachman\SDS\Template\Zachman_vbs\system\" ' change to match the source folder path 

  Set fso = CreateObject("Scripting.FileSystemObject") 

  If Not fso.FolderExists(dfol) Then 

      fso.CopyFolder sfol, dfol 

       fso.CopyFile (sfol_vbs & "\*.*"), dfol 

  Else 

     MsgBox dfol & vbcrlf & vbcrlf & " existe déjà !", vbExclamation, "Le dossier existe" 

    changement=InputBox (" Tapez 'oui'" & vbcrlf & vbcrlf & " si voulez‐vous vraiment transformer " & vbcrlf & " ce Zachman en un Zachman 'composant'") 

    If changement="oui" Then            

      fso.DeleteFolder dfol 

      fso.CopyFolder sfol, dfol 

       fso.CopyFile (sfol_vbs & "\*.*"), dfol ' Change "\*.*" to "\*.xls" to move Excel Files only 

        Else 

          MsgBox "Il n'y aura pas de changement !" 

        End If 

      End If 

Page 19: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

19  

    End If 

End Sub   

 

MODIFICATION  DU  PORTAIL  DE  MEGA    

Afin d’accéder à l’outil de navigation qui donne l’accès à chaque Zachman particulier, le portail de MEGA Suite à été modifié. Un lien a été ajouté : « Ingénierie Récursive Dirigée par le Modèles ». 

Figure 8. Portail de d’accueil de MEGA modifié. 

CODE  HTML DU  PORTAIL  

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN"> 

<html> 

<head> 

<title>Zachman r&eacute;cursif</title> 

<meta http‐equiv="Content‐Type" content="text/html; charset=iso‐8859‐1"> 

<script language="VBScript"> 

ExecuteGlobal external.megaRoot.GetObjectFromId("~2l)pZRjj1X40[MEGA Utilities]").GetProp("~07u)W)F8xO00[VB Script]") 

ExecuteGlobal external.megaRoot.GetObjectFromId("~mPNtvwkm1XpE[MEGA Web Utilities]").GetProp("~07u)W)F8xO00[VB Script]") 

Lien vers la page de visualisation graphique du système en cours de modélisation 

Page 20: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

20  

</script> 

<script language="JavaScript" type="text/JavaScript"> 

<!‐‐ 

function MM_reloadPage(init) {  //reloads the window if Nav4 resized 

  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { 

    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} 

  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); 

MM_reloadPage(true); 

//‐‐> 

</script> 

</head> 

<body bgcolor="#4482B4" text="#FFFFFF" link="#FFFF33" vlink="#99FF33" alink="#FF0000" language="vbscript" > 

<form name="form1" method="post" action=""> 

  <select name="graform" id="graform"> 

    <option value="dot" selected>dot</option> 

    <option value="circo">circo</option> 

    <option value="fdp">fdp</option> 

    <option value="neato">neato</option> 

    <option value="twopi">twopi</option> 

  </select> 

  Rafra&icirc;chir la page si vous changez de forme du graphique (clique droit  

  + refresh)  

</form> 

<p>&nbsp;</p> 

<p>  

  <script language="VBScript"> 

Const ForReading = 1, ForWriting = 2  

Dim racine, chemin2, f 

chemin2="C:/Program Files/MEGA/MEGA 2007/Mega_Std/Solutions/portal/zachman/SDS/Projets_User/" 

function printNode(packageDetenu) 

  Dim url, name, oStereotype, fso, typeSys, imagePackage    

  name = packageDetenu.GetProp("Nom court")  

  typeSys = packageDetenu.GetProp("Type de système (composite‐composant)")   

  oStereotype=packageDetenu.GetCollection("stereotype") 

Page 21: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

21  

  If oStereotype.count > 0 Then 

    oNameStereotype=oStereotype.item(1).Name 

  End If 

  Set fso = CreateObject("Scripting.FileSystemObject") 

  url = chemin2 & replace(packageDetenu.GetProp("Name"), "::","/") & "/zachman_static.html" 

  Set oCollec = packageDetenu.GetCollection("Paquetage détenu") 

  For each i in oCollec 

    name_fils = i.GetProp("Nom court")  

    f.write Chr(34)+name+Chr(34)+"‐>"+Chr(34)+name_fils+Chr(34)+";" 

    f.write printNode(i)  

  Next 

  If oNameStereotype = "Système" Then 

    If fso.FileExists(url) Then 

      If typeSys = "Système composant" Then 

        imagePackage = "package_composant.png" 

      ElseIf typeSys = "Système composite" Then 

        imagePackage = "package_composite.png" 

      Else 

        imagePackage = "package_vide.png" 

      End If 

      f.write  Chr(34)+name+Chr(34)+" [shapefile="+Chr(34)+imagePackage+Chr(34)+",URL="+Chr(34)+url+Chr(34)+",target=_blank];" 

Else 

      f.write  Chr(34)+name+Chr(34)+" [shapefile="+Chr(34)+"package_vide.png"+Chr(34)+"];" 

    End If 

  End If   

end function 

Set racine=external.megaroot.GetObjectFromId("vNFxYgFq7L60") 

Set fso = CreateObject("Scripting.FileSystemObject") 

Set f = fso.OpenTextFile("C:\PROGRA~1\MEGA\MEGA20~1\Mega_Std\SOLUTI~1\portal\zachman\SDS\Template\PORTAL~1\graf.dot", ForWriting,true) 

f.write "digraph g  {" 

Set oCollec = racine.GetCollection("Paquetage référencé") 

For each i in oCollec 

    printNode(i) 

Next 

Page 22: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

22  

f.write "}" 

f.Close 

Dim graf 

Set graf = CreateObject("WScript.Shell") 

graf.Run "C:\PROGRA~1\MEGA\MEGA20~1\Mega_Std\SOLUTI~1\portal\zachman\SDS\Template\PORTAL~1\graphique.bat "+document.form1.graform.value,,true 

document.write "<img src='graf.gif' usemap='#G'/>  

  Dim oFso, f2 

  Set oFso = CreateObject("Scripting.FileSystemObject") 

  Set f2 = oFso.OpenTextFile("C:\PROGRA~1\MEGA\MEGA20~1\Mega_Std\SOLUTI~1\portal\zachman\SDS\Template\PORTAL~1\graf.map", ForReading) 

  Document.Write f2.ReadAll 

  f2.Close 

</script> 

</p> 

<table width="100%" border="0"> 

  <tr>  

    <td width="41%"><img src="package_composant.PNG" width="34" height="28"> Syst&egrave;me  

      composant associ&eacute; &agrave; un Zachman </td> 

  </tr> 

  <tr>  

    <td><img src="package_composite.PNG" width="34" height="28"> Syst&egrave;me  

      composite associ&eacute; &agrave; un Zachman </td> 

  </tr> 

  <tr> 

    <td><img src="package_vide.PNG" width="34" height="28"> Syst&egrave;me dont  

      on ne ma&icirc;trise pas l'ing&eacute;nierie interne (bo&icirc;te noire)</td> 

  </tr> 

</table> 

</body> 

</html> 

CREATION  D’UN  GRAPHIQUE DE  NAVIGATION  AVEC  GRAPHVIZ  

Le portail de MEGA a aussi été modifié pour y ajouter un lien vers un graphique de navigation du système en

cours de modélisation (Figure 8 & Figure 9). La construction de ce nouveau graphique est basée sur l’application

Graphviz1. Il est ainsi généré dynamiquement au gré de l’émergence de nouveaux systèmes donc de nouveaux

                                                                 1 http://www.graphviz.org/

Page 23: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

23  

paquetages. Ce graphique de navigation permet d’avoir une vue synthétique du « système à faire » et surtout de

naviguer par des liens hypertextes sur chacun des systèmes composants ou composites et donc sur leur Zachman

respectifs. Les systèmes composants et composites sont distingués par des Zachman avec des couleurs de fond

différentes : système composite (couleur orange), système composant (couleur verte). Si le modélisateur

rencontre un système de type « boîte noire » dont il a juste la connaissance des intrants et des extrants, le

graphique affiche le paquetage du système en noir (Figure 9).

La génération automatique du graphique passe une ligne de commande dans un fichier batch.

Ligne commande

1 CD C:\Program Files\MEGA\MEGA

2007\Mega_Std\Solutions\portal\zachman\SDS\Template\Portal_sds_pa

2 set prog="C:\Program Files\Graphviz2.20\bin\%1.exe"

3 echo %prog%

4 %prog% -Gcharset=latin1 -Tcmapx -Gbgcolor=white -Gdpi=60 -

Ecolor=darkorange -Ncolor=palegolenrod -Nfontcolor=black -ograf.map -Tgif -

ograf.gif -shape=crow graf.dot

Page 24: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

24  

Figure 9. Graphique de navigation avec lien hypertexte vers chaque système représenté sous la forme d’un paquetage. 

CRÉATION  DE  PAGE  WEB  POUR  CHAQUE  ZACHMAN  (COMPOSANT‐COMPOSITE)  

VISUEL   

 

Page 25: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

25  

Figure 10. Cadres de Zachman particuliers associés à des système composants ou composites.  

ANNEXE.8. CAHIER  DES  CHARGE  PARTIEL  «  E‐PRODUCTION  »  DE  L’AIPL 

Copie du contenu du document word rédigée par la direction de l’AIPL : 

Projet « eFormation en eProduction»  

phase " Ingénierie Produit/Process " 

 

1. Introduction 

En 2001, sous l’impulsion du Ministère de l’Éducation Nationale, a été créé le réseau de compétences AIP‐PRIMECA, dans les domaines de la Conception Intégrée en Mécanique et de la Productique. Il est le résultat de la fusion entre : 

• les A.I.P. (Ateliers Inter Établissements de Productique), centres de ressources régionaux utilisés comme support expérimental de formations approfondies dans le domaine de la Productique, créés en 1984 à l'initiative du Ministère de l'Éducation Nationale, en association avec le Ministère de l'Industrie et les Régions concernées ; 

• le réseau PRIMECA (Pôle de Ressources Informatiques pour la MECAnique), créé en 1991 à l’instigation du Comité d’Application de l’Académie des Sciences pour promouvoir l’utilisation des outils informatiques dans la conception des produits mécaniques et créer une filière de formation en Conception Mécanique Assistée par Ordinateur. 

Organisées autour de centres de ressources, les missions locales dynamisent la formation dans les domaines de la Conception Intégrée en Mécanique et de la Productique. L’association des compétences pédagogiques et scientifiques crée un espace de formation autour des thèmes de l’ingénierie intégrée, favorisant la mise en place aussi bien d’enseignements approfondis par discipline que d’enseignements par projets  

Page 26: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

26  

interdisciplinaires pour former les futurs cadres du monde industriel. Ce sont des lieux de transfert de la recherche vers la formation et l’entreprise, utilisant du matériel de dimension industrielle. 

Dans chaque pôle, des moyens de type industriel permettent de former des spécialistes : 

• Ayant une approche globale du système de conception intégrée et de production ; 

• Maîtrisant les méthodes et techniques de modélisation, d’analyse, de production, 

• d’informatisation, d’automatisation ; 

• Capables de s’intégrer dans des activités pluridisciplinaires ; 

• Conscients de la nécessaire cohérence des différentes fonctions de l’entreprise. 

Le réseau national compte actuellement neuf pôles régionaux1. En Lorraine, le pôle AIPPRIMECA2 est un service commun aux trois établissements suivants: 

• L’Université Henri Poincaré, Nancy 1 (tutelle administrative) ; 

• L’Institut National Polytechnique de Lorraine ; 

• L’École Nationale Supérieure des Arts et Métiers, centre de Metz. 

Le pôle AIP‐PRIMECA Lorraine est depuis juin 2003 engagé dans une démarche qualité, après un audit à blanc réalisé en octobre 2004, l’audit de certification ISO 9001 version 2000 est planifié avec l’A.F.A.Q. en avril 2005. 

 

L’AIP Lorrain, site AIP‐PRIMECA Lorraine de Nancy, a toujours été conçu pour reproduire en grandeur réelle une entreprise de production manufacturière. Disposant d’outils allant de la modélisation d’entreprise, à l’usinage, l’assemblage et le contrôle tridimensionnel, en passant par la conception, l’automatisation, la robotique, la visionique, et la gestion d’entreprise, l’objectif principal du pôle est d’offrir à ses utilisateurs des matériels, des logiciels et leurs intégrations au plus proche des réalités industrielles. Le fort aspect mutualisation des moyens se traduit par une activité importante et régulière, autour de 140 000 heures élèves dispensées à près de 1000 étudiants durant l’année universitaire 2003‐2004. C’est dans ce cadre que ce projet a vocation à compléter et moderniser l’offre du pôle AIP‐PRIMECA Lorraine. 

2. Contexte et besoins des formations en « eFormation en eProduction» 

Le partage de données est une réalité au travers de l’Internet, il permet à différents intervenants de travailler en commun sur les mêmes données, c’est la notion de travail collaboratif. Déjà bien développé en phase de conception « Ingénierie collaborative » (collaborative engineering), il s’impose progressivement en production « Production collaborative » (collaborative manufacturing). En production, comme ailleurs, le travail collaboratif doit permettre de faire travailler ensemble les différents acteurs d'un projet. Par ailleurs, le recours de plus en plus fréquent à l’externalisation de la production (outsourcing) favorise son développement. En effet, confier tout ou partie de la fabrication de ses produits à un sous‐traitant est aujourd'hui une pratique industrielle admise qui nécessite une organisation favorisant le partage des données de conception, de fabrication et de suivi. 

La nécessité de réactivité des entreprises aux besoins des clients a rendu obligatoire une approche plus globale et en particulier à s’intéresser aux liens entre la conduite locale des procédés et la gestion locale ou distante d’ateliers et d’entreprises. Par exemple, des progiciels de gestion d’atelier basés sur le concept de MES (Manufacturing Execution System)  ont émergés et ainsi permettent la mise en oeuvre du concept de travail collaboratif en production. 

La plupart des industries sont sujettes à ces changements culturels et techniques (Mécaniques, Electroniques, Agroalimentaires, Pharmaceutiques, …) et ce quelque soit le type de procédé (Continu, Batch, Manufacturier). 

Page 27: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

27  

En particulier, un enjeu industriel important est d’assurer la traçabilité électronique du cycle de vie produit dans un contexte réglementaire toujours plus prépondérant. 

Les filières utilisatrices du pôle AIP‐PRIMECA Lorraine (Cycles ingénieurs ENSAIA, ENSAM, ENSEM, ENSGSI, ENSTIB, ESIAL, ESSTIN ‐ Nouvelles filières (LMD) Licences, Licences professionnelles et Masters du domaine ‐ IUT GMP, …) forment des techniciens et des cadres de l’industrie dans différents secteurs industriels. Elles sont donc directement concernées par ces évolutions. L’AIP Lorrain doit, pour ce faire, proposer des manipulations mettant en évidence ces concepts déclinés suivant les aspirations des différentes filières : des techniciens en production manufacturière, aux cadres en gestion d’entreprise, en passant par les cadres de production. 

L’évolution de l’AIP Lorrain dans ce contexte a débutée par l’acquisition d’un tour à commande numérique en 2000 (Rosilio TBI 540). Elle c’est poursuivie en 2003, par la rénovation de la cellule flexible d’assemblage (SFP Siemens) et l’installation d’un progiciel de gestion intégrée d’entreprise de type ERP (Adonix). Avec l’aide de la Région Lorraine sur 2003 et 2004, une plate‐forme de télémaintenance (TELMA) a été développée dans cette même logique, en collaboration avec une jeune entreprise Lorraine (Predict). Parallèlement, la chaîne de conception de produits et de systèmes a été renforcée autour de la suite logicielle CATIA. En 2003, avec l’aide de la Région Lorraine, un projet, de différentes filières de l’UHP, visant à uniformiser les pratiques et les outils utilisés pédagogiquement en métrologie a permis de rénover les matériels et logiciels et d’en permettre l’intégration dans l’environnement numérique de CFAO CATIA. En 2004, le pôle a mis en avant les thèmes « Numérisation et eTraçabilité », soutenue par la région Lorraine ce projet est en cours de déploiement. Simultanément l’étude du renouvellement du centre d’usinage, âgé de 20 ans, a débouché sur un appel d’offre pour se doter d’une machine moderne de type Usinage à Grande Vitesse. Disponible depuis peu, cet investissement très important permet de boucler la chaîne numérique disponible : CAO, FAO, MOCN, MMT et Numérisation. Tous ces équipements ou logiciels sont pourvus de moyens de communication évolués et évolutifs, basés sur des Technologies de l’Information et de la Communication comme des SGDT, Ethernet et Internet. 

Les nouveaux besoins pédagogiques, issus des réflexions menées dans le cadre de la mise en place du LMD, confortent la dynamique actuelle du pôle. La problématique est clairement centrée autour des concepts d’intégration d’applications d'entreprise (ERP, MES, GMAO, CAO, …) depuis les niveaux "Business" jusqu'aux niveau "Production" (B2M : Business To Manufacturing"). En particulier, les besoins en ingénierie système5 doivent être confortés, le poids de cette discipline dans la formation des futurs cadres étant prépondérantes. Dans ce sens, une application fournissant des espaces collaboratifs est en cours d’évaluation avant son déploiement à la rentrée 2005 pour la gestion des projets d’étudiants. 

3. Objectifs du projet « eFormation en eProduction» 

Il s’agit de doter l’AIP Lorrain d’une infrastructure de type entreprise réactive (agile), ainsi elle doit pouvoir par exemple : 

• Fournir aux gestionnaires des indicateurs fiables (temps passés, prix de revient, 

• …) ; 

• Fournir aux commerciaux des informations très précises nécessaires à 

• l’acceptation des commandes (disponibilités, délais, coûts, …) ; 

• Mettre en fabrication rapidement un nouveau produit (conception, procédé, 

• formation, …) 

• Réordonnancer facilement et rapidement la production (commande imprévue, 

• panne, …) 

• Diagnostiquer rapidement des dérives (temps passés, qualité, maintenance 

• préventive, …) ; 

• Répondre aux exigences des contraintes réglementaires (qualité, traçabilité, 

Page 28: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

28  

• généalogie, …) ; 

• … 

Dans ce contexte, l’AIP Lorrain doit avoir le comportement d’une entreprise manufacturière, intégrant les processus de conception et de réalisation de produit usinés et/ou assemblés. Les produits sont réalisés à la demande à l’unité ou en petites séries. La conception est classique ou de type rétro‐conception. Le procédé de production doit exploiter les moyens de fabrication de l’AIP Lorrain : débit matière (stock, scie), tournage (tour Rosilio TBI), fraisage (centre d’usinage DMG), contrôle (MMT DEA) et assemblage (SFP Siemens) mais aussi ceux d’autres établissements ou sites géographiques (ENSAM Metz, …). 

Différents scénarios de gestion seront disponibles, gestion locale ou distante en particulier à partir des écoles délocalisées et plus ou moins éloignées (ENSAM Metz, ENSTIB Epinal, ESSTIN Vandoeuvre, ENSGSI Nancy, …). 

La demande 2005 développe principalement le thème « Ingénierie Produit/Process », et vise à conforter deux axes principaux : 

• La conception conjointe produit/process : ces solutions de fabrication numériques permettent de concevoir et de visualiser l’ensemble du processus de production d’un produit numériquement spécifié, avant la mise en service de tout matériel ou machine physique. 

• L’ordonnancement réactif de la production : les outils d'ordonnancement et de modélisation en environnement complexe permettent de prendre en compte la plupart des procédés de fabrication et d'aider à la prise de décisions en comparant différentes simulations. 

La figure en annexe propose une vue synthétique du projet « eFormation en eProduction ». 

4. Les besoins en équipements sur l’année 2005 

Les besoins en équipements pour l’année 2005, portent donc sur les points suivants : 

1. Complément de la chaîne de conception numérique Produit/Process : 

• Acquisition des outils logiciels de modélisation et simulation de système de production ; 

• Acquisition des systèmes informatiques supports (serveur) ; 

• Intégration dans l’environnement de conception produit (CAO CATIA). 

2. Complément et rénovation des outils d’ordonnancement de la production : 

• Mise à niveau des outils logiciels d’ordonnancement ; 

• Acquisition des systèmes informatiques supports (serveur, périphériques) ; 

• Intégration dans l’environnement de gestion de la production (ERP, MES, …). 

   

Page 29: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

29  

ANNEXE.9. MODÈLE  MESA 

 

Figure 11. Modèle MESA International 

 

   

Affectation Production

Unités

Gestion de la Main-

d ’Oeuvre

Gestion Qualité

Programme détaillé des Opérations

Généalogie et Traçabilité

Produit

Acquisition des données

Gestion Maintenance

Analyse de la Performance

État et Allocation des Ressources

Ventes et Service

Gestion des Procédés

ERP Enterprise Resources

Planing

Ingénierie Produits et Procédés

Contrôle

Contrôle de la Documentation

SCMSupply Chain Management

MES

Page 30: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

30  

ANNEXE.10. MODÈLE  FONCTIONNEL INSPIRÉ DU  PURDUE  REFERENCE MODEL 

Figure 12. Modèle fonctionnel dérivé du PRM  

(5.0

) P

rocu

rem

ent

(3.0

) P

rodu

ctio

n C

ont

rol

(1.0

) O

rder

Pro

cess

ing

(8.0

) P

rodu

ct C

ost

Acc

oun

ting

(2.0

) P

rodu

ctio

n S

che

dulin

g

(4.0

) M

ate

rial

and

Ene

rgy

Co

ntro

l

(10.

0) M

ain

tena

nce

Man

age

men

t

(6.0

) Q

ualit

y A

ssur

ance

(7.0

) P

rod

uct

Inve

nto

ry C

ont

rol

(9.0

) P

rodu

ct S

hip

ping

Adm

in

(3.3

) O

pera

tion

Co

ntro

l(3

.1)

Pro

cess

ing

Sup

po

rt E

ngin

eeri

ng

(3.4

) O

per

atio

n P

lan

ning

(1.1

) P

rodu

ctio

n F

ore

cast

ing

(lo

ng r

ang

e)

(1.2

) H

isto

ria

n

(1.3

) O

rder

Ent

ity

(1.4

) P

rodu

ctio

n O

rder

(1.5

) O

rde

r A

ccep

tanc

e

(2.1

) P

roce

ss P

rodu

ctio

n O

rder

s

(2.2

) B

ala

nce

in P

roce

ss &

Pro

duct

Inv

ento

ry

(2.3

) P

rodu

ctio

n F

ore

cast

ing

(sh

ort

ter

m)

(2.4

) P

rodu

ctio

n S

cheu

dlin

g

(4.1

) R

aw M

ater

ial a

nd

Ene

rgy

Re

quir

emen

t C

on

tro

l

(4.2

) O

ptim

um

Ra

w M

ater

ial a

nd E

ner

gy

Inve

nto

ry L

eve

ls

(4.3

) In

com

ing

Raw

Mat

eria

l and

En

erg

y C

on

tro

l

(4.4

) R

aw M

ater

ial a

nd

Ene

rgy

Ro

utin

g

(4.5

) R

aw M

ater

ial a

nd

En

erg

y In

vent

ory

Rep

ort

ing

(4.6

) R

aw M

ater

ial a

nd

Ene

rgy

Mo

vem

ent

Co

ntr

ol

(4.7

) R

aw M

ater

ial a

nd

Ene

rgy

Mea

sure

me

nt V

alid

atio

n

(6.1

) S

et S

tand

ard

s &

Me

tho

ds

(6.2

) R

aw M

ate

rial

Eva

luat

ion

(6.3

) Q

A M

easu

rem

ent

Va

lidat

ion

(6.4

) C

lass

ifica

tion

and

Cer

tific

atio

n

(6.5

) E

valu

atio

n o

f P

rodu

ct

(6.6

) La

bs

Aut

om

atic

Ana

lysi

s

(6.7

) A

naly

se P

roce

ssin

g C

apa

bili

ty

(7.1

) In

vent

ory

Sup

erv

isio

n

(7.2

) Lo

ss C

ont

rol

(7.3

) In

vent

ory

Rep

ort

ing

(7.4

) P

rodu

ct S

hip

ping

(7.5

) P

rodu

ct R

ou

ting

(7.6

) P

rod

uct

Mo

vem

ent

(7.7

) In

vent

ory

Mea

sure

men

t V

alid

atio

n

cust

om

er

purc

hase

ord

er

orde

r c

onfir

mat

ion

Res

ear

ch D

eve

lop

men

t a

nd

Eng

inee

ring

Mar

ketin

g &

Sal

es

Act

ive

file

fold

er

Sa

les

His

tory

orde

rs

orde

rs

orde

r d

ata

orde

rs

upda

te

annu

al s

ales

hist

ory

que

ry

Pro

duct

ion

fore

cast

sale

s fo

reca

st

Pro

duct

ion

Ord

ers

avia

bilit

y of

pro

duct

rese

rvat

ion

wai

ve rAcc

epte

d o

rder

sac

cept

ed

orde

r

(9.1

) S

hip

men

t S

che

dulin

g

acce

pte

d or

der

(9.2

) S

hip

pin

g co

sts

(9.3

) S

hip

me

nt C

onf

irm

atio

n(9

.4)

Rel

eas

e fo

r I

nvo

lvin

g(9

.5)

Re

leas

e S

hip

men

ts

(9.6

) P

rep

are

Shi

ppin

g D

ocu

men

t

deta

iled

prod

uctio

n o

rder

s

fore

cast

upd

ate

capa

cit

y

prod

uctio

n ra

tes

upda

te p

rodu

ctio

n o

rder

s

Sch

edul

eup

date

cap

acit

y

prod

uctio

n v

aria

nce

from

pla

nned

inve

ntor

y

Sch

edul

e of

Pro

duct

ion

capa

cit

y

inve

ntor

y

Pa

cko

ut

Sch

edul

e

Pac

k O

ut S

ched

ule

(3.1

.1)

Pro

ject

Man

agm

ent

(3.1

.2)

Equ

ipm

ent

& P

roce

ss D

esi

gn M

od

ifica

tion

(3.1

.3)

Eng

inee

ring

Spe

cial

ists

(3.1

.4)

Sta

nda

rds

and

Met

hod

s

(3.1

.5)

Pro

cess

Ana

lysi

s a

nd P

roje

ct D

eta

iled

Ingi

neer

ing

(3.1

.6)

Pro

ject

Co

st C

on

tro

l

(3.1

.7)

Equ

ipm

ent

Mo

difi

catio

n C

ons

truc

tion

(3.1

.8)

Dra

ftin

g D

ocu

men

tatio

n

(3.2

) M

ain

ten

ance

(3.2

.1)

Mai

nten

ance

Pla

nnin

g

(3.2

.2)

Co

st C

ont

rol

(3.2

.3)

Sp

are

Par

ts

(3.2

.4)

Ma

inte

nan

ce C

rew

Sup

ervi

sio

n (3.2

.5)

Do

cum

enta

tion

obje

ctiv

es c

onst

rain

tsco

st s

supe

rvis

ion

coo

rdin

atio

n

labo

r c

osts

inst

alla

tion

det

ails

(3.3

.1)

Op

era

tion

Sup

ervi

sio

n

(3.3

.2)

Op

era

tion

s C

ost

Co

ntro

l

(3.3

.3)

Phy

sica

l P

roce

ss C

on

tro

l

(3.3

.4)

Op

era

tion

al M

easu

rem

ent

Val

ida

tion

(3.3

.5)

Equ

ipm

ent

Mo

nito

rin

g

(3.3

.6)

Pro

duc

tion

Bal

aci

ng a

nd

Op

timiz

atio

n

Eng

inee

ring

File

s

exis

ting

dra

win

gs

new

dra

win

gs

new

des

ign

ske

tche

sas

is d

raw

ing

s

basi

c s

peci

ficat

ion

s

as is

dra

win

gs

stan

dard

s

stan

dard

met

hod

s

tech

nica

l fe

edba

ck

stan

dard

s

mon

itorin

g

advi

ce &

sup

port

requ

irem

ent

s

Ve

nd

ors

new

dev

elop

men

ts

deta

il p

ropo

sal

spec

ifica

tion

s

tech

nica

l fe

edba

ck

engi

neer

ing

met

hods

& s

tand

ards

tech

nica

l in

stru

ctio

ns

requ

est f

or m

odifi

catio

n

Mai

nte

nanc

e d

raw

ings

-in

stru

ctio

n-in

vent

ory

spen

t c

osts

parts

pro

cure

men

ts c

ost

inve

ntor

y st

atut

s

upda

te p

arts

info

rmat

ion

inve

ntor

y

parts

info

rmat

ion

orde

rs

Ass

igne

d w

ork

cre

ws

sche

dule

s of

cre

ws

wor

k p

erfo

me

d

mai

nten

ance

his

tory

upd

ate

part

s r

eque

sts

equi

pmen

t in

form

atio

npl

ant

con

figur

atio

n

upda

te d

raw

ing

s

files

que

ry

files

que

ry

relia

bilit

y a

nd in

form

atio

n

diag

nost

ic

resu

lts

Long

Ter

m M

ater

ial a

nd E

nerg

y e

quip

men

t

(5.1

) O

rde

r P

lace

men

t

(5.2

) P

roce

ss r

equ

ests

(5.3

) C

ost

Co

ntro

l

parts

pur

chas

e re

ques

ts

oper

atio

n c

ost

utili

zatio

n lo

sses

oper

atin

g c

ondi

tion

s

cons

train

ts

equi

pmen

t v

aria

bles

Ope

ratio

n h

isto

ry -

co

ntin

uou

s v

aria

ble

- d

iscr

et e

ven

t

upda

te

his

tor

y

stat

us &

ave

rage

dat

a

perf

orm

anc

e da

ta equi

pmen

t p

erfo

rman

ce

obje

ctiv

es

prod

uctio

n p

erfo

rman

ce

prod

uctio

n v

aria

blesva

lid m

easu

rem

ents

Pla

nt In

stru

men

tatio

n

actu

ator

set

tings

diag

nost

ic &

sel

f te

st

sens

or m

easu

rem

ent

s

stan

dard

s

(8.1

) C

ost

Bal

anci

ng a

nd B

udg

et

(8.2

) R

aw

Ma

teri

al &

Par

ts C

ost

s A

ccts

Pay

(8.3

) P

rod

uct

Inco

me

& A

ccts

Rec

(8.4

) P

rodu

ctio

n C

ost

s

perf

orm

ance

and

cos

ts

perfo

rman

ce

pro

duct

ion

orde

r s

tatu

s

equi

pmen

t p

erfo

rman

ce

feed

back

equi

pmen

t p

erfo

rman

ce

feed

back

Pro

cess

Dat

a

Pro

cess

Dat

a anal

ysis

dat

a

trans

fer

s

arriv

al c

omm

itmen

tss

tran

sfer

s or

ders R

aw M

ate

rial

& E

nerg

y -

inve

nto

ry -

his

tory

loca

tion

sro

ute

s

quan

titie

s m

ovem

ent

s

PL

ant

INS

T (

data

& c

on

tro

l in

terf

ace)

mat

eria

l act

ion

ord

ers

activ

ator

s se

tting

s

man

ual

read

ing

sse

nsor

mea

sure

men

ts

Lab

ana

lysi

s

valid

mea

sure

men

ts

exce

ptio

n ev

ents

inve

ntor

y

inve

ntor

y st

atut

s

quan

tity

qua

lity

inco

min

g c

onfir

mat

ion

QA

app

rova

l

mat

eria

l and

ene

rgy

inco

min

g

mat

eria

ls n

ad e

nerg

y in

vent

ory

repo

rt

inve

ntor

y st

atut

s

raw

mat

eria

l o

rder

requ

est

Su

pp

lier

invo

ice

orde

rs P

urch

asi

ng P

rice

and

Co

ntra

ct N

ego

ciat

ion

supp

lier

per

form

anc

esu

pplie

r dat

a

Ven

do

r L

ibra

ry

PO

spe

cific

atio

nve

ndor

per

form

anc

e

budg

ets

spe

cshi

stor

ica

l upd

ate

buy

ord

er

PO

issu

ed

com

mite

d ag

ains

t p

rodu

ctio

n or

bud

get

Acc

oun

ting

paym

ent

rel

ease

met

hod

s

stan

dard

s

requ

irem

ent a

nd m

etho

ds c

hang

e

anal

ysis

OF

pro

cess

cap

abili

ty

met

hod

s

Sta

ndar

d C

usto

mer

Req

uier

men

t

valid

mea

sure

men

ts

valid

mea

sure

men

ts

anal

ysis

dat

a

Qua

lity

Ass

ura

nce

His

tory

File

upda

te

his

tor

y

certi

ficat

ion

and

cla

ssifi

catio

n

proc

ess

dev

iatio

n

ship

tim e

Rel

ease

to s

hip

trans

fer

s

Inve

nto

ry F

ile H

isto

ry F

ilecorr

ectio

ns

hist

or y q

uery

mea

sure

men

ts

actu

ator

set

ting

s

man

ual

set

ting

s

quan

titie

s m

ovem

ents

rout

ing

trans

fer

s

inve

ntor

y d

ata

on h

and

prod

uct d

ata

inve

ntor

y b

alan

ces

requ

irem

ent

s

cont

rolle

d v

aria

bles

quan

tity

loca

tion

ship

men

t c

onfir

mat

ion

mat

eria

l and

ene

rgy

cos

ts

- A

CC

TS

Rec

eiva

ble

-A

CC

TS

pa

yabl

es

- B

udge

t -

Pay

roll

upda

te A

CC

T p

ay

cost

s g

oals

prod

uctio

n

upda

te c

osts

Pay

roll

upda

te

upda

te A

CC

T R

& C

inco

me

from

pro

duct

sla

bor

cos

ts

rece

ipt

s

cost

obj

ectiv

es

prod

uctio

n c

osts

Co

rpo

rate

Acc

oun

ting

man

ufac

turin

g m

ater

ial a

nd e

nerg

y (P

&L)

cont

ract

& h

ourly

wor

k ti

me

ship

ping

cos

ts

rele

ase

invo

ice

Tra

nsp

ort

co

mp

an

y

tran

spor

t o

rder

s

invo

ice

Shi

ppi

ng -

sch

edul

e -

his

tory

sche

dule

upd

ate

size

and

loca

tion

of it

ems

quan

tity

item

invo

ice

rele

ase

invo

ice

cust

omer

loca

tion

item

s to

shi

p

ship

ping

doc

umen

t

quan

tity

con

figur

atio

n a

dres

s

Page 31: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

31  

Cette norme a été créée dans le but de faciliter l’interopérabilité sémantique entre les Systèmes de pilotage logistique (Programme de production usine ; et gestion opérationnelle) et  les Systèmes de Contrôle de production (Supervision de zone, Programme détaillé de production). Les objectifs de cette norme sont :  

•  Établir  un Vocabulaire Commun pour les procédés Continus, Discontinus & Discrets  

•  Trouver une Vue Commune des Problèmes 

•  Construire un Modèle Commun  

•  Définir des Structures de données  

•  Achever rapidement les spécifications 

 

ANNEXE.11. CRÉATION  DU  FICHIER XSLT   

INGÉNIERIE 

Créer un dossier d’accueil quelque part sur le poste de travail. 

Écrire ou récupérer un document XML au format : 

<ADXPRODUCTS> 

<ADXPRODUCT ITMREF="PRODUITTEST1" DES1AXX="Barre aluminium" STU="UN" STOFCY="C1P1" STDFLG="1" SERMGTCOD="1" LOTMGTCOD="0"/> 

<ADXPRODUCT ITMREF="PRODUITTEST2" DES1AXX="Barre plastoc" STU="UN" STOFCY="C1P1" STDFLG="1" SERMGTCOD="1" LOTMGTCOD="0"/> 

</ADXPRODUCTS> 

Le nommer en External_ADXPRODUCTS_Output.xml (Attention, le nom de la balise root est très important !) 

Ouvrir ce fichier sous XMLSpy et générer le ADXPRODUCTS.xsd correpondant. 

Attention, le nom doit correspondre avec le nom de la balise root. 

Récupérer les fichiers : 

\\Aip‐lorrain\disque_c\Inetpub\wwwroot\SchemaRepository\Designs\SchemaBuilder\FlexNet\FlexNet_Products.xml et .xsd. qui ont été générés avec XML Schema Builder d’APRISO. 

Mapping 

Ouvrir MAPFORCE 

Insérer External_ADXPRODUCTS_Output.xsd 

Insérer FlexNet_Products.xsd 

Page 32: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

32  

Faire le mapping 

Enregistrer le .mfd 

Puis Générer le.xslt (File/Generate coding/xslt1.0 

Ouvrir le .xslt généré et enlever la balise 

<xsl:attribute name="xsi:noNamespaceSchemaLocation"> <xsl:value‐of select="'C:/DOCUME~1/Olivier.AD‐UHP/Bureau/Exo/Products/FlexNet_ Products.xsd'"/> </xsl:attribute> 

Enregistrer sous : map_ADXPRODUCTs_FlexNetProducts.xslt 

Copie des fichiers générés 

Copier map_ADXPRODUCTs_FlexNetProducts.mfd sous : 

\\Aip‐lorrain\disque_c\Inetpub\wwwroot\SchemaRepository\Designs\Mapforce\FlatFile 

Copier map_ADXPRODUCTs_FlexNetProducts.xslt sous : 

\\Aip‐lorrain\disque_c\Inetpub\wwwroot\SchemaRepository\Designs\Mapforce\FlatFile 

Copier ADXPRODUCTS.xsd sous : 

\\Aip‐lorrain\disque_c\Inetpub\wwwroot\SchemaRepository\XMLSchemas\FlatFile 

Préparer Flexnet pour « avaler » le fichier xml fourni 

Démarrer Flexnet Configuration sur le serveur 

Aller dans Mapping Configuration 

Créer une nouvelle ligne : 

FromSchema=ADXPRODUCTS 

XSLTFileName=FlatFile/map_ADXPRODUCTS_FlexNetProducts.xslt 

ToSchema=FlexNet/FlexNet_Products.xsd 

Enregistrer 

Arrêter et redémarrer tous les services FlexNet 

RÉSULTAT 

<?xml version="1.0" encoding="UTF-8"?> <!-- This file was generated by Altova MapForce 2008r2sp2 YOU SHOULD NOT MODIFY THIS FILE, BECAUSE IT WILL BE OVERWRITTEN WHEN YOU RE-RUN CODE GENERATION. Refer to the Altova MapForce Documentation for further details. http://www.altova.com/mapforce -->

Page 33: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

33  

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs xsi xsl"> <xsl:include href="C:\#FIchiers\Recherche\Travail AIPL abec ON\Apriso_Functions.xsl"/> <xsl:output method="xml" encoding="UTF-8" indent="yes"/> <xsl:template match="/ADXCOMMANDES"> <FlexNet_Orders> <xsl:attribute name="xsi:noNamespaceSchemaLocation"> <xsl:value-of select="'C:/DOCUME~1/Jean-Phi/Bureau/temp/FlexNet_Orders.xsd'"/> </xsl:attribute> <xsl:variable name="Vvar1_firstSource" select="."/> <xsl:attribute name="Version"> <xsl:value-of select="'3.0'"/> </xsl:attribute> <xsl:variable name="Vvar19_const" select="'16'"/> <xsl:variable name="Vvar21_const" select="'1'"/> <xsl:variable name="Vvar59_const" select="'3'"/> <OrderHeader> <xsl:for-each select="GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar469_NAME_string" select="string(.)"/> <xsl:if test="($Vvar469_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar467_exists" select="string-length( $ExistsResult )&gt;0"/> <xsl:if test="string($Vvar467_exists)='true' or string($Vvar467_exists)='1'"> <xsl:variable name="Vvar473_FLD_string" select="string(.)"/> <OrderNo> <xsl:value-of select="$Vvar473_FLD_string"/> </OrderNo> </xsl:if> </xsl:for-each> </xsl:for-each> <OrderType> <xsl:value-of select="number($Vvar19_const)"/> </OrderType> <OrderStatus> <xsl:value-of select="number($Vvar21_const)"/> </OrderStatus> <xsl:for-each select="GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar478_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult1"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar482_NAME_string" select="string(.)"/> <xsl:if test="($Vvar482_NAME_string) = ('ORDDAT')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar480_exists" select="string-length( $ExistsResult1 )&gt;0"/> <xsl:if test="string($Vvar480_exists)='true' or string($Vvar480_exists)='1'"> <xsl:variable name="Vvar487_result_apriso_time"> <xsl:call-template name="apriso_time"> <xsl:with-param name="YYYYMMDD" select="$Vvar478_FLD_string"/> <xsl:with-param name="HHMMSS" select="'000000'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="Vvar488_result_apriso_time_dateTime" select="string($Vvar487_result_apriso_time)"/> <OrderDate> <xsl:value-of select="$Vvar488_result_apriso_time_dateTime"/>

Page 34: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

34  

</OrderDate> </xsl:if> </xsl:for-each> </xsl:for-each> <ProgressStatus> <xsl:value-of select="number($Vvar21_const)"/> </ProgressStatus> <Active> <xsl:value-of select="string($Vvar21_const)='true' or string($Vvar21_const)='1'"/> </Active> <Partner> <xsl:for-each select="GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult2"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar497_NAME_string" select="string(.)"/> <xsl:if test="($Vvar497_NAME_string) = ('BPSNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar495_exists" select="string-length( $ExistsResult2 )&gt;0"/> <xsl:if test="string($Vvar495_exists)='true' or string($Vvar495_exists)='1'"> <xsl:variable name="Vvar501_FLD_string" select="string(.)"/> <Medium> <xsl:value-of select="$Vvar501_FLD_string"/> </Medium> </xsl:if> </xsl:for-each> </xsl:for-each> <PartnerRelationship> <PartnerRole> <xsl:value-of select="number($Vvar59_const)"/> </PartnerRole> <xsl:for-each select="GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult3"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar510_NAME_string" select="string(.)"/> <xsl:if test="($Vvar510_NAME_string) = ('BPSNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar508_exists" select="string-length( $ExistsResult3 )&gt;0"/> <xsl:if test="string($Vvar508_exists)='true' or string($Vvar508_exists)='1'"> <xsl:variable name="Vvar514_FLD_string" select="string(.)"/> <Account> <xsl:value-of select="$Vvar514_FLD_string"/> </Account> </xsl:if> </xsl:for-each> </xsl:for-each> <PartnerID> <xsl:attribute name="NodeType"> <xsl:value-of select="'Field'"/> </xsl:attribute> </PartnerID> </PartnerRelationship> </Partner> <xsl:for-each select="TAB"> <xsl:variable name="ExistsResult4"> <xsl:for-each select="@ID">

Page 35: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

35  

<xsl:variable name="Vvar522_ID_string" select="string(.)"/> <xsl:if test="($Vvar522_ID_string) = ('POH2_1')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar520_exists" select="string-length( $ExistsResult4 )&gt;0"/> <xsl:for-each select="LIN"> <xsl:variable name="Vvar518_LIN" select="."/> <xsl:if test="string($Vvar520_exists)='true' or string($Vvar520_exists)='1'"> <OrderDetail> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult5"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar533_NAME_string" select="string(.)"/> <xsl:if test="($Vvar533_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar531_exists" select="string-length( $ExistsResult5 )&gt;0"/> <xsl:if test="string($Vvar531_exists)='true' or string($Vvar531_exists)='1'"> <xsl:variable name="Vvar537_FLD_string" select="string(.)"/> <OrderNo> <xsl:value-of select="$Vvar537_FLD_string"/> </OrderNo> </xsl:if> </xsl:for-each> </xsl:for-each> <OrderType> <xsl:value-of select="number('16')"/> </OrderType> <xsl:for-each select="@NUM"> <xsl:variable name="Vvar541_NUM_byte" select="number(.)"/> <OrderLineNo> <xsl:value-of select="number($Vvar541_NUM_byte)"/> </OrderLineNo> </xsl:for-each> <OrderStatus> <xsl:value-of select="number('1')"/> </OrderStatus> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult6"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar551_NAME_string" select="string(.)"/> <xsl:if test="($Vvar551_NAME_string) = ('UOM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar549_exists" select="string-length( $ExistsResult6 )&gt;0"/> <xsl:if test="string($Vvar549_exists)='true' or string($Vvar549_exists)='1'"> <xsl:variable name="Vvar555_FLD_string" select="string(.)"/> <OrderedUomCode>

Page 36: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

36  

<xsl:value-of select="$Vvar555_FLD_string"/> </OrderedUomCode> </xsl:if> </xsl:for-each> <xsl:for-each select="FLD"> <xsl:variable name="Vvar557_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult7"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar561_NAME_string" select="string(.)"/> <xsl:if test="($Vvar561_NAME_string) = ('QTYUOM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar559_exists" select="string-length( $ExistsResult7 )&gt;0"/> <xsl:if test="string($Vvar559_exists)='true' or string($Vvar559_exists)='1'"> <QuantityOrdered> <xsl:value-of select="number($Vvar557_FLD_string)"/> </QuantityOrdered> </xsl:if> </xsl:for-each> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult8"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar571_NAME_string" select="string(.)"/> <xsl:if test="($Vvar571_NAME_string) = ('PRHFCY')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar569_exists" select="string-length( $ExistsResult8 )&gt;0"/> <xsl:if test="string($Vvar569_exists)='true' or string($Vvar569_exists)='1'"> <xsl:variable name="Vvar575_FLD_string" select="string(.)"/> <ToFacility> <xsl:value-of select="$Vvar575_FLD_string"/> </ToFacility> </xsl:if> </xsl:for-each> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult9"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar581_NAME_string" select="string(.)"/> <xsl:if test="($Vvar581_NAME_string) = ('FCYADD')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar579_exists" select="string-length( $ExistsResult9 )&gt;0"/> <xsl:if test="string($Vvar579_exists)='true' or string($Vvar579_exists)='1'"> <xsl:variable name="Vvar585_FLD_string" select="string(.)"/> <ToWarehouse>

Page 37: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

37  

<xsl:value-of select="$Vvar585_FLD_string"/> </ToWarehouse> </xsl:if> </xsl:for-each> <ProgressStatus> <xsl:value-of select="number('1')"/> </ProgressStatus> <Active> <xsl:value-of select="string('1')='true' or string('1')='1'"/> </Active> <ProductID> <xsl:attribute name="NodeType"> <xsl:value-of select="'Field'"/> </xsl:attribute> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult10"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar597_NAME_string" select="string(.)"/> <xsl:if test="($Vvar597_NAME_string) = ('ITMREF')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar595_exists" select="string-length( $ExistsResult10 )&gt;0"/> <xsl:if test="string($Vvar595_exists)='true' or string($Vvar595_exists)='1'"> <xsl:variable name="Vvar601_FLD_string" select="string(.)"/> <xsl:attribute name="ProductNo"> <xsl:value-of select="$Vvar601_FLD_string"/> </xsl:attribute> </xsl:if> </xsl:for-each> </ProductID> <WipOrder> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar605_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult11"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar609_NAME_string" select="string(.)"/> <xsl:if test="($Vvar609_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar607_exists" select="string-length( $ExistsResult11 )&gt;0"/> <xsl:if test="string($Vvar607_exists)='true' or string($Vvar607_exists)='1'"> <xsl:for-each select="$Vvar518_LIN/@NUM"> <xsl:variable name="Vvar614_NUM_byte" select="number(.)"/> <WipOrderNo>

Page 38: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

38  

<xsl:value-of select="concat($Vvar605_FLD_string, format-number(number($Vvar614_NUM_byte), '0000'))"/> </WipOrderNo> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:for-each> <WipOrderType> <xsl:value-of select="number('16')"/> </WipOrderType> <xsl:for-each select="FLD"> <xsl:variable name="Vvar624_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult12"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar628_NAME_string" select="string(.)"/> <xsl:if test="($Vvar628_NAME_string) = ('QTYUOM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar626_exists" select="string-length( $ExistsResult12 )&gt;0"/> <xsl:if test="string($Vvar626_exists)='true' or string($Vvar626_exists)='1'"> <OrderQuantity> <xsl:value-of select="number($Vvar624_FLD_string)"/> </OrderQuantity> </xsl:if> </xsl:for-each> <Priority> <xsl:value-of select="number('1')"/> </Priority> <xsl:for-each select="FLD"> <xsl:variable name="Vvar636_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult13"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar640_NAME_string" select="string(.)"/> <xsl:if test="($Vvar640_NAME_string) = ('EXTRCPDAT')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar638_exists" select="string-length( $ExistsResult13 )&gt;0"/> <xsl:if test="string($Vvar638_exists)='true' or string($Vvar638_exists)='1'"> <xsl:variable name="Vvar645_result_apriso_time"> <xsl:call-template name="apriso_time"> <xsl:with-param name="YYYYMMDD" select="$Vvar636_FLD_string"/> <xsl:with-param name="HHMMSS" select="'000000'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="Vvar646_result_apriso_time_dateTime" select="string($Vvar645_result_apriso_time)"/>

Page 39: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

39  

<ScheduledStartDate> <xsl:value-of select="$Vvar646_result_apriso_time_dateTime"/> </ScheduledStartDate> </xsl:if> </xsl:for-each> <xsl:for-each select="FLD"> <xsl:variable name="Vvar648_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult14"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar652_NAME_string" select="string(.)"/> <xsl:if test="($Vvar652_NAME_string) = ('EXTRCPDAT')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar650_exists" select="string-length( $ExistsResult14 )&gt;0"/> <xsl:if test="string($Vvar650_exists)='true' or string($Vvar650_exists)='1'"> <xsl:variable name="Vvar657_result_apriso_time"> <xsl:call-template name="apriso_time"> <xsl:with-param name="YYYYMMDD" select="$Vvar648_FLD_string"/> <xsl:with-param name="HHMMSS" select="'000000'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="Vvar658_result_apriso_time_dateTime" select="string($Vvar657_result_apriso_time)"/> <DueDate> <xsl:value-of select="$Vvar658_result_apriso_time_dateTime"/> </DueDate> </xsl:if> </xsl:for-each> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult15"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar664_NAME_string" select="string(.)"/> <xsl:if test="($Vvar664_NAME_string) = ('UOM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar662_exists" select="string-length( $ExistsResult15 )&gt;0"/> <xsl:if test="string($Vvar662_exists)='true' or string($Vvar662_exists)='1'"> <xsl:variable name="Vvar668_FLD_string" select="string(.)"/> <UomCode> <xsl:value-of select="$Vvar668_FLD_string"/> </UomCode> </xsl:if> </xsl:for-each> <WorkOrderStatus> <xsl:value-of select="number('1')"/>

Page 40: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

40  

</WorkOrderStatus> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult16"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar678_NAME_string" select="string(.)"/> <xsl:if test="($Vvar678_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar676_exists" select="string-length( $ExistsResult16 )&gt;0"/> <xsl:if test="string($Vvar676_exists)='true' or string($Vvar676_exists)='1'"> <xsl:variable name="Vvar682_FLD_string" select="string(.)"/> <OrderNo> <xsl:value-of select="$Vvar682_FLD_string"/> </OrderNo> </xsl:if> </xsl:for-each> </xsl:for-each> <OrderType> <xsl:value-of select="number('16')"/> </OrderType> <xsl:for-each select="@NUM"> <xsl:variable name="Vvar686_NUM_byte" select="number(.)"/> <OrderLineNo> <xsl:value-of select="number($Vvar686_NUM_byte)"/> </OrderLineNo> </xsl:for-each> <ProgressStatus> <xsl:value-of select="number('1')"/> </ProgressStatus> <ProductID> <xsl:attribute name="NodeType"> <xsl:value-of select="'Field'"/> </xsl:attribute> </ProductID> </WipOrder> </OrderDetail> </xsl:if> </xsl:for-each> </xsl:for-each> <OrderPartner> <xsl:for-each select="GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult17"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar701_NAME_string" select="string(.)"/> <xsl:if test="($Vvar701_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable>

Page 41: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

41  

<xsl:variable name="Vvar699_exists" select="string-length( $ExistsResult17 )&gt;0"/> <xsl:if test="string($Vvar699_exists)='true' or string($Vvar699_exists)='1'"> <xsl:variable name="Vvar705_FLD_string" select="string(.)"/> <OrderNo> <xsl:value-of select="$Vvar705_FLD_string"/> </OrderNo> </xsl:if> </xsl:for-each> </xsl:for-each> <OrderType> <xsl:value-of select="number($Vvar19_const)"/> </OrderType> <PartnerID> <xsl:for-each select="GRP"> <xsl:for-each select="FLD"> <xsl:variable name="ExistsResult18"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar714_NAME_string" select="string(.)"/> <xsl:if test="($Vvar714_NAME_string) = ('BPSNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar712_exists" select="string-length( $ExistsResult18 )&gt;0"/> <xsl:if test="string($Vvar712_exists)='true' or string($Vvar712_exists)='1'"> <xsl:variable name="Vvar718_FLD_string" select="string(.)"/> <xsl:attribute name="Account"> <xsl:value-of select="$Vvar718_FLD_string"/> </xsl:attribute> </xsl:if> </xsl:for-each> </xsl:for-each> <xsl:attribute name="PartnerRole"> <xsl:value-of select="number($Vvar59_const)"/> </xsl:attribute> </PartnerID> </OrderPartner> <JobCreationEvent> <xsl:for-each select="TAB"> <xsl:variable name="ExistsResult19"> <xsl:for-each select="@ID"> <xsl:variable name="Vvar726_ID_string" select="string(.)"/> <xsl:if test="($Vvar726_ID_string) = ('POH2_1')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar724_exists" select="string-length( $ExistsResult19 )&gt;0"/> <xsl:for-each select="LIN"> <xsl:variable name="Vvar722_LIN" select="."/> <xsl:if test="string($Vvar724_exists)='true' or string($Vvar724_exists)='1'"> <Job> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar733_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult20"> <xsl:for-each select="@NAME">

Page 42: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

42  

<xsl:variable name="Vvar737_NAME_string" select="string(.)"/> <xsl:if test="($Vvar737_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar735_exists" select="string-length( $ExistsResult20 )&gt;0"/> <xsl:if test="string($Vvar735_exists)='true' or string($Vvar735_exists)='1'"> <xsl:for-each select="$Vvar722_LIN/@NUM"> <xsl:variable name="Vvar742_NUM_byte" select="number(.)"/> <Name> <xsl:value-of select="concat($Vvar733_FLD_string, format-number(number($Vvar742_NUM_byte), '0000'))"/> </Name> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:for-each> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar753_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult21"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar757_NAME_string" select="string(.)"/> <xsl:if test="($Vvar757_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar755_exists" select="string-length( $ExistsResult21 )&gt;0"/> <xsl:if test="string($Vvar755_exists)='true' or string($Vvar755_exists)='1'"> <Description> <xsl:value-of select="concat('ADXCOMMANDES - ', $Vvar753_FLD_string)"/> </Description> </xsl:if> </xsl:for-each> </xsl:for-each> <JobType> <xsl:value-of select="number('4')"/> </JobType> <GenerateAlert> <xsl:value-of select="string('true')='true' or string('true')='1'"/> </GenerateAlert> <AlertClass> <xsl:value-of select="number('1')"/> </AlertClass>

Page 43: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

43  

<xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar773_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult22"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar777_NAME_string" select="string(.)"/> <xsl:if test="($Vvar777_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar775_exists" select="string-length( $ExistsResult22 )&gt;0"/> <xsl:if test="string($Vvar775_exists)='true' or string($Vvar775_exists)='1'"> <AlertMessage> <xsl:value-of select="concat(concat(concat(concat(concat('Error encountered during explosion for WipOrderNo = ', $Vvar773_FLD_string), ', WipOrderType = '), '16'), ', JobDescription = '), concat('ADXCOMMANDES - ', $Vvar773_FLD_string))"/> </AlertMessage> </xsl:if> </xsl:for-each> </xsl:for-each> <JobAction> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar795_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult23"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar799_NAME_string" select="string(.)"/> <xsl:if test="($Vvar799_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar797_exists" select="string-length( $ExistsResult23 )&gt;0"/> <xsl:if test="string($Vvar797_exists)='true' or string($Vvar797_exists)='1'"> <xsl:for-each select="$Vvar722_LIN/@NUM"> <xsl:variable name="Vvar804_NUM_byte" select="number(.)"/> <Name> <xsl:value-of select="concat($Vvar795_FLD_string, format-number(number($Vvar804_NUM_byte), '0000'))"/> </Name> </xsl:for-each> </xsl:if> </xsl:for-each>

Page 44: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

44  

</xsl:for-each> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar815_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult24"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar819_NAME_string" select="string(.)"/> <xsl:if test="($Vvar819_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar817_exists" select="string-length( $ExistsResult24 )&gt;0"/> <xsl:if test="string($Vvar817_exists)='true' or string($Vvar817_exists)='1'"> <Description> <xsl:value-of select="concat('ADXCOMMANDES - ', $Vvar815_FLD_string)"/> </Description> </xsl:if> </xsl:for-each> </xsl:for-each> <ActionType> <xsl:value-of select="number('26')"/> </ActionType> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar830_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult25"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar834_NAME_string" select="string(.)"/> <xsl:if test="($Vvar834_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar832_exists" select="string-length( $ExistsResult25 )&gt;0"/> <xsl:if test="string($Vvar832_exists)='true' or string($Vvar832_exists)='1'"> <xsl:for-each select="$Vvar722_LIN/@NUM"> <xsl:variable name="Vvar839_NUM_byte" select="number(.)"/> <xsl:variable name="Vvar847_result_BuildExplosionJobParameters"> <xsl:call-template name="BuildExplosionJobParameters">

Page 45: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

45  

<xsl:with-param name="WipOrderNo" select="concat($Vvar830_FLD_string, format-number(number($Vvar839_NUM_byte), '0000'))"/> <xsl:with-param name="WipOrderType" select="'16'"/> <xsl:with-param name="ProcessID" select="'0'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="Vvar848_result_BuildExplosionJobParameters_string" select="string($Vvar847_result_BuildExplosionJobParameters)"/> <Parameters> <xsl:value-of select="$Vvar848_result_BuildExplosionJobParameters_string"/> </Parameters> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:for-each> <TimeOutSeconds> <xsl:value-of select="number('60')"/> </TimeOutSeconds> </JobAction> <JobSchedule> <xsl:for-each select="$Vvar1_firstSource/GRP"> <xsl:for-each select="FLD"> <xsl:variable name="Vvar854_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult26"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar858_NAME_string" select="string(.)"/> <xsl:if test="($Vvar858_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar856_exists" select="string-length( $ExistsResult26 )&gt;0"/> <xsl:if test="string($Vvar856_exists)='true' or string($Vvar856_exists)='1'"> <xsl:for-each select="$Vvar722_LIN/@NUM"> <xsl:variable name="Vvar863_NUM_byte" select="number(.)"/> <Name> <xsl:value-of select="concat($Vvar854_FLD_string, format-number(number($Vvar863_NUM_byte), '0000'))"/> </Name> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:for-each> <xsl:for-each select="$Vvar1_firstSource/GRP">

Page 46: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

46  

<xsl:for-each select="FLD"> <xsl:variable name="Vvar874_FLD_string" select="string(.)"/> <xsl:variable name="ExistsResult27"> <xsl:for-each select="@NAME"> <xsl:variable name="Vvar878_NAME_string" select="string(.)"/> <xsl:if test="($Vvar878_NAME_string) = ('POHNUM')"> <xsl:value-of select="true()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="Vvar876_exists" select="string-length( $ExistsResult27 )&gt;0"/> <xsl:if test="string($Vvar876_exists)='true' or string($Vvar876_exists)='1'"> <Description> <xsl:value-of select="concat('ADXCOMMANDES - ', $Vvar874_FLD_string)"/> </Description> </xsl:if> </xsl:for-each> </xsl:for-each> <Schedule> <ExecuteImmediate> <xsl:value-of select="string('true')='true' or string('true')='1'"/> </ExecuteImmediate> </Schedule> </JobSchedule> </Job> </xsl:if> </xsl:for-each> </xsl:for-each> </JobCreationEvent> </OrderHeader> </FlexNet_Orders> </xsl:template> </xsl:stylesheet>

Page 47: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

47  

   

Page 48: Annexe de la Thèse Docteur de l'Université Henri Poincaré, Nancy I

      

48  

Titre : PROPOSITION D’UN CADRE DE MODÉLISATION MULTI‐ÉCHELLES D’UN SYSTÈME D’INFORMATION EN ENTREPRISE CENTRÉ SUR LE PRODUIT 

Résumé : Notre thèse porte sur la Modélisation d'Entreprise et plus particulièrement sur une vision Ingénierie Système de celle‐ci afin de faciliter son application « à minima » en entreprise. Alors que la modélisation d’entreprise arrive à maturité scientifique et technologique, force est de constater que sa pratique est encore trop peu courante. En outre, il n’existe pas à proprement parler de tâche de modélisation, de maintenance et de gestion de modèles dans l’entreprise. La question s’est alors posée de la relation d’interopération entre les systèmes, d’un Système‐Entreprise évolutif, le plus souvent composé de façon ad‐hoc de sous‐systèmes (COTS), qui ont pour particularité d’encapsuler leur propre Savoir‐Faire et leurs Ingénieries respectives, en incluant le Système‐Produit (son besoin, son projet, …) à la source de chaque recomposition « à la demande » du Système‐Entreprise. Un des objectifs de nos travaux est donc de faciliter l’interopération entre les ingénieries de ces systèmes interopérants (autour du produit A Faire) et l’Ingénierie du Système‐Projet d’Entreprise (Pour Faire). Nous nous sommes alors inspirés de la proposition de Kuras pour formaliser notre Système‐Entreprise (en fait son Ingénierie) dans une sorte de « Système de Systèmes d’Information » (SdSI)  en tenant compte de ses aspects récursifs et multi‐échelles dans un contexte organisationnel évolutif. De plus, en nous appuyant sur la théorie des patterns, nous avons identifié puis dérivé le « composite‐pattern»  pour mieux décrire la nature « Tout et Partie » de l’Holon Système‐Entreprise utilisé par Kuras pour extraire le patron de conceptualisation le plus adéquat. Parmi tous les points de vue d’un système, cette dérivation nous permet de représenter ceux du Système A Faire et ceux du Système Pour Faire avec son contenu d’Ingénierie associée guidée par le cadre de modélisation de Zachman. Nous avons outillé notre proposition de cadre d’Ingénierie Système Basée sur des Modèles (ISBM) en étendant le méta‐modèle de l’outil « MEGA Modelling Suite »  ainsi qu’en développant les interfaces utilisateurs nécessaires et nous l’avons appliqué à l’Ingénierie d’un Système de Traçabilité d’un Produit dans le contexte d’un scénario PLM  plausible entre l’AIPL et DIMEG. 

   

Mots clefs : modélisation d’entreprise, interopération, intégration,  systèmes d’information, système de systèmes, récursivité, multi‐échelles, Zachman, ingénierie système, ingénierie basée sur les modèles, pattern. 

 

 

 

 

 

Title : PROPOSAL OF A MULTI‐SCALE MODELLING FRAMEWORK FOR A PRODUCT‐CENTRIC ENTERPRISE INFORMATION SYSTEM 

Abstract:  Today’s needs for more capable enterprise systems in a short timeframe are leading more organizations toward the integration of existing component‐systems. In the domain of Enterprise Modelling and more generally on Systems Engineering, the key issue is related to aligning enterprise models with the composite structure of the modelled systems. While Enterprise Modelling matures both scientifically and technologically, it is clear that its practice is still uncommon in the enterprises. There is no modelling approach in enterprise, neither even capitalization of models. This paper aims at proposing a Model‐Based System Engineering (MBSE) approach, by using the recursion principle, together with a “multiple scales system thinking”, for capitalizing the engineering know‐how, over time, during a project lifecycle. In this context, we advocate that, within an enterprise, the heterogeneous set of Information Systems may be considered as COTS (Commercial‐Off‐The‐Shelf), encapsulating their own expertise (engineering), and contributing all together to a single System‐of‐Information System (SoIS). We are then proposing a SoIS engineering methodology resulting from deriving our MBSE approach with a recursive view of the Zachman framework. This approach, based on modelling rules and enterprise modelling constructs, is contributing to ensure the consistency and the completeness of the various heterogeneous models interoperating during systems engineering projects. To validate our MBSE proposal, a modelling tool has been prototyped. It helped at applying our SoIS engineering methodology in a use case scenario related to the requirement analysis and the specification of a product traceability system. 

 

  

Keywords: Enterprise Integration, Systems Interoperability, Systems Engineering, System‐of‐Systems, Enterprise Modelling, Information Systems, recursion, Zachman, multi‐scales, pattern, Model Based Systems Engineering