#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MAX_PATH_LENGTH 2000 /****************************************************** * @headerfile standard c & cpp header files ********************************************************/ #include #include #include #include #include #include #include #include #include #include "epm_handler_common.h" #include "error_handling.h" #include "common_itk_util.h" #include "string_helper.h" #include "ocilib.h" #include "erp_utils.h" using namespace std; FILE* txlogFile = NULL; void tx_CreateLogFile(char* FunctionName) { int i=0, ifail = ITK_ok; date_t status_now; //char* date_string = NULL; char date_string[MAX_PATH_LENGTH]; char logFileDir[MAX_PATH_LENGTH]; char logFileName[MAX_PATH_LENGTH]; char* session_uid = NULL; tag_t session_tag = NULLTAG; time_t now; struct tm *p; time(&now); txlogFile = NULL; //current_time(&status_now); p=localtime(&now); memset(date_string, 0, sizeof(date_string)); sprintf(date_string,"%4d%02d%02d%02d%02d%02d",1900+p->tm_year,p->tm_mon+1 ,p->tm_mday ,p->tm_hour,p->tm_min ,p->tm_sec ); //if( DATE_date_to_string( status_now, "%Y%m%d%H%M%S", &date_string) != ITK_ok ) //ifail = ITK_date_to_string (status_now, &date_string ); //if (ifail) //{ // printf("!*ERROR*!: Failed to get current date time\n"); // goto CLEANUP; //} memset(logFileDir, 0, sizeof(logFileDir)); memset(logFileName, 0, sizeof(logFileName)); //get log dir sprintf(logFileDir, "%s", getenv("TC_USER_LOG_DIR")); printf("\n log file dir: %s\n", logFileDir); //try to change dir to TC_USER_LOG_DIR if(chdir(logFileDir)!=ITK_ok) { //not set TC_USER_LOG_DIR //log in to default TC_LOG memset(logFileDir, 0, sizeof(logFileDir)); sprintf(logFileDir, "%s", getenv("TEMP")); printf("\n TC_USER_LOG_DIR invalide, log file dir: %s\n", logFileDir); if(chdir(logFileDir)!=ITK_ok) { //still can not change to log dir printf("!*ERROR*!: Failed to change dir to TC_USER_LOG_DIR\n"); goto CLEANUP; } } //get session_uid to make sure the log file name unique POM_ask_session(&session_tag); ITK__convert_tag_to_uid(session_tag, &session_uid); //get logFileName sprintf(logFileName, "%s_%s_%s.log", FunctionName, session_uid, date_string); printf("log file name: %s\n", logFileName); //for(i = 0; _access((char *)logFileName, 4) == 0; i++) { memset(logFileName, 0, sizeof(logFileName)); sprintf(logFileName, "%s_%s_%s_%d.log", FunctionName, session_uid, date_string, i); } printf("final log file name: %s\n", logFileName); //create log file txlogFile = fopen(logFileName, "w"); CLEANUP: //DOFREE(date_string); DOFREE(session_uid); } int tx_AutoSign_Handler(EPM_action_message_t msg){ int ifail = ITK_ok,arg_cnt=0,i=0; tag_t root_task =NULLTAG; char arg1value[1024] = "",arg2value[1024] = "",arg3value[1024]="",arg4value[1024]=""; char *argflag =NULL,*argvalue=NULL ,*arg = NULL; char *rootTaskUid = NULL; char sql[4000] ="\0"; char ** sqlArgs =NULL ; // char tc_log_file_name[128]="\0"; //日志文件路径 int sqlArgsCount = 9; vector pref_vec ; time_t now; struct tm *p; time(&now); p = localtime(&now); // sprintf(tc_log_file_name, "%s\\tx_AutoSign_log_[%d-%d-%d-%d-%02d].txt",getenv("TEMP"),1900+p->tm_year,p->tm_mon+1 ,p->tm_mday,p->tm_hour,p->tm_min ); // printf("tc_log_file_name=%s\n",tc_log_file_name); // tx_CreateLogFile(tc_log_file_name); //TODO 首选项配置 getPrefStrings("tx_AutoSign_DB_Configer",TC_preference_site, pref_vec); if(pref_vec.size() < 3){ // WriteLog("ERROR:没有获取到首选项[AutoSign_DB_Configer]\n"); // CloseLog(); return ifail; } if(ConnServer((char*)pref_vec[0].c_str(),(char*)pref_vec[1].c_str(),(char*)pref_vec[2].c_str()) == -1){ // WriteLog("ERROR:ORACLE数据库登录失败\n"); // CloseLog(); return ifail; } cout<<"1-------------------------"< 0) { cout<<"3-------------------------"<