Radomił Ząbik 308 Napisano 16 Września 2019 Udostępnij Napisano 16 Września 2019 w [Sfera] Problem z generowanie wydruku wniosku urlopowego, od wersji 26.2.0 Od wersji 26.2.0 mamy problem z generowaniem wydruku wniosku urlopowego, za pomocą Sfery. Błąd: Cytat Microsoft.Practices.Unity.ResolutionFailedException: Resolution of the dependency failed, type = "InsERT.Moria.Wydruki.RTF.IFabrykaRTFPrintInfo", name = "(none)". Exception occurred while: while resolving. Exception is: InvalidOperationException - The current type, InsERT.Mox.UIFramework.IProductAffinityManager, is an interface and cannot be constructed. Are you missing a type mapping? ----------------------------------------------- At the time of the exception, the container was: Resolving InsERT.Moria.Wydruki.RTF.FabrykaRTFPrintInfo,(none) (mapped from InsERT.Moria.Wydruki.RTF.IFabrykaRTFPrintInfo, (none)) Resolving parameter "productAffinityManager" of constructor InsERT.Moria.Wydruki.RTF.FabrykaRTFPrintInfo(System.Func`1[[InsERT.Moria.Wydruki.RTF.IEwaluatorWydrukuRTF, InsERT.Moria.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8f3ef93a6b458098]] ewaluatorPodstawowyGr, System.Func`1[[InsERT.Moria.Wydruki.RTF.IEwaluatorWydrukuRTF, InsERT.Moria.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8f3ef93a6b458098]] ewaluatorPracownikGr, System.Func`1[[InsERT.Moria.Wydruki.RTF.IEwaluatorWydrukuRTF, InsERT.Moria.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8f3ef93a6b458098]] ewaluatorUmowaPracowniczaGr, System.Func`1[[InsERT.Moria.Wydruki.RTF.IEwaluatorWydrukuRTF, InsERT.Moria.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8f3ef93a6b458098]] ewaluatorRachunekGr, System.Func`1[[InsERT.Moria.Wydruki.RTF.IEwaluatorWydrukuRTF, InsERT.Moria.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8f3ef93a6b458098]] ewaluatorAbsencja, System.Func`1[[InsERT.Moria.Wydruki.RTF.IEwaluatorWydrukuRTF, InsERT.Moria.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8f3ef93a6b458098]] ewaluatorZgodaNaPrzetwarzanieDanych, System.Func`1[[InsERT.Moria.Wydruki.RTF.IEwaluatorWydrukuRTF, InsERT.Moria.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8f3ef93a6b458098]] ewaluatorWyliczoneSprawozdanieFinansowe, System.Func`1[[InsERT.Moria.Wydruki.RTF.IEwaluatorWydrukuRTF, InsERT.Moria.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8f3ef93a6b458098]] ewaluatorPracownikMGr, System.Func`1[[InsERT.Moria.ModelDanych.IPracownikGrRepository, InsERT.Moria.ModelDanych, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7e1aa7558fba1cf1]] pracownikGrRepository, System.Func`1[[InsERT.Moria.ModelDanych.IUmowaPracowniczaGrRepository, InsERT.Moria.ModelDanych, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7e1aa7558fba1cf1]] umowaPracowniczaGrRepository, System.Func`1[[InsERT.Moria.ModelDanych.IRachunekDoUmowyPracowniczejGrRepository, InsERT.Moria.ModelDanych, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7e1aa7558fba1cf1]] rachunekGrRepository, System.Func`1[[InsERT.Moria.ModelDanych.IZapisWECPRepository, InsERT.Moria.ModelDanych, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7e1aa7558fba1cf1]] zapisWECPRepository, System.Func`1[[InsERT.Moria.ModelDanych.IWyliczoneSprawozdanieFinansowe2Repository, InsERT.Moria.ModelDanych, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7e1aa7558fba1cf1]] wyliczoneSprawozdanieFinansoweRepository, System.Func`1[[InsERT.Moria.ModelDanych.IPodmiotRepository, InsERT.Moria.ModelDanych, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7e1aa7558fba1cf1]] podmiotRepository, System.Func`1[[InsERT.Moria.ModelDanych.ICelPrzetwarzaniaRepository, InsERT.Moria.ModelDanych, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7e1aa7558fba1cf1]] celPrzetwarzaniaRepository, System.Func`1[[InsERT.Moria.ModelDanych.IPracownikRepository, InsERT.Moria.ModelDanych, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7e1aa7558fba1cf1]] pracownikRepository, InsERT.Mox.UIFramework.IProductAffinityManager productAffinityManager, InsERT.Mox.Product.IProductContext productContext) Resolving InsERT.Mox.UIFramework.IProductAffinityManager,(none) ---> System.InvalidOperationException: The current type, InsERT.Mox.UIFramework.IProductAffinityManager, is an interface and cannot be constructed. Are you missing a type mapping? w Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.ThrowForAttemptingToConstructInterface(IBuilderContext context) w InsERT.Mox.Runtime.Unity.ReflectionBuildPlanPolicy.BuildUp(IBuilderContext context) w Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext context) w Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext context) w Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(NamedTypeBuildKey newBuildKey) w Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(IBuilderContext context) w InsERT.Mox.Runtime.Unity.ReflectionBuildPlanPolicy.DoConstructorInjection(IBuilderContext context) w InsERT.Mox.Runtime.Unity.ReflectionBuildPlanPolicy.BuildUp(IBuilderContext context) w Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext context) w Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext context) w Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, Object existing, String name, IEnumerable`1 resolverOverrides) --- Koniec śladu stosu wyjątków wewnętrznych --- w Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, Object existing, String name, IEnumerable`1 resolverOverrides) w Microsoft.Practices.Unity.UnityContainer.Resolve(Type t, String name, ResolverOverride[] resolverOverrides) w Microsoft.Practices.Unity.UnityContainerExtensions.Resolve[T](IUnityContainer container, ResolverOverride[] overrides) w InsERT.Mox.Runtime.Unity.UnityAdapter.GetObject[T]() w InsERT.Moria.Sfera.Uchwyt.PodajObiektTypu[Typ]() w SynchronousSocketListener.StartListening() Kod wykonujący wydruk: int id; id = results.id; IZapisyWECP zapisyWECP = sfera.PodajObiektTypu<IZapisyWECP>(); var zapisWECP = zapisyWECP.Dane.Wszystkie().Where(a => a.Id == id).FirstOrDefault(); // wybranie absencji if(zapisWECP == null) { Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - Wskazany do wydruku urlop nie istnieje!"); response = "{ \"error\":\"Dokument nie istnieje!\" }"; } else { Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - Eksportowanie wniosku urlopowego: "+zapisWECP.Pracownik.Osoba.Imie+" "+zapisWECP.Pracownik.Osoba.Nazwisko); var tresciDokumentow = sfera.PodajObiektTypu<ITresciWydrukuRTF>(); // Pobranie managera treści dokumentów RTF var trescRTF = tresciDokumentow.Dane.Wszystkie().Where(t => t.Id == 100010).Single(); // Stworzenie obiektu do wydruku var fabrykaRTF = sfera.PodajObiektTypu<IFabrykaRTFPrintInfo>(); var rtfPrintInfo = fabrykaRTF.Stworz(typTresciWydrukuRTF: TypTresciWydrukuRTF.DokumentyUrlopowe,zrodloWiedzy: zapisWECP); IWydruki manager = sfera.PodajObiektTypu<IWydruki>(); //pobranie managera drukowania using (IWydruk wydruk = manager.Utworz(TypWzorcaWydruku.WydrukRTF)) { wydruk.ObiektDoWydruku = rtfPrintInfo; // wskazanie obiektu do wydruku var tresc = trescRTF.Zawartosc; if(results.date!=null) { string dateString = results.date; tresc = trescRTF.Zawartosc.Replace("<<parametr datowy(Data wydruku)>>",dateString); } // wskazanie ścieżki eksportu string filename; filename = "urlop" +results.id; wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika = filename; wydruk.ParametryDrukowania.SciezkaEksportu = @"N:\"; wydruk.ParametryDrukowania.ZastapPliki = true; // ewaluacja autotekstów var parametryRTF = wydruk.ParametryDrukowania as IWydrukParametryRTF; if(parametryRTF != null && rtfPrintInfo.EwalutorAutotekstow != null) parametryRTF.TrescWydruku = rtfPrintInfo.EwalutorAutotekstow.WypelnijAutoteksty(tresc, rtfPrintInfo.ZrodloWiedzy); wydruk.Eksport(); // eksport Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - Wydrukowano wniosek: " +wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika+".pdf"); response = "{ \"filename\":\""+filename+"\", \"id\":\""+zapisWECP.Id+"\" }"; } } Link to postu
Łukasz Gniazdowski 37 Napisano 17 Września 2019 Udostępnij Napisano 17 Września 2019 w [Sfera] Problem z generowanie wydruku wniosku urlopowego, od wersji 26.2.0 Niestety, w wersji 26.2 wkradł się błąd. Pracujemy już nad poprawką i postaramy się ją zmieścić do najbliższego HF-a, który powinien pojawić się w najbliższych dniach. 1 Link to postu
Radomił Ząbik 308 Napisano 18 Września 2019 Autor Udostępnij Napisano 18 Września 2019 w [Sfera] Problem z generowanie wydruku wniosku urlopowego, od wersji 26.2.0 Udało się do 26.2.1, bo nie widzę jednoznacznie na liście Chyba, że to to ostatnie. Link to postu
Łukasz Gniazdowski 37 Napisano 19 Września 2019 Udostępnij Napisano 19 Września 2019 w [Sfera] Problem z generowanie wydruku wniosku urlopowego, od wersji 26.2.0 Na liście zmian zabrakło tej informacji, ale poprawa tego błędu zmieściła się do 26.2.1 1 Link to postu
Radomił Ząbik 308 Napisano 16 Lutego 2022 Autor Udostępnij Napisano 16 Lutego 2022 w [Sfera] Problem z generowanie wydruku wniosku urlopowego, od wersji 26.2.0 Wrzucam dla potomnych zaktualizowaną wersję kodu - ta z tego wątku, opiera się o API.Private, a od jej powstania w 2017 roku, wiele się zmieniło. int id; id = results.id; IZapisyWECP zapisyWECP = sfera.PodajObiektTypu<IZapisyWECP>(); var zapisWECP = zapisyWECP.Dane.Wszystkie().Where(a => a.Id == id).FirstOrDefault(); // wybranie absencji if (zapisWECP == null) {} // brak zapisu else { var tresciDokumentow = sfera.PodajObiektTypu<ITresciWydrukuRTF>(); // Pobranie managera treści dokumentów RTF var trescRTF = tresciDokumentow.Dane.Wszystkie().Where(t => t.Id == 100010).Single(); // wskazanie konkretnego wzorca wydruku IWydrukiRTF wydrukiRTF = sfera.PodajObiektTypu<IWydrukiRTF>(); IRTFPrintInfo wydrukRTF = wydrukiRTF.StworzObiektDoWydruku(InsERT.Moria.Wydruki.Enums.TypTresciWydrukuRTF.DokumentyUrlopowe, zapisWECP); IWydruki manager = sfera.PodajObiektTypu<IWydruki>(); //pobranie managera drukowania using (IWydruk wydruk = manager.Utworz(TypWzorcaWydruku.WydrukRTF)) { wydruk.ObiektDoWydruku = wydrukRTF; // wskazanie obiektu do wydruku var tresc = trescRTF.Zawartosc; if (results.date != null) { string dateString = results.date; tresc = trescRTF.Zawartosc.Replace("<<parametr datowy(Data wydruku)>>", dateString); } // wskazanie ścieżki eksportu string filename; filename = "urlop" + results.id; wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika = filename; wydruk.ParametryDrukowania.SciezkaEksportu = @"N:\"; wydruk.ParametryDrukowania.ZastapPliki = true; // ewaluacja autotekstów var parametryRTF = wydruk.ParametryDrukowania as IWydrukParametryRTF; if (parametryRTF != null && wydrukRTF.EwalutorAutotekstow != null) parametryRTF.TrescWydruku = wydrukRTF.EwalutorAutotekstow.WypelnijAutoteksty(tresc, wydrukRTF.ZrodloWiedzy); wydruk.Eksport(); // eksport } } Link to postu
Polecane posty