IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAGE Discussion :

Import depuis traitement spé


Sujet :

SAGE

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2022
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2022
    Messages : 67
    Par défaut Import depuis traitement spé
    Bonjour,

    J'essaie de faire appel à un modèle d'import depuis un traitement spé, pour cela je me base sur plusieurs exemples que j'ai pu trouver ici ainsi qu'un traitement existant créé par mes prédécesseurs.
    Cependant je rencontre des difficultés car dans mon cas, l'import ne fonctionne pas et me retourne une erreur "Fichier inexistant".

    Voici mon traitement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Call OUVRE_TRACE("TEST IMPORT") From LECFIC
    Gosub OUVRE From GIMPOBJ
    [M:IMP2]MODIMP= "ZNFFILES"
    [M:IMP2]NOMIMP= "D:\TEST\data.txt"
    GSERVEUR= 1
    Call ECR_TRACE([M:IMP2]NOMIMP,0) From GESECRAN
    Gosub EXEC From GIMPOBJ
    GSERVEUR= 0
    Call FERME_TRACE From LECFIC
    End
    Ai-je oublié quelque chose ?

    Merci

  2. #2
    Membre éclairé Avatar de Proscarion
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Octobre 2023
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2023
    Messages : 44
    Par défaut
    Bonjour N2XF3,

    Je suis quelque peu confus sur le code que tu as posté, n'ayant pas appris à faire des imports silencieux de cette façon.
    As tu vérifié que tu pouvais accéder à ton fichier depuis X3 (pb de droits, de nom, etc.) ? (Tu as la fonction filinfo qui permet de vérifier ca).

    Si jamais ca peut t'aider, voici la façon avec laquelle j'ai appris à faire un import silencieux (simplifié).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ### Création d'un fichier depuis le traitement ###
    [L]FIC = filpath("tmp", "nomdefichier", "txt") # Construit un path pointant vers un fichier nomdefichier.txt sous le répertoire tmp du dossier
    Openo [L]FIC, 0 				Using [XXX] # Création du fichier (car inexistant) et ouverture, ici XXX est l'abréviation du fichier créé (pour la suite)
    Iomode adxifs ";" 				Using [XXX] # On utilise ; comme séparateur de champs
    Iomode adxirs chr$(13)+chr$(10) 		Using [XXX] # On utilise le retour chariot comme séparateur d'enregistrement
    Iomode adxium [V]GASCII 			Using [XXX] # On utilise de l'ASCII
     
    # On commence à écrire dans le fichier
    Wrseq "E" , 					Using [XXX] # La virgule est importante, elle signifie que l'on n'a pas fini d'écrire l'enregistrement (la ligne)
    Wrseq [F:YYY]YYY , 				Using [XXX]
    Wrseq [F:YYY]ZZZ 				Using [XXX] # Pas de virgule, on a fini d'écrire l'enregistrement (= la ligne) et le séparateur se place automatiquement
     
    Wrseq "L" , 					Using [XXX]
    Wrseq [F:YYY]YY1 				Using [XXX]
     
    # On a fini d'écrire dans le fichier, on le ferme pour pouvoir l'importer
    Openo 						Using [XXX]
     
    ### Import Silencieux du fichier créé ###
    Call IMPORTSIL("AAA", [L]FIC) From GIMPOBJ # Ici, AAA est le modèle d'import utilisé

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2022
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2022
    Messages : 67
    Par défaut
    Bonjour Proscarion,

    Merci pour ton retour. Je vais tester ta solution.
    Concernant mon code, je me suis inspiré de cette solution qui semblait correspondre au spé déjà en place dans notre ERP.

    https://www.developpez.net/forums/d1...e/#post7152327

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2022
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2022
    Messages : 67
    Par défaut
    Bonjour Proscarion,

    Même problème avec cette solution, "Erreur fichier inexistant".
    Le répertoire doit il être un répertoire X3 (comme le répertoire tmp, TRA etc...) ?

    C'est vraiment étrange car le traitement existant arrive bien à importer des fichiers depuis ce même répertoire ( D:\...)

    Merci

  5. #5
    Membre éclairé Avatar de Proscarion
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Octobre 2023
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2023
    Messages : 44
    Par défaut
    Bonjour N2XF3,

    Tu as pu vérifier que tu accédais bien au fichier avec filinfo ?
    Non pas forcément, ce qui est important c'est qu'X3 aie les autorisations pour accéder au répertoire qui contient le fichier, ce qui a l'air d'être le cas d'après ce que tu me dis.
    Je ne sais plus s'il y a besoin de déclarer le répertoire comme espace de stockage X3 (dans la console + fonction AVOLUME). Il me semble que non, mais je pourrais me tromper (devrais être bon si le TT existant y arrive).
    Je réalisais dans un précédent poste des imports/exports sur un répertoire d'un autre serveur, mais nous l'avions configuré comme espace de stockage X3 (nous y avions également externalisé sur le même disque le répertoire ATT pour libérer de la place sur le serveur Sage X3).

    Parle t'on bien du même dossier et/ou de la même solution ?
    Est-ce que tu n'essayes pas d'importer depuis une solution de DEV (un autre serveur) alors que les accès n'ont étés donnés qu'en PROD ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2022
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2022
    Messages : 67
    Par défaut
    Je viens de tester filinfo("D:\TEST\",7)

    qui me retourne -27,
    Pourtant le compte utilisé par X3 possède bien les droits sur ce répertoire.

    Je pense que je vais me tourner vers notre intégrateur et voir s'ils peuvent jeter un œil.

    J'essaierai de mettre à jour cette discussion si j'obtiens une solution.

    Encore merci pour votre aide

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2024
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2024
    Messages : 7
    Par défaut
    Bonjour,
    Est ce que tu as essayé d'ajouter "#@" devant ton chemin ?
    filinfo("#@D:\TEST\",7)

  8. #8
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2022
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2022
    Messages : 67
    Par défaut
    Citation Envoyé par Alex__06 Voir le message
    Bonjour,
    Est ce que tu as essayé d'ajouter "#@" devant ton chemin ?
    filinfo("#@D:\TEST\",7)
    Bonjour,

    Je viens de tester et cela me retourne -50

  9. #9
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2020
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2020
    Messages : 43
    Par défaut
    Bonjour,

    L'exemple donné par Hervé DUCLOS (RVDUCLOS) ne concernait pas une V5 ou V6 (client lourd) par hasard ?
    Quelle version avez-vous ?
    Mais possible que cela fonctionne avec les versions actuelles, je ne suis pas dev, mais par contre pas sûr du tout que les versions récentes (version Web) interprètent directement une cible de type "D:\", si ?
    (vraie question aux dev)

    Donc peut être déjà essayer avec un dossier déclaré dans les volumes (espaces) de stockage du serveur pour voir si le code passe ou pas ?

  10. #10
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2022
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2022
    Messages : 67
    Par défaut
    Bonjour et merci pour votre réponse

    Je suis en V12, c'est bien ce qu'il me semble effectivement, #@ concerne uniquement les clients lourds.
    Une cible type "D:\" devrait fonctionner, c'était le cas en PU9 (client web) et dans d'autres traitements que j'ai pu trouver.

  11. #11
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2022
    Messages : 21
    Par défaut
    Que renvoie filpath("tmp", "nomdefichier", "txt") ?

    Si tu essaies de mettre un fichier nomdefichier.txt dans l'emplacement renvoyé, que te renvoies filinfo(filpath("tmp", "nomdefichier", "txt"), 7) ?

    Si tu arrives à y accèder, je te conseille de mettre tes fichiers pour l'import silencieux dans un emplacement qui correspond à une valeur renvoyée par filpath.

  12. #12
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2022
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2022
    Messages : 67
    Par défaut
    Citation Envoyé par nico_sage_x3 Voir le message
    Que renvoie filpath("tmp", "nomdefichier", "txt") ?

    Si tu essaies de mettre un fichier nomdefichier.txt dans l'emplacement renvoyé, que te renvoies filinfo(filpath("tmp", "nomdefichier", "txt"), 7) ?

    Si tu arrives à y accèder, je te conseille de mettre tes fichiers pour l'import silencieux dans un emplacement qui correspond à une valeur renvoyée par filpath.
    Bonjour,

    J'obtiens 1412740 donc ça fonctionne dans tmp.
    J'ai tenté pareil avec un autre chemin (D:\Dossier\montxt.txt) au lieu de tmp et j'obtiens -27.

    Comment puis-je vérifier quel est le compte de service utilisé par X3 pour accéder aux répertoires/fichiers sur le serveur ?
    Peut être que le compte a changé suite à notre migration (je ne vois pas pourquoi mais bon...).

    Merci pour votre aide

  13. #13
    Membre très actif
    Homme Profil pro
    Dév & consultant Sage X3
    Inscrit en
    Décembre 2014
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dév & consultant Sage X3

    Informations forums :
    Inscription : Décembre 2014
    Messages : 835
    Par défaut
    J'ai lu en diagonale, mais je pense qu'il faut compléter la "sandbox" du runtime depuis la console et redémarrer le runtime.

Discussions similaires

  1. [WD10] Importer depuis un .txt
    Par SuperV dans le forum WinDev
    Réponses: 5
    Dernier message: 01/06/2007, 13h19
  2. [2.0.0.0] Import depuis un fichier eml sur disque dur
    Par Eusebius dans le forum Thunderbird
    Réponses: 1
    Dernier message: 22/05/2007, 11h54
  3. Problème d'importation depuis fichier xls.
    Par penchu dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/05/2007, 12h42
  4. [DDE][03] Import depuis Outlook 2003
    Par snoopy69 dans le forum Access
    Réponses: 7
    Dernier message: 23/03/2007, 10h07
  5. Problemes d'importation depuis excel
    Par KANCRENAZ dans le forum Access
    Réponses: 3
    Dernier message: 17/02/2005, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo