image_pdfimage_print

Wyszukiwanie jednostek logistycznych

Jest to bardzo elastyczna analiza, która może posiadać bardzo duży szereg zastosowań. Jest ona tworzona na podstawie wcześniej przygotowanego skryptu C#, którego stworzenie można nam zlecić.

Jeden z naszych klientów wpisuje wysokość materiału w jego nazwie oraz przypisuje im wysokość podczas przyjmowania partii.

Dzięki analizie klient widzi listę z kolumnami zawierającymi między innymi: kody jednostek logistycznych, nazwy materiałów oraz wymiary przypisane do jednostek logistycznych.
Z poziomu analizy możemy również edytować jednostki, więc szybko możemy skorygować nieprawidłowości.

Analiza „Historia tworzenia jednostek”

Analiza pozwala na sprawdzenie ilości towarów w danej jednostce logistycznej oraz jakie dokumenty powodowały zmianę ilości towaru danej jednostki na magazynie.

Tworzenie analizy

W pierwszym oknie ustawiamy nazwę analizy oraz czy do filtru wyboru jednostek mają być dodane jednostki archiwalne (jednostki, które już nie istnieją).

Podstawowe ustawienia

Na kolejnej stronie wybieramy materiały, na podstawie których mają być przefiltrowane jednostki w celu ułatwienia wyboru jednostek oraz szybszego załadowania ich do widoku.

Filtrowanie po materiałach

Ostatnia strona kreatora pozwala na wybór poszczególnych jednostek, które mają być dodane do analizy.

Wybór jednostek logistycznych

Widok analizy

Tabela wygenerowanej analizy przestawia jednostki wybrane przez nas w kreatorze z podstawowymi danymi. Takimi jak ilość, rodzaj materiału lub miejsce usytuowanie jednostki.

Po rozwinięciu wyświetlają się dokumenty, na podstawie których została zmieniona ilość towaru.

Stan analizy nie ulega zmianie. Żeby mieć aktualną należy stworzyć nową.

Stany magazynowe + czasy

Analiza daje możliwość sprawdzenia stanu magazynowego dla poszczególnych materiałów z podziałem na dowolną jednostkę czasu.

Kreator analizy

1. Wchodzimy w Analizy z menu po lewej stronie-> Stany magazynowe + czasy.
2. Klikamy „Dodaj” podczas tworzenia pierwszej analizy lub „Wybór analizy” i dalej „Dodaj” podczas tworzenia kolejnych.
3. W pierwszym oknie kreatora określamy:

– nazwę analizy,
– zakres dat, dla których chcemy wyświetlić stan magazynowy,
– format daty, czyli jak będzie zapisana data i godzina w nagłówku tabeli po wyświetleniu analizy,
– przedział czasowy w formacie 01.02:03:04, gdzie:

  • 01 oznacza wyświetlanie danych z podziałem na dni
  • 02 oznacza wyświetlanie danych z podziałem na godziny
  • 03 oznacza wyświetlanie danych z podziałem na minuty
  • 04 oznacza wyświetlanie danych z podziałem na sekundy
Pierwsze okno kreatora

4. W kolejnym oknie określamy materiały, dla których ma zostać stworzona analiza.

Drugie okno kreatora

Wynik analizy

Wynikiem analizy jest stan magazynowy dla danego materiału z podziałem na dni, godziny, minuty lub sekundy w zależności od zdefiniowanego przedziału.

Wynik analizy

W analizie dane są archiwalne, nie nadpisują się. Jeżeli dla danego materiału coś się zmieni od momentu utworzenia analizy, należy ją wykonać od nowa.

Analiza „Stany magazynowe + magazyny”

Analiza oblicza aktualną ilość towaru z podziałem na magazyny.

Widok analizy

Opis analizy

Każdy wiersz odpowiada jednemu materiałowi, który znajduję się na magazynie.

Dane w analizie przestawiają:

  • podstawowe danie o materiale (nazwa, kod, kod zewnętrzny, EAN)
  • ilość w systemie zewnętrznym
  • ilość sumowana z wszystkich magazynów
  • ilości towaru na poszczególnych magazynach

