【发布时间】:2017-01-10 05:53:38
【问题描述】:
我正在自定义一个 PLM Windchill 工作流,它提供了一种执行 java 代码 sn-ps 的机制。不幸的是,它们被“插入”到准备好的服务的方法中,这意味着无法导入类,所以我必须包含完整的包名才能使用它。下面的sn-p不要试图去理解,看看它长什么样子就行了:
wt.fc.QueryResult activities = wt.fc.PersistenceHelper.manager.find((wt.pds.StatementSpec) activitiesQuery);
while (activities.hasMoreElements()) {
wt.workflow.work.WfAssignedActivity activity = (wt.workflow.work.WfAssignedActivity) activities.nextElement();
if(activity.getDisplayIdentifier().toString().equals("Analyze Image Request")){
java.util.List<wt.workflow.work.WorkItem> workItems = wt.workflow.status.WfWorkflowStatusHelper.service.getWorkItems(activity);
for (wt.workflow.work.WorkItem workItem : workItems){
String action = workItem.getActionPerformed();
if(action != null && action.equals("Accepted")){
wt.org.WTPrincipalReference approver = workItem.getOwnership().getOwner();
n_approver = approver.getFullName() + " ("+approver.getDisplayName()+")";
wt.fc.collections.WTHashSet approverSet = new wt.fc.collections.WTHashSet(java.util.Arrays.asList(approver));
wt.project.Role role = wt.project.Role.toRole("APPROVER");
com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setChangeItemParticipants(report, role, approverSet);
break;
}
}
break;
}
}
我的问题是 - 如何使这段代码更具可读性?当然没有办法在方法内部导入类,甚至没有办法将这个 sn-p 分成单独的方法(因为它被“粘贴”成一个)所以我正在寻找其他想法。
【问题讨论】:
-
在自定义类中编写代码,并调用它?
-
@Andreas 我可以将一些代码提取到分离的类中并调用它,但是我必须在这个 sn-p 中留下很多逻辑,所以是的,这是一个很好的选择,但仍然没有不能解决我的主要问题。谢谢。
标签: java import workflow code-snippets ptc-windchill