Program magazynowy SoftwareStudio jest rozwijany przez firmę z Poznania, która sama pisze kod, sama go wdraża i sama utrzymuje. Ten artykuł opisuje ją od strony producenta: jak prowadzi wdrożenia, na jakim stosie technologicznym działa aplikacja i co dzieje się po uruchomieniu produkcyjnym.

Markę i rodzinę produktów omawia osobny tekst o systemie magazynowym SoftwareStudio, a funkcje samego programu opisuje strona o Studio WMS.net. Tutaj skupiamy się na tym, czym producent różni się od dystrybutora licencji i co ta różnica oznacza w praktyce projektu.

Producent programu magazynowego, a nie dystrybutor licencji

SoftwareStudio działa jako producent oprogramowania. Programiści i analitycy rozwijają kod, a konsultanci wdrożeniowi dopasowują system do procesów klienta. Zgłoszenie zmiany trafia bezpośrednio do zespołu, który zna kod, bez pośrednika przekazującego je dalej.

Własny kod zmienia sposób obsługi zgłoszeń. Poprawka przechodzi jeden cykl: analiza i zmiana w programie, a potem test i wydanie w aktualizacji. Klient nie czeka na decyzję zewnętrznego producenta licencji, który nie ma wglądu w jego proces, a konsultant, który rozmawia z magazynierami, siedzi w tym samym zespole co autor modułu.

Zespół pracuje z działami logistyki i informatyki po stronie klienta. Skraca to komunikację i pozwala reagować na zmiany procesów w trakcie samego wdrożenia, a nie po jego zakończeniu. Program magazynowy jest przy tym jednym z pięciu produktów, które łączy wspólna architektura.

ProduktObszarZwiązek z programem magazynowym
Studio WMS.netMagazyn: przyjęcie i składowanie oraz kompletacja i wydaniePodstawowy produkt rodziny, punkt startu dla firm wdrażających pierwszy WMS
Studio VSS.netAwizacja dostaw i plac przed magazynem (YMS)Awizowana dostawa trafia do kolejki dokumentów przyjęcia w WMS.net
Studio PWS.netEwidencja obrotu paletami zwrotnymiRozliczenia paletowe obok obrotu magazynowego
Studio RMA.netObsługa zgłoszeń reklamacyjnychOsobny proces serwisowy na tej samej architekturze
Studio TCS.netNarzędziownia i utrzymanie ruchuEwidencja narzędzi i terminów przeglądów
Stanowisko z kilkoma ekranami pokazującymi wykresy i panele danych na tle ciemnego wnętrza
Praca producenta nad kodem i danymi - jeden zespół odpowiada za rozwój i wdrożenie

Modułowa budowa pozwala zacząć od jednego obszaru, na przykład samego programu magazynowego, i dołączać kolejne systemy w miarę rozwoju firmy. Dobór produktów wynika z analizy procesów, a nie z gotowego pakietu.

Podejście producenta do wdrożeń

SoftwareStudio prowadzi wdrożenie jako proces dopasowania, a nie instalację pudełkowego produktu. Zespół analizuje procesy klienta i dobiera moduły, a potem konfiguruje je pod specyfikę magazynu. Ten sam schemat obowiązuje przy każdym produkcie z rodziny, a szczegółowy przebieg prac opisuje artykuł o wdrożeniu systemu WMS.

EtapPraca zespołu producentaRezultat dla klienta
Rozmowa wstępnaPoznanie procesów i wskazanie odpowiednich produktówWstępny zakres i lista modułów
Analiza przedwdrożeniowaMapowanie procesów magazynowych albo serwisowychZatwierdzony zakres projektu
Konfiguracja i dostosowanieDobór modułów oraz ustawienie dokumentów i raportówSystem odwzorowujący nazewnictwo klienta
Testy i szkoleniaTesty na wybranym obszarze i szkolenia stanowiskowePrzeszkoleni użytkownicy i lista poprawek
Uruchomienie i wsparcieStart produkcyjny i dalsza opieka technicznaPraca na całym wskazanym obszarze

Wdrożenie modułowe i kolejne etapy

