Java接口说明

1. UIWeb

package fx.custom.apl.example.button;

import com.fxiaoke.functions.FunctionContext;
import com.fxiaoke.functions.Fx;
import com.fxiaoke.functions.client.DebugHelper;
import com.fxiaoke.functions.template.IButtonUIAction;
import com.fxiaoke.functions.ui.UIAction;
import com.fxiaoke.functions.ui.WebAction;
import com.fxiaoke.functions.utils.Lists;
import com.fxiaoke.functions.utils.Maps;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static com.fxiaoke.functions.Fx.log;

/**
 * 网页端WebAction跳转新建界面,并回填数据
 * WebAction 弹出对应的新建页面,从A对象直接跳转B对象的新建,并且回填数据
 */
public class ButtonUIWebExample implements IButtonUIAction {

    /**
     * 按钮函数(UIAction)的运行方法
     */
    @Override
    public UIAction execute(FunctionContext context, Map<String, Object> args) {

        //跳转后回填的主对象数据
        Map projectData = context.getData();
        log.debug(context.getDetails().get("object_g1WuF__c"));

        Map subProjectData = Maps.newHashMap();
        subProjectData.put("field_0fke8__c", projectData.get("_id"));
        subProjectData.put("field_0fke8__c__r", projectData.get("name"));

        List details = Lists.newArrayList();

        Map detail1 = Maps.newHashMap();
        detail1.put("record_type", "default__c");
        detail1.put("name", "明细1");
        details.add(detail1);

        Map detail2 = Maps.newHashMap();
        detail2.put("record_type", "default__c");
        detail2.put("name", "明细2");
        details.add(detail2);

        //跳转后回填的从对象数据
        Map subProjectDetails = Maps.newHashMap();
        //从对象的 apiName,每次从对象是独立的一个 Map
        subProjectDetails.put("object_62jJG__c", details);

        Map actionData = Maps.newHashMap();  //form 组件依赖的传入数据
        actionData.put("apiname", "object_zBB6O__c"); //要新建的对象 apiName
        actionData.put("record_type", "default__c"); //要新建的业务类型 apiName - 主对象
        actionData.put("data", subProjectData); //非必填,对象默认数据 - 主对象数据
        actionData.put("details", subProjectDetails); //非必填,对象默认数据 - 从对象数据
        actionData.put("showDetail", true);

        log.info("subProjectDetails --> " + subProjectDetails);
        log.debug("return actionData: " + actionData);

        WebAction action = WebAction.builder()
                .type("form") //组件类型是 form
                .data(actionData)
                .build();
        return action;
    }


    public static void main(String[] args) throws IOException {
        //调试器
        DebugHelper helper = new DebugHelper();
        helper.init();
        //模拟了一个带有从对象的对象数据
        //{"appId":"","arg":{},"data":{"tenant_id":"749422","field_Tnvig__c":"1","is_deleted":false,"object_describe_api_name":"object_zBB6O__c","owner_department_id":"1000","owner_department":"测试","owner":["1000"],"lock_status":"0","package":"CRM","last_modified_time":{"dateTimeFormatter":{"decimalStyle":{"decimalSeparator":".","negativeSign":"-","positiveSign":"+","zeroDigit":"0"},"locale":"zh_CN","resolverStyle":"SMART"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":28,"month":2,"second":12,"timestamp":1677569292545,"weekOfMonth":5,"weekOfYear":9,"year":2023},"create_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":11,"minute":51,"month":2,"second":12,"timestamp":1677556272704,"weekOfMonth":5,"weekOfYear":9,"year":2023},"life_status":"normal","last_modified_by":["1000"],"version":10,"created_by":["1000"],"record_type":"default__c","data_own_department":["1000"],"name":"1test","_id":"63fd7a30ffd89f00013c7be3"},"dataList":[],"details":{"object_g1WuF__c":[{"tenant_id":"749422","is_deleted":false,"object_describe_api_name":"object_g1WuF__c","owner_department_id":"1000","owner_department":"测试","owner":["1000"],"lock_status":"0","package":"CRM","last_modified_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":28,"month":2,"second":26,"timestamp":1677569306991,"weekOfMonth":5,"weekOfYear":9,"year":2023},"create_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":28,"month":2,"second":26,"timestamp":1677569306991,"weekOfMonth":5,"weekOfYear":9,"year":2023},"life_status":"normal","field_1Rwod__c":"63fd7a30ffd89f00013c7be3","last_modified_by":["1000"],"version":1,"created_by":["1000"],"record_type":"default__c","data_own_department":["1000"],"name":"1test","_id":"63fdad1aebfee100016b043f"},{"tenant_id":"749422","lock_rule":"default_lock_rule","is_deleted":false,"object_describe_api_name":"object_g1WuF__c","owner_department_id":"1000","owner_department":"测试","owner":["1000"],"lock_status":"0","package":"CRM","last_modified_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":27,"month":2,"second":17,"timestamp":1677569237831,"weekOfMonth":5,"weekOfYear":9,"year":2023},"create_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":27,"month":2,"second":17,"timestamp":1677569237831,"weekOfMonth":5,"weekOfYear":9,"year":2023},"life_status":"normal","field_1Rwod__c":"63fd7a30ffd89f00013c7be3","last_modified_by":["1000"],"version":1,"created_by":["1000"],"record_type":"default__c","data_own_department":["1000"],"name":"1","order_by":10,"_id":"63fdacd542400c00019cfcca"}]},"objectIds":[],"outTenantId":"","outUserId":"","relatedData":{},"task":{},"tenantId":"749422","thirdAppId":"","thirdType":"","thirdUserId":"","upstreamOwnerId":"","userId":"1002"}
        FunctionContext context = helper.context("object_zBB6O__c", "63fd7a30ffd89f00013c7be3");
        Map<String, Object> param = new HashMap<>();
        UIAction execute = new ButtonUIWebExample().execute(context, param);
        Fx.log.info(execute);
    }
}



