/***************************************************************/
Type EchangeEdifact Implemente Public : IEchange Defaut Final TailleSegment 4 ConserverObjets
/* Objet : Type definissant un echange au format Edifact. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des proprietes de IEchangeElementaire. */
/*-------------------------------------------------------------*/
Prive :
FormatDeLEchange : FormatsEchangeSupportes Virtuel Lecture Public;
FinDImportation : Booleen Virtuel Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public :
Fonction Optimiser(Invariant) Identique(O : Nul Ou Objet) Retourner Nul Ou Booleen;
Procedure Convertir(O : Nul Ou Objet);
Fonction Optimiser(Invariant) CreeParLeServeur() Retourner Entier;
Fonction Optimiser(Invariant) CreeParLeProcessus() Retourner Entier;
Fonction Optimiser(Invariant) CreeDansLEntrepot() Retourner Entrepot;
Fonction Cloner(EntrepotCible : Nul Ou Entrepot=Nul, Profondeur : ModeClonage = ClonageObjetSeul) Retourner Nul Ou Objet;
Fonction LirePropriete(NomPropriete : Caractere) Retourner Nul Ou Objet;
Procedure EcrirePropriete(NomPropriete : Caractere, Valeur : Nul Ou Objet);
Fonction IncrementerDecrementerPropriete(NomPropriete : Nul Ou Caractere, Incrementer : Booleen, Prefixe : Booleen) Retourner Nul Ou Objet;
Procedure SupprimerPropriete(NomPropriete : Caractere);
Fonction Optimiser(Invariant) EnumererProprietes(NumeroPropriete : Entier, TypePropriete : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
Fonction Optimiser(Invariant) Adresse() Retourner Nul Ou Caractere;
Prive :
Fonction Exporter(E : Nul Ou IEchangeElementaire) Retourner Boolean;
Fonction Importer(E : Nul Ou IEchangeElementaire, EntrepotCible : Nul Ou Entrepot=Nul, EstFiltre : Booleen=Faux, V : Entier=0, R : Entier=0, C : Entier=0) Retourner Nul Ou Objet;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'IEchangeElementaire. */
/*-------------------------------------------------------------*/
Public :
Procedure Optimiser(PasDEffetDeBord) ExporterEnumere(E : Enumere, Libelle : Nul Ou Caractere=Nul);
Procedure Optimiser(PasDEffetDeBord) ExporterEntier(E : Entier, Libelle : Nul Ou Caractere=Nul);
Procedure Optimiser(PasDEffetDeBord) ExporterReel(R : Reel, Libelle : Nul Ou Caractere=Nul);
Procedure Optimiser(PasDEffetDeBord) ExporterObjet(O : Nul Ou Objet, Libelle : Nul Ou Caractere=Nul);
Fonction Optimiser(PasDEffetDeBord) ImporterEnumere(Libelle : Nul Ou Caractere=Nul) Retourner Enumere;
Fonction Optimiser(PasDEffetDeBord) ImporterEntier(Libelle : Nul Ou Caractere=Nul) Retourner Entier;
Fonction Optimiser(PasDEffetDeBord) ImporterReel(Libelle : Nul Ou Caractere=Nul) Retourner Reel;
Fonction Optimiser(PasDEffetDeBord) ImporterObjet(Libelle : Nul Ou Caractere=Nul) Retourner Nul Ou Objet;
/*-------------------------------------------------------------*/
/* Heritage des methodes de IEchange. */
/*-------------------------------------------------------------*/
Procedure Habilitation FiltrerAPartirDe(NumeroDebut : Entier);
Procedure Habilitation FiltrerJusquA(NumeroFin : Entier);
Procedure Habilitation FiltrerEntre(NumeroDebut : Entier, NumeroFin : Entier);
Procedure Habilitation FiltrerSelon(CritereFiltre : Nul Ou Fonction(O : Nul Ou Objet) Retourner Booleen);
Procedure Habilitation FiltrerSelon(CritereFiltre : Nul Ou Caractere);
Procedure Habilitation FixerValidationAutomatique(NbEnregistrements : Entier);
Procedure Habilitation FixerValidationEnregistrement(Verification : Nul Ou Fonction(O : Nul Ou Objet, M : Nul Ou Caractere Sortie) Retourner Booleen);
Procedure Habilitation RejeterDans(Flux : Nul Ou IFlux);
Procedure Habilitation AssocierRessourceUps5GL(T : Nul Ou Type, Alias : Nul Ou Caractere=Nul);
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Constructeur Habilitation (Flux : Nul Ou IFlux, O : EnteteEdifact,
EncoderEnregistrement : Nul Ou Fonction(NomModule : Caractere, NomType : Caractere, G : Nul Ou GroupeMessagesEdifact Sortie) Retourner Nul Ou MessageEdifact=Nul,
DecoderEnregistrement : Nul Ou Fonction(M : Nul Ou MessageEdifact, G : Nul Ou GroupeMessagesEdifact) Retourner Nul Ou Type=Nul,
E : Nul Ou Entrepot=Nul, M : Booleen=Faux);
Operateur Optimiser(Invariant, NulAbsorbant) ==(E : Nul Ou EchangeEdifact) Retourner Nul Ou Booleen;
Operateur Optimiser(Invariant, NulAbsorbant) !=(E : Nul Ou EchangeEdifact) Retourner Nul Ou Booleen;
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type EchangeEdifact modélise un échange de données au format Edifact défini par les Nations Unies.
Ce format supporte les modèles de données récurrents.
Le type EchangeEdifact possède un constructeur pour lequel les paramètres Flux, O, EncoderEnregistrement, DecoderEnregistrement et E représentent respectivement le flux sur lequel est adossé l'échange, l'en-tête de l'échange, la fonction d'encodage, la fonction de décodage et l'entrepôt de création des objets importés.
Le flux Flux doit être ouvert en lecture pour une importation ou en écriture pour une exportation. Il s'agit d'un flux ouvert en mode texte.
La fonction d'encodage EncoderEnregistrement doit retourner le message Edifact correspondant à l'objet à exporter d'après son type.
La fonction d'encodage DecoderEnregistrement doit retourner le type correspondant à l'objet à importer d'après le message Edifact analysé depuis le flux, voire le groupe de messages.
Si E a pour valeur Nul, alors l'entrepot par défaut donné par le paramètre EntrepotDefaut d'Up ! Object Management System est utilisé.
Si le paramètre M a pour valeur Vrai, alors l'échange de données s'effectue au niveau métier :
L'exportation ou l'importation débute à la création de l'objet. Elle se termine à sa destruction.
Variable
/******/
E : Nul Ou EchangeEdifact;
F : Nul Ou IFlux;
/****************************************************************/
Fonction MonEncodage(O : Nul Ou Objet, G : Nul Ou GroupeMessagesEdifact Sortie) Retourner Nul Ou MessageEdifact
/* Objet : Reconnait le message Edifact d'apres l'objet a exporter. */
/****************************************************************/
Debut
...
Fin Fonction
/****************************************************************/
Fonction MonDecodage(M : Nul Ou MessageEdifact, G : Nul Ou GroupeMessagesEdifact) Retourner Nul Ou Type
/* Objet : Reconnait le type a importer d'apres le message Edifact. */
/****************************************************************/
Debut
...
Fin Fonction
Principal
/*******/
Variable
/*******/
A : Caractere;
B : Entier;
C : Nul Ou Reel;
D : Booleen;
O : EnteteEdifact;
Debut
...
A="Bonjour le monde";
B=10;
C=3.1416;
D=Vrai;
...
E=EchangeEdifact(F,O,MonEncodage,MonDecodage);
E.ExporterObjet(A);
E.ExporterEntier(B);
E.ExporterObjet(C);
E.ExporterEnumere(D);
E=Nul;
...
Fin Principal
- | - | - | - | - | - | - | - | - |