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.
54 lines
1.9 KiB
54 lines
1.9 KiB
#include "handlers.h"
|
|
|
|
int NHL_SignOff_Handler(EPM_action_message_t msg){
|
|
|
|
printf("*******************************************************************************\n");
|
|
printf("* NHL_SignOff_Handler is comming £¡ *\n");
|
|
printf("*******************************************************************************\n");
|
|
|
|
int customError = ITK_ok, n_args = 0, attachcount = 0;
|
|
char *trans_args_value = NULL, *para_flag = NULL, *para_value = NULL, *approver_attr = NULL, *approvedate_attr = NULL, *object_type = NULL;
|
|
tag_t job_tag = NULLTAG, root_task_tag = NULLTAG, *attaches = NULL, form_tag = NULLTAG;
|
|
|
|
n_args = TC_number_of_arguments(msg.arguments);
|
|
TC_init_argument_list(msg.arguments);
|
|
for (int ix = 0; ix < n_args; ix++)
|
|
{
|
|
trans_args_value = TC_next_argument(msg.arguments);
|
|
|
|
ITKCALL(ITK_ask_argument_named_value(trans_args_value, ¶_flag, ¶_value));
|
|
|
|
if (tc_strcmp(para_flag, "approver_attr") == 0)
|
|
{
|
|
approver_attr = (char*)MEM_alloc((tc_strlen(para_value) + 1) * sizeof(char*));
|
|
tc_strcpy(approver_attr, para_value);
|
|
}
|
|
else if (tc_strcmp(para_flag, "approvedate_attr") == 0)
|
|
{
|
|
approvedate_attr = (char*)MEM_alloc((strlen(para_value) + 1) * sizeof(char*));
|
|
tc_strcpy(approvedate_attr, para_value);
|
|
}
|
|
|
|
if (para_flag) { MEM_free(para_flag); para_flag = NULL; }
|
|
if (para_value) { MEM_free(para_value); para_value = NULL; }
|
|
}
|
|
//²éѯjob
|
|
ITKCALL(EPM_ask_job(msg.task, &job_tag));
|
|
//²éѯrootTask
|
|
ITKCALL(EPM_ask_root_task(job_tag, &root_task_tag));
|
|
|
|
ITKCALL(EPM_ask_attachments(root_task_tag, EPM_target_attachment, &attachcount, &attaches));
|
|
char *form_type = "";
|
|
for (int ix = 0; ix < attachcount; ix++)
|
|
{
|
|
ITKCALL(WSOM_ask_object_type2(attaches[ix], &object_type));
|
|
if (tc_strcmp(object_type, form_type) == 0)
|
|
{
|
|
form_tag = attaches[ix];
|
|
break;
|
|
}
|
|
}
|
|
if (attaches) { MEM_free(attaches); attaches = NULL; }
|
|
|
|
return ITK_ok;
|
|
} |