#include #include "epm_handler_common.h" #include #include #include #include #include #include #include #include "ps/ps.h" #include "ps/vrule.h" #include "sstream" #include #include "epm/epm.h" #include "sa/sa.h" //#include "libxl.h" #include #include "epm/signoff.h" #include #include #include #include #include "ae/dataset.h" #include #include #include "string_utils.h" #include #include "tc_log.h" #include #include "epm_handler_common.h" #include #include #include #include #include #include #include #include #include "epm/epm.h" //#include "libxl.h" #include #include using namespace std; typedef struct { string ITEM_ID;//id号 string ITEM_REVISION_ID;//类型 }PRO_STRUCT1; //物料停用逻辑:对选中的物料发起流程,检查其下所有的版本是否发布,如果有未发布的版本,就阻止进入流程,并且提示信息 //注意:可能对多个物料发起流程 int MaterialDiscontinuation(EPM_rule_message_t msg) { cout<<"检查能否发起物料停用流程"<"< item_vec; for (i = 0; i < att_cnt; i++) { //获得该物料下所有版本(版本revision_list) ITKCALL(ifail=AOM_ask_value_string(attachments[i],"object_type",&object_type)); if(strcmp("JK8Material",object_type)==0)//LP2_Design_Part { ITKCALL( ifail=AOM_ask_value_tags(attachments[i],"revision_list",&revtion_nums,&revision_list)); for (int j=0;j0) { cout<<"111111111111"<