Importowanie zwrotów od klienta

Niniejsza dokumentacja opisuje sposób korzystania z aplikacji Importuj dane w kontekście zwrotów od klientów. Przedstawiono ogólne zasady oraz specjalne funkcje, które należy wziąć pod uwagę. Wskazano również możliwe warunki wstępne oraz skutki wykonywanych operacji.

Szczegółowy opis aplikacji Importuj dane, zawierający również opisy pól i przycisków, znajduje się w dokumentacji Import danych.

Import zwrotu klienta opiera się na bieżącym modelu danych, przechowywanym w repozytorium bazy danych. W przypadku eksportu dostępna jest większa liczba atrybutów niż przy imporcie, dlatego zaleca się zdefiniowanie osobnych filtrów dla obu operacji.

Relacje typu 1:1 w modelu danych są zazwyczaj oparte na technicznym atrybucie GUID. W zależności od zastosowania, podczas importu można używać technicznego identyfikatora GUID lub klucza funkcjonalnego odpowiadającego obiektowi docelowemu (np. kodu lub numeru). W przypadku niektórych obiektów biznesowych konieczne jest przekształcenie kluczy funkcjonalnych na techniczne, co wymaga wcześniejszego określenia organizacji. Informacje te nie są zazwyczaj bezpośrednio dostępne w źródle importu i muszą być ustalane na podstawie kontekstu dokumentu. Dalsze informacje zawarte są w rozdziale Przegląd: Atrybuty.

Obiekty biznesowe z kodem skrótu są przywoływane zarówno w nagłówku, jak i w pozycjach zwrotu klienta. Technicznie stanowią one grupy atrybutów, które są wspólne dla wielu dokumentów. Ponowne użycie tych obiektów pozwala ograniczyć zużycie zasobów bazy danych i pamięci operacyjnej. Przy użyciu specjalnej konwersji obiekty te są prezentowane jako elementy eksportu lub importu.

Niektóre dane związane ze zwrotami klientów, takie jak alokacje przyjęcia towarów, a także wewnętrzne i pomocnicze atrybuty, nie podlegają importowi.

Jeśli nie wiadomo, jaki format zastosować przy przygotowaniu pliku importu, zaleca się wprowadzenie przykładowego zwrotu klienta bezpośrednio w aplikacji Zwroty klientów, a następnie wyeksportowanie go z zastosowaniem odpowiedniego filtra, zawierającego wymagane atrybuty. Otrzymany plik może służyć jako szablon do tworzenia kolejnych plików importowych.

Import danych podlega tym samym regułom, co edycja dokumentów w aplikacji. Przykładowo, w przypadku zwrotu klienta zawierającego pozycje nie jest możliwa zmiana danych w bazie. Atrybuty, które nie mogą zostać zastosowane w bieżącym kontekście, są ignorowane. Taka sama logika obowiązuje przy ustalaniu wartości domyślnych.

Instrukcja importu zwrotów od klientów

Aby zaimportować zwrot od klienta, należy:

  1. Otworzyć aplikację Importuj dane.
  2. Wyświetlić filtr lub zestaw filtrów dla obiektu biznesowego com.cisag.app.sales.customerreturn.obj.CustomerReturn.
    →Zostanie otwarty filtr do importu zwrotów od klientów.
  3. W razie potrzeby skopiować istniejący filtr lub utworzyć nowy dla tego obiektu biznesowego.
  4. W razie potrzeby zmodyfikować już wybrane atrybuty filtra.
  5. Wybrać przycisk Importuj dane na standardowym pasku narzędzi.
    →Zostanie otwarte okno dialogowe Importuj dane.
  6. W oknie dialogowym Importuj dane określić ustawienia pliku przeznaczonego do importu. Opisy pól znajdują się w dokumentacji Importuj dane.
  7. Wybrać przycisk [W tle], aby rozpocząć import.
    →Import zostanie wykonany.

Tworzenie nowego zwrotu klienta

