//001 TL4790 08/11/00 Added Billing Entity internal int lGetCollectionInfo() { int result = 0; Index collection_letter_id_index = new Index("collection_letter_id"); Index letter_line15_index = new Index("letter_line15"); Index letter_line14_index = new Index("letter_line14"); Index letter_line13_index = new Index("letter_line13"); Index letter_line12_index = new Index("letter_line12"); Index letter_line11_index = new Index("letter_line11"); Index letter_line10_index = new Index("letter_line10"); Index letter_line9_index = new Index("letter_line9"); Index letter_line8_index = new Index("letter_line8"); Index letter_line7_index = new Index("letter_line7"); Index letter_line6_index = new Index("letter_line6"); Index letter_line5_index = new Index("letter_line5"); Index letter_line4_index = new Index("letter_line4"); Index letter_line3_index = new Index("letter_line3"); Index letter_line2_index = new Index("letter_line2"); Index letter_line1_index = new Index("letter_line1"); Index status_index = new Index("status"); Index status_data_index = new Index("status_data"); Index be_id_index = new Index("be_id"); Index dunning_level_cd_index = new Index("dunning_level_cd"); ProFitData.gFRWKSVC.SysLog("CCollectionData::lGetCollectionInfo:Start", LogLevel.logAudit2); CrmBasicJob job = null; Instance lhReqStruct = null; Instance lhReply = null; Instance lhItem = null; string sStatus = String.Empty; //Dim dDunningCd As Double int nTries = 0; bool nCrmStatus = false; //return status of Crm Calls try { ////////////////////// Standard CCL Fields////////////////////////////// //Procedure level Variables //Standard crm handles //handle to the task //handle to the request //handle to the request structure //handle to the Reply //create request/reply structures and returns request handle ProFitData.gFRWKSVC.lBeginScript(ref job, 4053060, 4053060); if (job == null) { ProFitData.gFRWKSVC.SysLog("CCollectionData::lGetCollectionInfo - Error starting task", LogLevel.logDebug3); return(ProFitData.PFT_FAILURE); } //get a handle to the Request structure lhReqStruct = job.Request;// GetRequest(); if (lhReqStruct == null) { ProFitData.gFRWKSVC.SysLog("CCollectionData::lGetCollectionInfo - invalid Request handle.", LogLevel.logDebug3); return(ProFitData.PFT_FAILURE); } //populate the request structure lhReqStruct.SetDouble(dunning_level_cd_index, dDunningLevelCd); //TL4790 08/11/00 lhReqStruct.SetDouble(be_id_index, dBillingEntityID); //End TL4790 08/11/00 //perform the script until it works or we exceed threshold nTries = 0; do { nCrmStatus = job.Perform(); nTries++; }while (!(nTries >= ProFitData.MAX_RETRIES || nCrmStatus)); //get the handle to the Reply Structure lhReply = job.Reply; if (lhReply == null) { //0 is an invalid handle ProFitData.gFRWKSVC.SysLog("CCollectionData::lGetCollectionInfo: Reply Handle is 0", LogLevel.logDebug3); return(ProFitData.PFT_FAILURE); } //get a handle to the status block of the script lhItem = lhReply.GetStruct(status_data_index); if (lhItem == null) { //0 is an invalid handle ProFitData.gFRWKSVC.SysLog("CStatmentData::lGetCollectionInfo - SrvGetStruct failed, handle = 0", LogLevel.logDebug3); return(ProFitData.PFT_FAILURE); } //get the status of the script sStatus = lhItem.GetString(status_index); //evaluate the status switch (sStatus) { case "S": case "s": //success ProFitData.gFRWKSVC.SysLog("CCollectionData::lGetCollectionInfo - Script returned (S)uccess", LogLevel.logDebug3); sLetter_line1 = lhReply.GetString(letter_line1_index); sLetter_line2 = lhReply.GetString(letter_line2_index); sLetter_line3 = lhReply.GetString(letter_line3_index); sLetter_line4 = lhReply.GetString(letter_line4_index); sLetter_line5 = lhReply.GetString(letter_line5_index); sLetter_line6 = lhReply.GetString(letter_line6_index); sLetter_line7 = lhReply.GetString(letter_line7_index); sLetter_line8 = lhReply.GetString(letter_line8_index); sLetter_line9 = lhReply.GetString(letter_line9_index); sLetter_line10 = lhReply.GetString(letter_line10_index); sLetter_line11 = lhReply.GetString(letter_line11_index); sLetter_line12 = lhReply.GetString(letter_line12_index); sLetter_line13 = lhReply.GetString(letter_line13_index); sLetter_line14 = lhReply.GetString(letter_line14_index); sLetter_line15 = lhReply.GetString(letter_line15_index); Collection_letter_id = lhReply.GetDouble(collection_letter_id_index); break; case "Z": case "z": //zero records returned ProFitData.gFRWKSVC.SysLog("lGetCollectionInfo script returned no records", LogLevel.logDebug3); result = ProFitData.PFT_SCRIPT_NO_REPLY; sLetter_line1 = System.String.Empty; sLetter_line2 = System.String.Empty; sLetter_line3 = System.String.Empty; sLetter_line4 = System.String.Empty; sLetter_line5 = System.String.Empty; sLetter_line6 = System.String.Empty; sLetter_line7 = System.String.Empty; sLetter_line8 = System.String.Empty; sLetter_line9 = System.String.Empty; sLetter_line10 = System.String.Empty; sLetter_line11 = System.String.Empty; sLetter_line12 = System.String.Empty; sLetter_line13 = System.String.Empty; sLetter_line14 = System.String.Empty; sLetter_line15 = System.String.Empty; disable_flg = 0; return(result); case "F": case "f": //script failed ProFitData.gFRWKSVC.SysLog("lGetCollectionInfo script failed", LogLevel.logDebug3); result = ProFitData.PFT_SCRIPT_FAILURE; return(ProFitData.PFT_FAILURE); default: ProFitData.gFRWKSVC.SysLog("lGetCollectionInfo script unknown error", LogLevel.logDebug3); result = ProFitData.PFT_SCRIPT_UNKNOWN_STATUS; return(result); } //set return value result = ProFitData.PFT_SUCCESS; ProFitData.gFRWKSVC.SysLog("cCollectionData::lGetCollectionInfo:Normal Termination", LogLevel.logAudit2); return(result); } catch (System.Exception _exception_) { Cerner.Foundations.Logging.ExceptionReporting.ReportException(_exception_); //error routine ProFitData.gFRWKSVC.SysLog("cCollectionData::lGetCollectionInfo:Error", LogLevel.logAudit2); if (ProFitData.gFRWKSVC.Level == 4) { //dump variables ProFitData.gFRWKSVC.SysLog("lhReqStruct: " + lhReqStruct.ToString(), LogLevel.logTrace4); ProFitData.gFRWKSVC.SysLog("lhReply: " + lhReply.ToString(), LogLevel.logTrace4); ProFitData.gFRWKSVC.SysLog("lhItem: " + lhItem.ToString(), LogLevel.logTrace4); ProFitData.gFRWKSVC.SysLog("sStatus: " + sStatus, LogLevel.logTrace4); ProFitData.gFRWKSVC.SysLog("lTask: " + "4053060", LogLevel.logTrace4); ProFitData.gFRWKSVC.SysLog("lreq: " + "4053060", LogLevel.logTrace4); } return(result); } finally { if (job != null) { job.Dispose(); job = null; } if (lhItem != null) { lhItem.Dispose(); lhItem = null; } if (lhReply != null) { lhReply.Dispose(); lhReply = null; } if (lhReqStruct != null) { lhReqStruct.Dispose(); lhReqStruct = null; } } }
internal int lAddCollection() { int result = 0; Index TargetObjectValue_index = new Index("TargetObjectValue"); Index TargetObjectName_index = new Index("TargetObjectName"); Index operationStatus_index = new Index("operationStatus"); Index operationname_index = new Index("operationname"); Index subeventstatus_index = new Index("subeventstatus"); Index subeventstatus_index2 = new Index("subeventstatus"); Index status_index = new Index("status"); Index status_data_index = new Index("status_data"); Index status_data_index2 = new Index("status_data"); Index letter_line15_index = new Index("letter_line15"); Index letter_line14_index = new Index("letter_line14"); Index letter_line13_index = new Index("letter_line13"); Index letter_line12_index = new Index("letter_line12"); Index letter_line11_index = new Index("letter_line11"); Index letter_line10_index = new Index("letter_line10"); Index letter_line9_index = new Index("letter_line9"); Index letter_line8_index = new Index("letter_line8"); Index letter_line7_index = new Index("letter_line7"); Index letter_line6_index = new Index("letter_line6"); Index letter_line5_index = new Index("letter_line5"); Index letter_line4_index = new Index("letter_line4"); Index letter_line3_index = new Index("letter_line3"); Index letter_line2_index = new Index("letter_line2"); Index letter_line1_index = new Index("letter_line1"); Index lDisableFlg_index = new Index("lDisableFlg"); Index lUpdtCnt_index = new Index("lUpdtCnt"); Index ActiveInd_index = new Index("ActiveInd"); Index collection_letter_id_index = new Index("collection_letter_id"); Index be_id_index = new Index("be_id"); Index dunning_level_cd_index = new Index("dunning_level_cd"); ProFitData.gFRWKSVC.SysLog("CCollectionData::lAddCollection:Start", LogLevel.logAudit2); CrmBasicJob job = null; Instance lhReqStruct = null; Instance lhReply = null; Instance lhStatusBlock = null; string sStatus = String.Empty; int nTries = 0; bool nCrmStatus = false; //Change management using (var dmDcm = new DmDcmHelper { GetDetailData = CCollection.UnitOfWorkDetailData }) { int lUniqueId = CrmAccessDlg.GetInstance().BeginScript(4053060, 4053061, "lAddCollection"); try { if (lUniqueId == (int)CrmAccessDlg.PerformStatus.BadId) { return(result); } result = ProFitData.PFT_FAILURE; //get the IDs of the Task and Request //4053060 //4053061 //start the task ProFitData.gFRWKSVC.lBeginScript(ref job, 4053060, 4053061); if (job == null) { return(ProFitData.PFT_FAILURE); } //get a handle to the request structure lhReqStruct = job.Request; if (lhReqStruct == null) { ProFitData.gFRWKSVC.SysLog("invalid request structure handle.", LogLevel.logDebug3); return(ProFitData.PFT_FAILURE); } lhReqStruct.SetDouble(dunning_level_cd_index, dDunningLevelCd); //TL4790 08/11/00 lhReqStruct.SetDouble(be_id_index, dBillingEntityID); //End TL4790 08/11/00 // lstatus = SrvSetDouble(lhReqStruct, "collection_letter_id", -1) lhReqStruct.SetDouble(collection_letter_id_index, Collection_letter_id); lhReqStruct.SetShort(ActiveInd_index, 1); lhReqStruct.SetInt(lUpdtCnt_index, Convert.ToInt32(lUptCnt)); lhReqStruct.SetInt(lDisableFlg_index, Convert.ToInt32(ldisable_flg)); lhReqStruct.SetString(letter_line1_index, sLetter_line1); lhReqStruct.SetString(letter_line2_index, sLetter_line2); lhReqStruct.SetString(letter_line3_index, sLetter_line3); lhReqStruct.SetString(letter_line4_index, sLetter_line4); lhReqStruct.SetString(letter_line5_index, sLetter_line5); lhReqStruct.SetString(letter_line6_index, sLetter_line6); lhReqStruct.SetString(letter_line7_index, sLetter_line7); lhReqStruct.SetString(letter_line8_index, sLetter_line8); lhReqStruct.SetString(letter_line9_index, sLetter_line9); lhReqStruct.SetString(letter_line10_index, sLetter_line10); lhReqStruct.SetString(letter_line11_index, sLetter_line11); lhReqStruct.SetString(letter_line12_index, sLetter_line12); lhReqStruct.SetString(letter_line13_index, sLetter_line13); lhReqStruct.SetString(letter_line14_index, sLetter_line14); lhReqStruct.SetString(letter_line15_index, sLetter_line15); //Change management CCollection.DetailData = string.Format("{0}, {1}, {2},{3}", "Dunning level cd: " + dDunningLevelCd, "Billing Entity Id: " + dBillingEntityID, "Collection letter id: " + Collection_letter_id, "Disable flg: " + Convert.ToBoolean(Convert.ToInt32(ldisable_flg))); dmDcm.PerformStartUnitOfWork("lAddCollection"); //perform the script until it works or we exceed threshold nTries = 0; do { nCrmStatus = job.Perform(); nTries++; }while (!(nTries >= ProFitData.MAX_RETRIES || nCrmStatus)); //get the handle to the reply structure lhReply = job.Reply; if (lhReply == null) { //0 is an invalid handle ProFitData.gFRWKSVC.SysLog("CCollectionData::lCollectionData: Reply handle is 0", LogLevel.logDebug3); return(ProFitData.PFT_FAILURE); } //get handle to the status block of the script lhStatusBlock = lhReply.GetStruct(status_data_index); if (lhStatusBlock == null) { //0 is an invalid handle ProFitData.gFRWKSVC.SysLog("CCollectionData::lAddCollection - SrvGetStruct failed, handle = 0", LogLevel.logDebug3); return(ProFitData.PFT_FAILURE); } //get the status of the script sStatus = lhStatusBlock.GetString(status_index); //evaluate the status Instance lhItemEvent = null; int x = 0; switch (sStatus) { case "S": case "s": //success ProFitData.gFRWKSVC.SysLog("CCollectionData::lAddCollection - Script returned (S)uccess", LogLevel.logDebug3); break; case "Z": case "z": ProFitData.gFRWKSVC.SysLog("lRemove script returned no records", LogLevel.logDebug3); result = ProFitData.PFT_SCRIPT_NO_REPLY; return(result); case "F": case "f": lhStatusBlock = lhReply.GetStruct(status_data_index2); if (lhStatusBlock == null) { ProFitData.gFRWKSVC.SysLog("Invalid item handle returned from the database", LogLevel.logDebug3); ProFitData.gFRWKSVC.SysLog("hList: " + lhStatusBlock.ToString(), LogLevel.logDebug3); return(ProFitData.PFT_FAILURE); } x = 0; lhItemEvent = lhStatusBlock.GetList(subeventstatus_index, x); if (lhItemEvent == null) { do { ProFitData.gFRWKSVC.SysLog("Count = " + x.ToString(), LogLevel.logTrace4); ProFitData.gFRWKSVC.SysLog("operationname = " + lhItemEvent.GetString(operationname_index), LogLevel.logTrace4); ProFitData.gFRWKSVC.SysLog("operationStatus = " + lhItemEvent.GetString(operationStatus_index), LogLevel.logTrace4); ProFitData.gFRWKSVC.SysLog("TargetObjectName = " + lhItemEvent.GetString(TargetObjectName_index), LogLevel.logTrace4); ProFitData.gFRWKSVC.SysLog("TargetObjectValue = " + lhItemEvent.GetString(TargetObjectValue_index), LogLevel.logTrace4); x++; lhItemEvent = lhStatusBlock.GetList(subeventstatus_index2, x); }while (lhItemEvent != null); } result = ProFitData.PFT_FAILURE; return(result); default: ProFitData.gFRWKSVC.SysLog("lRemove script unknown error", LogLevel.logDebug3); result = ProFitData.PFT_SCRIPT_UNKNOWN_STATUS; return(result); } //return success to the calling function result = ProFitData.PFT_SUCCESS; //log normal termination ProFitData.gFRWKSVC.SysLog("CCollectionData::lAddCollection - Normal Termination", LogLevel.logAudit2); return(result); } catch (System.Exception _exception_) { Cerner.Foundations.Logging.ExceptionReporting.ReportException(_exception_); if (result == ProFitData.PFT_SUCCESS) { result = ProFitData.PFT_FAILURE; } //log abnormal termination ProFitData.gFRWKSVC.SysLog("CCollectionData::lRemove - abnormal termination", LogLevel.logAudit2); //clear the vb err object //dump procedure level variables ProFitData.gFRWKSVC.SysLog(" gfrwksvc.happ: " + ProFitData.gFRWKSVC.happ.ToString(), LogLevel.logTrace4); ProFitData.gFRWKSVC.SysLog("lTask: " + "4053060", LogLevel.logTrace4); ProFitData.gFRWKSVC.SysLog(" lRequest: " + "4053061", LogLevel.logTrace4); return(result); } finally { if (job != null) { job.Dispose(); job = null; } if (lhReply != null) { lhReply.Dispose(); lhReply = null; } if (lhReqStruct != null) { lhReqStruct.Dispose(); lhReqStruct = null; } if (lhStatusBlock != null) { lhStatusBlock.Dispose(); lhStatusBlock = null; } ////Change management CrmAccessDlg.GetInstance().EndScript(lUniqueId); dmDcm.PerformStopUnitOfWork(); } } }