워크플로 변수로 속성 수정(설정)
이 항목에서는 워크플로 변수 및 표현식 실행 로봇 노드를 사용하여 주요 비즈니스 객체의 속성을 수정하는 샘플을 제공합니다. 이 기능은 참여자에게 지정된 임무의 주제인 객체를 직접 수정할 수 있는 권한이 없는 경우에 유용합니다.
설명
PersistableAdapter API는 지정된 활동의 워크플로 변수에 기반하여 PBO 속성 값을 가져오고 설정하는 데 사용됩니다. 워크플로 변수 값이 임무의 사용자 입력에서 파생됩니다.
지침
다음의 상위 레벨 절차가 사용됩니다.
1. 워크플로 템플릿에서 하나 이상의 프로세스 레벨 변수가 작성됩니다. 이 변수는 수정할 PBO 속성을 나타냅니다. int, boolean 또는 java.lang.string의 유형 이름(데이터 유형)을 선택합니다. 변수를 볼 수 있고 재설정 가능한지 확인하십시오.
2. 지정된 작업에 대한 활동 노드의 변수 탭에서 이전 단계에서 작성한 프로세스 레벨 변수에서 초기화되고 해당 변수로 복사되는 활동 변수를 작성합니다. 이 변수는 사용자 입력을 가져와 변수를 획득한 다음 프로세스 레벨 변수로 복사하는 데 사용됩니다.
3. 표현식 실행 로봇을 작성합니다. 표현식 탭에서 지정된 활동의 사용자 입력을 통해 얻은 값인 워크플로 변수로 PBO 속성을 업데이트하는 코드를 입력합니다. 표현식 코드 예제는 다음 단원을 참조하십시오.
표현식 코드 예제
뒤에 나오는 코드 예제에는 다음 내부 이름(유형 매니저에 표시됨), 변수 이름 및 데이터 유형을 가진 변수 4개가 있습니다.
속성 내부 이름 | 워크플로 변수 이름 | 데이터 유형 |
---|
StringAttribute | StringAttributeVariable | java.lang.String |
BooleanAttribute | BooleanAttributeVariable | 부울 |
DateAttribute | DateAttributeVariable | java.lang.String |
IntegerAttribute | IntegerAttributeVariable | int |
| 다음 예는 문자열 데이터 유형에서 DateAttribute 값의 형식을 지정하는 방법에 대한 지침도 제공합니다. |
wt.part.WTPart part = (wt.part.WTPart)primaryBusinessObject;
//Get check out folder for the current user in the session
wt.folder.Folder checkoutFolder = wt.vc.wip.WorkInProgressHelper.service.getCheckoutFolder();
//Check out object
wt.vc.wip.CheckoutLink chklink = wt.vc.wip.WorkInProgressHelper.service.checkout(part, checkoutFolder, "Check out comment");
wt.part.WTPart wrk = (wt.part.WTPart) chklink.getWorkingCopy();
System.out.println("\nChecked out WTPart ......"+wrk.getName()+"\t"+wrk.getCheckoutInfo());
com.ptc.core.lwc.server.PersistableAdapter pbo = new com.ptc.core.lwc.server.PersistableAdapter(wrk, null, null, null);
System.out.println("\nGot pbo...."+pbo.toString());
pbo.load("StringAttribute","BooleanAttribute","DateAttribute","IntegerAttribute");
System.out.println("Loading Attributes");
System.out.println("StringAttribute : "+pbo.get("StringAttribute"));
System.out.println("BooleanAttribute : "+pbo.get("BooleanAttribute"));
System.out.println("DateAttribute : "+pbo.get("DateAttribute"));
System.out.println("IntegerAttribute : "+pbo.get("IntegerAttribute"));
pbo.set("StringAttribute", StringAttributeVariable);
pbo.set("BooleanAttribute", BooleanAttributeVariable);
pbo.set("IntegerAttribute", new java.lang.Long(IntegerAttributeVariable));
//Date attribute is more complex
java.text.DateFormat df = java.text.DateFormat.getDateInstance(java.text.DateFormat SHORT);
String tempDate= DateAttributeVariable;
java.util.Date objectDate = df.parse(tempDate);
pbo.set("DateAttribute", new java.sql.timestamp(objectDate.gettime()));
wt.fc.Persistable p = pbo.apply();
//Modify attributes
wt.fc.PersistenceHelper manager.modify(p);
try
{
// Check in object
wt.vc.wip.WorkInProgressHelper.service.checkin((wt.vc.wip.Workable) p, "Check in comment");
}
catch (wt.util.WTException e)
{
e.printStackStrace();
}
catch (wt.util.WTPropertyVetoException e)
{
e.printStackTrace();
}