Java接口说明

package fx.custom.apl.example.controller;

import com.fxiaoke.functions.FunctionContext;
import com.fxiaoke.functions.client.DebugHelper;
import com.fxiaoke.functions.template.IControllerAction;
import com.fxiaoke.functions.utils.Maps;

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

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

/**
 * 异步自定义控制器使用样例
 * 将通用逻辑放到一个自定义控制器函数中,还可以设置参数,然后由其他调用
 */
public class ControllerExample implements IControllerAction {
    /**
     * 自定义控制器函数的运行方法
     */
    @Override
    public Map execute(FunctionContext context, Map<String, Object> syncArg) {
        // todo 自定义控制器调用方函数
//        Map data = context.getData();
//        Map param = Maps.of("objectData", Maps.of(
//                "objAPIName", data.get("object_describe_api_name"),
//                "masterFieldVal", Maps.of("test_null_value", null,
//                        "CRM_SALES_ORDER_NO", data.get("filed_asdvaf__c"),
//                        "SALES_ORGANIZATION", data.get("filed_gh4hj__c"),
//                        "PRODUCT_GROUP", data.get("filed_htj6__c"),
//                        "CUSTOMER_NO", data.get("filed_jy032__c")
//                )
//        ));
//
//        //异步调用func_c6hYc__c,不阻塞当前函数但拿不到返回结果,触发多次顺序也无法保证
//        APIResult apiResult = Fx.function.executeAsyncFunc("ControlRun__c", Maps.of("syncArg", param));
//        if (apiResult.isError()) {
//            log.info("error:" + apiResult.getMessage());
//        }
//        log.info(apiResult.getData());

        /*******************************分割线**********************************/

        // todo  自定义控制器被调用方函数 ,注意先在编辑器右上方设置参数syncArg
        Map objectData = (Map) syncArg.get("syncArg");
        log.info(objectData);

        return Maps.of("success", true);
    }


    public static void main(String[] args) throws IOException {
        DebugHelper helper = new DebugHelper();
        helper.init();
        Map syncArg = Maps.of("objectData", Maps.of(
                "objAPIName", "salesOrderTakeDown",
                "masterFieldVal", Maps.of("test_null_value", null,
                        "CRM_SALES_ORDER_NO", "SHDD-202210130622",
                        "SALES_ORGANIZATION", "1000",
                        "PRODUCT_GROUP", "00",
                        "CUSTOMER_NO", "2200006"
                )
        ));
        //模拟调试的上下文,没有数据可以使用helper.dataContext mock核心数据
        FunctionContext context = helper.context("object_zBB6O__c", "63fd7a30ffd89f00013c7be3");
        Map execute = new ControllerExample().execute(context, Maps.of("syncArg", syncArg));
        log.info(execute);
    }
}




2024-10-22
0 0