Flow中調用javascript

Salesforce的Flow中的Formula功能較弱,稍微複雜一點的功能,以前一般都調用Invokable的apex方法,但覺得需要調用服務端,效率不高。有些功能不牽涉到後臺數據,完全可以通過Javascript來做。

但是一般情況下,只有lwc裏纔有javascript。而Flow不能直接調用lwc,只能加個Screen組件,但如果javascript不需要界面,這個方法就有些笨拙了。

最終考慮用local action來實現。所謂local action,其實就是一個aura組件,只不過不調用服務端。

先建一個aura組件,關鍵有兩點:

1. cmp文件裏,要註明implements="lightning:availableForFlowActions"  屬性。

2. controller裏要有invoke方法。

至於輸入輸出參數,先在cmp文件裏設定

<aura:attribute name="foo" type="String" />
<aura:attribute name="bar" type="Boolean" />

然後在design文件裏也設定

<design:attribute name="foo" Label="Input" />
<design:attribute name="bar" Label="Output"/>

然後在invoke方法裏寫處理邏輯:

let input  = component.get("v.foo");

component.set("v.bar", foo == null ? true : false);

最後在Flow里加上這個Local action即可。在action的屬性裏可以找到foo和bar兩個參數。

需要注意的是local action的副作用是會提交事務。所以如果不希望提交事務,則不能用local action。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章