Adam Waszko

Adam Waszko Student,
Politechnika Opolska

Temat: Cechy referencyjne

Witam wszystkich

Jak w enova dodać cechę do tabeli PozycjeDokHan typu referencja ze wskazaniem do tabeli danych referencyjnych PozycjeDokHan?

Pozdrawiam
Adam
Rafał Tujek

Rafał Tujek Programista systemów
ERP

Temat: Cechy referencyjne

Cześć.

Z menu wybierasz Narzędzia->Opcje. Potem w oknie z drzewka po lewo wybieramy Systemowe->Definicje cech. Następnie klikasz przycisk "Nowy {Definicja cechy)". Na następnym okienku z listy rozwijalnej wybierasz opcję "PozycjeDokHan" i klikasz OK. Masz już założoną cechę teraz musisz wybrać typ, czuli pole nr 3 "Typ wartości cechy". Z rozwijalnej listy wybierasz "Referencja". Musisz podać tylko nazwę i zapisać, pozamykać i gotowe.

Jeśli nie masz dostępu do opcji programu możesz spróbować od strony Podgląd tabel, tabela FeatureDefinition. Oczywiście jeśli masz uprawnienia.

--
Serdecznie pozdrawiam / Best Regards

Rafał Tujek
Programista systemów ERP
mail:rafaltujek@gmail.com
tel.:795-924-911
Adam Waszko

Adam Waszko Student,
Politechnika Opolska

Temat: Cechy referencyjne

Cześć

dokładnie tak robię jak to opisujesz. Problem polega tylko na tym, że po wybraniu typu Referencja nie mam pod spodem w polu Tabela danych referencyjnych dostępnego PozycjeDokHan.

pozdrawiam
Adam
Arkadiusz P.

Arkadiusz P. analityk,
wdrożeniowiec,
elementy
programowania

Temat: Cechy referencyjne

Cechę referencyjną można dodać jedynie do tabel GUID-owanych, a z tego co pamiętam tabela pozycji taką nie jest. Można to jednak rozwiązać inaczej. Każdy dobry partner enovy powinien sobie poradzić z przygotowaniem rozwiązania Pańskiego problemu.
Rafał Tujek

Rafał Tujek Programista systemów
ERP

Temat: Cechy referencyjne

Arku po części z Toba się zgodzę. Rzeczywiście w standardowy sposób nie da się założyć cechy mającej referencje do tabel podrzędnych. Można zapisywać wartość dodatkowego pola w dodatkowej tabeli, albo wykorzystać standardową tabele konfiguracyjna programu. Dopisać jakiś extender, który obsłuży działanie tego pola i utworzyć pageformy. Natomiast bardzo dobry partner po prostu założy cechę będącą referencją do tabeli PozycjeDokHan. Da się to zrobić, oczywiście nie w standardowy sposób. Trzeba trochę ominąć logikę biznesową. Są na to przynajmniej 2 sposoby, może 4. Cechę już mamy, ale to nie koniec problemów. W cechach referencyjnych enova standardowo wykorzystuję kontrolki lookup do obsługi. Niestety tabela PozycjeDokHan nie posiada indeksów tekstowych i lookup nam się nie otworzy. Trzeba dopisać do cechy kod, który spowoduję by cecha była obsługiwana przez inną kontrolkę np. Combobox.

--
Serdecznie pozdrawiam / Best Regards

Rafał Tujek
Programista systemów ERP
mail:rafaltujek@gmail.com
tel.:795-924-911
Tomasz Buczyński

Tomasz Buczyński Student,
Polsko-Japońska
Wyższa Szkoła
Technik
Komputerow...

Temat: Cechy referencyjne

Podana tabela nie jest guidowana nie zrobisz takiej cechy referencyjnej.
Rafał Tujek

Rafał Tujek Programista systemów
ERP

Temat: Cechy referencyjne