Na dole analizy znajduje się jeszcze podsumowanie ilości z poszczególnych magazynów.

Analiza Wydań

Analiza oblicza średnią ilość wydań w danym czasie, odchylenie standardowe oraz  potrzebne zapasy. Dzięki niej możemy wygodnie i szybko planować dostawy naszych towarów.

W wyniku analizy otrzymujemy:
– Średnią ilość wydań w ciągu wybranego okresu czasu,
– Odchylenie standardowe,
– Zapas minimalny (zabezpieczający),
– Zapas maksymalny,
– Zapas informacyjny.

Przykładowy wynik analizy

Tworzenie analizy

Analiza jest sporządzana na podstawie wybranych przez użytkownika materiałów oraz  definiowanych parametrów takich jak:

– Daty analizy,

– Poziom obsługi klienta (domyślnie 99,5%) – w zależności od wpisanej wartości system oblicza długość czasu, jaką jesteśmy w stanie nie mieć danego produktu na magazynie,

– Czas realizacji zamówienia (dni robocze) – definiujemy planowany czas, w ciągu którego powinniśmy otrzymać zamówienie po jego złożeniu,

– Cykl składania zamówień (dni robocze) – definiujemy planowany czas pomiędzy kolejnymi zamówieniami od naszego dostawcy.


Konfiguracja drukarki fiskalnej POSNET

W celu prawidłowego działania Weaver WMS z drukarką fiskalną POSNET musi ona działać w interfejsie USB Thermal. Poniżej znajduje się instrukcja na przykładzie modelu Posnet Trio Online. Wybieramy opcje zaznaczone na zdjęciach.

Konfiguracja drukarki w systemie Weaver WMS

Ustawienia drukarki fiskalnej znajdują się Ustawieniach aplikacji w sekcji Ustawienia.
W tym oknie musimy wybrać protokół Posnet oraz odpowiedni numer portu COM.

Po zakończeniu konfiguracji należy uruchomić ponownie program Weaver WMS.

Integracja – Inpost

Integracja z serwisem Inpost pozwala na szybkie tworzenie wysyłek kurierskich oraz wysyłek do paczkomatu z poziomu systemu Weaver WMS. Dzięki temu możemy zaoszczędzić czas oraz zoptymalizować proces realizacji zamówień.

Konfiguracja integracji

W celu konfiguracji należy przejść do zakładki Inpost w oknie ustawień wysyłek kurierskich (Ustawienia > Wysyłki kurierskie). Następnie uzupełniamy pola odpowiednimi wartościami.

Identyfikator Organizacji – Numer otrzymamy po skontaktowaniu się z opiekunem handlowym Inpost,

Token – Numer otrzymamy po skontaktowaniu się z opiekunem handlowym Inpost,

Adres nadawcy z umowy – Zaznaczmy, jeśli adres nadawcy ma być pobierany z umowy z Inpostem,

Metoda wysłania:
– parcel_locker – nadanie w paczkomacie,
– pok – nadanie w Punkcie Obsługi Klienta,
– courier_pok – nadanie w Punkcie Obsługi Klienta obsługującym nadawanie przesyłek kurierskich,
– branch – nadanie w Oddziale,
– dispatch_order – Zlecenie odbioru – zamówienie kuriera,
– pop – nadanie w Punkcie Obsługi Przesyłek.

Kod paczkomatu nadawczego – pole uzupełniamy tylko, jeśli w sposobie wysłania wybraliśmy pok, courier_pok, parcel_locker.

Usługa – wybieramy domyślną usługę dla wysyłek kurierskich:
– inpost_locker_standard – przesyłka paczkomatowa – standardowa,
– inpost_locker_allegro – przesyłka paczkomatowa – Allegro Paczkomaty Inpost,
– inpost_courier_standard – przesyłka kurierska – standardowa,
– inpost_courier_allegro – przesyłka kurierska – Allegro Kurier24 Inpost,
– inpost_letter_allegro – przesyłka kurierska – Allegro MiniKurier24 Inpost,

