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

Développement de jobs Discussion :

Utilisation de Numeric.sequence


Sujet :

Développement de jobs

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Utilisation de Numeric.sequence
    Bonjour à tous,
    Je veux réaliser la chose suivante
    J'ai des enregistrement sans id
    Code Libelle
    234 GOMME
    234 GOMME
    235 CRAYON
    235 CRAYON
    235 CRAYON

    J'aimerais obtenir
    234 GOMME 1
    234 GOMME 2
    235 CRAYON 1
    235 CRAYON 2
    235 CRAYON 3

    L'utilisation de Numeric.sequence fonctionne mais je ne sais pas comment réinitialiser la valeur à chaque changement de code, actuellement j'obtiens

    234 GOMME 1
    234 GOMME 2
    235 CRAYON 3
    235 CRAYON 4
    235 CRAYON 5

    Merci de votre aide

  2. #2
    Membre régulier

    Inscrit en
    Septembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 74
    Points : 81
    Points
    81
    Par défaut Procédure
    Bonjour,

    J'ai utiliser la procédure suivante pour réinitialiser une Numeric.sequence:

    1. Copier le code de la routine système "Numeric"
    2. Créer une nouvelle routine nommée par exemple "CustomNumeric" (car on ne peut pas modifier les routines système)
    3. Ajouter une méthode "resetSequence" à cette nouvelle routine:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static void resetSequence(String seqName, int startValue) {
            seq_Hash.put(seqName, startValue);
        }
    4. A la place d'utiliser "Numeric.sequence("s1",1,1)" utiliser "CustomNumeric.sequence("s1",1,1)"
    5. Pour effectuer un reset appeler la méthode "resetSequence" dans un tJava par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CustomNumeric.resetSequence("s1",0);
    Je ne sais pas s'il existe d'autres méthodes mais celle-ci fonctionne parfaitement!

    Cordialement,

    Mselle

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Re :
    Merci pour ces explication, Je ne sais pas comment gérer l'appel au Tjava en fonction de la condition de changement de code, dans le TMAP ?

  4. #4
    Membre régulier

    Inscrit en
    Septembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 74
    Points : 81
    Points
    81
    Par défaut Pas besoin de tJava
    Dans ton cas pas besoin de tJava (j'avais un cas différent) ce qu'il faut faire c'est ajouter une logique dans ton tMap (avec des variables) te permettant de tester si ta valeur précédente est égale à la valeur courante.

    Si c'est le cas tu ne fais rien et sinon tu appelle la méthode qui permet de faire un reset de la séquence (utilisation de l'opérateur ternaire).

    Pour récupérer la valeur précédente il suffit de mettre une deuxième variable qui récupère simplement la valeur de ton champ.

    Cette méthode fonctionne uniquement si tes lignes sont triées de telles sorte que toutes les lignes ayant la même valeurs apparaissent les unes après les autres.

    Sinon je te conseillerais peut être de trouver une autre méthode que le reset de la séquence pour effectuer cette opération.

    Cordialement,

    Mselle

  5. #5
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    Bonjour,

    Je loupe peut-être quelque chose dans votre problématique, mais l'utilisation du premier paramètre lors de l'appel de la routine Numeric.sequence permet de générer une nouvelle séquence pour chaque nouvelle valeur passée à ce paramètre.

    Par exemple pour le cas présenté, il suffit d'appeler la séquence en lui passant le code en premier paramètre, et vous aurez bien le résultat attendu.

    Nicolas

  6. #6
    Membre régulier

    Inscrit en
    Septembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 74
    Points : 81
    Points
    81
    Par défaut En effet!
    Bonjour,

    Oui en effet ma première réponse fonctionne pour le reset de la séquence mais dans ce cas précis c'est totalement inutile cela doit fonctionner parfaitement avec l'initialisation d'une séquence pour chaque valeur du premier champ!

    Cordialement,

    Mselle

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Re :
    Merci encore pour tout,
    J'y suis presque ....
    Dans le TMAP j'ai :
    CustomNumeric.sequence("CHAR(Var.GP_NUMERO)",1,1)
    qui ne fonctionne pas ou plus exactement qui ne change rien
    je ne sais pas comment passer en paramètre ma variable GP_NUMERO dans numericsequence.

    Merci

  8. #8
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Re :
    Au final tout va bien

    Merci à tous

    la solution

    Numeric.sequence(String.valueOf(row4.Ib_sharepoint),1,1)

    row4.Ib_sharepoint étant au format INT

    A bientôt http://www.developpez.net/forums/ima...lies/ccool.gif

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

Discussions similaires

  1. Changer le format de numeric.sequence
    Par déb_bi dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 28/02/2014, 11h39
  2. Remise à zéro de numeric.sequence
    Par jeanphi45 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 21/05/2010, 11h37
  3. Utilisation d'une sequence sans creation d'entite
    Par longbeach dans le forum Hibernate
    Réponses: 1
    Dernier message: 12/05/2009, 17h40
  4. Réponses: 10
    Dernier message: 12/10/2007, 16h54
  5. [FLASH MX2004] Utilisation du Numeric Stepper
    Par sovitec dans le forum Flash
    Réponses: 2
    Dernier message: 05/07/2005, 17h33

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