WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et réalisation d'un système d'information pour le suivi des commandes des pièces de rechange à  Toyota Algérie SPA

( Télécharger le fichier original )
par Lamine GHEMATI
Ecole supérieure d'informatique d'Alger - Ingénieur en informatique 2008
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

PARTIE 3 :

RÉALISATION

Etude conceptuelle Passage au modèle relationnel

Passage au modèle relationnel :

86

- FIG. 30 : Schéma relationnel de la base de données -

Etude conceptuelle Passage au modèle relationnel

87

Script de la création des tables de la base:

create table Piece

(

Ref_Piece VARCHAR2 (50) not null,

Poids NUMBER,

IsSubstitut BOOLEAN,

DateDebProd DATE,

DateFinProd DATE,

Qty_Pkg NUMBER,

Pays_Origine VARCHAR2 (50),

Volume NUMBER,

Vor_Max NUMBER,

TMC_Stock_Code VARCHAR2 (10),

Danger_Code VARCHAR2 (10),

PU NUMBER

)

alter table Piece

add constraint PK_Piece primary key (Ref_Piece);

create table PieceICC

(

Ref_PieceICC VARCHAR2 (50) not null,

Ventes NUMBER,

BackOrders NUMBER,

LostSales NUMBER,

SSdemand NUMBER,

SSleadtime NUMBER,

OrderCycle NUMBER,

LeadTime NUMBER,

ClassePiece CHAR,

DemandeGlobale NUMBER,

DemandeMoyenne NUMBER,

MIP NUMBER,

Ref_Piece VARCHAR2 (50) not null

)

alter table PieceICC

add constraint PK_PieceICC primary key (Ref_PieceICC);

alter table PieceICC

add constraint FK_PieceICC_Piece foreign key (Ref_Piece) references Piece (Ref_Piece);

Etude conceptuelle Passage au modèle relationnel

88

create table PieceCMD

(

Ref_PieceCMD VARCHAR2 (50) not null,

MIP NUMBER,

ClassePiece CHAR,

OnHand NUMBER,

OnOrder NUMBER,

BackOrder NUMBER,

SOQ NUMBER,

Ref_Piece VARCHAR2 (50) not null

)

alter table PieceCMD

add constraint PK_PieceCMD primary key (Ref_PieceCMD);

alter table PieceCMD

add constraint FK_PieceCMD_Piece foreign key (Ref_Piece)

references Piece (Ref_Piece);

create table PieceSUB

(

Ref_PieceSUB VARCHAR2 (50) not null,

Ref_Substitut CHAR,

Ref_Piece VARCHAR2 (50) not null

)

alter table PieceSUB

add constraint PK_PieceSUB primary key (Ref_PieceSUB);

alter table PieceSUB

add constraint FK_PieceSUB_Piece foreign key (Ref_Piece)

references Piece (Ref_Piece);

create table LigneCommande

(

Num_Ligne_Commande VARCHAR2 (50) not null,

Num_Commande VARCHAR2 (50) not null,

Ref_Piece VARCHAR2 (50) not null,

Qty_Commandee NUMBER,

PUC NUMBER,

Total_Ligne NUMBER,

Etat_Ligne VARCHAR2 (100)

)

alter table LigneCommande

add constraint PK_LigneCommande primary key (Num_Ligne_Commande,

Num_Commande );

alter table LigneCommande

add constraint FK_LigneCommande_Commande foreign key (Num_Commande)

references Commande(Num_Commande);

alter table LigneCommande

add constraint FK_LigneCommande_Piece foreign key (Ref_Piece)

references Piece(Ref_Piece);

Etude conceptuelle Passage au modèle relationnel

89

create table Commande (

Num_Commande VARCHAR2 (50) not null,

Num_Fournisseur VARCHAR2 (50) not null,

Date_Commande DATE,

Nbr_Ligne_Commande NUMBER,

Montant_HT NUMBER, Montant_TTC NUMBER )

alter table Commande

add constraint PK_Commande primary key (Num_Commande);

alter table Commande

add constraint FK_Commande_Fournisseur foreign key (Num_Fournisseur) references Fournisseur(Num_Fournisseur);

create table LigneFacture

(

Num_Facture VARCHAR2 (50) not null,

Num_Ligne_Facture VARCHAR2 (50) not null,

Ref_Piece VARCHAR2 (50) not null,

Qty_Facturee NUMBER,

PUF NUMBER,

Num_Ligne_Commande VARCHAR2 (50) not null,

Num_Commande VARCHAR2 (50) not null,

Num_Caisse VARCHAR2 (50)

)

alter table LigneFacture

add constraint PK_LigneFacture primary key (Num_Facture, Num_Ligne_Facture);

