Cegid PMI

Bonjour;

Nous avons adoptés, à mon corps défendant, le logiciel CEGID Maunfacturing PMI (Version 16-20) mais nous n’avons pas de PDM ou d’ERP pour faire le lien entre nos réalisations Solidworks et les achats et commandes réalisées sur PMI…
Je me retrouve donc à essayer de réaliser une interface intermédiaire entre nos deux logiciels via les outils VBA/Excel/SmartBom (visiativ).
Globalement j’arrive pas trop mal à me dépatouiller mais je bute sur un os:
J’essaye d’appeler les « Commandes Fournisseur » de l’Article sélectionné depuis mon interface:
Je parviens à afficher la Fiche Article:

Private Const CHEMIN_CEGID As String = "C:\Program Files (x86)\Cegid\ManufacturingPMI\ManufacturingPMI.exe"
Private Const CEGID_SOC As String = "100"           ' numero de societe
Private Const CEGID_USER As String = "****"         ' code utilisateur
Private Const CEGID_BASE As String = "PMI"          ' nom de la base
Private Const CEGID_CC_DEFAUT As String = ""     ' CC envoye si l'article n'a pas de complementaire ("" = pas de CC)
Private Const CEGID_CC_ARTICLE As Boolean = True    ' True : CC = complementaire de l'article ; False : toujours CEGID_CC_DEFAUT
Private Const CEGID_MODE_TEST As Boolean = False    ' True : affiche la commande au lieu de la lancer

' Bouton 1 - fiche article. VALIDE : PROG=ARTICLE affiche la fiche avec son code.
Private Const CEGID_PROG_FICHE As String = "ARTICLE"
Private Const CEGID_MODELE_FICHE As String = "ARTICLE={ARTICLE} CC={CC} APPELANT=COMMANDE"

Mais pour la fiche "Commande Fournisseur … rien, nada , wallooo.
Les maigres information que j’ai réussi à trouver sur le forum de CEGID (pas de nouveau message depuis 6 ans) sont contenues dans le fichier pdf ci-joint, mais là, encore une fois je ne trouve pas mon bonheur.
Cegid-PMI-Liste-des-appel-Programme.pdf (524,2 Ko)

Je comprend bien que je cible un marché de niche pour ce cas précis, mais si jamais quelqu’un a un éclaire de génie sur ce sujet, ou est confronté à la même situation (cas peu probable j’en conviens) je suis partant pour echanger sur le sujet.

Cordialement.

Effectivement très niche!
En questionnant Copilot voici les réponses proposés. Si rien ne fonctionne l’accès direct à la base de données SQL parait le plus simple.

Les pistes de Copilot:

Oui, j’ai une piste assez sérieuse.

En regardant le PDF Cegid-PMI-Liste-des-appel-Programme, je ne vois aucun programme permettant d’ouvrir directement l’onglet « Commandes Fournisseur » depuis une fiche article. Je pense que c’est précisément la raison pour laquelle ton appel fonctionne pour la fiche article mais pas pour les commandes associées. [Cegid-PMI-…gramme.pdf | PDF]

Ce que l’on trouve dans la documentation

Pour les articles :

Plain Text

PROG=MAJART

ARTICLE=xxx

CC=xxx

APPELANT=COMMANDE

ou

Plain Text

PROG=ARTICLE

ARTICLE=xxx

CC=xxx

APPELANT=COMMANDE

(selon votre personnalisation actuelle) [Cegid-PMI-…gramme.pdf | PDF]

Pour les fournisseurs :

Plain Text

PROG=FOURNIS

COMPTE=xxx

APPELANT=TELEPH

ou

Plain Text

PROG=MAJCPTE/F

COMPTE=xxx

[Cegid-PMI-…gramme.pdf | PDF]

Pour les recherches de commandes, on trouve par exemple :

Plain Text

PROG=TABCDE01-CDECLI

mais uniquement pour les commandes clients. [Cegid-PMI-…gramme.pdf | PDF]


Ce qui me fait penser que tu cherches le mauvais PROG

Dans la liste complète des programmes, il n’y a :

  • ni CDEFOU
  • ni FOURNISSEUR-CDE
  • ni TABCDE01-CDEFOU
  • ni programme explicitement associé à la consultation des commandes fournisseur. [Cegid-PMI-…gramme.pdf | PDF]

Par contre, la documentation montre que beaucoup de fenêtres ne sont pas appelables directement et passent par des écrans intermédiaires internes. CEGID a souvent codé les onglets comme des sous-fenêtres et non comme des programmes autonomes.

Il est donc possible que :

  1. la fenêtre « Commandes fournisseur » de l’article ne soit pas exposée en ligne de commande ;
  2. elle ne soit accessible qu’après ouverture de la fiche article ;
  3. elle nécessite un appel MCU interne non documenté.

Ce que je testerais

Test 1 : lancer la consultation fournisseur

Essayer :

BAT

PACKPMI PROG=FOURNIS COMPTE=XXXX SOC=100 USER=MOI

ou

BAT

PACKPMI PROG=MAJCPTE/F COMPTE=XXXX SOC=100 USER=MOI

si tu connais le fournisseur associé. [Cegid-PMI-…gramme.pdf | PDF]


Test 2 : recherche dans les fichiers PMI

Sur le poste où est installé PMI, rechercher dans :