Tomek powiem Ci tak, mogę się z Tobą założyć o dowolną kwotę, że taką cechę da się zrobić. Chcesz się przekonać zapraszam na pw i Ci pokaże jak działa ona na mojej bazie. W enova są ograniczenia, żeby nie zakładać w "standardowy" sposób cech na tabelach bez guid-a, ale ten guid do niczego cesze nie jest potrzebny. Spójrz na SQL-a i tabele FeatureDefs i Features. Tam nie ma nigdzie referencji do guid-a rekordu, lecz jedynie jego ID, a jak wiemy wszystkie tabele mają ID. Również tabela PozycjeDokHan. Nie pisałbym tego, gdybym sam tego nie sprawdzał, bo 99% z Was uzna to za herezję i wyszedłbym na głupca.

--
Serdecznie pozdrawiam / Best Regards

Rafał Tujek
Programista systemów ERP
mail:rafaltujek@gmail.com
tel.:795-924-911
Jarosław Czekalski

Jarosław Czekalski Właściciel, Bonsoft

Temat: Cechy referencyjne

>Nie pisałbym tego, gdybym sam tego nie sprawdzał, bo 99% z Was uzna to za herezję i wyszedłbym na głupca.

Już pisałeś rzeczy, których nie sprawdzałeś. Patrz pierwsza odpowiedź w tym wątku.
Rafał Tujek

Rafał Tujek Programista systemów
ERP

Temat: Cechy referencyjne

Ok, jasne masz rację. Przy pierwszej swojej wypowiedzi nie sprawdzałem tego. Napisałem to z pamięci, ale chyba każdemu czasem może się trafić małe niedociągnięcie.

Z ostatnią moją wypowiedzią jest inaczej, bo już wcześniej 2 osoby twierdzą inaczej i jaki byłby sens kogoś tu oszukiwać, skoro większość jest przeciwko mojemu pomysłowi? Zatem mniejszość uwierzy w moja wersję, a może nikt i każdy ma do tego prawa. Wypowiadałem się tu setki razy i może miałem 2 wpadki? Ten kto chcę się przekonać pisałem już... zapraszam na pw i możemy zobaczyć kto ma rację.

--
Serdecznie pozdrawiam / Best Regards

Rafał Tujek
Programista systemów ERP
mail:rafaltujek@gmail.com
tel.:795-924-911
Jarosław Czekalski

Jarosław Czekalski Właściciel, Bonsoft

Temat: Cechy referencyjne

>Natomiast bardzo dobry partner po prostu założy cechę będącą referencją do tabeli PozycjeDokHan.

Dobry partner doradzi takie rozwiązanie, które będzie gwarantowało poprawną pracę teraz i na kolejnych wersjach, przez lata. Obawiam się, że gmeranie w bazie nie jest dobre pod tym względem. Na pewno poleciłbyś to, Rafale, swojemu klientowi na bazę produkcyjną? Jeżeli nie, to zgódź się z odpowiedzią "Nie da się".

Coś zamiast tej cechy moglibyśmy zaproponować chyba tylko znając "potrzebę biznesową".
Rafał Tujek

Rafał Tujek Programista systemów
ERP

Temat: Cechy referencyjne

Tak poleciłbym swoje rozwiązanie. Oczywiście wyjaśnię czemu, bo zaraz będą wszyscy oburzeni na forum.

Mówisz o gmeraniu w bazie, jak wspominałem jest kilka sposobów na założenie takiej cechy. Są też rozwiązania bez ingerencji w SQL-a. Cecha się kompiluje poprawnie. Da się ją replikować do dowolnej bazy w dowolnej wersji. Import definicji z pliku XML przebiega poprawnie bez błędów, czyli jest ona poprawna? Całym problemem jest ograniczony GetList, który nie wyświetla nam PozycjeDokHan. Oczywiście moja cecha w polu tabela referencyjna pokazuję już tą wartość. Bym nie był gołosłowny, taką cechę założyłem na wersji 10.0.0 z listopada 2013 i uzupełniłem kilka cech. Następnie bazę podałem szeregu konwersji, aż do wersji 11.3.2 z końca marca 2016. Czyli jak widać przez prawie 3 lata cecha by działała. Dodatkowo by utrudnić warunki po drodze baza była konwertowana przy użyciu własnego modułu napisanego za pomocą BusinessGenerator-a. Cechy są rzeczą fundamentalną w enova i ich zmiana w tym kierunku, że moja cecha przestanie działać jest mało prawdopodobne. Szybciej spodziewane jest umożliwienie w standardzie definiowania takich cech.

