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

#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, &para_flag, &para_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;
}