Java接口说明

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. 流程校验

详见校验函数

2024-10-22
0 1