Jump to content

Question

Bonjour

Je veux interdire un doublon de produit et une quantité vide dans une TE lors de la création d'un bon de commande.

Le probleme : impossible d'intervenir dans les rubriques d'une TE !

Share this post


Link to post
Share on other sites

12 answers to this question

Recommended Posts

  • 1

Bonjour

Déja tu peu mettre une quantité par défaut ( exp :1 ) des les entrée automatique sur la rubrique "quantité "de ta TE des bon de commande , ça résous le problème des quantités vide ...

Pour les doublon tu peu faire un scripte qui vérifie cela . Dans le poste si dessous j'explique un scripte qui peu être modifier pour juste contrôlé si l'article est déjà sur le bon de commande.

Voir le poste

Création d'un facturier ??? quel est la meilleur solution?

Posée par saturnin125

 

APO

Share this post


Link to post
Share on other sites
  • 1

Bonsoir,
Que voulez-vous dire avec "impossible d'intervenir dans les rubriques de la TE" ? À quoi ressemble votre graphe de liens et sur quelle occurrence est basée votre TE ? Quelles rubriques (issues de quelle occurrence de table) sont dans votre TE ? Quelles options sont attachées à la TE ?
Bref, il manque pas mal d'éléments pour pouvoir vous répondre.
Il y a plusieurs solutions pour éviter les doublons ou vérifier qu'une rubrique n'est pas vide, mais leur mise en œuvre dépend aussi en grande partie des réponses aux questions ci-dessus.

Share this post


Link to post
Share on other sites
  • 1

Je suppose que BDC_details est le nom de l'occurrence de table liée. Si ce n'est pas le cas, ce qui suit n'est pas pertinent ! 🙂

Pour savoir si un doublon existe, vous avez besoin de vérifier s'il existe un enregistrement dans la table liée qui a comme double critère, la référence Pro $Reference_PRO et les rubriques du lien (supposons que ce soit l'identifiant du bon de commande que je vais appeler RefBDC pour plus de commodité).

La recherche doit se faire dans les détails, là, elle se fait dans les bons de commande : le contexte n'est pas bon.

Dans votre script, vous créez une seconde variable avec la valeur de RefBDC et vous changez de modèle au lieu d'aller à l'objet "détail" pour vous positionner sur un modèle basé sur le détail des lignes.

Votre recherche portera sur les rubrique Référence_PRO et Reference_BDC. S'il y a un résultat, c'est qu'il existe un doublon. Sinon, vous pouvez retourner tranquillement dans le modèle Bon de Commande.

Une autre solution serait de chercher dans la liste des références_PRO liées si on trouve une occurrence de la référence à vérifier.

Autre piste, avez-vous vérifier que la variable $Reference_PRO se remplit bien avec la bonne valeur ? Si on est sur le "mauvais" déclencheur de script, elle risque de prendre la première valeur de la table externe et pas celle qui nous intéresse.

Share this post


Link to post
Share on other sites
  • 1

Le problème vient du contexte : quand on exécute une recherche, celle-ci s'exécute dans le contexte de l'occurrence de table sur laquelle est placée le modèle.

Vous faites donc ici une recherche dans les bons de commandes et pas dans le détail !

Remplacez "aller à l'objet" par "activer modèle" en vous positionnant sur une occurrence de la table Détail via un modèle adapté. Si on oublie quelques instants les bonnes pratiques ancre-bouées et autres question de nomenclature, il suffit de faire un modèle basé sur l'occurrence de table BDC_Detail.

Vous pouvez vous passer de l'action "Mode Recherche" puisque vous avez enregistré votre requête dans le "Exécuter la recherche".

Share this post


Link to post
Share on other sites
  • 1

Oui, j'ai oublié de préciser qu'il fallait effectivement revenir dans le bon contexte, et donc sur le modèle d'origine, une fois les vérifications faites.

Share this post


Link to post
Share on other sites
  • 0

Bonjour, j'ai bien noté la solution script et je vais l'appliquer ! Merci !

Impossible d'intervenir dans les rubriques de la TE veut simplement dire qu'à partir du moment où le lien est "permettre la création d'enregistrement via ce lien", il semble bien que les rubriques se remplissent selon les liens établis dans les occurrences de table.

Share this post


