Skip to main content

FindCase

Opis

Znajduje sprawy ze wskazanymi wartościami w określonych polach.

Znajduje sprawy przy użyciu par parametrów fieldName i fieldValue. Takich par może być dowolna liczba, a funkcja zwraca pasujące wartości CaseId oddzielone przecinkami. Jest to starsza funkcja wyszukiwania oparta na parach parametrów. Dla bardziej złożonej składni zapytań albo dla sprawdzania pustych i niepustych wartości na polach numerycznych, kwotowych lub daty należy używać funkcji FindCaseEx.

Składnia

FindCase(procedure,fieldName,fieldValue,fieldName,fieldValue)

Wyszukuje sprawy w określonej procedurze za pomocą par pola i wartości.

FindCase(procedure,fieldName,fieldValue,fieldName,fieldValue,caseType)

Wyszukuje sprawy w określonej procedurze za pomocą par pola i wartości oraz filtruje według typu sprawy.

Parametry

procedure

  • Typ: String
  • Wymagany: tak

ProcedureId lub ProcedureName spraw, które mają zostać znalezione. UWAGA! Jeśli podana zostanie pusta wartość, sprawy będą wyszukiwane w bieżącym procesie.

fieldName

  • Typ: String
  • Wymagany: tak

Nazwa pola sprawy, w którym ma być przeprowadzone wyszukiwanie. Dla parametrów numerycznych i dat wartość może być w formie wyrażenia zakresu, np. 'DateFrom to DateTo’

fieldValue

  • Typ: String
  • Wymagany: tak

Wartość wyszukiwana w polu określonym przez poprzedni parametr. Może zawierać operator, np. '<100'. Domyślnym operatorem jest '='. Obsługiwane operatory to: dla wszystkich typów pól '!=' i '’; dla pól numerycznych, kwotowych i dat także '<', '’, ’>=’ oraz wyrażenia zakresu takie jak ’10 TO 100′ albo '2016-01-01 TO 2016-01-31′. Operatory 'isnull’ i 'isnotnull’ działają tylko dla wybranych typów nienumerycznych. Dla sprawdzania pustych i niepustych wartości na polach numerycznych, kwotowych lub daty należy użyć FindCaseEx z operatorami 'is null’ albo 'is not null’.

caseType

  • Typ: String
  • Wymagany: nie
  • Dozwolone wartosci: OPEN, CLOSED, ALL, REMOVED

Typ spraw, które mają zostać znalezione (domyślnie = ALL). Dozwolone wartości: [ OPEN | CLOSED | ALL | REMOVED ]

Zwracana wartość

  • Typ: String

Zwraca identyfikatory spraw oddzielone przecinkami.

Przykłady

Znajdź sprawy z pasującymi polami Number i Name

Znajdź inną sprawę z tą samą procedurą co bieżąca sprawa i pasującymi wartościami w polach Number i Name.

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

Oczekiwany efekt: Identyfikatory spraw oddzielone przecinkami.

Znajdź sprawy w procedurze 'Company’

Znajdź sprawy w procedurze 'Company’ z wartościami w polach Number i Name pobranymi z bieżącej sprawy.

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

Oczekiwany efekt: Identyfikatory spraw oddzielone przecinkami.

Znajdź sprawy z Price <= 1000

Znajdź sprawy w procedurze 'Invoice’ z wartościami w polu Price mniejszymi lub równymi 1000.

      FindCase("Invoice","Price","<=1000")

Oczekiwany efekt: Identyfikatory spraw oddzielone przecinkami.

Znajdź nieopłacone faktury z przeszłą datą Pay

Znajdź sprawy w procedurze 'Invoice’ z Status różnym od Paid i datą Pay w przeszłości.

      FindCase("Invoice","Status","!=Paid", "Pay date","<"+Today())

Oczekiwany efekt: Identyfikatory spraw oddzielone przecinkami.

Znajdź sprawy w tabeli 'Postions’ procedury 'Invoice’

Znajdź sprawy w tabeli 'Postions’ procedury 'Invoice’ z wartościami w polu Name pobranymi z bieżącej sprawy.

      FindCase("Invoice>Postions","Name",[UnitName])

Oczekiwany efekt: Identyfikatory spraw oddzielone przecinkami.

Znajdź sprawy w procedurze 'Vacation’ z ostatniego miesiąca

Znajdź sprawy w procedurze 'Vacation’ dla tego samego użytkownika i wartości pola Date z ostatniego miesiąca.

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

Oczekiwany efekt: Identyfikatory spraw oddzielone przecinkami.

Znajdź nakładające się zakresy dat w procedurze 'Vacation’

