bom传递判断

main
zouxk 5 years ago
parent dd6137ddda
commit f145efb846

@ -154,6 +154,7 @@
<ItemGroup> <ItemGroup>
<ClCompile Include="bs_bom_check.cpp" /> <ClCompile Include="bs_bom_check.cpp" />
<ClCompile Include="bs_bom_save_check.cpp" /> <ClCompile Include="bs_bom_save_check.cpp" />
<ClCompile Include="bs_bom_transmit_check.cpp" />
<ClCompile Include="bs_bypass.cpp" /> <ClCompile Include="bs_bypass.cpp" />
<ClCompile Include="bs_file_transfer.cpp" /> <ClCompile Include="bs_file_transfer.cpp" />
<ClCompile Include="bs_sap.cpp" /> <ClCompile Include="bs_sap.cpp" />

@ -98,6 +98,9 @@
<ClCompile Include="jd_check_wlms_len.cpp"> <ClCompile Include="jd_check_wlms_len.cpp">
<Filter>epm-handler</Filter> <Filter>epm-handler</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="bs_bom_transmit_check.cpp">
<Filter>epm-handler</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="epm_register_handler.h"> <ClInclude Include="epm_register_handler.h">

@ -0,0 +1,85 @@
#include "util.h"
int bs_bom_transmit_check(EPM_rule_message_t msg)
{
POM_AM__set_application_bypass(true);
tag_t root_task, *attachments;
int att_cnt;
//获得参数列表
TC_argument_list_t * arguments = msg.arguments;
//获取参数数目
int arg_cnt = TC_number_of_arguments(arguments);
map<string, string> arg_map;
//遍历参数列表
for (auto i = 0; i < arg_cnt; i++)
{
char *temp_key, *temp_val;
ITK_ask_argument_named_value(TC_next_argument(arguments), &temp_key, &temp_val);
//参数以键值对的形式传递到arg_map
if (temp_val)
arg_map[temp_key] = temp_val;
}
//获得根节点
EPM_ask_root_task(msg.task, &root_task);
//获得根任务下的组件
EPM_ask_attachments(root_task, EPM_target_attachment, &att_cnt, &attachments);
//判断参数是否符合要求
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);
//遍历参数
for (auto j = arg_map.begin(); j != arg_map.end(); j++)
{
//设置属性
ITKCALL(AOM_set_value_string(forms[0], j->first.c_str(), j->second.c_str()));
}
//保存
AOM_save(forms[0]);
//拿到指定参数判断参数值
if (form_att == 0)
{
continue;
}
char *cglx, *tscg;
AOM_ask_value_string(forms[0], "jd2_cglx", &cglx);
AOM_ask_value_string(forms[0], "jd2_tscg", &tscg);
cout << "jd2_cglx" << cglx << endl;
cout << "jd2_tscg" << tscg << endl;
if (strcmp(cglx, "E+") == 0 || strcmp(cglx, "E+50") == 0 || strcmp(tscg, "E+") == 0 || strcmp(tscg, "E+50") == 0)
{
//判断是否有 BOM 版本视图 structure_revisions 如果存在则可以发起流程
int structure_att;
tag_t *structures;
AOM_ask_value_tags(attachments[i], "structure_revisions", &structure_att, &structures);
if (structures == NULL)
{
POM_AM__set_application_bypass(false);
return EMH_store_error_s1(EMH_severity_error, EMH_IDGENERATION_ERROR_BASE, "no BOM");
}
else
{
return EPM_go;
}
}
else
{
POM_AM__set_application_bypass(false);
return EMH_store_error_s1(EMH_severity_error, EMH_IDGENERATION_ERROR_BASE, "This material cannot initiate a process");
}
}
POM_AM__set_application_bypass(false);
return EPM_go;
}
}

