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 :

SFLDROP et CPF5011


Sujet :

AS/400

  1. #1
    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 SFLDROP et CPF5011
    Bonjour,

    Me voilà à devoir corriger un problème sur un bon vieux programme en RPG ILE, avec un écran vert et ses DDS.
    Ce programme étant sensible et conséquent (8000 lignes, sans compter les includes et procédures externes), je ne peux me permettre de le réécrire avec mes outils et interfaces habituels.

    Cette saisie de commandes, affiche un sous-fichier des lignes, qui peut être tronqué ou non, via le mot-clé SFLDROP.
    Quand on appelle une ligne en modification on lit le sous-fichier, on ouvre le format de saisie en bas d'écran, puis on met à jour le sous-fichier en conséquence quand l'utilisateur valide.
    Çà fonctionne parfaitement, sauf dans un cas.
    Si l'utilisateur appelle la ligne en modification, puis qu'il presse la touche liée à SFLDROP, l'écran affiche correctement le sous-fichier (tronqué ou étendu), mais à la validation, paf. CPF5011, Update sans Read préalable.
    Or le SFLDROP est géré par le système, il se fait sans que le programme n'en sache rien (le contrôle n'est pas rendu, même avec une touche CF). Du coup, mon code n'est jamais au courant s'il doit relire le sous-fichier.

    Quelqu'un a t-il déjà vécu la même chose, ou y aurait-il une idée de génie qui me permettrait de régler le problème ? Relire le sous-fichier avant de le mettre à jour est bien une solution, mais extrême, car il y a presque 80 champs dedans, qu'il faudrait sauvegarder avant lecture puis remettre après lecture.

  2. #2
    Membre actif
    Homme Profil pro
    Architecte technique & logiciel IBM i
    Inscrit en
    Septembre 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte technique & logiciel IBM i
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2010
    Messages : 179
    Points : 275
    Points
    275
    Par défaut
    Est-ce qu'il y a le mot clé SFLNXTCHG ? peut-être en l'activant juste avant d'appeler l'écran de modification ?

  3. #3
    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
    Citation Envoyé par pwrdwnsys Voir le message
    Est-ce qu'il y a le mot clé SFLNXTCHG ? peut-être en l'activant juste avant d'appeler l'écran de modification ?
    Oui, mais çà ne change pas mon souci. L'appui sur la touche F22 qui gère le SFLDROP, ne rendant jamais le contrôle au programme, il n'est au courant de rien.

    Je sens que je vais devoir me taper une jolie copie de chaque champ en mémoire, puis relecture du sous-fichier, recopie dans l'autre sens des champs, puis update sous-fichier.
    Tout çà parce que j'ai du ajouté un SFLDROP à la demande des utilisateurs.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 55
    Points : 75
    Points
    75
    Par défaut
    Bonjour,

    Je n'ai jamais rencontré le problème et je ne vois pas comment le résoudre autrement que par une relecture du SFL. Ceci-dit, peut-être qu'en lisant le SFL dans une ds déclarée en likerec et en ignorant le résultat de lecture l'opération serait plus simple ?

  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
    Citation Envoyé par vazymimil Voir le message
    Bonjour,

    Je n'ai jamais rencontré le problème et je ne vois pas comment le résoudre autrement que par une relecture du SFL. Ceci-dit, peut-être qu'en lisant le SFL dans une ds déclarée en likerec et en ignorant le résultat de lecture l'opération serait plus simple ?
    J'ai déjà fait les modifs, backup, relecture et remise en place, des valeurs.
    Mais effectivement, je n'y avais pas pensé, la relecture du sous-fichier dans une DS qualifiée m'aurait évité bien des manips, et serait bien plus efficace. Je vais peut être modifier mon code.
    Merci.

    Edit : Modif effectuée et validée, çà allège bien le code !

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

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