Znajdź sprawy w procedurze 'Vacation’ dla tego samego użytkownika z nakładającymi się zakresami DateFrom i DateTo.

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

Oczekiwany efekt: Identyfikatory spraw oddzielone przecinkami.

Znajdź usunięte sprawy z pasującymi polami

Znajdź usunięte sprawy z tą samą procedurą co bieżąca sprawa i pasującymi wartościami w polach Number i Name.

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

Oczekiwany efekt: Identyfikatory spraw oddzielone przecinkami.

Znajdź otwarte sprawy z pustym polem InvoiceFile

Znajdź otwarte sprawy w procedurze 'Invoice’, gdzie pole dokumentowe InvoiceFile jest puste. Ten przykład sprawdzania pustej wartości jest poprawny dla pól dokumentowych i innych wybranych typów nienumerycznych.

      FindCase("Invoice","InvoiceFile","isnull", "OPEN")

Oczekiwany efekt: Identyfikatory spraw oddzielone przecinkami.

Znajdź otwarte sprawy z niepustym polem InvoiceFile

Znajdź otwarte sprawy w procedurze 'Invoice’, gdzie pole dokumentowe InvoiceFile nie jest puste. Ten przykład sprawdzania niepustej wartości jest poprawny dla pól dokumentowych i innych wybranych typów nienumerycznych.

      FindCase("Invoice","InvoiceFile","isnotnull", "OPEN")

Oczekiwany efekt: Identyfikatory spraw oddzielone przecinkami.

Użyj FindCaseEx dla niepustego pola kwotowego

Nie używaj FindCase(„Invoice”,”Price”,”isnotnull”,”ALL”) dla pola kwotowego, ponieważ FindCase nie obsługuje isnull ani isnotnull dla pól numerycznych, kwotowych i daty. Zamiast tego użyj FindCaseEx.

      queryObject=CreateObject("FindQuery","Invoice");
      queryObject.caseType="ALL";
      queryObject.query="'Price' is not null";
      cases=FindCaseEx(queryObject);

Oczekiwany efekt: Identyfikatory spraw oddzielone przecinkami.

Przypadki użycia

Wyszukiwanie spraw ze specyficznymi wartościami pól

Użyj funkcji, aby znaleźć sprawy w procedurze, które pasują do określonych par pola i wartości.

Filtruj sprawy według typu

Użyj funkcji, aby znaleźć sprawy określonego typu, takie jak OTWARTE, ZAMKNIĘTE lub USUNIĘTE.

Znajdź sprawy z wyrażeniami zakresu

Użyj funkcji, aby znaleźć sprawy z polami numerycznymi lub datami w określonym zakresie.

Przekierowanie złożonych null checków do FindCaseEx

Gdy chcesz sprawdzić, czy pola numeryczne, kwotowe lub daty są puste albo niepuste, przenieś zapytanie do FindCaseEx zamiast rozszerzać składnię FindCase.

Dobre praktyki

  • Upewnij się, że nazwa lub identyfikator procedury jest poprawny, aby uniknąć błędów.
  • Używaj odpowiednich operatorów dla wartości pól, aby precyzyjnie wyszukiwać.
  • Preferuj FindCaseEx, gdy potrzebujesz sprawdzania pustych wartości na polach numerycznych, kwotowych lub daty albo gdy logika wyszukiwania jest bardziej złożona niż proste pary pole-wartość.
  • Zweryfikuj nazwy pól i wartości przed wykonaniem funkcji.

Typowe błędy

Podanie nieprawidłowej nazwy lub identyfikatora procedury.

Skutek: Funkcja zgłasza wyjątek i nie zostaje wykonana.

Rozwiazanie: Zweryfikuj nazwę lub identyfikator procedury przed wywołaniem funkcji.

Użycie nieobsługiwanych operatorów dla wartości pól.

Skutek: Funkcja nie zostaje wykonana lub zwraca nieprawidłowe wyniki.

Rozwiazanie: Używaj tylko obsługiwanych operatorów, takich jak '=’, ’!=’, '<', '’, ’>=’, oraz wyrażeń zakresu.

Użycie isnull lub isnotnull na polach numerycznych, kwotowych lub daty w FindCase.

Skutek: Funkcja zgłasza błąd value type not supported zamiast zwrócić pasujące sprawy.

Rozwiazanie: Użyj FindCaseEx i zapisz warunek w składni query, na przykład 'Price’ is not null.

Pozostawienie wymaganych parametrów pustych.

Skutek: Funkcja nie zostaje wykonana.

Rozwiazanie: Upewnij się, że wszystkie wymagane parametry są podane.