Poinformuj interesariuszy o sytuacji braku zapasów bez ręcznej interwencji

Poinformuj interesariuszy o sytuacji braku zapasów bez ręcznej interwencji

Wymóg

Gdy skończą się zapasy towaru, wyślij automatyczną wiadomość e-mail do dostawcy i powiadom klienta, że towar nie jest dostępny. Wyślij alert do klienta, gdy towar zostanie uzupełniony.

Przypadek użycia  

W aplikacji do zarządzania zamówieniami lub zapasami występują cztery formularze. Formularz dostawców do śledzenia dostawców, którzy dostarczają produkty dla firmy, formularz klientów zawierający dane klientów korzystających z firmy, formularz produktów do przechowywania danych o zapasach oraz formularz zamówień do składania zamówienia. Tutaj składane jest zamówienie na większą ilość niż stan magazynowy. Potrzebne są tutaj następujące rzeczy:
  • Powiadamianie i informowanie klienta, że dostępna jest mniejsza ilość artykułów, które zostaną dostarczone.
  • Powiadomienie dostawcy o sytuacji braku towaru.
  • Powiadomienie klienta o uzupełnieniu towaru.
       

Kroki do naśladowania  

1. Utwórz formularze z następującymi szczegółami:
Formularz  
Nazwa łącza formularza
Nazwa pola
Nazwa łącza pola
Typ pola
Dostawcy
Dostawcy
Nazwa dostawcy
Dostawca_Nazwa
Nazwa
E-mail dostawcy
Dostawca_e-mail
Email
Klienci
Klienci
Nazwa klienta
Klient_Nazwa
Nazwa
Email
Email klienta
Email
Adres
Adres
Adres
Produkty
Produkty
Nazwa produktu
Nazwa produktu
Pojedyncza linia
Magazyn
Magazyn
Numer
Dostawca
Dostawca
Wyszukiwanie (dostawca)
Klienci z prośbą o uzupełnienie zapasów
Customers_With_Restock_Request
Nazwa klienta
Klient
Wyszukiwanie (klienci)
Nazwa produktu
Produkt
Wyszukiwanie (produkty)
Wysłany
Wysłany
Pole decyzyjne
Liczba potrzebnych przedmiotów
Number_Of_Items_needed
Numer
Zamówienia
Zamówienia
 
Nazwa klienta
Klient
Wyszukiwanie (klienci)
Szczegóły zamówienia
  • Nazwa produktu
  • Ilość
  • Liczba potrzebnych przedmiotów
Szczegóły zamówienia
  • Nazwa produktu
  • Ilość
  • Liczba_potrzebnych_przedmiotów
Podformularz
  • Wyszukiwanie (produkty)
  • Numer
  • Numer

2. Utwórz przepływ pracy, który będzie wyzwalany za każdym razem, gdy klient zaktualizuje pole Ilość w podformularzu formularza Zamówienia.

 
3. Kliknij Dodaj nową akcję i zapisz następujący fragment kodu Deluge w edytorze Deluge, aby obliczyć liczbę przedmiotów potrzebnych, jeśli klient zażądał większej liczby przedmiotów:
  1. //ustaw wartość Liczby potrzebnych pozycji dla bieżącego wiersza podformularza na 0
  2. row.Number_Of_Items_Needed=0;
  3. //pobrać odpowiedni rekord produktów na podstawie pola Nazwa produktu w podformularzu
  4. product = Products[ID == row.Products];
  5. //Porównaj wartość wprowadzoną przez klienta w polu Ilość z wartością Magazynu wybranego Produktu i oblicz potrzebną ilość sztuk, jeśli żądana Ilość jest mniejsza niż Zapas
  6. if(row.Quantity > product.Stock)
  7. {
  8. //Ostrzegaj, jeśli wartość ilości zostanie zresetowana do dostępnej wartości zapasów
  9.  alert "Sorry, we have only " + product.Stock + " items. We will add this to your cart now. We will notify when we get the stock from our vendor.";
  10.  row.Number_Of_Items_Needed=row.Quantity - product.Stock;
  11.  row.Quantity=product.Stock;
  12. }
  13. //Ponownie oblicz nowe wartości całkowite
  14. row.Sub_Total=row.Quantity * row.Rate;
4. Utwórz kolejny przepływ pracy, który będzie wyzwalany za każdym razem, gdy rekord zostanie dodany do formularza Zamówienia (pomyślne przesłanie formularza).
 
