Radomił Ząbik 353 Napisano 2 Września Udostępnij Napisano 2 Września w [Sfera] Błąd dostępności na magazynie, mało precyzyjny Wystawiam DS na podstawie pozycji ZK. Czasem się zdarza, że nie ma czegoś na magazynie i wtedy oczywiście dostaję błąd: Błąd podczas dodawania DS: Nie można wykonać danego ruchu magazynowego: Niewystarczająca ilość towaru na magazynie do zadysponowania pozycji. Zadysponowano 1 szt. na polach: PozycjaDokumentu.Ilosc Dokument nie może wykonywać skutku magazynowego dla innej ilości, niż ilość na pozycji na polach: PozycjaDokumentu.Wydanie Czy można jakoś sprawić, aby błąd był bardziej precyzyjny? Czy pozostaje jedynie przejrzenie pozycji, jedna po drugiej i znalezienie, której brakuje. Link to postu
Wojciech Szopiński 332 Napisano 2 Września Udostępnij Napisano 2 Września w [Sfera] Błąd dostępności na magazynie, mało precyzyjny (edytowane) W jaki sposób pobiera Pan treść błędów? Większość błędów jest podpięta do encji (w tym przypadku do encji pozycji dokumentu), której błąd dotyczy. W dokumentacji SDK w sekcji "Walidacja, błędy i ostrzeżenia" jest opisane przeglądanie informacji o błędach i tam w kodzie funkcji "WypiszBledy" zmienna "encjaZBledami" jest właśnie encją, której dotyczy błąd. Dodatkowo stosunkowo niedawno została dodana wbudowana funkcja PobierzKomunikatyBledow, którą można wywołać na dowolnym obiekcie biznesowym, która zwraca komunikaty walidacji w formie ustrukturyzowanej i pozwala ona również na pobranie informacji o encji, której dotyczy błąd. W przypadku błędów ruchu magazynowego jest również dostępny interfejs IBraki, który również w ustrukturyzowanej formie pozwala na przejrzenie informacji o pozycjach, dla których nie udało się wykonać ruchu magazynowego. Można się do niego dostać poprzez własność Braki od strony każdego obiektu biznesowego dokumentu, który wykonuje ruch magazynowy (np. IDokumentSprzedazy.Braki). Edytowane 2 Września przez Wojciech Szopiński Link to postu
Radomił Ząbik 353 Napisano 2 Września Autor Udostępnij Napisano 2 Września w [Sfera] Błąd dostępności na magazynie, mało precyzyjny To starszy program i korzystam w nim zapewne z starych implementacji WypiszBledy. Porównam z nowymi i zobaczę co ofertują dodatkowe interfejsy, dziękuje. public static class Rozszerzenia { internal static void WypiszBledy(this InsERT.Mox.ObiektyBiznesowe.IObiektBiznesowy obiektBiznesowy) { Console.ForegroundColor = ConsoleColor.DarkRed; WypiszBledy((InsERT.Mox.BusinessObjects.IBusinessObject)obiektBiznesowy); var uow = ((InsERT.Mox.BusinessObjects.IGetUnitOfWork)obiektBiznesowy).UnitOfWork; foreach (var innyObiektBiznesowy in uow.Participants.OfType<InsERT.Mox.BusinessObjects.IBusinessObject>().Where(bo => bo != obiektBiznesowy)) { WypiszBledy(innyObiektBiznesowy); } } internal static void WypiszBledy(this InsERT.Mox.BusinessObjects.IBusinessObject obiektBiznesowy) { Console.ForegroundColor = ConsoleColor.DarkRed; foreach (var encjaZBledami in obiektBiznesowy.InvalidData) { foreach (var bladNaCalejEncji in encjaZBledami.Errors) Globals.errors = Globals.errors + bladNaCalejEncji + " na encjach: " + encjaZBledami.GetType().Name + "\n"; foreach (var bladNaKonkretnychPolach in encjaZBledami.MemberErrors) Globals.errors = Globals.errors + bladNaKonkretnychPolach.Key + " na polach: " + string.Join(", ", bladNaKonkretnychPolach.Select(b => encjaZBledami.GetType().Name + "." + b)) + "\n"; } } } Link to postu
Radomił Ząbik 353 Napisano 3 Września Autor Udostępnij Napisano 3 Września w [Sfera] Błąd dostępności na magazynie, mało precyzyjny Ok, Braki przetestuję na pewno pomogą A mówiąc, stosunkowo niedawno o PobierzKomunikatyBledow, to widzę, że jest od 56 i wygląda to dobrze, zapewne się przerzucę na nią, modyfikując programy do wersji 57 Link to postu
Polecane posty