Link to post
Share on other sites
  • 0

Bonjour

Voici le script : il ne fonctionne pas !!!

Je le mets sur la rubrique "produit" / modèle "bon de commande" en déclencheur de script / sur sortie de l'objet !!!

L'objet "détail" est la TE dans laquelle je veux interdire les doublons de produit et la quantité vide !!!

#récupérer références BDC et PRO

Définir variable [ $Reference_PRO; Valeur :BDC_details::Reference_PRO ]

#chercher doublons

Aller à l'objet [ Nom d'objet : "detail" ]

Mode Recherche [ ]

Exécuter la recherche [ Requêtes de recherche définies : Rechercher des enregistrements; Critères : BDC_details::Reference_PRO: “$Reference_PRO” ]
[ Rétablir ]

Si [ Obtenir ( NombreEnregTrouvés ) > 1 ]
Ouvrir boîte dial. person. [ Titre : "SAISIE"; Message : "Le produit est déjà sélectionné"; Bouton par défaut : “OK”, Valider :

“Oui” ]

Définir rubrique [ BDC_details::Reference_PRO; "" ]

Définir variable [ $Reference_PRO; Valeur :"" ]

Fin de si

 

Share this post


Link to post
Share on other sites
  • 0

Bonjour

La création d'une commande fournisseur part de la fiche fournisseur de laquelle, je récupère les infos du fournisseur en variables et les place dans le bon de commande créé.

Le bon de commande créé est basé sur la  table "BDC" qui contient les infos du bon de commande.

La TE "BDC_details" contenant les produits - uniquement du fournisseur - (en liste déroulante) est placée sur le modèle BDC.

C'est dans cette TE "BDC_details" contenant les produits que je veux interdire les doublons - car il ne sert à rien qu'un produit soit sélectionné plus d'une fois dans un bon de commande - ainsi qu'une quantité vide - au cas où l'utilisateur oublie de saisir la quantité commandée !

L'idée est donc de placer un script sur la rubrique "Produit" de la TE "BDC_details" en "déclencheur de script / sur sortie de l'objet" - Est-ce la bonne position ???

VOICI LE SCRIPT - qui ne fonctionne pas !!! - avec un fichier essai joint :

 

#récupérer références BDC et PRO : je récupère les ID du bon de commande et du produit qui doivent se trouver dans la TE "BDC_details"

Définir variable [ $Reference_BDC; Valeur :BDC_details::Reference_BDC ]

Définir variable [ $Reference_PRO; Valeur :BDC_details::Reference_PRO ]

#chercher doublons : je cherche les doublons, c'est-à-dire les enregistrements dans la table "BDC_details" qui contiennent les mêmes références bon de commande et produit

Aller à l'objet [ Nom d'objet : "detail" ] - Il s'agit bien de la TE "BDC_details"

Mode Recherche [ ]

Exécuter la recherche [ Requêtes de recherche définies : Rechercher des enregistrements; Critères : BDC_details::Reference_BDC: “$Reference_BDC”;BDC_details::Reference_PRO: “$Reference_PRO” ]
[ Rétablir ]

Si [ Obtenir ( NombreEnregTrouvés ) > 1 ]
Ouvrir boîte dial. person. [ Titre : "SAISIE"; Message : "Le produit est déjà sélectionné"; Bouton par défaut : “OK”, Valider :

“Oui” ]

Définir rubrique [ BDC_details::Reference_PRO; "" ] - L'idée est de réinitialiser la rubrique !!!

Définir variable [ $Reference_PRO; Valeur :"" ] - L'idée est de réinitialiser la variable !!!

Fin de si

Le raisonnement semble bien posé, mais le mécanisme FM n'est vraiment pas encore acquis !!!

bon_de_commande.fmp12

Share this post


Link to post
Share on other sites
  • 0

Merci !

Je vais essayer !

Share this post


Link to post
Share on other sites
  • 0

Le fait d'utiliser "Activer modèle" affiche le modèle basé sur BDC_details, du coup on sort totalement du contexte BDC avec la TE BDC_details, et ça s'arrête là !!!

Share this post


Link to post
Share on other sites
  • 0

Génial !

Merci beaucoup !

Conclusion : il faut passer par ce genre de gymnastique pour sortir des sentiers battus !

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...