Minimalne wymagane atrybuty dla obiektu podstawowego:

Opis Atrybut 
Organizacja sprzedaży (w systemach jednofirmowych z dezaktywowanymi uprawnieniami opartymi na zawartości jest to automatycznie klient) invoicingPartyData.Partner
Rodzaj zwrotu od klienta Type
Zamawiający customerData.CustomerPartner

Opcjonalnie możliwe jest również przeniesienie numeru za pośrednictwem importu. W takim przypadku numer określony przez schemat numeracji przypisany do danego rodzaju jest pomijany. Należy przy tym zastosować odpowiednie konwencje numeracyjne, aby mieć pewność, że importowany numer:

  • nie pokrywa się z numerami już przypisanymi,

  • nie zostanie automatycznie nadany w przyszłości.

Minimalne wymagane atrybuty dla obiektu pozycji

Opis Atrybut
Artykuł Item
Ilość zwrotu totalQuantity

Wskazówka
Warunkiem wstępnym dla tego wariantu jest wprowadzenie wyłącznie odniesienia Artykuł w rodzaju zwrotu klienta.

W praktyce często stosowane jest także odniesienie do pozycji dokumentu dostawy lub pozycji faktury z księgowaniem materiałów. W takim przypadku poniższy minimalny plik XML należy odpowiednio rozszerzyć.

Opcjonalnie można również przypisać numer pozycji.

Poniżej przedstawiono przykładową zawartość minimalnego pliku XML z atrybutami funkcjonalnymi i dwiema pozycjami:

<?xml version="1.0" encoding="UTF-8"?><semiramis

xmlns="com.cisag.app.sales.customerreturn.obj.CustomerReturn"

xsi:schemaLocation="com.cisag.app.sales.customerreturn.obj.Customer

Return CustomerReturn.xsd" created="2013-12-19T12:00:00.753Z"

locale="en-US-XMLSchemaCompliant"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

nlsMode="SINGLE_LANGUAGE" dateTimeMode="NORMALIZED">

<CustomerReturn

xmlns="com.cisag.app.sales.customerreturn.obj.CustomerReturn">

<invoicingPartyData>

<partner>

<numer>90000</numer>

</Partner>

</invoicingPartyData>

<customerData>

<CustomerPartner>

<numer>10010</numer>

</CustomerPartner>

</customerData>

<Type>

<code>KR</code>

</Type>

<Details>

<totalQuantity>

<amount>10</amount>

<Uom>

<code>pc</code>

</Uom>

</totalQuantity>

<item>

<numer>10010</numer>

</Item>

</details>

</CustomerReturn>

</semiramis>

W przedstawionym przykładzie pozostałe atrybuty są uzupełniane automatycznie na podstawie wartości domyślnych wynikających z danych podstawowych.

Możliwe jest również zaimportowanie dodatkowych danych oraz zastosowanie atrybutów technicznych zamiast funkcjonalnych. Wykaz dostępnych atrybutów znajduje się w rozdziale Przegląd: Atrybuty.

Jeśli pozycja zostanie utworzona, nie ma możliwości jej anulowania w ramach tego samego importu. Przypadek z ustawieniem canceled == true nie jest obsługiwany w tym kontekście. Aby anulować nową pozycję, należy przeprowadzić dwa oddzielne importy: pierwszy w celu utworzenia pozycji z kompletem danych (bez atrybutu canceled), a drugi — wyłącznie w celu jej anulowania poprzez ustawienie atrybutu canceled na wartość true. Należy pamiętać, że w drugim imporcie wszelkie dodatkowe dane zawarte dla tej pozycji zostaną zignorowane.

Funkcje specjalne podczas przetwarzania istniejącego zwrotu klienta

Podczas przetwarzania zwrotów klienta, które zostały już zapisane w systemie, należy uwzględnić poniższe zasady:

