다음을 통해 공유


함수

Dynamics 365 Fraud Protection을 사용하면 특정 작업을 수행하는 데 사용할 수 있는 함수를 유연하게 만들 수 있습니다. 예를 들어 함수를 사용하여 함께 실행해야 하는 코드 그룹을 결합할 수 있습니다. 또는 함수를 사용하여 코드를 다시 사용할 수 있습니다. 여기서 코드를 한 번 작성하고 다른 위치에서 액세스하여 코드를 더 쉽게 기본 수 있습니다. 이 예제에서 외부 서비스를 호출하여 값을 가져오려는 경우 함수 내에서 논리를 정의할 수 있으며 다른 리소스에서 함수를 호출할 수 있습니다.

함수 정의

함수는 입력 매개 변수 및 출력 속성으로 구성됩니다.

입력 매개 변수

함수는 호출 시 함수에 전달할 매개 변수를 정의할 수 있습니다. 입력 매개 변수는 함수 정의에 정의되어 있습니다. 호출 시 함수에 전달된 매개 변수 수는 함수에 대해 정의된 매개 변수 수와 정확히 일치해야 합니다. 정의된 매개 변수를 출력 속성 내에서 사용하여 값을 반환할 수 있습니다. 자세한 내용은 출력 속성을 참조 하세요. 입력 매개 변수 정의는 선택 사항입니다.

입력 매개 변수는 다음 세 부분으로 구성됩니다.

  • 매개 변수 이름: 매개 변수를 참조할 수 있는 이름입니다.

  • 데이터 형식: 모든 입력 매개 변수에는 연결된 데이터 형식이 있어야 합니다. 지정하는 데이터 형식은 매개 변수 값을 해당 형식으로 변환합니다. 함수는 다음 표에 나열된 데이터 형식을 지원합니다.

    데이터 형식 샘플 값
    Boolean True
    DateTime 2 월,22,2024 4:44 오후
    두 배 10.0
    정수 10
    문자열 "Hello"
  • 기본값: 모든 매개 변수에 기본값이 필요합니다. 기본값은 "함수 평가" 중에 사용되거나 함수 호출에 문제가 있는 경우에 사용됩니다.

출력 속성

출력 속성을 사용하여 함수의 반환 값을 정의할 수 있습니다. 출력 속성은 "FQL(Fraud Query Language)" 논리를 사용하여 함수 값을 반환합니다. 그러면 함수가 호출될 때 다른 함수, 규칙, 속도, 사후 결정 작업 규칙 및 라우팅 규칙 내에서 출력 속성에 액세스할 수 있습니다. 함수에는 최대 30개의 출력 속성이 있을 수 있습니다. FQL 및 사용 방법에 대한 자세한 내용은 언어 참조 가이드를 참조하세요.

출력 속성은 다음 네 부분으로 구성됩니다.

  • 속성 설명: 속성에 대한 설명입니다. 설명은 생략할 수 있습니다.

  • 데이터 형식: 속성에서 반환되는 값의 데이터 형식입니다. 함수는 부울, datetime, double, 정수 및 문자열과 같은 모든 기본 데이터 형식을 지원합니다. 다른 리소스에서 참조되는 함수의 출력 속성에 대한 호환성이 손상되는 변경이 발생할 때마다 원래 출력 속성 "데이터 형식"의 기본값은 리소스 실행을 진행하기 위한 대체로 사용됩니다. 호환성이 손상되는 변경 후 리소스를 업데이트하는 것이 좋습니다.

  • 기본값: 속성 평가 중에 예외가 발생하면 함수의 결과로 기본값이 반환됩니다. 예를 들어 0으로 나누기 및 Null 참조 예외입니다.

  • 값을 반환하는 코드 편집기: 코드 편집기는 함수에서 값을 반환하는 데 사용됩니다. 다음은 출력 값을 반환하는 방법입니다.

    1. 함수 내에 정의된 입력 매개 변수를 사용하여 값을 반환할 수 있습니다.

      입력 매개 변수를 반환 값으로 반환하는 출력 속성의 예입니다. 입력 매개 변수를 정의하는 방법에 대한 자세한 내용은 이 문서의 앞부분에 있는 입력 매개 변수 섹션을 참조하세요.

    RETURN _number1 + _number2
    
    1. 함수를 호출하는 규칙을 포함하는 평가의 요청 및 응답 특성(사용자 지정 데이터 포함)입니다. 연산자를 사용하여 이러한 특성에 @ 액세스할 수 있습니다. 예들 들어 @"salesTax"입니다.

      요청 특성을 사용하는 함수의 예:

    RETURN @"salesTax"
    
    1. 사기 방지 보강 데이터입니다. 예를 들어 Geo.CountryCode()입니다.

      riskscore를 사용하는 함수의 예:

    RETURN Geo.CountryCode(@"deviceContext.ipAddress")
    
    1. 사기 방지에 업로드하는 목록입니다. 목록을 업로드하는 방법에 대한 자세한 내용은 목록 관리를 참조 하세요.

      목록을 사용하는 함수의 예:

    RETURN Lookup("Country_Score", "Country", "US", "ScoreCutOff")
    
    1. 사기 방지에 정의된 속도입니다. 자세한 내용은 속도 검사 수행을 참조하세요.

      속도를 사용하는 함수의 예:

    RETURN Velocity.IPs_Per_User(@"deviceContext.ipAddress", 30s)
    
    1. 사기 방지에서 생성된 외부 호출입니다. 자세한 내용은 외부 호출을 참조 하세요.

      외부 호출을 사용하는 함수의 예:

    RETURN External.weather("Seattle").id
    
    1. 사기 방지에서 생성된 외부 평가입니다. 자세한 내용은 외부 평가를 참조 하세요.

      외부 평가를 호출하는 함수의 예:

    LET $result = Assessments.myAssessment.Evaluate($baseInput = @@)
    RETURN $result.ToStr()
    
    1. 함수 내에서 함수에 액세스합니다.

      다른 함수를 호출하는 함수의 예:

    RETURN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
    

