CreateZip
Opis
Tworzy archiwum ZIP z fileList przygotowanej w regule albo z plików dostępnych w folderze serwera.
Funkcja CreateZIP() obsługuje dwa scenariusze biznesowe. W pierwszym reguła buduje fileList przez AddFileToList(), a następnie tworzy ZIP z załączników sprawy albo z plików wygenerowanych w workflow. To jest wariant zalecany i w pełni wspierany zarówno dla instalacji cloud, jak i on-premise. W drugim scenariuszu funkcja tworzy ZIP z plików znajdujących się w folderze lub na udziale sieciowym dostępnym dla serwera aplikacyjnego. Ten wariant ścieżkowy jest przeznaczony wyłącznie dla integracji serwerowych w środowiskach on-premise. W instalacjach cloud overloady ścieżkowe są blokowane i należy używać wyłącznie wariantu fileList.
Składnia
CreateZip(fileList);
Tworzy ZIP z fileList przygotowanej w regule bez podawania własnej nazwy archiwum. Używaj tego wariantu, gdy archiwum będzie dalej obsługiwane w procesie.
CreateZip(fileList, zipName);
Tworzy ZIP z fileList przygotowanej w regule. To jest standardowy wariant do pakowania załączników sprawy lub plików generowanych wewnątrz AMODIT.
CreateZip(fileList, zipName, password);
Tworzy chroniony hasłem ZIP z fileList przygotowanej w regule. Używaj tego wariantu, gdy chcesz spakować pliki workflow do jednego archiwum bez używania ścieżek serwera.
CreateZip(fileList, zipName, password, useAES);
Tworzy chroniony hasłem ZIP z szyfrowaniem AES z fileList przygotowanej w regule. Ten wariant nadaje się do dokumentów sprawy i plików generowanych w regułach zarówno w cloud, jak i on-premise.
CreateZip(pathFilesToZip, pathStoreZip, zipName);
Tworzy ZIP z plików zapisanych w folderze dostępnym dla serwera aplikacyjnego lub udziału sieciowego. Używaj go wtedy, gdy pliki nie pochodzą ze sprawy, lecz z zasobów serwera w środowisku on-premise. Ten overload nie jest dostępny w instalacjach cloud.
CreateZip(pathFilesToZip, pathStoreZip, zipName, password);
Tworzy chroniony hasłem ZIP z plików zapisanych w folderze dostępnym dla serwera aplikacyjnego. Ten wariant jest przeznaczony dla scenariuszy opartych o pamięć serwera w środowiskach on-premise. Ten overload nie jest dostępny w instalacjach cloud.
CreateZip(pathFilesToZip, pathStoreZip, zipName, password, useAES);
Tworzy chroniony hasłem ZIP z szyfrowaniem AES z plików zapisanych w folderze dostępnym dla serwera aplikacyjnego. Ten wariant stosuj tylko w scenariuszach serwerowych lub integracyjnych w środowiskach on-premise. Ten overload nie jest dostępny w instalacjach cloud.
Parametry
fileList
- Typ:
FileList - Wymagany: tak
- Dozwolone wartosci: brak
Zmienna typu fileList zbudowana przez AddFileToList(). Używaj jej dla załączników sprawy i plików generowanych w regułach. To jest zalecane podejście zarówno w instalacjach cloud, jak i on-premise.
zipName
- Typ:
String - Wymagany: tak
- Dozwolone wartosci: brak
Nazwa wynikowego pliku ZIP.
password
- Typ:
String - Wymagany: nie
- Dozwolone wartosci: brak
Hasło używane do ochrony wynikowego pliku ZIP. Musi zawierać co najmniej 6 znaków.
useAES
- Typ:
Boolean - Wymagany: nie
- Dozwolone wartosci: brak
Jeżeli ten parametr jest ustawiony na true, to używany jest zwiększony poziom bezpieczeństwa dla hasła. Uwaga! Szyfrowanie AES zapewnia znacznie lepsze bezpieczeństwo, ale niektóre aplikacje mogą nie dekodować ZIP z takim szyfrowaniem poprawnie.
pathFilesToZip
- Typ:
String - Wymagany: tak
- Dozwolone wartosci: brak
Folder źródłowy zawierający pliki do zarchiwizowania. Ścieżka musi być dostępna z poziomu serwera aplikacyjnego, więc ten parametr jest przeznaczony dla scenariuszy serwerowych w środowiskach on-premise. Overloady ścieżkowe używające tego parametru nie są dostępne w instalacjach cloud.
pathStoreZip
- Typ:
String - Wymagany: tak
- Dozwolone wartosci: brak
Folder docelowy, w którym zostanie utworzony plik ZIP. Ścieżka musi być dostępna z poziomu serwera aplikacyjnego, dlatego ten wariant zależy od dostępu do systemu plików serwera i nie jest dostępny w instalacjach cloud.
Zwracana wartość
- Typ: zależy od argumentów
Zwraca zawartość ZIP, gdy argumentem wejściowym jest fileList. Zwraca wartość Boolean, gdy argumentami wejściowymi są ścieżki serwera: true po poprawnym zapisaniu archiwum w folderze docelowym. W obu wariantach funkcja zwraca false, gdy podane hasło jest puste albo krótsze niż 6 znaków. Błędy takie jak blokada w środowisku cloud albo niedostępne ścieżki serwera są zgłaszane jako wyjątek, a nie zwracane jako Boolean false.
Przykłady
Spakowanie plików eksportowych wygenerowanych w procesie
Pakuje pliki wytworzone w trakcie workflow do jednego archiwum, które można pobrać albo przekazać do innego systemu. To jest preferowane podejście, gdy pliki są zarządzane wewnątrz AMODIT.
fileList="";
AddFileToList(fileList,[ExportXML],"export.xml");
AddFileToList(fileList,[SummaryPDF]);
DownloadFile(CreateZip(fileList),"Export-package.zip")
Oczekiwany efekt: Użytkownik pobiera plik ZIP o nazwie Export-package.zip.
Spakowanie załączników sprawy do odpowiedzi dla klienta
Pakuje dokumenty zapisane już na sprawie do jednego załącznika ZIP, który można wysłać do klienta albo zarchiwizować w workflow. Ten wariant działa bez używania ścieżek serwera.
fileList="";
AddFileToList(fileList,[InvoicePDF]);
AddFileToList(fileList,[OrderTerms]);
[CustomerPackage]=CreateZip(fileList,"Customer-documents.zip")
Oczekiwany efekt: W polu CustomerPackage powstaje załącznik ZIP o nazwie Customer-documents.zip.
Utworzenie paczki integracyjnej z folderu serwera
Tworzy ZIP z plików zapisanych w folderze serwera albo na udziale sieciowym używanym przez integrację. Tego wariantu używaj tylko wtedy, gdy serwer aplikacyjny ma dostęp do tych ścieżek i rozwiązanie działa on-premise. Ten wariant nie jest dostępny w instalacjach cloud.
CreateZip("\\\\server\\exchange\\in","\\\\server\\exchange\\out","BatchPackage")
Oczekiwany efekt: W docelowym folderze serwera powstaje plik ZIP o nazwie BatchPackage_date.zip.
Utworzenie chronionej paczki z plików serwera
Tworzy chroniony ZIP z plików dostępnych w folderze serwera. To przydaje się w scenariuszach wymiany serwerowej działających on-premise, ale zależy od dostępu do ścieżek serwera i nie jest dostępne w instalacjach cloud.
CreateZip("C:\amodittemp","C:\temp", "amodFilesZip", "p455w0rd", true)
Oczekiwany efekt: W docelowym folderze serwera powstaje chroniony plik ZIP o nazwie amodFilesZip_date.zip.
Przypadki użycia
Przygotowanie jednego ZIP z załączników sprawy
Spakuj faktury, umowy lub inne dokumenty ze sprawy do jednego archiwum przed wysłaniem ich do klienta, dostawcy albo akceptującego. To typowy scenariusz dla fileList.
Pakowanie plików wygenerowanych w workflow
Łącz pliki utworzone przez reguły, szablony lub eksporty w jeden ZIP, który można pobrać, dołączyć do sprawy albo przekazać dalej w procesie. To działa zarówno w cloud, jak i on-premise.
Utworzenie paczki integracyjnej po stronie serwera
Kompresuj wiele plików z folderu serwera albo udziału sieciowego do jednego ZIP na potrzeby wsadowej wymiany z innym systemem. To scenariusz ścieżkowy dostępny wyłącznie we wdrożeniach on-premise i trzeba go planować z uwzględnieniem ograniczeń wdrożeniowych.
Dobre praktyki
- Dla załączników sprawy i plików generowanych w regułach najpierw zbuduj fileList przez AddFileToList(), a dopiero potem wywołaj CreateZip(fileList, …). To jest zalecane podejście zarówno dla cloud, jak i on-premise.
- Wariantu ścieżkowego używaj tylko wtedy, gdy pliki rzeczywiście znajdują się w folderze dostępnym dla serwera aplikacyjnego albo na udziale sieciowym oraz gdy rozwiązanie działa on-premise.
- W scenariuszach cloud nie projektuj reguł w oparciu o lokalne lub sieciowe ścieżki serwera, ponieważ overloady ścieżkowe są tam blokowane. Preferuj fileList zbudowaną z plików workflow.
- Jeśli reguła używa wariantu ścieżkowego i ma kontynuować działanie po problemach środowiskowych, opakuj wywołanie w try-catch, ponieważ ograniczenia cloud i niedostępne ścieżki są zgłaszane jako wyjątki.
- Używaj silnych haseł zawierających co najmniej 6 znaków dla lepszego bezpieczeństwa.
- Przetestuj pliki ZIP szyfrowane AES w docelowej aplikacji, aby upewnić się, że są kompatybilne.
Typowe błędy
Przekazanie pojedynczego pola plikowego bezpośrednio do CreateZip() zamiast najpierw zbudować fileList przez AddFileToList().
Skutek: Reguła może uruchomić inny wariant funkcji niż zamierzony, co prowadzi do mylących błędów i błędnej interpretacji sposobu użycia CreateZip().
Rozwiazanie: Dla plików workflow zawsze najpierw utwórz fileList, a dopiero potem wywołaj CreateZip(fileList, …).
Założenie, że wariant ścieżkowy działa tak samo w instalacjach cloud i on-premise.
Skutek: Reguła zaprojektowana pod foldery serwera może nie pasować do modelu wdrożenia i może sugerować, że cała funkcja jest niedostępna, chociaż wariant fileList nadal jest poprawny.
Rozwiazanie: Dla dokumentów sprawy używaj fileList w obu środowiskach, a wariant ścieżkowy wybieraj tylko dla rzeczywistych scenariuszy pamięci serwerowej działających on-premise.
Użycie szyfrowania AES bez sprawdzenia kompatybilności.
Skutek: Wynikowy plik ZIP może nie otwierać się w niektórych aplikacjach.
Rozwiazanie: Przetestuj pliki ZIP szyfrowane AES w docelowej aplikacji.
