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.OperationFile">
<Super>Ens.BusinessOperation</Super>
<TimeCreated>65002,31129.246913</TimeCreated>
<Parameter name="ADAPTER">
<Default>EnsLib.File.OutboundAdapter</Default>
</Parameter>
<Property name="Adapter">
<Type>EnsLib.File.OutboundAdapter</Type>
</Property>
<Parameter name="INVOCATION">
<Default>Queue</Default>
</Parameter>
<Method name="BatchRequest">
<FormalSpec>pRequest:EDIGW.BatchX,*pResponse:Ens.Response</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set ^TEST($I(^TEST))="OperationFile:"_pRequest.FILENUMBER
Set sBatchId = ..getBatchId(pRequest.FILENUMBER)
If sBatchId = "" Quit 0
Set iNumber = 100000000+sBatchId
Set status = ..Create999File(sBatchId,iNumber)
Set status = ..CreateOutputFile(sBatchId,iNumber,"Good")
Set status = ..CreateOutputFile(sBatchId,iNumber, "Bad")
//Set status=..CreateGoodFile(pRequest.FILENUMBER)
//Set status=..CreateBadFile(pRequest.FILENUMBER)
Quit $$$OK
]]></Implementation>
</Method>
<Method name="Create999File">
<FormalSpec>sBatchId:%String,iNum:%Integer</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set C=","
Set U="_"
Set dt=$Translate($ZDateTime($Horolog,8)," :","_")
Set sFileName = "test999"_U_iNum_U_dt_".999"
s tilde="~"
s delim = tilde_$CHAR(10)
Set objBATCH = ##class(CREPOS.BATCH999).%OpenId(sBatchId)
Set sISA = objBATCH.RawISA_delim
Set sGS = objBATCH.RawGS_delim
Set sGE = objBATCH.RawGE_delim
Set sIEA = objBATCH.RawIEA_delim
;
Set tSC = ..Adapter.PutString(sFileName, sISA)
Set tSC = ..Adapter.PutString(sFileName, sGS)
Set sAK1="AK1*HC*101*005010X224A2"_delim // Group Control Number
Set $P(sAK1,"*",3)=$P(sGS,"*",7) // Group Control Number
Set sST="ST*999*0001*005010X224A2"_delim
Set $P(sST,"*",3)=iNum
Set sST = sST_delim
Set sSE = "SE*0*0001"
Set $P(sSE,"*",3)=iNum
Set sSE = sSE_delim
Set tSC = ..Adapter.PutString(sFileName, sST)
Set tSC = ..Adapter.PutString(sFileName, sAK1)
Set iSegCounter=2
Set strId = ""
Set strWhere = " WHERE BATCH = '"_sBatchId_"'"
Set strSQL="SELECT %ID FROM CREPOS.TXNSET999"_strWhere
Set tStatement=##class(%SQL.Statement).%New()
Set qStatus=tStatement.%Prepare(strSQL)
If qStatus'=1 {Set ^TEST($I(^TEST))="%Prepare failed: "_qStatus QUIT qStatus}
Set objResultSet=tStatement.%Execute()
If objResultSet.%SQLCODE'=0 {
Set ^TEST($I(^TEST))="objResultSet.%SQLCODE: "_objResultSet.%SQLCODE
Set ^TEST($I(^TEST))="objResultSet.%Message: "_objResultSet.%Message
Quit 0
}
// Loop over TXNSET
set iTXcount=0
set iTXcountAccept=0
set iTXcount=0
set iTXcount=0
While objResultSet.%Next() {
set iTXcount=iTXcount+1
Set sTXNSETId = objResultSet.%GetData(1)
Set objTXNSET = ##class(CREPOS.TXNSET999).%OpenId(sTXNSETId)
Set sRC = objTXNSET.RawData
Set sAK2="AK2*837*3456*005010X224A2"_delim
Set $P(sAK2,"*",3)=objTXNSET.ST02TXNCTLNBR // Transaction Control Number
Set tSC = ..Adapter.PutString(sFileName, sAK2)
Set iSegCounter=iSegCounter+1
If objTXNSET.valStatus {
// Good Claim was Accepted
Set sIK5="IK5*A*000"_delim
Set tSC = ..Adapter.PutString(sFileName, sIK5)
Set iSegCounter=iSegCounter+1
set iTXcountAccept=iTXcountAccept+1
}
Else {
// Need to get data from TXNSETERR and create IK3 and IK4
}
}
Set sAK9="AK9*A*1*1*1*000"_delim
Set $P(sAK9,"*",3)=iTXcount
Set $P(sAK9,"*",5)=iTXcountAccept
Set tSC = ..Adapter.PutString(sFileName, sAK9)
Set iSegCounter=iSegCounter+1
Set $P(sSE,"*",2)=$I(iSegCounter)
Set tSC = ..Adapter.PutString(sFileName, sSE)
Set tSC = ..Adapter.PutString(sFileName, sGE)
Set tSC = ..Adapter.PutString(sFileName, sIEA)
Quit $$$OK
]]></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 strSQL="SELECT %ID FROM CREPOS.BATCH999"_strWhere
Set tStatement=##class(%SQL.Statement).%New()
Set qStatus=tStatement.%Prepare(strSQL)
If qStatus'=1 {Set ^TEST($I(^TEST))="%Prepare failed: "_qStatus QUIT qStatus}
Set objResultSet=tStatement.%Execute()
If objResultSet.%SQLCODE'=0 {
Set ^TEST($I(^TEST))="objResultSet.%SQLCODE: "_objResultSet.%SQLCODE
Set ^TEST($I(^TEST))="objResultSet.%Message: "_objResultSet.%Message
Quit strBatchId
}
While objResultSet.%Next() {
Set strBatchId = objResultSet.%GetData(1)
Quit
}
Quit strBatchId
]]></Implementation>
</Method>
<Method name="CreateOutputFile">
<FormalSpec>sBatchId:%String,iNum:%Integer,sType:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set C=","
Set U="_"
Set dt=$Translate($ZDateTime($Horolog,8)," :","_")
Set sFileName = sType_iNum_".edi"_U_dt
s tilde="~"
s delim = tilde_$CHAR(10)
Set objBATCH = ##class(CREPOS.BATCH999).%OpenId(sBatchId)
Set sISA = objBATCH.RawISA_delim
Set sGS = objBATCH.RawGS_delim
Set sGE = objBATCH.RawGE_delim
Set sIEA = objBATCH.RawIEA_delim
Set tSC = ..Adapter.PutString(sFileName, sISA)
Set tSC = ..Adapter.PutString(sFileName, sGS)
Set strId = ""
Set strWhere = " WHERE BATCH = '"_sBatchId_"'"_" and valStatus = '"_$s(sType="Good":1,1:0)_"'"
Set strSQL="SELECT RawData FROM CREPOS.TXNSET999"_strWhere
Set tStatement=##class(%SQL.Statement).%New()
Set qStatus=tStatement.%Prepare(strSQL)
If qStatus'=1 {Set ^TEST($I(^TEST))="%Prepare failed: "_qStatus QUIT qStatus}
Set objResultSet=tStatement.%Execute()
If objResultSet.%SQLCODE'=0 {
Set ^TEST($I(^TEST))="objResultSet.%SQLCODE: "_objResultSet.%SQLCODE
Set ^TEST($I(^TEST))="objResultSet.%Message: "_objResultSet.%Message
Quit 0
}
// Loop over TXNSET
set iTXcount=0
While objResultSet.%Next() {
set iTXcount=iTXcount+1
Set sRC = objResultSet.%GetData(1)
Set tSC = ..Adapter.PutString(sFileName, sRC)
}
Set $P(sGE,"*",2)=iTXcount
Set tSC = ..Adapter.PutString(sFileName, sGE)
Set tSC = ..Adapter.PutString(sFileName, sIEA)
//Add to CLAIMCOUNT
Set objClaimCount=##class(CREPOS.CLAIMCOUNT).%New()
Set objClaimCount.DATE = $P($H,",",1)
Set objClaimCount.TIME = $P($H,",",2)
Set objClaimCount.GS03APPRCVCD = $P(sGS,"*",4)
Set objClaimCount.GS08VERRLSINDID = $P(sGS,"*",9)
Set objClaimCount.ISA06SNDID = $P(sISA,"*",7)
Set objClaimCount.TXNCOUNTER = iTXcount
Set objClaimCount.OUTPUTFILE = $P(sFileName,".",1)_".edi"
Set objClaimCount.CLAIMSCOUNTER = iTXcount
Set tSC = objClaimCount.%Save()
Set ^TEST($I(^TEST))="objClaimCount SaveResult: "_tSC
Quit $$$OK
]]></Implementation>
</Method>
<Method name="CreateGoodFile">
<FormalSpec>sBatchId:%String,iNum:%Integer</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
/// bad15699102.edi bad15699103.edi bad15699104.edi bad15699105.edi bad15699106.edi bad15699103.edi
/// good15699101.edi good15699102.edi good15699103.edi good15699104.edi good15699105.edi good15699106.edi
Set C=","
Set U="_"
Set objBATCH = ##class(CREPOS.BATCH999).%OpenId(sBatchId)
Set sISA = objBATCH.RawISA_delim
Set sGS = objBATCH.RawGS_delim
Set sGE = objBATCH.RawGE_delim
Set sIEA = objBATCH.RawIEA_delim
Set dt=$Translate($ZDateTime($Horolog,8)," :","_")
Set sFileName = "test999"_U_dt_".999"
Set sBatchId = ..getBatchId(strFN)
If sBatchId = "" Quit 0
Quit $$$OK
]]></Implementation>
</Method>
<Method name="CreateBadFile">
<FormalSpec>sBatchId:%String,iNum:%Integer</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[ Quit $$$OK
]]></Implementation>
</Method>
<Method name="CreateCountFile">
<FormalSpec>sBatchId:%String,iNum:%Integer</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[ Quit $$$OK
]]></Implementation>
</Method>
<XData name="MessageMap">
<Data><![CDATA[
<MapItems>
<MapItem MessageType="EDIGW.BatchX">
<Method>BatchRequest</Method>
</MapItem>
</MapItems>
]]></Data>
</XData>
</Class>
</Export>