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 :

unix to AS400 : nom de fichiers trop long


Sujet :

AS/400

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 176
    Points : 188
    Points
    188
    Par défaut unix to AS400 : nom de fichiers trop long
    Bonjour,

    Dans le cadre du même projet qu'une question précédente, je fais face à un nouveau problème :

    Le traitement actuel (sous Unix) travaille sur un fichier, et en sortie de traitement stock les data dans un fichier nommé de manière :
    nomfichier_nomtraitement.orderID afin que toutes les sorties soient gardées.

    Un autre traitement ensuite va lire tous les fichiers de nom nomfichier_nomtraitement*, les archive un par un sous le nom nomfichier_nomtraitement.orderID.date.heure, puis les concatène tous en un fichier avant de les effacer.

    n'ayant pas tout vu on avait commencé le portage en structurant les fichiers sous AS400 de manière :
    nom de fichier : nomfichier
    nom de membre : nomtraitement

    mais maintenant que j'ai appris que dans le cadre d'une multiple utilisation du même traitement chaque fichier en sortie doit être stocké séparément etc... j'ai du mal à visualiser comment stocker autant d'information dans le nom du fichier / membre vu qu'ils sont limités à 10 caractères...

    j'envisage de créer une dataarea ou un fichier "table de conversion" avec un nom "long" et un nom "court" défini sous forme de compteur (tant pis pour la lisibilité)

    y a t'il un meilleur moyen de gérer mon problème?
    j'ai entendu parler de GDG sur Z/OS qui permet une création d'une nouvelle instance du fichier a chaque open output, y a t'il un équivalent sur AS400?

    merci d'avance !

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Je pense qu'il y a mieux mais, avant de répondre, je veux être sûr de bien comprendre la question et le besoin.


    1. Tu dois transférer des fichiers Unix sur AS/400. Est-ce exact ?
    2. Quelle est la structure du nom des fichiers Unix à transférer sur AS/400 ? Est-ce "nomfichier_nomtraitement.orderID.date.heure" ?
    3. Comment le transfert s'effectue-t-il ? FTP ou autre chose ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 176
    Points : 188
    Points
    188
    Par défaut
    Je réalise un portage d'un logiciel fait (et fonctionnant actuellement) sous Unix, de manière à ce qu'il fonctionne sous AS400.

    Donc les fichiers a terme seront 100% AS400, et ne seront pas transferés d'une machine à l'autre.

    Mais pour l'instant, je cherche à préserver un maximum du code.

    a l'heure actuelle j'utilise des OVRDBF dans des programmes CL en amont pour définir mes fichiers d'entrée et de sortie, mais j'ai un problème sur "comment gérer les nomages de mes fichiers sur AS400 vu que j'ai l'impression que je ne vais pas pouvoir garder toutes les infos"

    le problème n'est pas tant sur le transfert des fichiers (que je fais une bonne fois pour toute via FTP) mais sur la meilleur manière d'organiser ceux ci pour préserver le :
    chaque traitement génère un fichier séparé
    un traitement "suivant" prend tous les fichiers séparés, les sauve dans un coin, puis les concatène et les utilise comme fichier d'entrée.
    et le tout avec un nom de fichier à l'origine sur 8+"_"+nom de traitement à l'origine sur 8+"."+numéro unique (orderID)

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut Utiliser SQL
    Sur l'AS/400, si tu utilises SQL, tu peux créer les tables (fichiers physiques), les vues (fichiers logiques), voire les index (mais à quoi bon donner un nom long à ces derniers ?) avec le nom que tu veux (ou presque), même un nom "à rallonge". L'utilisation des points n'est toutefois pas admise. Utilise des "_" à leur place plutôt. N'utilise pas non plus les DDS qui en effet limitent les noms à 10 caractères.
    Par la suite, tu peux accéder à ces tables et/ou vues sous le nom long comme dans l'exemple ci-dessous, ou bien reprendre le nom court "AS/400" que leur a donné l'OS.
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE QTEMP/ceci_est_un_nom_de_table_plutot_long_quand_meme 
    (Z1 CHAR (10 ) )  
    CREATE VIEW QTEMP/ENCORE_UN_NOM_LONG AS SELECT * FROM                  
    QTEMP/ceci_est_un_nom_de_table_plutot_long_quand_meme
    En allant voir le nom de la table créée (dsplib QTEMP), je constate que l'OS a appelé la table CECI_00001 et la vue ENCOR00001. Ce sont les noms courts sur 10 c.

    Du coup, si j'utilise SQL en "direct" ou dans mes programmes, je peux utiliser le nom long ou le nom court, au choix, pour y faire référence. En revanche, sans SQL, je dois et ne peux référencer ces objets qu'avec le nom court.

    Une autre solution pourrait consister à gérer les membres d'un fichier multi-membres mais je ne préconise toutefois pas cette solution car elle est très "AS/400" , se limite aux noms courts et les membres sont assez lourds à gérer via des OVRDBF et/ou des CREATE ALIAS SQL.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 176
    Points : 188
    Points
    188
    Par défaut
    je vais tenter comme ca, merci! Je ne savais pas que SQL sous AS400 était plus permissif au niveau des noms comme ca...

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

Discussions similaires

  1. Noms de fichiers trop long
    Par Maxmoon13 dans le forum C#
    Réponses: 0
    Dernier message: 15/04/2014, 12h09
  2. Nom de fichier trop long
    Par MzBouba dans le forum Général Python
    Réponses: 4
    Dernier message: 29/08/2013, 11h53
  3. Problème de compilation et nom fichier trop long
    Par m.joseph dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/01/2010, 15h55
  4. Nom de fichier trop long (nombreux fichiers)
    Par gretch dans le forum Windows XP
    Réponses: 10
    Dernier message: 14/03/2008, 17h09
  5. getOutputStream() : nom de fichier trop long
    Par joseph_p dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 29/06/2006, 11h55

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