Należy pamiętać jeszcze o uzupełnieniu naszych danych w pierwszej zakładce „Dane podstawowe”.

Analiza „Obłożenia stanowisk produkcyjnych”

Analiza pozwala na kontrolę ilości zleceń produkcyjnych na poszczególnych stanowiskach. Dzięki niej jesteśmy w stanie sprawdzić ich efektywność oraz nakład pracy.

Tworzenie analizy

W pierwszym oknie kreatora definiujemy ogólne ustawienia pobieranych dokumentów.
W pierwszej części definiujemy daty, z których system ma pobierać dokumenty Zleceń Produkcyjnych.
W drugiej części ustawiamy statusy dla pozycji, które mają być wyświetlane po stworzeniu analizy.
W trzeciej części możemy doprecyzować daty dla poszczególnych statusów.

W kolejnym oknie wybieramy stanowiska, dla których chcemy przeprowadzić analizę.

Na ostatnim etapie kreatora wybieramy dokumenty, które system ma wziąć pod uwagę, tworząc analizę. Na tym widoku pokazywane są dokumenty spełniające warunek czasowy określany w pierwszej sekcji pierwszego okna.

Opis analizy

W głównym wierszu analizy widzimy wybrane w kreatorze stanowiska oraz podsumowanie wartości pozycji przypisanych do danego stanowiska.

Po rozwinięciu stanowiska pokazuje się lista pozycji zleceń produkcyjnych przypisanych do danego stanowiska oraz informacji o nich.

Przykładowa konfiguracja

W wyniku stworzenia analizy z powyższą konfiguracją otrzymamy pozycje z dokumentów utworzonych między 16.09.2020, a 16.10.2020 o statusach „Oczekujące na realizację” oraz „W trakcie realizacji”. Dodatkowo zawęzimy pozycje o statusie „Oczekujące na realizację” po planowanej dacie od 01.10.2020 do 16.10.2020.

REST API – Weaver WMS

Weaver WMS działa w oparciu o API w architekturze REST, które wykorzystuje protokół HTTP i jego metody, takie jak:

GET – służy do pobierania danych (np. wyświetlania listy materiałów),

POST – tworzy nowe dane (np. dodaje nowego odbiorcę),

PUT – aktualizuje wcześniej dodane zasoby (np.  wprowadza zmiany do materiału),

DELETE – służy do usuwania danych.

Dane wchodzące i wychodzące z API są w formacie JSON. Każdy obiekt zawarty jest pomiędzy nawiasami klamrowymi, a jego poszczególne elementy oddzielane są przecinkami. Wartości elementów wpisywane są po ich nazwach oraz dwukropku.

Podczas wysyłania zapytań do lokalnego API, program Weaver WMS musi być uruchomiony.

Swagger

Sprawdzenie działania poszczególnych adresów URI (endpoints) przy pomocy swaggera zawartego w programie Weaver WMS.  

W tym celu należy postępować zgodnie z instrukcją zawartą na poniższym zdjęciu.

Ustawienia -> Konfiguracja bazy danych > Konfiguracja API > /swagger

Następnie, żeby uzyskać pełny dostęp, należy przejść do zakładki Authentication i nacisnąć przycisk Try it out. Teraz w miejsca, gdzie wpisany jest „string”, należy odpowiednio wpisać login oraz hasło użytkownika WMS’a w cudzysłowie.

Po wypełnieniu pól należy wykonać zapytanie przyciskiem Execute, kod 200 świadczy o prawidłowym wykonaniu polecenia.

Strukturę API w swaggerze można również sprawdzić w testowym panelu, do którego link znajduje się poniżej.

https://weaversoft.pl/api-demo/

Zrzut ekranu po prawidłowym wykonaniu autoryzacji.

Po autoryzacji jesteśmy w stanie wykonywać pozostałe zapytania, odpowiednio uzupełniając wartości elementów.

Poniżej znajduje się przykład dodawania odbiorcy (elementy, których nie uzupełniamy, należy usunąć, w tym przypadku uzupełniliśmy tylko wymagane dane).