Przedsiębiorstwo produkcyjne z jedną halą magazynową może korzystać wyłącznie ze Studio WMS.net. Operator logistyki kontraktowej, który obsługuje wielu klientów i wiele ramp, łączy zwykle WMS.net z VSS.net, a dodatkowo z PWS.net do rozliczeń paletowych. Producent nie narzuca wariantu, więc decyzję o kolejnych modułach podejmuje się po ocenie pierwszego etapu, a nie przed podpisaniem umowy.

Reguła: wdrożenie zaczyna się od obszaru o największym potencjale poprawy. Kolejne moduły dołącza się dopiero po ocenie efektów pierwszego etapu.

Klienci z nietypowymi wymaganiami mogą sięgnąć po systemy magazynowe na zamówienie, w których zakres dostosowań wykracza poza standardową konfigurację modułów. Producent nie narzuca jednego wariantu, bo zakres wynika z analizy, a nie z cennika pakietów.

Mężczyzna w czapce siedzi przy monitorze z wykresami i trzyma wydrukowany dokument
Konsultant wdrożeniowy przy stanowisku - etap konfiguracji i testów u klienta

Konfiguracja programu przez administratora klienta

Po instalacji Studio WMS.net na serwerze administrator klienta uruchamia panel ustawień i sam dopasowuje program do firmy. Zmiany zapisują się w bazie SQL Server i działają od razu dla wszystkich użytkowników, zgodnie z przypisanymi im uprawnieniami. Parametry opisuje artykuł o konfiguracji programu magazynowego Studio WMS.net.

  • Menu - administrator wybiera jeden z czterech trybów wyświetlania, a ustawienie przenosi się na wszystkie tryby pracy.
  • Uprawnienia - każdemu użytkownikowi przypisuje się własny zakres transakcji z kolejnością i ikoną.
  • Raporty - raporty z serwera SQL Server udostępnia się przez nadanie uprawnień i przyjaznych nazw w module Studio Raporty.
  • Integracja ERP - określa się mapowanie dokumentów magazynowych po obu stronach interfejsu.

Konfiguracja w panelu skraca wdrożenie, bo drobne zmiany nie wymagają zgłoszenia do producenta ani czekania na kolejną wersję. Administrator zmienia widoczność transakcji lub nazwę raportu w kilka minut, a konsultant SoftwareStudio wraca do projektu przy zmianach, które wychodzą poza parametry.

Raporty powstają zwykle w narzędziach z rodziny SQL Server Reporting Services. Sposób ich przygotowania omawia artykuł o Report Builderze, a zestaw gotowych zestawień w programie pozostaje do zmiany przez administratora bez udziału producenta.

Stos technologiczny programu magazynowego

Studio WMS.net działa w technologii Microsoft: aplikacja webowa w ASP.NET na serwerze IIS łączy się z bazą SQL Server. Nazwa produktu odnosi się do platformy .NET, na której SoftwareStudio rozwija oprogramowanie od lat. Poniższa tabela porządkuje warstwy i technologie.

WarstwaTechnologiaZadanie
Baza danychSQL Server, T-SQL, procedury składowaneKartoteki i dokumenty oraz stany z historią operacji
Aplikacja serwerowaC# i ASP.NET na serwerze IISLogika biznesowa i obsługa transakcji
PrzeglądarkaJavaScript i jQueryInterfejs użytkownika i wywołania AJAX
TerminaleAplikacje na systemie AndroidSkanowanie i potwierdzanie operacji przy regale

Warstwa bazy danych

Kartoteki i dokumenty leżą w SQL Server, a stany lokalizacji wynikają z historii operacji. Logika operacji magazynowych trafia do procedur składowanych. Transakcja gwarantuje, że przyjęcie palety zapisze się w całości albo wcale, a poziom izolacji READ COMMITTED chroni przed odczytem niezatwierdzonych zmian. Ogólny układ warstw opisuje artykuł o architekturze oprogramowania WMS.

-- przykładowa procedura składowana: przyjęcie palety na wskazaną lokalizację
CREATE PROCEDURE dbo.PrzyjmijPalete
    @Sscc          char(18),
    @IdLokalizacji int
AS
BEGIN
    SET NOCOUNT ON;

    UPDATE dbo.Paleta
    SET IdLokalizacji = @IdLokalizacji, Status = 'NA_STANIE'
    WHERE Sscc = @Sscc AND Status = 'PRZYJMOWANA';

    IF @@ROWCOUNT = 0
        THROW 50001, N'Paleta nie oczekuje na przyjęcie.', 1;

    SELECT 1 AS Wynik;