alter table LigneFacture

add constraint FK_LigneFacture_LigneCommande foreign key (Num_Ligne_Commande, Num_Commande)

references LigneCommande(Num_Ligne_Commande, Num_Commande);

alter table LigneFacture

add constraint FK_LigneFacture_Commande foreign key (Num_Commande) references Commande(Num_Commande);

alter table LigneFacture

add constraint FK_LigneFacture_Facture foreign key (Num_Facture) references Facture(Num_Facture);

Etude conceptuelle Passage au modèle relationnel

90

create table Expedition

(

Num_Expedition VARCHAR2 (50) not null,

Somme_Qty NUMBER,

Nbr_Caisse_E NUMBER,

Date_Facture_Système DATE,

Date_Facture_Origine DATE,

Date_Rec_Connaissement DATE,

Num_Connaissement VARCHAR2 (50),

Date_Connaissement DATE,

Date_Deb_Domiciliation DATE,

Date_Fin_Domiciliation DATE,

Date_Declaration DATE,

Num_Remeorque VARCHAR2 (50),

Poids_Marchandise NUMBER,

Volume_Marchandise NUMBER,

Embarquement DATE,

Accostage DATE,

Debarquement DATE,

Dem_Cheque_Transitaire DATE,

Dem_Cheque_Interne DATE,

Remise_Cheque_Interne DATE,

Remise_Cheque_Transitaire DATE,

Remise_Bon_Enlevé DATE,

Date_Livraison DATE,

Debut_Reception DATE,

Fin_Reception DATE,

Lead_Time NUMBER,

Dossier_Complet DATE,

Remise_Comptabilite DATE,

Observations VARCHAR2(2000)

)

alter table Expedition

add constraint PK_Expedition primary key (Num_Expedition);

create table Facture

(

Num_Facture VARCHAR2 (50) not null,

Date_Facture DATE,

Montant_Facture_HT NUMBER,

Montant_Facture_TTC NUMBER,

Nbr_Ligne_Facture NUMBER,

Nbr_Caisse NUMBER,

Num_Expedition VARCHAR2 (50)

)

alter table Facture

add constraint PK_Facture primary key (Num_Facture);

alter table Facture

add constraint FK_Facture_Expedition foreign key (Num_Expedition)

references Expedition(Num_Expedition);

Etude conceptuelle Passage au modèle relationnel

91

create table EtatComptable

(

Num_EtatComptable VARCHAR2 (50) not null,

Num_Expedition VARCHAR2 (50) not null,

Type_Shipment VARCHAR2 (50),

Type_Container VARCHAR2 (50),

Taux_Change NUMBER,

Montant_FOB NUMBER,

Montant_Fret_Loading NUMBER,

Montant_Assurance NUMBER,

Droit_Douane NUMBER,

Montant_Transit NUMBER,

Montant_SDV NUMBER,

Cout_Revient NUMBER,

LC_Factor VARCHAR2 (30)

)

alter table EtatComptable

add constraint PK_EtatComptable primary key (Num_EtatComptable);

alter table EtatComptable

add constraint FK_Etatcomptable_Expedition foreign key (Num_Expedition) references Expedition (Num_Expedition);

create table Reception

(

Num_Reception VARCHAR2 (50) not null,

Num_Expedition VARCHAR2 (50) not null,

Nbr_Caisse_R NUMBER,

Num_Container VARCHAR2 (50),

Date_Arrivee DATE,

Start_Time DATE,

End_Time DATE,

IsError BOOLEAN,

Qty_Recue NUMBER,

Qty_Manque NUMBER,

Qty_Exces NUMBER,

Qty_Endommagee NUMBER,

Code_Erreur VARCHAR2 (30),

Code_CPD VARCHAR2 (30),

Code_Paker_Picker VARCHAR2 (30),

Remarques VARCHAR2(2000)

)

alter table Reception

add constraint PK_Reception primary key (Num_Reception);

alter table Reception

add constraint FK_Reception_Expedition foreign key (Num_Expedition)

references Expedition (Num_Expedition);

Etude conceptuelle Passage au modèle relationnel

92

create table Fournisseur

(

Num_Fournisseur VARCHAR2 (50) not null,

Nom_Fournisseur VARCHAR2 (100), Adr_Fournisseur VARCHAR2(200), Tel_Fournisseur NUMBER,

Fax_Fournisseur NUMBER,

Mail_Fournisseur VARCHAR2 (100), Web_Fournisseur VARCHAR2 (100) )

alter table Fournisseur

add constraint PK_Fournisseur primary key (Num_Fournisseur);

