APL函數(shù)代碼開放場景-UI事件Java接口說明
2024-12-30 09:18:33 53 本站
package fx.custom.apl.example.ui_event;
import com.fxiaoke.functions.FunctionContext;
import com.fxiaoke.functions.Fx;
import com.fxiaoke.functions.client.DebugHelper;
import com.fxiaoke.functions.model.Remind;
import com.fxiaoke.functions.template.IUIEventAction;
import com.fxiaoke.functions.ui.UIEvent;
import com.fxiaoke.functions.utils.Maps;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class UIEventExample implements IUIEventAction {
/**
* UI事件函數(shù)的運行方法
*/
@Override
public UIEvent execute(FunctionContext context, Map<String, Object> args) {
UIEvent.Builder builder = UIEvent.Builder.create(context);
//把字段設置為只讀、隱藏
builder.editMasterFields("field_I18ri__c").readOnly(true).hidden(true);
//設置提醒消息
builder.remind(Remind.Text("彈窗提醒"));
//通過修改主對象
Map map = Maps.newHashMap();
map.put("field1", "value1");//設置字段1為value1
map.put("field2", "value2");//設置字段2為value2
map.put("field3", null);//清空字段
builder.editMaster(map);
//添加一條從對象,添加從對象,必須指定業(yè)務類型,而且是當前布局展示的業(yè)務類型
//如果業(yè)務類型不匹配.從對象無法添加
builder.addDetail("detailApiName")
.set(Maps.of("a", 1, "b", 2));
//根據(jù)條件刪除 從對象, 刪除為where中返回為true的從對象
builder.removeDetail("detailApiName")
.where(x -> ((Integer) x.get("a")) > 0);
// 根據(jù)條件編輯從對象 和上同理只會處理where 中返回為true的從對象數(shù)據(jù),where方法使用lambda表達式
builder.editDetail("detailApiName")
.set(Maps.of("a", 1, "b", 2))
.where(x -> ((Integer) x.get("a")) > 0);
//removeDetail和editDetail 都可以不添加where這樣會直接作用于所有數(shù)據(jù)
//set的內容和editMaster的內容要保證是map也就是key:valued的形式
builder.removeDetail("detailApiName");
builder.editDetail("detailApiName")
.set(Maps.of("a", 1, "b", 2));
// 將apiName為object_0uyAd__c的從對象隱藏(注:從對象隱藏后,保存數(shù)據(jù)時會將隱藏的從對象數(shù)據(jù)清空,切記謹慎使用,可通過keepData來自定義是否保留數(shù)據(jù)。默認為false)
builder.editObject("object_0uyAd__c").hidden(true).keepData(true)
UIEvent event = builder.getUIEvent()
return event;
}
public static void main(String[] args) throws IOException {
//調試器
DebugHelper helper = new DebugHelper();
helper.init();
Map<String, Object> param = new HashMap<>();
//模擬調試的上下文,例如開發(fā)時想模擬一個客戶對象的上下文,以方便開發(fā)
FunctionContext context = helper.context("object_zBB6O__c", "63fd7a30ffd89f00013c7be3");
UIEvent execute = new UIEventExample().execute(context, param);
Fx.log.info(execute);
}}
部分內容來源于互聯(lián)網(wǎng),如有侵權,請聯(lián)系客服刪除處理。