• Aucun résultat trouvé

Page 1/3

N/A
N/A
Protected

Academic year: 2022

Partager "Page 1/3"

Copied!
3
0
0

Texte intégral

(1)

Page 1/3

ESTIA 2è année – Épreuve d’Informat ique – SI - G. Rivière - Étudiants Estia 2018

Unité d’Enseignement en Informatique Année 2016-2017

2è année ESTIA – Étudiants

Examen de Système d’Information – Première Session du 31 Mars 2017 (durée 2h00, aucun document autorisé)

– – CORRECTION – –

Remarque : Ce document ne présente que des éléments de correction. Les variantes possibles sont nombreuses.

Exercice 5 : Transfert de données (2,5 points)

Une petite entreprise utilise trois progiciels de gestion pour gérer son activité. La gestion commerciale gère les commandes passées par les clients (chacune identifié par son numéro

« nocomm »). La gestion des données technique gère la liste des composants utilisés (chacun identifié par son numéro « nocomp ») pour fabriquer chaque produit de l’entreprise (chacun identifié par son numéro « noprod »). La gestion des stocks gère les quantités de composants entreposés. Le stock « réel » décompte les composants présents physiquement en stock. Le stock

« virtuel » décompte les composants réels moins les composants déjà réservés par les produits commandés. Lorsqu’une nouvelle commande est passée, les composants nécessaires pour fabriquer les produits doivent être réservés. Les trois logiciels ne sachant pas communiquer entre eux, nous souhaitons créer un connecteur afin d’automatiser la transmission de l’information entre ces logiciels.

Chacun de ces logiciels fonctionne comme suit :

Le progiciel de gestion commerciale dispose d’une fonctionnalité de webservice qui fournit (via le protocole HTTP) un fichier Excel avec la liste des produits d’une commande. Pour ce faire, il suffit de donner le numéro de commande lorsqu’on interroge le webservice.

Le progiciel de gestion des données techniques enregistre ses informations dans une base de données Oracle. Trois des tables décrivent de quels composants sont composés les produits :

Le progiciel de gestion de stock enregistre ses informations dans une base de données PostgreSQL. Une des tables décrit les niveaux de stocks pour chaque composant :

PComposant

nocomp nom quantite_reel quantite_virtuel

Gestion de stock Conn.

Gestion commerciale

Gestion des données techniques

OProduit OCompose OComposant

noprod nom #noprod #nocomp quantite nocomp nom

(2)

Page 2/3

ESTIA 2è année – Épreuve d’Informat ique – SI - G. Rivière - Étudiants Estia 2018

1) Quel langage pouvez-vous utiliser pour créer ce connecteur au sein du système d’information de cette entreprise ? Justifiez votre choix.

Un langage de script, comme par exemple PHP, est un choix commun pour ce genre de connecteurs.

L’avantage est un temps de développement relativement court. De plus, PHP permet de lire de fichiers Excel (avec la bibliothèque PHPExcel) et de se connecter à des bases de données Oracle et PostgreSQL (avec PDO).

2) Expliquez quelles seraient les grandes étapes de fonctionnement de ce connecteur.

Tout d’abord, ouvrir le fichier Excel, issu de la gestion commerciale, correspondant au numéro de commande (nocomm) pour en extraire la liste des numéros de produit et leur quantité. Ensuite, se connecter à la base de données Oracle de la gestion des données techniques afin de constituer la liste et quantité des composants nécessaires pour les produits. Enfin, se connecter à la base de données PostgreSQL de la gestion de stocks pour diminuer le stock virtuel du nombre de composants qui seront utilisés pour les produits commandés.

3) Décrivez quelles instructions de code (les fonctions, les requêtes, les tests, les calculs …) seraient à effectuer pour chaque étape. Attention, il est demandé de décrire brièvement le code du connecteur, mais non pas d’écrire le code complet du connecteur.

Les différentes étapes du script PHP seraient :

1) Accéder au webservice de la gestion commerciale avec le numéro de commande afin de télécharger le fichier Excel.

2) Lire le fichier Excel grâce aux fonctions de la bibliothèque PHPExcel et enregistrer en mémoire les numéros et quantités de produits dans un tableau PHP $listeProd.

3) Refermer le fichier Excel.

4) Se connecter à la base de données Oracle de la gestion des données techniques grâce à PDO.

5) Pour chaque numéro de produit noprod dans $listeProd, faire une requête SQL pour récupérer la liste des composants :

SELECT nocomp, quantite FROM OCompose WHERE noprod = $listeProd[$i][noprod] ; Ajouter les quantités de composants dans un tableau associatif $listeComp indexé par les numéros de composants.

6) Se déconnecter de la base de données Oracle.

