Objet metier L'instruction a été arrêtée

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

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

Objet metier L'instruction a été arrêtée

de viking82 » Mar 11 Mar 2014 18:57

Bonjour,

En C# j'ai : "L'instruction a été arrêtée." lorsque je veux écrire dans la table des ressources
vous avez ci-dessous le code utilisé les données on été préalable mémorisées dans un DataTable
Version sage i7.70 sql serveur 2008r2 Windows 7 32 bits le programme est compilé en 32 bits
Code: Tout sélectionner

private BSCIALApplication3 baseGescom = new BSCIALApplication3();

baseGescom.Name = Program.maconfig.FicGCM;
            baseGescom.Loggable.UserName = Program.maconfig.Utilisateur;
            baseGescom.Loggable.UserPwd = Program.maconfig.Motdepass;
            try
            {
                baseGescom.Open();
            }
            catch (Exception ex)
            {

                MessageBox.Show("Ouverture base gescom " + ex.ToString());
                throw new Exception(ex.ToString());
            }
            IBORessource ressource = null;
            // Ecriture ressource
            foreach (DataRow ligneExcel in TableExcel.Rows)
            {
                ressource = (IBORessource)baseGescom.FactoryRessource.Create();
                ressource.SetDefault();
           
                ressource.RP_Code = ligneExcel["colb"].ToString().Trim();               
                ressource.RP_Intitule = ligneExcel["colc"].ToString();
               
                string typress = ligneExcel["colp"].ToString().Trim();
                switch (typress)
                {
                    case "PERSONNEL":
                        ressource.RP_Type = Objets100Lib.RessourceProdType.RessourceProdTypeHomme;
                        break;
                    case "MACHINE":
                        ressource.RP_Type = Objets100Lib.RessourceProdType.RessourceProdTypeMachine;
                        break;

                    default:
                        ressource.RP_Type = Objets100Lib.RessourceProdType.RessourceProdTypeOutil;
                        break;
                }
                             
                ressource.RP_Complement = (ligneExcel["cole"].ToString() == "0" ? "" : string.Concat("", ligneExcel["cole"].ToString()));
                ressource.Adresse.Adresse = (ligneExcel["colf"].ToString().Trim() == "0" ? "" : string.Concat("", ligneExcel["colf"].ToString().Trim()));
                ressource.Adresse.Complement = (ligneExcel["colg"].ToString().Trim() == "0" ? "" : string.Concat("", ligneExcel["colg"].ToString().Trim()));
                ressource.Adresse.CodePostal = (ligneExcel["colh"].ToString().Trim() == "0" ? "" : string.Concat("", ligneExcel["colh"].ToString().Trim()));
                ressource.Adresse.Ville = (ligneExcel["coli"].ToString().Trim() == "0" ? "" : string.Concat("", ligneExcel["coli"].ToString().Trim()));
                ressource.Adresse.Pays = (ligneExcel["colj"].ToString().Trim() == "0" ? "" : string.Concat("", ligneExcel["colj"].ToString().Trim()));
                ressource.Telecom.Telephone = (ligneExcel["colk"].ToString().Trim() == "0" ? "" : string.Concat("", ligneExcel["colk"].ToString().Trim()));
                ressource.Telecom.Telecopie = (ligneExcel["coll"].ToString().Trim() == "0" ? "" : string.Concat("", ligneExcel["coll"].ToString().Trim()));
                ressource.Telecom.Portable = (ligneExcel["colm"].ToString().Trim() == "0" ? "" : string.Concat("", ligneExcel["colm"].ToString().Trim()));
                ressource.Telecom.EMail = (ligneExcel["colu"].ToString().Trim()== "0" ? "" : string.Concat("",ligneExcel["colu"].ToString().Trim()));
                ressource.RP_Capacite = 0;
                try
                {                 
                        ressource.Write();                  //<----- se met en erreur!
                }
                catch (Exception ex)
                {
                    MessageBox.Show("enregistrement ressourceprod\n" + ex.ToString());
                    throw new Exception(ex.ToString());
                }


Question, ou est l'erreur?

Merci :?
Posteur néophyte
Posteur néophyte
 
Messages: 2
Inscription: Lun 7 Jan 2013 14:51

Re: Objet metier L'instruction a été arrêtée

de asr31 » Mer 19 Mar 2014 23:47

Bonjour,


C'est à quel niveau, le Pb ? dans l'ouverture ou sur le write ?

Une idée, comme ça : Il y a bien un password pour ce compte de connexion ?, car si non, il faut soit ne pas préciser la valeur baseGescom.Loggable.UserPwd, soit lui passer la valeur null.

Et puis, ton try catch devrait te donner un peu plus d'information sur la nature de l'erreur, non?
Pour ma part, je rajouterai une p'tite gestion d'erreur sur la gestion de ton "typress"

Cordialement,
ASR31

En recherche de missions.
Avatar de l’utilisateur
Super Contributeur
Super Contributeur
 
Messages: 2975
Inscription: Mer 13 Fév 2008 15:31
Localisation: TOULOUSE

Re: Objet metier L'instruction a été arrêtée

de julien00001 » Lun 23 Fév 2015 12:46

Bonjour,

Je rencontre exactement le même problème et j'avoue sécher un peu, je suis dans la même config, même langage et même cas que le premier post.
J'arrive à faire ce que je veux avec les articles où les fournisseurs par exemple.
Cependant je remarque que la table F_RESSOURCEPROD est en lecture seule contrairement à ces dernières et pourtant, dans la gescom un simple structure > nouvelle ressource me permet d'en créer facilement.
Je pense avoir tenu compte des champs obligatoire, j'ai du moins renseigné tous les champs qui l'étaient dans le formulaire de création de la gescom.
Malheureusement, tous mes essais se concluent par un "L'instruction a été arrêtée.".

Voici un extrait de mon code pour l'insert. A noter que l'update et le delete fonctionnent correctement.

Cordialement, Julien.

EDIT : L'erreur est sur le writeDefault();

Code: Tout sélectionner
            var titi = gs.BaseCial.FactoryRessource.Create();
            var ress = (IBORessource)titi;
            ress.SetDefault();
            ress.RP_Code = "JUL01";
            ress.RP_Intitule = "poc Julien";
            ress.RP_Type = (RessourceProdType)2;
            ress.Depot = gs.BaseCial.FactoryDepot.ReadIntitule("Bijou SA");
            ress.ArticleDefault = gs.BaseCial.FactoryArticle.ReadReference("JUL01");
            ress.RP_Capacite = 1;
            ress.Unite = gs.BaseCial.FactoryUnite.ReadIntitule("Pièce");
            ress.RP_Sommeil = false;
            ress.WriteDefault();
Posteur néophyte
Posteur néophyte
 
Messages: 1
Inscription: Lun 23 Fév 2015 12:35


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