Skocz do zawartości

Wystawianie faktur i aktualizacja stanów magazynowych w SQL

Polecane posty

Cześć,

 

Czy wystawianie faktur i aktualizacja stanów magazynowych w SQL to średni pomysł, czy jednak OK?

Mam w firmie wiele aplikacji, które robią różne rzeczy związane z wysyłkami, fakturami, etykietami, etc. i mam potrzebę wystawiać automatycznie faktury w Nexo Pro.

Waham się, bo mam obawy, że z jakąś aktualizacją może zmienić się struktura danych. Nie ma problemu z SELECT, bo w najgorszym wypadku nie działa aplikacja/raport, ale INSERT do bazy to już trochę bardziej ryzykowna sprawa.

Później pomyślałem, że może takie rzeczy można robić przez jakieś wbudowane procedury MSSQL, czy jak to się w świecie MS nazywa, wtedy procedura może brać te same parametry i wirtualnie być bez zmian, ale np. struktura tabel dzięki temu może zostać aktualizowana przez kolejne update-y. Takie moje gdybanie.

 

Jak to jest zorganizowane w nexo? Czy tworzenie faktury z poziomu SQL i aktualizacja stanów są możliwe?

 

Pytanie bonusowe: czy istnieją gdzieś przykłady zapytań SQL dla nexo, jakaś dokumentacja oprócz dokumentacji Sfery, która jest mega ciężka dla mnie? (znam mysql, radzę sobie nieźle z aplikacjami webowymi w wielu językach, ale świat Microsoftu jest dla mnie niezmiernie męczący, dlatego rozwiązanie bazujące na samym SQLu byłoby wybawieniem; nawet, jeśli to mssql...).

 

Dzięki z góry za pomoc,

Marcin

 

Link to postu
45 minut temu, Marcin Łukasik napisał:

Czy wystawianie faktur i aktualizacja stanów magazynowych w SQL to średni pomysł, czy jednak OK?

Bardzo średni, zły, tragiczny! :D

45 minut temu, Marcin Łukasik napisał:

Mam w firmie wiele aplikacji, które robią różne rzeczy związane z wysyłkami, fakturami, etykietami, etc. i mam potrzebę wystawiać automatycznie faktury w Nexo Pro.

Waham się, bo mam obawy, że z jakąś aktualizacją może zmienić się struktura danych. Nie ma problemu z SELECT, bo w najgorszym wypadku nie działa aplikacja/raport, ale INSERT do bazy to już trochę bardziej ryzykowna sprawa.

Później pomyślałem, że może takie rzeczy można robić przez jakieś wbudowane procedury MSSQL, czy jak to się w świecie MS nazywa, wtedy procedura może brać te same parametry i wirtualnie być bez zmian, ale np. struktura tabel dzięki temu może zostać aktualizowana przez kolejne update-y. Takie moje gdybanie.

Takie rzeczy robi się poprzez Sferę. Sugeruję pobrać SDK i zapoznać się z dokumentacją, a jeszcze lepiej dogadać się z kimś, kto napisze Panu odpowiedni program, który może Panu wystawić jakiś kanał komunikacji, do automatyzacji wystawiania tych faktur. Gdybanie z ich tworzeniem w SQL, sugeruję natychmiast porzucić :D

45 minut temu, Marcin Łukasik napisał:

Jak to jest zorganizowane w nexo? Czy tworzenie faktury z poziomu SQL i aktualizacja stanów są możliwe?

Stany, jeszcze niektórzy kombinują z tablicami, jest kilka nawet świeżych wątków w temacie. Przy stopniu skomplikowania dokumentów, człowiek by się chyba zajechał w profilerze ;) W SDK ma Pan też dokumentację bazy danych, zerknie Pan ile jest powiązań z tablicy Dokumenty.

45 minut temu, Marcin Łukasik napisał:

Pytanie bonusowe: czy istnieją gdzieś przykłady zapytań SQL dla nexo, jakaś dokumentacja oprócz dokumentacji Sfery, która jest mega ciężka dla mnie? (znam mysql, radzę sobie nieźle z aplikacjami webowymi w wielu językach, ale świat Microsoftu jest dla mnie niezmiernie męczący, dlatego rozwiązanie bazujące na samym SQLu byłoby wybawieniem; nawet, jeśli to mssql...).

