Print

FindCase

Zastosowanie

Funkcja FindCase() znajduje sprawy, które posiadają określone wartości w podanych polach. Można podać dowolną liczbę par „pole-wartość”.

Funkcja pozwala również przeszukiwać zawartość tabel w sprawach.

Składnia

FindCase(process,fieldName,fieldValue [,fieldName,fieldValue ...]);
FindCase(process,fieldName,fieldValue [,fieldName,fieldValue, ...], caseType);

Argumenty

  • process – (Decimal albo String) identyfikator lub nazwa procesu, którego sprawy będą przeszukiwane. Można podać nazwę tabeli w formacie „Nazwa procesu>Nazwa tabeli”. W takim przypadku przeszukiwane będą wiersze tabeli.
    UWAGA! W przypadku podania pustej wartości sprawy będą przeszukiwane w bieżącym procesie.
  • fieldName – (String) nazwa pola, w którym będzie następowało szukanie;
  • fieldValue – (String) poszukiwana wartość. Zasady podawania wartości:
    • wartości liczbowe i dat mogą być podawane jako zakres np. ’10 TO 100′ albo '2016-01-01 TO 2016-01-31′,
    • wartości logiczne należy podać jako true lub false lub jako tekst „true”, „false”,
    • można używać operatorów:
      • większe >
      • mniejsze <
      • większe lub równe >=
      • mniejsze lub równe <=
      • równe =, chociaż jego użycie jest niepotrzebne, bo „=10”  to to samo co „10”
      • różne <>, tu należy zwrócić uwagę, że jest to inny operator niż używany w skryptach AMODIT. Wynika to z faktu, że funkcja FindCase() używa operatorów z SQL’a
      • wartość pusta – isnull
      • wartość niepusta – isnotnull
  • caseType – (String) [Opcja] typ spraw do przeszukiwania (domyślnie= ALL). Dozwolone wartości: [ OPEN | CLOSED | ALL | REMOVED ]. Należy pamiętać, że ALL oznacza, że szukamy w sprawach otwartych (OPEN) i zamkniętych (CLOSED), ale nie w usuniętych (REMOVED).

Zwracana wartość

Zwraca tekst.
Zwraca identyfikatory znalezionych spraw oddzielone przecinkiem.

Funkcja wywołana w kontekście konkretnej sprawy np. w ramach reguły ręcznej, nie zwraca numeru tej sprawy, nawet jeżeli spełnia ona podane kryteria.

Funkcja wywołana w kontekście reguły okresowej dla procesu zwraca pełną listę spraw spełniających podane kryteria.

Funkcja użyta do wyszukania danych w tabeli np. „Nazwa procesu>Nazwa tabeli”, zwraca caseId wierszy tabeli, a nie identyfikatory spraw, w których są te tabele.

Przykłady

Przykład 1:

Znajduje inne sprawy w tym samym procesie co sprawa, z której funkcja jest wołana.

Przeszukuje pole „Number” szukając takiej samej wartości jak wartość w polu [Number] bieżącej sprawy oraz pole „Name” szukając wartości odpowiadającej zawartości pola „Name” bieżącej sprawy.

FindCase([CaseProcedureId],"Number",[Number],"Name",[Name])

Użyto pola systemowego [CaseProcedureId] wskazującego bieżący proces, z którego funkcja jest wołana.

Przykład 2:

Przeszukuje sprawy w procesie o nazwie „Company”, szukając w polu „Number” tego procesu, wartości odpowiadających wartościom z pola [CompanyNumber] bieżącej sprawy oraz szukając w polu „Name” wartości odpowiadających wartości z pola [CompanyName] bieżącej sprawy.

FindCase("Company","Number",[CompanyNumber],"Name",[CompanyName])

Przykład 3:

Przeszukuje tabelę „Pozycje faktury” z procesu „Akceptacja faktur” we wszystkich sprawach tego procesu. Przeszukiwana jest kolumna o nazwie „Nazwa” w celu odnalezienia spraw w których wartość w tym polu jest taka sama jak wartość w polu [UnitName] w bieżącej sprawie.

