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:
- Otworzyć aplikację Importuj dane.
- 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. - W razie potrzeby skopiować istniejący filtr lub utworzyć nowy dla tego obiektu biznesowego.
- W razie potrzeby zmodyfikować już wybrane atrybuty filtra.
- Wybrać przycisk Importuj dane na standardowym pasku narzędzi.
→Zostanie otwarte okno dialogowe Importuj dane. - W oknie dialogowym Importuj dane określić ustawienia pliku przeznaczonego do importu. Opisy pól znajdują się w dokumentacji Importuj dane.
- 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 |
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><html>Tekst informacyjny bazy</html></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 |
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)