Skip to content

[Core] CallActivity (SubProcessActivity)

Jinyoung Jang edited this page Sep 20, 2016 · 3 revisions

CallActivity 와 SubProcessActivity

CallActivity 는 BPMN 에서 프로세스를 호출하여 재사용하는 액티비티이며 Old uEngine 에서는 SubProcessActivity 로 알려져 있다. BPMN 에서는 SubActivity 가 메인프로세스 정의 내에 직접 정의되도록 되어있기 때문에 이 둘을 구분하고 있기 때문에 혼동하지 않기로 한다. uEngine5 상에서는 CallActivity 는 아래와 같이 단순히 기존 uEngine 의 SubProcessActivity 를 상속하여 제공하고 있다.


public class CallActivity extends SubProcessActivity{

    public CallActivity() {
        super();
        setName("Call");
    }

}


SubProcessActivity 의 FieldDescriptor 정의

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;
	}

...


}




Clone this wiki locally