Skip to content
本页内容

流程发送前做数据校验

应用场景

在流程发送之前,我们需要对第三方数据或在特定条件下对平台内部数据进行严格的校验,以确保数据的准确性和可靠性。

扩展接口实现

java
package com.kanq;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.kanq.sdk.config.Macro;
import com.kanq.sdk.impl.ParmImpl;
import java.nio.charset.StandardCharsets;

public class FlowDemo {

	/**
     * 流程发送前数据校验
     * @param macroHead
     * @param argv
     * @return
     * @throws JsonProcessingException
     */
    @Macro(name = "SendCommit:INIT", describe = "流程发送前数据校验")
    public static byte[] send_init_check_data(byte[] macroHead, byte[][] argv) throws JsonProcessingException {

        ObjectMapper mapper = new ObjectMapper();
        ParmImpl parmImpl = new ParmImpl();

        //数据校验
        boolean flag = true;
        if(!flag){//数据校验异常提示
            parmImpl.error(500,"数据有误,请检查!");
            return mapper.writeValueAsString(parmImpl).getBytes(StandardCharsets.UTF_8);
        }

        ArrayNode arrayNode = mapper.createArrayNode();
        arrayNode.add(argv[0]);
        parmImpl.setParameter(arrayNode);
        return mapper.writeValueAsString(parmImpl).getBytes(StandardCharsets.UTF_8);
    }
}

package com.kanq;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.kanq.sdk.config.Macro;
import com.kanq.sdk.impl.ParmImpl;
import java.nio.charset.StandardCharsets;

public class FlowDemo {

	/**
     * 流程发送前数据校验
     * @param macroHead
     * @param argv
     * @return
     * @throws JsonProcessingException
     */
    @Macro(name = "SendCommit:INIT", describe = "流程发送前数据校验")
    public static byte[] send_init_check_data(byte[] macroHead, byte[][] argv) throws JsonProcessingException {

        ObjectMapper mapper = new ObjectMapper();
        ParmImpl parmImpl = new ParmImpl();

        //数据校验
        boolean flag = true;
        if(!flag){//数据校验异常提示
            parmImpl.error(500,"数据有误,请检查!");
            return mapper.writeValueAsString(parmImpl).getBytes(StandardCharsets.UTF_8);
        }

        ArrayNode arrayNode = mapper.createArrayNode();
        arrayNode.add(argv[0]);
        parmImpl.setParameter(arrayNode);
        return mapper.writeValueAsString(parmImpl).getBytes(StandardCharsets.UTF_8);
    }
}

效果展示

二开后效果: scene-flowsend-init-check-20240612103035

Powerd by Vitepress.