-
Notifications
You must be signed in to change notification settings - Fork 10
[Core] CallActivity (SubProcessActivity)
Jinyoung Jang edited this page Sep 20, 2016
·
3 revisions
CallActivity 는 BPMN 에서 프로세스를 호출하여 재사용하는 액티비티이며 Old uEngine 에서는 SubProcessActivity 로 알려져 있다. BPMN 에서는 SubActivity 가 메인프로세스 정의 내에 직접 정의되도록 되어있기 때문에 이 둘을 구분하고 있기 때문에 혼동하지 않기로 한다. uEngine5 상에서는 CallActivity 는 아래와 같이 단순히 기존 uEngine 의 SubProcessActivity 를 상속하여 제공하고 있다.
public class CallActivity extends SubProcessActivity{
public CallActivity() {
super();
setName("Call");
}
}
uEngine5 버전에서는 metaworks3 기반의 웹기반 프로세스 모델러를 지원하기 때문에 metaworks annotation 을 사용하여 필드 속성을 지원하도록 변경이 필요했다.
[Note] 기존 SubProcessActivity 의 멀티플 인스턴스 기능은 새버전의 org.uengine.kernel.bpmn.SubProcess 로 기능을 다 옮겼기 때문에 멀티플 인스턴스 관련된 프로퍼티들 (forEachRole, forEachVariable ...) 은 모두 Hidden 시킨다.
package org.uengine.kernel;
public class SubProcessActivity extends DefaultActivity {
public SubProcessActivity(){
super();
setName("Call");
setDescription("");
setInstanceId("<%=Instance.Name%>");
}
String instanceId;
@Hidden
public String getInstanceId() {
return instanceId;
}
public void setInstanceId(String string) {
instanceId = string;
}
String alias;
@Hidden
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
String definitionId;
@Face(faceClassName = "org.uengine.social.SocialBPMProcessDefinitionSelector")
@Hidden(on=false)
public String getDefinitionId() {
return definitionId;
}
public void setDefinitionId(String l) {
definitionId = l;
}
ParameterContext[] variableBindings;
@Face(faceClass = SubProcessParameterContextArrayFace.class)
public ParameterContext[] getVariableBindings() {
return variableBindings;
}
public void setVariableBindings(ParameterContext[] contexts) {
variableBindings = contexts;
}
RoleParameterContext[] roleBindings;
@Face(faceClass = RoleParameterContextArrayFace.class)
public RoleParameterContext[] getRoleBindings() {
return roleBindings;
}
public void setRoleBindings(RoleParameterContext[] contexts) {
roleBindings = contexts;
}
TextContext multipleInstanceLabel = org.uengine.contexts.TextContext.createInstance();
@Hidden
public TextContext getMultipleInstanceLabel() {
return multipleInstanceLabel;
}
public void setMultipleInstanceLabel(TextContext multipleInstanceLabel) {
this.multipleInstanceLabel = multipleInstanceLabel;
}
Role forEachRole;
@Hidden
public Role getForEachRole() {
return forEachRole;
}
public void setForEachRole(Role role) {
forEachRole = role;
}
ProcessVariable forEachVariable;
@Hidden
public ProcessVariable getForEachVariable() {
return forEachVariable;
}
public void setForEachVariable(ProcessVariable forEachVariable) {
this.forEachVariable = forEachVariable;
}
...
}