Bonjour,
Je développe un outil pour créer des Bon Livraisons Vente avec les objets métiers en C#, par contre, il marche que avec les articles non-sérialisés, quand j'ajoute un article sérialisé il me donne l'erreur:
Error code: -3005
Indice: 2
Description: Access is denied.
Le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 public string CreateBLVente(string DO_Tiers, List<DocLigneDataModel> docLignesDocAcahat) { StringBuilder log = new StringBuilder(); Console.WriteLine("Open connection w/ Sage"); if (conn.OpenBaseCompta() && conn.OpenBaseGesCom()) { try { Console.WriteLine("Creating doc"); // Création d'un objet processus "Création de document IPMDocument processDoc = conn.BaseGesCom.CreateProcess_Document(DocumentType.DocumentTypeVenteLivraison); // Conversion du document du processus (IBODocument3) dans le type du document de destination : Facture de vente (IBODocumentVente3) IBODocumentVente3 doc = (IBODocumentVente3)processDoc.Document; // Affectation du cliente au document //doc.SetDefaultClient(conn.BaseCompta.FactoryClient.ReadNumero(docEntete.DO_Tiers)); Console.WriteLine($"Adding Client: {DO_Tiers}"); doc.SetDefaultClient(conn.BaseGesCom.CptaApplication.FactoryClient.ReadNumero(DO_Tiers)); Console.WriteLine("DocEntete Create"); // Ajoute les lignes d'articles foreach (var docLigne in docLignesDocAcahat) { // Ligne du nouveau document vente IBODocumentLigne3 omDocLigneVente = processDoc.AddArticle(conn.BaseGesCom.FactoryArticle.ReadReference(docLigne.AR_Ref), double.Parse(docLigne.DL_Qte.ToString())); omDocLigneVente.DO_Ref = docLigne.DO_Ref; if (docLigne.AR_SuiviStock == 1) { omDocLigneVente.LS_NoSerie = new FactureData().GetLsNoSerie(docLigne.DL_No); } } Console.WriteLine("DocLignesAdded"); // Si le document est cohérent et peut être écrit en base if (processDoc.CanProcess) { log.Append($"Doc Processed {doc.DO_Piece}"); // Génération de document dans la base processDoc.Process(); } else { Console.WriteLine("\nDocument cannot be processed"); Console.WriteLine("================================================================"); // Récuperation des erreurs for (int i = 1; i == processDoc.Errors.Count; i++) { IFailInfo iFail = processDoc.Errors[i]; Console.WriteLine($"Error code: {iFail.ErrorCode} \nIndice: {iFail.Indice} \nDescription: {iFail.Text}\n"); } } } catch (Exception ex) { log.Append($"Error: {ex.Message}\nStackTrace: {ex.StackTrace}"); Console.WriteLine($"Error: {ex.Message}\nStackTrace:\n{ex.StackTrace}"); } finally { // Fermeture de connexion conn.CloseBaseGesCom(); conn.CloseBaseCompta(); } } else { Console.WriteLine("\nClosing connection"); log.Append("Failed to open connection"); Console.WriteLine("Failed to open connection"); } return log.ToString(); }
Partager