#include "epm_handler_common.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "tc/envelope.h" #include #include "ae/dataset.h" #include #include #include #include #include #include #include #include "ce/ce.h" #include #include #include #include #include #include "string" #include "sstream" #include #include #include #include
#include "ctime" #include "tchar.h" using namespace std; extern "C" int POM_AM__set_application_bypass(logical bypass); /** * 时间表流程显示时间表名称 */ int jd_schedule_joint(EPM_action_message_t msg) { printf("===================================\n"); printf("设置时间表名称 开始\n"); printf("===================================\n"); printf("开超级权限\n"); POM_AM__set_application_bypass(true); int ifail = ITK_ok; tag_t tast_tag = NULL_TAG, job; tast_tag = msg.task; if (tast_tag != NULL_TAG) { char * task_name = NULL; int count = 0; tag_t * schdule_task_nodes = NULL; printf("开始获取SCHDULE任务 \n"); AOM_ask_value_tags(tast_tag, "project_task_attachments", &count, &schdule_task_nodes); printf("获取SCHDULE任务 count =[%d] \n", count); //printf("task_name:%s\n",task_name); printf("task_name-------------\n"); if (count > 0) { char * schdule_task_node_type = NULL; AOM_ask_value_string(schdule_task_nodes[0], "object_type", &schdule_task_node_type); char * scheduleTaskName = NULL; //char finish_date_str[300] = ""; printf("object_type:%s\n", schdule_task_node_type); if (strcmp(schdule_task_node_type, "ScheduleTask") == 0) { tag_t schdule = NULL_TAG; // date_t finish_date ; AOM_ask_value_tag(schdule_task_nodes[0], "schedule_tag", &schdule); AOM_ask_value_string(schdule_task_nodes[0], "object_name", &scheduleTaskName); printf("scheduleTaskName:%s\n", scheduleTaskName); if (schdule != NULL_TAG) { char * job_name = NULL; EPM_ask_job(tast_tag, &job); AOM_ask_value_string(job, "object_name", &job_name); stringstream ss; tag_t* project_list; int project_cnt; char* project_name = NULL; char* project_id = NULL; AOM_ask_value_tags(schdule, "project_list", &project_cnt, &project_list); if (project_list != NULL) { AOM_ask_value_string(project_list[0], "project_id", &project_id); AOM_ask_value_string(project_list[0], "object_name", &project_name); ss << job_name; ss << "-"; ss << project_id; ss << "-"; ss << project_name; printf("new job name %s\n", ss.str().c_str()); AOM_lock(job); printf("设置属性\n"); AOM_set_value_string(job, "object_name", ss.str().c_str()); cout << "更改所有者" << endl; tag_t owning_user, group; AOM_ask_value_tag(schdule, "owning_user", &owning_user); SA_ask_user_login_group(owning_user, &group); ITKCALL(AOM_set_ownership(job, owning_user, group)); //printf("str:%s\n", finish_date_str); AOM_save(job); AOM_unlock(job); } if (job_name != NULL) { MEM_free(job_name); job_name = NULL; } if (project_id != NULL) { MEM_free(project_id); project_id = NULL; } if (project_name != NULL) { MEM_free(project_name); project_name = NULL; } } } if (schdule_task_node_type != NULL) { MEM_free(schdule_task_node_type); schdule_task_node_type = NULL; } } if (task_name != NULL) { MEM_free(task_name); task_name = NULL; } if (schdule_task_nodes != NULL) { MEM_free(schdule_task_nodes); schdule_task_nodes = NULL; } } printf("关超级权限\n"); POM_AM__set_application_bypass(false); printf("===================================\n"); printf("设置时间表名称 结束\n"); printf("===================================\n"); return ifail; }