W przypadku importowania danych w systemach wielofirmowych oraz jednofirmowych z aktywnymi uprawnieniami do treści wymagana jest obecność organizacji sprzedaży. Podczas edycji istniejącego zwrotu organizacja sprzedaży jest zawsze odczytywana z dokumentu zapisanego w bazie danych. Ewentualna inna wartość podana w pliku importu jest ignorowana.

Aby odszukać istniejący zwrot klienta, należy podać identyfikator techniczny CustomerReturn:guid lub identyfikator funkcjonalny (rodzaj oraz numer).

Dla pozycji zwrotu możliwe jest zastosowanie wszystkich wariantów importu, w tym również usuwania. W celu zlokalizowania konkretnej pozycji należy wskazać identyfikator techniczny CustomerReturnDetail:guid lub numer pozycji jako identyfikator funkcjonalny.

Import zmian jest możliwy tylko wtedy, gdy nie istnieją żadne blokady kontroli, które by to uniemożliwiały.

W przypadku pozycji anulowanych — zarówno tych już oznaczonych jako anulowane, jak i tych, które zostaną oznaczone jako anulowane w bieżącym imporcie (canceled == true) — żadne dodatkowe dane z pliku nie są przetwarzane.

Automatyczne zwolnienie po imporcie

Po pomyślnym przeprowadzeniu importu zwrot klienta może zostać automatycznie zwolniony. Funkcja ta jest szczególnie przydatna w połączeniu ze statusem otwarcia W opracowaniu (zgodnie z definicją rodzaju dokumentu), ponieważ zapobiega użyciu zwrotu klienta w dalszych dokumentach przed jego kompletnym zaimportowaniem.

Na czas zwolnienia zwrot klienta przyjmuje status Nieprawidłowy, co oznacza, że nie może być przetworzony w tym kroku.

Aby aktywować tę funkcję, należy w instancji bazy wirtualnej ustawić atrybut autoRelease na wartość true. Jeśli funkcja została aktywowana i import zakończył się bez błędów, w dzienniku komunikatów pojawia się informacja o automatycznym zwolnieniu zwrotu klienta. W przypadku niepowodzenia wyświetlane jest ostrzeżenie.

Wskazówki dotyczące importowania starszych danych

Przy importowaniu danych historycznych zaleca się przestrzeganie poniższych zasad:

  • Należy upewnić się, że wszystkie dane podstawowe zostały prawidłowo przeniesione, co pozwala uniknąć zbędnych komunikatów o błędach przy przetwarzaniu zwrotów klientów.

  • Wszystkie dokumenty, takie jak dowody dostawy, faktury sprzedaży oraz zamówienia sprzedaży, powinny być dostępne w systemie przed rozpoczęciem importu zwrotów.

Teksty (InfoTeksty)

W przypadku zwrotu klienta możliwe jest zaimportowanie tekstów zarówno na poziomie bazy, jak i na poziomie pozycji. Import tekstów odbywa się poprzez relację InfoTeksty.

Technicznie rzecz biorąc, teksty są przypisywane za pomocą następujących atrybutów:

Atrybut Relacja Opis
contentType Rodzaj przypisanego tekstu
language Kod języka (np. de, pl)
text Treść

Poniższy przykład zawiera tekst w języku niemieckim przypisany do bazy.

<?xml version="1.0" encoding="UTF-8"?><semiramis

xmlns="com.cisag.app.sales.customerreturn.obj.CustomerReturn"

xsi:schemaLocation="com.cisag.app.sales.customerreturn.obj.Customer

Return CustomerReturn.xsd" created="2013-12-19T12:00:00.753Z"

locale="en-US-XMLSchemaCompliant"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

nlsMode="SINGLE_LANGUAGE" dateTimeMode="NORMALIZED">

<CustomerReturn

xmlns="com.cisag.app.sales.customerreturn.obj.CustomerReturn">

<type>

<code>KR</code>

</type>

<numer>ABC123</numer>

<InfoTexts>

<language>pl</language>

