Прошу помочь в решении некоторых вопросов...
Ситуация: Производится копирование задач при разборе из общей папке в другие папки с помощью нижеприведенного скрипта;
Собственно вопросы:
1. Корректно ли выполняется установка значения доп. поля "Исходный запрос"? Вроде должно устанавливаться в порожденной задаче, а устанавливается в исходной, в которой формируется сообщение.
2. При решении 1-го вопроса, возникнет следующая проблемка. Каким образом в исходной задаче впоследствии можно получить сведения о порожденной задаче? Когда определяю поле типа "Задача", то там вроде есть какая-то возможность обратной ссылки, но как ее получить в скрипте не совсем понятно.
Категория как исходной, так и порожденной задачи, одна и та же.
Заранее спасибо!
- Code: Select all
package scripts.after_add_message;
import com.trackstudio.app.adapter.AdapterManager;
import com.trackstudio.exception.*;
import com.trackstudio.external.OperationTrigger;
import com.trackstudio.secured.*;
import com.trackstudio.secured.SecuredTaskTriggerBean;
import java.util.List;
public class AcceptProblem implements OperationTrigger {
public SecuredMessageTriggerBean execute(SecuredMessageTriggerBean message) throws GranException {
String notAllowedCategoryName = "Продукты";
if (message.getTask().getParent().getCategory().getName().equals(notAllowedCategoryName)) {
return message;
}
String destTaskId = AdapterManager.getInstance().getSecuredTaskAdapterManager().findTaskIdByQuickGo(
message.getSecure(),
AdapterManager.getInstance().getSecuredUDFAdapterManager().getTaskUDFValue(
message.getSecure(),
message.getTaskId(),
"Продукт"));
if (destTaskId != null) {
List<String> id = AdapterManager.getInstance().getSecuredTaskAdapterManager().pasteTasks(
message.getSecure(),
destTaskId,
message.getTaskId(),
"SINGLE_COPY");
// Укажем в порожденной задаче связь с текущей задачей
SecuredTaskTriggerBean t = new SecuredTaskTriggerBean(id.get(0), message.getSecure());
t.setUdfValue("Исходный запрос", message.getTaskId());
t.update(false);
}
return message;
}
}
