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.
55 lines
1.4 KiB
55 lines
1.4 KiB
#include "util.h"
|
|
|
|
int jd_check_bom_use(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 BOMytNum = 0;
|
|
for (int i = 0; i < att_cnt; i++) {
|
|
if (isTypeOf(attachments[i], "ItemRevision")) {
|
|
//获取版本表单
|
|
int form_att;
|
|
tag_t *forms;
|
|
AOM_ask_value_tags(attachments[i], "IMAN_master_form_rev", &form_att, &forms);
|
|
//拿到指定参数判断参数值
|
|
if (form_att == 0) {
|
|
continue;
|
|
}
|
|
//判断版本表单属性 jd2_BOMyt 是否为空
|
|
char *BOMyt;
|
|
AOM_ask_value_string(forms[0], "jd2_BOMyt", &BOMyt);
|
|
if ((strcmp(BOMyt, "") != 0) && BOMyt != NULL) {
|
|
continue;
|
|
}
|
|
else {
|
|
//如果存在 BOM用途没填写的,打一个标记,并记录所有没有填写的对象
|
|
BOMytNum = -1;
|
|
AOM_ask_value_string(attachments[i], "object_string", &object_string);
|
|
names.append(object_string);
|
|
names.append(";");
|
|
}
|
|
}
|
|
}
|
|
|
|
if (BOMytNum == -1) {
|
|
std::string massage = "BOM用途未填写,不予许发起流程";
|
|
names.append(massage);
|
|
const char *p = names.c_str();
|
|
cout << "Exception:" << p << endl;
|
|
POM_AM__set_application_bypass(false);
|
|
return EMH_store_error_s1(EMH_severity_error, EMH_IDGENERATION_ERROR_BASE, p);
|
|
}
|
|
|
|
|
|
POM_AM__set_application_bypass(false);
|
|
return EPM_go;
|
|
|
|
} |