1. #1
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juillet 2014
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : juillet 2014
    Messages : 159
    Points : 143
    Points
    143

    Par défaut Traitement Specifique inventaire

    Bonjour,

    Nous souhaiterions faire un bout de spécifique dans les listes d'inventaire. Le traitement Standard "SUBSNX" appelle un sous programme dans le traitement "SUBSNXA" par un "Call LOAD_SNxx From SUBSNXA".
    J'aimerais pouvoir faire un spécifique de ce sous programme et ne pas exécuter celui en standard.
    Comment je dois faire pour que lors du "CALL ...." ce soit mon sous-programme qui s'exécute ?

    Merci d'avance de vos réponses

  2. #2
    Membre habitué
    Homme Profil pro
    Chef de projets Informatiques (ERP / WEB / .NET)
    Inscrit en
    juillet 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projets Informatiques (ERP / WEB / .NET)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : juillet 2007
    Messages : 120
    Points : 158
    Points
    158

    Par défaut

    Bonjour,

    as-tu regarder si un point d'entrée pouvait suffire ?

    • Traitement STKINV : Inventaires

    WRICUD : Avant écriture détail inventaire
    CUD_SIW: Avant la renumérotation de la liste
    SIW_CUD: Avant l'écriture du fichier CUNLISDET
    RGP_PRECHARG: Permet de pré-charger quantité comptée sur écran de regroupement
    TRICREINV: Permet de faire un tri spécifique des listes créées
    TRICLEREG: Permet de définir les rubriques majeurs des cles de regroupements
    TRIRENUM: Permet de faire un tri spécifique des llistes créées
    SNL_CUD : Permet d alimenter le fichier CUNLISDET depuis l écran SNL1
    SNL_SIW : Permet d alimenter l’écran de stockage STOINVW depuis l écran SNL1
    SNL0_CUD : Permet d alimenter le fichier CUNLISDET’ depuis l’écran SNL0
    CALNEXINV : Permet de modifier la date de prochain inventaire .
    CALINVITW : Permet de modifier la date de prochain inventaire .


    • Traitement SUBSNXA : Gestion des inventaires

    AFTREASTO : Sélection après lecture table stock
    AFTREAITM : Sélection après lecture table article site
    ARLOAEMP : Ajout d enregistrements dans une liste de type emplacement
    FILLOALIG : Permet de modifier les filtres standards
    DEBLOALIG : Permet de rajouter des controles sur l article
    FILGENMAN : Permet de modifier le filtre standard WFILEMP
    DEBLOATAB : Permet de rajouter des controles suivant l'évolution de l'article
    FINGENSNU : Permet de rajouter des controles suivant l'évolution de l'article
    RUPLOCMAN : Permet de gerer unr rupture liste autre que le standard
    FINLOALIG : Permet de modifier la valeur de la variable WERR
    AVNLOATAB : Permet de modifier le contenu du masque SIW



    Cordialement,
    Frédéric

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juillet 2014
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : juillet 2014
    Messages : 159
    Points : 143
    Points
    143

    Par défaut

    Bonjour,

    Merci de la réponse mais les points d'entrée ne correspondent pas à notre besoin.

    Notre besoin est d'indiquer pour un inventaire manuel qu'un article de classe D ne doit pas apparaitre dans la liste d'inventaire si il a déjà été compté dans l'année en cours. Le dernier comptage se trouve dans la table ITMMVT mais le traitement standard pour l'étiquette "inventaire manuel" n'a pas de lien avec cette table (alors qu'elle est ouverte) et donc ne prend pas en compte le code indiqué dans la formule d'inventaire. Je pourrais modifier le standard (ce que j'ai fait pour valider que ça marche) et rajouter le link sur ITMMVT mais ce n'est pas propre et donc c'est pourquoi je vous sollicite.

    En espérant avoir été compréhensible !!

  4. #4
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    juillet 2006
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : juillet 2006
    Messages : 747
    Points : 913
    Points
    913

    Par défaut

    Bonjour,

    avez vous utilisé toutes les familles statistiques article ?
    s'il vous en reste au moins une, vous pouvez faire un traitement qui va mettre un code stat particulier sur tous ceux qui doivent être inventorié et pas sur vos articles de classe D.
    Lors de l'inventaire vous avez les classes stat en filtre

    Cela permet de rester dans le standard

  5. #5
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juillet 2014
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : juillet 2014
    Messages : 159
    Points : 143
    Points
    143

    Par défaut

    Je ne comprend pas trop ta solution car les articles de classe D doivent être inventorié et ne plus apparaitre ensuite dans les listes si la date de leur dernier inventaire est dans l'année en cours.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    juillet 2006
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : juillet 2006
    Messages : 747
    Points : 913
    Points
    913

    Par défaut

    c'est ton traitement que tu mets dans un batch ou une requete sql qui gère le cas.
    la procédure c'est :
    -passage du script qui marque/démarque les articles
    -lancement inventaire filtré sur uniquement l indicateur de flag
    -passage du script qui marque/démarque les articles

  7. #7
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juillet 2014
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : juillet 2014
    Messages : 159
    Points : 143
    Points
    143

    Par défaut

    Ta solution propose d'utiliser une information (la famille statistique article) qui soit prise en compte dans les filtres d'inventaire, et de faire un traitement qui viendrait mettre un flag ou pas sur les articles pour qu'il soient filtrés dans la liste d'inventaire.

    C'est ce que je fais un utilisant une formule (c'est aussi un filtre de la liste d'inventaire), mais le problème c'est que si cette formule "evalue" un champ qui n'est pas de la table ITMFACILIT alors il n'est pas pris en compte (je pense que c'est d'ailleurs un bug parce ce fonctionnement est propre à une sélection manuelle et pas à un "inventaire tournant" ou "annuel").

    Donc pour revenir à ma question de départ "comment faire pour que quand le standard appelle cette ligne "Call LOAD_SNxx From SUBSNXA" je puisse exécuter mon traitement et ne pas exécuter le standard" ?

    Merci

  8. #8
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    décembre 2014
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : décembre 2014
    Messages : 357
    Points : 400
    Points
    400

    Par défaut

    Tout dépend comme c'est codé : action objet ou action dictionnaire (ou autre ?).

    Il faudrait le sous-programme complet qui contient le "call" et savoir comment il est appelé.

  9. #9
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juillet 2014
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : juillet 2014
    Messages : 159
    Points : 143
    Points
    143

    Par défaut

    Bonjour,

    Dans SUBSNXA on a un case qui renvoi vers 3 sous-programmes (When 1 : Gosub GEN_MANUEL,When 2 : Gosub GEN_TOURNANT et When 3 : Gosub GEN_ANNUEL).

    Je voudrais exécuter mon traitement quand le sous programme "GEN_MANUEL" est appelé et pas exécuter le sous programme "GEN_MANUEL" standard.

    Merci de vos avis

  10. #10
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    décembre 2014
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : décembre 2014
    Messages : 357
    Points : 400
    Points
    400

    Par défaut

    C'est compliqué car ce "case" se situe dans un "subprog".

    La méthode propre est de demander un point d'entrée à Sage, et en attendant, de modifier le SUB à ta convenance. Attention au passage de patch (le mettre éventuellement dans le niveau 2 et comparer avec l'éventuelle nouvelle version lors du passage de patch).
    Si Sage ne veut pas mettre de PE alors... c'est bien dommage.

  11. #11
    Membre actif
    Homme Profil pro
    Consultant technico-fonctionnel sage X3
    Inscrit en
    avril 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant technico-fonctionnel sage X3
    Secteur : Conseil

    Informations forums :
    Inscription : avril 2008
    Messages : 164
    Points : 233
    Points
    233

    Par défaut un peu vieux

    il est tout a fait propre de modifier en dernier recours (si pas de point entree) les traitements SUB en placant le modifie dans le dossier de la solution et laisser le standard non modifie dans dossier X3.

    En faisant ca, le systeme utilise celui dans le dossier de la solution. A chaque passage de passage mettre a jour le traitement jusqu a correction du bug ou dispo d un PE

Discussions similaires

  1. Durée d'un traitement temps réel
    Par Almex dans le forum C
    Réponses: 5
    Dernier message: 29/03/2003, 14h15
  2. [directsound] boucle de traitement de son
    Par gargle dans le forum DirectX
    Réponses: 5
    Dernier message: 24/03/2003, 10h47
  3. Rafraichissement de la fenetre pendant le traitement
    Par Bobx dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/02/2003, 15h13
  4. Matrice de filtrage ?
    Par gimlithedwarf dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 24/08/2002, 09h44
  5. [XSLT]position d'un element de valeur specifique
    Par squat dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/07/2002, 16h42

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