函式
Dynamics 365 Fraud Protection 可讓您彈性地建立可用來執行特定工作的函式。 例如,您可以使用函式來結合必須一起執行的程式代碼群組。 或者,您可以使用函式重複使用程式碼,您可以在其中撰寫程式代碼一次,並從其他地方存取程序代碼,讓程式碼更容易維護。 在此範例中,如果您想要呼叫外部服務來從中擷取值,則可以在函式內定義邏輯,而且可以從其他資源叫用函式。
定義函式
函式包含輸入參數和輸出屬性。
輸入參數
函式可以定義在調用時傳遞至函式的參數。 輸入參數定義中定義。 在調用時傳入函式的參數數目應該完全符合為函式定義的參數數目。 定義的參數可以在輸出屬性內使用,以傳回值。 如需詳細資訊,請參閱 輸出屬性。 定義輸入參數是選擇性的。
輸入參數包含下列三個部分。
參數名稱:可以參考參數的名稱。
數據類型:每個輸入參數都應該有相關聯的數據類型。 您指定的數據類型會將參數的值轉換成對應的型別。 函式支援下表所列的數據類型。
資料類型 範例值 布林值 True Datetime 2月22,2024下午4:44 Double 10.0 整數 10 String 「您好」 預設值:每個參數都需要預設值。 預設值會在「函式評估」期間使用,或者如果函式調用發生問題,則為 。
輸出屬性
您可以使用輸出屬性來定義函式的傳回值。 輸出屬性會使用「詐騙查詢語言(FQL)」邏輯來傳回函式的值。 然後,您可以在叫用函式時,從其他函式、規則、速度、決策後動作規則和路由規則中存取輸出屬性。 函式最多可以有 30 個輸出屬性。 如需 FQL 及其使用方式的詳細資訊,請參閱 語言參考指南。
輸出屬性包含下列四個部分。
屬性描述:屬性的描述。 描述是選擇性的。
數據類型:從屬性傳回之值的數據類型。 函式支援所有基本數據類型,例如布爾值、日期時間、雙精度浮點數、整數和字串。 每當對其他資源中所參考之函式的輸出屬性進行重大變更時,原始輸出屬性 「data type」 的預設值會作為後援,以繼續進行資源執行。 建議您在重大變更之後更新您的資源。
默認值:在屬性評估期間遇到例外狀況時,會傳回作為函式結果的預設值。 例如,除以 0 和 Null 參考例外狀況。
傳回值的程式代碼編輯器:程式代碼編輯器用來從函式傳回值。 以下是傳回輸出值的方法。
函數內定義的輸入參數可用來傳回值。
傳回輸入參數做為傳回值的輸出屬性範例。 如需如何定義輸入參數的詳細資訊,請參閱 本文稍早的<輸入參數 >一節。
RETURN _number1 + _number2
評估的要求和回應屬性(包括自定義數據)都包含叫用函式的規則。 您可以使用運算子存取這些屬性 @ 。 例如: @"salesTax" 。
使用要求屬性的函式範例:
RETURN @"salesTax"
詐騙保護擴充數據。 例如,Geo.CountryCode()。
使用風險核心的函式範例:
RETURN Geo.CountryCode(@"deviceContext.ipAddress")
您上傳至詐騙保護的清單。 如需如何上傳清單的詳細資訊,請參閱 管理清單。
使用清單的函式範例:
RETURN Lookup("Country_Score", "Country", "US", "ScoreCutOff")
詐騙保護中定義的速度。 如需詳細資訊,請參閱 執行速度檢查。
使用速度的函式範例:
RETURN Velocity.IPs_Per_User(@"deviceContext.ipAddress", 30s)
在詐騙保護中建立的外部呼叫。 如需詳細資訊,請參閱 外部呼叫。
使用外部呼叫的函式範例:
RETURN External.weather("Seattle").id
在詐騙保護中建立的外部評量。 如需詳細資訊,請參閱 外部評定。
叫用外部評估的函式範例:
LET $result = Assessments.myAssessment.Evaluate($baseInput = @@) RETURN $result.ToStr()
存取函式內的函式。
叫用另一個函式的函式範例:
RETURN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
注意
您可以在多階層堆疊的任何環境中建立函式。 當函式參考環境中可用的速度、外部呼叫、清單和外部評估等資源時,叫用函式的較低環境也會繼承函式參考的資源。 例如,如果您在根目錄中建立參考外部呼叫以傳回值的函式,叫用函式的子環境也可以存取該外部呼叫的結果。 如需如何繼承和叫用函式的詳細資訊,請參閱本文稍後的函 式繼承 一節。
發佈函式
在 [詐騙保護] 入口 網站中,選取 導覽列中的 [函式 ],然後選取 [ 新增函式]。 詐騙保護會建立只為您顯示的草稿函式(函式的建立者)。 您對草稿所做的所有變更都會自動儲存。
若要從頭開始定義新的函式,請參閱 本文稍早的<定義函 式>一節。
若要發佈函式,請選取 [ 發佈]。
在確認對話框中,您可以變更名稱和描述。 選取發行。
注意
發佈函式之後,所有使用者都能看見該函式。 然後,可以在其他函式、規則、速度、決策後規則和路由規則內叫用函式。
如需如何在其他資源中使用函式的資訊,例如函式、規則、速度、決策後動作和路由規則,請參閱 本文稍後的<從資源 叫用函式>一節。
[範例] 窗格
當您建立或編輯函式時,[ 範例 ] 窗格會出現在頁面的一側。
函式不會系結至任何評定。 範例承載會顯示為使用者有用的指南,這些指南會顯示函式中可參考的所有事件屬性。 在窗格頂端的 [事件] 字段中選取事件類型。
承載 範例 區段包含可在要求 API 中傳送評估的屬性範例。
管理函式
若要編輯先前發佈的函式,請選取函式,然後選取 [ 編輯]。 系統會建立已發佈函式的草稿,並僅供您使用。 您對草稿所做的所有變更都會自動儲存。 若要將變更推送至生產環境,請選取 [ 發佈]。 先前發佈的函式會隨著變更覆寫。 若要捨棄草稿,請選取 [ 捨棄]。
若要刪除現有的函式,請選取省略號 (...),然後選取 [ 刪除]。
若要更新函式的名稱或描述,請選取省略號 (...),然後選取 [ 重新命名]。
若要搜尋函式,請在 [搜尋] 欄位中輸入關鍵字。 會搜尋所有函式名稱和描述,並根據搜尋關鍵詞來篩選結果。
評估函式
發佈函式之前,您可以使用 [ 函式評估 ] 窗格,確定它會傳回您預期的結果。
- 若要開啟函式評估窗格,請選取 [函式] 索引卷標中的 [展開]。
- 若要關閉窗格,請選取 [ 折迭]。
當評估窗格開啟時,輸出屬性清單會以其結果顯示。 評估會在判斷應該傳回的內容時,針對範例承載區段的輸入參數和值使用預設值。 如果其中任何一個值變更,則輸出也會變更。 如此一來,您就可以確定會傳回每個輸出屬性的正確值。
從資源叫用函式
您可以從資源叫用已發佈的函式,例如規則、速度、決策後動作和路由規則。 叫用函式即可存取函式內定義的所有輸出屬性。 然後,這些值就可以用於決策。
規則
函式可以從相同環境中的任何規則和下列階層中的子環境叫用。 如需規則的詳細資訊,請參閱 規則。
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
函式和資源限制
詐騙保護限制每個環境可以建立的函式數目,以及可在函式內參考的資源數目。
資源 | 限制 | |
---|---|---|
可在環境中發佈的函式數目上限 | 30 | |
函式中可以存在的輸出屬性數目上限 | 30 | |
函式可以參考的唯一速度數目上限 | 15 | |
函式可以參考的外部呼叫數目上限 | 2 | |
函式可以參考的最大數目唯一列表查閱 | 5 | |
函式可以參考的唯一外部評估數目上限 | 2 | |
規則集可以叫用的函式數目上限 | 10 | |
路由規則可以叫用的函式數目上限 | 10 | |
後續決策動作可以叫用的函式數目上限 | 10 | |
速度可以叫用的資源數目上限 | 10 |