/***************************************************************/
Type EchangeBinaire Implemente Public : IEchange Defaut Final TailleSegment 4 ConserverObjets
/* Objet : Type definissant un echange au format Up ! Edi. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* 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. */
/*-------------------------------------------------------------*/
Public :
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, E : Nul Ou Entrepot=Nul, M : Booleen=Faux);
Operateur Optimiser(Invariant, NulAbsorbant) ==(E : Nul Ou EchangeBinaire) Retourner Nul Ou Booleen;
Operateur Optimiser(Invariant, NulAbsorbant) !=(E : Nul Ou EchangeBinaire) Retourner Nul Ou Booleen;
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type EchangeBinaire modélise un échange de données au format propriétaire Up ! Electronic Data Interchange qui est dédié à Up ! Virtual Technical Machine.
Ce format supporte les modèles de données récurrents et il est optimisé automatiquement.
Le type EchangeBinaire possède un constructeur pour lesquels les paramètres Flux et E représentent respectivement le flux sur lequel est adossé l'échange 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 binaire.
La page de codes du flux est utilisée pour encoder les chaînes de caractères. A défaut, le format Unicode est retenu.
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 EchangeBinaire;
F : Nul Ou IFlux;
Principal
/*******/
Variable
/******/
A : Caractere;
B : Entier;
C : Reel;
D : Booleen;
Debut
...
A="Bonjour le monde";
B=10;
C=3.1416;
D=Vrai;
...
E=EchangeBinaire(F);
E.ExporterObjet(A);
E.ExporterEntier(B);
E.ExporterObjet(C);
E.ExporterEnumere(D);
E=Nul;
...
Fin Principal
- | - | - | - | - | - | - | - | - |