Bonjour,
Comment faire un requette pour visualiser la nomenclature d'un article.
Merci d'avence
Bonjour,
Comment faire un requette pour visualiser la nomenclature d'un article.
Merci d'avence
Bonjour,
tu as deux tables importantes pour la nomenclature, BOM (Nomenclature Entete) et BOMD pour le détail.
Cordialement,
Frédéric.
Bonjour,
J'essayé de lancé la requette ci-dessous, mais il ne ramène pas tous les niveaux
select itmref_0,cpnitmref_0,level
from BOMD
start with itmref_0 = 'MONARTICLE'
connect by prior cpnitmref_0 = itmref_0
order by itmref_0;
D'avance Merci
il y a pas une inversion dans ton connect
Un exemple chez nous avec d'autres champs, mais c'est pareil
select level,compose,compose_des1,compose_alt,composant,composant_des1,composant_cat,qte
from
(select bomd.itmref_0 compose,a.itmdes1_0 compose_des1,bomd.bomalt_0 compose_alt,
bomd.cpnitmref_0 composant,b.itmdes1_0 composant_des1,b.tclcod_0 composant_cat,bomd.bomqty_0 qte,bomd.bomenddat_0,bomd.bomseq_0
from bomd,itmmaster a,itmmaster b
where a.itmref_0= bomd.itmref_0
and b.itmref_0= bomd.cpnitmref_0)
start with compose='mon_article' and compose_alt=mon_alternative
connect by compose = prior composant
order by level;
Mais je trouve que les requêtes sont longues lorsqu'on a beaucoup de nomenclatures et d'alternatives.
C'est pour cela que nous faisons tourner un programme en batch qui va mettre dans une table les nomenclatures à plat. Les requêtes ensuite sont simples
Si j'ai bien tout compris, tu souhaites avoir une nomenclature multi niveau à partir d'un produit (article) de haut niveau.
J'ai fait ça mais ça ne fonctionne qu'en oracle à partir de la version 10 (de mémoire), à toi de l'adapter à ton besoin
Il faut bien sûr modifier la ligne START WITH ITMREF_0 = 'code produit fini haut niveau ' en mettant ton code article de haut niveau
Nota : je l'ai simplifiée au maximum pour qu'elle te serve de base de départ : j'ai supprimé la gestion des dates de validité, la gestion des alternatives,....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 SELECT LEVEL as niveau, BOMSEQ_0, ITMREF_0, CPNITMREF_0, LIKQTY_0, BOMALTTYP_0, BOMALT_0, CONNECT_BY_ROOT ITMREF_0 as topLevelID, SYS_CONNECT_BY_PATH (CPNITMREF_0,'/') as chemin , SYS_CONNECT_BY_PATH(LIKQTY_0,'*') as qteTotal FROM BOMD bd START WITH ITMREF_0 = 'code produit fini haut niveau ' and BOMALT_0=1 and bd.bomalt_0=1 and bd.BOMALTTYP_0=2 and bd.CPNTYP_0<>7 CONNECT BY PRIOR CPNITMREF_0 =ITMREF_0 and BOMALT_0=1 and bd.bomalt_0=1 and bd.BOMALTTYP_0=2 and bd.CPNTYP_0<>7
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager