Anomalie lors de la création d'un tiers (de type client) via les Objets Métiers V6

SUGGESTED

Bonjour,

Je rencontre une anomalie lors de la création d'un client via les Objets Métiers V6, cependant je n'ai pas de détails sur l'origine de l'erreur, dans la documentation il ne semble pas y avoir d'indication des champs a renseigner obligatoirement dans les Objets Métiers, ci dessous quelques exemples:

13/01/2023 09:52[DEBUG] - Tiers en cours de création: MDLZ ZA
13/01/2023 09:52[DEBUG] - client.CT_NUM: MDLZZA
13/01/2023 09:52[DEBUG] - client.CT_Intitule: Mondelez South Africa (Proprietary) Limited
13/01/2023 09:52[DEBUG] - client.CT_Adresse: 6 Woodmead Estate
13/01/2023 09:52[DEBUG] - client.CT_Complement: 1 Woodmead Drive
13/01/2023 09:52[DEBUG] - client.CT_CodePostal: 2191
13/01/2023 09:52[DEBUG] - client.CT_Ville: SANDTON
13/01/2023 09:52[DEBUG] - Pays ISO: ZAF
13/01/2023 09:52[DEBUG] - client.CT_Pays: Afrique du Sud
13/01/2023 09:52[DEBUG] - Problème de l'importation du tiers MDLZ ZA Sage: L'instruction a été arrêtée.   at Objets100cLib.IBOClient3.Write()

Ou

13/01/2023 09:52[DEBUG] - Tiers en cours de création: STAR KAY
13/01/2023 09:52[DEBUG] - client.CT_NUM: STARKAY
13/01/2023 09:52[DEBUG] - client.CT_Intitule: STAR KAY WHITE
13/01/2023 09:52[DEBUG] - client.CT_Adresse: 100 Brenner Drive
13/01/2023 09:52[DEBUG] - client.CT_Complement: Congers
13/01/2023 09:52[DEBUG] - client.CT_CodePostal: 10920
13/01/2023 09:52[DEBUG] - client.CT_Ville: NY
13/01/2023 09:52[DEBUG] - Pays ISO: USA
13/01/2023 09:52[DEBUG] - client.CT_Pays: États-Unis
13/01/2023 09:52[DEBUG] - Problème de l'importation du tiers STAR KAY Sage: L'instruction a été arrêtée.   at Objets100cLib.IBOClient3.Write()

Sur certaines informations j'ai des caractères spéciaux qui pourraient expliques l'anomalie:

13/01/2023 09:52[DEBUG] - Tiers en cours de création: NESTLE IT
13/01/2023 09:52[DEBUG] - client.CT_NUM: NESTLEIT
13/01/2023 09:52[DEBUG] - client.CT_Intitule: Nestl� Italiana S.P.A
13/01/2023 09:52[DEBUG] - client.CT_Adresse: Viale S. Sisto, 207
13/01/2023 09:52[DEBUG] - client.CT_Complement: Stabilimento Perugina
13/01/2023 09:52[DEBUG] - client.CT_CodePostal: 06132
13/01/2023 09:52[DEBUG] - client.CT_Ville: ITALIA
13/01/2023 09:52[DEBUG] - Pays ISO: ITA
13/01/2023 09:52[DEBUG] - client.CT_Pays: Italie
13/01/2023 09:52[DEBUG] - Problème de l'importation du tiers NESTLE IT Sage: L'instruction a été arrêtée.   at Objets100cLib.IBOClient3.Write()

Ci dessous la portion de code incriminée, la ligne d'erreur remontée par le catch est celle ci: processClient.WriteDefault(); j'ai tenté une version avec processClient.Write(); mais le problème reste le même

                        try
                        {
                            IBOTiers3 om_Tiers = null;
                            if (!oCpta.FactoryTiers.ExistNumero(client.CT_Num)) 
                            {
                                _logger.InputLog("Tiers en cours de création: " + client.CT_Num, 2);
                                _logger.InputLog("client.CT_NUM: " + client.CT_Num.Replace(" ", ""), 2);
                                _logger.InputLog("client.CT_Intitule: " + client.CT_Intitule, 2);
                                _logger.InputLog("client.CT_Adresse: " + client.CT_Adresse, 2);
                                _logger.InputLog("client.CT_Complement: " + client.CT_Complement, 2);
                                _logger.InputLog("client.CT_CodePostal: " + client.CT_CodePostal, 2);
                                _logger.InputLog("client.CT_Ville: " + client.CT_Ville, 2);
                                _logger.InputLog("Pays ISO: " + client.CT_Pays, 2);
                                String NomPays = countryCodesMapping[client.CT_Pays];
                                _logger.InputLog("client.CT_Pays: " + NomPays, 2);
                                IBOClient3 processClient = (IBOClient3)oCpta.FactoryClient.Create();

                                //processClient.SetDefault();
                                if (!string.IsNullOrEmpty(client.CT_Num))
                                {
                                    if (client.CT_Num.Length > 17) 
                                    { 
                                        //CT_NUM
                                        processClient.CT_Num = client.CT_Num.Substring(0, 17).Replace(" ","");
                                        //CT_CLASSEMENT
                                        processClient.CT_Classement = client.CT_Num.Substring(0, 17);
                                    } 
                                    else 
                                    {
                                        //CT_NUM
                                        processClient.CT_Num = client.CT_Num.Replace(" ", "");
                                        //CT_CLASSEMENT
                                        processClient.CT_Classement = client.CT_Num;
                                    }
                                }
                                //CT_INTITULE
                                if (!string.IsNullOrEmpty(client.CT_Intitule))
                                {
                                    if (client.CT_Intitule.Length > 69) { processClient.CT_Intitule = client.CT_Intitule.Substring(0, 69); } else { processClient.CT_Intitule = client.CT_Intitule.Replace(".", ""); }
                                }
                                //CT_ADRESSE
                                if (!string.IsNullOrEmpty(client.CT_Adresse))
                                {
                                    if (client.CT_Adresse.Length > 35) { processClient.Adresse.Adresse = client.CT_Adresse.Substring(0, 35); } else { processClient.Adresse.Adresse = client.CT_Adresse; }
                                }
                                //CT_COMPLEMENT
                                if (!string.IsNullOrEmpty(client.CT_Complement)) 
                                {
                                    if (client.CT_Complement.Length > 35) { processClient.Adresse.Complement = client.CT_Complement.Substring(0, 35); } else { processClient.Adresse.Complement = client.CT_Complement; }
                                }
                                //CT_COMPLEMENT
                                if (!string.IsNullOrEmpty(client.CT_CodePostal))
                                {
                                    if (client.CT_CodePostal.Length > 9) { processClient.Adresse.CodePostal = client.CT_CodePostal.Substring(0, 9); } else { processClient.Adresse.CodePostal = client.CT_CodePostal; }
                                }
                                //CT_VILLE
                                if (!string.IsNullOrEmpty(client.CT_Ville))
                                {
                                    if (client.CT_Ville.Length > 35) { processClient.Adresse.Ville = client.CT_Ville.Substring(0, 35).Trim(); } else { processClient.Adresse.Ville = client.CT_Ville.Trim(); }
                                }
                                //CT_VILLE
                                if (!string.IsNullOrEmpty(client.CT_Pays))
                                {                                    
                                    if (NomPays.Length > 35) { processClient.Adresse.Pays = NomPays.Substring(0, 35); } else { processClient.Adresse.Pays = NomPays; }
                                }
                                //CompteGPrinc
                                IBOCompteG3 NouveauComtpeG = (IBOCompteG3)oCpta.FactoryCompteG.ReadNumero("411000");
                                processClient.CompteGPrinc = NouveauComtpeG; 
                                processClient.WriteDefault();
                                processClient.InfoLibre["N_APPRODIX"] = client.CT_Num;
                                processClient.Write();
                                err = false;
                            } 
                            else 
                            {
                                _logger.InputLog("Le tiers: " + client.CT_Num +" existe déjà, il ne sera pas importé", 2);
                                err = true;
                            }
                        }
                        catch (Exception e)
                        {
                            _logger.InputLog("Problème de l'importation du tiers " + client.CT_Num + " Sage: " + e.Message + e.StackTrace + e.Source, 2);
                            err = true;
                        }

J'ai le même type de code sur une version 7 des Objets Métiers sans rencontrer ce problème

Est ce que quelqu'un aurait rencontré le même problème ?

Merci d'avance

