You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

177 lines
6.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include"kutil.h"
#include <tc/envelope.h>
#define ITK_err 919012
void sendTCMail(char* title, int ifail, string contents, tag_t rootTask_tag) {
//发送TC邮件
tag_t envelope, owning_user, envelope2, user2;
char* userId;
AOM_ask_owner(rootTask_tag, &owning_user);
AOM_ask_value_string(owning_user, "user_id", &userId);
ITKCALL(ifail = MAIL_create_envelope(title, contents.c_str(), &envelope));
ITKCALL(ifail = MAIL_initialize_envelope2(envelope, title, contents.c_str()));
ITKCALL(ifail = MAIL_add_envelope_receiver(envelope, owning_user));
ITKCALL(ifail = MAIL_send_envelope(envelope));
//发给殷工
SA_find_user2("two", &user2);
ITKCALL(ifail = MAIL_create_envelope(title, contents.c_str(), &envelope2));
ITKCALL(ifail = MAIL_initialize_envelope2(envelope2, title, contents.c_str()));
ITKCALL(ifail = MAIL_add_envelope_receiver(envelope2, user2));
ITKCALL(ifail = MAIL_send_envelope(envelope2));
printf("tc邮寄发送成功");
}
int TEST(EPM_action_message_t msg) {
int ifail = ITK_ok, task_count = 0;
int attachments_num = 0, * attach_type;
tag_t rootTask = NULLTAG, cur_perform_task, memberTag;
tag_t* attachments = NULLTAG, *task_tags = NULLTAG;
//获取任务对象
EPM_ask_root_task(msg.task, &rootTask);
//获取任务目标对象
//EPM_ask_attachments(rootTask, EPM_target_attachment, &attachments_num, &attachments);
char* puid = NULL;
ITK__convert_tag_to_uid(rootTask, &puid);
printf("当前根节点的puid为%s\n", puid);
EPM_ask_sub_tasks(rootTask, &task_count, &task_tags);
for (int i = 0; i < task_count; i++) {
char* task_type = NULL;
WSOM_ask_object_type2(task_tags[i], &task_type);
printf("当前节点的类型为:%s\n", task_type);
if (strcmp("EPMReviewTask", task_type) == 0 || strcmp("EPMAcknowledgeTask", task_type) == 0) {
EPM_ask_sub_task(task_tags[i], "select-signoff-team", &cur_perform_task);
EPM_ask_all_attachments(cur_perform_task, &attachments_num, &attachments, &attach_type);
if (attachments > 0) {
for (int j = 0; j < attachments_num; j++) {
char* comment = NULL;
date_t decision_date_temp;
tag_t aUserTag = NULLTAG;
EPM_signoff_decision_t dec;
SIGNOFF_TYPE_t memberType;
ITKCALL(EPM_ask_signoff_decision(attachments[j], &dec, &comment, &decision_date_temp));
ITKCALL(EPM_ask_signoff_member(attachments[j], &memberTag, &memberType));
printf("用户标签为:%d\n", memberTag);
ITKCALL(SA_ask_groupmember_user(memberTag, &aUserTag));
char* name;
ITKCALL(SA_ask_user_person_name2(aUserTag, &name));
printf("用户名称为:%s\n", name);
}
}
}
}
//sendTCMail("题目...", ifail, "内容ceshi", rootTask);
return ifail;
}
int TEST3(EPM_action_message_t msg) {
int ifail = ITK_ok, att_cnt = 0, arg_cnt = 0;
char* arg = NULL, * argflag = NULL, * argvalue = NULL;
tag_t* attachments = NULLTAG, task_tag = NULLTAG, rootTask_tag;
string type,grant_value;
vector<string> types;
arg_cnt = TC_number_of_arguments(msg.arguments);
if (arg_cnt > 0) {
for (int i = 0; i < arg_cnt; i++) {
arg = TC_next_argument(msg.arguments);
ITKCALL(ifail = ITK_ask_argument_named_value(arg, &argflag, &argvalue));
if (strcmp(argflag, "type") == 0) {
type.assign(argvalue);
printf("%s\n", argvalue);
}
else if (strcmp(argflag, "grant") == 0) {
grant_value.assign(argvalue);
printf("%s\n", argvalue);
}
MEM_free(argflag);
MEM_free(argvalue);
}
}
else {
EMH_store_error_s1(EMH_severity_error, ITK_err, "未配置流程参数");
ifail = 1;
goto end;
}
{
if (grant_value.empty()) {
EMH_store_error_s1(EMH_severity_error, ITK_err, "未配置流程参数:-grant");
ifail = 1;
goto end;
}
Split(type, ";", types);
if (types.size() == 0) {
EMH_store_error_s1(EMH_severity_error, ITK_err, "未配置流程参数:-type");
ifail = 1;
goto end;
}
}
end:
DOFREE(attachments);
return ifail;
}
int TEST2(EPM_action_message_t msg) {
int ifail = ITK_ok;
int attachments_num = 0;
tag_t rootTask = NULLTAG;
tag_t* attachments = NULLTAG;
//获取任务对象
EPM_ask_root_task(msg.task, &rootTask);
//获取任务目标对象
EPM_ask_attachments(rootTask, EPM_target_attachment, &attachments_num, &attachments);
for (int i = 0; i < attachments_num; i++) {
//新建pdf数据集
tag_t item = NULLTAG,rev = attachments[i], spec_relation;
const char name[AE_datasettype_name_size_c + 1] = "Text";
char ref_name[WSO_name_size_c + 1] = "Text";
tag_t datasetType = NULLTAG, tool = NULLTAG;
tag_t newDatasetTag = NULLTAG; //新数据集的tag
tag_t relation = NULLTAG;
AE_find_datasettype2(name, &datasetType);
AE_create_dataset_with_id(datasetType, "数据集名称蛇皮", "数据集描述", "", "", &newDatasetTag);
AOM_lock(newDatasetTag);
AE_ask_datasettype_def_tool(datasetType, &tool);
AE_set_dataset_tool(newDatasetTag, tool);
AE_set_dataset_format2(newDatasetTag, name);
AOM_save(newDatasetTag);
AOM_unlock(newDatasetTag);
AOM_refresh(newDatasetTag, TRUE);
//ITEM_attach_rev_object2(rev, newDatasetTag, ITEM_specification_atth);
GRM_find_relation_type("IMAN_specification", &spec_relation); //关联变更件(变更相关附件)
GRM_create_relation(rev, newDatasetTag, spec_relation, NULLTAG,&relation);
GRM_save_relation(relation);
//添加命名的引用
import_dataset_file(newDatasetTag,ref_name,"txt", "C:\\Users\\Administrator\\Desktop\\新建文件夹\\2.txt", "命名的引用名字");
//tag_t new_file_tag = NULLTAG;
//IMF_file_t file_descriptor;
//char new_ds_name[WSO_name_size_c + 1] = "";
//char* new_file_name = USER_new_file_name(new_ds_name, ref_name, "txt", 0);//方法为数据集生成文件名。
//IMF_import_file("C:\\Users\\Administrator\\Desktop\\新建文件夹\\2.txt", new_file_name, SS_TEXT, &new_file_tag, &file_descriptor);
//AOM_lock(new_file_tag);
//IMF_set_original_file_name2(new_file_tag, "命名的引用名字");
//IMF_close_file(file_descriptor);
//AOM_save(new_file_tag);
//AOM_unlock(new_file_tag);
//AOM_refresh(new_file_tag, TRUE);
//AOM_lock(newDatasetTag);
//AE_add_dataset_named_ref2(newDatasetTag, ref_name, AE_PART_OF, new_file_tag);
//AE_save_myself(newDatasetTag);
//AOM_unlock(newDatasetTag);
//AOM_refresh(newDatasetTag, TRUE);
}
return ifail;
}