Postman

Kolejnym sposobem sprawdzenia działania zapytań jest program Postman.

Na początek należy zaimportować kolekcję z zapytaniami.
1. Wejdź do swaggera.
2. Przejdź do strony w formacie JSON.

3. Zaznacz cały tekst (Ctrl + A) i skopiuj go (Ctrl + C).
4. W głównym oknie Postman kliknij przycisk Import w lewym górnym rogu.
5. Przejdź do zakładki Raw text i wklej wcześniej skopiowany tekst.

Po wykonaniu powyższych kroków w menu po lewej stronie w zakładce Collections powinna pojawić się kolekcja „WMS API”.

Pozostaje jeszcze skonfigurowanie  środowiska.
1. Kliknij w ikonę Manage Environments w prawym, górnym rogu.

2. Kliknij przycisk Add, a następnie wypełnij pola według poniższego zrzutu ekranu i ponownie kliknij przycisk Add.

3. W prawym górnym rogu wybierz z listy dodane środowisko.

W programie Postman również trzeba wykonać autoryzację przed wykonywaniem kolejnych zapytań. W tym celu należy z dodanej kolekcji wybrać /auth/sign-in, przejść do sekcji Body i zastąpić domyślnie wpisane wartości, loginem oraz hasłem użytkownika WMS.

Podczas wykonywania poszczególnych zapytań należy usuwać elementy, w których nie uzupełniamy wartości, ponieważ może to skutkować powstawaniem błędów.

Dodawanie materiału

{"Selected":false,
"Type":3,
"Reference":" HD2285",
"Name":"Bezprzewodowy skaner 22Bluetooth HD85",
"DefaultQuantityInContainer":0.0,
"Removed":false,
"Inactive":false,
"SingleUnitPrice":0.0,
"Unit":
{
    "Description":"szt.",
    "DescriptionEng":"pcs",
    "DescriptionDe":"psc",
    "DescriptionRu":"psc",
    "Details":"sztuka",
    "IsLenght":false,
    "Precision":4,
    "IsDefault":false,
    "Id":1
    },
    "TaxRate":{
        "Value":0.23000,
        "Name":"23%",
        "IsDefault":false,
        "TaxRateLegalType":0,
        "Id":1
        },
        "SuggestedPlace":{
            "Selected":false,
            "Reference":"MAG_S1_0_0",
            "Level":0,
            "Number":0,
            "QuantityOfMaterial":0.0,
            "Id":1
            },
            "PercantageProfit":0.0,
            "InitialQuantity":0.0,
            "HasChildren":false,
            "IsOnMachines":false,
            "IsDangerous":false,
            "CountSeparately":false,
            "AdvisingQuantity":0.0,
            "Length":0.0,"Width":0.0,
            "Height":0.0,
            "PackageRequireReference":false,
            "PackageDoNotAddToShippingDocument":false,
            "PackageIsTemporary":false,
            "PackageType":0,
            "RequiredQuantity":0.0,
            "OnCustomOrder":false,
            "LengthIsWidth":false,
            "AbcClass":0,
            "XyzClass":0,
            "MaterialTradeInfo":{
                "IsEcommerceShopPosition":true,
                "IsEcommerceAuctionPosition":false,
                "Id":0},"LengthStrategy":0,
                "WidthStrategy":0,
                "HeightStrategy":0,
                    "SplitPayment":false,
                    "RequireLotNumber":false,
                    "RequireLotExpiration":false,
                    "Id":0
                    }
Podgląd materiału dodanego przez program Postman

Dodanie odbiorcy

