APL函数代码开放场景-自定义控制器Java接口说明

2025-01-07 15:23:45 417 本站

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);
    }}



部分内容来源于互联网,如有侵权,请联系客服删除处理。
在线咨询 拨打电话