in core/src/main/java/com/alibaba/smart/framework/engine/service/command/impl/CommonServiceHelper.java [53:85]
private static void persistVariableInstanceIfPossible(Map<String, Object> request,
ProcessEngineConfiguration processEngineConfiguration,
ProcessInstance newProcessInstance, String executionInstanceId) {
VariablePersister variablePersister = processEngineConfiguration.getVariablePersister();
if( variablePersister.isPersisteVariableInstanceEnabled() && null!= request ){
AnnotationScanner annotationScanner = processEngineConfiguration.getAnnotationScanner();
VariableInstanceStorage variableInstanceStorage = annotationScanner.getExtensionPoint(ExtensionConstant.COMMON,VariableInstanceStorage.class);
for (Entry<String, Object> entry : request.entrySet()) {
String key = entry.getKey();
Set<String> blackList = variablePersister.getBlockList();
if(null!= blackList && blackList.contains(key)){
continue;
}
Object value = entry.getValue();
Class type = value.getClass();
VariableInstance variableInstance = new DefaultVariableInstance();
processEngineConfiguration.getIdGenerator().generate(variableInstance);
variableInstance.setProcessInstanceId(newProcessInstance.getInstanceId());
variableInstance.setExecutionInstanceId(executionInstanceId);
variableInstance.setFieldKey(key);
variableInstance.setFieldType(type);
variableInstance.setFieldValue(value);
variableInstanceStorage.insert( variablePersister,variableInstance, processEngineConfiguration);
}
}
}