create sequence SEQ_lignefacture minvalue 1 maxvalue 999999999999999999999999999 start with 1 increment by 1

nocache;

create sequence SEQ_lignecommande minvalue 1 maxvalue 999999999999999999999999999 start with 1 increment by 1

nocache;

create sequence SEQ_fournisseur minvalue 1 maxvalue 999999999999999999999999999 start with 1 increment by 1

nocache;

create sequence SEQ_expedition

minvalue 1 maxvalue 999999999999999999999999999 start with 1 increment by 1

nocache;

Etude conceptuelle Passage au modèle relationnel

93

create sequence SEQ_reception

minvalue 1

maxvalue 999999999999999999999999999

start with 1

increment by 1

nocache;

create sequence SEQ_comptabilite minvalue 1 maxvalue 999999999999999999999999999 start with 1 increment by 1

nocache;

Il faut toutefois commencer par créer un schéma de base de données sous Oracle comme suit :

SQL> CONN SYSTEM/MANAGER;

SQL> Create User «user-name« identified by «mot-de-passé« ;

SQL> Grant connect, DBA, resource to «user-name« ; // Allouer les privileges au user

SQL> Conn user-name/mot-de-passe

SQL> Create table.....etc

Réalisation de la nouvelle application Architecture

94

Architecture globale de la nouvelle application :

En ce qui concerne la structure globale de notre application, nous avons opté pour un schéma simple comportant un serveur de données centralisé permettant ainsi de conserver l'intégrité des données relié aux différents postes du domaine, suivant ainsi le modèle d'architecture réseau clients/serveur. Notons aussi que nous prévoyons de mettre en place une version mobile du module réception afin de pouvoir mettre à jour des données au niveau du magasin lors des livraisons sans faire d'aller-retour, et ceci soit en reliant directement les appareils mobiles au serveur, ou en les synchronisant avec le poste concerné avant d'effectuer une mise à jour ultérieure. Une telle solution mobile pour les réceptions serait, selon nous, profitable si elle était accompagnée de la mise en place d'un nouveau dispositif d'étiquetage que nous allons introduire comme suit :

La marchandise reçue doit être étiquetée à la livraison, or on dispose de toutes les données requises au préalable (référence, quantité commandée, localisation de la pièce en stock, numéro de la facture correspondante, numéro de la caisse contenant la pièce), sauf la quantité reçue qui sera enregistrée sur place, à la vérification. A partir de là se justifie l'emploi de la technologie mobile, qui contiendra les données citées précédemment, auxquelles on rajoutera les données manquantes au fur et à mesure du déroulement de la réception. Et on imprimera sur place les étiquettes, que nous prévoyons aussi de remplacer par un codage en deux dimensions utilisé couramment au japon : le QR Code.

Le QR Code est un code-barres en 2 dimensions (code matrice) pouvant stocker jusqu'à 7089 caractères numériques, 4296 caractères alphanumériques (contrairement au code barre "traditionnel" qui lui ne peut stocker que de 10 à 13 caractères) ou 2953 octets . Il a l'avantage de pouvoir stocker beaucoup d'informations tout en étant petit et rapide à scanner. Ainsi, le sigle « QR » dérive de « Quick Response » car le contenu peut être décodé rapidement. (Source Wikipédia).

Ce dispositif permettrait d'apporter de l'aide aussi à la gestion du stock et de l'inventaire en mettant par exemple dans chaque rayon des QR codes contenant les quantités présentes en stock mises à jour régulièrement dans le système. L'avantage du QR Code réside aussi qu'il n'a pas besoin de lecteur spécifique pour le décoder, une simple application installée sur un smart phone ou n'importe quel appareil mobile permet de le faire.

Une autre technologie existe dans ce sens : La RFID (Identification par radio fréquence) et dont on pourrait faire usage à l'avenir. Il s'agit d'une minuscule puce reliée à une antenne qui permet d'identifier un objet, d'en suivre le cheminement et d'en connaître les caractéristiques à distance grâce à une étiquette émettant des ondes, attachée ou incorporée à l'objet. La technologie RFID permet la lecture des étiquettes même sans ligne de vue directe, ce qui permettrait par la suite de faciliter la traçabilité et la localisation de n'importe quel pièce en stock.

Réalisation de la nouvelle application Architecture

Serveurs

Team Leader

Chef de département

Données

Service réception

Reports

Shipment

ICC

- FIG. 31 : Architecture de la nouvelle application -

95

- FIG. 32 Un exemple de code QR -

Réalisation de la nouvelle application Outils de développement

96

Présentation des outils de développement :

Choix du langage :

