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);
}
}
Java接口说明
2024-10-22