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

InfoPath .NET Discussion :

Sérialiser pour éviter les collisions


Sujet :

InfoPath .NET

  1. #1
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    juillet 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2012
    Messages : 196
    Points : 112
    Points
    112
    Par défaut Sérialiser pour éviter les collisions
    Bonjour,

    J'ai une bibliothèque de formulaire (SP2010) en mode Filer et je rencontre des collisions lorsque le formulaire est enregistré.
    Je crée le nom du fichier en cherchant le max(ID) de la connexion de donnée "envoi de formulaire", donc le nom
    du formulaire est généré au dernier moment pour éviter que le ID soit périmé, mais des collisions se produisent
    quand même!

    Mes documents sont donc nommés avec un nombre séquentiel de 6 chiffres (ex: D0000001.xml), alors comment éviter
    ces collisions, sans devoir renommer les demandes en cours ou se retrouver avec des noms trop complexes, puisque
    j'en ai plusieurs milliers. Plusieurs personnes différentes doivent éditer ces documents dans notre chaîne d'approbation.

    Vos suggestions seraient bienvenus!

    Cordialement,
    Jacques

  2. #2
    Membre régulier Avatar de raOOn
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : décembre 2006
    Messages : 100
    Points : 112
    Points
    112
    Par défaut
    Désolé, je n'ai pas très bien compris. Que veux tu dire par "en cherchant le max(ID) de la connexion de donnée" ?

    Tu recherches le max(ID) d'une table d'une base de données? ou rien à voir ? ^^
    -Écoute, on t'connaît pas, mais laisse nous t'dire que tu t'prépares des nuits blanches... des migraines... des "nervous breakdown", comme on dit de nos jours.
    Paul Volfoni

  3. #3
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    juillet 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2012
    Messages : 196
    Points : 112
    Points
    112
    Par défaut
    Bonjour Paul,

    J'utilise une connexion de donnée dans InfoPath pour retrouver seulement le ID de ma bibliothèque de formulaire InfoPath
    pour obtenir la liste des numéros attribués par SharePoint. Ensuite, je trouve le dernier ID en assignant cette valeur à un champs
    de mon formulaire, en affectant à ce champs la formule MAX(ID) + 1, ce qui me donne le prochain numéro qui devrait
    être attribué par SharePoint.

    Cordialement,
    Jacques

  4. #4
    Membre régulier Avatar de raOOn
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : décembre 2006
    Messages : 100
    Points : 112
    Points
    112
    Par défaut
    Oops autant pour moi, je n'avais pas fait attention que j'étais dans la section infopath que je ne connais point du tout.

    Après une vite recherche sur google :

    https://social.msdn.microsoft.com/Fo...m=sharepointfr

    Tu as bien tout décoché lors de l'envoi et réception de données?

    Dans "envoi du formulaire " tu as choisis la bonne option?
    Je ne peux t'aider plus, c'est complètement hors de mes compétences désolé
    -Écoute, on t'connaît pas, mais laisse nous t'dire que tu t'prépares des nuits blanches... des migraines... des "nervous breakdown", comme on dit de nos jours.
    Paul Volfoni

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    février 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : février 2013
    Messages : 36
    Points : 34
    Points
    34
    Par défaut
    Bonjour
    J'utilise la même méthode, par contre j'enregistre tout de suite après le calcul du max + 1 pour être sur qu'il n'y est pas de collision
    Julien

  6. #6
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    juillet 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2012
    Messages : 196
    Points : 112
    Points
    112
    Par défaut
    Bonjour jdajdl,

    Effectivement lorsqu'on se sert du ID, il faut faire la sauvegarde le plus rapidement possible,
    pour ne pas que le nombre obtenu par MAX(ID) ne soit périmé.

    Malheureusement, cette technique convient lorsqu'il n'y a pas beaucoup de "transactions"
    ou s'il n'y a qu'une personne qui utilise le formulaire. Le risque de collision augmente
    avec le volume. Au début je n'avais pas de collision et peu d'usagers, mais présentement,
    j'ai un peu moins de 100 usagers qui génèrent environ 3000 formulaires par an.

    Certaines personnes utilisent une combinaison date-heure-minute-seconde pour éviter
    ces problèmes, mais les noms des documents sont peu pratique (ex.20160427080122.xml)
    Exemple sur ce lien.

    Dans mon cas, puisque les documents sont enregistré dans une bibliothèque de document
    SharePoint, une 3e alternative est envisageable: l'enregistrement selon la méthode no.2
    et par la suite un Flux SP vient lire le ID réel lors de la sauvegarde du document pour renommer
    le document en conséquence.

    Donc, comme bien des gens, je cherchais une solution simple et pratique, mais...

    Cordialement,
    Jacques

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

Discussions similaires

  1. [XsL/xpath]Comment faire pour éviter les doublons?
    Par BigBarbare dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/05/2007, 20h31
  2. Réponses: 2
    Dernier message: 28/06/2006, 08h53
  3. Réponses: 2
    Dernier message: 13/11/2005, 18h03
  4. Méthode simple pour gérer les collisions
    Par Hyoga dans le forum OpenGL
    Réponses: 2
    Dernier message: 19/02/2005, 13h43

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