Bonne journée

  • 0
    SUGGESTED

    Bonjour M. TUIS,

    Lors de la création d'un nouvel objet par les Objets Métiers, il est recommandé d'utiliser la méthode SetDefault() pour initialiser les champs de l'objet avec les valeurs par défaut, avant d'appeler la méthode WriteDefault().

    Par ailleurs, les champs obligatoires sont détaillés dans le manuel décrivant la structure des bases Sage 100. Ainsi, pour la création de clients et de tiers en général, vous pouvez consulter le descriptif de la table F_COMPTET, pages 66-68 :

    https://fr-kb.sage.com/portal/app/portlets/results/viewsolution.jsp?solutionid=230113095648937

    Par ailleurs, nous animons régulièrement des formations sur le développement Objets Métiers. Vous trouverez sur Sage University les dates des prochaines sessions :

    sageu.csod.com/.../d4b24b5b-6360-46a4-b287-59a3f48174b1

    Cordialement,

    Thierry JOUVE

  • 0

    Bonjour,

    J'ai justement suivi cette formation avec vous il y a quelques temps, et ai déjà essayé l'option d'utiliser la méthode SetDefault() avant de vous contacter, malheureusement le problème est le même.

    Pour ce qui est des champs complémentaires la documentation spécifie bien les alimenter dans le cas d'un SetDefault():
    Champs à renseigner obligatoirement lors de l’ajout
    CT_Num

    CT_Intitule

    CT_Type

    CG_NumPrinc

    CT_NumPayeur

    N_Risque

    N_CatTarif

    N_CatCompta

    N_Period

    N_Expedition

    N_Condition

    Valeurs par défaut renseignées par l’application Sage 100 Comptabilité en insertion
    CT_Num : A Saisir

    CT_Intitule : A Saisir

    CG_NumPrinc : A Saisir

    CT_Type = 0 (Client)

    CT_Classement = CT_Num

    CT_DateCreate = Date Système

    CT_Saut = 1

    N_Risque = 1

    CT_Facture = 1

    CT_NumPayeur = CT_Num
    N_CatTarif = 1

    CT_Taux01 à CT_Taux04 = 0

    N_CatCompta = 1

    N_Period = 1

    CT_Facture = 1

    CT_BLFact = 0

    CT_EdiCode = ’’

    N_Expedition = 1

    N_Condition = 1

    J'ai tenté ce jour de remplir les information complémentaires, certaines d'entre elles ne sont pas accessibles avec la connexion à la comptabilité:

    - N_Condition

    -N_Expedition

    - N_Period

    - N_CatCompta

    - N_CatTarif

    Je vois peut être un solution:
    Créer un tiers avec IBOTiers3 puis le transformer en client à l'aide de TiersType sans passer par un construction au travers de IBOClient3, je dois la tester demain

  • 0 in reply to Guillaume Tuis
    SUGGESTED

    Bonjour,

    En passant par ((IBOTiers3)oCpta.FactoryTiersAutre.Create();) je parviens bien a créer une majorité de tiers mais il y a un problème non identifiable pour certains d'entre eux:

    24/01/2023 16:56[DEBUG] - Tiers en cours de création: NESTLE IT
    24/01/2023 16:56[DEBUG] - client.CT_NUM: NESTLEIT
    24/01/2023 16:56[DEBUG] - client.CT_Intitule: Nestl� Italiana S.P.A
    24/01/2023 16:56[DEBUG] - client.CT_Adresse: Viale S. Sisto, 207
    24/01/2023 16:56[DEBUG] - client.CT_Complement: Stabilimento Perugina
    24/01/2023 16:56[DEBUG] - client.CT_CodePostal: 06132
    24/01/2023 16:56[DEBUG] - client.CT_Ville: ITALIA
    24/01/2023 16:56[DEBUG] - Pays ISO: ITA
    24/01/2023 16:56[DEBUG] - client.CT_Pays: Italie
    24/01/2023 16:56[DEBUG] - Problème de l'importation du tiers NESTLE IT Sage: L'instruction a été arrêtée.   at Objets100cLib.IBOTiers3.WriteDefault()
       at DUMOULIN_Import_Export_Sage.Controler.ImportTiers.ImportSageTiers(FileInfo f) in C:\Users\g.tuis\source\repos\DUMOULIN_Import-Export-Sage\DUMOULIN_Import-Export-Sage\Controler\ImportTiers.cs:line 449
    24/01/2023 16:56[DEBUG] - Tiers en cours de création: MDLZ ZA
    24/01/2023 16:56[DEBUG] - client.CT_NUM: MDLZZA
    24/01/2023 16:56[DEBUG] - client.CT_Intitule: Mondelez South Africa (Proprietary) Limited
    24/01/2023 16:56[DEBUG] - client.CT_Adresse: 6 Woodmead Estate
    24/01/2023 16:56[DEBUG] - client.CT_Complement: 1 Woodmead Drive
    24/01/2023 16:56[DEBUG] - client.CT_CodePostal: 2191
    24/01/2023 16:56[DEBUG] - client.CT_Ville: SANDTON
    24/01/2023 16:56[DEBUG] - Pays ISO: ZAF
    24/01/2023 16:56[DEBUG] - client.CT_Pays: Afrique du Sud
    24/01/2023 16:56[DEBUG] - Problème de l'importation du tiers MDLZ ZA Sage: L'instruction a été arrêtée.   at Objets100cLib.IBOTiers3.WriteDefault()
       at DUMOULIN_Import_Export_Sage.Controler.ImportTiers.ImportSageTiers(FileInfo f) in C:\Users\g.tuis\source\repos\DUMOULIN_Import-Export-Sage\DUMOULIN_Import-Export-Sage\Controler\ImportTiers.cs:line 449
    24/01/2023 16:56[DEBUG] - Tiers en cours de création: STAR KAY
    24/01/2023 16:56[DEBUG] - client.CT_NUM: STARKAY
    24/01/2023 16:56[DEBUG] - client.CT_Intitule: STAR KAY WHITE
    24/01/2023 16:56[DEBUG] - client.CT_Adresse: 100 Brenner Drive
    24/01/2023 16:56[DEBUG] - client.CT_Complement: Congers
    24/01/2023 16:56[DEBUG] - client.CT_CodePostal: 10920
    24/01/2023 16:56[DEBUG] - client.CT_Ville: NY
    24/01/2023 16:56[DEBUG] - Pays ISO: USA
    24/01/2023 16:56[DEBUG] - client.CT_Pays: États-Unis
    24/01/2023 16:56[DEBUG] - Problème de l'importation du tiers STAR KAY Sage: L'instruction a été arrêtée.   at Objets100cLib.IBOTiers3.WriteDefault()

    A priori ça ne viendrait pas des caractères spéciaux, ci dessous une liste de tiers créés effectivement dans Sage:

    24/01/2023 16:56[DEBUG] - Tiers en cours de création: HATZIYIANK
    24/01/2023 16:56[DEBUG] - client.CT_NUM: HATZIYIANK
    24/01/2023 16:56[DEBUG] - client.CT_Intitule: Drag�es Hatziyiannakis SA
    24/01/2023 16:56[DEBUG] - client.CT_Adresse: 55-59th Thivon Ave
    24/01/2023 16:56[DEBUG] - client.CT_Complement:
    24/01/2023 16:56[DEBUG] - client.CT_CodePostal: 18542
    24/01/2023 16:56[DEBUG] - client.CT_Ville: PIREAS CITY
    24/01/2023 16:56[DEBUG] - Pays ISO: GRC
    24/01/2023 16:56[DEBUG] - client.CT_Pays: Grèce
    24/01/2023 16:56[DEBUG] - Tiers en cours de création: VALLIBEL
    24/01/2023 16:56[DEBUG] - client.CT_NUM: VALLIBEL
    24/01/2023 16:56[DEBUG] - client.CT_Intitule: Vallibel one
    24/01/2023 16:56[DEBUG] - client.CT_Adresse: 29th floor, West wing
    24/01/2023 16:56[DEBUG] - client.CT_Complement: World Trade Centre
    24/01/2023 16:56[DEBUG] - client.CT_CodePostal: 01
    24/01/2023 16:56[DEBUG] - client.CT_Ville: COLOMBO
    24/01/2023 16:56[DEBUG] - Pays ISO: SRI
    24/01/2023 16:56[DEBUG] - client.CT_Pays: Sri Lanka

    En regardant la liste des tiers dont le numéro contient NESTLE, j'ai bien mon compte remonté en erreur qui apparait (dans la base il apparait bien comme étant créé par les Objets Métiers)

    Il s'agirait donc d'un faux positif...

  • Bonjour Guillaume Tuis,

    Merci d'utiliser la communauté Sage City pour vos questions.

    Faites-nous savoir si les réponses données ci dessous vous ont été utiles en les marquant comme vérifiée . Pour cela, cliquez sur plus au niveau de la réponse. 

    Merci d’aidez les autres à profiter de la solution apportée  !

    Anthony