To zrozumiałe, nie każdy programista, ogarnia wszystkie języki programowania. Dokumentacja może się wydawać nieczytelna, ale po zrobieniu kliku programów nawet przykładowych, jeśli się programowało i rozumiało co się robi, to moim zdaniem jest prosta.

Co do podłączenia z aplikacją webową, to można napisać aplikację, która będzie nasłuchiwała na porcie, komunikatów JSON, którymi można Sferze zlecać wykonywania różnych zadań. Za czasu dodam, że nie da się niestety zmapować całej ogromnej biblioteki i możliwości NEXO, na takie API. Trzeba po prostu konkretne funkcjonalności odpowiednio oprogramować, bo nawet to wystawienie faktury, może mieć wiele scenariuszy, i wiele wymagań. Sam osobiście tak buduję Sobie pomost do NEXO, bo sam lepiej się czuję i mam już prawie 2 dekady doświadczenia w PHP, a większość komunikacji z NEXO, da się załatwić kilkoma dokumentami, czy obiektami, typu asortyment, klienci itp.

 

Więc, cytując zapewne, konsultanta Insertu, zaleca się zajrzeć do zakładki Partnerzy ;)

Edytowane przez Radomił Ząbik
Link to postu

Dzięki za odpowiedź.

Stopień skomplikowania dokumentów z pozoru jest problematyczny, w praktyce wystarczy logować zapytania SQL na serwerze, utworzyć fakturę, i podglądnąć co jest w zapytaniu.

Faktury, o których mowa, wystawiamy między naszymi dwiema firmami; poza pozycjami na fakturze zmienia się tam tylko waluta (czasem EUR, czasem PLN).

 

Tutaj pytanie brzmiało raczej: czy struktura danych może się zmienić i wysypać mi wszystko, czy jest to jakoś tak zorganizowane, że się nie zmienia, nie zmieni, lub używa się procedur w SQLu.

 

Aplikacja webowa w oparciu o jsona i SDK to dobry pomysł i myślałem o tym, ale nigdzie nie znalazłem żadnych tego typu rozwiązań.

Nie do końca mam ochotę bawić się w C# i robienie tego przez SDK jeśli jest jakieś prostsze rozwiązanie (czytaj: SQL). Poza tym, jest duża szansa, że będę potrzebował coś zmienić, więc potrzebuję - minimalnie - kodu, a nie gotowca i to w subskrypcji 😞

 

Marcin

 

Link to postu
9 minut temu, Marcin Łukasik napisał:

Tutaj pytanie brzmiało raczej: czy struktura danych może się zmienić i wysypać mi wszystko, czy jest to jakoś tak zorganizowane, że się nie zmienia, nie zmieni, lub używa się procedur w SQLu.

Może. Generalnie jak Insert bierze się za przebudowy głównych elementów, to także Sfera obrywa. Aczkolwiek w kwestii faktur, ostatnia przebudowa dotyczyła płatności, chyba ze dwa lata temu, więc nie jest to też tak, że zmieni się z wersji na wersję, plus informują o tym.

9 minut temu, Marcin Łukasik napisał:

Aplikacja webowa w oparciu o jsona i SDK to dobry pomysł i myślałem o tym, ale nigdzie nie znalazłem żadnych tego typu rozwiązań.

Z doświadczenia wiem, że każdy użytkownik NEXO, działa inaczej, i ciężko jest napisać coś uniwersalnego.

Edytowane przez Radomił Ząbik
Link to postu


Pomysł generowania faktur zapytaniami SQL uważam za sposób na strzał w kolano, ale to Pana kolano, więc Pana decyzja.

Dzięki za odpowiedź.
Stopień skomplikowania dokumentów z pozoru jest problematyczny, w praktyce wystarczy logować zapytania SQL na serwerze, utworzyć fakturę, i podglądnąć co jest w zapytaniu.

Proponuję zrobić to, obejrzeć co zarejestrował Profiler i wtedy wrócić do tematu.
Trochę próbowałem więc mniej więcej wiem czego się spodziewać, ale chętnie przeczytam jak się Panu spodobało.
  • Lubię to 1
Link to postu

No dobrze Panowie, trochę wybiliście mi pomysł z głowy, i ściągam właśnie Visual Studio...

 

