Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Membre du Club Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2009
    Messages : 204
    Points : 60
    Points
    60

    Par défaut [WD11] Mise à jour HF/CS et suppression de données

    Bonjour à tous,

    J'ai migré une application WD de HF classique à HF/CS. J'ai énormément bataillé car, je ne sais pour quelle raison, lors de l'import de mes données vers HF/CS, Windev m'a vidé plusieurs champs dans mes fichiers de données...

    J'ai contourné le problème en réimportant mes fichiers HF classique dans mon HF/CS.

    Là, j'ai ajouté un champ dans mon analyse. Opération anodine en apparence : et bien non ! Au moment de mettre à jour mes fichiers de données, WD me vide à nouveau mes champs : je me retrouve donc avec, par exemple, un fichier de prospect où il ne reste que les champs de type numérique ! Tous les champs de type texte sont vides !

    Est-ce que quelqu'un a une idée d'où pourrait venir ce problème ? J'ai sûrement mal fait quelque chose au moment de la migration ? Si je suis obligé de galérer à chaque modification de mon analyse, bonjour l'angoisse !

    Merci pour toute aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    avril 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2005
    Messages : 179
    Points : 469
    Points
    469

    Par défaut

    Bonjour,

    Comment faites-vous la "migration" ?

  3. #3
    Membre du Club Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2009
    Messages : 204
    Points : 60
    Points
    60

    Par défaut

    J'effectue la "migration" à partir du serveur HF/CS.

    Dans l'onglet "bases de données" il y a une option "copier une base de données HF classique". Je n'ai plus qu'à aller chercher le dossier où sont stockés mes fichiers et à les importer.

  4. #4
    Membre du Club Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2009
    Messages : 204
    Points : 60
    Points
    60

    Par défaut

    Je viens de remarquer quelque chose qui ne m'aide pas vraiment mais pourrait peut être aider quelqu'un passant par là.

    Je fais la mise à jour de mes fichiers hyperfile = les champs de type texte sont alors vidés
    Si je laisse les fichiers en l'état, et que j'entre des données dans les champs textes, lors de la prochaine mise à jour de mes fichiers HF, ces champs ne seront pas vidés.

    J'ai donc l'impression que les fichiers HF ont été mal convertis à la base... Du coup le processus de maj remet les fichiers au bon format mais au détriment de l'intégrité des données qu'ils contiennent...

    Je crois qu'il va falloir me recréer mes fichiers en faisant un export/import style csv. Chose qui risque d'être assez laborieuse...

  5. #5
    Expert Confirmé
    Avatar de frenchsting
    Homme Profil pro Claude
    Développeur informatique
    Inscrit en
    juin 2003
    Messages
    1 867
    Détails du profil
    Informations personnelles :
    Nom : Homme Claude
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2003
    Messages : 1 867
    Points : 2 842
    Points
    2 842

    Par défaut

    Ou de passer par des alias ?

    En créant un alias qui va pointer sur tes anciens fichiers, essaye de faire des HcopieEnreg().
    Commencez toujours par là : et puis n'hésitez à passer par là : ou par un autre moteur de recherche...
    Pas de question par MP s'il vous plait. Le forum est fait pour cela...

    Make it real not fantasy

  6. #6
    Membre du Club Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2009
    Messages : 204
    Points : 60
    Points
    60

    Par défaut

    Merci frenchsting, c'est une excellente idée que je vais exploiter sans tarder

  7. #7
    Membre du Club Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2009
    Messages : 204
    Points : 60
    Points
    60

    Par défaut

    Ça y est je viens de terminer mon script de recopie et tout a fonctionné comme prévu.

    J'ai recréé mes fichiers hf/cs dans une nouvelle base puis j'ai copié ligne à ligne les champs dans ces fichiers.

    Je ne sais pas si mon code sera utile, d'autant qu'il n'est pas très bien écrit, mais je le met tout de même :

    Code :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    sFicName est une chaîne
    sListRub est une chaîne
    sListRubS est une chaîne
    sRubrique est une chaîne
    sListFic est une chaîne
    sFichier est une chaîne
     
    SI HDécritConnexion("source","login","pass","nomServeur:4900","BD_source",hAccèsHFClientServeur,hOLecture) ALORS
    	SI HOuvreConnexion("source") ALORS
    		//Ouverture de la base de données source
     
    		//ON liste les fichiers de la base de données source
    		sListFic = HListeFichier("source");
     
    		SI HDécritConnexion("destination","login","pass","nomServeur:4900","BD_destination",hAccèsHFClientServeur,hOLectureEcriture) ALORS
    			SI HChangeConnexion("*","destination") ALORS
    				//Modification de la connexion de l'analyse en cours vers la base de destination
     
    				HCréationSiInexistant("*") //Création des fichiers de données
    				HGèreIntégrité("*", "*", hCardinalité+hEnModification, Faux) //Désactivation des règles d'intégrité
    				HGèreDoublon(monFichier, monChamp, Faux) //Désactivation de la gestion des doublons si besoin
     
    				POUR TOUTE CHAINE sFichier DE sListFic SEPAREE PAR RC
    					sFicName = Remplace(sFichier,".FIC","",SansCasse)
    					SI HDéclareExterne(sFichier,"dest","source") ALORS
    						sListRub = HListeRubrique(sFicName)
    						sListRubS = HListeRubrique({"dest",indFichier})
    						POUR CHAQUE {"dest",indFichier}
    							//Enumération des colonnes du fichier de destination
    							HRAZ(sFicName)
    							POUR TOUTE CHAINE sRubrique DE sListRub SEPAREE PAR RC
    								SI Position(sListRubS, sRubrique)>0 ALORS
    									//Si le champ existe dans la base de données de destination
    									{sFicName + "." + sRubrique,indRubrique} = {"dest." + sRubrique,indRubrique}
    								FIN
    							FIN
    							HAjoute(sFicName,hForceIdAuto) //ForceID pour obliger HF à utiliser l'ID inséré, et non générer lui-même son propre ID
    						FIN
     
    						HAnnuleDéclaration("dest")
    					FIN
    				FIN
     
    				//Réactivation des différentes règles
    				HGèreDoublon(monFichier, monChamp, Vrai)
    				HGèreIntégrité("*", "*", hCardinalité+hEnModification, Vrai)
    				HFermeConnexion("source")
    			SINON
    				Erreur("Impossible d'ouvrir la connexion source")
    			FIN
    		SINON
    			Erreur("Impossible d'établir la connexion de destination")
    		FIN
    	SINON
    		Erreur("Impossible d'ouvrir la connexion source")
    	FIN
    SINON
    	Erreur("Impossible d'établir la connexion source")
    FIN

  8. #8
    Expert Confirmé
    Avatar de frenchsting
    Homme Profil pro Claude
    Développeur informatique
    Inscrit en
    juin 2003
    Messages
    1 867
    Détails du profil
    Informations personnelles :
    Nom : Homme Claude
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2003
    Messages : 1 867
    Points : 2 842
    Points
    2 842

    Par défaut

    Merci pour ton retour. Ton code sera utile, je n'en doute pas.
    Commencez toujours par là : et puis n'hésitez à passer par là : ou par un autre moteur de recherche...
    Pas de question par MP s'il vous plait. Le forum est fait pour cela...

    Make it real not fantasy

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •