#include "epm_handler_common.h" #include "jk_custom_erp.h" #include "jk_custom.h" #include #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 #include "epm/signoff.h" #include #include #include #include #include "ae/dataset.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 #include #include #include "tx_erp_bom.h" extern "C" int POM_AM__set_application_bypass(logical bypass); using namespace std; int tx_removeDisabled(EPM_action_message_t msg) { int ifail=ITK_ok; EPM_decision_t decision = EPM_go; tag_t task_tag = NULLTAG, rootTask_tag = NULLTAG, *attachments = NULLTAG,*revision_list=NULLTAG; int arg_cnt = 0, i = 0, att_cnt = 0,revtion_nums=0; int release_nums=0; tag_t *release_list=NULLTAG; char* object_type; tag_t release_stat = NULLTAG; string dateType="ena"; vector attatchments; vector target_vec; // ITKCALL(ifail=RELSTAT_create_release_status("jk8Disabled", &release_stat)); //获取当前触发的任务 task_tag = msg.task; //获取根流程节点 ITKCALL(ifail = EPM_ask_root_task(task_tag, &rootTask_tag)); //获取目标引用对象 ITKCALL(ifail = EPM_ask_attachments(rootTask_tag, EPM_target_attachment, &att_cnt, &attachments)); //循环目标对象 cout<<"数量--qq----->"<%d\n",ifail); return 0; } void tx_removeReleaseStatusByName(string statusName,tag_t rootTask,vector revVec){ tag_t release_status =NULLTAG; tag_t * attachments = NULL; int *att_types=NULL; int ifail = 0; att_types = (int*) MEM_alloc (sizeof(int) * ( revVec.size() )); attachments = (tag_t*) MEM_alloc (sizeof(tag_t) * ( revVec.size() )); //制定目标,数组转换 for ( int indx = 0; indx < revVec.size(); indx++ ) { att_types[indx] = EPM_target_attachment;//EPM_reference_attachment; attachments[indx] = revVec[indx]; } //把所有的版本都添加到流程中 //POM_AM__set_application_bypass(true); //ITKCALL(ifail = AOM_refresh(rootTask,0)); printf("1ifail=>%d\n",ifail); //AOM_load(rootTask); //AOM_lock(rootTask); ITKCALL(ifail=EPM_add_attachments(rootTask,revVec.size(),attachments,att_types)); printf("2ifail=>%d\n",ifail); //AOM_unlock(rootTask); //ITKCALL(ifail =AOM_refresh(rootTask,0)); //printf("3ifail=>%d\n",ifail); //POM_AM__set_application_bypass(false); ITKCALL(ifail =CR_create_release_status(statusName.c_str(),&release_status)); printf("4ifail=>%d\n",ifail); if(release_status!=NULLTAG){ POM_AM__set_application_bypass(true); //ITKCALL(ifail =AOM_refresh(rootTask,0)); //printf("5ifail=>%d\n",ifail); //AOM_lock(rootTask); ITKCALL(ifail =EPM_remove_status_from_targets(release_status,rootTask)); printf("6ifail=>%d\n",ifail); //AOM_unlock(rootTask); //ITKCALL(ifail =AOM_refresh(rootTask,0)); //printf("7ifail=>%d\n",ifail); POM_AM__set_application_bypass(false); } //AOM_unlock(rootTask); if(att_types) { MEM_free(att_types); att_types = NULL; } if(attachments) { MEM_free(attachments); attachments = NULL; } } void tx_removeRevFromTask(tag_t rootTask,vector revVec){ cout<<"enter removeRevFromTask "<