Wymóg
Użyj Deluge, aby wyodrębnić plik ZIP i wysłać go pocztą e-mail jednym kliknięciem.
Przypadek użycia
Aplikacja do zarządzania zasobami ludzkimi zawiera trzy formularze: Dodaj pracownika , Employee Payslips i Download My Payslips . Formularz Dodaj pracownika przechowuje profile wszystkich pracowników. Formularz Employee Payslips służy do przechowywania pasków płacowych wszystkich pracowników. Pod koniec każdego roku HR (administrator) przesyła odcinki wypłat wszystkich pracowników jako pliki zip do formularza Odcinki wypłat dla pracowników. Ten formularz jest dostępny tylko dla administratora. Pracownicy mogą jednak otrzymać odcinki wypłaty za pomocą bezpaństwowego formularza Pobierz moje odcinki wypłaty. Gdy pracownik poprosi o odcinek wypłaty za pomocą formularza, odcinek wypłaty z wybranego miesiąca zostanie wyodrębniony z pliku zip z wybranego roku (przechowywany w formularzu Odcinki wypłaty pracownika) i wysłany jako wiadomość e-mail na adres e-mail pracownika.
Kroki do naśladowania
1. Utwórz dwa formularze z następującymi szczegółami.
Formularz | Nazwa łącza formularza | Nazwa pola | Nazwa łącza pola | Typ pola |
Dodaj Pracownika | Dodaj_Pracownika | Oficjalny e-mail | Oficjalny e-mail | Email |
ID pracownika | Pracownik_ID | Numer |
Ten przypadek użycia wymaga tylko wyżej wymienionych pól. Możesz dołączyć tyle pól, ile jest to wymagane. |
Odcinek wypłaty pracownika | Employee_Payslip | E-mail pracownika | E-mail pracownika | Email |
| Odcinki wypłaty | Odcinki wypłaty | Podformularz |
Pobierz mój odcinek wypłaty (formularz bezstanowy) | Pobierz_My_Payslip | ID pracownika | Pracownik_ID | Wyszukiwanie (Dodaj_Pracownika) |
Wprowadź rok | Wprowadź rok | Numer |
Wybierz miesiąc | Wybierz_miesiąc | Upuścić ( importuj wstępnie zdefiniowane opcje dla miesięcy roku ) |
Stworzyliśmy formularz Pobierz mój odcinek wypłaty jako bezpaństwowy, ponieważ nie wymagamy, aby dane podane w formularzu były przechowywane w aplikacji.
Aby utworzyć formularz bezstanowy, musisz utworzyć zwykły formularz z wymaganymi polami i zduplikować formularz z odznaczonym polem „Dane będą przechowywane w Kreatorze Zoho”.
2. Usuń przyciski Prześlij i Resetuj domyślne i dodaj przycisk o nazwie Pobierz odcinek wypłaty w bezstanowym formularzu Pobierz mój odcinek wypłaty. W razie potrzeby możesz także zachować przycisk Reset .
3. Utwórz przepływ pracy z następującymi szczegółami.
4. Zapisz następujący skrypt w Edytorze Deluge:
- // Disable field
- disable Employee_ID;
- // Assign the record ID of the logged in employee's record in Add_Employee form to the Employee_ID lookup field
- input.Employee_ID = Add_Employee[Official_Email == zoho.loginuserid].ID;
5. Utwórz połączenie z usługą Zoho Creator o nazwie „creator_oauth_connection”. To połączenie zostanie użyte w skrypcie Deluge w kroku 7 do pobrania pliku.
6. Utwórz kolejny przepływ pracy z następującymi szczegółami.
7. Kliknij Dodaj nową akcję i wybierz Skrypt Deluge. Zapisz następujący skrypt Deluge w edytorze Deluge:
- // Fetch employee record of the logged in employee from Employee_Payslip Form
- empRecord = Employee_Payslip[Employee_Email == zoho.loginuserid];
- //Iterate through the subform that holds employee's payslips as zip files
- for each subformRow in empRecord.Payslips
- {
- //Find the subform row that holds the payslip zip file of the requested year
- if(subformRow.Year_field == Enter_Year)
- {
- //Download the requested year's payslip zip file using Zoho Creator V2 API
- //Replace <app_admin_name> and <application_link_name> with appropriate values
- zip_file = invokeurl
- [
- url :" https://creator.zoho.com/api/v2/<app_admin_name>/<application_link_name>/report/All_Employee_Payslips/" + empRecord.ID + "/Payslips.Payslip_ZIP/" + subformRow.ID + "/download"
- type :GET
- connection:"creator_oauth_connection"
- ];
- // Extract the zip file to get pdf files containing payslip of individual months
- extractedFiles = zip_file.extract();
- //The extracted files are returned as Map in which the keys are file name and values are their corresponding pdf file
- //Assuming the file names are stored in the format EmployeeID-Month-Year.pdf, construct file name of the requested payslip
- fileName = input.Employee_ID.Employee_ID + "-" + input.Select_Month + "-" + input.Enter_Year + ".pdf";
- /Get the required payslip from the extracted file
- requestedFile = extractedFiles.get(fileName);
- //Send the requested payslip as mail
- sendmail
- [
- from :zoho.adminuserid
- to :zoho.loginuserid
- subject :"Payslip" + "-" + input.Select_Month + " " + input.Enter_Year
- message :"Please find your requested payslip in the attachments"
- Attachments :file:requestedFile
- ]
- //Display an acknowledgement message
- alert "The requested payslip has been sent as email";
- }
- }
Zobacz jak to działa
Punkty do zapamiętania
Skrypt Deluge dostarczony w tym samouczku jest specyficzny dla plików ZIP, które zawierają po 12 plików PDF, z których każdy odpowiada miesiącom w roku. Aby skrypt działał zgodnie z oczekiwaniami, nazwy plików PDF muszą być w formacie: <employeeID>-<month>-<year>.pdf .
Example: 2406-January-2020
Proszę sprawdzić w załącznikach przykładowy plik, na którym działa dostarczony skrypt Deluge.