public static String serialize()

in extension/storage/storage-custom/src/main/java/com/alibaba/smart/framework/engine/persister/util/InstanceSerializer.java [21:62]


    public static String serialize(ProcessInstance processInstance) {

        StringBuilder stringBuilder = new StringBuilder(64);
        //设置序列化版本号
        stringBuilder.append("v0|");

        //序列化流程实例
        stringBuilder.append(processInstance.getInstanceId()).append(",");
        stringBuilder.append(processInstance.getProcessDefinitionIdAndVersion()).append(",");
        stringBuilder.append(processInstance.getStatus()).append("|");

        //----分割线--- 上部分完成流程实例的序列化,下部分完成活动实例和执行实例的序列化。

        List<ActivityInstance> activityInstances = processInstance.getActivityInstances();
        for (ActivityInstance activityInstance : activityInstances) {


            List<ExecutionInstance> executionInstances =    activityInstance.getExecutionInstanceList();
            for (ExecutionInstance executionInstance : executionInstances) {
                if (null != executionInstance) {
                    boolean active = executionInstance.isActive();

                    if(active){
                        //注意: 这里仅保存了需要被执行的实例,历史的activityInstance在这里并没有保存。在阿里的海量数据业务中,也通常不需要。
                        stringBuilder.append(activityInstance.getInstanceId()).append(",");
                        stringBuilder.append(activityInstance.getProcessDefinitionActivityId()).append(",");
                        stringBuilder.append(executionInstance.getInstanceId()).append(",");
                        stringBuilder.append(active).append(",");

                        stringBuilder.append("|");
                    }

                }
            }




        }

        return stringBuilder.toString();
    }