<text>&lt;html&gt;Tekst informacyjny bazy&lt;/html&gt;</text>

<contentType>text/html</contentType>

</InfoTexts>

</CustomerReturn>

</semiramis>

Można również stosować różne opcje formatowania tekstów. Jeśli potrzebne są przykłady konkretnego formatowania, zaleca się utworzenie przykładowego dokumentu z odpowiednim formatem tekstu i jego eksport.

Przegląd: Atrybuty

Poniżej przedstawiono atrybuty dostępne do importu dla poszczególnych obiektów biznesowych. W przypadku atrybutów kluczy obcych podano również odpowiednią nazwę relacji. Pola identyfikacyjne oraz pola wymagane mogą ulec zmianie lub zostać rozszerzone w wyniku dostosowań.

Atrybuty identyfikacyjne (kluczowe) oznaczono symbolem (K).

Dane podstawowe

Zwrot klienta (CustomerReturn)
Atrybut Relacja Opis
autoRelease - Automatyczne zwolnienie (atrybut wirtualny). Zobacz rozdział Automatyczne zwolnienie po imporcie.
creditOrderType CreditOrderType Rodzaj zamówienia noty kredytowej
customerData - Zobacz rozdział Dane klienta (customerData)
date - Data wprowadzenia
deliverySlipHeader DeliverySlip Dowód dostawy (tylko przy odniesieniu Dowód dostawy)
guid (K) - Techniczny identyfikator do zmiany/usunięcia zapisanych danych – o ile znany
invoiceHeader CustomerInvoice Faktura (tylko przy odniesieniu Faktura z transakcją magazynową)
invoicingPartyData.careOf CareOfPartner Organizacja sprzedaży: Osoba kontaktowa
invoicingPartyData.careOfName - Organizacja sprzedaży: Osoba kontaktowa – nazwa
invoicingPartyData.partner Partner Organizacja sprzedaży
number (K) - Numer (identyfikator funkcjonalny), opcjonalny przy tworzeniu – w przeciwnym razie przypisywany automatycznie. Wymagany, jeśli guid nie został podany przy zmianie/usunięciu.
orderHeader SalesOrder Zamówienie (tylko przy odniesieniu Zamówienie sprzedaży)
outputSettings.returnMaterialAuthorization.medium - Ustawienia wydruku dokumentu RMA – medium
outputSettings.returnMaterialAuthorization.mediumAddress - Ustawienia wydruku dokumentu RMA – adres medium
outputSettings.pickup.medium - Ustawienia wydruku zlecenia odbioru – medium
outputSettings.pickup.mediumAddress - Ustawienia wydruku zlecenia odbioru – medium
pickupData - Zobacz rozdział Dane odbioru (pickupData)
pickupDate - Termin odbioru
pickupDeliverySlipType PickupDeliverSlipType Rodzaj zlecenia dostawy dla odbioru
pickupPartnerData - Zobacz rozdział Dane odbioru (pickupPartnerData)
receiptHeader ReceiptOfGoods Przyjęcie towaru
receiptOwner ReceiptOwner Właściciel zapasu docelowego
receiptOwnerOrigin - Pochodzenie właściciela zapasu docelowego
referenceType - Odniesienie
replacementDeliveryCreditNote - Nota kredytowa dla wymiany towaru
replacementDeliveryOrderType ReplacementDeliveryOrderType Rodzaj zlecenia wymiany towaru
replacementOrderOwnerOrigin - Pochodzenie właściciela zapasu zlecenia wymiany
replacementOrderStorageAreaOrigin - Pochodzenie magazynu zlecenia wymiany
responsible ResponsiblePartner Odpowiedzialny pracownik
returnMethod - Wymiana towaru
returnRecipientData.careOf CareOfPartner Odbiorca zwrotu: Osoba kontaktowa
returnRecipientData.careOfName - Odbiorca zwrotu: Osoba kontaktowa – nazwa
returnRecipientOrigin - Pochodzenie odbiorcy zwrotu
salesRepresentatives[0:2] SalesRepresentatives Do trzech przedstawicieli
status - Ogólny status (Zwolniony, Zablokowany) – uwzględniany tylko jeśli dokument nie zawiera pozycji
storageAreaOrigin - Pochodzenie magazynu przyjęcia
storageArea.warehouse - Magazyn przyjęcia (kod)
type (K) - Rodzaj zwrotu klienta (identyfikator funkcjonalny). Wymagany, jeśli guid nie został podany przy zmianie/usunięciu
InfoTexts - Zobacz rozdział Teksty (InfoTexts)
TextAssignments - Załączniki plikowe / Teksty – zobacz rozdział Teksty (TextAssignments)
Dane klienta (customerData)

