APL函数代码开放场景-流程Java接口说明

2024-12-26 09:45:22 343 本站

1. 流程后动作

package fx.custom.apl.example.flow;
import com.fxiaoke.functions.FunctionContext;
import com.fxiaoke.functions.Fx;
import com.fxiaoke.functions.client.DebugHelper;
import com.fxiaoke.functions.model.*;
import com.fxiaoke.functions.template.IFlowAction;
import com.fxiaoke.functions.tools.QueryOperator;
import com.fxiaoke.functions.utils.Lists;
import com.fxiaoke.functions.utils.Maps;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import static com.fxiaoke.functions.Fx.log;/**
* APL函数里获取触发函数的主从数据
* APL函数简单操作获取主对象数据,并遍历处理从对象数据
*/
public class FlowExample implements IFlowAction {

   @Override
   public void execute(FunctionContext context, Map<String, Object> map) {
       // 流程后动作函数里面的context.data数据并不会实时计算计算字段,引用字段等,也不会查相关团队等信息
       // 建议有实时获取计算引用字段需求的再使用FQL查询下相关数据,FQL里面有参数控制是否查询相关信息
       String objectId = (String) context.getData().get("_id");
       String objectApiName = (String) context.getData().get("object_describe_api_name");
       FQLAttribute fqlAtrr = FQLAttribute.builder()
               .columns(Lists.newArrayList("_id", "name")) //需要查询的字段
               .build();

       SelectAttribute selectAtrr = SelectAttribute.builder()
               .needInvalid(false) //是否需要查作废数据
               .build();

       //查询主对象数据
       APIResult apiResult = Fx.object.findById(objectApiName, objectId, fqlAtrr, selectAtrr);
       if (apiResult.isError()) {
           log.info("error:" + apiResult.getMessage());
       }
       log.info(apiResult.getData());

       //如果有从对象数据也可以查询从数据
       QueryTemplate query = QueryTemplate.AND(
               Maps.of("field_57s3W__c", QueryOperator.EQ(objectId)) //主从关系字段
       );

       FQLAttribute fqlAtrr2 = FQLAttribute.builder()
               .queryTemplate(query)
               .columns(Lists.newArrayList("_id", "name"))
               .build();
       APIResult apiResult1 = Fx.object.find("object_adev4__c", fqlAtrr2, selectAtrr);
       if (apiResult1.isError()) {
           log.info("find object_adev4__c error:" + apiResult1.getMessage());
       }

       if (apiResult1.isError()) {
           log.info("find object_adev4__c error:" + apiResult1.getMessage());
       }
       log.info(apiResult1.getData());
       List dataList = ((QueryResult) apiResult1.getData()).getDataList();
       dataList.forEach(it -> {
           log.info(it);
       });
   }

   public static void main(String[] args) throws IOException {
       //调试器
       DebugHelper helper = new DebugHelper();
       //调试器初始化,包括身份以及服务器的地址
       //身份信息联系APL平台获取,具体查看application.properties配置
       helper.init();

       //构造当前执行类
       FlowExample example = new FlowExample();
       //模拟调试的上下文,例如开发时想模拟一个客户对象的上下文,以方便开发
       FunctionContext context = helper.context("AccountObj", "63100e7915d6a300017121cc");

       //构造被触发时的参数
       Map<String, Object> argument = Maps.newHashMap();

       //执行函数
       example.execute(context, argument);
   }}

2. 流程校验

详见校验函数



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