라우팅 표현식에 속성 읽어들이기(가져오기)
PersistableAdapter API Get 메소드를 사용하여 라우팅 워크플로 템플릿에서 사용할 속성 값을 읽어들일 수 있습니다. 다음 예는 주요 비즈니스 객체에서 속성 값을 읽어들이고 해당 값을 라우팅 워크플로 템플릿에 있는 Or 커넥터 노드의 라우팅 표현식에서 사용합니다.
설명
PersistableAdapter API는 지정된 활동의 워크플로 변수에 사용될 PBO 속성 값을 읽어들입니다.
지침
다음 절차가 사용됩니다.
1. Or 커넥터 노드를 추가합니다.
2. 커넥터 등록 정보에서 다음을 지정합니다.
a. 라우팅 유형에서 조건을 선택합니다.
b. 라우팅 이벤트 필드 아래에 사용자 정의 이벤트 이름을 하나 이상 입력합니다(엔트리가 여러 개일 경우 각각 다른 줄에 포함).
c. 라우팅/집계 표현식 필드에 PBO 속성 값에 기반하여 라우팅 이벤트를 선택하는 라우팅 표현식 코드를 입력합니다. 구문 점검을 클릭하여 표현식 구문이 올바른지 확인합니다. 라우팅 표현식 코드 예제는 다음 단원을 참조하십시오.
d. 확인을 클릭하여 조건 등록 정보 창을 닫습니다.
3. 각 라우팅 이벤트에 대한 활동 노드를 작성합니다.
4. 각 라우팅 이벤트에 대해 연관된 활동 노드에 조건 노드를 연결하는 프로세스 링크를 작성합니다. 프로세스 링크 등록 정보의 이벤트 위치: 조건 아래에서 해당 라우팅 이벤트 옆의 시작 작업을 지정합니다.
5. 워크플로 템플릿을 적절히 종료합니다.
라우팅 표현식 코드 예제
다음 코드 예제에는 4개의 PBO 속성 값에 기반한 4개의 라우팅 이벤트가 있습니다. 표현식에서는 PersistableAdapter API를 사용하여 PBO 속성 값을 가져옵니다. 그런 다음 각 값은 변수로 변환되고 표현식에서 평가되어 라우팅 이벤트가 선택됩니다. 다음 표에는 PBO 속성의 내부 이름(유형 매니저에 표시됨), 변수 이름, 데이터 유형 및 각 속성에 대해 연관된 라우팅 이벤트가 나열되어 있습니다.
속성 내부 이름 | 워크플로 변수 이름 | 데이터 유형 | 연관된 라우팅 이벤트 |
StringAttribute | stringVar | java.lang.String | StringMatch |
BooleanAttribute | booleanVar | boolean | BooleanMatch |
DateAttribute | dateVar | java.lang.String | DateMatch |
IntegerAttribute | integerVar | int | IntegerMatch |
| DateAttribute 값의 형식을 문자열 데이터 유형에서 날짜 형식으로 지정하는 다음 예제의 코드를 확인합니다. |
wt.part.WTPart part = (wt.part.WTPart)primaryBusinessObject;
com.ptc.core.lwc.server.PersistableAdapter obj = new
com.ptc.core.lwc.server.PersistableAdapter(part,null,null,null);
obj.load("BooleanAttribute","DateAttribute","IntegerAttribute","StringAttribute");
// Retriving Boolean Attribute
Boolean booleanVar = (boolean)obj.get ("BooleanAttribute");
System.out.println("booleanVar = "+booleanVar);
// Retriving String Attribute
String stringVar = (String) obj.get ("StringAttribute");
System.out.println("stringVar = "+stringVar);
// Retriving Integer Attribute
Long integerVar = new java.lang.Long ((java.lang.Long)obj.get ("IntegerAttribute"));
System.out.println("integerVar = "+integerVar);
// Retriving Date Attribute
java.text.DateFormat df = java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT);
java.sql.Timestamp tempDate = (java.sql.Timestamp)obj.get ("DateAttribute");
java.util.Date dateVar = new java.util.Date(tempDate.getTime());
System.out.println("dateVar = "+dateVar);
java.util.Date today = new java.util.Date();
System.out.println("today = "+today );
if (booleanVar)
{
result="BooleanMatch";
System.out.println("result = "+result);
}
else if(today.compareTo(dateVar) == 0)
{
result = "DateMatch";
System.out.println("result = "+result);
}
else if (integerVar == 123)
{
result= "IntegerMatch";
System.out.println("result = "+result);
}
else if (stringVar.equalsIgnoreCase ("test"))
{
result = "StringMatch";
System.out.println("result = "+result);
}