Dane klienta są przechowywane w bazie danych jako obiekt biznesowy z kodem skrótu i są udostępniane do eksportu/importu jako komponent oznaczony techniczną nazwą atrybutu customerData. Analogicznie, dane adresowe są reprezentowane za pomocą technicznej nazwy addressData.

Wyjaśnienie relacji atrybutów:

Atrybut Relacja Opis
addressData.city Adres – Miejscowość
addressData.country addressData.Country Adres – Kraj
addressData.district Adres – Dzielnica
addressData.poBox Adres – Skrytka pocztowa
addressData.poBoxCity Adres – Miejscowość skrytki
addressData.poBoxPostalCode Adres – Kod pocztowy skrytki
addressData.postalCode Adres – Kod pocztowy
addressData.region addressData.Region Adres – Region
addressData.street Adres – Ulica
customer CustomerPartner Klient
name Nazwa klienta
careOf CareOfPartner Osoba kontaktowa
careOfName Osoba kontaktowa – Nazwa
Dane odbioru (pickupPartnerData)

Dane odbioru są przechowywane w bazie danych jako obiekt biznesowy z kodem skrótu i są dostępne do eksportu i importu jako komponent o nazwie technicznej pickupPartnerData. Analogicznie, dane adresowe są reprezentowane pod techniczną nazwą addressData.

Wyjaśnienie relacji atrybutów

Atrybut Relacja Opis
addressData.city Adres – Miasto
addressData.country addressData.Country Adres – Kraj
addressData.district Adres – Dzielnica
addressData.poBox Adres – Skrytka pocztowa
addressData.poBoxCity Adres – Miasto skrytki
addressData.poBoxPostalCode Adres – Kod pocztowy skrytki
addressData.postalCode Adres – Kod pocztowy
addressData.region addressData.Region Adres – Region
addressData.street Adres – Ulica
partner Partner Partner
name Nazwa partnera
careOf CareOfPartner Osoba kontaktowa
careOfName Osoba kontaktowa – Nazwa
Dane dostawy pickup (pickupData)

Dane dostawy są przechowywane w bazie jako BusinessObject z kodem skrótu i udostępniane do eksportu/importu jako komponent.

Atrybut Relacja Opis
carrier Carrier Spedytor
deliveryTerms DeliveryTerms Termin dostawy
deliveryTermsLocation Termin dostawy – Odniesienie do lokalizacji
shippingTerms ShippingTerms Warunki wysyłki

Teksty (TextAssignments)

Atrybut Relacja Opis
code Kod modułu tekstowego (opcjonalnie)
document Dokument, do którego przypisany jest tekst
number Numer
text Teksty według języka (używane tylko, jeśli nie podano modułu tekstowego)
type Typ tekstu
Atrybuty komponentu text:

Atrybut Relacja Opis
contentType Typ zawartości
language Język
text Treść tekstu

Wskazówka
Podczas importu tekstów z pliku, domyślne wartości z danych podstawowych partnera są ignorowane. Aby zawsze stosować wartości domyślne, należy ustawić właściwość ServerProperty com.cisag.app.general.order.bi.applyAllwaysTextDefaults na true. Numery wierszy tekstu muszą być unikalne – w przeciwnym razie utworzony zostanie tylko jeden wpis z treścią tekstu artykułu.