참고 항목

다중 계층 스택의 모든 환경에서 함수를 만들 수 있습니다. 함수가 환경에서 사용할 수 있는 속도, 외부 호출, 목록 및 외부 평가와 같은 리소스를 참조하는 경우 함수를 호출하는 하위 환경도 함수가 참조하는 리소스를 상속합니다. 예를 들어 값을 반환하기 위해 외부 호출을 참조하는 함수를 루트에 만드는 경우 함수를 호출하는 자식 환경에서도 해당 외부 호출의 결과에 액세스할 수 있습니다. 함수를 상속하고 호출하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 함수 상속 섹션을 참조하세요.

함수 게시

  1. Fraud Protection 포털의 탐색 모음에서 함수를 선택한 다음 새 함수를 선택합니다. Fraud Protection은 사용자에게만 표시되는 초안 함수를 만듭니다(함수 작성자). 초안에 적용된 모든 변경 내용은 자동으로 저장됩니다.

  2. 새 함수를 처음부터 정의하려면 이 문서의 앞부분에 있는 함수 정의 섹션을 참조하세요.

  3. 함수를 게시하려면 게시를 선택합니다.

  4. 확인 대화 상자에서 이름과 설명을 변경할 수 있습니다. 게시를 선택합니다.

참고 항목

함수를 게시하면 모든 사용자에게 표시됩니다. 그런 다음 다른 함수, 규칙, 속도, 사후 결정 규칙 및 라우팅 규칙 내에서 함수를 호출할 수 있습니다.

함수, 규칙, 속도, 사후 결정 작업 및 라우팅 규칙과 같은 다른 리소스에서 함수를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 리소스 섹션에서 함수 호출을 참조하세요.

샘플 창

함수 를 만들거나 편집하면 페이지 측면에 샘플 창이 나타납니다.

  • 함수는 평가에 연결되지 않습니다. 샘플 페이로드는 함수에서 참조할 수 있는 모든 이벤트 속성을 보여 주는 사용자에게 유용한 가이드로 제공됩니다. 창 맨 위에 있는 이벤트 필드에서 이벤트 유형을 선택합니다.

  • 페이로드 샘플 섹션에는 평가를 위해 요청 API에서 보낼 수 있는 속성의 예가 포함되어 있습니다.

함수 관리

  1. 이전에 게시된 함수를 편집하려면 함수를 선택한 다음 편집을 선택합니다. 게시된 함수의 초안이 만들어지고 사용자만 사용할 수 있습니다. 초안에 적용된 모든 변경 내용은 자동으로 저장됩니다. 변경 내용을 프로덕션 환경에 푸시하려면 게시를 선택합니다. 이전에 게시된 함수는 변경 내용으로 덮어씁니다. 초안을 카드 디스카드 선택합니다.

  2. 기존 함수를 삭제하려면 줄임표(...)를 선택한 다음 삭제를 선택합니다.

  3. 함수의 이름 또는 설명을 업데이트하려면 줄임표(...)를 선택한 다음 이름 바꾸기를 선택합니다.

  4. 함수를 검색하려면 검색 필드에 키워드(keyword) 입력합니다. 모든 함수 이름과 설명이 검색되고 검색 키워드(keyword) 따라 결과가 필터링됩니다.

함수 평가