2. UIAlert

package fx.custom.apl.example.button;

import com.fxiaoke.functions.FunctionContext;
import com.fxiaoke.functions.Fx;
import com.fxiaoke.functions.client.DebugHelper;
import com.fxiaoke.functions.template.IButtonUIAction;
import com.fxiaoke.functions.ui.AlertAction;
import com.fxiaoke.functions.ui.UIAction;
import org.apache.commons.lang3.StringUtils;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * AlertAction实现自定义弹窗内容
 * 使用自定义UI按钮实现自定义弹窗内容
 */
public class ButtonUIAlertExample implements IButtonUIAction {

    /**
     * 按钮函数(UIAction)的运行方法
     */
    @Override
    public UIAction execute(FunctionContext context, Map<String, Object> args) {
        String content = (String) context.getData().get("field_0D4b2__c");
        //如果需要传递的参数为空,直接返回提示
        if (StringUtils.isBlank(content)) {
            UIAction alertAction = AlertAction.builder()
                    .type("default")
                    .text("字段,文本内容未填写,请先填写内容")//具体要提示的信息内容
                    .build();
            return alertAction;
        }

        return AlertAction.builder().type("default").text("xxx信息").build();

    }


    public static void main(String[] args) throws IOException {
        //调试器
        DebugHelper helper = new DebugHelper();
        helper.init();
        //模拟了一个带有从对象的对象数据
        //{"appId":"","arg":{},"data":{"tenant_id":"749422","field_Tnvig__c":"1","is_deleted":false,"object_describe_api_name":"object_zBB6O__c","owner_department_id":"1000","owner_department":"测试","owner":["1000"],"lock_status":"0","package":"CRM","last_modified_time":{"dateTimeFormatter":{"decimalStyle":{"decimalSeparator":".","negativeSign":"-","positiveSign":"+","zeroDigit":"0"},"locale":"zh_CN","resolverStyle":"SMART"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":28,"month":2,"second":12,"timestamp":1677569292545,"weekOfMonth":5,"weekOfYear":9,"year":2023},"create_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":11,"minute":51,"month":2,"second":12,"timestamp":1677556272704,"weekOfMonth":5,"weekOfYear":9,"year":2023},"life_status":"normal","last_modified_by":["1000"],"version":10,"created_by":["1000"],"record_type":"default__c","data_own_department":["1000"],"name":"1test","_id":"63fd7a30ffd89f00013c7be3"},"dataList":[],"details":{"object_g1WuF__c":[{"tenant_id":"749422","is_deleted":false,"object_describe_api_name":"object_g1WuF__c","owner_department_id":"1000","owner_department":"测试","owner":["1000"],"lock_status":"0","package":"CRM","last_modified_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":28,"month":2,"second":26,"timestamp":1677569306991,"weekOfMonth":5,"weekOfYear":9,"year":2023},"create_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":28,"month":2,"second":26,"timestamp":1677569306991,"weekOfMonth":5,"weekOfYear":9,"year":2023},"life_status":"normal","field_1Rwod__c":"63fd7a30ffd89f00013c7be3","last_modified_by":["1000"],"version":1,"created_by":["1000"],"record_type":"default__c","data_own_department":["1000"],"name":"1test","_id":"63fdad1aebfee100016b043f"},{"tenant_id":"749422","lock_rule":"default_lock_rule","is_deleted":false,"object_describe_api_name":"object_g1WuF__c","owner_department_id":"1000","owner_department":"测试","owner":["1000"],"lock_status":"0","package":"CRM","last_modified_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":27,"month":2,"second":17,"timestamp":1677569237831,"weekOfMonth":5,"weekOfYear":9,"year":2023},"create_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":27,"month":2,"second":17,"timestamp":1677569237831,"weekOfMonth":5,"weekOfYear":9,"year":2023},"life_status":"normal","field_1Rwod__c":"63fd7a30ffd89f00013c7be3","last_modified_by":["1000"],"version":1,"created_by":["1000"],"record_type":"default__c","data_own_department":["1000"],"name":"1","order_by":10,"_id":"63fdacd542400c00019cfcca"}]},"objectIds":[],"outTenantId":"","outUserId":"","relatedData":{},"task":{},"tenantId":"749422","thirdAppId":"","thirdType":"","thirdUserId":"","upstreamOwnerId":"","userId":"1002"}
        FunctionContext context = helper.context("object_zBB6O__c", "63fd7a30ffd89f00013c7be3");
        Map<String, Object> param = new HashMap<>();
        UIAction execute = new ButtonUIAlertExample().execute(context, param);
        Fx.log.info(execute);

    }
}



3. UIApp

package fx.custom.apl.example.button;

import com.fxiaoke.functions.FunctionContext;
import com.fxiaoke.functions.Fx;
import com.fxiaoke.functions.client.DebugHelper;
import com.fxiaoke.functions.model.APIResult;
import com.fxiaoke.functions.template.IButtonUIAction;
import com.fxiaoke.functions.ui.AppAction;
import com.fxiaoke.functions.ui.UIAction;
import com.fxiaoke.functions.ui.WebAction;
import com.fxiaoke.functions.utils.Maps;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import static com.fxiaoke.functions.Fx.log;

/**
 * 移动端AppAction 跳转编辑页面,并回填数据
 * 通过UIAction跳转到对象的编辑页面,并可以带上数据
 */
public class ButtonUIAppExample implements IButtonUIAction {

    /**
     * 按钮函数(UIAction)的运行方法
     */
    @Override
    public UIAction execute(FunctionContext context, Map<String, Object> args) {

        String dataId = (String) context.getData().get("_id");
        String objectApiName = "object_6TNd9__c";
        String recordType = (String) context.getData().get("record_type");
        log.info(context.getData());

        UIAction action;
        String source = Fx.utils.getRequestSource();
        if ("WEB".equals(source)) {
            action = WebAction.builder()
                    .type("form")
                    .data(Maps.of("apiname", objectApiName, "type", "edit", "dataId", dataId))
                    .build();
            log.info("web action: " + action);
        } else {
            //如果是移动端请求,返回如下结构(移动端返回UIAction的按钮需要开启移动端独立布局)
            Map map = Maps.newHashMap();
            map.put("type", "Edit"); //前几个参数都写死,表明跳转是编辑页组件
            map.put("objectModify", "Edit");
            map.put("handlerSelector", "objectModify:recordType:masterData:detailData:apiName:backFill:");
            map.put("apiName", objectApiName); //对象APIName
            map.put("recordType", recordType); //对象业务类型
            map.put("masterData", Fx.json.toJson(context.getData())); //主对象数据,从对象数据不用传
            map.put("toDetail", true);  //新建完成后是否跳转详情页面

            String url = createAppUrl(map);

            action = AppAction.builder()
                    .url(url)
                    .build();

            log.info("app action: " + action);
        }

        return action;

    }

    private String createAppUrl(Map params) {
        StringBuilder arg = new StringBuilder();
        params.forEach((k, v) -> {
            APIResult apiResult = Fx.crypto.getURL().encode((String) v);
            if (apiResult.isError()) {
                Fx.message.throwErrorMessage("编码错误,原因为 :" + apiResult.getMessage());
            }
            arg.append(k).append(k).append("=").append(apiResult.getData()).append("&");
        });

        String url = "event://CRM/ObjModify?" + arg.substring(0, arg.length() - 1);
        return url;
    }


