Transfert de stock par les objets métiers V6

SOLVED

Bonjour,

Je travaille sur un projet de transfert d'article à Gamme vers des articles "simples". J'utilise les objets métiers V6 sur une application en C#

J'ai suivi la formation début février et je suis encore en train de découvrir les objets métiers

Je rencontre pas mal de souci, que j'arrive à plus ou moins compenser par des requêtes SQL (Ex: récupération des infos libres: pas de Item sur article.infoslibre,).

Mais là ou je coince sur sur la recopie des stocks. Je m'aperçois qu'il y a beaucoup de champs que je ne peux pas modifier, notamment : AS_QteSto,AS_QteRes et ses petits frères :-)

  static void CreeStock(IBOArticleGammeEnumRef3 om_artgamref, IBOArticle3 om_newArt)
        {
            BSCIALApplication100c om_BaseCommerciale = (BSCIALApplication100c)om_artgamref.Stream;
            foreach (IBOArticleDepot3 ArtDepot in om_artgamref.Article.FactoryArticleDepot.List)
            {
                IBOArticleDepotGamme3 ArtDepotGam = ArtDepot.FactoryArticleDepotGamme.ReadMonoGamme(om_artgamref.ArticleGammeEnum1);
               
                IBOArticleDepot3 newartdepot = (IBOArticleDepot3)om_artgamref.Article.FactoryArticleDepot.Create();//cmup/Montant lecture seule
                newartdepot.Depot = ArtDepot.Depot;
                newartdepot.SetDefault();
                newartdepot.AS_Emplacement =ArtDepotGam.GS_Emplacement;
                newartdepot.AS_QteMaxi = ArtDepotGam.GS_QteMaxi;
                newartdepot.AS_QteMini = ArtDepotGam.GS_QteMini;
               //Pb stock a terme/stockreserve....
                newartdepot.Write();
                foreach (IBIArticleStockEmpl empl in ArtDepotGam.FactoryArticleStockEmpl.List)
                {
                   // empl.ArticleStock =;
                }
                if (ArtDepot.Article.ArticleDepotPrincipal.Depot.DE_Code == ArtDepot.Depot.DE_Code) { om_newArt.ArticleDepotPrincipal = newartdepot; om_newArt.Write(); }
            }
        }

Voici mon code. Je voit bien des fonction pour les lire, mais rien pour les écrire.

Merci de votre aide

Cordialement

  • +1
    verified answer

    Bonjour,

    Tout d'abord, il faut se dire que seul ce qui est autorisé directement dans Sage est autorisé en Objets Métiers.
    Vous ne pouvez pas modifier le type d'article de Gammes à simple sans créer une nouvelle référence.
    Ca, vous l'avez compris je pense :)

    Concernant le stock, vous vous trompez "d'objet".
    FactoryArticleDepot correspond au référencement d'un dépôt sur une fiche article, où on peut préciser les quantités mini/maxi et l'emplacement principal par exemple.

    Pour transférer vos stocks, il va falloir gérer les documents de stock (pour le stock réel) et les documents achat/vente (avant BL) pour le stock à terme.

    Enfin pour les infos libres, vous devriez bien avoir Item disponible :

  • 0 in reply to Julien WOLFF

    Bonjour,

    Merci de votre réponse. Pour mon transfert, je duplique les lignes d'articles à gamme  que je passerai en sommeil en fin de scripts. En fait je duplique toute l'arborescence

    Merci de la précision. Effectivement, je n'ai pas compris l'utilité de cet objet. Il va falloir que je complète le script

    Pour les infos libres... je vais vais revérifier...

  • Bonjour ,

    Faites-nous savoir si la réponse de a été utile en la marquant comme vérifiée .

    Pour cela, cliquez sur ‘…’ au niveau de la réponse apportée (qui normalement se trouve marquée en orange), puis allez sur  la ligne ‘Vérifier la réponse’.

    Cela aura pour effet de marquer la réponse en vert et de permettre aux autres membres de la communauté, ou aux personnes qui auraient également le besoin de voir que cela a fonctionné.

    Merci d'avoir utilisé la communauté.

    Yannick

  • 0 in reply to Isabelle PALIER

    Je confirme qu'il n'y a pas d'item dans les infos libres.. ou alors je m'y prends mal

  • 0 in reply to Isabelle PALIER

    En fait, le code fourni par mes soins est du vb.net

    Pour la partie C# (que je ne maitrise malheureusement pas), effectivement Item n'a pas l'air d'exister.

    Je dirai que c'est le "this[]" qui est à utiliser en lieu et place du "item".

    A voir si cela fonctionne avec le nom de l'info libre ou le numéro.