Same zalecenie producenta mówią o tym by wszystko co się da robić za pomocą standardowych elementów, które są zapisywane w bazie np. taski, cechy. Wtedy całą konfiguracje mamy w jednym miejscu i replikacja bazy to tylko jej odtworzenie i oczywiście łatwiej o debugowanie problemu. Oszczędzamy również czas na rzeczy związane z obsługą dllek. Łatwiej jest wtedy także o pomoc producenta, czyli Sonety.

Natomiast drugie rozwiązanie z "dodatkowym polem" wymusza napisanie extendera do obsługi, czyli dllki. Jak jest z dllkami to każdy wie. Pamiętamy brak możliwości dllelek na Azure(nie wiem jak jest obecnie). Problemy z formsami to jest temat rzeka. Jeśli nie przepisałeś dllek to nie działa Ci SonetaServer zatem HZ i pulpity oraz wersja multi. Chyba, że masz inny zestaw dll pobierany przez SonetaServer. Jeśli miałeś taska to zaznaczasz tylko opcję "Uruchamiaj w Soneta Explorer" i po problemie. Coś co jest w środku bazy i korzysta z standardowych funkcji Soneta prawie zawsze będzie działać lepiej niż coś napisane na boku. Problem przy licencjach wielofirmowych, gdzie użytkownik ma 5 różnych firm/baz i każda firma ma inną konfigurację. Ja importuję tylko cechę do odpowiedniej bazy i po problemie, a z dllką? Trzeba pisać n skrótów do programu z parametrami. Pamiętamy także własne moduły i brak ostrzeżeń przy konwersji co przez nieodpowiedzialnych pracowników skutkowało utratą danych z naszej tabeli!!! Każdy też spotkał się z sytuacją, że Windows lub program antywirusowy zablokował nam dll. Trzeba przy rozbudowanej konfiguracji HZ, SonetaServer + baza pamiętać o podgrywaniu dllki w różne miejsca. Wiadomo nasze dllki od czasu do czasu trzeba przekompilować. Kolejny problem to trzeba nadpisywać standardowe pageformy i gridy by to pole się pokazało, często zmieniając XML-a. Mając cechę sam zwykły użytkownik może w dowolnej formie(standard,multi) enova spokojnie wyciągnąć sobie cechę. Nie muszę również wspominać, że łatwiej jest skorzystać z cechy na raporcie niż z extendera. Łatwiej również o zmianę definicji cechy na żywo. Użytkownicy tylko odświeżają opcję, maksymalnie się przelogowują. Z dllką trzeba ponownie uruchomić program/SonetaServer. Czas rozwiązania drugiego to ok. 2 - 3 godz? Moje rozwiązanie to 15 min.

Podsumowując, by nie ciągnąć tego tematu w nieskończoność. Ja jestem pewny swego rozwiązania i wdrożyłbym to na bazie produkcyjnej. Oczywiście mamy demokrację i każdy z Was może taką sytuację ocenić inaczej. Każdy wykonawca ocenia samemu ryzyko danego rozwiązania. Musielibyśmy postawić dwie bazy jedną z moim rozwiązania, a drugą z Twoim i poczekać parę lat i zobaczyć, które rozwiązanie było lepsze. Jednak to jest niemożliwe.

--
Serdecznie pozdrawiam / Best Regards

Rafał Tujek
Programista systemów ERP
mail:rafaltujek@gmail.com
tel.:795-924-911

Następna dyskusja:

Cechy wielowartościowe




Wyślij zaproszenie do