함수를 게시하기 전에 함수 평가 창을 사용하여 예상한 결과를 반환하는지 확인할 수 있습니다.

  • 함수 평가 창을 열려면 함수 탭에서 확장을 선택합니다.
  • 창을 닫려면 축소를 선택합니다.

평가 창이 열리면 출력 속성 목록이 결과와 함께 표시됩니다. 평가에서는 반환할 내용을 결정할 때 샘플 페이로드 섹션의 입력 매개 변수 및 값에 기본값을 사용합니다. 이러한 값이 변경되면 출력도 변경됩니다. 이렇게 하면 각 출력 속성에 대한 올바른 값이 반환되는지 확인할 수 있습니다.

리소스에서 함수 호출

게시된 함수는 규칙, 속도, 사후 결정 작업 및 라우팅 규칙과 같은 리소스에서 호출할 수 있습니다. 함수 내에 정의된 모든 출력 속성은 함수를 호출하여 액세스할 수 있습니다. 그런 다음, 값을 의사 결정에 사용할 수 있습니다.

규칙

함수는 동일한 환경의 모든 규칙(평가 내)과 아래 계층 구조의 자식 환경에서 호출할 수 있습니다. 규칙에 대한 자세한 내용은 규칙을 참조 하세요.

LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5

속도

함수는 동일한 환경의 모든 속도와 아래 계층 구조의 자식 환경에서 호출할 수 있습니다. 속도에 대한 자세한 내용은 속도 검사 수행을 참조하세요.

SELECT DistinctCount(@"device.deviceContextId") AS Devices_Per_IP
FROM AccountLogin
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum > 5
GROUPBY @"device.ipAddress"

사후 결정 규칙

함수는 동일한 환경의 모든 사후 결정 작업 규칙(평가 내)과 아래 계층 구조의 자식 환경에서 호출할 수 있습니다. 사후 결정 작업 규칙에 대한 자세한 내용은 사후 결정 작업 규칙을 참조 하세요.

DO SetResponse()
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum == 5

라우팅 규칙

함수는 동일한 환경의 모든 라우팅 규칙과 아래 계층 구조의 자식 환경에서 호출할 수 있습니다. 라우팅 규칙에 대한 자세한 내용은 사례 관리를 참조하세요.

ROUTETO Queue("General Queue")
WHEN Functions.MyFunction(@"purchase.request.totalAmount", @"purchase.request.salesTax").Calculate_Sum > 5

함수 상속

함수는 동일한 환경 및 아래 계층 구조의 자식 환경에서 호출할 수 있습니다. 호출 구문은 함수가 존재하는 위치와 호출 위치에 따라 달라집니다. 다음은 다중 계층 구조 설정 내에서 함수를 호출하는 다양한 방법입니다.

참고 항목

함수가 속도, 목록, 외부 호출 및 외부 평가와 같은 리소스를 참조하는 경우 함수가 호출될 때 아래 계층 구조의 자식 환경에서도 리소스가 상속됩니다.

동일한 환경 내에서 만든 함수 호출

아래 예제에서는 규칙과 함수가 동일한 환경에 있는 규칙에서 함수를 호출합니다.

LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5

루트 환경 내에서 만든 함수 호출

아래 예제에서는 자식 환경에서 루트에서 만든 함수를 호출합니다.

LET $sum = Functions.root.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5

부모 환경 내에서 만든 함수 호출

아래 예제에서는 즉시 부모 환경에서 함수를 호출합니다.

LET $sum = Functions.parent.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5

스택 위의 모든 환경 내에서 만든 함수 호출

아래 예제에서는 스택 위의 환경에서 만들어지고 하위 환경 내의 규칙에서 상속된 함수를 호출합니다.

LET $sum = Functions.environment["environmentid"].MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5

함수 및 리소스 제한

Fraud Protection에는 환경별로 만들 수 있는 함수 수와 함수 내에서 참조할 수 있는 리소스 수가 제한됩니다.

리소스 제한
환경 내에서 게시할 수 있는 최대 함수 수 30
함수 내에 존재할 수 있는 최대 출력 속성 수 30
함수에서 참조할 수 있는 고유 속도의 최대 수 15
함수가 참조할 수 있는 최대 외부 호출 수 2
함수가 참조할 수 있는 최대 수 고유 목록 조회 수 5
함수가 참조할 수 있는 고유 외부 평가의 최대 수 2개
규칙 집합에서 호출할 수 있는 최대 함수 수 10
라우팅 규칙이 호출할 수 있는 최대 함수 수 10
사후 결정 작업에서 호출할 수 있는 최대 함수 수 10
속도가 호출할 수 있는 최대 리소스 수 10