Skip to main content

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.