Infos libres en ligne de doc, Objets métiers

Cette section est consacrée aux développements d'applications interfacées avec les logiciels Sage.

Modérateurs: Super-Apogea, Super Modérateur

Infos libres en ligne de doc, Objets métiers

de arnaud_fr » Lun 9 Mai 2016 11:38

Bonjour,

Je rencontre des soucis pour renseigner des informations libres dans les lignes de document avec Objets métiers.

Objets métiers : V6.00
Sage : 100 Entreprise i7 v8
Langage utilisé : C# (une réponse avec du code VB.Net me convient également)
Document créé : facture de vente

Le développement que je suis en train de réaliser a pour but l'intégration de factures de ventes dans la gestion commerciale.
J'utilise pour la création de la facture un "Process_document", une fois le document créé je souhaite y ajouter des infos libres.
J'arrive a ajouter des infos libres à l'entête de la facture, en revanche je n'arrive pas à affecter les infos libres pour les lignes de la facture.

La création du document fonctionne, ainsi que l'ajout d'infos libre en entête (qui se fait après la création du document).

Mon soucis n'est pas une erreur à l'ajout d'une info libre en ligne de document mais le fait que je ne trouve pas comment accéder à ces infos libres.
Malheureusement je n'ai pu trouver aucun exemple de modification d'infos libres de lignes de document, ni dans la documentation Objets Métiers, ni sur ce forum (ou alors je suis passé à coté et je m'en excuse), ni ailleurs sur internet.

Voici mon code qui crée le document puis y affecte une info libre à l'entête (info "Commentaires" => 'Test3')

Code: Tout sélectionner
 //Création d'un objet processus "Création de document"
                IPMDocument mProcessDoc = bCial.CreateProcess_Document(DocumentType.DocumentTypeVenteFacture);
 
                //Conversion du document du processus (IBODocument3) dans le type du document de destination : Facture de vente
                IBODocumentVente3 mDoc = (IBODocumentVente3)mProcessDoc.Document;
                IBODocumentVenteLigne3 mLigne = null;
 
                //Modification entete de document
                mDoc.Souche = bCial.FactorySoucheVente.ReadIntitule("Cession interne");
                mDoc.SetDefaultDO_Piece();
                string nPiece = mDoc.DO_Piece;
                mDoc.SetDefaultClient(bCial.CptaApplication.FactoryClient.ReadNumero("CARAT"));
               
               
 
                //IBODocumentVenteLigne3 mLigne = (IBODocumentVenteLigne3)mProcessDoc.AddArticle(bCial.FactoryArticle.ReadReference("CHORFA"), 5);
 
                mLigne = (IBODocumentVenteLigne3)mDoc.FactoryDocumentLigne.Create();
                mLigne.SetDefaultArticle(bCial.FactoryArticle.ReadReference("GRAVURE"), 2);
                mLigne.Remise.FromString("10%+25F");
                mLigne.DL_PrixUnitaire = 100.0;
                mLigne.Write();
               
                if(mProcessDoc.CanProcess)
                {
                    mProcessDoc.Process();
                    Console.WriteLine("Document initialisé !");
                } else
                {
                    Console.WriteLine("Echec initialisation document !");
                }
 
                IBODocumentVente3 dDoc = bCial.FactoryDocumentVente.ReadPiece(DocumentType.DocumentTypeVenteFacture, nPiece);
                dDoc.InfoLibre["Commentaires"] = "Test3";
                dDoc.Write();
                Console.WriteLine("Info libre entête créée");


J'espère avoir été le plus clair possible :)

Je vous remercie par avance.
Arnaud.
Posteur néophyte
Posteur néophyte
 
Messages: 2
Inscription: Lun 9 Mai 2016 11:15

Re: Infos libres en ligne de doc, Objets métiers

de arnaud_fr » Lun 9 Mai 2016 17:26

Mise à jour.

Je suis parvenu a accéder aux infos libres des lignes de document (en récupérant l'ObjectID de la ligne en question pour en faire un Read(monObjectID) après création du document).
Suite a quoi j'accède sans erreur (de syntaxe) à maLigne.InfoLibre["IntituléDeMonInffoLibre"].
J'essaie alors de lui affecter une valeur, de même type que le type de l'info libre (en l'occurence une chaine de caractère [string]), mais lorsque j'exécute j'ai un "Accès refusé" au moment de l'écriture de cette Info => maLigne.Write()

Les erreurs similaires que j'ai pu trouver étaient semble-t-il liées à un bug de la version 2.0 des Objets métiers (je suis en version 6.0)

Je me connecte bien à l'application en <Administrateur>, et le reste de mes traitements (création du document, ajout de lignes de documents, ajout d'info libre en entete de document) fonctionnent.

Une idée ?

Merci d'avance.
Arnaud.
Posteur néophyte
Posteur néophyte
 
Messages: 2
Inscription: Lun 9 Mai 2016 11:15

Re: Infos libres en ligne de doc, Objets métiers

de OLAN » Ven 13 Mai 2016 17:00

Bonjour,

Si vous essayez déjà de modifier la première ligne du document, sans passer par un read(oid), mais en passant par un pDoc.FactoryDocumentLigne.List(1) vous obtenez la même erreur ?
Si vous remplacez l'intitulé de l'information libre par son indice avec par exemple ligne.InfoLibre(1), vous obtenez aussi la même erreur ?
OLAN
Posteur habitué
Posteur habitué
 
Messages: 34
Inscription: Ven 21 Déc 2007 12:19


Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité