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

AS/400 Discussion :

Copie avec CPYTOIMPF


Sujet :

AS/400

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Points : 116
    Points
    116
    Par défaut Copie avec CPYTOIMPF
    Bonjour,

    j'ai un souci lors de l'utilisation de la commande CPYTOIMPF

    Voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CPYTOIMPF  FROMFILE(QTEMP/PMALEMPXX) +                     
    TOFILE(QTEMP/PMALEMPZZ) MBROPT(*REPLACE) +    
    DTAFMT(*FIXED) STRDLM(*NONE) +                
    RMVBLANK(*NONE) FLDDLM(';')

    Je génére à partir d'un fichier base de données dans un fichier à plat de 331 de long.


    La structure de mon fichier PMALEMP est de plusieurs zones dont la dernière est un filler de 156 de long qui n'est pas rempli

    Lorsque je transfère vers le micro le fichier à plat je perds en affichage mon filler de 156.

    De fait la longueur à plat de mon fichier passe de 331 à 175 de long

    Comment faire pour conserver ce filler de 156 non rempli mais visible sur micro après ?
    Est-ce que c'est dans la commande CPYTOIMPF ou dans le RPG en remplissant mon filler par du blanc "visible" qui sera considérer ensuite dans le transfert ?

    Merci de vos réponses

    Philippe

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Si je comprends bien, ton fichier à plat a bien le filler à blanc en fin de fichier.
    C'est le passage sur micro qui te pose problème.
    Question : Qu'utilises-tu pour transférer le fichier sur ton micro.
    Autre question : En quelle version de l'OS est-tu ?

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Points : 116
    Points
    116
    Par défaut filler
    La version d'OS est V5R4M000

    Il s'agit d'un transfert vers un serveur via FTP , c'est un CLP qui fait le transfert en appelant FTP de l'AS400.

    Philippe

  4. #4
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    Dans ton FTP, insère l'instruction :
    elle évite la troncature des espaces.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 691
    Points : 996
    Points
    996
    Par défaut
    Place un délimiteur de chaîne, genre STRDLM(*DBLQUOTE), pour conserver ta chaîne telle que.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Points : 116
    Points
    116
    Par défaut
    Merci pour vos réponses

    je vais tester Lundi

    Je vous tiens au courant

    Philippe

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Points : 116
    Points
    116
    Par défaut
    Bonjour a tous ,

    Le délimiteur de chaine dans le CLP ne fonctionne pas comme voulu.
    J'ai des doubles quotes mais toujours une chaine tronqué qui ne fait plus la longueur voulue de 331 mais 179 de long.

    Je ne peux pas mettre de caractère à la fin car le client attend une chaîne vide à la fin.

    Je pars d'un fichier base de données PMALEMPXX que je copie dans un fichier d'un longueur de 331 dans PMALEMPZZ ( ce sont les noms des fichiers utilisés ).

    Après cette copie dans PMALEMPZZ , j'ai bien une chaîne de 331 de long avec mes données à plat

    Ensuite j'utilise une procédure FTP d'envoi toute prête que je ne peux pas modifier.

    Je ne peux pas mettre au début et la fin de la chaîne extraite sur PC de double quote.

    Si vous avez une idée ...

    Philippe

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Si c'est ton AS/400 qui appelle un serveur FTP et lui envoie le fichier, il faut utiliser LOCSITE TRIM 0 pour que le fichier soit envoyé avec les blancs de fin d'enregistrement.
    Est-tu sûr de ne pas pouvoir remplacer ta procédure d'envoi par ta propre commande d'envoi ?

  9. #9
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    Amha tu ne pourras pas échapper à la modification de ta procédure FTP si tu veux bien faire.

    Sinon, fais toi un programme sur le PC pour copier le fichier de 179 vers un fichier de 331. (moi je le faisais avec du Basic ou du Cobol pour PC).

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Points : 116
    Points
    116
    Par défaut
    Bonjour à tous ,

    Merci pour vos réponses , il existe probablement plusieurs solutions.

    Vu les contraintes rencontrés , je me suis renseigné interne et on m'a indiqué d'initialiser mes zones vides avec *LOVAL.

    Le fait d'avoir fait cette initialisation m'a permis de récupérer en sortie dans le fichier texte ma zone avec la longueur voulue.

    Merci encore pour votre aide

    Philippe

  11. #11
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonsoir.

    En effet l'initialisation des zones de fin d'enregistrement à LOW VALUE (*LOVAL) résout en apparence le problème. FTP semble ne tronquer que les les SPACES (X'40') en fin d'enregistrement, et donc les caractères LOW VALUE (X'00') vont passer. Tu auras un fichier sur le PC avec la longueur voulue, sauf que les caractères en fin d'enregistrement sont des NUL (X'00' en ASCII) et non des SPACES (X'20' en ASCII). Si ton client ne rechigne pas, ça peut passer.

  12. #12
    Membre régulier
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Points : 116
    Points
    116
    Par défaut
    Citation Envoyé par FORMULARY Voir le message
    Si c'est ton AS/400 qui appelle un serveur FTP et lui envoie le fichier, il faut utiliser LOCSITE TRIM 0 pour que le fichier soit envoyé avec les blancs de fin d'enregistrement.
    Est-tu sûr de ne pas pouvoir remplacer ta procédure d'envoi par ta propre commande d'envoi ?
    J'ai fini par adopter cette solution en modifiant la chaîne du FTP

    Merci pour vos réponses

    Philippe

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 26/12/2007, 15h31
  2. Excel - copie avec formule contenant $
    Par turbo74 dans le forum Excel
    Réponses: 10
    Dernier message: 18/12/2007, 17h07
  3. [Batch] Copie avec .log
    Par Tententai dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 08/11/2007, 16h19
  4. aide sur la copie avec critères
    Par shrekos007 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/05/2007, 21h50
  5. probleme de copie avec vbs
    Par tese84 dans le forum VBScript
    Réponses: 4
    Dernier message: 16/05/2007, 09h37

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