Jeśli ktoś z Was widział gdzieś jakieś projekty lub małe aplikacje - potrzebuję wystawiać faktury i zmieniać stany na magazynie - to byłbym wdzięczny. Coś takiego żeby działało przez jakiegoś jsona, xml, czy nawet pliki tekstowe ;) i rozmawiało z API Inserta.

Jeśli nie, to będę męczył Visual Studio...

 

Marcin

 

Link to postu
8 godzin temu, Marcin Łukasik napisał:

Jeśli ktoś z Was widział gdzieś jakieś projekty lub małe aplikacje - potrzebuję wystawiać faktury i zmieniać stany na magazynie - to byłbym wdzięczny.

Jak coś zrobić na bibliotekach Sfery, jest w dokumentacji - Pierwsze kroki i przykłady, zawierają elementy, o których Pan wspomina. Stanów na magazynie tak bezpośrednio nie da się zmienić, poczyta Pan konwersację w tym wątku:

 

8 godzin temu, Marcin Łukasik napisał:

Coś takiego żeby działało przez jakiegoś jsona, xml, czy nawet pliki tekstowe ;) i rozmawiało z API Inserta.

Google/Stackoverflow i szukanie po C# i co chce się zrobić. Jeśli chodzi o nasłuch na socket, jest chyba nawet przykład bezpośrednio od Microsoft.

Link to postu

dziękuję, zabrałem się już za pisanie aplikacji w C# i nawet są jakieś postępy.

 

mam natomiast pytanie pokrewne: zakładając, że przeprowadziłem update nexo pro a update zmienił strukturę danych - moja aplikacja używa wcześniejszej wersji bibliotek z wcześniejszej wersji SDK i o tych zmianach nie wie. w jaki sposób się dowie?

lub inaczej: jak mogę z poziomu aplikacji sprawdzić czy muszę ściągnąć nowe SDK i skompilować aplikację na nowo, bądź podmienić DDLki?

czy Insert w jakiś sposób informuje osoby takie jak ja o takich zmianach? jeśli tak to jakim kanałem mogę otrzymać takie informacje?

 

mam obawy, że moja aplikacja w pewnym momencie może przestać działać, i nawet nie będę o tym wiedział :(

 

pozdrawiam,

Marcin

Link to postu
17 minut temu, Marcin Łukasik napisał:

mam natomiast pytanie pokrewne: zakładając, że przeprowadziłem update nexo pro a update zmienił strukturę danych - moja aplikacja używa wcześniejszej wersji bibliotek z wcześniejszej wersji SDK i o tych zmianach nie wie. w jaki sposób się dowie?

Prawidłowo skompilowana aplikacja i dodana do bazy oraz odpalana z launchera, będzie odporna na aktualizacje - można użyć instalatora z szablonu VS, zawartego w SDK, to obecnie najlepsza droga. Można też to zrobić samemu, proszę zajrzeć do Zarządzanie rozwiązaniami w dokumentacji. Jedynie podczas kompilacji, jeśli będzie się chciało koniecznie sprawdzić jej działanie od razu, bez instalacji w bazie, to będzie musiała mieć biblioteki zgodne z bazą.

 

Co do grubszych zmian, które mogły by wpłynąć na zmianę metod Sfery, to zazwyczaj jest o nich informacja na forum, jest okres przejściowy, często około roku, plus podczas kompilacji są informacje o przestarzałych funkcja. Nie stresowałbym się nimi jakoś ogromnie, ale zajrzeć na forum raz na kwartał, warto.

 

A w praktyce, mam programy, które chodzą bez problemu od 3 lat, klient Sobie sam aktualizuje. Ostatnie grube zmiany to były pola własne zaawansowane i płatności, a na ten moment chyba tylko będzie się zmieniał mechanizm komentarzy, rozszerzony na obiekty, więc też pewnie Pana nie dotyczy.

 

17 minut temu, Marcin Łukasik napisał:

mam obawy, że moja aplikacja w pewnym momencie może przestać działać, i nawet nie będę o tym wiedział :(

Jeśli przestanie działać, to tylko wyłącznie po aktualizacji. Więc wystarczy przed jej zainstalowaniem i chodzi tu o duże wersje czyli X.0.0, zajrzeć do dokumentacji SDK (tam też są zmiany), a lepiej na forum.

 

Edytowane przez Radomił Ząbik
Link to postu
×
×
  • Dodaj nową pozycję...