5. Kliknij Dodaj nową akcję i zapisz następujący fragment kodu Deluge w edytorze Deluge, aby powiadomić interesariuszy, dostawców i klientów na podstawie liczby elementów:                  
Dla lepszego zrozumienia kod Deluge jest podzielony na fragmenty. Wyjaśniamy fragmenty, a następnie układamy je odpowiednio w celu wstawienia ich do Edytora Deluge.
Sprawdź w załącznikach plik z poniższymi fragmentami skonsolidowanymi w jeden działający skrypt.

Fragment a
 
Powiadomienie dla klientów jest oparte na wartości pola Liczba potrzebnych pozycji. Przeanalizujmy to na podstawie wartości tego pola. Jeśli wartość jest większa niż 0, do wniosku Klienci z żądaniem uzupełnienia zapasów wstawiany jest rekord z wartością Liczba potrzebnych pozycji.
  1. //Śledzenie uzupełnienia zapasów z prośbą o dane klienta
  2. //Sprawdź, czy prośba z tym samym klientem i produktem już tam jest
  3.   customers_with_restock_request = Customers_With_Restock_Request[Products == product.ID && Customer == input.Customer && Mailed == false].count();
  4.   if(customers_with_restock_request > 0)
  5.   {
  6. //Klient, który wcześniej zgłosił prośbę
  7.  customers_with_restock_request = Customers_With_Restock_Request[Products == product.ID && Customer == input.Customer && Mailed == false];
  8.  customers_with_restock_request.Number_Of_Items_needed=customers_with_restock_request.Number_Of_Items_needed - row.Number_Of_Items_Needed;
  9.   }
  10.   else
  11.   {
  12. //Nowy klient z prośbą o uzupełnienie zapasów
  13.    insert into Customers_With_Restock_Request
  14.    [
  15.     Added_User=zoho.loginuser
  16.     Customer=input.Customer
  17.     Mailed=false
  18.     Number_Of_Items_needed=row.Number_Of_Items_Needed
  19.     Products=row.Products
  20.    ]
  21.   }

Fragment b
 
Dostawca zostanie wysłany e-mailem z zaznaczeniem tego, a pole Magazyn odpowiedniego rekordu produktów jest ustawione na 0.
  1. //Wyślij e-mail do dostawcy
  2. sendmail
  3.   [
  4.    from :zoho.adminuserid
  5.    to :vendor.Email
  6.    subject :"Out Of Stock"
  7.    message :"<div><div>Hi, " + vendor.Vendor_Name + ",<br></div><div><br></div><div>Recently our product, " + product.Product_Name + " has gone out of stock. Kindly restock.<br></div><div><br></div><div>Thank you.<br></div><div><br></div></div><div><br></div>"
  8.   ]
  9. //Ustaw pole Magazyn odpowiedniego rekordu produktów na 0
  10.  product.Stock=0;

Fragment c
 
Jeśli żądanie klienta jest znacznie poniżej wartości zapasów w rekordzie produktów, dodamy wiersz i zaktualizujemy wartość zapasów. Aktywnie wysyłamy e-mail do dostawcy, jeśli zapas spadnie poniżej wartości progowej, powiedzmy 50 pozycji.
  1.   //Oblicz nowe zapasy
  2.   product.Stock=product.Stock - row.Quantity;
  3. //Wysyłaj pocztę, gdy liczby spadną poniżej 50
  4.   if(product.Stock <= 50)
  5.   {
  6.    sendmail
  7.    [
  8.     from :zoho.adminuserid
  9.     to :vendor.Email
  10.     subject :product.Product_Name + " is running out!"
  11.     message :"<div><div>Hi, " + vendor.Vendor_Name + ",<br></div><div><br></div><div>Recently our product, " + product.Product_Name + " is being most sought after, that we are running out of it. Only " + product.Stock + " remain! Kindly restock.<br></div><div><br></div><div>Thank you.<br></div><div><br></div></div><div><br></div>"
  12.    ]
  13.   }
 
Fragment d
 
Teraz połączymy Snippet a, Snippet b i Snippet c; fragmenty muszą być zapętlone przez łączną liczbę wierszy wstawionych do podformularza. Rekordy Produkty i Dostawcy są znalezione po pobraniu na podstawie wartości wybranej w wierszu podformularza.
  1. //Przypisz podformularz bieżącego rekordu do zmiennej
  2. subform = input.Inline_Subform;
  3. for each row in subform
  4. {
  5.  //Pobierz odpowiedni produkt
  6.  product = Products[ID == row.Products];
  7.  //Zdobądź dostawcę
  8.  vendor = product.Vendor;
  9. if(row.Number_Of_Items_Needed > 0)
  10. {
  11.   //Wstaw fragment a i b
  12.  } 
  13.  else
  14. {
  15. //Wstaw fragment c
  16. }
  17. }

