www.tres.pl - Baza wiedzy Trawers ERP - Spis treści
Patrz też: SOA Architektura wymiany danych SOA Przykłady i ćwiczenia SOA Przykłady rozwiązań SOA Funkcje OutBound i InBound 1. Opis ogólny 2. Funkcje SOA OutBound InBound 3. Polecenia pobrania z bazy danych programu Trawers (en: OutBound) 4. Polecenia dopisywania do bazy danych programu Trawers (en: InBound) 5. Wymagania i ograniczenia SOA pracuje na bieżąco Asortyment w KIM wg pola: INDEKS Format daty i czasu Parametr: changeSince (ModTime) Zachować powiązania danych 6. Budowa komunikatu z żądaniem usługi <sessionId> <user> Przykłady komunikatów 7. PiO Pytania i odpowiedzi 8. Tematy powiązane 1. SOA Opis ogólny SOA (en: Service Oriented Architecture), to architektura systemów informatycznych, która pozwala na wymianę informacji między różnymi systemami, które nie mają naturalnych interfejsów. W programie Trawers SOA to są usługi wymiany danych. Konsument (Inny program) wysyła do Dostawcy (Trawers) żądanie usługi. Trawers wykonuje usługę i odsyła odpowiedź (wynik). Np. Inny program prosi o zestawienie z aktualną ilością towarów w kartotece magazynowej Trawersa, prosi o wpisanie swojego zamówienia do bazy zamówień sprzedaży w programie Trawers. 2. Funkcje SOA * Pobieranie z bazy danych programu Trawers (en: OutBound) Polecenia, które powodują pobranie danych z bazy danych i przekazanie ich w parametrach odpowiedzi. * Zapisywanie do bazy danych programu Trawers (en: InBound) Polecenia, które powodują zapis danych podanych w parametrach do bazy danych. 3. Polecenia pobrania z bazy danych programu Trawers (en: OutBound) 3.1 Odbiorcy CustomersRequest 3.2 Odbiorca wg symbolu CustomerGetByKey 3.3 Dostawcy Vendors 3.4 Dostawca wg symbolu VendorGetByKey 3.5 Uwierzytelnienie CustomerAuthenticate 3.6 Grupy kontrahentów CustomerGroupsRequest 3.7 Należności odbiorców LiabilitiesRequest 3.8 Adresy odbiorcy CustomerAddresses 3.9 Adresy dostawcy VendorAddresses 3.10 Rodzaj opakowania wg symbolu PackageGetByKey 3.11 Indeksy KIM ProductsRequest 3.12 Indeksy KIM wg warunku ProductsFind 3.13 Indeks KIM wg symbolu ProductGetByKey 3.14 Grupy indeksów ProductGroupsRequest 3.15 Grupa indeksów wg symbolu ProductGroupGetByKey 3.16 Drzewo grup indeksów ProductGroupsTree 3.17 Podgrupy grupy indeksów ProductGroupsSubGroupsOf 3.18 Indeksy KIM wg rodziny ProductFamilyList 3.19 Rodzina wg symbolu ProductFamilyGetByKey 3.20 Kody komplementarne KIK ComplementaryProducts 3.21 Opisy dodatkowe kart KIM StockInfo 3.22 Opis dodatkowy karty KIM StockInfoGetByKey 3.23 Ceny sprzedaży PricesRequest 3.24 Magazyny Warehauses 3.25 Magazyny i stany DepotsRequest 3.26 Stany indeksów Stock 3.27 Stany indeksu w magazynach StockAtDepotRequest 3.28 Jednostki miary ChainsRequest 3.29 Upusty od towarów DiscountsRequest 3.30 Operatorzy UsersRequest 3.31 Zam sprzedaży Wszystkie Orders 3.32 Zam sprzedaży Odbiorcy OrdersGet 3.33 Zam sprzedaży Wg numeru OrderGetByID 3.34 Zam sprzedaży Do kompletacji OrdersToComplete 3.35 Diagram Gantta GanttsView 3.36 Harmon Ograniczone zasoby FiniteSchedule 3.37 Harmon Nieogranicz zasoby InfiniteSchedule 3.38 Raport o stanie firmy ExecutiveSummaryRequest 3.39 Marża w roku bieżącym MarginInYearRequest 3.40 Faktury sprzedaży SalesInvoicesGet 3.41 Faktura sprzedaży EDI SalesInvoiceGetById [INVOICE] 3.42 Faktura korekty EDI SalesCorrectiveInvoiceGetById [INVOICE] 3.43 Faktura sprzedaży/korekty SalesCorrectiveInvoiceGetByRefno 3.44 Wydruk faktury sprzedaży PrintSalesInvoiceRequest 3.45 Zapis pliku raportu w PM Report 3.46 Wydruk RaportyXML ReportPrint 3.47 Odczyt z bazy danych TableGet 3.48 Załączniki karty KIM ProductAttachments 3.49 Pobranie załącznika KIM ProductAttachmentGetByKey 3.50 Załączniki grupy indeksów ProductGroupAttachments 3.51 Pobranie załącznika grupy ProductGroupAttachmentGetByKey 3.52 Załączniki karty Rodzina FamilyAttachments 3.53 Pobranie załącznika Rodziny FamilyAttachmentGetByKey 3.54 Raportowanie do TZMO TZMO 3.55 EBI kartoteka oddziałów EBI_MAG 3.56 EBI kartoteka klientów EBI_KLT 3.57 EBI kartoteka asortymentu EBI_ASO 3.58 EBI kartoteka jednostek EBI_ASJ 3.59 EBI słowniki EBI_SLO 3.60 EBI stany magazynowe EBI_SMG 3.61 EBI raport sprzedaży EBI_RPS 3.62 Informacje o programie About 3.63 Propozycja zam zakupu Czyt PurchaseProposalGet 3.64 Wydruk zam zakupu PrintPurchaseOrder 3.65 Usługi serwisowe servicesRequest 3.66 Produkty serwisowane itemInstances 3.67 Serwisanci serviceTechnicians 3.1 Odbiorcy [CustomersRequest] Otrzymamy dane wszystkich odbiorców z kartoteki Parametry: - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime np. 20xx-06-01T10:45:00 np. 20xx-06-01T10:45 np. 20xx-06-01 NOTE: Aby pobrać wszystkich odbiorców, parametr ChangeSince należy pominąć lub pozostawić pusty NOTE: Data ModTime zapisana w kartach odbiorców (199) Odpowiedź: - symbol key - symbol code - nip nip - nazwa name - krótka nazwa shortName - osoba do kontaktu person - kraj NIP countryCodeTax - kraj adres countryCode - miasto city - kod pocztowy zip - ulica street - nr domu houseNumber - nr lokalu appartmentNumber - e-mail mail - fax fax - telefon tel - waluta currency - limit kredytowy creditLimit - stały upust 1 discount - numer ceny sprzedaży priceList - sposób płatności payment - liczba dni do zapłaty maturity - czy płatnik VAT vat - czy zablokowany enabled - czy blokada zamówień ordersBlocked [== !enabled] - uwagi note 3.2 Odbiorca wg symbolu [CustomerGetByKey] Otrzymamy dane wskazanego odbiorcy z kartoteki Parametry: - symbol customerKey np. .... <CustomerGetByKey> <customerKey>000001</customerKey> </CustomerGetByKey> .... W odpowiedzi informacje jak w CustomersRequest 3.3 Dostawcy [Vendors] Otrzymamy dane wszystkich dostawców z kartoteki Parametry: - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime np. 20xx-06-01T10:45:00 np. 20xx-06-01T10:45 np. 20xx-06-01 NOTE: Aby pobrać wszystkich dostawców parametr ChangeSince należy pominąć lub pozostawić pusty NOTE: Data ModTime zapisana w kartach dostawców (179) Odpowiedź: - symbol key - symbol code - nip nip - nazwa name - krótka nazwa shortName - osoba do kontaktu person - kraj NIP countryCodeTax - kraj adres countryCode - miasto city - kod pocztowy zip - ulica street - nr domu houseNumber - nr lokalu appartmentNumber - e-mail mail - fax fax - telefon tel - waluta currency - limit kredytowy creditLimit - stały upust 1 discount - numer ceny sprzedaży priceList - sposób płatności payment - liczba dni do zapłaty maturity - czy płatnik VAT vat - czy zablokowany enabled - czy blokada zamówień ordersBlocked [== !enabled] - uwagi note 3.4 Dostawca wg symbolu [VendorGetByKey] Otrzymamy dane wskazanego dostawcy z kartoteki Parametry: - symbol vendorKey np. .... <VendorGetByKey> <vendorKey>000001</vendorKey> </VendorGetByKey> .... W odpowiedzi informacje jak w Vendors 3.5 Uwierzytelnienie [CustomerAuthenticate] Program sprawdza, czy osoba z podanym e-mail i hasłem, ma prawo do zdalnego dostępu (prawo do zalogowania się). Program odszuka osobę o podanym e-mail w kartotece osób do kontaktu. Osoby do kontaktu Program sprawdzi hasło i prawo do zdalnego dostępu. Jeżeli ma prawo, to program zwróci dane odbiorcy i identyfikator przyznanej sesji <sessionId>. <sessionId> należy przekazywać w nagłówkach kolejnych zapytań. <sessionId> traci ważność po dniu lub ponownym uruchomieniu serwera SOA. Wystąpienie błędu [Sesja wygasła...] wymaga ponownego wywołania CustomerAuthenticate w celu przyznania nowego <sessionId>. --> 6. Budowa komunikatu z żądaniem usługi Przekazanie <sessionId> oznacza w niektórych funkcjach, że nie trzeba przekazywać <customerKey>. Patrz też: CustomerAuthenticate w opisach poszczególnych funkcji SOA. Parametry: - symbol email - nazwa password Odpowiedź: zwraca błąd, gdy nie ma prawa do zdalnego dostępu lub: - id sesji sessionId - osoba person - nr telefonu osoby tel - adres e-mail osoby mail i pozostałe dane odbiorcy jak w CustomersRequest 3.6 Grupy kontrahentów [CustomerGroupsRequest] Otrzymamy tabele kontrahentów wg grup, upustów i przedstawicieli handlowych (z kart odbiorców) NOTE: Funkcja specjalistyczna. Wymagana przez jeden z portali internetowych. Parametry: nie ma parametrów Odpowiedź: - symbol key - nazwa name - typ type grupa kontrahenta regular tabela upustów bydiscount przedstawiciel handlowy rep Przykład odpowiedzi: <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header/> <soap:Body> <CustomerGroupsRequest> <customerGroup> <key>00 </key> <name>Adresy marketingowe</name> <type>REGULAR</type> Dalej lista symboli odbiorców z wpisaną w karcie grupą [00] <customer><key>000000</key></customer> <customer><key>000002</key></customer> ... </customerGroup> <customerGroup> <key>10 </key> <name>Odbiorcy hurtowi</name> <type>REGULAR</type> Dalej lista symboli odbiorców z wpisaną w karcie grupą [10] <customer><key>000001</key></customer> <customer><key>000004</key></customer> ... </customerGroup> <customerGroup> <key>20 </key> <name>Odbiorcy detaliczni</name> <type>REGULAR</type> W tej grupe nie ma żadnego odbiorcy </customerGroup> ... <customerGroup> <key> 1</key> Symbol wpisany w polu przedstawiciel handlowy w karcie odbiorcy <name> 1</name> Powtórzony symbol <type>REP</type> Dalej lista symboli kart odbiorców z wpisanym: przedstawiciel handlowy [ 1] <customer><key>000001</key></customer> <customer><key>000003</key></customer> ... </customerGroup> <customerGroup> <key> 2</key> <name> 2</name> <type>REP</type> Dalej lista symboli kart odbiorców z wpisanym: przedstawiciel handlowy [ 2] <customer><key>000000</key></customer> <customer><key>000004</key></customer> ... </customerGroup> ... <customerGroup> <key>UPUST1</key> Symbol wpisany w polu tabela upustu w karcie odbiorcy <name>UPUST1</name> Powtórzony symbol <type>BYDISCOUNT</type> Dalej lista symboli kart odbiorców z wpisaną tabelą upustu [UPUST1] <customer><key>000001</key></customer> <customer><key>000003</key></customer> ... </CustomerGroupsRequest> </soap:Body> </soap:Envelope> 3.7 Należności odbiorców [LiabilitiesRequest] Otrzymamy nierozliczone należności (wszystkie, nierozliczone) (ew. można rozbudować o parametry wskazujące konkretny rozrachunek) Parametry: nie ma parametrów Odpowiedź: - klucz pozycji dokum key (remittance key) 000001130818FA0001N 0 (przykłady w opisie [PaymentsRequest] Zapłata należności - symbol odbiorcy customerKey - data powstania create - termin maturity - nazwa dokumentu name - wartość (w PLN) value - pozostało do zapłaty remainder np. Pytanie .... <soap:Body> <LiabilitiesRequest/> <soap:Body> .... np. Odpowiedź .... <remittance> <key>005046251117F00008N 0</key> <name>Faktura sprzedaży nr: F00008</name> <value>1871.38</value> <create>2025-11-17</create> <enabled>true</enabled> <maturity>2025-12-08</maturity> <remainder>1871.38</remainder> <customerKey>005046</customerKey> </remittance> <remittance> <key>005046251124F00017N 0</key> <name>Faktura sprzedaży nr: F00017</name> <value>6514.31</value> <create>2025-11-24</create> <enabled>true</enabled> <maturity>2025-12-15</maturity> <remainder>6514.31</remainder> <customerKey>005046</customerKey> </remittance> .... 3.8 Adresy odbiorcy [CustomerAddresses] Otrzymamy adresy odbiorcy Parametry: - symbol odbiorcy customerKey - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime np. 20xx-06-01T10:45:00 NOTE: Aby pobrać wszystkie adresy, parametr ChangeSince należy pominąć lub pozostawić pusty NOTE: Data ModTime zapisana w kartach adresów (299) Odpowiedź: - aktywny enabled - symbol key - nazwa name - czy do wysyłki isShipTo - ILN ILN - symbol kraju (PL) country - kod pocztowy zip - miasto city - ulica street - nr domu houseNumber - nr lokalu flatNumber - symbol oddziału depot - przedstawiciel handl salesRep 3.9 Adresy dostawcy [VendorAddresses] Otrzymamy adresy dostawcy Parametry: - symbol dostawcy vendorKey - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime np. 20xx-06-01T10:45:00 NOTE: Aby pobrać wszystkie adresy, parametr ChangeSince należy pominąć lub pozostawić pusty NOTE: Data ModTime zapisana w kartach adresów (298) Odpowiedź: - aktywny enabled - symbol key - nazwa name - czy do wysyłki isShipTo - ILN ILN - symbol kraju (PL) country - kod pocztowy zip - miasto city - ulica street - nr domu houseNumber - nr lokalu flatNumber - symbol oddziału depot - przedstawiciel handl salesRep 3.10 Rodzaj opakowania wg symbolu [PackageGetByKey] Zwraca dane z karty Rodzaju opakowania Parametry: - symbol rodzaju opakowania key Odpowiedź: - symbol rodzaju opakowania key - nazwa name - waga w kg weight - opłata recyklingowa fee - max ładowność w kg maxLoadCapacity - max szerokość w m maxWidth - max wysokość w m maxHeight - max długość w m maxLength 3.11 Indeksy KIM [ProductsRequest] Zwraca listę indeksów KIM. Uwzględnia warunek (filtr) dla kart KIM, ustalony dla operatora wykonującego SOA. Warunki (filtry) operatorów Parametry: - symbol odbiorcy customerKey [można pominąć] gdy podany, to program poda cenę sprzedaży dla odbiorcy domyślnie wg id sesji, gdy przekazano --> CustomerAuthenticate Poniżej, w opisie: waluta (currency) opisano procedurę wyszukiwania ceny dla odbiorcy w cennikach sprzedaży. - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime np. 20xx-06-01T10:45:00 NOTE: Aby pobrać wszystkie produkty, parametr ChangeSince należy pominąć lub pozostawić pusty NOTE: Data ModTime zapisana w kartach KIM (229) Odpowiedź: - indeks key - ean13 code - nazwa name - PKWiU pkwiu - ilość w opakowaniu packed - grupa defGroupKey - grupa upustowa rebateGroupKey - j miary sprzedaży defChainKey - dostawca publisher - stawka VAT vat - ostatni rozchód lastIssue - ostatni przychód lastReceipt - ostatni zakupu ZO lastPurchase - cena ostat przychodu lastReceiptPrice - cena ostat zakupu ZO lastPurchasePrice - opis (remark) info - opis (memo) memo - klasa energetyczna eeIndex - rodzina family - podtyp zapasu subType - czy zablokowany enabled - symbol opakowania packageKey - szerokość opakowania packageWidth - długość opakowania packageLength - wysokość opakowania packageHeight Wg wymiarów opakowania (kubatura) można obliczyć koszty transportu. Wykorzystać taryfę kuriera (przewoźnika). - przelicznik JmS miary sprzedaży salesConversionFactor - liczba paczek dla JmS standardPackQuantity - ilość na palecie unitsPerPallet - ilość sztuk w j.miary zapasu unitsPerPack np. jednostką miary zapasu jest paczka, która zwiera 5 gąbek - atrybuty(cechy) indeksu features Stosowane do wskazania atrybutów (cech) produktu w aplikacjach internetowych. KIM Tabela atrybutów W sklepie internetowym można wskazać atrybuty asortymentu, np. kolor i rozmiar i przekazać zamówienie do NA System sprzedaży. Program wpisze wybory do zbioru konfiguracji zamówienia sprzedaży. Patrz funkcja SOA: [OrderNew], parametry: <feature> Funkcja przekazuje, np. ... <feature> <name>Kolor</name> <--- Kolor (nazwa atrybutu, cechy) <value>Biały</value> </feature> <--- Biały (wartość) <feature> <name>Model</name> <--- Model <value>Prestiż</value> </feature><--- Prestiż <feature> <name>Rozmiar</name> <--- Rozmiar <value>40x60</value> </feature> <--- 40x60 ... - cena sprzedaży price - waluta currency Program szuka ceny i waluty w cennikach sprzedaży Cenniki sprzedaży Podaje cenę sprzedaży(1) z cennika katalogowego [60] Gdy podany jest odbiorca (customerKey), to szuka ceny dla odbiorcy. * Szuka bieżącego cennika w walucie odbiorcy wg kolejności: najpierw cennika kontraktowego [30] następnie cennika magazynowego [50] dla magazynu wskazanego w karcie odbiorcy * Z cennika pobiera cenę o numerze (1..6) wskazanym w karcie odbiorcy * Pobraną cenę zmniejszy o upust przysługujący odbiorcy. Upust obliczy wg metody wskazanej w karcie odbiorcy. NOTE: Gdy nie znajdzie cennika, to w odpowiedzi nie będzie znacznika ceny ani waluty - liczba zwróconych indeksów productsCount 3.12 Indeksy KIM wg warunku [ProductsFind] Zwraca listę indeksów KIM spełniających podane kryteria Uwzględnia warunek (filtr) dla kart KIM, ustalony dla operatora wykonującego SOA. Warunki (filtry) operatorów Parametry: - symbol odbiorcy customerKey [można pominąć] gdy podany, to program: a) poda ceny ceny sprzedaży z cennika kontraktowego lub magazynowego wg magazynu wpisanego w karcie odbiorcy b) poda cenę o numerze wpisanym w karcie odbiorcy c) poda cenę z cennika w walucie odbiorcy d) uwzględni upust przysługujący odbiorcy domyślnie wg id sesji, gdy przekazano --> CustomerAuthenticate - fragment indeksu key [można pominąć] - fragment EAN13 code [można pominąć] - fragment nazwy name [można pominąć] - fragment rodziny family [można pominąć] - grupa produktu defGroupKey [można pominąć] Program uwzględni drzewo grup. Zwróci produkty należące do wskazanej grupy i jej podgrup (gałęzi drzewa). - offset offset [można pominąć] pominie podaną liczbę indeksów - limit limit [można pominąć] ogranicza liczbę zwracanych indeksów - kod MPN MPN [można pominąć] - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime np. 20xx-06-01T10:45:00 NOTE: Aby pobrać wszystkie produkty, parametr ChangSince należy pominąć lub pozostawić pusty NOTE: Data ModTime zapisana w kartach KIM (229) Program sprawdza, czy odpowiednie pole w karcie KIM zawiera podaną wartość. Jeżeli tak, to zwraca indeks. Wszystkie parametry można pominąć. Odpowiedź jak w: [ProductsRequest] 3.13 Indeks KIM wg symbolu [ProductGetByKey] Zwraca dane z karty indeksu KIM. Parametry: - indeks key - symbol odbiorcy customerKey [można pominąć] gdy podany, to program: a) poda cenę sprzedaży z cennika kontraktowego lub magazynowego wg magazynu wpisanego w karcie odbiorcy (wg hierarchii szukania cen sprzedaży) b) poda cenę nr 1..6 (wg numeru w karcie odbiorcy) c) poda cenę z cennika w walucie odbiorcy d) uwzględni upust przysługujący odbiorcy domyślnie wg id sesji, gdy przekazano --> CustomerAuthenticate Cenniki sprzedaży Odpowiedź jak w: [ProductsRequest] np. .... <ProductGetByKey> <key>INDEKS-1</key> </ProductGetByKey> .... 3.14 Grupy indeksów [ProductGroupsRequest] Otrzymamy grupy indeksów Parametry: nie ma parametrów Odpowiedź: - symbol key - nazwa name - grupa nadrzędna parent - indeks key 3.15 Grupa indeksów wg symbolu [ProductGroupGetByKey] Otrzymamy informację o grupie indeksów Parametr: - symbol grupy defGroupKey Odpowiedź: - symbol key - nazwa name - rodzaj grupy type [ ] Dowolne [M] Magazynowe [U] Usługi własne/Zestawy sprzedażne [O] Usługi obce [X] Pozostałe - grupa nadrzędna parent - długa nazwa fullName - sprawdzać marżę checkMargin - marzy % margin - opis (memo) memo np. .... <ProductGroupGetByKey> <defGroupKey>01</defGroupKey> </ProductGroupGetByKey> .... 3.16 Drzewo grup indeksów [ProductGroupsTree] Otrzymamy drzewo grup indeksów Parametry: nie ma parametrów Odpowiedź: - symbol key - nazwa name - grupa nadrzędna parent - grupy podrzędne subgroups 3.17 Podgrupy grupy indeksów [ProductGroupsSubGroupsOf] Otrzymamy grupy indeksów o wskazanej grupie nadrzędnej Parametr: - symbol grupy defGroupKey [można pominąć] Odpowiedź: - symbol key - nazwa name - grupa nadrzędna parent Gdy nie ma parametru: defGroupKey, to program zwróci grupy indeksów bez przypisanej grupy nadrzędnej 3.18 Indeksy KIM wg rodziny [ProductFamilyList] Zwraca listę indeksów KIM wskazanej rodziny Parametry: - symbol rodziny family Odpowiedź jak w: [ProductsRequest] 3.19 Rodzina wg symbolu [ProductFamilyGetByKey] Zwraca informację o rodzinie Parametr: - symbol rodziny family Odpowiedź: - symbol family - nazwa name - opis (memo) memo 3.20 Kody komplementarne KIK [ComplementaryProducts] Zwraca listę kodów komplementarnych KIK wskazanego indeksu KIM. Parametry: - Indeks KIM productKey - Cel dowiązania type [można pominąć] [10] Inne [20] Sprzedaż stacjonarna [30] Sprzedaż internetowa [40] Marketing [50] Technologia Odpowiedź: - Indeks KIM bazowy productKey - Cel dowiązania type - Indeks KIM dowiązany complementaryKey - Ilość indeksu dowiązanego quantity 3.21 Opisy dodatkowe kart KIM [StockInfo] Zwraca dodatkowe opisy (memo) i (remark) wszystkich kart KIM. Parametry: - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime np. 20xx-06-01T10:45:00 NOTE: Aby pobrać wszystkie opisy, parametr ChangeSince należy pominąć lub pozostawić pusty NOTE: Data ModTime zapisana w kartach KIM (229) Odpowiedź: - indeks KIM productKey - opis (remark) info - opis (memo) memo 3.22 Opis dodatkowy karty KIM [StockInfoGetByKey] Zwraca dodatkowy opis (memo) i (remark) wskazanej karty KIM. Parametr: - indeks KIM productKey Odpowiedź: - indeks KIM productKey - opis (remark) info - opis (memo) memo 3.23 Ceny sprzedaży [PricesRequest] Otrzymamy obowiązujące aktualnie cenniki w PLN Parametry: - indeks KIM productKey [można pominąć] ograniczy listę do wskazanego indeksu KIM - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime np. 20xx-06-01T10:45:00 NOTE: Aby pobrać wszystkie ceny, parametr ChangeSince należy pominąć lub pozostawić pusty NOTE: Data ModTime zapisana w rekordach pozycji [1] cenników sprzedaży (211) Odpowiedź: - typ type [60] katalogowy SALE [50] katalogowy dla magazynu DEPOT [40] dla grup odbiorców GROUP [30] kontraktowy CUSTOMER [25] kontraktowy dla wysłać do SHIPTO [20] promocyjny PROMO [10] promocyjny dla magazynu PROMO_DEPOT - nazwa name - nr ceny idx - id cennika extid Zależnie od typu cennika jest to: SALE - pusty DEPOT - magazyn GROUP - grupa CUSTOMER - odbiorca SHIPTO - odbiorca PROMO - symbol cennika PROMO_DEPOT - magazyn - klucz cennika key typ(2)+extid(6)+symbol(6) - liczyć upust allowDiscounts - rodzaj ceny pricesType NETTO, BRUTTO - obowiązuje od fromDate - obowiązuje do toDate Cenniki sprzedaży 3.24 Magazyny [Warehouses] Zwraca listę wszystkich magazynów (lub tylko wskazany) Parametry: - symbol mag key [można pominąć] ograniczy wynik do wskazanego magazynu Odpowiedź: - symbol mag key - nazwa name - aktywny enabled 3.25 Magazyny i stany [DepotsRequest] Otrzymamy listę magazynów wraz z indeksami KIM i ilościami (stock) Parametry: - symbol mag key [można pominąć] ograniczy wynik do wskazanego magazynu - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime NOTE: Aby pobrać wszystkie elementy, parametr ChangeSince należy pominąć lub pozostawić pusty NOTE: Data ModTime zapisana w kartach KSOM (224) Odpowiedź: <depot> - symbol mag key - nazwa mag name - status mag enabled (aktywny / niaktywny) <stock> - indeks KIM productKey - nazwa KIM name - ilość dostępna value - ilość na stanie quantityOnHand Np. <depot> <key>01</key> <name>Mag główny</name> <type>MAIN</type> <stock> <name>Barwnik do tkanin - indygo</name> <value>135.00</value> <productKey>BARWNIK-INDYGO</productKey> <quantityOnHand>4.000</quantityOnHand> </stock> ... ... ... </depot> 3.26 Stany indeksów [Stock] Otrzymamy listę indeksów z KIM z ilością dostępną i ilością na stanie. Parametry: - indeks KIM productKey [można pominąć] Gdy podany, to zwraca tylko podany indeks KIM. Gdy nie podany, to zwraca wszystkie indeksy KIM. - magazyn depot [można pominąć] Gdy podany, to zwraca ilość dostępną indeksu w tym magazynie. Gdy nie podany, to zwraca ilość dostępną we wszystkich mag. Symbol magazynu [depot] nie służy do zawężania odpowiedzi do indeksów KIM dla których jest karta KSOM w podanym magazynie. Symbol ten, gdy podany, wskazuje dla którego magazynu mają być obliczone i zwrócone w odpowiedzi stany zapasów. - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime NOTE: Najwyższa data ModTime zapisana w kartach KSOM (224) Program przegląda wszystkie karty KSOM. Nie uwzględnia param: magazyn Zwróci wynik nawet jeżeli zapis nastąpił w innym magazynie niż podany. Odpowiedź: - indeks KIM productKey - nazwa indeksu KIM name - ilość dostępna value - ilość na stanie quantityOnHand 3.27 Stany indeksu w magazynach [StockAtDepotRequest] Otrzymamy listę magazynów, w których jest wskazany indeks wraz z ilością dostępną Parametry: - indeks KIM productKey - magazyn depot [można pominąć] ograniczy listę do jednego magazynu - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime NOTE: Data ModTime zapisana w kartach KSOM (224) Odpowiedź: - magazyn depot - ilość dostępna value - ilość na stanie quantityOnHand - data ost rozchodu lastIssue - data ost przychodu lastReceipt - data ost zakupu ZO lastPurchase - cena ost przychodu lastReceiptPrice - cena ost zakupu ZO lastPurchasePrice 3.28 Jednostki miary [ChainsRequest] Otrzymamy tabele jednostek miar Parametry: nie ma parametrów Odpowiedź: - symbol key - nazwa name 3.29 Upusty od towarów [DiscountsRequest] Otrzymamy dane o upustach od ceny sprzedaży Parametry: nie ma parametrów Odpowiedź: - symbol customerGroupKey - grupa upustowa productGroupKey - wartość % value 3.30 Operatorzy [UsersRequest] Otrzymamy listę operatorów Parametry: nie ma parametrów Odpowiedź: - symbol operatora key - imię forename - nazwisko surname 3.31 Zam sprzedaży Wszystkie [Orders] Otrzymamy [ZL] Zamówienie sprzedaży NA (wszystkie) Parametry: - offset offset [można pominąć] pominie podaną liczbę zamówień - limit limit [można pominąć] ogranicza liczbę zwracanych zamówień - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime NOTE: Data ModTime zapisana w rekordach pozycji zamówień sprzedaży (197) Gdy podano <limit>, to program może zawyżyć sumaryczną ilość zamówień <resultsCount>. Po odnalezieniu oczekiwanych <limit> zamówień nie sprawdza warunków dla pozostałych. Pytając o kolejne zamówienia program będzie zwracał coraz mniejszą wartość <resultsCount> aż do osiągnięcia prawidłowej wartości po zapytaniu o ostatnią partię wyników. Odpowiedź: - numer zamówienia erpKey - status status FULFILLED - zrealizowane (wszystkie pozycje wydane lub zafakturowane lub zamknięte) UNFULFILLED - do realizacji - symbol odbiorcy customerKey można pominąć, gdy przekazano id sesji --> CustomerAuthenticate - numer obcy nr - metoda płatności payment - data utworzenia creationDate - termin realizacji realizationDate - termin płatności paymentDate - indeks KIM productKey - nazwa productName - numer pozycji idx - cena sprzedaży price - upust discount - ilość quantity - ilość fakturowana soldQuantity (ziloscz) - magazyn warehouse - jednostka sprzedaży chainkey - cena w walucie priceInCurrency/price - waluta currency - termin realizacji realizationDate - Data 1-szej realiz. firstDocDate - Data ostat. realiz. lastDocDate - Data zamknięcia poz closeDate - wartość brutto w wal. grossValue - wartość netto w wal. net - opis pozycji (memo) memo - dodatkowy opis [D] description 3.32 Zam sprzedaży Odbiorcy [OrdersGet] Otrzymamy [ZL] Zamówienie sprzedaży NA (wszystkie wskazanego odbiorcy) Parametry: - symbol odbiorcy customerKey można pominąć, gdy przekazano id sesji --> CustomerAuthenticate - offset offset [można pominąć] pominie podaną liczbę zamówień - limit limit [można pominąć] ogranicza liczbę zwracanych zamówień - od ostatniego zapisu changeSince [można pominąć] ChangeSince ograniczy listę do tych, które zapisano po dacie ModTime NOTE: Data ModTime zapisana w rekordach pozycji zamówień sprzedaży (197) Odpowiedź jak w: [Orders] 3.33 Zam Sprzedaży Wg numeru [OrderGetByID] Otrzymamy [ZL] Zamówienie sprzedaży o wskazanym numerze Parametry: - numer zamówienia orderId Odpowiedź jak w: [Orders] 3.34 Zam sprzedaży Do kompletacji [OrdersToComplete] Otrzymamy [ZL] Zamówienie sprzedaży NA (wszystkie oznaczone do kompletacji [d]). Wysyłka, organizacja i dokumenty 3.35 Diagram Gantta [GanttsView] Otrzymamy zlecenia i ich zaawansowanie wyrażone w stosunku: ilość wykonana do ilość zlecona. Wynik można przedstawić w programie Planner Parametry: nie ma parametrów Odpowiedź: - dane wejściowe do programu Planner 3.36 Harmonogramowanie Ograniczone zasoby [FiniteSchedule] Otrzymamy harmonogram przy ograniczonych zasobach Wynik można przedstawić w programie: Planner Parametry: nie ma parametrów Odpowiedź: - dane wejściowe do programu Planner 3.37 Harmonogramowanie Nieograniczone zasoby [InfiniteSchedule] Otrzymamy harmonogram przy nieograniczonych zasobach Wynik można przedstawić w programie: Planner Parametry: nie ma parametrów Odpowiedź: - dane wejściowe do programu Planner 3.38 Raport o stanie firmy [ExecutiveSummaryRequest] Otrzymamy wartości w PLN o aktualnym stanie finansów firmy: rachunki bankowe, kasy, należności, zobowiązania, wartości towarów w magazynach, wartości środków trwałych Parametry: nie ma parametrów Odpowiedź: - data utworzenia CreationDate - stan w kasach CashBook - stan w bankach Banks - zapasy Inventory - środki trwałe FixedAssets - należności Receivables - zobowiązania Payables .... <executiveSummary> <banks>283020.32</banks> <cashBook>109798.29</cashBook> <payables>32725.95</payables> <inventory>304285.00</inventory> <fixedAssets>7431254.43</fixedAssets> <receivables>42928.70</receivables> <creationDate>20xx-10-25</creationDate> </executiveSummary> Patrz też: Raport o stanie firmy 3.39 Marża w roku bieżącym [MarginInYearRequest] Otrzymamy marżę od początku roku do dzisiaj wg dok sprzedaży (YTD Year-To-Date)) Parametry: nie ma parametrów Odpowiedź: - rok year - value wartość w PLN - data obliczeń creationDate 3.40 Faktury sprzedaży [SalesInvoicesGet] Otrzymamy listę faktur sprzedaży i faktur korygujących Parametry: - symbol odbiorcy customerKey można pominąć gdy przekazano id sesji --> CustomerAuthenticate - od daty fromDate [można pominąć] - do daty toDate [można pominąć] - offset offset [można pominąć] pominie podaną liczbę faktur - limit limit [można pominąć] ogranicza liczbę faktur Odpowiedź: - numer faktury nr - refNo refNo - data utworzenia creationDate - sprzedał repKey - numer zamówienia orderId - to korekta correction 3.41 Faktura sprzedaży EDI [SalesInvoiceGetById] Otrzymamy fakturę sprzedaży (nr) Parametry: - nr dokumentu nr np. <nr>FA0001/10/17</nr> NOTE: Format faktury jest zbliżony do EDI ECOD XML INVOICE (w nagłówku: <Document-Invoice>) Wykorzystuje funkcję wysyłania faktur w formacie EDI Zawiera także pozycje faktury, które nie są standardowo ujmowane w EDI, tj. [D] Dodatkowy opis i pozycje [P] Sprzedaż usług (niemagazynowe). Nie zawiera pól pobieranych z ekranu. Nie zawiera pozycji: [U] Rabat od całej faktury Patrz też: Zapisywanie faktur sprzedaży EDI. Funkcja w menu NA [NA_ZED10] Seryjny zapis faktur sprzedaży EDI. Funkcja w menu NA [NA_ZED11] EDI Dokumenty sprzedaży 3.42 Faktura korekty EDI [SalesCorrectiveInvoiceGetById] Otrzymamy fakturę korekty sprzedaży (nr) Parametry: - nr dokumentu nr np. <nr>FK0001/10/17</nr> NOTE: Format faktury jest zbliżony do EDI ECOD XML INVOICE Patrz: [SalesInvoiceGetById] 3.43 Faktura sprzedaży/korekty EDI [SalesCorrectiveInvoiceGetByRefno] Otrzymamy fakturę/korektę sprzedaży (refno) jak w SalesInvoiceGetById lub SalesCorrectiveInvoiceGetById Parametry: - refNo refNo 3.44 Wydruk faktury sprzedaży [PrintSalesInvoiceRequest] Program wydrukuje fakturę sprzedaży (nr) wg wzorca (patern) na urządzeniu wyjściowym (printer) Parametry: - symbol drukarki printer - symbol wzorca pattern - nr faktury nr 1. Wydruk na urządzeniu: WINDRU (drukarka) .... <PrintSalesInvoiceRequest> <nr>FA0001/01/21</nr> <printer>WINDRU</printer> <pattern>TRES01</pattern> </PrintSalesInvoiceRequest> .... 1. Wydruk na urządzeniu: EKRAN0 (wyświetlenie na ekranie) .... <PrintSalesInvoiceRequest> <nr>FA0001/10/21</nr> <printer>EKRAN0</printer> <pattern>FAKTWALU</pattern> </PrintSalesInvoiceRequest> .... Drukowanie Urządzenia wyjsciowe NOTE: Do wydruku w funkcji SOA można przygotować dokumenty, które przygotowano do druku kaskadowego (wymagane są prace programistyczne). Proces drukowania takich dokumentów odbywa się w tle. Funkcje drukujące nie pobierają danych ani parametrów z ekranu i nie prowadzą dialogu z operatorem. Wzorce Kaskadowe i składane 3.45 Zapis pliku raportu w PM [Report] Program wykona funkcję: PM > RaportyXML > Export [PM_ZEX00] Powstanie plik z wynikami obliczeń w katalogu wskazanym w definicji raportu. Raport można wysłać do odbiorcy lub opublikować na serwerze www NOTE: Funkcja w odpowiedzi nie przekazuje treści pliku Parametry: - symbol raportu reportID .... <Report> <reportID>RA0001</reportID> </Report> .... 3.46 Wydruk RaportyXML [ReportPrint] Program wykona funkcję: PM > RaportyXML > Wydruk [PM_ZEX10] Wydruk raportu zostanie wykonany na wskazanym urządzeniu wyjściowym, np. [WinDru] Parametry: - symbol raportu reportID - symbol urządzenia printer .... <Report> <reportID>RA0001</reportID> <printer>WinDru</printer> lub <printer>EKRAN0</printer> </Report> .... 3.47 Odczyt z bazy danych [TableGet] Pobieranie wartości pól bezpośrednio z bazy danych Wskazuje się zbiór (tabelę) i pole (kolumnę) wymienione w słowniku danych Baza danych. Słownik Otrzymamy zawartość wskazanego zbioru (tabeli) bazy danych Podaje się system, zbiór i ew. rok i miesiąc (gdy zbiór okresowy). Dodatkowo można wskazać pola i warunek filtrujący rekordy. Np. system: NA, zbior: 199 (Kartoteka odbiorców), pola: ODBDOST i ODNAZWA. Warunek: ODSALDO <GT> (większe niż) 10000 Numery zbiorów i nazwy pól wskazuje się w parametrach wg słownika danych (en: Data Dictionary) Zawartość słownika można przeglądać w programie w funkcji: F1 > Opisy techniczne > Słownik danych. Lista pól Baza danych. Słownik NOTE: Funkcja TableGet pobiera dane bezpośrednio z bazy danych posługując się nazwami technicznymi, które mogą się zmieniać w miarę rozwoju programu. Dlatego po każdej aktualizacji programu należy sprawdzić poprawność pracy funkcji. Parametry: - symbol systemu system - numer zbioru tableId - okres obliczeniowy year [można pominąć] month [można pominąć] domyślnie okres bieżący NOTE: dla zbiorów rocznych wystarczy podać 'year' - offset offset [można pominąć] pominie podaną liczbę zapisów - limit limit [można pominąć] zwróci podaną liczbę zapisów - zwracane pola fields [można pominąć] np. <fields> <ODBDOST> <ODNAZWA> .... </fields> - warunek where [można pominąć] zwracane będą zapisy spełniające warunek np. <where> <odbdost>000001</odbdost> </where> Można stosować operatory porównań: <EQ> równy <NE> różny <LT> mniejszy niż <LE> mniejszy lub równy <GT> większy niż <GE> większy lub równy np. <where> <ODGRUPA> <GT>20</GT> <LT>80</LT> <NE>25</NE> <NE>28</NE> </ODGRUPA> <ODSALDO><GE>10000</GE></ODSALDO> </where> Otrzymamy zapisy, w których pola: odgrupa > '20' i odgrupa < '80' i odgrupa # '25' i odgrupa # '28' i saldo >= 100000 Można zapisać warunek na dowolną liczbe pól i użyć dowolnej liczby operatorów. Pole w warunku może wystąpić tylko raz Przykłady Pobranie grup odbiorców (symbol i nazwa) Słownik grup kontrahentów jest w systemie AD id tabeli 232. (przykład z <where><ident>K</ident></where>) ... <TableGet> <system>AD</system> <tableId>232</tableId> <where><ident>K</ident></where> <fields><symbol/><nazwa/></fields> </TableGet> ... Symbol trzeba skrócić (trim) do 2 znaków P. Dlaczego warunek: <where><ident>K</ident></where> ? O. W tabeli 232 jest wiele symboli: PTU, grupy kontrahentów (odbiorców i dostawców), krajów, jezyków, itp. Wybór trzeba zawęzić podając identyfikator symbol [IDENT], tu: [K]. Taką budowe mają też inne tabele słownikowe. Trzeba użyć <where>. Tabela AD 088 Tabela AD 232 Tabela MG 245 Tabela AD 247 Tabela AD 515 Pobranie odbiorców, u których saldo jest większe niż 10 000 zł Odbiorcy są w systemie NA, id tabeli 199 ... <TableGet> <system>NA</system> <tableId>199</tableId> <where><ODSALDO><GE>10000</GE></ODSALDO></where> <fields><odbdost/><odnazwa/></fields> </TableGet> ... Pobranie adresu katalogu, w którym są zdjęcia asortymentu Adresy są w systemie MG w tabeli: Grupy załączników Id tabeli 077 ... <TableGet> <system>MG</system> <tableId>077</tableId> <fields> <SYMBOL/> <KATALOG/> </fields> <where><SYMOP/><IDROLA/></where> </TableGet> Pobranie numerów dok NA z okresu 2024/04 ... <TableGet> <system>NA</system> <tableId>313</tableId> <year>2024</year> <month>04</month> <fields> <odbdost/> <data/> <numer/> <fields> </TableGet> Pobranie numerów dok NA z bieżącego miesiąca obliczeniowego 2024 ... <TableGet> <system>NA</system> <tableId>313</tableId> <year>2024</year> <fields> <odbdost/> <data/> <numer/> <fields> </TableGet> Pobranie wartości BO w kartotece KSO roku 2022 ... <TableGet> <system>KG</system> <tableId>190</tableId> <year>2022</year> <fields> <bown/> <boma/> <fields> </TableGet> ... 3.48 Załączniki karty KIM [ProductAttachments] Otrzymamy listę załączników karty KIM Parametry: - indeks KIM productKey - grupa załącznika attachmentGroup [można pominąć] ograniczy listę do jednej grupy załączników Odpowiedź: - id załącznika key - nazwa name - lokalizacja uri - grupa załącznika attachmentGroup - domyślny ? default - załączyć ? toSend - pokazywać ? toShow - opis (remark) info Dokumenty powiązane (załączniki) 3.49 Pobranie załącznika KIM [ProductAttachmentGetByKey] Otrzymamy plik załącznika karty KIM Parametry: - id załącznika key symbol podany przez ProductAttachments Odpowiedź: - id załącznika key - nazwa name - lokalizacja uri ścieżka i nazwa pliku - grupa załącznika attachmentGroup - domyślny ? default - załączyć ? toSend - pokazywać ? toShow - opis (remark) info - format pliku MIME mime tylko pliki z dysku - plik w postaci base64 data tylko pliki z dysku NOTE: Pobieranie dużych plików może trwać bardzo długo. Zbyt duży plik może powodować utratę połączenia i przerwanie pracy programu Trawers 3.50 Załączniki grupy indeksów [ProductGroupAttachments] Otrzymamy listę załączników karty grupy indeksów Parametry: - symbol grupy defGroupKey - grupa załącznika attachmentGroup [można pominąć] ograniczy listę do jednej grupy załączników Odpowiedź: - id załącznika key - nazwa name - lokalizacja uri - grupa załącznika attachmentGroup - domyślny ? default - załączyć ? toSend - pokazywać ? toShow - opis (remark) info Dokumenty powiązane (załączniki) 3.51 Pobranie załącznika grupy [ProductGroupAttachmentGetByKey] Otrzymamy plik załącznika grupy indeksów Parametry: - id załącznika key symbol podany przez ProductGroupAttachments Odpowiedź: - id załącznika key - nazwa name - lokalizacja uri ścieżka i nazwa pliku - grupa załącznika attachmentGroup - domyślny ? default - załączyć ? toSend - pokazywać ? toShow - opis (remark) info - format pliku MIME mime tylko pliki z dysku - plik w postaci base64 data tylko pliki z dysku NOTE: Pobieranie dużych plików może trwać bardzo długo. Zbyt duży plik może powodować utratę połączenia i przerwanie pracy programu Trawers 3.52 Załączniki karty Rodzina [FamilyAttachments] Otrzymamy listę załączników karty Rodziny Parametry: - symbol rodziny family - grupa załącznika attachmentGroup [można pominąć] ograniczy listę do jednej grupy załączników Odpowiedź: - id załącznika key - nazwa name - lokalizacja uri - grupa załącznika attachmentGroup - domyślny ? default - załączyć ? toSend - pokazywać ? toShow - opis (remark) info Dokumenty powiązane (załączniki) 3.53 Pobranie załącznika Rodziny [FamilyAttachmentGetByKey] Otrzymamy plik załącznika karty Rodziny Parametry: - id załącznika key symbol podany przez FamilyAttachments Odpowiedź: - id załącznika key - nazwa name - lokalizacja uri ścieżka i nazwa pliku - grupa załącznika attachmentGroup - domyślny ? default - załączyć ? toSend - pokazywać ? toShow - opis (remark) info - format pliku MIME mime tylko pliki z dysku - plik w postaci base64 data tylko pliki z dysku NOTE: Pobieranie dużych plików może trwać bardzo długo. Zbyt duży plik może powodować utratę połączenia i przerwanie pracy programu Trawers 3.54 Raportowanie do TZMO [TZMO] Program utworzy i wyśle e-mailem pliki z danymi o sprzedaży i o stanach magazynowych. Funkcja w odpowiedzi nie przekazuje treści pliku. Opis parametrów i prac przygotowawczych: Raportowanie do TZMO Toruń 3.55 EBI kartoteka oddziałów EBI_MAG 3.56 EBI kartoteka klientów EBI_KLT 3.57 EBI kartoteka asortymentu EBI_ASO 3.58 EBI kartoteka jednostek EBI_ASJ 3.59 EBI słowniki EBI_SLO 3.60 EBI stany magazynowe EBI_SMG 3.61 EBI raport sprzedaży EBI_RPS Funkcje tworzą pliki raportów wymagane przez system Asseco EBI Funkcje w odpowiedzi nie przekazują treści pliku. Opis parametrów i prac przygotowawczych: Raportowanie do systemu EBI 3.62 Informacje o programie [About] Otrzymamy informacje o programie zawarte w pliku licencja.txt i informacje techniczne Parametry: nie ma parametrów Odpowiedź: - Numer licencji nrLicencji - Nazwa użytkownika nazwaUzytkownika - Wydanie z dnia wydanieZDnia - Data zapisu: licencja.txt dataUdzieleniaLicencji - Zaakceptował zaakceptowal - Data upływu abon (licencji) dataUplywuAbonamentu - Nr seryjny nrSeryjny - Nr wersji nrWersji - Max liczba aktywnych sesji maxIloscSesji - Odmiana programu odmiana - Środowisko pracy kompilator - Wolne miejsce na dysku wolneMiejsce - Katalog roboczy katalog - Zapis plików PDF zapisPDF - Wersja GTK wersjaGtk - Data i godz kompilacji dataKompilacji - Wydłużony rok obrotowy wydluzonyRok - Rok obrotowy od m-ca mcks 3.63 Propozycja zam zakupu ZA Odczyt [PurchaseProposalGet] Odczyt propozycji zakupu ZA Parametry: - symbol operatora symop - magazyn depot [można pominąć] - indeks KIM productKey [można pominąć] - symbol dostawcy vendorKey [można pominąć] Odpowiedź: - symbol operatora symop - magazyn depot - indeks KIM productKey - symbol dostawcy vendorKey - ilość quantity - cena jednostkowa unitPrice 3.64 Wydruk zamówienia zakupu [PrintPurchaseOrder] Program wydrukuje [ZL] Zamówienie zakupu (nr) wg wzorca (patern) na urządzeniu wyjściowym (printer) Parametry: - symbol drukarki printer - symbol wzorca pattern - nr zamówienia nr 1. Wydruk na urządzeniu: WINDRU (drukarka) .... <PrintPurchaseOrder> <nr>ZA0002/05/22</nr> <printer>WINDRU</printer> <pattern>TRES01000</pattern> </PrintPurchaseOrder> .... 2. Wydruk na urządzeniu: EKRAN0 (wyświetlenie na ekranie) .... <PrintPurchaseOrder> <nr>ZA0002/05/22</nr> <printer>EKRAN0</printer> <pattern>ZAM-GRAF</pattern> </PrintPurchaseOrder> .... Drukowanie Urządzenia wyjsciowe NOTE: Do wydruku w funkcji SOA można przygotować dokumenty, które przygotowano do druku kaskadowego (wymagane są prace programistyczne). Patrz: Dokumenty i zestawienia (raporty) przystosowane do drukowania kaskadowego (do drukowania w tle): Wzorce kaskadowe i składane 3.65 Usługi serwisowe z kartoteki KIM [servicesRequest] Zwraca listę usług serwisowych z karoteki KIM Odpowiedź: - indeks key - nazwa name - cena price - waluta currency 3.66 Produkty serwisowane [itemInstances] Zwraca listę produktów serwisowanych Odpowiedź: - numer produktu itmInst - indeks odbiorcy customerKey - nazwa odbiorcy customerName - adres instalacji produktu shipTo - indeks KIM produktu productKey - nazwa KIM produktu productName - oddział division - numer rejestracyjny plateNumber 3.67 Serwisanci [serviceTechnicians] Zwraca listę serwisantów Parametry: - symbol oddziału division [można pominąć] Odpowiedź: - symbol serwisanta personId - nazwa (imię i nazwisko) name - oddział division .... w ciągłej rozbudowie 4. Polecenia dopisywania do bazy danych programu Trawers (en: InBound) 4.1 Zam sprzed NA Dopisanie Order 4.2 Zam sprzed NA Dopisanie (S) OrderNew 4.3 Zam sprzed NA Dopisanie EDI Document-Order [ORDER] 4.4 Zam sprzed NA Usunięcie OrderDelete 4.5 Zam zakupu ZA Dopisanie PurchaseOrderNew 4.6 Zapłata należn KB Dopisanie PaymentsRequest 4.7 Faktura sprzed NA Dopisanie SalesInvoice 4.8 Faktura sprzed NA Usunięcie SalesInvoiceDelete 4.9 Dok rozchodu MG Dopisanie InventoryIssue 4.10 Dok rozchodu MG Usunięcie InventoryIssueDelete 4.11 Dok przychodu MG Dopisanie InventoryReceipt 4.12 Dok przychodu MG Usunięcie InventoryReceiptDelete 4.13 Dok przesunięcia MG Dopisanie InventoryMovement 4.14 Dok przesunięcia MG Usunięcie InventoryMovementDelete 4.15 Dok korekty nadwyżki MG Dopis InventoryAdjustExcess 4.16 Dok korekty niedoboru MG Dop InventoryAdjustDeficit 4.17 Dok operacji ZP Dopisanie RobociznaZP 4.18 Dok rozchodu ZP Dopisanie WOIssue 4.19 Dok przychodu ZP Dopisanie WOReceipt 4.20 Dok przy odpa ZP Dopisanie WOReceiptWaste 4.21 Dok zwrot z ZP Dopisanie WOReturnToStock 4.22 Dok zwrot na ZP Dopisanie WOReturnToShopFloor 4.23 Dok anulo op ZP Dopisanie WOCancelingOperation 4.24 Zlecenie prod ZP Zamykanie WOClose 4.25 Zlecenie prod ZP Dopisanie WOCreate 4.26 Zlecenie prod ZP korekta WOUpdate 4.27 Zlecenie prod ZP Usunięcie WODelete 4.28 Karta KIM Dopisanie ProductNewRequest 4.29 Karta KIM Korekta ProductUpdate 4.30 Karta KID Dopisanie KidNewRequest 4.31 Karta KID Usunięcie KidDelete 4.32 Karta odbiorcy NA Dopisanie CustomerNewRequest 4.33 Karta dostawcy ZO Dopisanie VendorNewRequest 4.34 Zdarzenie AD Event Zapisanie EventNewRequest 4.35 Oferta sprzedaży NA Dopisanie OfferNew 4.36 Oferta sprzedaży NA Usunięcie OfferDelete 4.37 Ceny sprzedaży MI Dopisanie PricesUpdate 4.38 Ceny sprzedaży MI Usunięcie PricesDelete 4.39 Fa zakupu ZO EDI Dopisanie Document-Invoice [INVOICE] 4.40 Adres odbiorcy NA Dopisanie CustomerAddressNew 4.41 Adres dostawcy ZO Dopisanie VendorAddressNew 4.42 Adres odbiorcy NA Korekta CustomerAddressUpdate 4.43 Adres dostawcy ZO Korekta VendorAddressUpdate 4.44 Adres odbiorcy NA Usunięcie CustomerAddressDelete 4.45 Adres dostawcy ZO Usunięcie VendorAddressDelete 4.46 Karta MPN Dopisanie MpnNew 4.47 Karta MPN Usunięcie MpnDelete 4.48 Wiadomość AD Zapisanie MessageNew 4.49 Awizo dostawy ZO EDI Dopis Document-DespatchAdvice [DESADV] 4.50 Ustal status należności SetARStatus 4.51 Ustal status zobowiązania SetAPStatus 4.52 Zam sprzed Pobierz do komplet SetOrderTakenToCompleteRequest 4.53 Karta LOT Dopisanie LotNew 4.54 Karta SER Dopisanie SerialNew 4.55 Propozycja zam zakupu ZA Dop PurchaseProposalNew 4.56 Propozycja zam zakupu ZA Kor PurchaseProposalUpdate 4.57 Propozycja zam zakupu ZA Usu PurchaseProposalDelete 4.58 Zamów serwisowe SE Dopisanie ServiceOrderNew 4.59 Zamów sprzedazy NA Akceptacja AcceptSalesOrder 4.60 Zamów zakupu ZA Akceptacja AcceptPurchaseOrder 4.61 Karta odbiorcy NA Korekta CustomerUpdate 4.62 Karta dostawcy ZO Korekta VendorUpdate 4.63 Zmiana miejsca w KSOM/LOT/SER SetItemStockLocation 4.1 Zam sprzedaży NA Dopisanie [Order] Dopisuje [ZL] Zamówienie sprzedaży Parametry: Nagłówek: - zwracane w odpowiedzi adeptKey NOTE: adeptKey jest to identyfikator przesłanych danych, nie jest zapisywany w bazie programu Trawers lecz jest zwracany wraz z odpowiedzia. Pozwala powiązać przesłane zapytanie z odpowiedzią - numer obcy nr (patrz: param 0326 SOA Order. Unikalny numer.....) - symbol odbiorcy customerKey (Kartoteka odbiorców) można pominąć, gdy przekazano id sesji --> CustomerAuthenticate można pominąć, gdy: a) podano NIP (Firma. Podmiot z NIP) b) podano e-mail (Odbiorca indywidualny. Podmiot bez NIP) c) podano dane odbiorcy: nazwa, ulica, kod, miasto i oznaczono param: 0325 [1] SOA Order. Dopisz: Odbiorca indywidualny - numer NIP taxId [można pominąć] - kraj NIP countryCodeTax [można pominąć] gdy nie podano, system przyjmuje: PL - e-mail email [można pominąć] - nazwa odbiorcy customerName [można pominąć] - adres odbiorcy customerStreet [można pominąć] - miasto odbiorcy customerCity [można pominąć] - kod pocztowy odbiorcy customerPostCode [można pominąć] - symbol adresu recipient (Kartoteka adresów) - seria dokumentu documentType (Tabela serii dokumentów NA) - metoda płatności payment możliwe: CASH, TRANSFER, CREDITCARD, CREDIT, CHECK - data utworzenia creationDate (NOTE: Real-Time) - termin realizacji realizationDate - termin płatności paymentDate - uwagi note - symbol waluty currency (Tabela walut) - symbol banku walutow bank (Tabela banków) - nr tabeli kursu TK rateArray (Tabela kursów) - rodzaj kursu rateType (Tabela kursów) - kurs waluty exchangeRate - jedn przel waluty exchangeUnit - odbierający to - sprzedał repKey (Tabela: Zespoły handlowców) - dodatkowy opis [D] description [można pominąć] - data dokumentu documentDate (NOTE: Real-Time) [można pominąć] - nr dokumentu documentNr [można pominąć] Pozycje: item - magazyn depot (Tabela magazynów) - indeks KIM productKey (Kartoteka KIM) - kod30 (KID)/ean13 productCode [można pominąć] trzeba podać, gdy pominięty productKey (indeks KIM) - nazwa indeksu productName [można pominąć] domyślnie: wg KIM Gdy podana, to może być inna niż w KIM Patrz też param: 0513 Zmieni nazwę indeksu - partia LOT lotNumber (Kartoteka LOT) - seria SER serialNumber (Kartoteka SER) - numer pozycji idx - cena sprzedaży price [tu podana lub musi być w cenniku sprzedaży) - numer ceny priceNumber ([1][2][3][4][5][6] - upust % discount - ilość w JmS quantity - jednostka sprzedaży chainKey (Tabela Jm) - rodz dekret sprzedaż roper (Tabela dekretacji) - symb dekret sprzedaż soper (Tabela dekretacji) - rodz dekret PTU (VAT) proper (Tabela dekretacji) - symb dekret PTU (VAT) psoper (Tabela dekretacji) - inne XX other (Tabela XX) - rodzaj indeksu(M,U,D) rindex - jedn org %JJ branch (Tabela JJ - zlecenie %ZZZZZZ workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix - termin realizacji realizationDate [można pominąć] - opis pozycji (memo) memo [można pominąć] Odpowiedź: - wynik operacji reason wykonana OK błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA szczegóły w pliku log - pozycje odrzucone rejectedItems lista pozycji, których nie można zarejestrować wraz z opisem przyczyny - numer dokumentu erpKey NOTE: Program przetworzy wszystkie pozycje. W przypadku błędu w <rejectedItems> będą numery pozycji i przyczyny błędów. Program usunie wszystkie dotychczas wprowadzone pozycje i <erpKey> będzie pusty. Jeżeli usunięcie nie powiedzie się, to w <erpKey> będzie numer dokumentu. Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <Order> <item> <idx>1</idx> <productKey>GRANULAT</productKey> <price>23.50</price> <discount>2.23</discount> <chainKey>szt</chainKey> <quantity>22</quantity> <depot>10</depot> <Roper>WM</Roper> <Soper>RO-/ </Soper> <other>10</other> <rIndex>M</rIndex> <pRoper>WT</pRoper> <pSoper>WT+/ </pSoper> <branch>10</branch> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <priceNumber>1</priceNumber> <lotNumber> </lotNumber> <serialNumber> </serialNumber> <memo>opis pozycji 1</memo> </item> <item> <idx>2</idx> <productKey>GRANULAT</productKey> <price>23.50</price> <discount>2.23</discount> <chainKey>szt</chainKey> <quantity>22</quantity> <depot>10</depot> <Roper>WM</Roper> <Soper>RO-/ </Soper> <other>10</other> <rIndex>M</rIndex> <pRoper>WT</pRoper> <pSoper>WT+/ </pSoper> <branch>10</branch> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <priceNumber>1</priceNumber> <lotNumber> </lotNumber> <serialNumber> </serialNumber> <memo>opis pozycji 2</memo> </item> <adeptKey>XXXX1</adeptKey> <invoiceNumber>Numer obcy SOA</invoiceNumber> <customerKey>000001</customerKey> <repKey>POMO10</repKey> <payment>G</payment> <creationDate>2026-06-16</creationDate> <realizationDate>2026-06-16</realizationDate> <paymentDate>2026-06-16</paymentDate> <note>Dokument SOA</note> <currency>PLN</currency> <bank>NBP</bank> <rateArray>02</rateArray> <exchangeRate>1</exchangeRate> <exchangeUnit>1</exchangeUnit> <to>Janina Kruk</to> <recipient>AD0001</recipient> <rateType>1</rateType> <documentType>ZA</documentType> </Order> </soapenv:Body> </soapenv:Envelope> 4.2 Zam sprzedaży NA Dopisanie (Skr) [OrderNew] Dopisuje [ZL] Zamówienie sprzedaży. Od: Order różni się tym, że można pominąć większość parametrów (skrócone) Zostaną przyjęte wartości domyślne odbiorcy, np. forma i termin płatności, ogólne (systemu) i aktywnego operatora, np. oznaczone [*] symbole dekretacji NOTE: Tak samo ustalane są wartości domyślne pól dokumentu podczas dopisywania zamówień sprzedaży w funkcji: NA > Koszyk sprzedaży [NA_ZCS10] [NA_ZCS20]. Parametry: - symbol odbiorcy customerKey można pominąć, gdy przekazano id sesji --> CustomerAuthenticate Pozycje: - indeks KIM productKey (Kartoteka KIM) - ilość quantity Pozostałe parametry są zgodne z Order i można je pominąć W ich miejsce program przyjmie wartości domyślne Odpowiedź jak w: [Order] NOTE: W funkcja SOA [OrderNew] można podać wartości cech i opcji tj. konfigurację zamawianego asortymentu. Parametry: (<feature>) - cecha (nazwa atrybutu) name - opcja (wartość) value Program automatycznie wypełnia kartotekę opcji zamówień sprzedaży wykorzystując definicję struktury wyrobu (BOM) i powiązane z indeksem atrybuty, w tabeli atrybutów (079). Patrz Przykład 2: Zamówienie z cechami i opcjami (użyty w ćwiczeniach) Przykład 1: Zamówienie bez cech i opcji (użyty w ćwiczeniach) W menu wewnętrznym przykładów: [ZL] Zamówienie sprzedaży (skrócone) [dv In OrderNew] SOA Przykłady i ćwiczenia NOTE: W przykładzie wykorzystano dane branżowe: MT Meble Tapicerowane <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <orderNew> <customerKey>000001</customerKey> <item> <productKey>GRANULAT</productKey> <quantity>2</quantity> <price>3.50</price> <memo>opis pozycji (memo)</memo> </item> <description>Pozycja opisu dokumentu [D]</description> </orderNew> </soapenv:Body> </soapenv:Envelope> Przykład 2: Zamówienie z cechami i opcjami (użyty w ćwiczeniach) W menu wewnętrznym przykładów: [ZL] Zamówienie sprzedaży (features) [dv In OrderNew] SOA Przykłady i ćwiczenia Patrz też opis: Web Configurator Integracja z BaseLinker. Produkty wariantowe NOTE: W przykładzie wykorzystano dane branżowe: MT Meble Tapicerowane Indeks : [RAMA-JAF ] Rama - fotel JAZZ210l [Pw] Produkt wytwarzany Definicja BOM: [RAMA-JAF ] Komponent : [BEJCA ] Bejca do drewna [Ce] Cecha : [LAKIERY ] Lakiery do drewna [Ce] Cecha Opcje cechy : [BEJCA ] BEJCA-CO Bejca typ GLAZE - ciemny orzech BEJCA-D Bejca typ GLAZE - dąb BEJCA-O Bejca typ GLAZE - orzech [LAKIERY ] LAKIERGM109 Lakier satynowany LAKIERGM110 Lakier błyszczący LAKIERPO101 Lakier poliuretanowy półpołyskowy LAKIERPO102 Lakier poliuretanowy matowy Tab atrybutów : Atrybut Wartość ------- ------- kolor orzech --> BEJCA-O Bejca typ GLAZE - orzech lakier satynowany --> LAKIERGM109 Lakier satynowany Program ustala opcje wskazanych cech wg zapisu w pliku XML. Np. atrybut: kolor = orzech wskazuje na opcje: BEJCA-O cechy: BEJCA atrybut: lakier = satynowany wskazuje na opcje: LAKIERGM109 cechy: LAKIERY Po wczytaniu zamówienia sprzedazy program wypełnia tabele (zbiór) konfiguracji zamówionego produktu (126). Zbior konfiguracji można pobrać w systemie produkcyjnym i utworzyć oczekiwaną specyfikację materiałową (133). Następnie wydać komponenty (tu: bejcę i lakier) i utworzyć produkt dla klienta. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <orderNew> <customerKey>000001</customerKey> <item> <productKey>RAMA-JAF</productKey> <quantity>1</quantity> <price>6.60</price> <memo>opis pozycji (memo)</memo> <features> <feature> <name>Kolor</name> <value>orzech</value> </feature> <feature> <name>Lakier</name> <value>Satynowany</value> </feature> </features> </item> <description>To jest przykład zamówienia na 1 sztukę Ramy do fotelu z konfiguratora internetowego z oznaczonymi opcjami: koloru - orzech, lakier - satynowany </description> </orderNew> </soapenv:Body> </soapenv:Envelope> 4.3 Zam sprzedaży NA Dopisanie EDI [Document-Order] Dopisuje [ZL] zamówienie sprzedaży zgodne z ECOD XML Wg specyfikacji pliku EDI: https://www.comarchedi.pl/specyfikacje-plikow Treść pliku komunikacyjnego EDI: Zamówienie XML (ORDER) należy umieścić w części <Body> (w nagłówku: <Document-Order>) Patrz też: Pobieranie zamówień sprzedaży EDI. Funkcja w menu NA [NA_DEDI1]. EDI Dokumenty sprzedaży EDI Elektroniczna wymiana dokumentów ... <Body> <!-- tu zamówienie --> <Document-Order> <Order-Header> <OrderNumber>OrderNumber_1</OrderNumber> <OrderDate>1999-09-09</OrderDate> ...... </Document-Order> </Body> ... Przykład komunikatu xml z zamówieniem EDI jest w danych do ćwiczeń. Pozycja: Zamówienie sprzedaży EDI Proszę użyć dane przykładowe firmy: Meble Tapicerowane (demo). SOA Przykłady i ćwiczenia Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia Objaśnienie niektórych elementów XML: <OrderNumber>Nr obcy dok EDI</OrderNumber> <--- nr zamówienia (obcy) - nie może się powtarzać (pole: FNUMER C 18) <Buyer> <ILN>1112223334444</ILN> <--- ILN odbiorcy (zamawiającego) musi być w kartotece odbiorców (pole: ODILN C 13) <DeliveryPoint> <ILN>0000000000001</ILN> <--- ILN w karcie adresu odbiorcy - wskazuje adres wysyłki zamówienia Shipto wskazany, że: Do wysyłki (pole: ADRILN C 13) <Seller> <ILN>1111111111111</ILN> <--- ILN nasz (firmy sprzedającej) podać w karcie firmy (podmiotu) (pole: FIILN C 13 <ShipFrom> <ILN>5907527920000</ILN> <--- ILN naszego magazynu (w tabeli magazynów), tu: 5907527920000 wskazuje nr magazynu, tu: 10, dla pozycji zamówienia. (pole: TMGILN C 13) Jeżeli nie podano n-ru magazynu via ShipFrom, to program pobiera nr magazynu z karty odbiorcy (pole: ODMAG C 2) (program musi ustalić nr magazynu) (dostawa temu odbiorcy z magazynu [10]) Patrz też: Tabela magazynów <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <Document-Order> <Order-Header> <OrderNumber>Nr obcy dok EDI</OrderNumber> <VendorOrderNumber>!</VendorOrderNumber> <OrderDate>2026-06-16</OrderDate> <OrderTime>!</OrderTime> <ExpectedDeliveryDate>2026-06-16</ExpectedDeliveryDate> <ExpectedDeliveryTime>!</ExpectedDeliveryTime> <CollectionDate>!</CollectionDate> <CollectionTime>!</CollectionTime> <PromotionReference>!</PromotionReference> <DocumentFunctionCode>!</DocumentFunctionCode> <MessageType>!</MessageType> <Remarks>Dokument SOA</Remarks> <OrderCurrency>PLN</OrderCurrency> <Payment> <PaymentTerms> <PaymentDate>2026-06-16</PaymentDate> </PaymentTerms> </Payment> <Delivery> <DeliveryTerms> <DeliveryTermsCode>INC</DeliveryTermsCode> <DeliveryTermsDescription>!</DeliveryTermsDescription> </DeliveryTerms> </Delivery> </Order-Header> <Order-Parties> <Buyer> <ILN>1112223334444</ILN> <TaxID>!</TaxID> <AccountNumber>!</AccountNumber> <Name>!</Name> <StreetAndNumber>!</StreetAndNumber> <CityName>!</CityName> <PostalCode>!</PostalCode> <Country>!</Country> <CourtAndCapitalInformation>!</CourtAndCapitalInformation> <ContactInformation>Odebral Jan Kowalski</ContactInformation> </Buyer> <BuyerHeadquarters> <ILN>!</ILN> <Name>!</Name> <StreetAndNumber>!</StreetAndNumber> <CityName>!</CityName> <PostalCode>!</PostalCode> <Country>!</Country> </BuyerHeadquarters> <Seller> <ILN>1111111111111</ILN> <TaxID>!</TaxID> <AccountNumber>!</AccountNumber> <Name>!</Name> <StreetAndNumber>!</StreetAndNumber> <CityName>!</CityName> <PostalCode>!</PostalCode> <Country>!</Country> <CodeByBuyer>!</CodeByBuyer> <Fax>!</Fax> </Seller> <DeliveryPoint> <ILN>0000000000001</ILN> <Name>!</Name> <StreetAndNumber>!</StreetAndNumber> <CityName>!</CityName> <PostalCode>!</PostalCode> <Country>!</Country> </DeliveryPoint> <ShipFrom> <ILN>5907527920000</ILN> <Name>!</Name> <StreetAndNumber>!</StreetAndNumber> <CityName>!</CityName> <PostalCode>!</PostalCode> <Country>!</Country> </ShipFrom> <UltimateCustomer> <ILN>!</ILN> <Name>!</Name> <StreetAndNumber>!</StreetAndNumber> <CityName>!</CityName> <PostalCode>!</PostalCode> <Country>!</Country> </UltimateCustomer> <Carrier> <ILN>!</ILN> <ModeOfTransport>!</ModeOfTransport> </Carrier> <OrderedBy> <ILN></ILN> <TaxID>!</TaxID> <AccountNumber>!</AccountNumber> <Name>!</Name> <StreetAndNumber>!</StreetAndNumber> <CityName>!</CityName> <PostalCode>!</PostalCode> <Country>!</Country> </OrderedBy> </Order-Parties> <Order-Lines> <Line> <Line-Item> <LineNumber>1</LineNumber> <EAN>0000000000109</EAN> <BuyerItemCode>!</BuyerItemCode> <SupplierItemCode></SupplierItemCode> <PackageEAN>!</PackageEAN> <ItemDescription>Nazwa indeksu - wpisana do poz zam</ItemDescription> <ItemType>!</ItemType> <OrderedQuantity>7</OrderedQuantity> <FreeOrderedQuantity>!</FreeOrderedQuantity> <OrderedUnitPacksize>!</OrderedUnitPacksize> <InvoicedQuantity>!</InvoicedQuantity> <UnitOfMeasure>LTR</UnitOfMeasure> <OrderedUnitNetPrice>23.50</OrderedUnitNetPrice> <OrderedUnitRetailPrice>!</OrderedUnitRetailPrice> <OrderCurrency>!</OrderCurrency> <ExpectedDeliveryDate>!</ExpectedDeliveryDate> <ExpectedDeliveryTime>!</ExpectedDeliveryTime> <ExpirationDate>!</ExpirationDate> <PromotionReference>!</PromotionReference> <PackageNumber>!</PackageNumber> <PackageType>!</PackageType> <Remarks>!</Remarks> </Line-Item> </Line> <Line> <Line-Item> <LineNumber>2</LineNumber> <EAN>0000000000123</EAN> <BuyerItemCode>!</BuyerItemCode> <SupplierItemCode></SupplierItemCode> <PackageEAN>!</PackageEAN> <ItemDescription>Nazwa indeksu2 - wpisana do poz zam</ItemDescription> <ItemType>!</ItemType> <OrderedQuantity>17</OrderedQuantity> <FreeOrderedQuantity>!</FreeOrderedQuantity> <OrderedUnitPacksize>!</OrderedUnitPacksize> <InvoicedQuantity>!</InvoicedQuantity> <UnitOfMeasure>MT3</UnitOfMeasure> <OrderedUnitNetPrice>4.50</OrderedUnitNetPrice> <OrderedUnitRetailPrice>!</OrderedUnitRetailPrice> <OrderCurrency>!</OrderCurrency> <ExpectedDeliveryDate>!</ExpectedDeliveryDate> <ExpectedDeliveryTime>!</ExpectedDeliveryTime> <ExpirationDate>!</ExpirationDate> <PromotionReference>!</PromotionReference> <PackageNumber>!</PackageNumber> <PackageType>!</PackageType> <Remarks>!</Remarks> </Line-Item> </Line> </Order-Lines> <Order-Summary> <TotalLines>2</TotalLines> <TotalOrderedAmount>24.000</TotalOrderedAmount> <TotalNetAmount>241.00</TotalNetAmount> </Order-Summary> </Document-Order> </soapenv:Body> </soapenv:Envelope> 4.4 Zam sprzedaży NA Usunięcie [OrderDelete] Usuwa [ZL] Zamówienie sprzedaży Parametry: - numer dokumentu documentNr Odpowiedź: - nr usuniętego dokumentu documentDeleted 4.5 Zam zakupu ZA Dopisanie [PurchaseOrderNew] Dopisuje [ZL] Zamówienie zakupu ZA Parametry: - symbol dostawcy vendorKey symbol waluty z karty dostawcy, tylko: PLN program nie przelicza cen w walucie obcej zgłasza błąd: Cena = 0.00 - zwracane w odpowiedzi adeptKey [można pominąć] - metoda płatności payment [można pominąć] - uwagi note [można pominąć] - seria dokumentu documentType [można pominąć] domyślnie oznaczona [*] - data realizacji realizationDate - dodatkowy opis [D] description [można pominąć] Pozycje: item - indeks KIM productKey (Kartoteka KIM) - nazwa productName [można pominąć] nazwa na dokumencie zamiast domyślnej z KIM jeżeli ustawiony parametr 0629, 0513 - ilość w JmZ quantity [można pominąć] domyślnie ilość zwykle zamawiana z KIM - numer pozycji idx [można pominąć] domyślnie nr kolejny - magazyn depot [można pominąć] domyślnie magazyn z karty dostawcy (OdMag) - do tego magazynu ma być dostawa - cena zakupu price [można pominąć] domyślnie cena ostatniego przychodu - upust discount [można pominąć] - rodz dekret zakup roper [można pominąć] - symb dekret zakup soper [można pominąć] domyślnie oznaczony [*] symbol dekretacji operatora - inne %XX other (Tabela XX)[można pominąć] - jedn org %JJ branch (Tabela JJ)[można pominąć] - zlecenie %ZZZZZZ workOrderPrefix (Kartoteka zleceń)[można pominąć] - podzlecenie %YYY workOrderSuffix [można pominąć] - data realizacji realizationDate - opis pozycji memo [można pominąć] Odpowiedź: - wynik operacji reason wykonana OK błąd wykonania ERROR_SERVER - komunikat faultstring Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <PurchaseOrderNew> <vendorKey>000001</vendorKey> <item> <productKey>GRANULAT</productKey> <quantity>2</quantity> </item> <item> <productKey>KARTON01</productKey> <quantity>1</quantity> </item> </PurchaseOrderNew> </soapenv:Body> </soapenv:Envelope> 4.6 Zapłata należności KB Dopisanie [PaymentsRequest] Dopisuje Wpłatę, od Odbiorcy NA, do rejestru Kasowego [K] Parametry: - klucz należności remittanceKey zgodny z -> [LiabilitiesRequest] Wartość klucza (identyfikator należności): remittanceKey można otrzymać zapytaniem SOA [LiabilitiesRequest]. Kroki: 1. Zapytać o id (klucz) należności lub zbudować klucz, gdy znany odbiorca i faktura 2. Zapisać wpłatę powiązaną z należnością do [K] Rejestr Kasowy NOTE: Wpłata może pochodzić z terminala płatniczego (czytnika kart) i zapis do kasy o umownej nazwie [L] Karta płatnicza. Metody płatności [G][L][P]... Przykłady klucza należności: remittanceKey 000001130818FA0001N 0 (Faktura sprzedaży nr: FA0001) 000002130818000001K10 1 (Wpłata odbiorcy nr: 000001 Kasa: 10 KOWALS130529FA0015N 1 (N = pozycja zapisana przez NA) KOWALS130529 K01 65 (K = pozycja zapisana przez KB) --6--- --6--- -- --6--- - -3- osoba(6)+data(6)+nr_dok(6)+N/K+symbol(2)+nr_poz(3) - wartość value - symbol waluty exchangeSymbol (Tabela walut) - symbol urządz (kasy) registerNumber (Tabela kas - rodz dekret roper (Tabela dekretacji) - symb dekret soper (Tabela dekretacji) - zwracane w odpowiedzi adeptKey NOTE: program nie sprawdza, czy rozrachunek jest już rozliczony Ew. kolejna wpłata ponad należność, tworzy nadpłatę Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <paymentsRequest> <paymentBill> <adeptKey>XXXX1</adeptKey> <billItem> <remittanceKey>0000012026-06-16FW0002N 0</remittanceKey> <value>123.20</value> <registerNumber>10</registerNumber> <exchangeSymbol>PLN</exchangeSymbol> <Roper>DA</Roper> <Soper>DA+/</Soper> </billItem> </paymentBill> </paymentsRequest> </soapenv:Body> </soapenv:Envelope> 4.7 Faktura sprzedaży NA Dopisanie [SalesInvoice] patrz: [ZL] Zamówienie sprzedaży Dopisuje fakturę sprzedaży [FA] Parametry obowiązkowe: - symbol odbiorcy customerKey można pominąć, gdy przekazano id sesji --> CustomerAuthenticate Parametry, które można pominąć: - data dokumentu documentDate (NOTE: Real-Time) (wyznacza też okres obliczeniowy, do którego trafi dokument trzeba podać, gdy wskazuje okres inny niż bieżący) - nr obcy faktury invoiceNumber (zostanie zapisany do faktury do pola: FNumerNA C 64) - symbol adresu dostawy recipient - zwracane w odpowiedzi adeptKey - seria dokumentu documentType - metoda płatności payment - termin realizacji realizationDate - termin płatności paymentDate - uwagi note - symbol waluty currency - symbol banku walutow bank - nr tabeli kursu TK rateArray - rodzaj kursu rateType - kurs waluty exchangeRate - jedn przel waluty exchangeUnit - odbierający to - sprzedał repKey - data zamówienia orderDate Pozycje: patrz: [ZL] Zamówienie sprzedaży - magazyn depot - indeks KIM productKey - nazwa productName [można pominąć] - partia LOT lotNumber - seria SER serialNumber - numer pozycji idx - cena sprzedaży price - numer ceny priceNumber - upust discount - ilość w JmS quantity - j miary sprzedaży chainKey - rodz dekret sprzedaż roper - symb dekret sprzedaż soper - rodz dekret PTU (VAT) proper - symb dekret PTU (VAT) psoper - inne %XX other - rodzaj indeksu(M,U,D) rindex - jedn org %JJ branch - zlecenie %ZZZZZZ workOrderPrefix - podzlecenie %YYY workOrderSuffix - numer zam sprzedaży salesOrderNumber [można pominąć] - numer poz zam sprzed salesOrderLineNumber [można pominąć] - data zam sprzedaży salesOrderDate [można pominąć] * Nr PTU program pobiera z KIM. Uwzględnia grupę PTU kontrahenta Odpowiedź: - wynik operacji reason wykonana OK błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA szczegóły w pliku log - pozycje odrzucone rejectedItems lista pozycji, których nie można zarejestrować wraz z opisem przyczyny - numer dokumentu erpKey NOTE: Program przetworzy wszystkie pozycje. W przypadku błędu w <rejectedItems> będą numery pozycji i przyczyny błędów. Program usunie wszystkie dotychczas wprowadzone pozycje i <erpKey> będzie pusty. Jeżeli usunięcie nie powiedzie się to w <erpKey> będzie numer dokumentu. Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <salesInvoice> <item> <idx>1</idx> <productKey>GRANULAT</productKey> <price>23.50</price> <discount>2.23</discount> <chainKey>szt</chainKey> <quantity>22</quantity> <depot>10</depot> <Roper>WM</Roper> <Soper>RO-/ </Soper> <other>10</other> <rIndex>M</rIndex> <pRoper>WT</pRoper> <pSoper>WT+/ </pSoper> <branch>10</branch> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <priceNumber>1</priceNumber> <lotNumber> </lotNumber> <serialNumber> </serialNumber> <memo>opis pozycji 1</memo> </item> <item> <idx>2</idx> <productKey>GRANULAT</productKey> <price>23.50</price> <discount>2.23</discount> <chainKey>szt</chainKey> <quantity>22</quantity> <depot>10</depot> <Roper>WM</Roper> <Soper>RO-/ </Soper> <other>10</other> <rIndex>M</rIndex> <pRoper>WT</pRoper> <pSoper>WT+/ </pSoper> <branch>10</branch> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <priceNumber>1</priceNumber> <lotNumber> </lotNumber> <serialNumber> </serialNumber> <memo>opis pozycji 2</memo> </item> <adeptKey>XXXX1</adeptKey> <invoiceNumber>Numer obcy SOA</invoiceNumber> <customerKey>000001</customerKey> <repKey>POMO10</repKey> <payment>G</payment> <creationDate>2026-06-16</creationDate> <realizationDate>2026-06-16</realizationDate> <paymentDate>2026-06-16</paymentDate> <note>Dokument SOA</note> <currency>PLN</currency> <bank>NBP</bank> <rateArray>02</rateArray> <exchangeRate>1</exchangeRate> <exchangeUnit>1</exchangeUnit> <to>Janina Kruk</to> <recipient>AD0001</recipient> <rateType>1</rateType> <documentType>FV</documentType> </salesInvoice> </soapenv:Body> </soapenv:Envelope> 4.8 Faktura sprzed NA Usunięcie [SalesInvoiceDelete] Usuwa fakturę sprzedaży [FA] Usunąć można tylko niezatwierdzony dokument Parametry: - numer dokumentu documentNr Odpowiedź: - nr usuniętego dokumentu documentDeleted 4.9 Dok rozchodu MG Dopisanie [InventoryIssue] Dopisuje dokument rozchodu [RO] z magazynu Parametry: - numer RefNo refno [można pominąć] NOTE: Gdy podano RefNo, nastąpi dopisanie kolejnej pozycji dokumentu rozchodu, zidentyfikowanego na podstawie RefNo. Gdy brak RefNo, zostanie utworzony nowy dokument Rozchodu. - zwracane w odpowiedzi adeptKey [można pominąć] - magazyn depot (Tabela magazynów) - symbol odbiorcy customerKey (Kartoteka odbiorców) [można pominąć] gdy przekazany to dokument będzie powiązany z kontrahentem; domyślnie wg id sesji --> CustomerAuthenticate - data utworzenia creationDate (NOTE: Real-Time) [można pominąć] - symbol adresu dostawy shipTo (Kartoteka adresów) [można pominąć] - odbierający to [można pominąć] - uwagi note [można pominąć] - seria dokumentu documentType (Tabela serii dokumentów MG)[można pominąć] - dowód dostawy deliveryNote [można pominąć] - data dostawy deliveryDate [można pominąć] - dok zatwierdzony firmed (true/false) [można pominąć] Pozycje: item - kolejny nr pozycji idx [można pominąć] - indeks KIM productKey (Kartoteka KIM) - kod30 (KID)/ean13 ean (Kartoteka KID) - partia LOT lotNumber (Kartoteka LOT) - seria SER serialNumber (Kartoteka SER) - cena price - ilość w Jm zapasu quantity - symb dekret soper (Tabela dekretacji) [można pominąć] - inne %XX other (Tabela XX) - jedn org %JJ branch (Tabela JJ) - zlecenie %ZZZZZZ workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix - wyróżnik %WW wyroznik [można pominąć] - numer zam sprzedaży salesOrderNumber [można pominąć] - numer poz zam sprzed salesOrderLineNumber [można pominąć] - data zam sprzedaży salesOrderDate [można pominąć] Powiązanie z [ZL] Zam sprzedaży. Ilość wydana zostaje zanotowana w [ZL] Odpowiedź: - wynik operacji reason wykonana OK lub UNFIRMED błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA NOTE: szczegóły w pliku log - numer dokumentu erpKey W przypadku błędu program przerwie na pierwszej błędnej pozycji. W opisie błędu będzie numer pozycji i przyczyna błędu. (beta) Pozycje zostaną usunięte i <erpKey> będzie pusty. Jeżeli usunięcie się nie powiedzie to <erpKey> będzie zawierał numer dokumentu. (beta) Jeżeli <firmed> [true] to po zarejestrowaniu program zatwierdzi dokument. W przypadku niepowodzenia dokument pozostanie w systemie. Program zwróci <result> [UNFIRMED] i <erpKey> będzie zawierał numer dokumentu. Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <inventoryIssue> <item> <idx>1</idx> <productKey>GRANULAT</productKey> <ean></ean> <lotNumber></lotNumber> <serialNumber></serialNumber> <quantity>12</quantity> <price>3</price> <location></location> <soper>RO-/ </soper> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <branch>10</branch> <other>10</other> </item> <item> <idx>2</idx> <productKey>GRANULAT</productKey> <ean></ean> <lotNumber></lotNumber> <serialNumber></serialNumber> <quantity>12</quantity> <price>3</price> <location></location> <soper>RO-/ </soper> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <branch>10</branch> <other>10</other> </item> <adeptKey>XXXX1</adeptKey> <depot>10</depot> <customerKey>000001</customerKey> <creationDate>2026-06-16</creationDate> <shipTo>AD0001</shipTo> <to></to> <note></note> <documentType>RO</documentType> <firmed>false</firmed> </inventoryIssue> </soapenv:Body> </soapenv:Envelope> 4.10 Dok rozchodu MG Usunięcie [InventoryIssueDelete] Usuwa dokument rozchodu [RO] z magazynu Usunąć można tylko niezatwierdzony dokument Parametry: - [refno] : numer RefNo [można pominąć] - depot : magazyn - documentNr : numer dokumentu - [creationDate] : data utworzenia [można pominąć] wymagana, gdy dokument nie jest z bieżącego okresu NOTE: Parametr 'refno' ma priorytet. Gdy podany to z niego program odczyta magazyn, nr dok i okres. Zignoruje parametry depot, documentNr, creationDate np. <refno>II-10/PR0001/06/24</refno> --> depot '10' --> documentNr 'PR0001' --> okres: 06/2024 Odpowiedź: - documentDeleted : nr usuniętego dokumentu - refnoDeleted : nr RefNo usuniętego dokumentu 4.11 Dok przychodu MG Dopisanie [InventoryReceipt] Dopisuje dokument przychodu [PR] do magazynu Parametry: - numer RefNo refno [można pominąć] NOTE: Gdy podano RefNo, nastąpi dopisanie kolejnej pozycji dokumentu przychodu, zidentyfikowanego na podstawie RefNo. Gdy brak RefNo, zostanie utworzony nowy dokument przychodu. - zwracane w odpowiedzi adeptKey [można pominąć] - magazyn depot (Tabela magazynów) - symbol odbiorcy customerKey (Kartoteka dostawców) [można pominąć] - data utworzenia creationDate (NOTE: Real-Time) [można pominąć] - symbol adresu dostawy shipTo (Kartoteka adresów) [można pominąć] - odbierający to [można pominąć] - uwagi note [można pominąć] - seria dokumentu documentType (Tabela serii dokumentów MG)[można pominąć] - dowód dostawy deliveryNote [można pominąć] - data dostawy deliveryDate [można pominąć] - dok zatwierdzony firmed (true/false) [można pominąć] Pozycje: item - numer pozycji idx [można pominąć] - indeks KIM productKey (Kartoteka KIM) - kod30 (KID)/ean13 ean (Kartoteka KID) - partia LOT lotNumber (Kartoteka LOT) - seria SER serialNumber (Kartoteka SER) - cena price - ilość w Jm zapasu quantity - symb dekret soper (Tabela dekretacji) [można pominąć] - inne %XX other (Tabela XX) - jedn org %JJ branch (Tabela JJ) - zlecenie %ZZZZZZ workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix - wyróżnik %WW wyroznik [można pominąć] - numer zam zakupu purchaseOrderNumber [można pominąć] (*) - numer poz zam zakupu purchaseOrderLineNumber [można pominąć] (*) (*) podać oba lub pominąć oba - data zam zakupu purchaseOrderDate [można pominąć] Powiązanie z [ZL] Zam zakupu. Ilość przyjęta zostaje zanotowana w [ZL]. Odpowiedź: - wynik operacji reason wykonana OK lub UNFIRMED błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA NOTE: szczegóły w pliku log - numer dokumentu erpKey W przypadku błędu program przerwie na pierwszej błędnej pozycji. W opisie błędu będzie numer pozycji i przyczyna błędu. (beta) Pozycje zostaną usunięte i <erpKey> będzie pusty. Jeżeli usunięcie się nie powiedzie to <erpKey> będzie zawierał numer dokumentu. Jeżeli <firmed> [true] to po zarejestrowaniu program zatwierdzi dokument. W przypadku niepowodzenia dokument pozostanie w systemie, program zwróci <result> [UNFIRMED] i <erpKey> będzie zawierał numer dokumentu. Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <inventoryReceipt> <item> <idx>1</idx> <productKey>GRANULAT</productKey> <ean></ean> <lotNumber></lotNumber> <serialNumber></serialNumber> <quantity>12</quantity> <price>3</price> <location></location> <soper>PR+/ </soper> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <branch>10</branch> <other>10</other> </item> <item> <idx>2</idx> <productKey>GRANULAT</productKey> <ean></ean> <lotNumber></lotNumber> <serialNumber></serialNumber> <quantity>12</quantity> <price>3</price> <location></location> <soper>PR+/ </soper> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <branch>10</branch> <other>10</other> </item> <adeptKey>XXXX1</adeptKey> <depot>10</depot> <customerKey>000001</customerKey> <creationDate>2026-06-16</creationDate> <to></to> <note></note> <documentType>PR</documentType> <firmed>false</firmed> </inventoryReceipt> </soapenv:Body> </soapenv:Envelope> 4.12 Dok przychodu MG Usunięcie [InventoryReceiptDelete] Usuwa dokument przychodu [PR] do magazynu. Usunąć można tylko niezatwierdzony dokument. Parametry: - [refno] : numer RefNo [można pominąć] - depot : magazyn - documentNr : numer dokumentu - [creationDate] : data utworzenia [można pominąć] wymagana, gdy dokument nie jest z bieżącego okresu NOTE: Parametr 'refno' ma priorytet. Gdy podany to z niego program odczyta magazyn, nr dok i okres. Zignoruje parametry depot, documentNr, creationDate np. <refno>IR-10/PR0001/06/24</refno> --> depot '10' --> documentNr 'PR0001' --> okres: 06/2024 Odpowiedź: - documentDeleted : nr usuniętego dokumentu - refnoDeleted : nr RefNo usuniętego dokumentu 4.13 Dok przesunięcia MM Dopisanie [InventoryMovement] Dopisuje dokument przesunięcia międzymagazynowego MM tj. dokument rozchodowy [RM] i dokument przychodowy [PM] (funkcja beta) NOTE: Prosimy stosować: [RO] Rozchody i [PR] Przychody Parametry: - numer RefNo refno [można pominąć] NOTE: Gdy podano RefNo, nastąpi dopisanie kolejnej pozycji dokumentu przesunięcia MM, zidentyfikowanego na podstawie RefNo. Gdy brak RefNo, zostanie utworzony nowy dokument przesunięcia MM. - zwracane w odpowiedzi adeptKey [można pominąć] - z magazynu depot (Tabela magazynów) - do magazynu depot2 (Tabela magazynów) Jeżeli nie ma karty KSOM, to program dopisze - data utworzenia creationDate (NOTE: Real-Time) [można pominąć] - odbierający to [można pominąć] - uwagi note [można pominąć] - seria dokumentu documentType (Tabela serii dokumentów MG)[można pominąć] - dowód dostawy deliveryNote [można pominąć] - data dostawy deliveryDate [można pominąć] - dok zatwierdzony firmed (true/false) [można pominąć] Pozycje: item - numer pozycji idx [można pominąć] - indeks KIM productKey (Kartoteka KIM) - kod30 (KID)/ean13 ean (Kartoteka KID) - partia LOT lotNumber (Kartoteka LOT) - seria SER serialNumber (Kartoteka SER) - ilość w Jm zapasu quantity - symb dekret [RM] soper (Tabela dekretacji) [można pominąć] - symb dekret [PM] soper2 (Tabela dekretacji) [można pominąć] - inne %XX other (Tabela XX) - jedn org %JJ branch (Tabela JJ) - zlecenie %ZZZZZZ workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix - wyróżnik %WW wyroznik [można pominąć] Odpowiedź: - wynik operacji reason wykonana OK lub UNFIRMED błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA NOTE: szczegóły w pliku log - numer dokumentu erpKey W przypadku błędu program przerwie na pierwszej błędnej pozycji. W opisie błędu będzie numer pozycji i przyczyna błędu. Pozycje zostaną usunięte i <erpKey> będzie pusty. Jeżeli usunięcie się nie powiedzie to <erpKey> będzie zawierał numer dokumentu. Jeżeli <firmed> [true] to po zarejestrowaniu program zatwierdzi dokument. W przypadku niepowodzenia dokument pozostanie w systemie, program zwróci <result> [UNFIRMED] i <erpKey> będzie zawierał numer dokumentu. Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <inventoryMovement> <depot>10</depot> <depot2>40</depot2> <item> <productKey>GRANULAT</productKey> <quantity>12</quantity> </item> <item> <productKey>GRANULAT</productKey> <quantity>12</quantity> </item> </inventoryMovement> </soapenv:Body> </soapenv:Envelope> 4.14 Dok przesunięcia MM Usunięcie [InventoryMovementDelete] Usuwa dokument przesunięcia międzymagazynowego MM tj. dokument rozchodowy [RM] i dokument przychodowy [PM] Usunąć można tylko niezatwierdzony dokument (beta) NOTE: Prosimy stosować usuwanie: [RO] Rozchody i [PR] Przychody Parametry: - [refno] : numer RefNo [można pominąć] - depot : z magazynu - depot2 : do magazynu - documentNr : numer dokumentu - [creationDate] : data utworzenia [można pominąć] wymagana, gdy dokument nie jest z bieżącego okresu NOTE: Parametr 'refno' ma priorytet. Gdy podany to z niego program odczyta magazyn, nr dok i okres. Zignoruje parametry depot, depot2, documentNr, creationDate Odpowiedź: - documentDeleted : nr usuniętego dokumentu - refnoDeleted : nr RefNo usuniętego dokumentu 4.15 Dok korekty nadwyżki MG Dopisanie [InventoryAdjustExcess] Dopisuje dokument korekty nadwyżki [K1] magazynu Parametry: - numer RefNo refno [można pominąć] NOTE: Gdy podano RefNo, nastąpi dopisanie kolejnej pozycji dokumentu korekty nadwyżki, zidentyfikowanego na podstawie RefNo. Gdy brak RefNo, zostanie utworzony nowy dokument korekty nadwyżki. - zwracane w odpowiedzi adeptKey [można pominąć] - magazyn depot (Tabela magazynów) - data utworzenia creationDate (NOTE: Real-Time) [można pominąć] - symbol adresu dostawy shipTo (Kartoteka adresów) [można pominąć] - odbierający to [można pominąć] - uwagi note [można pominąć] - seria dokumentu documentType (Tabela serii dokumentów MG)[można pominąć] - dowód dostawy deliveryNote [można pominąć] - data dostawy deliveryDate [można pominąć] - dok zatwierdzony firmed (true/false) [można pominąć] Pozycje: item - kolejny nr pozycji idx [można pominąć] - indeks KIM productKey (Kartoteka KIM) - kod30 (KID)/ean13 ean (Kartoteka KID) - partia LOT lotNumber (Kartoteka LOT) - seria SER serialNumber (Kartoteka SER) - cena price - ilość w Jm zapasu quantity - symb dekret soper (Tabela dekretacji) [można pominąć] - wyróżnik %WW wyroznik [można pominąć] Odpowiedź: - wynik operacji reason wykonana OK lub UNFIRMED błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA NOTE: szczegóły w pliku log - numer dokumentu erpKey W przypadku błędu program przerwie na pierwszej błędnej pozycji. W opisie błędu będzie numer pozycji i przyczyna błędu. (beta) Pozycje zostaną usunięte i <erpKey> będzie pusty. Jeżeli usunięcie się nie powiedzie to <erpKey> będzie zawierał numer dokumentu. (beta) Jeżeli <firmed> [true] to po zarejestrowaniu program zatwierdzi dokument. W przypadku niepowodzenia dokument pozostanie w systemie. Program zwróci <result> [UNFIRMED] i <erpKey> będzie zawierał numer dokumentu. <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <inventoryAdjustExcess> <item> <idx>1</idx> <productKey>GRANULAT</productKey> <ean></ean> <lotNumber></lotNumber> <serialNumber></serialNumber> <quantity>12</quantity> <price>3</price> <location></location> <soper>K1+/ </soper> <branch>10</branch> <other>10</other> </item> <item> <idx>2</idx> <productKey>GRANULAT</productKey> <ean></ean> <lotNumber></lotNumber> <serialNumber></serialNumber> <quantity>12</quantity> <price>3</price> <location></location> <soper>K1+/ </soper> <branch>10</branch> <other>10</other> </item> <adeptKey>XXXX1</adeptKey> <depot>10</depot> <creationDate>2026-06-16</creationDate> <to></to> <note></note> <documentType>K1</documentType> <firmed>false</firmed> </inventoryAdjustExcess> </soapenv:Body> </soapenv:Envelope> 4.16 Dok korekty niedoboru MG Dopisanie [InventoryAdjustDeficit] Dopisuje dokument korekty niedoboru [K2] magazynu Parametry: - numer RefNo refno [można pominąć] NOTE: Gdy podano RefNo, nastąpi dopisanie kolejnej pozycji dokumentu korekty niedoboru, zidentyfikowanego na podstawie RefNo. Gdy brak RefNo, zostanie utworzony nowy dokument korekty niedoboru. - zwracane w odpowiedzi adeptKey [można pominąć] - magazyn depot (Tabela magazynów) - data utworzenia creationDate (NOTE: Real-Time) [można pominąć] - symbol adresu dostawy shipTo (Kartoteka adresów) [można pominąć] - odbierający to [można pominąć] - uwagi note [można pominąć] - seria dokumentu documentType (Tabela serii dokumentów MG)[można pominąć] - dowód dostawy deliveryNote [można pominąć] - data dostawy deliveryDate [można pominąć] - dok zatwierdzony firmed (true/false) [można pominąć] Pozycje: item - kolejny nr pozycji idx [można pominąć] - indeks KIM productKey (Kartoteka KIM) - kod30 (KID)/ean13 ean (Kartoteka KID) - partia LOT lotNumber (Kartoteka LOT) - seria SER serialNumber (Kartoteka SER) - cena price - ilość w Jm zapasu quantity - symb dekret soper (Tabela dekretacji) [można pominąć] - wyróżnik %WW wyroznik [można pominąć] Odpowiedź: - wynik operacji reason wykonana OK lub UNFIRMED błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA NOTE: szczegóły w pliku log - numer dokumentu erpKey W przypadku błędu program przerwie na pierwszej błędnej pozycji. W opisie błędu będzie numer pozycji i przyczyna błędu. (beta) Pozycje zostaną usunięte i <erpKey> będzie pusty. Jeżeli usunięcie się nie powiedzie to <erpKey> będzie zawierał numer dokumentu. (beta) Jeżeli <firmed> [true] to po zarejestrowaniu program zatwierdzi dokument. W przypadku niepowodzenia dokument pozostanie w systemie. Program zwróci <result> [UNFIRMED] i <erpKey> będzie zawierał numer dokumentu. <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <inventoryAdjustDeficit> <item> <idx>1</idx> <productKey>GRANULAT</productKey> <ean></ean> <lotNumber></lotNumber> <serialNumber></serialNumber> <quantity>12</quantity> <price>3</price> <location></location> <soper>K2-/ </soper> <branch>10</branch> <other>10</other> </item> <item> <idx>2</idx> <productKey>GRANULAT</productKey> <ean></ean> <lotNumber></lotNumber> <serialNumber></serialNumber> <quantity>12</quantity> <price>3</price> <location></location> <soper>K2-/ </soper> <branch>10</branch> <other>10</other> </item> <adeptKey>XXXX1</adeptKey> <depot>10</depot> <creationDate>2026-06-16</creationDate> <to></to> <note></note> <documentType>K2</documentType> <firmed>false</firmed> </inventoryAdjustDeficit> </soapenv:Body> </soapenv:Envelope> 4.17 Dok operacji ZP Dopisanie [RobociznaZP] Dopisuje dokument wykonania operacji produkcyjnej [KR] Parametry: - data utworzenia creationDate (NOTE: Real-Time) - seria dokumentu documentType (Tabela serii dokumentów ZP) - odbierający to (dozwolone puste) - uwagi note (dozwolone puste) - zwracane w odpowiedzi adeptKey (dozwolone puste) - dok zatwierdzony firmed (true/false) Pozycje: item - numer pozycji idx [można pominąć] - pracownik person (Kartoteka PL) - zlecenie %ZZZZZZ workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix (dozwolone puste) - numer operacji operationNumber (Proces technologiczny) - typ prac: R/P operationType (R-rob bezp/P-pr przyg) - wykonane przez: M/P operationBy (M-maszyna/P-pracownik) - całkowicie zakończona finished (T-zakończona, N-nie zak) - ilość wykonana quantity ( > 0 ) - kod powtórzeń reworkCode (dozwolone puste) - kod braków scrapCode (dozwolone puste) - ilość braków scrapQuantity (dozwolone puste) - ilość godzin hoursQuantity ( > 0 ) - ilość osób personsQuantity ( > 0 ) - ilość zleceń workOrdersQuantity ( > 0 ) - data startu startDate (dozwolone puste) - godz startu startTime (dozwolone puste) - data końca endDate (dozwolone puste) - godz końca endTime (dozwolone puste) - początek stopu stopStart (dozwolone puste) - koniec stopu stopEnd (dozwolone puste) - przyczyna stopu stopCode (dozwolone puste) - czas stopu stopTime (dozwolone puste) Odpowiedź: - wynik operacji result wykonana OK błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA - nr dokumentu erpKey NOTE: erpKey to jest identyfikator, który został nadany przesłanemu dokumentowi przez program Trawers. Jest numerem wewnętrznym wg którego dokument jest identyfikowany w bazie programu Trawers. - zwracane w odpowiedzi adeptKey NOTE: szczegóły w pliku log Wszystkie pola muszą wystąpić, niektóre mogą być puste Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <robociznaZP> <item> <idx>1</idx> <person>000002</person> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <operationNumber>10</operationNumber> <operationType>R</operationType> <operationBy>P</operationBy> <finished>T</finished> <quantity>10.332</quantity> <reworkCode>02</reworkCode> <scrapCode>02</scrapCode> <scrapQuantity>2.123</scrapQuantity> <hoursQuantity>8.5</hoursQuantity> <personsQuantity>1</personsQuantity> <workOrdersQuantity>1</workOrdersQuantity> <startDate>2026-06-16</startDate> <startTime>08:00:00</startTime> <endDate>2026-06-16</endDate> <endTime>10:00:00</endTime> <stopStart>09:00:00</stopStart> <stopEnd>09:30:00</stopEnd> <stopCode> Przestój spowodowany awarią maszyny</stopCode> <stopTime>0.5</stopTime> </item> <item> <idx>2</idx> <person>000002</person> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <operationNumber>10</operationNumber> <operationType>R</operationType> <operationBy>P</operationBy> <finished>T</finished> <quantity>10.332</quantity> <reworkCode>02</reworkCode> <scrapCode>02</scrapCode> <scrapQuantity>2.123</scrapQuantity> <hoursQuantity>8.5</hoursQuantity> <personsQuantity>1</personsQuantity> <workOrdersQuantity>1</workOrdersQuantity> <startDate>2026-06-16</startDate> <startTime>08:00:00</startTime> <endDate>2026-06-16</endDate> <endTime>10:00:00</endTime> <stopStart>09:00:00</stopStart> <stopEnd>09:30:00</stopEnd> <stopCode> Przestój spowodowany awarią maszyny</stopCode> <stopTime>0.5</stopTime> </item> <adeptKey>XXXX1</adeptKey> <creationDate>2026-06-16</creationDate> <to> </to> <note> </note> <documentType>KR</documentType> </robociznaZP> </soapenv:Body> </soapenv:Envelope> 4.18 Dok rozchodu ZP Dopisanie [WOIssue] Dopisuje dokument wydania materiałow na produkcje [RO] Parametry: - data utworzenia creationDate (NOTE: Real-Time) - seria dokumentu documentType (Tabela serii dokumentów ZP) - odbierający to (dozwolone puste) - uwagi note (dozwolone puste) - zwracane w odpowiedzi adeptKey (dozwolone puste) - dok zatwierdzony firmed (true/false) Pozycje: item - numer pozycji idx (1,2,3,4,5,...) - zlecenie %ZZZZZZ workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix (dozwolone puste) - ilość wydana quantity ( > 0 ) - indeks materiału componentKey (kartoteka KIM) - partia LOT lotNumber (Kartoteka LOT) - seria SER serialNumber (Kartoteka SER) - magazyn depot (Tabela magazynów) [można pominąć] - numer operacji operationNumber (Proces technologiczny) [można pominąć] - numer marszruty routingNumber (1,2,3,4,5,...) [można pominąć] - opcja [T/ ] option ('T'-Tak,' '-Nie) [można pominąć] Odpowiedź: - wynik operacji result wykonana OK błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA - nr dokumentu erpKey NOTE: erpKey to jest identyfikator, który został nadany przesłanemu dokumentowi przez program Trawers. Jest numerem wewnętrznym wg którego dokument jest identyfikowany w bazie programu Trawers. - zwracane w odpowiedzi adeptKey NOTE: szczegóły w pliku log <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <WOISSUE> <item> <idx>1</idx> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <quantity>1</quantity> <componentKey>INDEKS-1</componentKey> </item> <adeptKey>XXXX1</adeptKey> <creationDate>2026-06-16</creationDate> <to> </to> <note> </note> <documentType>RW</documentType> </WOISSUE> </soapenv:Body> </soapenv:Envelope> 4.19 Dok przychodu ZP Dopisanie [WOReceipt] Dopisuje dokument przychodu z produkcji [PR] Parametry: - data utworzenia creationDate (NOTE: Real-Time) - seria dokumentu documentType (Tabela serii dokumentów ZP) - odbierający to (dozwolone puste) - uwagi note (dozwolone puste) - zwracane w odpowiedzi adeptKey (dozwolone puste) - dok zatwierdzony firmed (true/false) Pozycje: item - numer pozycji idx (1,2,3,4,5,...) - zlecenie %ZZZZZZ workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix (dozwolone puste) - ilość przyjęta quantity ( > 0 ) - partia LOT lotNumber (Kartoteka LOT) - seria SER serialNumber (Kartoteka SER) Odpowiedź: - wynik operacji result wykonana OK błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA - nr dokumentu erpKey NOTE: erpKey to jest identyfikator, który został nadany przesłanemu dokumentowi przez program Trawers. Jest numerem wewnętrznym wg którego dokument jest identyfikowany w bazie programu Trawers. - zwracane w odpowiedzi adeptKey NOTE: szczegóły w pliku log <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <WORECEIPT> <item> <idx>1</idx> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <quantity>1</quantity> </item> <adeptKey>XXXX1</adeptKey> <creationDate>2026-06-16</creationDate> <to> </to> <note> </note> <documentType>PR</documentType> </WORECEIPT> </soapenv:Body> </soapenv:Envelope> 4.20 Dok przychodu odpadów ZP Dopisanie [WOReceiptWaste] Dopisuje dokument przychodu odpadów z produkcji [OD] Parametry: - data utworzenia creationDate (NOTE: Real-Time) - seria dokumentu documentType (Tabela serii dokumentów ZP) - odbierający to (dozwolone puste) - uwagi note (dozwolone puste) - zwracane w odpowiedzi adeptKey (dozwolone puste) - dok zatwierdzony firmed (true/false) Pozycje: item - numer pozycji idx (1,2,3,4,5,...) - zlecenie %ZZZZZZ workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix (dozwolone puste) - ilość przyjęta quantity ( > 0 ) - kod odpadów wasteReason (Przyczyny braków i odpadów) - indeks materiału componentKey (kartoteka KIM) z którego powstał odpad - indeks odpadu productKey (kartoteka KIM) - partia LOT lotNumber (Kartoteka LOT) - seria SER serialNumber (Kartoteka SER) - magazyn przyjęcia depot (Tabela magazynów) odpadu Odpowiedź: - wynik operacji result wykonana OK błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA - nr dokumentu erpKey NOTE: erpKey to jest identyfikator, który został nadany przesłanemu dokumentowi przez program Trawers. Jest numerem wewnętrznym wg którego dokument jest identyfikowany w bazie programu Trawers. - zwracane w odpowiedzi adeptKey NOTE: szczegóły w pliku log <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <WORECEIPTWASTE> <item> <idx>1</idx> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>000</workOrderSuffix> <quantity>1</quantity> <wasteReason>10</wasteReason> <componentKey>INDEKS-1</componentKey> <productKey>ZLOM</productKey> <depot>10</depot> </item> <adeptKey>XXXX1</adeptKey> <creationDate>2026-06-16</creationDate> <to> </to> <note> </note> <documentType>OD</documentType> </WORECEIPTWASTE> </soapenv:Body> </soapenv:Envelope> 4.21 Dok zwrot materiałów ZP Dopisanie [WOReturnToStock] Dopisuje dokument zwrotu materiałów z produkcji [Z1] Parametry: - data utworzenia creationDate (NOTE: Real-Time) - seria dokumentu documentType (Tabela serii dokumentów ZP) - odbierający to (dozwolone puste) - uwagi note (dozwolone puste) - nr dok korygowanego bnodow - rok dok korygowanego brok - mc dok korygowanego bmcks - data dok korygowanego bdata - zwracane w odpowiedzi adeptKey (dozwolone puste) - dok zatwierdzony firmed (true/false) Pozycje: item - numer pozycji idx (1,2,3,4,5,...) - zlecenie %ZZZZZZ workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix (dozwolone puste) - ilość zwrócona quantity ( > 0 ) - nr zwracanej pozycji bnopoz (1,2,3,4,5,...) Odpowiedź: - wynik operacji result wykonana OK błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA - nr dokumentu erpKey NOTE: erpKey to jest identyfikator, który został nadany przesłanemu dokumentowi przez program Trawers. Jest numerem wewnętrznym wg którego dokument jest identyfikowany w bazie programu Trawers. - zwracane w odpowiedzi adeptKey NOTE: szczegóły w pliku log <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <WORETURNTOSTOCK> <item> <idx>1</idx> <bnopoz>1</bnopoz> <quantity>0.5</quantity> </item> <adeptKey>XXXX1</adeptKey> <creationDate>2026-06-16</creationDate> <to> </to> <note> </note> <documentType>Z1</documentType> <brodzajd>RO</brodzajd> <bnodow>RW0001</bnodow> <bnsyst>ZP</bnsyst> <brok>26</brok> <bmcks>06</bmcks> <bdatadk>2026-06-16</bdatadk> </WORETURNTOSTOCK> </soapenv:Body> </soapenv:Envelope> 4.22 Dok zwrot na produkcje ZP Dopisanie [WOReturnToShopFloor] Dopisuje dokument zwrotu wyrobów na produkcje [Z2] Parametry: - data utworzenia creationDate (NOTE: Real-Time) - seria dokumentu documentType (Tabela serii dokumentów ZP) - odbierający to (dozwolone puste) - uwagi note (dozwolone puste) - nr dok korygowanego bnodow - rok dok korygowanego brok - mc dok korygowanego bmcks - data dok korygowanego bdata - zwracane w odpowiedzi adeptKey (dozwolone puste) - dok zatwierdzony firmed (true/false) Pozycje: item - numer pozycji idx (1,2,3,4,5,...) - zlecenie %ZZZZZZ workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix (dozwolone puste) - ilość zwrócona quantity ( > 0 ) - nr zwracanej pozycji bnopoz (1,2,3,4,5,...) Odpowiedź: - wynik operacji result wykonana OK błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA - nr dokumentu erpKey NOTE: erpKey to jest identyfikator, który został nadany przesłanemu dokumentowi przez program Trawers. Jest numerem wewnętrznym wg którego dokument jest identyfikowany w bazie programu Trawers. - zwracane w odpowiedzi adeptKey NOTE: szczegóły w pliku log <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <WORETURNTOSHOPFLOOR> <item> <idx>1</idx> <bnopoz>1</bnopoz> <quantity>0.3</quantity> </item> <adeptKey>XXXX1</adeptKey> <creationDate>2026-06-16</creationDate> <to> test soa </to> <note> </note> <documentType>Z2</documentType> <brodzajd>PR</brodzajd> <bnodow>PR0001</bnodow> <bnsyst>ZP</bnsyst> <brok>26</brok> <bmcks>06</bmcks> <bdatadk>2026-06-16</bdatadk> </WORETURNTOSHOPFLOOR> </soapenv:Body> </soapenv:Envelope> 4.23 Dok anulowania operacji ZP Dopisanie [WOCancelingOperation] Dopisuje anulowania operacji ZP [Z3] Parametry: - data utworzenia creationDate (NOTE: Real-Time) - seria dokumentu documentType (Tabela serii dokumentów ZP) - odbierający to (dozwolone puste) - uwagi note (dozwolone puste) - nr dok korygowanego bnodow - rok dok korygowanego brok - mc dok korygowanego bmcks - data dok korygowanego bdata - zwracane w odpowiedzi adeptKey (dozwolone puste) - dok zatwierdzony firmed (true/false) Pozycje: item - numer pozycji idx (1,2,3,4,5,...) - zlecenie %ZZZZZZ workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix (dozwolone puste) - nr zwracanej pozycji bnopoz (1,2,3,4,5,...) Odpowiedź: - wynik operacji result wykonana OK błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA - nr dokumentu erpKey NOTE: erpKey to jest identyfikator, który został nadany przesłanemu dokumentowi przez program Trawers. Jest numerem wewnętrznym wg którego dokument jest identyfikowany w bazie programu Trawers. - zwracane w odpowiedzi adeptKey NOTE: szczegóły w pliku log <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <WOCANCELINGOPERATION> <item> <idx>1</idx> <bnopoz>1</bnopoz> </item> <adeptKey>XXXX1</adeptKey> <creationDate>2026-06-16</creationDate> <to> test soa </to> <note> </note> <documentType>Z3</documentType> <brodzajd>KR</brodzajd> <bnodow>RR0001</bnodow> <bnsyst>ZP</bnsyst> <brok>26</brok> <bmcks>06</bmcks> <bdatadk>2026-06-16</bdatadk> </WOCANCELINGOPERATION> </soapenv:Body> </soapenv:Envelope> 4.24 Zlecenie prod ZP Zamykanie [WOClose] Zamyka zlecenie produkcyjne ZP Parametry: - zlecenie %XXXXXX workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix Odpowiedź: - wynik operacji result wykonana OK <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://tres.pl/Trawers"> <soapenv:Header/> <soapenv:Body> <WOClose> <workOrderPrefix>000001</workOrderPrefix> <workOrderSuffix>0</workOrderSuffix> </WOClose> </soapenv:Body> </soapenv:Envelope> 4.25 Zlecenie prod ZP Dopisanie [WOCreate] Dopisuje nowe zlecenie produkcyjne ZP Parametry: - indeks KIM productKey - ilość quantity - seria dokumentu documentType (Tabela serii dokumentów ZP) - magazyn depot [można pominąć] - uwagi note [można pominąć] - symbol odbiorcy customerKey (Kartoteka dostawców) [można pominąć] - numer zam sprzedaży salesOrderNumber [można pominąć] - numer poz zam sprzed salesOrderLineNumber [można pominąć] - termin realizacji realizationDate [można pominąć] - priorytet priority [można pominąć] 1-3 domyślnie 2 - data rozpoczęcia planowana estimatedStartDate [można pominąć] - data zakończenia planowana estimatedFinDate [można pominąć] - inne %XX other (Tabela XX) [można pominąć] - jedn org %JJ branch (Tabela JJ) [można pominąć] - komórka organizacyjna KK cell (Tabela KK) [można pominąć] - zlecenie projekt project [można pominąć] - zlecenie klasa class [można pominąć] - requiredByWorkOrderPrefix [można pominąć] - requiredByWorkOrderSuffix [można pominąć] Odpowiedź: - wynik operacji result wykonana OK 4.26 Zlecenie prod ZP korekta [WOUpdate] Korekta zlecenia produkcyjnego ZP Parametry: - zlecenie %XXXXXX workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix - indeks KIM productKey [można pominąć] - ilość quantity [można pominąć] - seria dokumentu documentType (Tabela serii dokumentów ZP) [można pominąć] - magazyn depot [można pominąć] - uwagi note [można pominąć] - symbol odbiorcy customerKey (Kartoteka dostawców) [można pominąć] - numer zam sprzedaży salesOrderNumber [można pominąć] - numer poz zam sprzed salesOrderLineNumber [można pominąć] - termin realizacji realizationDate [można pominąć] - priorytet priority [można pominąć] 1-3 domyślnie 2 - data rozpoczęcia planowana estimatedStartDate [można pominąć] - data zakończenia planowana estimatedFinDate [można pominąć] - inne %XX other (Tabela XX) [można pominąć] - jedn org %JJ branch (Tabela JJ) [można pominąć] - komórka organizacyjna KK cell (Tabela KK) [można pominąć] - zlecenie projekt project [można pominąć] - zlecenie klasa class [można pominąć] - requiredByWorkOrderPrefix [można pominąć] - requiredByWorkOrderSuffix [można pominąć] Odpowiedź: - wynik operacji result wykonana OK 4.27 Zlecenie prod ZP Usunięcie [WODelete] Usunie zlecenie produkcyjne ZP Parametry: - zlecenie %XXXXXX workOrderPrefix (Kartoteka zleceń) - podzlecenie %YYY workOrderSuffix Odpowiedź: - wynik operacji result wykonana OK 4.28 Karta KIM Dopisanie [ProductNewRequest] Dopisuje nową kartę indeksu KIM Nazwy parametrów są takie same jak nazwy pól w kartotece KIM Nazwy pól w KIM podano w słowniku danych Słownik danych Opis Pola pominięte, program pobiera z karty wzorcowej wskazanej w <templateKey> albo z karty wzorcowej KIM o indeksie podanym w parametrach MG Parametry: - symbol indeksu indeks - nazwa indeksu inazwa - symbol karty wzorcowej templateKey [można pominąć] jeżeli nie podano, program odczyta z parametrów MG ... pozostałe pola z kartoteki KIM [można pominąć] Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <ProductNewRequest> <indeks>Test SOA</indeks> <inazwa>Test SOA</inazwa> </ProductNewRequest> </soapenv:Body> </soapenv:Envelope> 4.29 Karta KIM Korekta [ProductUpdate] Koryguje kartę indeksu KIM Nazwy parametrów są takie same jak nazwy pól w kartotece KIM Nazwy pól w KIM podano w słowniku danych Słownik danych Opis Do zmiany można wybrać pola oznaczone w słowniku jako pola edytowalne: [E] (en: Editable). Patrz tez: Globalne zmiany pól w bazie danych Program zmieni tylko te pola, które zostaną przekazane przez SOA. Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <ProductUpdate> <indeks>Test SOA</indeks> <inazwa>Test SOA zmieniona nazwa</inazwa> <dostawca>000001</dostawca> </ProductUpdate> </soapenv:Body> </soapenv:Envelope> 4.30 Karta KID Dopisanie [KidNewRequest] Dopisuje nową kartę KID - indeks KIM productKey - kod KID kidKey Jeżeli nie ma karty indeksu lub KID już jest w kartotece, to program zgłosi błąd Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <KidNewRequest> <productKey>GRANULAT</productKey> <kidKey>TEST SOA</kidKey> <info>info</info> </KidNewRequest> </soapenv:Body> </soapenv:Envelope> 4.31 Karta KID Usunięcie [KidDelete] Usunie kartę KID - kod KID kidKey Jeżeli nie ma karty KID to program zgłosi błąd Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <KidDelete> <kidKey>TEST SOA</kidKey> </KidDelete> </soapenv:Body> </soapenv:Envelope> 4.32 Karta odbiorcy NA Dopisanie [CustomerNewRequest] Dopisuje nową kartę odbiorcy Nazwy parametrów są takie same jak nazwy pól w kartotece odbiorców Nazwy pól w kartotece podano w słowniku danych Baza danych. Słownik Pola pominięte, program pobiera z karty wzorcowej wskazanej w <templateKey> albo z karty wzorcowej o symbolu podanym w parametrach NA - nazwa kontrahenta odnazwa - symbol kontrahenta odbdost [można pominąć] - symbol karty wzorcowej templateKey [można pominąć] jeżeli nie podano, program odczyta z parametrów NA ... pozostałe pola z kartoteki odbiorców [można pominąć] Domyślnie program odszukuje pierwszy wolny numer kolejny z prefixem podanym w parametrach systemu NA. Jeżeli w parametrach NA nie ustalono prefixu to program nada symbol rozpoczynając od 000000. 000000, 000001, 000002,.... W polu odbdost można przekazać tylko prefix symbolu np. <ODBDOST>IN</ODBDOST> Program odszuka pierwszy wolny numer z podanym prefixem IN0001, IN0002, IN0003,.... Dodatkowo, dopisuje: * Osoba do kontaktu o nazwie: [Biuro] [BI] * Adres dodatkowy (Wysłać do) o symbolu: [000001] (seryjnie adresy można dopisać via CSV [NA_PDO60]) Odpowiedź: - symbol dopisanego kontrahenta customerKey Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <soap:Header/> <soap:Body> <CustomerNewRequest> <odnip>777-875-42-51</odnip> <odnazwa>Odbiorca dopisany przez SOA</odnazwa> <odkod>91-370</odkod> <odmiasto>Gdynia</odmiasto> <odulica>Kwiatowa</odulica> <odnrdom>150</odnrdom> <odnrlok>24</odnrlok> </CustomerNewRequest> </soap:Body> </soap:Envelope> 4.33 Karta dostawcy ZO Dopisanie [VendorNewRequest] Dopisuje nową kartę dostawcy Nazwy parametrów są takie same jak nazwy pól w kartotece dostawców Nazwy pól w kartotece podano w słowniku danych Baza danych. Słownik Pola pominięte, program pobiera z karty wzorcowej wskazanej w <templateKey> albo z karty wzorcowej o symbolu podanym w parametrach ZO - nazwa kontrahenta odnazwa - symbol kontrahenta odbdost [można pominąć] - symbol karty wzorcowej templateKey [można pominąć] jeżeli nie podano, program odczyta z parametrów ZO ... pozostałe pola z kartoteki dostawców [można pominąć] Domyślnie program odszukuje pierwszy wolny numer kolejny 000000, 000001, 000002,.... Można przekazać tylko prefix symbolu np. <ODBDOST>IN</ODBDOST> Program odszuka pierwszy wolny numer z podanym prefixem IN0001, IN0002, IN0003,.... Dodatkowo, dopisuje: * Osoba do kontaktu o nazwie: [Biuro] [BI] * Adres dodatkowy o symbolu: [000001] (seryjnie adresy można dopisać via CSV [ZO_PDO70]) Odpowiedź: - symbol dopisanego kontrahenta vendorKey Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <soap:Header/> <soap:Body> <VendorNewRequest> <odnip>756-873-41-54</odnip> <odnazwa>Dostawca dopisany przez SOA</odnazwa> <odkod>91-370</odkod> <odmiasto>Gdynia</odmiasto> <odulica>Skwer Kościuszki</odulica> <odnrdom>15</odnrdom> <odnrlok>9</odnrlok> </VendorNewRequest> </soap:Body> </soap:Envelope> 4.34 Zdarzenie Event AD Dopisanie [EventNewRequest] Zapisuje informację o zdarzeniu w zbiorach: * Wiadomości operatorów * 316 Zdarzenia systemowe (zdarzenie [SOAEVENT]) Parametry: - nadawca from id maszyny, czujnika, program zewnętrzny, itp. - treść informacji data - adresat (Do) symb operatora to [można pominąć] - priorytet priority [można pominąć] 1-9 domyślnie 6 Do powiadomienia o zdarzeniu można użyć mechanizm: Alerty Alerty i raportowanie Powiadomienia, zdarzenia 4.35 Oferta sprzedaży NA Dopisanie [OfferNew] Dopisuje [OF] Oferta sprzedaży NA W miejsce pominiętych parametrów zostaną przyjęte wartości domyślne: ogólne (systemu) oraz aktywnego operatora, np. oznaczone [*] symbole dekretacji Parametry: - symbol odbiorcy customerKey można pominąć, gdy przekazano id sesji --> CustomerAuthenticate - termin ważności oferty validDate [można pominąć] Pozycje: - indeks KIM productKey (Kartoteka KIM) - ilość quantity Pozostałe parametry są takie jak w Order i można je pominąć W ich miejsce program przyjmie wartości domyślne Odpowiedź jak w: [Order] Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <offerNew> <customerKey>000001</customerKey> <item> <productKey>GRANULAT</productKey> <quantity>2</quantity> <price>3.50</price> <memo>opis pozycji (memo)</memo> </item> <description>pozycja opisu dokumentu [D]</description> </offerNew> </soapenv:Body> </soapenv:Envelope> 4.36 Oferta sprzedaży NA Usunięcie [OfferDelete] Usuwa [OF] Oferta sprzedaży NA Parametry: - numer dokumentu documentNr Odpowiedź: - nr usuniętego dokumentu documentDeleted 4.37 Ceny sprzedaży MI Zmiana [PricesUpdate] * Zmienia ceny w obowiązującym cenniku sprzedaży (wg daty bieżącej) * Dopisuje indeksy z cenami, gdy nie ma w cenniku Program odszuka bieżący cennik wg podanych parametrów Odszuka indeksy asortymentu i zmieni ceny sprzedaży Gdy podano cenę kalkulacyjną CK, to obliczy ceny netto i brutto wg narzutów zapisanych w pozycji cennika Jeżeli nie znajdzie w cenniku indeksu podanego w parametrach, to dopisze indeks i cenę do cennika. Indeks musi być w KIM Parametry: - typ type [można pominąć] [60] katalogowy (domyślnie) SALE [50] katalogowy dla magazynu DEPOT [40] dla grup odbiorców GROUP [30] kontraktowy CUSTOMER [25] kontraktowy dla wysłać do SHIPTO [20] promocyjny PROMO [10] promocyjny dla magazynu PROMO_DEPOT - waluta currency [można pominąć] - nr ceny idx [można pominąć] ceny netto 1,2,3 ceny brutto 4,5,6 cena kalkulacyjna CK dla CK program obliczy ceny 1-6 domyślnie cena netto 1 - odbiorca customerKey [można pominąć] wymagany gdy CUSTOMER - grupa group [można pominąć] wymagany gdy GROUP - magazyn depot [można pominąć] wymagany gdy DEPOT, PROMO_DEPOT - wysłać do shipto [można pominąć] wymagany gdy SHIPTO - symbol cennika priceListId [można pominąć] wymagany gdy CUSTOMER,PROMO,PROMO_DEPOT - indeks KIM productKey [można pominąć] - kod30 (KID)/ean13 productCode [można pominąć] trzeba podać, gdy pominięty productKey (indeks KIM) - cena value Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <soap:Header/> <soap:Body> <PricesUpdate> <!-- aktualny cennik katalogowy, cena netto 1 --> <price> <productKey>GRANULAT</productKey> <value>20.30</value> </price> <price> <productKey>SRUBY-X01</productKey> <value>0.40</value> </price> </PricesUpdate> <PricesUpdate> <!-- aktualny cennik dla magazynu 10, cena brutto 2 --> <type>DEPOT</type> <depot>10</depot> <idx>5</idx> <price> <productKey>GRANULAT</productKey> <value>19.30</value> </price> <price> <productKey>SRUBY-X01</productKey> <value>0.37</value> </price> </PricesUpdate> <PricesUpdate> <!-- aktualny cennik dla grup odbiorcow; cena kalkulacyjna, pozostałe ceny zostaną wyliczone wg aktualnych narzutów --> <type>GROUP</type> <group>10</group> <idx>CK</idx> <price> <productKey>GRANULAT</productKey> <value>20.00</value> </price> <price> <productKey>KARTON01</productKey> <value>30.00</value> </price> </PricesUpdate> <PricesUpdate> <!-- cennik kontraktowy symbol=000001; odbiorca=000001; cena netto 2 --> <type>CUSTOMER</type> <priceListId>000001</priceListId> <customerKey>000001</customerKey> <idx>2</idx> <price> <productKey>SRUBY-X01</productKey> <value>0.32</value> </price> <price> <productKey>KARTON01</productKey> <value>16.50</value> </price> </PricesUpdate> <PricesUpdate> <!-- nieistniejący cennik promocyjny; cena netto 2; zwróci błąd --> <type>PROMO</type> <idx>2</idx> <priceListId>XXXXXX</priceListId> <price> <productKey>SRUBY-X01</productKey> <value>0.31</value> </price> </PricesUpdate> </soap:Body> </soap:Envelope> 4.38 Ceny sprzedaży MI Usunięcie [PricesDelete] Usunięcie pozycji cennika Usuwa ceny z obowiązującego cennika sprzedaży (wg daty bieżącej) Program odszuka bieżący cennik wg podanych parametrów. Odszuka indeks asortymentu i usunie ceny Parametry: - typ type [można pominąć] [60] katalogowy (domyślnie) SALE [50] katalogowy dla magazynu DEPOT [40] dla grup odbiorców GROUP [30] kontraktowy CUSTOMER [25] kontraktowy dla wysłać do SHIPTO [20] promocyjny PROMO [10] promocyjny dla magazynu PROMO_DEPOT - waluta currency [można pominąć] - odbiorca customerKey [można pominąć] wymagany gdy CUSTOMER - grupa group [można pominąć] wymagany gdy GROUP - magazyn depot [można pominąć] wymagany gdy DEPOT, PROMO_DEPOT - wysłać do shipto [można pominąć] wymagany gdy SHIPTO - symbol cennika priceListId [można pominąć] wymagany gdy CUSTOMER,PROMO,PROMO_DEPOT - indeks KIM productKey 4.39 Fa zakupu ZO EDI Dopisanie [Document-Invoice] Dopisuje fakturę zakupu [FA] i korektę [FK] zgodne z ECOD XML Wg specyfikacji pliku EDI INVOICE: https://www.comarchedi.pl/specyfikacje-plikow Treść pliku komunikacyjnego EDI: Faktury XML (INVOICE) należy umieścić w części <Body> (w nagłówku: <Document-Invoice>) Patrz też funkcja: Pobieranie faktur zakupu EDI (INVOICE) ZO > Faktury zakupu > EDI INVOICE --> [FA] Faktura [ZO_DEDI1]) EDI Dokumenty zakupu EDI Elektroniczna wymiana dokumentów NOTE: (Technicznie) Obie w/w funkcje wykonują funkcję: InvoiceZO_EDI() Funkcja wyszukuje asortyment (EAN) wg KIM oraz KID (#00052553) Ta funkcja jest stosowana w środowisku #KSeF #00054210. 4.40 Adres odbiorcy NA Dopisanie [CustomerAddressNew] Dopisuje nowy adres odbiorcy Nazwy parametrów są takie same jak nazwy pól w kartotece adresów Nazwy pól w kartotece podano w słowniku danych Baza danych. Słownik 4.41 Adres dostawcy ZO Dopisanie [VendorAddressNew] Dopisuje nowy adres dostawcy Nazwy parametrów są takie same jak nazwy pól w kartotece adresów Nazwy pól w kartotece podano w słowniku danych Baza danych. Słownik 4.42 Adres odbiorcy NA Korekta [CustomerAddressUpdate] Koryguje adres odbiorcy Nazwy parametrów są takie same jak nazwy pól w kartotece adresów Nazwy pól w kartotece podano w słowniku danych Do zmiany można wybrać pola oznaczone w słowniku jako pola edytowalne: [E] (en: Editable) Baza danych. Słownik 4.43 Adres dostawcy ZO Korekta [VendorAddressUpdate] Koryguje adres dostawcy Nazwy parametrów są takie same jak nazwy pól w kartotece adresów Nazwy pól w kartotece podano w słowniku danych Do zmiany można wybrać pola oznaczone w słowniku jako pola edytowalne: [E] (en: Editable) Baza danych. Słownik 4.44 Adres odbiorcy NA Usunięcie [CustomerAddressDelete] Usuwa adres odbiorcy Parametry: - symbol odbiorcy customerKey - symbol adresu addressKey 4.45 Adres dostawcy ZO Usunięcie [VendorAddressDelete] Usuwa adres dostawcy Parametry: - symbol dostawcy vendorKey - symbol adresu addressKey 4.46 Karta MPN Dopisanie [MpnNew] Dopisuje nową kartę MPN (kod asortymentu wg producenta) - indeks KIM productKey - kod MPN MPN - symbol producenta manufacturerKey [można pominąć] domyślnie symbol producenta z KIM - nazwa u producenta name [można pominąć] domyślnie nazwa z KIM Jeżeli nie ma karty indeksu lub MPN już jest w kartotece, to program zgłosi błąd Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <MpnNew> <productKey>GRANULAT</productKey> <manufacturerKey>000001</manufacturerKey> <MPN>TEST SOA</MPN> <name>Granulate Duo</name> </MpnNew> </soapenv:Body> </soapenv:Envelope> 4.47 Karta MPN Usunięcie [MpnDelete] Usunie kartę MPN (kod asortymentu wg producenta) - kod MPN MPN Jeżeli nie ma karty MPN, to program zgłosi błąd Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <MpnDelete> <MPN>TEST SOA</MPN> </MpnDelete> </soapenv:Body> </soapenv:Envelope> 4.48 Wiadomość AD Zapisanie [MessageNew] Wysyła wiadomość do operatorów * Wiadomości operatorów * 316 Zdarzenia systemowe [TRNEWMSG]) Przykład zapisu w 316 ------------------------------------------------------- 20xx.03.03 Cz 21:53:57 AA KR TRNEWMSG AD_PSOA3 Dzień Godz Nadawca Do Symbol IdProcess Treść: Wiadomość wysłana przez SOA ------------------------------------------------------- Parametry: - nadawca from [można pominąć] symbol operatora domyślnie symbol operatora, który wywołał funkcję SOA - treść wiadomości message - adresat (Do) symb operatora to symbol operatora - do wskazanego operatora Logged - do zalogowanych operatorów (domyślnie) Depot - do operatorów oddziału operatora, który wywołał SOA All - do wszystkich operatorów - priorytet priority [można pominąć] 1-9 domyślnie 6 Powiadomienia, wiadomości Do powiadomienia o zdarzeniu można też użyć mechanizmu: Alerty Alerty i raportowanie Przykład: (użyty w ćwiczeniach) SOA Przykłady i ćwiczenia <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <soap:Header/> <soap:Body> <MessageNew> <from>AA</from> <message>Wiadomość wysłana przez SOA</message> <to>Logged</to> <priority>7</priority> </MessageNew> </soap:Body> </soap:Envelope> 4.49 Awizo dostawy ZO EDI Dopisanie [Document-DespatchAdvice] (DESADV) Wczytuje komunikat DESADV (awizo dostawy) jako: [DA] Dostawa w ZO. Dostawa jest niezatwierdzona i oczekuje na fakturę zakupu [FA]. Wg specyfikacji pliku EDI DESADV: https://www.comarchedi.pl/specyfikacje-plikow Treść pliku komunikacyjnego EDI: DESADV należy umieścić w części <soap:Body>: <soap:Body> <Document-DespatchAdvice> ... </Document-DespatchAdvice> </soap:Body> Patrz też funkcje: ZO > Zakupy > Dostawy > EDI Awizo DESADV --> [DA] Dostawa ZO [ZO_DEDI2] ZO > Zakupy > Dostawy > EDI INVOICE --> [DA] Dostawa ZO [ZO_DEDI4] (konwersja) Dokumenty zakupu EDI Dokumenty zakupu NOTE: Komunikat EDI DESADV, to plik w formacie XML. Plik można otrzymać od dostawcy lub utworzyć samemu, np. skanując kod kreskowy otrzymanego asortymentu (trzeba utworzyć aplikację tworzącą plik DESADV w XML) NOTE: Tak pracuje program CBIS. System Zarządzania Magazynem CbisWMS Na podstawie skanowanych kodów, identyfikujących asortyment, tworzyć plik XML w formacie EDI DESADV i zapisać via SOA [Document-DespatchAdvice] dokument w ZO: [DA] Dostawa. Proces (w skrócie): Asortyment (etykiety) --> Skanowanie --> XML (EDI DESADV) --> --> SOA [Document-DespatchAdvice] --> dokument w ZO: [DA] Dostawa 4.50 Ustal status należności [SetARStatus] Ustala status należności w rozrachunkach NA. Rozrachunki z kontrahentami Parametry: - klucz rozrachunku trkey1 pierwszy klucz w zbiorze rozrachunków, umożliwiający identyfikacje zapisu w rozrachunkach - status rozrachunku status Umożliwia zapisanie statusów rozrachunków podczas przetwarzania alertów. Można zbudować mechanizm windykacji. Program (alert) automatycznie wyśle kolejne wezwania do zapłaty i zapisze wskaźnik statusu (pole: WEZWANIE C 1) (poziom windykacji). Przykład wywołania [SetARStatus] w alercie: ţ96{TR_SOA;; <SetARStatus> <trkey1>ţDoXML{@ROZLICZ@ROKROZ@OSOBAţFormatDaty{@DATA;RRRRMMDD}ţOdLewej{@NUMER;6}@NSYST@USYMBOL@URODZAJ@NUM_POZ}</trkey1> <status>1</status> </SetARStatus>} Alerty i raportowanie 4.51 Ustal status zobowiązań [SetAPStatus] Ustala status zobowiązania w rozrachunkach ZO. 4.52 Zam sprzed Pobierz do komplet [SetOrderTakenToCompleteRequest] Oznacz zamówienie jako pobrane do kompletacji [d]. Parametry: - symbol operatora symop symbol operatora, który pobrał zamówienie do kompletacji - numer zamówienia zlnumer 4.53 Karta LOT Dopisanie [LotNew] Dopisanie kart partii LOT. Parametry: - magazyn depot - indeks KIM productKey - partia LOT lotNumber [można pominąć] Odpowiedź: - symbol dopisanej karty lotNumber 4.54 Karta SER Dopisanie [SerialNew] Dopisanie kart serii SER Parametry: - magazyn depot - indeks KIM productKey - seria SER serialNumber [można pominąć] Odpowiedź: - symbol dopisanej karty serialNumber 4.55 Propozycja zam zakupu ZA Dopisanie [PurchaseProposalNew] Dopisanie rekordu propozycji zakupu ZA Parametry: - magazyn depot - indeks KIM productKey - ilość quantity - cena jednostkowa unitPrice [można pominąć] - symbol dostawcy vendorKey [można pominąć] - symbol operatora symop Odpowiedź: - wynik operacji result wykonana OK 4.56 Propozycja zam zakupu ZA Korekta [PurchaseProposalUpdate] Korekta rekordu propozycji zakupu ZA Parametry: - magazyn depot - indeks KIM productKey - ilość quantity - cena jednostkowa unitPrice [można pominąć] - symbol dostawcy vendorKey [można pominąć] - symbol operatora symop Odpowiedź: - wynik operacji result wykonana OK 4.57 Propozycja zam zakupu ZA Usunięcie [PurchaseProposalDelete] Usunięcie rekordu propozycji zakupu ZA Parametry: - magazyn depot - indeks KIM productKey - symbol dostawcy vendorKey [można pominąć] - symbol operatora symop Odpowiedź: - wynik operacji result wykonana OK 4.58 Zgłoszenie serwisowe NA Dopisanie [ServiceOrderNew] Dopisuje [ZL] zamówienie sprzedaży NA (serwisowe) Parametry: - produkt serwisowany itmInst - utworzyć wizytę serwisową createAppointment - wizyta niezaplanowana unplanned - serwisant person - usługa serwisowa z KIM item - indeks KIM productKey (Kartoteka KIM) - ilość quantity - opis pozycji memo [można pominąć] Odpowiedź jak w: [Order] 4.59 Zamówienie sprzedazy NA Akceptacja [AcceptSalesOrder] Akceptacja [ZL] Zamówieni sprzedaży NA Parametry: - numer dokumentu documentNr - symbol operatora symop [można pominąć] - data akceptacji date [można pominąć] Odpowiedź: - wynik operacji result wykonana OK błąd wykonania ERROR_SERVER - komunikat faultstring 4.60 Zamówienie zakupu ZA Akceptacja [AcceptPurchaseOrder] Akceptacja [ZL] Zamówienie zakupu ZA Parametry: - numer dokumentu documentNr - symbol operatora symop [można pominąć] - data akceptacji date [można pominąć] Odpowiedź: - wynik operacji result wykonana OK błąd wykonania ERROR_SERVER - komunikat faultstring 4.61 Karta odbiorcy NA Korekta [CustomerUpdate] Koryguje (aktualizuje) wskazane pola w karcie odbiorcy Nazwy parametrów są takie jak nazwy pól w kartotece odbiorców Nazwy pól w kartotece podano w słowniku danych Baza danych. Słownik Parametry: - symbol kontrahenta odbdost ... pozostałe pola z kartoteki odbiorców [można pominąć] Odpowiedź: - wynik operacji result wykonana OK Przydatne podczas wymiany danych z aplikacjami internetowymi. 4.62 Karta dostawcy ZO Korekta [VendorUpdate] Koryguje (aktualizuje) wskazane pola w karcie dostawcy Nazwy parametrów są takie jak nazwy pól w kartotece dostawców Nazwy pól w kartotece podano w słowniku danych Baza danych. Słownik Parametry: - symbol kontrahenta odbdost ... pozostałe pola z kartoteki dostawców [można pominąć] Odpowiedź: - wynik operacji result wykonana OK Przydatne podczas wymiany danych z aplikacjami internetowymi. 4.63 Zmiana miejsca w KSOM/LOT/SER [SetItemStockLocation] Zapisuje (zmienia) miejsce (lokalizację) w karcie KSOM/LOT/SER Parametry: - indeks KIM productKey - symbol magazynu odbdost - miejsce location - partia LOT lotNumber (Kartoteka LOT) - seria SER serialNumber (Kartoteka SER) Gdy nie podano numeru LOT/SER, system zapisuje miejsce w karcie KSOM Odpowiedź: - wynik operacji result wykonana OK 5. Wymagania i ograniczenia SOA pracuje na bieżąco * Funkcje SOA pracują na bieżąco (en: Real-Time). Tzn. że program zapisuje do bazy danych datę i czas zgodne z zegarem systemowym. Szczególnie jest to istotne w przypadku dokumentów (transakcji). Domyślnie dokumenty trafiają do okresów obliczeniowych (miesięcznych) zgodnych z datą i czasem systemowym (data systemowa). Okresy obliczeniowe Niektóre funkcje SOA umożliwiają podanie daty rejestracji dokumentu. Jeżeli zostanie podana data: <documentDate> lub <creationDate>, to program SOA zapisze dokument do okresu wynikającego z podanej daty. Podawanie dat z innych okresów obliczeniowych lub, ogólnie, dat innych niż daty systemowe, może skutkować błędami w ewidencji. Szczególnie ważne w ewidencji magazynowej. Status dok magazynowych [ ][v] Asortyment w KIM wg pola: INDEKS * W funkcjach szukania asortymentu, kluczem jest indeks KIM: INDEKS W niektórych funkcjach można szukać wg: KID, EAN13, INAZWA. W opisach funkcji wskazano klucze, wg których mozna szukać asortyment. Np. kod30 (KID)/ean13 productCode [można pominąć] Trzeba podać, gdy pominięto productKey (indeks KIM). Patrz też: KIM Kartoteka indeksów Format daty i czasu * Pole daty (en: Date): musi być w formacie ISO 8601 tj. YYYY-MM-DD Program nie czyta dat o innym (niepoprawnym) formacie * Pola ilości: poprawne: 0.234 niepoprawne: 0,234 '0.234' 12,345.234 * Pole: Od daty i czasu np. changeSince: ma format YYYY-MM-DDTHH:MM:SS Dopuszcza się zapis skrócony do minut, godzin lub dni: YYYY-MM-DDTHH:MM, YYYY-MM-DDTHH, YYYY-MM-DD poprawne: 2016-06-01T10:45:00, 2016-06-01T10:45, 2016-06-01, 16-6-1T1:3 niepoprawne: 2016-06, 2016 Formaty daty, czasu Parametr: changeSince (ModTime) * Parametr: <changeSince> pozwala ograniczyć (filtrować) listę zwracanych rekordów do tych, które zapisano po dacie ModTime, np. po 20xx-06-01T10:45:00 Program wykorzystuje do porównań pole: ModTime, które zapisuje automatycznie sterownik bazy danych do każdego zbioru (tabeli). Każdy zapis rekordu zmienia jego ModTime. W opisach funkcji SOA podano, której kartoteki dotyczy <changeSince> stosowane podczas filtrowania. Program filtruje rekordy tylko podanej kartoteki. Nie analizuje rekordów innych zbiorów (tabel) powiązanych ze wskazaną kartoteką. Np. zmiana ceny sprzedaży asortymentu w zbiorze cen nie spowoduje ujęcia w filtrze kart KIM, mimo, że jednym ze zwracanych pól jest <price>. W tej funkcji <changeSince> odnosi się tylko do zmian w KIM. Zachować powiązania danych * Programy zapisujące dane do bazy (en: InBound) powinny używać kartotek i tabel pomocniczych pobranych z Trawersa, aby zachować powiązania danych Np. [ZL] zamówienie sprzedaży powinno uwzględniać powiązania dokumentu z: kartoteka odbiorców, kartoteka KIM, jednostki miary, tabele dekretacji, tabela operatorów, itp. Dlatego aplikacja zewnętrzna, np. oprogramowanie sklepu internetowego powinna najpierw pobrać wszystkie niezbędne dane z Trawersa i na nich pracować, tj. wybierać tylko z tabel pobranych z Trawersa. * Wartości domyślne parametrów program ustala na podstawie aktualnych zapisów w kartotekach, tabelach i zbiorach parametrów. Zapisy te mogą się zmieniać. Zaleca się: - podawać wszystkie parametry, nie pozostawiać domyślnych - gdy pozostawi się domyślne, to okresowo sprawdzać poprawność wartości ustalanych domyślnie przez program * Gdy aplikacja zewnętrzna utrzymuje własne tabele, które są odpowiednikiem tabel w programie Trawers, to niezbędna jest ciągła synchronizacja danych w tych tabelach. Należy unikać synchronizowania danych. Synchronizacje są błędogenne. Rada: nie prowadzić własnych tabel w aplikacjach zewnętrznych. Niezbędne dane pobierać ze zbiorów (tabel) programu Trawers. Sygalizacja błedów i problemów Funkcje SOA zwracają odpowiedź: - wynik operacji reason wykonana OK lub UNFIRMED błąd wykonania ERR_EXECUTION błąd danych ERR_BADDATA NOTE: szczegóły są w pliku: log Gdy dane wejściowe nie spełniają kryteriów bazy danych, to dodatkowo funkcja zwraca komunikat: faultstring, Np. <faultstring>Brak karty KIM: [GRANUKAT ]</faultstring> Komunikat informuje, że w kartotece KIM nie ma karty o symbolu (indeksie) 'GRANUKAT ' NOTE: Taki sam komunikat operator otrzyma na ekranie przy próbie odniesienia się (wyszukiwania) w KIM indeksu: 'GRANUKAT ' Przenosić cenniki do archiwum * Funkcje SOA poszukują cen sprzedaży i przenoszą cenniki do aplikacji zewnętrznych. Od wielkości zbiorów cenników zależy czas przetwarzania. Dlatego zaleca się przenoszenie nieaktualnych cenników do archiwum. Funkcja: MI > Okresowe > Zamykanie roku [MI_ZRO10] Cenniki sprzedaży 6. Budowa komunikatu z żądaniem usługi Komunikat musi być zgodny z dokumentem SOAP. Dokument SOAP zawiera część nagłówkową <Header> i treść <Body>. Polecenie usługi SOA zapisane jest w części <Body> W części nagłówkowej <Header> można podać: <sessionId> identyfikator sesji <user> symbol operatora zlecającego wykonanie polecenia <sessionId> W <Header> można podać identyfikator sesji. Identyfikator sesji otrzymuje się jako wynik polecenia: CustomerAuthenticate. a) Gdy podano <sessionId>, to operator wpisany w karcie osoby do kontaktu, która otrzymała to id sesji, staje się operatorem bieżącym. Tak jakby on zalogował się do programu. Zmienia się symbol operatora, oddział, parametry pracy i uprawnienia. Program 'zaloguje' operatora na czas wykonania funkcji podanej w <body> To pozwala, aby jeden serwer mógł jednocześnie wykonywać każdą funkcję jako inny operator. b) Gdy nie podano <sessionId>, to niektóre funkcje domyślnie zwracaja tylko dane dotyczące kontrahenta, którego osoba do kontaktu otrzymała to id sesji, np: OrdersGet, OrderNew, OfferNew, SalesInvoice. Pozwala pominąć parametr wywołania funkcji <customerKey>. Funkcja CustomerAuthenticate i przekazywanie id sesji ułatwia tworzenie interfejsów zdalnego dostępu dla klientów. <user> W <Header> można podać symbol operatora: <user> <soap>.. <header> <user>DD</user> <--- operator [AA] </header> <body>...</body> </soap> Np. operator [EE] wywołuje funkcję SOA [Order] Zam sprzed NA Dopisanie W komunikacie jest zapis: <user>DD</user> Wczytane z[ZL] Zamówienie sprzedaży należy do operatora [DD] i oddziału do którego należy operator [DD]. Patrz też: zapisywanie (OutBound) i wczytywanie (InBound) komunikatów EDI. Np. Faktura zakupu EDI należy do oddziału, na który wskazuje kod lokalizacji ILN. EDI Elektroniczna wymiana dokumentów a) Gdy podano <user>, to ten operator staje się operatorem bieżącym. Tak jakby on zalogował się do programu. Zmienia się symbol operatora, oddział, parametry pracy i uprawnienia. Program 'zaloguje' operatora na czas wykonania funkcji podanej w <body> To pozwala aby jeden serwer mógł jednocześnie każdą funkcję wykonywać jako inny operator. Zachowanie jest jak CustomerAuthenticate lecz bez uwierzytelniania email/password. Podanie symbolu operatora w komunikacie może być przydatne, gdy zapisuje się zamówienia sprzedaży do Trawersa i konieczna jest identyfikacja operatora. Np. ze względów bezpieczeństwa. Gdy parametr wskazuje, że operator mogą przeglądać i poprawiać tylko własne dokumenty. b) Gdy nie podano <user>, to operatorem bieżącym będzie operator, który wywołał proces serwera SOA. Przykłady komunikatów Przykład 1: Funkcja bez parametrów: <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <soap:Header/> <soap:Body> <CustomersRequest/> </soap:Body> </soap:Envelope> Przykład 2: Funkcja z parametrami: <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <soap:Header/> <soap:Body> <CustomerGetByKey> <customerKey>000001</customerKey> </CustomerGetByKey> </soap:Body> </soap:Envelope> 7. PiO Pytania i odpowiedzi Jak sprawdzić czy w kartotece odbiorców jest taki kontrahent ? - Jeżeli znamy symbol odbiorcy, to możemy pobrać jego kartę: <customerGetByKey> Program zwróci błąd, gdy brak karty. - Jeżeli nie znamy symbolu, to trzeba pobrać całą kartotekę i przeszukać samemu: <CustomersRequest> Ew można użyć funkcji przeszukującej zbiory <TableGet> Nazwy pól są ze słownika danych. <TableGet> <system>NA</system> <tableId>199</tableId> <fields> <ODBDOST/> <ODNAZWA/> </fields> <where> <ODNIP>123-456-78-90</ODNIP> </where> </TableGet> Jak dopisać kartę nowego odbiorcy ? Funkcja: <CustomerNewRequest> Pola wymagane: nazwa kontrahenta <odnazwa>. Warto też podać adres i NIP. Pola brakujące program pobierze z karty wzorcowej wskazanej w parametrach NA. Program zwróci: <customerKey> Jak sprawdzić czy w kartotece magazynowej KIM jest taki indeks ? - Jeżeli indeks, to możemy pobrać jego kartę: <ProductGetByKey> Program zwróci błąd, gdy brak karty. - Jeżeli nie znamy, to można użyć: <ProductsFind> i odszukać wg ean13: <code> lub nazwy: <name> Ew można użyć funkcji przeszukującej zbiory <TableGet> i szukać np. w tabeli KID. 8. Tematy powiązane SOA Architektura wymiany danych Integracja z internetem SOA Przykłady rozwiązań SOA Przykłady i ćwiczenia SOA Programy w Python i PHP Baza danych. Słownik EDI Dokumenty zakupu EDI Dokumenty sprzedaży EDI Elektroniczna wymiana dokumentów Okresy obliczeniowe KIM Kartoteka indeksów Słowa kluczowe #Admin-WymianaDanych #TrawersERP-Komponenty #TrawersERP-Środowisko #TrawersERP-Chmura #TrawersERP-SOA/API
www.tres.pl - Baza wiedzy Trawers ERP - Spis treści