/***************************************************************/
Type EchangeFluxDEnregistrements Implemente Public : IEchange Defaut Final TailleSegment 4 ConserverObjets
/* Objet : Type definissant un echange au format */
/* d'enregistrements de champs. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* 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,
EncoderEnregistrement : Nul Ou Fonction(NomModule : Caractere, NomType : Caractere) Retourner Nul Ou Enregistrement=Nul,
DecoderEnregistrement : Nul Ou Fonction(Ligne : Caractere) Retourner Nul Ou Enregistrement=Nul,
E : Nul Ou Entrepot=Nul, M : Booleen=Faux);
Operateur Optimiser(Invariant, NulAbsorbant) ==(E : Nul Ou EchangeFluxDEnregistrements) Retourner Nul Ou Booleen;
Operateur Optimiser(Invariant, NulAbsorbant) !=(E : Nul Ou EchangeFluxDEnregistrements) Retourner Nul Ou Booleen;
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type EchangeFluxDEnregistrements modélise un échange de données au format enregistrements de champs fixes ou variables.
Ce format ne supporte pas les modèles de données récurrents.
Le type EchangeFluxDEnregistrements possède un constructeur pour lesquels les paramètres Flux, EncoderEnregistrement, DecoderEnregistrement et E représentent respectivement le flux sur lequel est adossé 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 l'enregistrement correspondant à l'objet à exporter d'après son type.
La fonction d'encodage DecoderEnregistrement doit retourner l'enregistrement correspondant à l'objet à importer d'après la signature lue dans la ligne.
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 EchangeFluxDEnregistrements;
F : Nul Ou IFlux;
/****************************************************************/
Fonction MonEncodage(O : Nul Ou Objet) Retourner Nul Ou Enregistrement
/* Objet : Reconnait l'enregistrement d'apres l'objet a exporter. */
/****************************************************************/
Debut
...
Fin Fonction
/****************************************************************/
Fonction MonDecodage(Ligne : Caractere) Retourner Nul Ou Enregistrement
/* Objet : Reconnait l'enregistrement d'apres la ligne a importer. */
/****************************************************************/
Debut
...
Fin Fonction
Principal
/*******/
Variable
/*******/
A : Caractere;
B : Entier;
C : Nul Ou Reel;
D : Booleen;
Debut
...
A="Bonjour le monde";
B=10;
C=3.1416;
D=Vrai;
...
E=EchangeFluxDEnregistrements(F,MonEncodage,MonDecodage);
E.ExporterObjet(A);
E.ExporterEntier(B);
E.ExporterObjet(C);
E.ExporterEnumere(D);
E=Nul;
...
Fin Principal
- | - | - | - | - | - | - | - | - |