Summary Table
Categories |
Total Count |
PII |
0 |
URL |
0 |
DNS |
0 |
EKL |
0 |
IP |
0 |
PORT |
0 |
VsID |
0 |
CF |
0 |
AI |
0 |
VPD |
0 |
PL |
0 |
Other |
0 |
File Content
<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25">
<Class name="EDIGW.Utility">
<IncludeCode>EDIGW</IncludeCode>
<TimeCreated>64971,23209.481781</TimeCreated>
<Method name="CreateGUID">
<ClassMethod>1</ClassMethod>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[ Quit $SYSTEM.Util.CreateGUID()
]]></Implementation>
</Method>
<Method name="GetContactInfoKey">
<ClassMethod>1</ClassMethod>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[ Quit ..CreateGUID()
]]></Implementation>
</Method>
<Method name="GetEntityNameKey">
<ClassMethod>1</ClassMethod>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[ Quit ..CreateGUID()
]]></Implementation>
</Method>
<Method name="DEBUG">
<ClassMethod>1</ClassMethod>
<FormalSpec>who:%String,msg:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
If ($Get(who) = 0) Quit $$$OK
If ($Get(msg) = "") Quit $$$OK
Quit ..DebugTEST(msg)
]]></Implementation>
</Method>
<Method name="DebugBPL">
<ClassMethod>1</ClassMethod>
<FormalSpec>strMessage:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[ Quit ..DEBUG($$$DebugBPL,strMessage)
]]></Implementation>
</Method>
<Method name="DebugTEST">
<ClassMethod>1</ClassMethod>
<FormalSpec>strMessage:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
//Set ^TEST($I(^TEST))=$ZTIMESTAMP_" : "_$JOB_" : "_strMessage
Set ^TEST($I(^TEST))=$ZDateTime($NOW(),8,1,3)_" : "_$JOB_" : "_strMessage
Quit $$$OK
]]></Implementation>
</Method>
<Method name="GetTableColumns">
<ClassMethod>1</ClassMethod>
<FormalSpec>strTable:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
#dim tResult As %SQL.StatementResult
Set tStmt = ##class(%SQL.Statement).%New()
Set tSchema = $Piece(strTable,".")
Set tTableName = $Piece(strTable,".",2)
$$$ThrowOnError(tStmt.%Prepare("select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA = ? and TABLE_NAME = ?"))
Set tResult = tStmt.%Execute(tSchema,tTableName)
Set tCols = ""
While tResult.%Next(.tSC) {
Set tCols = tCols_$ListBuild(tResult.%Get("COLUMN_NAME"))
}
$$$ThrowOnError(tSC)
Quit tCols
]]></Implementation>
</Method>
<Method name="GetTXNTYPE">
<ClassMethod>1</ClassMethod>
<FormalSpec>strArg</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
If strArg [ "X222" Quit "837P"
If strArg [ "X223" Quit "837I"
If strArg [ "X224" Quit "837D"
Quit ""
]]></Implementation>
</Method>
<Method name="RenameFileDuplicate">
<ClassMethod>1</ClassMethod>
<FormalSpec>strFilename</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"RenameFileDuplicate: strFilename "_strFilename)
Set tFilename=##class(%File).GetFilename(strFilename) // name.ext
Set keepterm=1 // keep terminating slash
Set tPath=##class(%File).GetDirectory(strFilename,keepterm)_"duplicate/"
Set sc=##class(%File).Rename(strFilename,tPath_tFilename,.output)
Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"RenameFileDuplicate: Status "_sc)
Quit sc
]]></Implementation>
</Method>
<Method name="getNextISAGSCtrlNbr">
<ClassMethod>1</ClassMethod>
<FormalSpec>*isaCtrlNbr:%Integer,*gsCtrlNbr:%Integer</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
set isaCtrlNbr = 0
set gsCtrlNbr = 0
Set strSQL="select id from CREPOS.SYSCOUNTERS"
Set tStatement=##class(%SQL.Statement).%New()
Set qStatus=tStatement.%Prepare(strSQL)
If qStatus'=1 { Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"Utility:getNextISAGSCtrlNbr %Prepare failed : "_qStatus) QUIT qStatus}
Set objResultSet=tStatement.%Execute()
If objResultSet.%SQLCODE'=0 {
Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"Utility:getNextISAGSCtrlNbr objResultSet.%SQLCODE : "_objResultSet.%SQLCODE)
Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"Utility:getNextISAGSCtrlNbr objResultSet.%Message : "_objResultSet.%Message)
Quit $$$ERROR($$$GeneralError,"Unable to run SQL "_strSQL)
}
set recCount =0
While objResultSet.%Next() {
set recCount = recCount +1
Set objID = objResultSet.%GetData(1)
}
if recCount >1 QUIT $$$ERROR($$$GeneralError, "System Configuration Not Correct") //something seriously wrong here
set objSysCounter = ##class(CREPOS.SYSCOUNTERS).%OpenId(objID)
set isaCtrl = objSysCounter.ISACTRLNBR999
set gsCtrl = objSysCounter.GSCTRLNBR999
set isaCtrl = isaCtrl +1
set gsCtrl = gsCtrl +1
set objSysCounter.ISACTRLNBR999 = isaCtrl
set objSysCounter.GSCTRLNBR999 = gsCtrl
set tsc = objSysCounter.%Save()
if $$$ISOK(tsc) set isaCtrlNbr = isaCtrl, gsCtrlNbr=gsCtrl QUIT $$$OK
if $$$ISERR(tsc) QUIT tsc
QUIT $$$OK
]]></Implementation>
</Method>
<Method name="getNextFileId">
<ClassMethod>1</ClassMethod>
<FormalSpec>*fileNum:%Integer</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set fileNum = 0
Set strSQL = "select id from CREPOS.SYSCOUNTERS"
Set tStatement = ##class(%SQL.Statement).%New()
Set qStatus = tStatement.%Prepare(strSQL)
If $$$ISERR(qStatus) {
Set msg = $system.Status.GetOneErrorText(qStatus)
Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"Utility:getNextFileId %Prepare failed : "_msg)
Quit qStatus
}
Set objResultSet = tStatement.%Execute()
If objResultSet.%SQLCODE'=0 {
Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"Utility:getNextFileId objResultSet.%SQLCODE : "_objResultSet.%SQLCODE)
Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"Utility:getNextFileId objResultSet.%Message : "_objResultSet.%Message)
Quit $$$ERROR($$$GeneralError,"Unable to run SQL "_strSQL)
}
Set recCount = 0
While objResultSet.%Next() {
Set recCount = recCount +1
Set objID = objResultSet.%GetData(1)
}
If (recCount>1) Quit $$$ERROR($$$GeneralError,"System Configuration Not Correct") //something seriously wrong here
If (recCount=0) Quit $$$ERROR($$$GeneralError,"Table CREPOS.SYSCOUNTERS Not Set up")
Set objSysCounter = ##class(CREPOS.SYSCOUNTERS).%OpenId(objID)
Set fileId = objSysCounter.FILECTRLNBR
Set fileId = fileId + 1
Set objSysCounter.FILECTRLNBR = fileId
Set tsc = objSysCounter.%Save()
If $$$ISOK(tsc) set fileNum = fileId
QUIT tsc
]]></Implementation>
</Method>
<Method name="getOutputFileNames">
<ClassMethod>1</ClassMethod>
<FormalSpec>*goodFileName:%String,*badFileName:%String,*file999:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
set tsc = ##class(EDIGW.Utility).getNextFileId(.runId)
if tsc {
set fTimeStamp = $tr($ZDATETIME($NOW(),8,1,3)," :.","_")
// good{runid}.ediMMDDYYY_hhmmssmmm (3 digits miliseconds)
set goodFileName = "good"_runId_".edi"_fTimeStamp
// bad{runid}.ediMMDDYYY_hhmmssmmm (3 digits miliseconds)
set badFileName = "bad"_runId_".edi"_fTimeStamp
// 999_EMDEON_{runid}.X12
set file999 = "999_"_"EMDEON_"_runId_".X12"
}
quit tsc
]]></Implementation>
</Method>
<Method name="getBatchId">
<ClassMethod>1</ClassMethod>
<FormalSpec>strFN:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
Set strBatchId = ""
Set strWhere = " WHERE FILE_NUMBER = '"_strFN_"'"
Set strOrder = " ORDER BY %ID DESC"
Set strSQL="SELECT %ID FROM CREPOS.BATCH999"_strWhere_strOrder
Set tStatement=##class(%SQL.Statement).%New()
Set qStatus=tStatement.%Prepare(strSQL)
If qStatus'=1 { Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"Utility:getBatchId %Prepare failed : "_qStatus) QUIT qStatus}
Set objResultSet=tStatement.%Execute()
If objResultSet.%SQLCODE'=0 {
Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"Utility:getBatchId objResultSet.%SQLCODE : "_objResultSet.%SQLCODE)
Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"Utility:getBatchId objResultSet.%Message : "_objResultSet.%Message)
Quit $$$ERROR($$$GeneralError,"Unable to run SQL "_strSQL)
}
While objResultSet.%Next() {
Set strBatchId = objResultSet.%GetData(1)
Quit
}
Quit strBatchId
]]></Implementation>
</Method>
<Method name="SourceFNGoodFileName">
<ClassMethod>1</ClassMethod>
<FormalSpec>strSource</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
// Refactored to send goodFileName as that is being stored in Oracle currently that is in production
Set strFN = $P(strSource,$Char(13),1)
set strFN = ##class(%File).GetFilename(strFN)
Set goodFile = ""
Set strWhere = " WHERE FILE_NUMBER = '"_strFN_"'"
Set strOrder = " ORDER BY %ID DESC"
Set strSQL="SELECT GOODFILE FROM CREPOS.BATCH999"_strWhere_strOrder
Set tStatement=##class(%SQL.Statement).%New()
Set qStatus=tStatement.%Prepare(strSQL)
If qStatus'=1 { Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"Utility:SourceFNGoodFileName %Prepare failed : "_qStatus) QUIT qStatus}
Set objResultSet=tStatement.%Execute()
If objResultSet.%SQLCODE'=0 {
Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"Utility:SourceFNGoodFileName objResultSet.%SQLCODE : "_objResultSet.%SQLCODE)
Do ##class(EDIGW.Utility).DEBUG($$$DebugUtility,"Utility:SourceFNGoodFileName objResultSet.%Message : "_objResultSet.%Message)
Quit $$$ERROR($$$GeneralError,"Unable to run SQL "_strSQL)
}
While objResultSet.%Next() {
Set goodFile = objResultSet.%GetData(1)
Quit
}
Quit goodFile
]]></Implementation>
</Method>
<Method name="SourceFN">
<ClassMethod>1</ClassMethod>
<FormalSpec>strSource</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
Set strFN = $P(strSource,$Char(13),1)
set strFN = ##class(%File).GetFilename(strFN)
Quit strFN
]]></Implementation>
</Method>
<Method name="TestFilename">
<Description>
If SQLCODE=0 return 0 because strFilename already exists in EREPOS.INTCHG_CONTROL</Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>strFilename</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
&sql(SELECT FILE_NUMBER from CREPOS.INTCHG_CONTROL where FILE_NUMBER = :strFilename)
Quit $Select(SQLCODE=0:0, 1:1)
]]></Implementation>
</Method>
</Class>
</Export>