7) Se connecter à la base de données PostgreSQL de la gestion des stocks grâce à PDO.

8) Pour chaque composant du tableau $listeComp, décrémenter le stock virtuel de la quantité correspondante :

UPDATE PComposant SET quantite_virtuel = quantite_virtuel - $listeComp[$nocomp]

WHERE nocomp = $nocomp ;

9) Se déconnecter de la base de données PostgreSQL

Exercice 6 : Connecteur IGES vers Mupad (5 points)

Nous souhaitons pouvoir transmettre à Mupad les éléments de type 158 des fichiers IGES (Initial Graphics Exchange Specification) : les troncs de cône (ou cônes tronqués). Ces éléments sont décrits par un 9-uplet :

H, R1, R2, X, Y, Z, I, J, K

où le nombre réel H est la hauteur, le nombre réel R1 le rayon de la grande face, le nombre réel R2 le rayon de la face la petite face, le vecteur réel (X, Y, Z) est la position du centre de la grande face et le vecteur (I, J, K) est l’orientation du cône.

(3)

Page 3/3

ESTIA 2è année – Épreuve d’Informat ique – SI - G. Rivière - Étudiants Estia 2018

Voici un exemple d’une ligne décrivant un tel cône tronqué dans un fichier IGES :

158,8.1D0,1.7D1,8.5D0,0D0,0D0,0D0,0D0,1D0,0D0; 98P 56

L’objectif est d’écrire un connecteur qui puisse trouver dans un fichier IGES tous les troncs de cône et en extraire les caractéristiques (H, R1, R2) afin de pouvoir les fournir à Mupad. Par exemple, Mupad pourra alors calculer les volumes des troncs de cônes avec le code suivant :

code.mu 1

2 3 4 5 6 7 8 9 10 11

Volume := proc (hauteur, rayon1, rayon2) begin

return (h*PI/3) * (rayon1^2 + rayon2^2 + rayon1*rayon2);

end_proc;

V := Volume (hauteur_IGES, rayon1_IGES, rayon2_IGES);

hauteur_IGES := 8.1 ; rayon1_IGES := 17 ; rayon2_IGES := 8.5 ; V;

1) Ecrivez un script PHP qui lit un fichier IGES et pour chaque ligne décrivant un cône (c.-à-d.

commençant par 158) affiche trois lignes avec les caractéristiques du cône et l’appel de fonction V (c.-à-d. comme dans les lignes 8, 9, 10 et 11 du fichier code.mu).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

<?php

$filename = 'conception.iges' ;

$desc = fopen ($filename, 'r') ; if (!$desc) {

die ('Erreur ouverture du fichier '.$filename.' en lecture.') ; }

while (!feof ($desc)) { $line = fgets ($desc) ;

$debut = substr ($line, 0, 3) ; if ($debut == '158') {

$tab = explode (',', $line) ; $tab_h = explode ('D', $tab[1]) ; $tab_r1 = explode ('D', $tab[2]) ; $tab_r2 = explode ('D', $tab[3]) ; $h = $tab_h[0] * pow (10, $tab_h[1]) ; $r1 = $tab_r1[0] * pow (10, $tab_r1[1]) ; $r2 = $tab_r2[0] * pow (10, $tab_r2[1]) ; echo 'hauteur_IGES := '.$h.' ; '."\r\n" ; echo 'rayon1_IGES := '.$r1.' ; '."\r\n" ; echo 'rayon2_IGES := '.$r2.' ; '."\r\n" ; echo 'V; '."\r\n" ;

} }

fclose ($desc) ;

?>

R1 R2

(X, Y, Z) H (I, J, K)

Références

Documents relatifs

idylis.com Gestion commerciale permet la réalisation de vos pièces de ventes de produits et/ou de services (devis ou pro forma, commandes, bons de livraison, factures ou

Menu «Insertion / Courbe de tendance»; sélectionner le type selon le cas - Afficher l’équation de la courbe de tendance : clic droit sur l’équation. «propriétés de

Merci encore de nous avoir accueillis, dès la semaine prochaine Ludo, président des juniors sera notre journaliste, il interviewera Ray, un membre actif et sérieux des

Lors d’une croisade, le roi de France et ses hommes sont arrêtés par les Sarrasins qui leur réservent un triste sort :.. Le roi

Calculer l'écart maximum obtenu entre la plus petite et la plus grande des fréquences au cours de plusieurs tirages aléatoires : ...………?. Echantillon de

si vous sélectionnez plusieurs points, vous devez cliquer, pour une image, dans le même ordre , sur les points sélectionnés. Vous pouvez sélectionner l’origine des dates en

TF1 (Jeux Heroes) Ces No m'ont été signalés comme

Met de celeigenshap mogen alle soorten vormen