END;

W poziomie READ COMMITTED odczyt nie widzi zmian niezatwierdzonych, ale drugi operator, który sięga po tę samą paletę, poczeka na zakończenie transakcji. Dlatego transakcje trzyma się krótkie: jedna operacja magazynowa to jedna transakcja, bez oczekiwania na użytkownika w środku. Dłuższe transakcje blokują wiersze na dłużej i przy wielu terminalach zaczynają się kolejkować. Nazwy tabel i procedur w przykładach są umowne i nie odpowiadają rzeczywistemu schematowi produktu.

Najczęstszym zapytaniem terminala jest wyszukanie palety po numerze SSCC, więc obsługuje je indeks nieklastrowy z kolumnami dołączonymi. Zapytanie odczytuje status i lokalizację wprost z indeksu, bez sięgania do tabeli, co przy dużej liczbie palet skraca czas odpowiedzi.

-- przykładowy indeks pokrywający dla wyszukiwania palety po numerze SSCC
CREATE UNIQUE NONCLUSTERED INDEX IX_Paleta_Sscc
ON dbo.Paleta (Sscc)
INCLUDE (Status, IdLokalizacji);

Warstwa aplikacji i przeglądarki

Aplikacja serwerowa otwiera transakcję i wywołuje procedurę, a wynik wraca do przeglądarki. Dokumentację klasy transakcji zawiera opis SqlTransaction w Microsoft Learn.

// przykładowa metoda: transakcja i wywołanie procedury składowanej
public int PrzyjmijPalete(string connectionString, string sscc, int idLokalizacji)
{
    using (var conn = new SqlConnection(connectionString))
    {
        conn.Open();
        using (var tx = conn.BeginTransaction(IsolationLevel.ReadCommitted))
        using (var cmd = new SqlCommand("dbo.PrzyjmijPalete", conn, tx))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@Sscc", sscc);
            cmd.Parameters.AddWithValue("@IdLokalizacji", idLokalizacji);
            int wynik = (int)cmd.ExecuteScalar();
            tx.Commit();
            return wynik;
        }
    }
}

Wyjątek zgłoszony przez THROW w procedurze wraca do aplikacji jako SqlException. Transakcja zostaje wycofana, a numer błędu 50001 zamienia się na czytelny komunikat dla operatora, a nie na stos wywołań.

Po stronie przeglądarki wywołanie idzie asynchronicznie przez AJAX, więc ekran nie zamraża się na czas odpowiedzi serwera. Funkcja obsługi błędu odpowiada za sytuację, w której serwer milczy, na przykład przy utracie łączności terminala.

// przykładowe wywołanie AJAX z przeglądarki lub terminala
$.ajax({
    url: '/Przyjecie.aspx/Potwierdz',
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    data: JSON.stringify({ sscc: sscc, idLokalizacji: idLokalizacji }),
    success: function (odp) { pokazKomunikat(odp.d); },
    error: function () { pokazBlad('Brak odpowiedzi serwera'); }
});

Reguła: terminal potwierdza operację dopiero po odpowiedzi serwera. Brak odpowiedzi oznacza błąd, a nie sukces.

Model lokalny i chmurowy

Aplikacja działa jako instalacja lokalna albo w modelu magazynu w chmurze. Wybór modelu decyduje o sposobie udostępnienia systemu zespołowi, a nie o zakresie funkcji. W instalacji lokalnej serwer IIS i baza SQL Server stoją po stronie klienta, więc firma odpowiada za kopie zapasowe i aktualizacje systemu operacyjnego. W modelu chmurowym użytkownik korzysta z programu przez przeglądarkę, bez instalacji na stacji roboczej, a utrzymanie infrastruktury przejmuje dostawca.

Integracje z ERP i produktami rodziny

Produkty rodziny współdzielą architekturę i wymieniają dane. Awizowana dostawa z VSS.net trafia do kolejki dokumentów przyjęcia w programie magazynowym, więc magazyn widzi ją, zanim ciężarówka wjedzie na plac. Dla klienta oznacza to jedną bazę kontrahentów i jeden słownik towarów zamiast rozproszonych plików.

  • Dane wspólne - kontrahent wprowadzony raz jest widoczny w awizacjach i w magazynie.
  • Dokumenty powiązane - dostawę i jej przyjęcie da się prześledzić bez przepisywania numerów.