@ -53,6 +53,7 @@ extern "C" {
int jd_send_mail(EPM_action_message_t msg); int jd_send_mail(EPM_action_message_t msg);
int jd_get_target(EPM_action_message_t msg); int jd_get_target(EPM_action_message_t msg);
int jd_check_wlms_len(EPM_rule_message_t msg); int jd_check_wlms_len(EPM_rule_message_t msg);
int bs_bom_transmit_check(EPM_rule_message_t msg);
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣǩ<CFA2><C7A9><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ ////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣǩ<CFA2><C7A9><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ
//int qtmc_sign_ir(EPM_action_message_t msg); //int qtmc_sign_ir(EPM_action_message_t msg);

@ -165,7 +165,16 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
printf("register jd_check_wlms_len failed\n"); printf("register jd_check_wlms_len failed\n");
} else { } else {
printf("register jd_check_wlms_len successfully\n"); printf("register jd_check_wlms_len successfully\n");
} //if(ifail == ITK_ok) }
ifail = EPM_register_rule_handler("bs_bom_transmit_check", "bs_bom_transmit_check",
(EPM_rule_handler_t)bs_bom_transmit_check);
if (ifail) {
printf("register bs_bom_transmit_check failed\n");
} else {
printf("register bs_bom_transmit_check successfully\n");
}
//if(ifail == ITK_ok)
//{ //{
// fprintf(stdout,"Registering action handler qtmc-sign-ir completed!\n"); // fprintf(stdout,"Registering action handler qtmc-sign-ir completed!\n");
//} //}

@ -23,7 +23,7 @@ int jd_check_wlms_len(EPM_rule_message_t msg) {
if (wlms[i] < 128 && wlms[i]>0) { if (wlms[i] < 128 && wlms[i]>0) {
length++; length++;
} else { } else {
i += 2; i += 1;
length++; length++;
} }
} }

@ -20,12 +20,14 @@ e:\work\vs_workspace\jditk\hezon_itk\x64\release\bs_bypass.obj
e:\work\vs_workspace\jditk\hezon_itk\x64\release\bs_bom_save_check.obj e:\work\vs_workspace\jditk\hezon_itk\x64\release\bs_bom_save_check.obj
e:\work\vs_workspace\jditk\hezon_itk\x64\release\bs_bom_check.obj e:\work\vs_workspace\jditk\hezon_itk\x64\release\bs_bom_check.obj
e:\work\vs_workspace\jditk\hezon_itk\x64\release\util.obj e:\work\vs_workspace\jditk\hezon_itk\x64\release\util.obj
e:\work\vs_workspace\jditk\hezon_itk\x64\release\jd_check_wlms_len.obj
e:\work\vs_workspace\jditk\hezon_itk\x64\release\.netframework,version=v4.0.assemblyattributes.obj e:\work\vs_workspace\jditk\hezon_itk\x64\release\.netframework,version=v4.0.assemblyattributes.obj
e:\work\vs_workspace\jditk\hezon_itk\x64\release\.netframework,version=v4.0.assemblyattributes.asm e:\work\vs_workspace\jditk\hezon_itk\x64\release\.netframework,version=v4.0.assemblyattributes.asm
e:\work\vs_workspace\jditk\x64\release\bs.dll e:\work\vs_workspace\jditk\x64\release\bs.dll
e:\work\vs_workspace\jditk\x64\release\hezon_itk.pdb e:\work\vs_workspace\jditk\x64\release\hezon_itk.pdb
e:\work\vs_workspace\jditk\hezon_itk\x64\release\hezon_itk.tlog\metagen.write.1.tlog e:\work\vs_workspace\jditk\hezon_itk\x64\release\hezon_itk.tlog\metagen.write.1.tlog
e:\work\vs_workspace\jditk\hezon_itk\x64\release\hezon_itk.vcxprojresolveassemblyreference.cache e:\work\vs_workspace\jditk\hezon_itk\x64\release\hezon_itk.vcxprojresolveassemblyreference.cache
e:\work\vs_workspace\jditk\hezon_itk\x64\release\vc140.pdb~9cec5b3be0639e60437e0ba1a3035139d8301c0a
e:\work\vs_workspace\jditk\hezon_itk\x64\release\hezon_itk.tlog\cl.command.1.tlog e:\work\vs_workspace\jditk\hezon_itk\x64\release\hezon_itk.tlog\cl.command.1.tlog
e:\work\vs_workspace\jditk\hezon_itk\x64\release\hezon_itk.tlog\cl.read.1.tlog e:\work\vs_workspace\jditk\hezon_itk\x64\release\hezon_itk.tlog\cl.read.1.tlog
e:\work\vs_workspace\jditk\hezon_itk\x64\release\hezon_itk.tlog\cl.write.1.tlog e:\work\vs_workspace\jditk\hezon_itk\x64\release\hezon_itk.tlog\cl.write.1.tlog

Loading…
Cancel
Save