{
    "reference": "HDWR",
            "nameLine1": "HDWR",
            "nameLine2": "Hardware for business",
            "removed": false,
            "address": {
                "street": "Os. Piastowskie 53",
                "postalCode": "63-000",
                "city": "Środa Wlkp",
                "id": 0
            },
            "companyDetail": {
                "nip": "786-165-45-57",
                "nipCleaned": "7861654557",
                "ueVatPayer": false,
                "id": 481
            },
            "mail": "[email protected]",
            "shippingAddressesCount": 0,
            "multiplyQuantityWhileImportEdi": false,
            "notificationSetting": {
                "newOrderEmailSend": false,
                "newOrderEmailJoinAttachement": false,
                "id": 3737
            },
            "currency": {
                "symbol": "PLN",
                "name": "PLN",
                "id": 1
            },
            "paymentWay": 0,
            "paymentDays": 0,
            "salesBlockade": false,
            "creditLimit": false,
            "creditLimitAmout": 0.00000,
            "nip": "786-165-45-57",
            "name": "Waever Software Andrzej Lenkowski",
            "id": 473
}
Podgląd odbiorcy dodanego w programie Postman

Przekazanie awizacji przyjęcia

W celu przekazania awizacji przyjęcia trzeba najpierw pobrać metodą GET dane z odpowiednich adresów.
Pierwszą z nich jest dostawca, pobierany z adresu „suppliers”.

/suppliers?IncludeAllId=false&IdList=1

Kolejną potrzebną informacją jest numeracja, pobierana z adresu „document-numbers”. Dodatkowo możemy zastosować parametr „IncludeAllTypes” oraz „Types”.

Parametr "Types" dla przyjęć może przyjmować wartości:
- 0 - Zamówienie do dostawcy,
- 1 - Przyjęcie zewnętrzne,
- 2 - Przychód wewnętrzny.
/document-numbers?IncludeAllTypes=false&Types=1

Kolejnymi danymi są materiały oraz stawki VAT, pobierane z adresów odpowiednio „materials” oraz „tax-rates”.
W przypadku stawek VAT nie jesteśmy w stanie filtrować widoku, dlatego pobrać trzeba wszystkie stawki znajdujące się w systemie.

/materials?IncludeAllId=false&IdList=101
/tax-rates

Po pobraniu wszystkich danych możemy przejść do przesłania metodą POST awizacji przyjęcia poprzez adres „delivery-documents”.

W poniższym przykładzie dla większej przejrzystości zostały wpisane dane, które nie muszą być uzupełniane. Dla sekcji, takich jak: supplier, material, unit, taxrate, document-number, currency wystarczy jedynie podanie id.

/delivery-documents
{"Selected":false,
"Number":"PZ/2021/4",
"IssueDate":"2021-03-08T11:23:14.08771+01:00",
"PlannedDate":"2021-03-08T11:23:14.08771+01:00",
"DocumentStatus":0,
"DocumentType":0,
"Supplier":{
    "Reference":"Andrzej Lenkowski Weaver Software",
    "NameLine1":"Andrzej Lenkowski Weaver Software",
    "CompanyDetail":{
        "Nip":"7861654557"
    },
    "Id":1
    },
"Positions":[{
    "PlannedQuantity":2.0,
    "Material":{
        "Reference":"MAT1",
        "Name":"Testowy",
        "Id":101
    },
    "NetUnitPrice":0.0,
    "Unit":{
        "Description":"szt.",
        "Id":1
    },
    "TaxRate":{
        "Value":0.23000,
        "Id":11
    },
    "Status":0,
    "Orgin":0,
    "NetUnitPriceInCurrency":55.0,
    "Page":0,
    "PositionOrder":0,
    "No":0,
    "Id":-1
}],
"Owner":{
    "Reference":"Andrzej Lenkowski Weaver Software",
    "IsOwner":true,
    "Id":1
 },
"DocumentNumber":{
    "DocumentType":1,
    "DocumentName":"PZ",
    "Number":3,
    "Next":"PZ/2021/4",
    "Id":3
},
"Currency":{
    "Symbol":"PLN",
    "Name":"PLN",
    "Id":1
},
"Id":0}

Pobranie zrealizowanych dokumentów przyjęcia

W celu pobrania dokładnych danych dotyczących zrealizowanych dokumentów PZ należy najpierw pobrać dane z adresu „delivery-documents”.

/delivery-documents

Dzięki tej operacji uzyskamy listę dokumentów przyjęć wraz z ich statusami.