    public static void main(String[] args) throws IOException {
        //调试器
        DebugHelper helper = new DebugHelper();
        helper.init();
        //模拟了一个带有从对象的对象数据
        //{"appId":"","arg":{},"data":{"tenant_id":"749422","field_Tnvig__c":"1","is_deleted":false,"object_describe_api_name":"object_zBB6O__c","owner_department_id":"1000","owner_department":"测试","owner":["1000"],"lock_status":"0","package":"CRM","last_modified_time":{"dateTimeFormatter":{"decimalStyle":{"decimalSeparator":".","negativeSign":"-","positiveSign":"+","zeroDigit":"0"},"locale":"zh_CN","resolverStyle":"SMART"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":28,"month":2,"second":12,"timestamp":1677569292545,"weekOfMonth":5,"weekOfYear":9,"year":2023},"create_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":11,"minute":51,"month":2,"second":12,"timestamp":1677556272704,"weekOfMonth":5,"weekOfYear":9,"year":2023},"life_status":"normal","last_modified_by":["1000"],"version":10,"created_by":["1000"],"record_type":"default__c","data_own_department":["1000"],"name":"1test","_id":"63fd7a30ffd89f00013c7be3"},"dataList":[],"details":{"object_g1WuF__c":[{"tenant_id":"749422","is_deleted":false,"object_describe_api_name":"object_g1WuF__c","owner_department_id":"1000","owner_department":"测试","owner":["1000"],"lock_status":"0","package":"CRM","last_modified_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":28,"month":2,"second":26,"timestamp":1677569306991,"weekOfMonth":5,"weekOfYear":9,"year":2023},"create_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":28,"month":2,"second":26,"timestamp":1677569306991,"weekOfMonth":5,"weekOfYear":9,"year":2023},"life_status":"normal","field_1Rwod__c":"63fd7a30ffd89f00013c7be3","last_modified_by":["1000"],"version":1,"created_by":["1000"],"record_type":"default__c","data_own_department":["1000"],"name":"1test","_id":"63fdad1aebfee100016b043f"},{"tenant_id":"749422","lock_rule":"default_lock_rule","is_deleted":false,"object_describe_api_name":"object_g1WuF__c","owner_department_id":"1000","owner_department":"测试","owner":["1000"],"lock_status":"0","package":"CRM","last_modified_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":27,"month":2,"second":17,"timestamp":1677569237831,"weekOfMonth":5,"weekOfYear":9,"year":2023},"create_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":27,"month":2,"second":17,"timestamp":1677569237831,"weekOfMonth":5,"weekOfYear":9,"year":2023},"life_status":"normal","field_1Rwod__c":"63fd7a30ffd89f00013c7be3","last_modified_by":["1000"],"version":1,"created_by":["1000"],"record_type":"default__c","data_own_department":["1000"],"name":"1","order_by":10,"_id":"63fdacd542400c00019cfcca"}]},"objectIds":[],"outTenantId":"","outUserId":"","relatedData":{},"task":{},"tenantId":"749422","thirdAppId":"","thirdType":"","thirdUserId":"","upstreamOwnerId":"","userId":"1002"}
        FunctionContext context = helper.context("object_zBB6O__c", "63fd7a30ffd89f00013c7be3");
        Map<String, Object> param = new HashMap<>();
        UIAction execute = new ButtonUIAppExample().execute(context, param);
        Fx.log.info(execute);

    }
}


## 4. UIOpenDialog
package fx.custom.apl.example.button;

import com.fxiaoke.functions.FunctionContext;
import com.fxiaoke.functions.Fx;
import com.fxiaoke.functions.client.DebugHelper;
import com.fxiaoke.functions.template.IButtonUIAction;
import com.fxiaoke.functions.ui.OpenDialogAction;
import com.fxiaoke.functions.ui.UIAction;
import com.fxiaoke.functions.utils.Maps;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * OpenDialogAction实现自定义dialog对话框
 * 使用自定义UI按钮实现自定义dialog对话框,需要自己写一个自定义组件
 */
public class ButtonUIOpenDialogExample implements IButtonUIAction {