Le choix s'est porté sur le C#.NET. Une des grandes forces de ce langage réside dans le fait qu'il supporte de nombreuses variétés de bases de données, ainsi que l'accessibilité et la fiabilité. C#.NET est probablement aussi l'un des meilleurs langages pour écrire des applications clientes graphiques. L'environnement de travail qui l'accompagne « Microsoft Visual Studio 2005 » est considéré comme la plate forme de développement la plus complète qui existe, notamment grâce au FRAMEWORK.NET qui fournit un accès à des technologies clés simplifiant le développement d'applications Web ASP et de Services Web XML et aux multiples langages et outils qui l'accompagnent.

Choix du SGBD:

D'autre part, l'implémentation de la partie données se fera sous Oracle en utilisant la version ORACLE 10g afin de permettre principalement l'exploitation de cette partie une fois le passage à l'ERP Oracle Business Suite effectué. Mais cette « obligation » ne diminue en rien les performances d'Oracle qui est l'un des SGBD les plus puissants qui existent. Il se caractérise principalement par :

- Fonctionne sur de nombreuse plate forme.

- PL/SQL, langage de programmation propre à Oracle, utilisé pour créer des triggers lors de l'insertion, la modification ou l'effacement d'éléments

- Gestion de très grands volumes de données, taille maxi de 65 536 fichiers de 128 To chacun en utilisant les BigFiles de la version 10gR2 ou 10.2.

- Gestion centralisée de plusieurs instances

- Accès aux données système via des vues, bien plus aisément manipulable que des procédures stockées.

- Un système de droits et de mots de passe très souples et sécurisés, qui vérifie aussi les hôtes se connectant. Les mots de passe sont bien protégés, car tous les échanges de mot de passe sont chiffrés, même lors des connexions.

Réalisation de la nouvelle application Sécurité

97

SECURITE :

La sécurité des systèmes d'information (SSI) est l'ensemble des moyens techniques, organisationnels, juridiques et humains nécessaires et mis en place pour conserver, rétablir, et garantir la sécurité de l'information et du système d'information.

(Source : WIKIPEDIA)

Partant de cette définition qui nous a paru la plus juste, nous préconisons de déployer un ensemble de mesures relatives à la sécurisation qui ont pour objectifs de :

1. Assurer la disponibilité des services et des informations (ordinateurs, réseaux,
périphériques, applications, données, fichiers...) en permettant une accessibilité aux utilisateurs selon leurs droits d'accès et privilèges.

2. Assurer la confidentialité des informations en définissant des privilèges et des droits
d'accès.

3. Assurer l'intégrité du système en n'autorisant la mise à jours de ses données qu'aux
personnes appropriées.

Nous résumons ces mesures à travers ce tableau bidimensionnel :

Réalisation de la nouvelle application Sécurité

98

Actions Moyens

Conserver la
sécurité

Rétablir la
sécurité

Garantir la sécurité

Techniques

- Mettre en place un

système de gestion des

incidents relatifs à
l'application.

- Cybersurveillance
(Réseau)

- Diagnostic

périodique des
machines

- Sauvegarder

régulièrement ses
données

- Serveur de

secours en cas de panne et copie de

sauvegardes des
données et fichiers dans des endroits géographiquement différents.

- Contrôle des accès

avec la gestion des mots de passe.

- Traçabilité totale au
niveau des accès.

- Utilisation de logiciel
antivirus, pare-feu...etc.

- Installation
d'onduleurs

- Sécuriser l'accès aux
locaux ou sont installés les serveurs

- Confier

l'administration de

l'application à

l'administrateur système

du service informatique.

Organisationnels

- Prendre des mesures

disciplinaires à

l'encontre des

utilisateurs non

respectueux de la
charte informatique.

 

- Mettre en place des

procédures pour la

gestion des données

métiers de ceux du
personnel.

Juridiques

- Protection des droits de propriétés à chaque

version nouvelle de
l'application.

 

- Protection des droits

de propriété intellectuelle et industrielle.

- Protection des
informations personnelles

ou relatives à la vie
privée des utilisateurs.

Humains

- Mettre en place une

charte proposée à

l'utilisateur dés son

enregistrement afin
qu'il soit informé des

différents points à

respecter en utilisant
l'application.

- Définir les

actions à
entreprendre et les

personnes à
contacter en cas de

détection d'une
intrusion.

- Formation et

sensibilisation des

utilisateurs quand à le
sécurité de l'application et des données.

- Empêcher l'accès
physique aux personnes non autorisées.

- TAB. 14 : Mesures sécuritaires à entreprendre -

Réalisation de la nouvelle application Aperçu

99

Aperçu de la nouvelle application :

Identification :

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Tu supportes des injustices; Consoles-toi, le vrai malheur est d'en faire"   Démocrite