Przejdź do treści

Kompatybilność wsteczna obiektów z logiką biznesową

Wszystkie obiekty stworzone przy pomocy wcześniejszych wersji neosa (<5.0) działają po staremu. We wszystkich nowo utworzonych obiektach biznesowych obowiązuje podział.

Obiekty stworzone przy użyciu starej wersji neosa mogą zostać skonwertowane do nowej. Po dodaniu pierwszej metody logiki biznesowej obiekt zostaje rozdzielony, wszystkie inne metody obiektu stają się metodami interfejsowymi i przy próbie kompilacji pojawią się błędy we wszystkich miejscach gdzie było w nich użycie zabronionych od teraz metod (np. RunProcedure).

Programista powinien w takim wypadku dokonać konwersji całego obiektu, tak aby działał poprawnie z nowymi założeniami. Jak to zrobić zostało opisane w kolejnym rozdziale.

Konwersja obiektów biznesowych do postaci z logiką biznesową

Konwersję opiszemy na przykładzie obiektu TOWARY z projektu SZKOLENIE. Rozpoczynamy od dodania pierwszej metody biznesowej. Idealnym kandydatem będzie metoda na inicjalizację pola VAT. Jej treść wklejamy do nowo założonej metody.

Obiekt przejdzie w tryb z rozdzieloną logiką w związku z czym, dostaniemy listę błędów i niedozwolonych operacji w innych metodach obiektu.

Pierwszy komunikat dotyczy metody API.ShowForm w metodzie interfejsowej, wystarczy zmienić użycie API na GUI. Po zmianie otrzymujemy kolejny błąd

Widzimy tutaj użycie kodu SQL, więc przenosimy odpowiedni fragment do nowej metody logiki biznesowej. Metoda obsługuje multiselekcję i dla każdego wybranego towaru zmienia mu aktywność (jeżeli towar był aktywny to już nie jest, jeżeli towar nie był aktywny to staje się aktywny). Przerabiamy ją, przenosząc odpowiednie fragmenty do metody logiki biznesowej, pamiętając jak działają transakcje w wywołaniach metod logiki, co zostało opisane w poprzednim rozdziale. Teraz obiekt się kompiluje.

Konwersja logiki w SQL do postaci z logiką biznesową

Neos Expert wspiera częściowo konwersję kodu procedur SQL do kodu C# logiki biznesowej. Konwertuje najczęściej używane słowa kluczowe i operatory, a więc zaoszczędza znaczną ilość ręcznej powtarzalnej pracy. Niestety nie tłumaczy samych zapytań SQL, na odpowiednie wyrażenia logiki biznesowej. Dlatego większość zmian będzie trzeba i tak wykonać ręcznie.

Aby treść procedury SQL przenieść do metody logiki biznesowej, wykonaj następujące kroki:

  1. Skopiuj treść procedury do schowka.

  2. Załóż pustą metodę logiki biznesowej we właściwym obiekcie.

  3. W oknie edytora c# Neos Experta naciśnij przycisk "Konwerter SQL -> C#".

  4. W oknie, które się otworzy wklej kod SQL ze schowka.

  5. Naciśnij przycisk "Konwertuj".

  6. Skopiuj widoczną treść do schowka, zamknij okno konwertera i wklej tą treść do metody, którą chwilę wcześniej stworzyłeś.

  7. Popraw ręcznie to, czego nie mógł przekształcić konwerter.