Plain Text

*.MCU

*.WDL

*.WDW

*.WDP

les chaînes :

Plain Text

CDEFOU

FOURN

ACHAT

APPRO

COMFOU

TABCDE01

Souvent les développeurs PMI ont laissé les noms de programmes dans les scripts.


Test 3 : espionner l’appel interne

Comme tu ouvres déjà la fiche article, l’approche la plus efficace est probablement :

  • ouvrir l’article depuis VBA ;
  • envoyer une suite de touches :

VisualBasic

SendKeys « %A »

SendKeys « F »

(selon les raccourcis PMI)

ou

VisualBasic

SendKeys « ^{F5} »

si l’onglet commandes est accessible clavier.

Un peu bourrin mais souvent plus fiable qu’essayer de découvrir un PROG caché.


La piste que je trouve la plus intéressante

Dans le PDF on voit :

Plain Text

Prog : DISPONIBLE

Présélection :

ARTICLE=xxxxxx

CC=xx

[Cegid-PMI-…gramme.pdf | PDF]

Or dans PMI, la fenêtre « Disponible » permet souvent d’afficher :

  • fournisseurs,
  • commandes d’achat ouvertes,
  • réceptions,
  • stock,
  • besoins.

Je vérifierais si cette fenêtre ne contient pas déjà les informations que tu cherches.

Exemple :

BAT

PACKPMI PROG=DISPONIBLE ARTICLE=MONARTICLE CC=MONCC SOC=100 USER=MOI

[Cegid-PMI-…gramme.pdf | PDF]


Si c’était mon projet SmartBom / Excel

Personnellement je ne chercherais même plus à ouvrir la fenêtre PMI.

Je lirais directement les tables SQL PMI :

  • article
  • ligne de commande fournisseur
  • commande fournisseur

via ADO depuis Excel.

Tu obtiens alors directement :

Article Fournisseur N° commande Qté Date prévue

sans dépendre d’une fenêtre CEGID.

Vu que tu es déjà en VBA/Excel/SmartBom, c’est souvent beaucoup plus robuste.

D’ailleurs, sais-tu sur quelle base tourne votre PMI 16.20 ?

  • SQL Server ?
  • PostgreSQL ?
  • Pervasive ?
  • autre ?

Si tu peux donner le nom exact du menu PMI que tu ouvres manuellement pour voir les commandes fournisseur d’un article, je peux probablement retrouver le PROG= correspondant ou déterminer s’il est simplement non exposé dans les appels externes.

Bonjour @Maclane ,

Nous utilisons aussi les 2.

Par contre je ne comprends pas l’intérêt d’aller plus loin que l’import de nomenclature de Solidworks → Cegid (on s’est arrêté là de notre coté).
C’est fait via un export/import de .csv chez nous depuis que Cegid ne maintien plus la moulinette Solidworks->Cegid (qu’ils avaient créés vers 2005-2010).

Si tu peux développer sur ce que tu essaies de faire, ça pourrait m’intéresser.

Cegid gère au moins 2 bases : la base article / nomenclature et après les choses qui ont été lancées (duplication de la nomenclature à l’instant T). Je ne suis pas un expert des bases de données Cegid mais j’ai des collègues plus pointus sur le sujet.
Typiquement les commandes doivent être plutôt gérés du coté lancement (puisque lié à l’affaire/lot) voire dans une autre base/table.

Merci pour ta participation @sbadenis :grin: bien que je sois surpris que « Copilot » fasse une réponse de cette « qualié », j’avais renoncé à l’utiliser quand il était infichu de me répondre sur des produits Microsoft…

Je n’avais pas pensé à essayer du Sendkey, c’est une piste intéressante.

A la question pourquoi ne pas attaquer directement la base SQL, c’est que je n’y ai tout simplement pas accès (ben oui, c’est ballot !)

Pour information les nom exact des menu PMI sont:
Pour la fiche Article => « \ARTICLE » (fenetre C2021art) (celle-ci était facile à trouver")
Pour la commande fournisseur (sur cet Article) => \ARTILCLE\CDEFOU (fenetre C2163DOC)

@froussel

L’objectif est de pouvoir consulter beaucoup plus facilement la liste des articles existants avec un Userform Excel, qui pointe vers une exportation *.csv de nos fiches Articles + Refernces externes + Libelés1 et 2…, sans être limité par l’affichage et la lenteur de PMI.
Globalement cela facilite la création d’articles tout en s’assurant que celui-ci n’existe pas déjà dans PMI et/ou de trouver un article existant avec des caractéristiques proches.(Nous avons définis des règles strictes sur la codification).

Voyant que ce type de recherche via Excel donne de bon résultats, invariablement mes supérieurs en demandent toujours plus, donc maintenant outre la consultation directe depuis cet interface (Excel) des fiches Artilcles de PMI, ils souhaitent accéder aux commandes Fournisseurs et à Dieu sais-quoi à l’avenir…

Sinon pour l’exportation depuis Solidworks, cela se passe chez-mous aussi via des nomenclatures SmartBom+fichier TXT + import…

Quand à la moulinette Solidworks->Cegid (qu’ils avaient créés vers 2005-2010)…j’me disais bien que cela ne fonctionnais pas bien du tout…dommage.

…je creuse les informations données et je fais un retour pour les personnes que cela interesse… :sweat_smile: