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 :

Traitement fichier séquentiel [X3-V6]


Sujet :

SAGE

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Traitement fichier séquentiel
    Bonjour,
    Je travaille actuellement sur un traitement qui génère un fichier des nomenclatures avec le stock des composants, le stock est issu d'un fichier csv traiter dans une "fonction", le code est le suivant :
    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
    #Lecture fichier stock
    $READ_FIC_STK
    Openi filpath("tmp\FICHIER_auto","ZSTK","csv") ,0 Using [KKK]
    H=0
    ZRECOK=0
    While ZRECOK = 0 & A=0
           Rdseq ZITMR,ZSK,ZSITE Using[KKK]
           A=fstat
           If A=0
                If ZITMR=ZPRO 
                    ZSTK=ZSK
                    ZRECOK=1
                Endif
           Endif
           H=H+1
    Wend
    Openi Using [KKK]
    Return
    Dans le programme principal, cette fonction est appelé pour chaque élément de nomenclature pour récupérer la zone stock, cela fonctionne très bien sauf quand le produit est absent du fichier stock, la l'écriture dans le fichier de sortie s'arrête, je ne comprend pas pourquoi il bloque.

    Si quelqu'un peut m'aiguiller pour résoudre ce problème.

    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Octobre 2016
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Octobre 2016
    Messages : 109
    Points : 162
    Points
    162
    Par défaut
    Bonjour

    à ta place je stockerai les données dans une table temporaire dans un premier temps, ensuite dans mon traitement principal j irai interroger la table au lieu du fichier !

    sinon dans ton traitement je ne vois pas le problème, il faut regarder le traitement globale
    bon courage

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    L'idée est plutôt bonne mais je suis "novice" sur sage et je n'ai pas encore testé et vu comment fonctionné les tables temporaires.
    Concernant mon traitement actuellement j'ai regardé la partie principale en long en large, et je ne vois pas ce qui pourrait gêner même en mettant une instruction de copie basique, celle ci ce coupe au moment ou ma référence est absente du fichier.

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Octobre 2016
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Octobre 2016
    Messages : 109
    Points : 162
    Points
    162
    Par défaut
    En faite dans ton traitement, pour chaque article, tu ira lire le fichier et ramener la quantité de stock, et si l'article n'est pas dans le fichier il s arrête et ne poursuit pas si j ai bien compris : en table c'est beaucoup mieux optimisé surtout si la table est bien indexée...

    Sinon pour ta partie du traitement, c'est impossible de savoir, ton code est correcte, il faut rejouer le traitement dans son intégralité, ce que tu peux faire est de savoir à quel moment ton traitement s'arrête via un debugger , vérifies tes variables fstat et GOK, comme le fstat dans ton traitement fait beaucoup de choses, il li le fichier et peut être les tables ailleurs, ton fstat se perd peut être ... essayes sinon de rajouter un else dans ta boucle de if comme :


    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
    21
     
    $READ_FIC_STK
    Openi filpath("tmp\FICHIER_auto","ZSTK","csv") ,0 Using [KKK]
    H=0
    ZRECOK=0
    While ZRECOK = 0 & A=0
    Rdseq ZITMR,ZSK,ZSITE Using[KKK]
    A=fstat
    If A=0
    	If ZITMR=ZPRO 
    		ZSTK=ZSK
    		ZRECOK=1
    	ELSE 
    		ZSTK=0
    		ZRECOK=0	
    	Endif
    Endif
    H=H+1
    Wend
    Openi Using [KKK]
    Return

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    J'avais déjà tenté le else avec une maj de ZSTK avec une valeur discordante pour être sur qu'il traiter bien la donnée...
    Ce que je dois donc faire et d'apprendre à créer une table tampon qui stockerais mes données de stock pendant l'exécution de mon traitement. Ou dans le pire des cas pour pallier facilement à mon problème je pourrais alimenter mon fichier stock de base avec l'ensemble de mes produits. Sais-tu ou je peux trouver une doc concernant les "tables annexes" ?
    En tout cas merci de te pencher sur mon cas.

  6. #6
    Membre habitué
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Octobre 2016
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Octobre 2016
    Messages : 109
    Points : 162
    Points
    162
    Par défaut
    Je ne sais pas si tu peux en trouver dans ce forum, sinon pour créer une table, tu vas dans le dictionnaire des données et tu créés une table ayant les mêmes informations de ton fichier. regardes aussi dans l aide x3, ET vérifie les indexes de la table pour être cohérent avec ta base de donnée

    dans ton traitement pour alimenter la table :

    Déclares ta table avec l instruction clalev et donnes lui une abréviation comme ZZZ, regardes dans l'aide, voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If clalev([F:ZZZ])=0 : Local File ZTABLE [ZZZ] : Endif
    lorsque tu boucles tes enregistrements dans ton fichier, tu peux alimenter tables :

    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
    21
    22
    23
    24
    25
    26
    27
    28
     
    $READ_FIC_STK
    Openi filpath("tmp\FICHIER_auto","ZSTK","csv") ,0 Using [KKK]
    H=0
    ZRECOK=0
    While ZRECOK = 0 & A=0
    Rdseq ZITMR,ZSK,ZSITE Using[KKK]
    A=fstat
    If A=0
     
     
    			Trbegin [ZZZ]
     
    			ZITMR =[F:ZZZ]ZITMR
    			....
     
                Write [ZZZ]
                If [S]fstat=0
                    Commit
                Else
                    Rollback
                Endif
     
    Endif
    H=H+1
    Wend
    Openi Using [KKK]
    Return

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    D'accord dans le principe je vois le système de fonctionnement je testerais cela sous peu, merci de toutes ces infos, je suis dans l'attente d'une formation x3 pour le moment seul connaitre les subtilités est plutôt compliqué le langage lui ne l'est pas contrairement à l'architecture qui elle est plutôt complexe .
    Merci

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

Discussions similaires

  1. traitement fichier binaire
    Par noussa_nouha dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 21/10/2006, 14h45
  2. Traitement fichier excel avec vb6
    Par couscoussier dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 12/09/2006, 16h15
  3. [PERL] traitement fichier texte
    Par osiris73 dans le forum Langage
    Réponses: 10
    Dernier message: 05/05/2006, 20h06
  4. Réponses: 14
    Dernier message: 20/03/2006, 09h43
  5. Optimiser traitement fichier [.txt]
    Par Metallic-84s dans le forum Langage
    Réponses: 14
    Dernier message: 16/03/2006, 13h33

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