_cases = FindCase("Akceptacja faktur>Pozycje faktury","Nazwa",[UnitName])

Przykład 4:

W procesie „Vacation” dla użytkownika wskazanego w polu [User] szuka spraw z przedziału dat ostatniego miesiąca.

_cases = FindCase("Vacation","DateFrom",DateAdd('month',Today(),-1)+" TO "+Today(),"User",[User])

Przykład 5:

Szuka spraw w procesie „Vacation” dla tego samego użytkownika, w których przedział urlopu nakłada się.

_cases = FindCase("Vacation","DateFrom To DateTo",[DateFrom]+" TO "+[DateTo],"User",[User])

Przykład 6:

Szuka spraw w procesie „Vacation” dla tego samego użytkownika, w których przedział urlopu nakłada się, ale tym razem przeszukuje tylko sprawy zamknięte.

_cases = FindCase("Vacation","DateFrom To DateTo",[DateFrom]+" TO "+[DateTo],"User",[User],"CLOSED")

Przykład 7:

Szuka spraw w procesie „Vacation”, dla których pole „Czy wysłać maila?” typu Tak/Nie ustawione jest na true.

_cases = FindCase("Vacation","Czy wysyłać e-mail?",  true )

to samo można zapisać tak

_cases = FindCase("Vacation","Czy wysyłać e-mail?",  "true")

Przykład 8:

Szuka spraw w procesie „Vacation”, dla których pole „Liczba dni wolnych” ustawione jest na 10 .

_cases = FindCase("Vacation","Liczba dni wolnych",  10)

to samo można zapisać tak

_cases = FindCase("Vacation","Liczba dni wolnych",  "10")

albo tak

_cases = FindCase("Vacation","Liczba dni wolnych",  "=10")

Przykład 9:

Szuka spraw w procesie „Vacation”, dla których pole „Liczba dni wolnych” jest większe lub równe  10 .

_cases = FindCase("Vacation","Liczba dni wolnych",  ">=10")

Przykład 10:

Szuka spraw w procesie „Vacation”, dla których pole „Uwagi” jest puste.

_cases = FindCase("Vacation","Uwagi","")   lub   _cases = FindCase("Vacation","Uwagi",'')

albo tak

_cases = FindCase("Vacation","Uwagi","isnull")

Przykład 11:

Szuka spraw w procesie „Vacation”, dla których pole „Uwagi” nie jest puste.

_cases = FindCase("Vacation","Uwagi",'<>""')

albo tak

_cases = FindCase("Vacation","Uwagi","isnotnull")

Operatory isnull lub isnotnull są szczególnie użyteczne przy sprawdzaniu czy wartość w polu jest pusta lub nie dla typów pól: dokument, użytkownik, odnośnik lub tekstowych.

Przykład 12:

W celu zaprezentowania obsługi wartości pustych w polach tekstowych przeprowadzono następujące testy.

  1. Stworzono pięć spraw z dużym polem tekstowym (o nazwie „pole tekstowe duze”). Wypełnienie tego pola w poszczególnych sprawach jest następujące:
    • sprawa 1982 – wartość pusta – bazodanowe null
    • sprawa 1988 – dwa cudzysłowy „”
    • sprawa 1995 – najpierw wpisano wartość „abc”, zapisano sprawę, następnie usunięto tą wartość i zapisano sprawę ponownie, a więc została wartość pusta – bazodanowe null
    • sprawa 1996 – wartość „xyz”
    • sprawa 1997 – dwa apostrofy ”, jeden po drugim bez żadnej spacji między nimi.
  2. W innym procesie zrobiono regułę, przedstawioną na tym obrazku:
  3. Efekt wykonania reguły był następujący (numery obok kropek odpowiadają numerom linii z powyższego obrazka):
Czy artykuł był pomocny?
5 na 5 gwiazdek

1 rating

5 Stars 100%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
5
How can we improve this article?
How Can We Improve This Article?