Java接口说明

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事件函数的运行方法
     */
    @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);

        //添加一条从对象,添加从对象,必须指定业务类型,而且是当前布局展示的业务类型
        //如果业务类型不匹配.从对象无法添加
        builder.addDetail("detailApiName")
                .set(Maps.of("a", 1, "b", 2));

        //根据条件删除 从对象, 删除为where中返回为true的从对象
        builder.removeDetail("detailApiName")
                .where(x -> ((Integer) x.get("a")) > 0);

        // 根据条件编辑从对象 和上同理只会处理where 中返回为true的从对象数据,where方法使用lambda表达式
        builder.editDetail("detailApiName")
                .set(Maps.of("a", 1, "b", 2))
                .where(x -> ((Integer) x.get("a")) > 0);

        //removeDetail和editDetail 都可以不添加where这样会直接作用于所有数据
        //set的内容和editMaster的内容要保证是map也就是key:valued的形式
        builder.removeDetail("detailApiName");
        builder.editDetail("detailApiName")
                .set(Maps.of("a", 1, "b", 2));

        // 将apiName为object_0uyAd__c的从对象隐藏(注:从对象隐藏后,保存数据时会将隐藏的从对象数据清空,切记谨慎使用,可通过keepData来自定义是否保留数据。默认为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<>();
        //模拟调试的上下文,例如开发时想模拟一个客户对象的上下文,以方便开发
        FunctionContext context = helper.context("object_zBB6O__c", "63fd7a30ffd89f00013c7be3");
        UIEvent execute = new UIEventExample().execute(context, param);
        Fx.log.info(execute);
    }
}



2024-10-22
1 3