#include "util.h" int check_release_issus(EPM_rule_message_t msg) { POM_AM__set_application_bypass(true); tag_t root_task, * attachments; int att_cnt; //获得根节点 EPM_ask_root_task(msg.task, &root_task); //获得根任务下的组件 EPM_ask_attachments(root_task, EPM_target_attachment, &att_cnt, &attachments); //判断参数是否符合要求 char* object_string; std::string names = ""; int bjNum = 0; //遍历任务组件 for (int i = 0; i < att_cnt; i++) { if (isTypeOf(attachments[i], "ItemRevision")) { //判断版本属性 release_status_list (是否发布) int release_att; tag_t* release; AOM_ask_value_tags(attachments[i], "release_status_list", &release_att, &release); cout << "release_att:" << release_att << endl; cout << "release:" << release << endl; if (release_att >= 1) { continue; } else { //如果date_released没有,打一个标记,并记录所有没有的对象 bjNum = -1; AOM_ask_value_string(attachments[i], "object_string", &object_string); names.append(object_string); names.append(";"); } } } if (bjNum == -1) { std::string massage = "物料/图纸当前版本未发布!"; names.append(massage); const char* p = names.c_str(); cout << "Exception:" << p << endl; EMH_store_error_s1(EMH_severity_error, EMH_IDGENERATION_ERROR_BASE, p); return EPM_nogo; } POM_AM__set_application_bypass(false); return EPM_go; }