    /**
     * 按钮函数(UIAction)的运行方法
     */
    @Override
    public UIAction execute(FunctionContext context, Map<String, Object> args) {

        //自定义组件
        OpenDialogAction.Component component = new OpenDialogAction.Component();
        //自定义组件的apiName
        component.setApiName("comp_yuio8__c");

        Map<String, String> userData = Maps.of("key", "value");

        OpenDialogAction.Builder builder = OpenDialogAction.Builder.create();
        builder.setComponent(component); //自定义组件
        builder.setData(userData); //返回的数据,这部分是用户的数据,数据结构是一个map
        builder.setWidth("123"); //宽度,仅在 ShowCenter 模式下有效
        builder.setMaxHeight("123"); //最大高度,仅在 ShowCenter 模式下有效
        builder.setTitle("title"); //标题
        builder.setType("ShowCenter"); //显示模式,目前支持 「ShowCenter 居中弹框」和「FullScreen 全屏显示」两种模式

        return builder.toOpenDialogAction();

    }


    public static void main(String[] args) throws IOException {
        //调试器
        DebugHelper helper = new DebugHelper();
        helper.init();
        //模拟了一个带有从对象的对象数据
        //{"appId":"","arg":{},"data":{"tenant_id":"749422","field_Tnvig__c":"1","is_deleted":false,"object_describe_api_name":"object_zBB6O__c","owner_department_id":"1000","owner_department":"测试","owner":["1000"],"lock_status":"0","package":"CRM","last_modified_time":{"dateTimeFormatter":{"decimalStyle":{"decimalSeparator":".","negativeSign":"-","positiveSign":"+","zeroDigit":"0"},"locale":"zh_CN","resolverStyle":"SMART"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":28,"month":2,"second":12,"timestamp":1677569292545,"weekOfMonth":5,"weekOfYear":9,"year":2023},"create_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":11,"minute":51,"month":2,"second":12,"timestamp":1677556272704,"weekOfMonth":5,"weekOfYear":9,"year":2023},"life_status":"normal","last_modified_by":["1000"],"version":10,"created_by":["1000"],"record_type":"default__c","data_own_department":["1000"],"name":"1test","_id":"63fd7a30ffd89f00013c7be3"},"dataList":[],"details":{"object_g1WuF__c":[{"tenant_id":"749422","is_deleted":false,"object_describe_api_name":"object_g1WuF__c","owner_department_id":"1000","owner_department":"测试","owner":["1000"],"lock_status":"0","package":"CRM","last_modified_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":28,"month":2,"second":26,"timestamp":1677569306991,"weekOfMonth":5,"weekOfYear":9,"year":2023},"create_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":28,"month":2,"second":26,"timestamp":1677569306991,"weekOfMonth":5,"weekOfYear":9,"year":2023},"life_status":"normal","field_1Rwod__c":"63fd7a30ffd89f00013c7be3","last_modified_by":["1000"],"version":1,"created_by":["1000"],"record_type":"default__c","data_own_department":["1000"],"name":"1test","_id":"63fdad1aebfee100016b043f"},{"tenant_id":"749422","lock_rule":"default_lock_rule","is_deleted":false,"object_describe_api_name":"object_g1WuF__c","owner_department_id":"1000","owner_department":"测试","owner":["1000"],"lock_status":"0","package":"CRM","last_modified_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":27,"month":2,"second":17,"timestamp":1677569237831,"weekOfMonth":5,"weekOfYear":9,"year":2023},"create_time":{"dateTimeFormatter":{"$ref":"$.data.last\\_modified\\_time.dateTimeFormatter"},"day":28,"dayOfWeek":2,"dayOfYear":59,"hour":15,"minute":27,"month":2,"second":17,"timestamp":1677569237831,"weekOfMonth":5,"weekOfYear":9,"year":2023},"life_status":"normal","field_1Rwod__c":"63fd7a30ffd89f00013c7be3","last_modified_by":["1000"],"version":1,"created_by":["1000"],"record_type":"default__c","data_own_department":["1000"],"name":"1","order_by":10,"_id":"63fdacd542400c00019cfcca"}]},"objectIds":[],"outTenantId":"","outUserId":"","relatedData":{},"task":{},"tenantId":"749422","thirdAppId":"","thirdType":"","thirdUserId":"","upstreamOwnerId":"","userId":"1002"}
        FunctionContext context = helper.context("object_zBB6O__c", "63fd7a30ffd89f00013c7be3");
        Map<String, Object> param = new HashMap<>();
        UIAction execute = new ButtonUIOpenDialogExample().execute(context, param);
        Fx.log.info(execute);

    }
}


2024-10-22
1 2