Z systemami ERP program współpracuje jako uzupełnienie istniejącego środowiska, a nie jego zamiennik. Konfiguracja wymaga zmapowania dokumentów magazynowych (PZ, WZ, RW, MM) po obu stronach interfejsu. Wymiana odbywa się zwykle w sposób ciągły, bez ręcznego eksportu i importu plików, co ogranicza pomyłki wynikające z powielania danych. Osobny przypadek stanowi integracja WMS z SAP, gdzie sposób wymiany zależy od wybranego trybu. Przegląd produktu znajduje się także na stronie Studio WMS.net na serwisie SoftwareStudio.

Wsparcie producenta po uruchomieniu

Po uruchomieniu produkcyjnym system pozostaje objęty wsparciem technicznym SoftwareStudio. Obejmuje ono pomoc w bieżących zgłoszeniach i aktualizacje programu, a także doradztwo przy rozbudowie o kolejne moduły. Zgłoszenie serwisowe trafia do zespołu producenta, który prowadzi je od przyjęcia przez diagnozę aż po zamknięcie, więc klient widzi status każdej sprawy.

Zgłoszenia i aktualizacje

Zgłoszenia dzieli się według wpływu na ciągłość pracy. Awaria ograniczająca bieżące operacje magazynu dostaje pierwszeństwo, natomiast wniosek o nową funkcję trafia do planu aktualizacji. Klient ma wgląd w status każdej sprawy, więc nie musi pytać, na jakim etapie jest jego zgłoszenie.

Wdrożenie nie kończy się w dniu startu, lecz otwiera dłuższą współpracę. Regularne aktualizacje i możliwość dołączania modułów utrzymują system dopasowany do skali firmy bez wymiany całego rozwiązania po kilku latach.

Reguła: zgłoszenia zatrzymujące pracę magazynu obsługuje się w pierwszej kolejności. Wnioski o nowe funkcje trafiają do harmonogramu kolejnych aktualizacji.

Serwerownia ze stojakami serwerów i monitorem wyświetlającym panel systemu
Infrastruktura serwerowa systemu - baza SQL Server i aplikacja pod opieką producenta

Koszt i pierwszy krok współpracy

Koszt wdrożenia zależy od liczby modułów i skali magazynu, a także od liczby stanowisk i zakresu integracji. Zamiast jednej sztywnej ceny licencji SoftwareStudio przygotowuje wycenę dopasowaną do zakresu projektu, która obejmuje licencję oraz pracę zespołu wdrożeniowego. Czynniki cenowe opisuje strona o cenie programu WMS.

Przed rozmową warto zebrać kilka informacji: liczbę magazynów i użytkowników, obecny sposób prowadzenia ewidencji oraz system ERP, z którym program ma się wymieniać danymi. Im dokładniejszy opis, tym trafniejsza wstępna wycena i lista modułów, a analiza przedwdrożeniowa zaczyna się od faktów zamiast od założeń.

Czynnik kosztuJak wpływa na wycenęCo przygotować przed rozmową
Liczba modułówKażdy dodatkowy produkt z rodziny wydłuża analizę i konfiguracjęLista obszarów, które mają objąć system
Skala magazynuLiczba lokalizacji i użytkowników zmienia zakres konfiguracji i szkoleńLiczba magazynów i stanowisk pracy
Integracje z ERPKażdy zewnętrzny system wymaga mapowania dokumentów i testówNazwa systemu ERP i lista wymienianych dokumentów
Model uruchomieniaInstalacja lokalna wymaga przygotowania serwera, chmura jest szybsza w starciePreferencja co do miejsca utrzymania systemu

Standardowe wdrożenie zajmuje od kilku do kilkunastu tygodni, zależnie od liczby modułów i wielkości magazynu. Pierwszym krokiem bywa bezpłatne demo online programu magazynowego albo rozmowa z zespołem wdrożeniowym, który na podstawie krótkiego opisu procesów pomoże dobrać produkt i zakres modułów.