Dane pozycji (pozycje podstawowe)

Pozycja zwrotu klienta (CustomerReturnDetail)
Atrybut Relacja Opis
canceled Anulowano (zob. rozdziały:Funkcje specjalne podczas przetwarzania istniejącego zwrotu klienta)
consideredManualActivityQuantity.amount Ilość uwzględniana ręcznie
consideredManualActivityQuantity.uom Uom Jednostka miary dla ręcznie uwzględnianej ilości
customerItemNumber Numer pozycji klienta
deliverySlipHeader DeliverySlip Dowód dostawy (dla odniesienia Dokument dostawy)
deliverySlipDetail DeliverySlipDetail Pozycja dokumentu dostawy
guid (K) Techniczny identyfikator pozycji
invoiceHeader CustomerInvoice Faktura (dla odniesień do faktury lub dowodu dostawy)
invoiceDetail CustomerInvoiceDetail Pozycja faktury
item Artykuł
manualActivityText Tekst działania ręcznego
number (K) Numer pozycji (identyfikacja techniczna)
orderHeader SalesOrder Zamówienie sprzedaży
orderDetail SalesOrderDetail Pozycja zamówienia sprzedaży
pickupData Dane dostawy (zob. rozdział: PickupData)
pickupDate Data odbioru
pickupPartnerData Dane odbioru (zob. rozdział: pickupPartnerData)
preferredActivity Preferowane działanie
pseudoItemDescription Opis pseudoelementu (tylko dla pseudoelementów)
reasonClassification Powód zwrotu
reasonText Tekst powodu zwrotu
receiptManual Odbiór zakończony ręcznie
receiptOwner Właściciel przyjęcia towaru (docelowy właściciel zapasu)
receiptOwnerOrigin Pochodzenie właściciela przyjęcia towaru
referenceType Typ odniesienia
returnMethod Sposób dostawy towaru
returnRecipientData.careOf CareOfPartner Odbiorca zwrotu – Osoba kontaktowa
returnRecipientData.careOfName Odbiorca zwrotu – Osoba kontaktowa (nazwa)
returnRecipientOrigin Pochodzenie odbiorcy zwrotu
status Status ogólny (brany pod uwagę tylko, gdy nagłówek nie ma statusu Zablokowany)
storageAreaOrigin Pochodzenie magazynu przyjęcia
storageArea.warehouse Magazyn pryzjęcia (kod)
totalQuantity.amount Ilość zwracana
totalQuantity.uom Uom Jednostka miary ilości zwracanej
InfoTexts Teksty (zob. rozdział InfoTexts)
TextAssignments Załączniki/teksty (zob. rozdział TextAssignments)
Dane odbioru (pickupPartnerData)

Atrybuty odpowiadają atrybutom w bazie. Zobacz ten rozdział: Dane odbioru (pickupPartnerData)

Dane odbioru (pickupData)

Atrybuty odpowiadają atrybutom w bazie. Zobacz ten rozdział: Dane odbioru (pickupData)

Teksty (TextAssignments)

Atrybuty odpowiadają atrybutom w bazie. Zobacz ten rozdział: Teksty (TextAssignments)

Dane pozycji (składniki zestawu)

Składniki zestawu są dostępne jako relacja 1-N SubDetails do pozycji podstawowej.

Pozycja zwrotu klienta (CustomerReturnDetail)
Atrybut Relacja Opis
guid (K) Identyfikacja techniczna (pozycja) dla zmiany lub usunięcia już zapisanych danych – jeśli jest znana.
subNumber (K) Numer podpunktu
InfoTexts Patrz ten rozdział: Teksty (InfoTexts)
Teksty (TextAssignments)

Atrybuty odpowiadają atrybutom w nagłówku. Zobacz ten rozdział: Teksty (TextAssignments)

Czy ten artykuł był pomocny?