6. Utwórz przepływ pracy w formularzu produktu, po pomyślnym przesłaniu formularza, gdy rekord produktu jest edytowany. 
 

7. Kliknij Dodaj nową akcję i zapisz następujący fragment kodu potopu w edytorze potopu, aby wysłać e-mail do klientów, odpowiednio dla pomyślnie zaktualizowanego pola Stock:
  1.   //Przypisywanie tematu i wiadomości do wysłania e-maila do klientów
  2. subject = "";
  3. message = "";
  4. if(input.Stock > 0)
  5. {
  6.  //Ten warunek gwarantuje, że wysyłka dotyczy tylko uzupełnienia zapasów
  7.  //Wysyłaj wiadomości tylko do tych klientów, którzy poprosili o ten produkt
  8.  for each  customer in Customers_With_Restock_Request[Products == input.ID && Mailed == false]
  9.  {
  10. //Sprawdź, czy pozycje żądania uzupełnienia zapasów przez klienta są równe zaktualizowanym zapasom i wyślij odpowiednio
  11.   if(customer.Number_Of_Items_needed <= input.Stock)
  12.   {
  13.    subject = input.Product_Name + " is now re-Stocked!";
  14.    message = "<div>Hello<br></div><div><br></div><div>" + input.Product_Name + " is now restocked with " + input.Stock + " items. Order now!</div>";
  15.   //Oznacz je jako wysłane, aby powstrzymać się od spamowania
  16.    customer.Mailed=true;
  17.   }
  18.   else
  19.   {
  20. //Wysłać wiadomość, gdy liczba artykułów uzupełniających jest mniejsza niż żądana przez klienta
  21.    subject = input.Product_Name + " is re-Stocked, but...";
  22.    message = "<div>Hello<br></div><div><br></div><div>" + input.Product_Name + " is now restocked with " + input.Stock + " items. We know you had asked for " + customer.Number_Of_Items_needed + " items. We were able to procure a lesser number. Sorry! We will notify when we get the remaining items!</div>";
  23.   }
  24.   sendmail
  25.   [
  26.    from :zoho.adminuserid
  27.    to :customer.Customer.Email
  28.    subject :subject
  29.    message :message
  30.   ]
  31. //Ponieważ klient powinien zostać ponownie wysłany, Mailed nie jest aktualizowany
  32.  }

Zobacz jak to działa    


    • Related Articles

    • Synchronizuj moduł klientów Quickbooks z Zoho Creator

      Wymóg Użyj źródła danych, aby zsynchronizować moduł klientów Quickbooks z aplikacją Zoho Creator. Przypadek użycia   Firma logistyczna prowadzi swoje dane klientów i konta w Quickbooks. Do rezerwacji korzystają z aplikacji do zarządzania logistyką ...
    • Okresowo przesyłaj pliki z Zoho Creator do Zoho Workdrive

      Wymóg Przeprowadź integrację między Zoho Creator i Zoho Workdrive i korzystaj z harmonogramów, aby co miesiąc przesyłać pliki z Creator do Workdrive. Przypadek użycia   Aplikacja do śledzenia projektów przechowuje pliki raportów ukończonych projektów ...
    • Kalkulacja czynszu na podstawie wielu wartości wybranych przez klientów na wydarzeniu

      Wymóg Oszacuj czynsz za nieruchomość na podstawie daty i godziny rezerwacji, a także liczby obecności. Przypadek użycia Wynajmowana jest sala bankietowa w hotelu. Oto struktura cenowa hali: Dzień Cena podstawowa (w USD) Liczba gości standardowych (w ...
    • Śledź cykl rozwoju oprogramowania

      Wymóg   Użyj funkcji Blueprints, aby śledzić i zarządzać procesem tworzenia oprogramowania. Przypadek użycia   Firma programistyczna wykorzystuje plany do śledzenia cyklu życia oprogramowania i zarządzania nim. Potrzebne są różne działania ...
    • Plany — funkcja w centrum uwagi

      Przykładowy przypadek użycia Firma programistyczna może wykorzystać funkcję Blueprint do śledzenia cyklu życia oprogramowania i zarządzania nim. Plan składa się z dwóch części: etapów i przejść. Zoho Creator umożliwia aktualizację statusu etapu dla ...