O statusie mówi nam parametr "documentStatus" i wyróżniamy w nim wartości:
- 0 - Oczekujący na realizację,
- 15 - Anulowany,
- 20 - W trakcie realizacji,
- 30 - Zrealizowany.

W tej chwili znamy już ID zrealizowanych dokumentów przyjęć, dlatego możemy przejść do adresu „delivery-documents/position-items” i filtrować go parametrami „IncludeAllDocuments” oraz „Documents”, w których wpisujemy odpowiednio „false” oraz ID dokumentu.

/delivery-documents/position-items?IncludeAllDocuments=false&Documents=105

Przekazanie awizacji wydania

W celu przekazania awizacji wydania schemat różni się jedynie tym, że zamiast dostawcy, pobrać należy odbiorcę z adresu „recipients”.

Podczas pobierania numeracji dla dokumentów wydania użyjemy dla parametru „Types” inne wartości.

Parametr "Types" dla wydań przyjmuje wartości:
- 3 - Zamówienia od odbiorców,
- 4 - Wydania zewnętrzne,
- 5 - Rozchody wewnętrzne.
/shipping-documents
{
"Number":"WZ/2021/2",
"IssueDate":"2021-03-08T13:18:05.2976294+01:00",
"PlannedDate":"2021-03-08T13:18:05.2976294+01:00",
"Status":0,
"Recipient":{
    "Reference":"Andrzej Lenkowski Weaver Software",
    "NameLine1":"Andrzej Lenkowski Weaver Software",
    "CompanyDetail":{
        "Nip":"7861654557"
    },
    "Id":1
},
"Positions":[{
    "PlannedQuantity":10.0,
    "Material":{
        "Reference":"MAT1",
        "Name":"Testowy",
        "Id":101
    },
    "NetUnitPriceBeforeDiscount":150.0,
    "Unit":{
        "Description":"szt.",
        "Id":1
    },
    "TaxRate":{
        "Value":0.23000,
        "Id":11
    },
    "Status":0,
    "PositionOrder":0,
    "Id":-1
    }],
"Currency":{
    "Symbol":"PLN",
    "Id":1
},
"ShippingAddress":{
    "Name":"Weaver Software ",
    "Street":"os. Piastowskie 53",
    "PostalCode":"63-000",
    "City":"Środa Wielkopolska",
    "ContactPerson":"Bartosz Walerowicz",
    "PhoneNumber":"690042333",
    "Email":"[email protected]",
    "Country":{
        "Name":"Polska",
        "Id":1
    },
    "Id":1
},
"DocumentNumber":{
    "DocumentType":4,
    "DocumentName":"WZ",
    "Number":1,
    "ActualPattern":"[Nazwa]/[Rok]/[Numer]",
    "Next":"WZ/2021/2",
    "Id":12
}
}

Pobieranie dokumentów WZ

Na poniższym przykładzie pobieramy dokumenty WZ z zaznaczonym filtrem (utworzone po dacie 01.09.2020r.) oraz podzielone na 2 elementy na stronę.

Pobieranie jednostek logistycznych dla właściciela

Żeby pobrać wszystkich dostawców, którzy mogą być właścicielami, trzeba użyć adresu „suppliers” z parametrem „IsOwner”.

/suppliers?IsOwner=true

W celu pobrania jednostek logistycznych przypisanych do konkretnego właściciela należy użyć adresu „logistic-units” z parametrami „IncludeAllOwners” oraz „Owners”, w których wpisujemy odpowiednio „false” i ID właściciela.

/logistic-units?IncludeAllOwners=false&Owners=1

Realizacja zlecenia produkcyjnego na urządzeniu mobilnym Android

System magazynowy Weaver WMS umożliwia realizację procesu produkcji w przedsiębiorstwie. Możliwe jest rejestrowanie wydawanych surowców, przyjmowanych wyrobów gotowych oraz czasów pracy na poszczególnych stanowiskach produkcyjnych.

Poniższy film obrazuje skrócony proces produkcyjny na przykładnie demontażu elementu oraz pakowania czytnika kodów kresowych.