Top
Photo by Anne Nygård on Unsplash

Kopiowanie załączników z taska do załączników elementu listy


W tym krótkim poście pomogę Ci zbudować przepływ pracy w Nintex for Office 365, który pozwoli Ci skopiować załączniki, które zostały dodane do zadania, do załączników powiązanego elementu listy. Element listy jest oczywiście tym, wokół którego działa cały przepływ pracy.

Formularz zadania

Najpierw musisz zbudować formularz zadania.

Type of the Nintex for Office 365 form designer

To naprawdę nie ma znaczenia, który typ designera wybierzesz – każdy pozwala na użycie kontrolki załączników (zaś w „New responsive designer” – kontrolki nazwanej „File upload”):

Attachments control in Nintex for Office 365 form designer

Skonfiguruj formularz tak, jak potrzebujesz. Po zakończeniu wróć do akcji zadania.

Akcja zadania

Niezależnie od tego, czy korzystasz z akcji „Assign a task”, czy „Start a task process”, musisz skonfigurować pole, które zwraca identyfikator zadania (lub zadań):

Grab generated tasks IDs in Nintex for Office 365 forms designer

Później użyjesz tych identyfikatorów, aby pobrać załączniki z powiązanych zadań (lub zadania).

Workflow

Put workflow on pause so that all attachetns are uploaded

Po zakończeniu zatwierdzania daj przepływowi pracy chwilę oddechu. Zauważyłem, że czasami workflow był wznawiany znacznie szybciej niż załączniki były ładowane do elementu zadania. W rezultacie wznowiony workflow posiadał info m.in. tylko o jednym załączniku z 3 przesłanych.

Następnie dla każdego zadania wykonaj poniższe kroki:

For each task
  1. Przygotuj nagłówek żądania HTTP
    Request headers
  2. Wykonaj żądanie GET HTTP do poniższego adresu URL:

    {ADRES URL WITRYNY}/_api/lists/getbytitle('Workflow Tasks')/items(TASK ID FOR CURRENT LOOP RUN)/AttachmentFiles?$select=FileName,ServerRelativeUrl
    HTTP Request
  3. Zwrócony wynik będzie posiadać poniższą strukturę JSON: {"value": [{"FileName": "xyz.jpg", "ServerRelativeUrl": "somepath/xyz.jpg"}]} – musisz wyciągnąć jedynie tabelkę.
    Extract table
  4. Następnie wykonaj poniższe kroki dla każdego elementu w tabelce.

Następnie dla każdego wyodrębnionego załącznika (w pętli iteruj po słowniku var_Data_dict i zapisz element jako np. var_Item_dict):

For each attachment
  1. Pobierz ze słownika nazwę pliku
  2. Pobierz ze słownika ścieżkę
    Get path/ filename from dictionary
  3. Przygotuj słownik z nagłówkiem żądania (jak powyżej, opcjonalnie możesz dodać linię z Content-Type: application/json)
  4. Wykonaj żądanie POST do poniższego adresu URL:
    ‍{Workflow Context:Current site URL}‍/_api/web/getfilebyserverrelativeurl(@v0)/copyto(strnewurl=@v1,boverwrite=true)?@v0='‍{Variable:var_Path_txt}‍'&@v1='/SITE RELATIVE URL TO LIST/Attachments/‍{Current Item:ID}‍/‍{Variable:var_Filename_txt}‍'
    HHTP Request "copyTo"

I to wszystko! Załącznik zadania jest teraz dodany do listy załączników powiązanego elementu listy. Powodzenia!


Tomasz Poszytek

Cześć! Nazywam się Tomasz. Jestem ekspertem w dziedzinie automatyzacji procesów i budowaniu rozwiązań dla biznesu z użyciem Power Platform. Jestem Microsoft MVP i Nintex vTE.

Brak komentarzy

Wyślij komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.