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);
}}
部分内容来源于互联网,如有侵权,请联系客服删除处理。