VA-FOIA-CACHE-OBJECTS-USAGE-AND-CODE-as-of-06

VA FOIA CACHE OBJECTS USAGE AND CODE as of 06-2012
>D ^%RFIND
Find routine lines that contain at least one of a set of strings
1. Search For: ##class(
2. Search For:
Exact Upper/Lowercase Match? Yes => Yes
Show all searched routines? Yes => no
Routine(s): *
Routine(s):
Display results on
Device:
Right margin: 80 =>
AXVRTN.INT
AXVRTN+4
AXVRTN+8
;##class(visn.vApps)
;##class(visn.vRoutine)
ORRDI1.INT
PARSE+5
PARSE+6
;S STATUS=##class(%XML.TextReader).ParseStream(STREAM,.READER)
S STATUS=##class(%XML.TextReader).ParseStream(STREAM,.READER,,,,,1)
PSSFDBRT.INT
GETREADR+5 S AREADER=##class(%XML.TextReader).%New("%XML.TextReader")
GETREADR+6 D ##class(%XML.TextReader).ParseStream(RESTOBJ.HttpResponse.Data,.AR
EADER)
PSSHTTP.INT
PEPSPOST+34 . SET PSS("result")=##class(gov.va.med.pre.ws.XMLHandler).getHandleT
oXmlDoc(PSS("restObject").HttpResponse.Data, .DOCHAND)
XOBWD.INT
GENPORT+4
ADDPROXY+8
ADDPROXY+14
REGISTER+13
WSDL+4
IF ##class(%File).Exists(XOBWSDL) DO
SET XOBINFO=##class(xobw.WsdlHandler).getInfoFromFile(XOBWSDL)
SET XOBREADR=##class(%SOAP.WSDL.Reader).%New()
. SET XOBCDEF=##class(%Dictionary.ClassDefinition).%OpenId(XOBCLASS)
SET XOBSTRM=##class(%FileCharacterStream).%New()
XOBWENV.INT
KIDSCHK+4
IF '##class(%File).DirectoryExists(XOBDIR) DO
KIDSCHK+7
IF '##class(%File).Exists(XOBPATH) DO QUIT 0
QUIT 0
XOBWLIB.INT
GETFAC+3
QUIT ##class(xobw.WebServiceProxyFactory).%New(XOBWSN)
GETPROXY+4 QUIT ##class(xobw.WebServiceProxyFactory).getWebServiceProxy(XOBWSN,
XOBSRVR)
GETRESTF+3 QUIT ##class(xobw.RestRequestFactory).%New(XOBWSN)
GETREST+4
QUIT ##class(xobw.RestRequestFactory).getRestRequest(XOBWSN,XOBSRVR)
EOSTAT+3
QUIT ##class(xobw.error.ObjectError).%New(XOBSO)
EOHTTP+3
QUIT ##class(xobw.error.HttpError).%New(XOBHRO)
XOBWLIB1.INT
ATTACHDR+2 SET INFOARR=##class(%Library.ArrayOfDataTypes).%New()
ATTACHDR+10 DO ##class(xobw.VistaInfoHeader).attachHeader(XOBPROXY,INFOARR)
EOFAC+6
. SET XOBERR=##class(xobw.error.SoapError).%New(XOBPROXY.SoapFault)
EOFAC+12
. SET XOBERR=##class(xobw.error.ObjectError).%New(.%objlasterror)
EOFAC+22
. SET XOBERR=##class(xobw.error.DialogError).%New(XOBCODE,$$EZBLD^DI
ALOG(XOBCODE,.XOBPARMS))
EOFAC+26
SET XOBERR=##class(xobw.error.BasicError).%New($ECODE,$$EC^%ZOSV())
IMPORT+10
IF ##class(%File).Exists(XOBPATH) DO
XOBWSSL.INT
CHKNAME+4
DISPLAY+5
GETCFG+3
GETCFG+7
SET RS=##class(%ResultSet).%New("%Net.SSL.Configuration:ListNames")
SET RS=##class(%ResultSet).%New("%Net.SSL.Configuration:ListNames")
SET RS=##class(%ResultSet).%New("%Net.SSL.Configuration:Extent")
. SET CFG=##class(%Net.SSL.Configuration).%OpenId(RS.Data("ID"))
XOBWU1.INT
BUILD+3
SET XOBSRVR=##class(xobw.WebServer).%OpenId(XOBDA)
XOBWUS1.INT
CLSVAL+10
SET XOBWCDEF=##class(%Dictionary.ClassDefinition).%OpenId(XOBCLASS)
xobw.RestRequest.1.INT
zGet+1
quit ##class(%Net.HttpRequest)%this.Get($zobjval(,/*restServiceConte
xt*/29,0,3,29)_resource, .test)
zHead+1
quit ##class(%Net.HttpRequest)%this.Head($zobjval(,/*restServiceCont
ext*/29,0,3,29)_resource, .test)
zPost+1
quit ##class(%Net.HttpRequest)%this.Post($zobjval(,/*restServiceCont
ext*/29,0,3,29)_resource, .test)
zPut+1
quit ##class(%Net.HttpRequest)%this.Put($zobjval(,/*restServiceConte
xt*/29,0,3,29)_resource, .test)
zRead+5
Set data=##class(%Stream.GlobalBinary).%New()
zRead+105
Set
datastream=##class(%Stream.GlobalBinary).%New()
zSend+110
Set ..HttpResponse=##class(%Net.HttpResponse).%New()
zEntityBodyDelete+2 Quit $select(streamvalue="":$$Error^%apiOBJ(5813),1:##class(
"%Library.GlobalBinaryStream").%Delete($select(streamvalue="":"",1:$
listbuild($listget(streamvalue),$listget(streamvalue,2),""))))
zEntityBodyGetSwizzled+2 Set oref=##class("%Library.GlobalBinaryStream").%Open($
select($zobjval(,/*EntityBody*/3,0,3,3)="":"",1:$listbuild($listget(
$zobjval(,/*EntityBody*/3,0,3,3)),$listget($zobjval(,/*EntityBody*/3
,0,3,3),2),""))) If oref="" Quit ""
zEntityBodyOpen+2
Set object=##class("%Library.GlobalBinaryStream").%New("")
zEntityBodyOpen+4
Set object=##class("%Library.GlobalBinaryStream").%Open($sele
ct(streamvalue="":"",1:$listbuild($listget(streamvalue),$listget(str
eamvalue,2),"")))
zHttpResponseNewObject+1 Set newobject=##class(%Net.HttpResponse).%New("") If ne
wobject="" Quit ""
xobw.RestRequestFactory.1.INT
%OnNew+1
set webServiceId=##class(xobw.WebServiceMetadata).getWebServiceId(we
bServiceName)
%OnNew+3
do ##class(xobw.error.DialogError).forceError(186006_"^"_webServ
iceName)
%OnNew+5
set ..webServiceMetadata=##class(xobw.WebServiceMetadata).%OpenId(we
bServiceId)
zcreateRestRequest+2
do ##class(xobw.error.DialogError).forceError(186007)
zcreateRestRequest+4 set restRequest=##class(xobw.RestRequest).%New()
zcreateRestRequest+7
set webServerId=##class(xobw.WebServer).getWebServerId(we
bServerName)
zcreateRestRequest+9
do ##class(xobw.error.DialogError).forceError(186005_"
^"_webServerName)
zcreateRestRequest+11
set webServer=##class(xobw.WebServer).%OpenId(webServerI
d)
zcreateRestRequest+14
do ##class(xobw.error.DialogError).forceError(186002_"^
"_webServer.name)
zgetRestRequest+1 set factory=##class(xobw.RestRequestFactory).%New(webServiceNa
me)
zsetUpCredentials+1 set authorizedWebServiceId=##class(xobw.WebServicesAuthorize
d).getAuthorizedWebServiceId(webServer,..webServiceMetadata)
zsetUpCredentials+4
do ##class(xobw.error.DialogError).forceError(186003_"^"_..
webServiceMetadata.name_"^"_webServer.name)
zsetUpCredentials+6 set authorizedWebService=##class(xobw.WebServicesAuthorized)
.%OpenId(authorizedWebServiceId)
zsetUpCredentials+9
do ##class(xobw.error.DialogError).forceError(186004_"^"_..
webServiceMetadata.name_"^"_webServer.name)
zwebServiceMetadataGetSwizzled+2 Set oref=##class(xobw.WebServiceMetadata).%Open
($select($zobjval(,/*webServiceMetadata*/1,0,3,1)="":"",1:$listbuild
($zobjval(,/*webServiceMetadata*/1,0,3,1)_""))) If oref="" Quit ""
zwebServiceMetadataNewObject+1 Set newobject=##class(xobw.WebServiceMetadata).%N
ew("") If newobject="" Quit ""
xobw.VistaInfoHeader.1.INT
zWriteHeader+6 If '$isobject($get(namespaces)) Set namespaces=##class(%XML.Names
paces).%New()
zXMLDTD+1
Quit ##class(%XML.Implementation).XMLDTD("xobw.VistaInfoHeader",.top
,.format,.input,.dtdlist)
zXMLExportToStream+3
Set export=##class(%Library.FileCharacterStream).%New()
zXMLExportToStream+12
Set stream=##class(%Library.FileCharacterStream).%New()
zXMLGetSchemaImports+1 Quit ##class(%XML.Implementation).XMLGetSchemaImports("xo
bw.VistaInfoHeader",.imports,.classes)
XMLLOOP+39
Set data="" If '##class(%XML.ImportHandler).Seri
alizeNode(tree,ref,0,0,.data) Goto XMLImportErr
zXMLNew+1
Quit (##class(xobw.VistaInfoHeader).%New())
zXMLSchema+1 Quit ##class(%XML.Implementation).XMLSchema("xobw.VistaInfoHeader",
top,format,namespacePrefix,input,refOnly,.schema)
zattachHeader+1 set hdr=##class(xobw.VistaInfoHeader).%New()
zFaultNewObject+1 Set newobject=##class(%SOAP.Fault).%New("") If newobject="" Qu
it ""
zvistaInfoBuildValueArray+1 Quit ##class(%Collection.ArrayOfDT).BuildValueArray(
value,.array)
zvistaInfoGetSwizzled+1 Set oref=##class(%Collection.ArrayOfDT).%New() If oref="
" Quit ""
xobw.WebServer.1.INT
%1Check+1
Set exists=##class(xobw.WebServer).%ExistsId(id) Quit:'exists $selec
t('lockonly:$$Error^%apiOBJ(5797,"xobw.WebServer"_","_"",id),1:1) Se
t status=##class(xobw.WebServer).%LockId(id,1) Quit:('status) status
If 'lockonly { Set exists=##class(xobw.WebServer).%ExistsId(id) Do
##class(xobw.WebServer).%UnlockId(id,1,0) Quit $select('exists:$$Err
or^%apiOBJ(5797,"xobw.WebServer"_","_"",id),1:1) } Else { Do ##class
(xobw.WebServer).%UnlockId(id,1,0) Quit 1 } }
%ComposeOid+1 Quit $Select(##class(xobw.WebServer).%ExistsId(id):$select(id="":"
",1:$listbuild(id_"","xobw.WebServer")),1:"")
%Delete+8
Set sc=##class("xobw.WebServicesAuthorized").webServerRefRExec(.qh,i
d) Goto:('sc) %DeleteEnd
%Delete+9
For Set sc=##class("xobw.WebServicesAuthorized").webServerRefRFetch
(.qh,0,.robjs,.fc,.end) Do Quit:('sc)||(end)
%Delete+10
. For ptr=1:1:fc Set sc=##class("xobw.WebServicesAuthorized").%Delet
e($select($list(robjs,ptr)="":"",1:$listbuild($list(robjs,ptr)_"")),
concurrency) Quit:('sc)
%Delete+11 Do ##class("xobw.WebServicesAuthorized").webServerRefRClose(.qh)
%Delete+16 Set sc=##class(xobw.WebServer).%DeleteData(id,concurrency)
%DeleteExtent+4 Set sc=##class(xobw.WebServer).ExtentExecute(.qh) Quit:('sc) sc
%DeleteExtent+5 For Set sc=##class(xobw.WebServer).ExtentFetch(.qh,.row,.atend)
Quit:$select(row="":1,('sc):1,1:0) Set id=$listget(row) If id'=""
Set sc=##class(xobw.WebServer).%Delete($listbuild(id),concurrency) S
et instancecount=instancecount+1 Set:(+sc) deletecount=deletecount+1
Quit:atend
%DeleteExtent+6 Do ##class(xobw.WebServer).ExtentClose(qh)
%DeleteExtent+7 If instancecount = deletecount { do ##class(xobw.WebServer).%Kil
lExtent() set sc = 1 } else { set sc = $$Error^%apiOBJ(5764,"xobw.We
bServer") }
%DeleteId+1 Quit ##class(xobw.WebServer).%Delete($select(id="":"",1:$listbuild(i
d_"")),.concurrency) }
%Exists+1
Quit $isobject(##class(xobw.WebServer).%Open(oid,0)) }
%ExistsId+1 Quit ##class(xobw.WebServer).%Exists($listbuild(id)) }
%KillExtent+1 if ($s($d(^oddCOM("xobw.WebServicesAuthorized","m","%KillExtent",4
4))#2:^(44),$d(^oddCOM($g(^(2),"xobw.WebServicesAuthorized"),"m","%K
illExtent",44))#2:^(44),1:$s($d(^oddDEF($g(^oddCOM("xobw.WebServices
Authorized","m","%KillExtent",2),"xobw.WebServicesAuthorized"),"m","
%KillExtent",44))#2:^(44),1:$g(^%qCacheObjectKey(1,"m",44))))) && ($
Data(^rOBJ($zutil(135,23,"xobw.WebServicesAuthorized")_"."_(+0)))) {
set sc=##class(xobw.WebServicesAuthorized).%KillExtent() }
%KillExtent+3 set sc=##class(xobw.WebServer).%PurgeIndices()
%KillExtent+4 If (+sc) { Set sc=##class(xobw.WebServer).%KillExtentData() }
%GetLock+1 Kill:'$TLEVEL %0CacheLock If $increment(%0CacheLock("xobw.WebServer"
))>$zutil(115,6) { If (+##class(xobw.WebServer).%LockExtent(shared))
{ Quit 2 } Else { Quit 0 } } Quit:(+##class(xobw.WebServer).%LockId
(id,shared)) 1 Quit 0 }
%OpenId+1
Quit ##class(xobw.WebServer).%Open($select(id="":"",1:$listbuild(id_
"")),.concurrency,.sc) }
zcheckWebServicesAvailability+3 set result=##class(%Library.ListOfDataTypes).%Ne
w()
zcheckWebServicesAvailability+18
set
webService=##class(xobw.WebServiceMetadat
a).%OpenId(authorizedWebService.webServiceIen)
zcheckWebServicesAvailability+21
if
##class(xobw.WebServiceMetadata).checkRe
sourceAvailability(%this,authorizedWebService,webService,.httpStatus
Code) {
zgetWebServerId+2
do ##class(xobw.error.DialogError).forceError(186005_"^<em
pty string>")
zsetUpHttpRequest+2
do ##class(xobw.error.DialogError).forceError(186002_"^"_$z
objval(,/*name*/7,0,3,7)_" (SSL is disabled on VMS)")
zauthorizedWebServicesGetSwizzl+4
Set oref=##class("%Library.RelationshipObject
").%Open(oid) If oref="" Quit ""
zauthorizedWebServicesGetSwizzl+5 } Else { Set oref=##class("%Library.Relationsh
ipObject").%New($listbuild("xobw.WebServicesAuthorized","webServerRe
f",+%this,"children",1,1)) If oref="" Quit "" }
zauthorizedWebServicesNewObject+1 Set newobject=##class("%Library.RelationshipOb
ject").%New($listbuild("xobw.WebServicesAuthorized","webServerRef",+
%this,"children",1,1)) If newobject="" Quit ""
SPInnerLoop Set rc=##class(xobw.WebServer).ExtentFetch(.qHandle,.row,.atend)
zienIndexCheck+1 s id=K1,exists=##class(xobw.WebServer).%ExistsId(id) q:'exists
$s('lockonly:$$Error^%apiOBJ(5797,"xobw.WebServer","ienIndex",id),1:
1) s status=##class(xobw.WebServer).%LockId(id,1) q:('status) status
if 'lockonly { s exists=##class(xobw.WebServer).%ExistsId(id) d ##c
lass(xobw.WebServer).%UnlockId(id,1,0) quit $s('exists:$$Error^%apiO
BJ(5797,"xobw.WebServer","ienIndex",id),1:1) } else { d ##class(xobw
.WebServer).%UnlockId(id,1,0) q 1 } }
zienIndexDelete+1 Quit ##class(xobw.WebServer).%DeleteId(.K1,concurrency) }
zienIndexExists+1 s id=K1 q ##class(xobw.WebServer).%ExistsId(K1)
zienIndexOpen+1 Quit ##class(xobw.WebServer).%OpenId(.K1,concurrency,.sc) }
xobw.WebServiceMetadata.1.INT
%1Check+1
Set exists=##class(xobw.WebServiceMetadata).%ExistsId(id) Quit:'exis
ts $select('lockonly:$$Error^%apiOBJ(5797,"xobw.WebServiceMetadata"_
","_"",id),1:1) Set status=##class(xobw.WebServiceMetadata).%LockId(
id,1) Quit:('status) status If 'lockonly { Set exists=##class(xobw.W
ebServiceMetadata).%ExistsId(id) Do ##class(xobw.WebServiceMetadata)
.%UnlockId(id,1,0) Quit $select('exists:$$Error^%apiOBJ(5797,"xobw.W
ebServiceMetadata"_","_"",id),1:1) } Else { Do ##class(xobw.WebServi
ceMetadata).%UnlockId(id,1,0) Quit 1 } }
%ComposeOid+1 Quit $Select(##class(xobw.WebServiceMetadata).%ExistsId(id):$selec
t(id="":"",1:$listbuild(id_"","xobw.WebServiceMetadata")),1:"")
%Delete+11 Set sc=##class(xobw.WebServiceMetadata).%DeleteData(id,concurrency)
%DeleteExtent+4 Set sc=##class(xobw.WebServiceMetadata).ExtentExecute(.qh) Quit:
('sc) sc
%DeleteExtent+5 For Set sc=##class(xobw.WebServiceMetadata).ExtentFetch(.qh,.ro
w,.atend) Quit:$select(row="":1,('sc):1,1:0) Set id=$listget(row) I
f id'="" Set sc=##class(xobw.WebServiceMetadata).%Delete($listbuild(
id),concurrency) Set instancecount=instancecount+1 Set:(+sc) deletec
ount=deletecount+1 Quit:atend
%DeleteExtent+6 Do ##class(xobw.WebServiceMetadata).ExtentClose(qh)
%DeleteExtent+7 If instancecount = deletecount { do ##class(xobw.WebServiceMetad
ata).%KillExtent() set sc = 1 } else { set sc = $$Error^%apiOBJ(5764
,"xobw.WebServiceMetadata") }
%DeleteId+1 Quit ##class(xobw.WebServiceMetadata).%Delete($select(id="":"",1:$li
stbuild(id_"")),.concurrency) }
%Exists+1
Quit $isobject(##class(xobw.WebServiceMetadata).%Open(oid,0)) }
%ExistsId+1 Quit ##class(xobw.WebServiceMetadata).%Exists($listbuild(id)) }
%KillExtent+2 set sc=##class(xobw.WebServiceMetadata).%PurgeIndices()
%KillExtent+3 If (+sc) { Set sc=##class(xobw.WebServiceMetadata).%KillExtentData
() }
%GetLock+1 Kill:'$TLEVEL %0CacheLock If $increment(%0CacheLock("xobw.WebService
Metadata"))>$zutil(115,6) { If (+##class(xobw.WebServiceMetadata).%L
ockExtent(shared)) { Quit 2 } Else { Quit 0 } } Quit:(+##class(xobw.
WebServiceMetadata).%LockId(id,shared)) 1 Quit 0 }
%OpenId+1
Quit ##class(xobw.WebServiceMetadata).%Open($select(id="":"",1:$list
build(id_"")),.concurrency,.sc) }
zXMLDTD+1
Quit ##class(%XML.Implementation).XMLDTD("xobw.WebServiceMetadata",.
top,.format,.input,.dtdlist)
zXMLExportToStream+3
Set export=##class(%Library.FileCharacterStream).%New()
zXMLExportToStream+12
Set stream=##class(%Library.FileCharacterStream).%New()
zXMLGetSchemaImports+1 Quit ##class(%XML.Implementation).XMLGetSchemaImports("xo
bw.WebServiceMetadata",.imports,.classes)
XMLLOOP+14
Set data="" If '##class(%XML.ImportHandler).SerializeN
ode(tree,ref,0,0,.data) Goto XMLImportErr
XMLLOOP+32
Set data="" If '##class(%XML.ImportHandler).SerializeN
ode(tree,ref,0,0,.data) Goto XMLImportErr
XMLLOOP+50
Set data="" If '##class(%XML.ImportHandler).SerializeN
ode(tree,ref,0,0,.data) Goto XMLImportErr
XMLLOOP+68
Set data="" If '##class(%XML.ImportHandler).SerializeN
ode(tree,ref,0,0,.data) Goto XMLImportErr
XMLLOOP+85
Set data="" If '##class(%XML.ImportHandler).SerializeN
ode(tree,ref,0,0,.data) Goto XMLImportErr
Set data="" If '##class(%XML.ImportHandler).SerializeN
ode(tree,ref,0,0,.data) Goto XMLImportErr
zXMLNew+1
Quit (##class(xobw.WebServiceMetadata).%New())
zXMLSchema+1 Quit ##class(%XML.Implementation).XMLSchema("xobw.WebServiceMetadat
a",top,format,namespacePrefix,input,refOnly,.schema)
zcheckResourceAvailability+1 set httpRequest=##class(%Net.HttpRequest).%New()
zgetWebServiceId+2
do ##class(xobw.error.DialogError).forceError(186006_"^<e
mpty string>")
SPInnerLoop Set rc=##class(xobw.WebServiceMetadata).ExtentFetch(.qHandle,.row,.a
tend)
zienIndexCheck+1 s id=K1,exists=##class(xobw.WebServiceMetadata).%ExistsId(id) q
:'exists $s('lockonly:$$Error^%apiOBJ(5797,"xobw.WebServiceMetadata"
,"ienIndex",id),1:1) s status=##class(xobw.WebServiceMetadata).%Lock
Id(id,1) q:('status) status if 'lockonly { s exists=##class(xobw.Web
ServiceMetadata).%ExistsId(id) d ##class(xobw.WebServiceMetadata).%U
nlockId(id,1,0) quit $s('exists:$$Error^%apiOBJ(5797,"xobw.WebServic
eMetadata","ienIndex",id),1:1) } else { d ##class(xobw.WebServiceMet
adata).%UnlockId(id,1,0) q 1 } }
zienIndexDelete+1 Quit ##class(xobw.WebServiceMetadata).%DeleteId(.K1,concurrenc
y) }
zienIndexExists+1 s id=K1 q ##class(xobw.WebServiceMetadata).%ExistsId(K1)
zienIndexOpen+1 Quit ##class(xobw.WebServiceMetadata).%OpenId(.K1,concurrency,.s
c) }
XMLLOOP+102
xobw.WebServiceProxyFactory.1.INT
%OnNew+1
set webServiceId=##class(xobw.WebServiceMetadata).getWebServiceId(we
bServiceName)
%OnNew+3
do ##class(xobw.error.DialogError).forceError(186006_"^"_webServ
iceName)
%OnNew+5
set ..webServiceMetadata=##class(xobw.WebServiceMetadata).%OpenId(we
bServiceId)
zgetProxy+4
do ##class(xobw.error.DialogError).forceError(186007)
zgetProxy+6 xecute "set %proxy=##class("_..webServiceMetadata.proxyClassName_")
.%New()"
zgetProxy+8
set webServerId=##class(xobw.WebServer).getWebServerId(webServerNa
me)
zgetProxy+10
do ##class(xobw.error.DialogError).forceError(186005_"^"_webSe
rverName)
zgetProxy+12
set webServer=##class(xobw.WebServer).%OpenId(webServerId)
zgetProxy+15
do ##class(xobw.error.DialogError).forceError(186002_"^"_webServ
er.name)
zgetWebServiceProxy+1 set factory=##class(xobw.WebServiceProxyFactory).%New(webS
erviceName)
zsetUpCredentials+1 set authorizedWebServiceId=##class(xobw.WebServicesAuthorize
d).getAuthorizedWebServiceId(webServer,..webServiceMetadata)
zsetUpCredentials+4
do ##class(xobw.error.DialogError).forceError(186003_"^"_..
webServiceMetadata.name_"^"_webServer.name)
zsetUpCredentials+6 set authorizedWebService=##class(xobw.WebServicesAuthorized)
.%OpenId(authorizedWebServiceId)
zsetUpCredentials+9
do ##class(xobw.error.DialogError).forceError(186004_"^"_..
webServiceMetadata.name_"^"_webServer.name)
zsetUpLocation+2
do ##class(xobw.error.DialogError).forceError(186002_"^"_webSe
rver.name_" (SSL is disabled on VMS)")
zwebServiceMetadataGetSwizzled+2 Set oref=##class(xobw.WebServiceMetadata).%Open
($select($zobjval(,/*webServiceMetadata*/1,0,3,1)="":"",1:$listbuild
($zobjval(,/*webServiceMetadata*/1,0,3,1)_""))) If oref="" Quit ""
zwebServiceMetadataNewObject+1 Set newobject=##class(xobw.WebServiceMetadata).%N
ew("") If newobject="" Quit ""
xobw.WebServicesAuthorized.1.INT
%1Check+1
Set exists=##class(xobw.WebServicesAuthorized).%ExistsId(id) Quit:'e
xists $select('lockonly:$$Error^%apiOBJ(5797,"xobw.WebServicesAuthor
ized"_","_"",id),1:1) Set status=##class(xobw.WebServicesAuthorized)
.%LockId(id,1) Quit:('status) status If 'lockonly { Set exists=##cla
ss(xobw.WebServicesAuthorized).%ExistsId(id) Do ##class(xobw.WebServ
icesAuthorized).%UnlockId(id,1,0) Quit $select('exists:$$Error^%apiO
BJ(5797,"xobw.WebServicesAuthorized"_","_"",id),1:1) } Else { Do ##c
lass(xobw.WebServicesAuthorized).%UnlockId(id,1,0) Quit 1 } }
%ComposeOid+1 Quit $Select(##class(xobw.WebServicesAuthorized).%ExistsId(id):$se
lect(id="":"",1:$listbuild(id_"","xobw.WebServicesAuthorized")),1:""
)
%Delete+11 Set sc=##class(xobw.WebServicesAuthorized).%DeleteData(id,concurrenc
y)
%DeleteExtent+4 Set sc=##class(xobw.WebServicesAuthorized).ExtentExecute(.qh) Qu
it:('sc) sc
%DeleteExtent+5 For Set sc=##class(xobw.WebServicesAuthorized).ExtentFetch(.qh,
.row,.atend) Quit:$select(row="":1,('sc):1,1:0) Set id=$listget(row
) If id'="" Set sc=##class(xobw.WebServicesAuthorized).%Delete($list
build(id),concurrency) Set instancecount=instancecount+1 Set:(+sc) d
eletecount=deletecount+1 Quit:atend
%DeleteExtent+6 Do ##class(xobw.WebServicesAuthorized).ExtentClose(qh)
%DeleteExtent+7 If instancecount = deletecount { do ##class(xobw.WebServicesAuth
orized).%KillExtent() set sc = 1 } else { set sc = $$Error^%apiOBJ(5
764,"xobw.WebServicesAuthorized") }
%DeleteId+1 Quit ##class(xobw.WebServicesAuthorized).%Delete($select(id="":"",1:
$listbuild(id_"")),.concurrency) }
%Exists+1
Quit $isobject(##class(xobw.WebServicesAuthorized).%Open(oid,0)) }
%ExistsId+1 Quit ##class(xobw.WebServicesAuthorized).%Exists($listbuild(id)) }
%KillExtent+2 set sc=##class(xobw.WebServicesAuthorized).%PurgeIndices()
%KillExtent+3 If (+sc) { Set sc=##class(xobw.WebServicesAuthorized).%KillExtentD
ata() }
%GetLock+1 Kill:'$TLEVEL %0CacheLock If $increment(%0CacheLock("xobw.WebService
sAuthorized"))>$zutil(115,6) { If (+##class(xobw.WebServicesAuthoriz
ed).%LockExtent(shared)) { Quit 2 } Else { Quit 0 } } Quit:(+##class
(xobw.WebServicesAuthorized).%LockId(id,shared)) 1 Quit 0 }
%OpenId+1
Quit ##class(xobw.WebServicesAuthorized).%Open($select(id="":"",1:$l
istbuild(id_"")),.concurrency,.sc) }
zXMLDTD+1
Quit ##class(%XML.Implementation).XMLDTD("xobw.WebServicesAuthorized
",.top,.format,.input,.dtdlist)
zXMLExportToStream+3
Set export=##class(%Library.FileCharacterStream).%New()
zXMLExportToStream+12
Set stream=##class(%Library.FileCharacterStream).%New()
zXMLGetSchemaImports+1 Quit ##class(%XML.Implementation).XMLGetSchemaImports("xo
bw.WebServicesAuthorized",.imports,.classes)
XMLLOOP+15
Set data="" If '##class(%XML.ImportHandler).SerializeN
ode(tree,ref,0,0,.data) Goto XMLImportErr
XMLLOOP+49
Set data="" If '##class(%XML.ImportHandler).SerializeN
ode(tree,ref,0,0,.data) Goto XMLImportErr
zXMLNew+1
Quit (##class(xobw.WebServicesAuthorized).%New())
zXMLSchema+1 Quit ##class(%XML.Implementation).XMLSchema("xobw.WebServicesAuthor
ized",top,format,namespacePrefix,input,refOnly,.schema)
zwebServerRefGetSwizzled+3 Set oref=##class("xobw.WebServer").%Open(oid) If oref
="" Quit ""
zwebServerRefNewObject+1 Set newobject=##class("xobw.WebServer").%New("") If new
object="" Quit ""
SPInnerLoop Set rc=##class(xobw.WebServicesAuthorized).ExtentFetch(.qHandle,.row
,.atend)
zienIndexCheck+1 s id=K1_"||"_K2,exists=##class(xobw.WebServicesAuthorized).%Exi
stsId(id) q:'exists $s('lockonly:$$Error^%apiOBJ(5797,"xobw.WebServi
cesAuthorized","ienIndex",id),1:1) s status=##class(xobw.WebServices
Authorized).%LockId(id,1) q:('status) status if 'lockonly { s exists
=##class(xobw.WebServicesAuthorized).%ExistsId(id) d ##class(xobw.We
bServicesAuthorized).%UnlockId(id,1,0) quit $s('exists:$$Error^%apiO
BJ(5797,"xobw.WebServicesAuthorized","ienIndex",id),1:1) } else { d
##class(xobw.WebServicesAuthorized).%UnlockId(id,1,0) q 1 } }
zienIndexDelete+1 Quit ##class(xobw.WebServicesAuthorized).%DeleteId(K1_"||"_K2,
concurrency) }
zienIndexExists+1 s id=K1_"||"_K2 q ##class(xobw.WebServicesAuthorized).%ExistsI
d(K1_"||"_K2)
zienIndexOpen+1 Quit ##class(xobw.WebServicesAuthorized).%OpenId(K1_"||"_K2,conc
urrency,.sc) }
xobw.WsdlHandler.1.INT
zgetInfoFromFile+1 set status =
der)
zgetInfoFromFile+3
zgetInfoFromStream+1 set status
m,.reader)
zgetInfoFromStream+3
zgetInfoFromString+1 set status
g,.reader)
zgetInfoFromString+3
##class(%XML.TextReader).ParseFile(wsdlFile,.rea
quit ##class(xobw.WsdlHandler).parse(reader)
= ##class(%XML.TextReader).ParseStream(wsdlStrea
quit ##class(xobw.WsdlHandler).parse(reader)
= ##class(%XML.TextReader).ParseString(wsdlStrin
quit ##class(xobw.WsdlHandler).parse(reader)
xobw.error.AbstractError.1.INT
ztextBuildValueArray+1 Quit ##class(%Collection.ListOfDT).BuildValueArray(value,
.array)
ztextGetSwizzled+1 Set oref=##class(%Collection.ListOfDT).%New() If oref="" Quit
""
xobw.error.BasicError.1.INT
ztextBuildValueArray+1 Quit ##class(%Collection.ListOfDT).BuildValueArray(value,
.array)
ztextGetSwizzled+1 Set oref=##class(%Collection.ListOfDT).%New() If oref="" Quit
""
xobw.error.DialogError.1.INT
ztextBuildValueArray+1 Quit ##class(%Collection.ListOfDT).BuildValueArray(value,
.array)
ztextGetSwizzled+1 Set oref=##class(%Collection.ListOfDT).%New() If oref="" Quit
""
xobw.error.HttpError.1.INT
ztextBuildValueArray+1 Quit ##class(%Collection.ListOfDT).BuildValueArray(value,
.array)
ztextGetSwizzled+1 Set oref=##class(%Collection.ListOfDT).%New() If oref="" Quit
""
xobw.error.ObjectError.1.INT
ztextBuildValueArray+1 Quit ##class(%Collection.ListOfDT).BuildValueArray(value,
.array)
ztextGetSwizzled+1 Set oref=##class(%Collection.ListOfDT).%New() If oref="" Quit
""
xobw.error.SoapError.1.INT
zsoapFaultNewObject+1 Set newobject=##class(%SOAP.Fault).%New("") If newobject="
" Quit ""
ztextBuildValueArray+1 Quit ##class(%Collection.ListOfDT).BuildValueArray(value,
.array)
ztextGetSwizzled+1 Set oref=##class(%Collection.ListOfDT).%New() If oref="" Quit
""
FOIA>D ^%RO
Routine output (please use %ROMF for object code output)
Routine(s): xobw*
Routine(s):
Description:
Output routines to
Device: C:\TMP\xobw.TXT
Parameters? "WNS" =>
Printer Format? No => Yes
xobw.RestRequest.1.INT
xobw.RestRequestFactory.1.INT
xobw.VistaInfoHeader.1.INT
xobw.WebServer.1.INT
xobw.WebServiceMetadata.1.INT
xobw.WebServiceProxyFactory.1.INT
xobw.WebServicesAuthorized.1.INT
xobw.WsdlHandler.1.INT
xobw.error.AbstractError.1.INT xobw.error.BasicError.1.INT
xobw.error.DialogError.1.INT
xobw.error.HttpError.1.INT
xobw.error.ObjectError.1.INT
xobw.error.SoapError.1.INT
xobw.WebServer.T1.MAC
xobw.WebServiceMetadata.T1.MAC
xobw.WebServicesAuthorized.T1.MAC
Cache for Windows^INT,MAC^^~Format=Cache.S~
%RO on 31 Aug 2012
5:33 AM
xobw.RestRequest.1^INT^1^62153,34146^0^1
;xobw.RestRequest.1
;(C)InterSystems, generated for class xobw.RestRequest. Do NOT edit. 03/03/2011
09:29:06AM
;;00E68E811CBDAA71;xobw.RestRequest
;
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
s proporef=$zobjproperty(%this,"EntityBody")
s proporef=$zobjproperty(%this,"HttpResponse")
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
i AllowedDepth>0 s AllowedDepth = AllowedDepth - 1
i AllowedCapacity>0 d
. s AllowedCapacity = AllowedCapacity - 1
. s AllowedCapacity = AllowedCapacity/2
s proporef=$zobjval(%this,4,0)
s proporef=$zobjval(%this,10,0)
i proporef'="" s sc=1 i AllowedDepth'=0,AllowedCapacity'=0 s
sc=proporef.%BindExport(dev,.Seen,RegisterOref,AllowedDepth,AllowedCapacity) q:('sc) sc
Quit sc }
%ClassName(fullname) public {
Quit $select($get(fullname,0):"xobw.RestRequest",1:"RestRequest") }
%Construct(%this,initvalue="")
Set
$zobjval(,/*Device*/2,0,3,2)="",$zobjval(,/*EntityBody*/3,0,3,3)="",$zobjval(,/*EntityBod
y*/4,0,3,3)="",$zobjval(,/*FollowRedirect*/5,0,3,5)="",$zobjval(,/*HTTPVersion*/7,0,3,7)=
"1.1"
Set
$zobjval(,/*HttpResponse*/9,0,3,9)="",$zobjval(,/*HttpResponse*/10,0,3,9)="",$zobjval(,/*
Https*/11,0,3,11)="",$zobjval(,/*Location*/12,0,3,12)="",$zobjval(,/*NoDefaultContentChar
set*/13,0,3,13)=0
Set
$zobjval(,/*Password*/15,0,3,15)="",$zobjval(,/*Port*/16,0,3,16)="",$zobjval(,/*ProxyHTTP
S*/17,0,3,17)=0,$zobjval(,/*ProxyPort*/18,0,3,18)=8080,$zobjval(,/*ProxyServer*/19,0,3,19
)="",$zobjval(,/*ProxyTunnel*/20,0,3,20)="0"
Set
$zobjval(,/*ReadRawMode*/21,0,3,21)=0,$zobjval(,/*RedirectNo*/22,0,3,22)="",$zobjval(,/*R
equestHeaderCharset*/23,0,3,23)="UTF-8",$zobjval(,/*ResponseStream*/24,0,3,24)=""
Set
$zobjval(,/*SSLConfiguration*/25,0,3,25)="",$zobjval(,/*Timeout*/26,0,3,26)=30,$zobjval(,
/*Username*/27,0,3,27)="",$zobjval(,/*WriteRawMode*/28,0,3,28)=0,$zobjval(,/*restServiceC
ontext*/29,0,3,29)=""
Quit ..%OnNew(.initvalue)
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.RestRequest"),cloned(+object)=%this,cloned(+object,0)=o
bject Set $zobjmod(,0)=1
Set
$zobjval(,2)=$zobjval(object,2),$zobjval(,3)=$zobjval(object,3),$zobjval(,4)=$zobjval(obj
ect,4)
Merge
$zobjval(,1,0)=$zobjval(object,1,0),$zobjval(,6,0)=$zobjval(object,6,0),$zobjval(,8,0)=$z
objval(object,8,0)
Set
$zobjval(,5)=$zobjval(object,5),$zobjval(,7)=$zobjval(object,7),$zobjval(,9)=$zobjval(obj
ect,9)
Set
$zobjval(,10)=$zobjval(object,10),$zobjval(,11)=$zobjval(object,11),$zobjval(,12)=$zobjva
l(object,12)
Set
$zobjval(,13)=$zobjval(object,13),$zobjval(,15)=$zobjval(object,15),$zobjval(,16)=$zobjva
l(object,16)
Set
$zobjval(,17)=$zobjval(object,17),$zobjval(,18)=$zobjval(object,18),$zobjval(,19)=$zobjva
l(object,19)
Set
$zobjval(,20)=$zobjval(object,20),$zobjval(,21)=$zobjval(object,21),$zobjval(,22)=$zobjva
l(object,22)
Set
$zobjval(,23)=$zobjval(object,23),$zobjval(,24)=$zobjval(object,24),$zobjval(,25)=$zobjva
l(object,25)
Set
$zobjval(,26)=$zobjval(object,26),$zobjval(,27)=$zobjval(object,27),$zobjval(,28)=$zobjva
l(object,28)
Merge $zobjval(,14,0)=$zobjval(object,14,0)
Set $zobjval(,29)=$zobjval(object,29)
If deep>0 {
If $isobject(object.EntityBody) Set
$zobjval(,4,0)=$zobjval(object,4,0).%ConstructClone(1,.cloned)
If $isobject(object.HttpResponse) Set
$zobjval(,10,0)=$zobjval(object,10,0).%ConstructClone(1,.cloned)
} Else {
If $isobject(object.EntityBody) Set
$zobjval(,4,0)=$zobjval(object,4,0).%ConstructClone(0,.cloned)
}
Quit %this }
%Destruct(%this) public {
Do ..%OnClose()
Quit 1 }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.RestRequest","%Net.HttpRequest","%Library.RegisteredObject")
,$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,*)))
}
%GetParameter(paramname="") public {
Quit $case(paramname,"PROPERTYVALIDATION":2,:"") }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.RestRequest","%Net.HttpRequest","%Library.RegisteredObject")
,$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,*)))
}
%IsModified(%this) public {
Quit $zobjmod(,0) }
%NormalizeObject(%this)
Set:$zobjval(,/*FollowRedirect*/5,0,3,5)'=""
$zobjval(,/*FollowRedirect*/5,0,3,5)=(..FollowRedirectNormalize($zobjval(,/*FollowRedirec
t*/5,0,3,5)))
Set:$zobjval(,/*Https*/11,0,3,11)'=""
$zobjval(,/*Https*/11,0,3,11)=(..HttpsNormalize($zobjval(,/*Https*/11,0,3,11)))
Set:$zobjval(,/*NoDefaultContentCharset*/13,0,3,13)'=""
$zobjval(,/*NoDefaultContentCharset*/13,0,3,13)=(..NoDefaultContentCharsetNormalize($zobj
val(,/*NoDefaultContentCharset*/13,0,3,13)))
Set:$zobjval(,/*Port*/16,0,3,16)'=""
$zobjval(,/*Port*/16,0,3,16)=(..PortNormalize($zobjval(,/*Port*/16,0,3,16)))
Set:$zobjval(,/*ProxyHTTPS*/17,0,3,17)'=""
$zobjval(,/*ProxyHTTPS*/17,0,3,17)=(..ProxyHTTPSNormalize($zobjval(,/*ProxyHTTPS*/17,0,3,
17)))
Set:$zobjval(,/*ProxyTunnel*/20,0,3,20)'=""
$zobjval(,/*ProxyTunnel*/20,0,3,20)=(..ProxyTunnelNormalize($zobjval(,/*ProxyTunnel*/20,0
,3,20)))
Set:$zobjval(,/*ReadRawMode*/21,0,3,21)'=""
$zobjval(,/*ReadRawMode*/21,0,3,21)=(..ReadRawModeNormalize($zobjval(,/*ReadRawMode*/21,0
,3,21)))
Set:$zobjval(,/*RedirectNo*/22,0,3,22)'=""
$zobjval(,/*RedirectNo*/22,0,3,22)=(..RedirectNoNormalize($zobjval(,/*RedirectNo*/22,0,3,
22)))
Set:$zobjval(,/*Timeout*/26,0,3,26)'=""
$zobjval(,/*Timeout*/26,0,3,26)=(..TimeoutNormalize($zobjval(,/*Timeout*/26,0,3,26)))
Set:$zobjval(,/*WriteRawMode*/28,0,3,28)'=""
$zobjval(,/*WriteRawMode*/28,0,3,28)=(..WriteRawModeNormalize($zobjval(,/*WriteRawMode*/2
8,0,3,28)))
Set:$zobjval(,/*restServiceContext*/29,0,3,29)'=""
$zobjval(,/*restServiceContext*/29,0,3,29)=(..restServiceContextNormalize($zobjval(,/*res
tServiceContext*/29,0,3,29)))
Quit 1
%ObjectModified(%this) public {
If $zobjmod(,0) Quit 1
If $zobjval(,/*EntityBody*/4,0,3,3)'="",..EntityBody.%ObjectModified() Quit 1
Quit 0 }
%OnClose(%this) public {
If $zobjval(,/*Device*/2,0,3,2)'="" Close $zobjval(,/*Device*/2,0,3,2)
Quit 1 }
%OnNew(%this,initvalue="") public {
Set $zobjval(,/*Headers*/8,0,3,8,"USER-AGENT")="Mozilla/4.0 (compatible;
Cache;)",$zobjval(,/*Headers*/8,0,3,8,"USER-AGENT",0)="UserAgent",$zobjval(,/*Headers*/8,0,3,8,"USER-AGENT",1)=1
Set
$zobjval(,/*Headers*/8,0,3,8,"HOST")="localhost",$zobjval(,/*Headers*/8,0,3,8,"HOST",0)="
Host",$zobjval(,/*Headers*/8,0,3,8,"HOST",1)=2
Set
$zobjval(,/*Headers*/8,0,3,8,"CONNECTION")="Close",$zobjval(,/*Headers*/8,0,3,8,"CONNECTI
ON",0)="Connection",$zobjval(,/*Headers*/8,0,3,8,"CONNECTION",1)=3
Set $zobjval(,/*Headers*/8,0,3,8)=4
Set
$zobjval(,/*ProxyServer*/19,0,3,19)=$get(^SYS("HttpRequest","ProxyServer"),$get(^%SYS("Ht
tpRequest","ProxyServer"))),$zobjval(,/*ProxyPort*/18,0,3,18)=$get(^SYS("HttpRequest","Pr
oxyPort"),$get(^%SYS("HttpRequest","ProxyPort"),8080))
Quit 1 }
%PackageName()
Quit "xobw"
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
If $zobjval(,/*EntityBody*/4,0,3,3)'="" {
Set:'$data(%objTX(1,+$zobjval(,/*EntityBody*/4,0,3,3),1))
%objTX(1,+$zobjval(,/*EntityBody*/4,0,3,3))=$zobjval(,/*EntityBody*/4,0,3,3),%objTX(1,+$z
objval(,/*EntityBody*/4,0,3,3),1)=..EntityBodyGetObject(1),%objTX(1,+$zobjval(,/*EntityBo
dy*/4,0,3,3),6)=2 Set
$zobjval(,/*EntityBody*/3,0,3,3)=$list(%objTX(1,+$zobjval(,/*EntityBody*/4,0,3,3),1),1,2)
}
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set %objTX(1,intOref)=%this,%objTX(1,intOref,1)=-1,%objTX(1,intOref,6)=4
Set tDepth=$select(depth'=2:depth,1:1)
Set Poref=$zobjval(,4,0) If Poref'="" {
If '$data(%objTX(1,+Poref)) Set sc=Poref.%AddToSaveSet(tDepth) Goto:('sc) exit
}
Set Poref=$zobjval(,10,0) If Poref'="" {
If '$data(%objTX(1,+Poref)) Set sc=Poref.%AddToSaveSet(tDepth) Goto:('sc) exit
}
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%ValidateObject(%this,force=0)
New iv,sc,rc Set sc=1
If '(..%IsModified()) Quit 1
If $zobjmod(,2) Set iv=$zobjval(,/*Device*/2,0,3,2) If iv'="" Set
rc=(..DeviceIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"Device",iv)
If $zobjmod(,5) Set iv=$zobjval(,/*FollowRedirect*/5,0,3,5) If iv'="" Set
rc=(..FollowRedirectIsValid(iv)) If ('rc) Set
sc=$$xEmbedErr(sc,rc,5802,"FollowRedirect",iv)
If $zobjmod(,7) Set iv=$zobjval(,/*HTTPVersion*/7,0,3,7) If iv'="" Set
rc=(..HTTPVersionIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"HTTPVersion",iv)
If $zobjmod(,11) Set iv=$zobjval(,/*Https*/11,0,3,11) If iv'="" Set
rc=(..HttpsIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"Https",iv)
If $zobjmod(,12) Set iv=..Location If iv'="" Set rc=(..LocationIsValid(iv)) If ('rc)
Set sc=$$xEmbedErr(sc,rc,5802,"Location",iv)
If $zobjmod(,13) Set iv=$zobjval(,/*NoDefaultContentCharset*/13,0,3,13) If iv'=""
Set rc=(..NoDefaultContentCharsetIsValid(iv)) If ('rc) Set
sc=$$xEmbedErr(sc,rc,5802,"NoDefaultContentCharset",iv)
If $zobjmod(,15) Set iv=$zobjval(,/*Password*/15,0,3,15) If iv'="" Set
rc=(..PasswordIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"Password",iv)
If $zobjmod(,16) Set iv=..Port If iv'="" Set rc=(..PortIsValid(iv)) If ('rc) Set
sc=$$xEmbedErr(sc,rc,5802,"Port",iv)
If $zobjmod(,17) Set iv=$zobjval(,/*ProxyHTTPS*/17,0,3,17) If iv'="" Set
rc=(..ProxyHTTPSIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"ProxyHTTPS",iv)
If $zobjmod(,18) Set iv=$zobjval(,/*ProxyPort*/18,0,3,18) If iv'="" Set
rc=(..ProxyPortIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"ProxyPort",iv)
If $zobjmod(,19) Set iv=$zobjval(,/*ProxyServer*/19,0,3,19) If iv'="" Set
rc=(..ProxyServerIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"ProxyServer",iv)
If $zobjmod(,20) Set iv=$zobjval(,/*ProxyTunnel*/20,0,3,20) If iv'="" Set
rc=(..ProxyTunnelIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"ProxyTunnel",iv)
If $zobjmod(,21) Set iv=$zobjval(,/*ReadRawMode*/21,0,3,21) If iv'="" Set
rc=(..ReadRawModeIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"ReadRawMode",iv)
If $zobjmod(,22) Set iv=$zobjval(,/*RedirectNo*/22,0,3,22) If iv'="" Set
rc=(..RedirectNoIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"RedirectNo",iv)
If $zobjmod(,23) Set iv=$zobjval(,/*RequestHeaderCharset*/23,0,3,23) If iv'="" Set
rc=(..RequestHeaderCharsetIsValid(iv)) If ('rc) Set
sc=$$xEmbedErr(sc,rc,5802,"RequestHeaderCharset",iv)
If $zobjmod(,25) Set iv=$zobjval(,/*SSLConfiguration*/25,0,3,25) If iv'="" Set
rc=(..SSLConfigurationIsValid(iv)) If ('rc) Set
sc=$$xEmbedErr(sc,rc,5802,"SSLConfiguration",iv)
If $zobjmod(,26) Set iv=$zobjval(,/*Timeout*/26,0,3,26) If iv'="" Set
rc=(..TimeoutIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"Timeout",iv)
If $zobjmod(,27) Set iv=$zobjval(,/*Username*/27,0,3,27) If iv'="" Set
rc=(..UsernameIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"Username",iv)
If $zobjmod(,28) Set iv=$zobjval(,/*WriteRawMode*/28,0,3,28) If iv'="" Set
rc=(..WriteRawModeIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"WriteRawMode",iv)
Quit sc
xEmbedErr(sc,rc,errcode,loc,val) { Set
rc=$$EmbedError^%apiOBJ(rc,errcode,"xobw.RestRequest"_":"_loc,val) Quit
$select(+sc:rc,1:$$AppendStatus^%occSystem(sc,rc)) }
Quit
zAuthorizationGet(%this) public {
Quit $get($zobjval(,/*Headers*/8,0,3,8,"AUTHORIZATION")) }
zAuthorizationSet(%this,value) public {
Quit ..SetHeader("Authorization",value) }
zContentCharsetGet(%this) public {
Quit $Piece($Piece(..EntityBody.GetAttribute("CONTENT-TYPE"),"charset=",2),";")
}
zContentCharsetSet(%this,charset) public {
Set content=$zcvt($zstrip(..ContentType,"<>W"),"l")
If $extract(content,1,5)'="text/" Quit 1
If content["charset=" {
Set end=$piece($piece(content,"charset=",2,3641144),";",2,3641144)
If charset'="" {
If end'="" Set end=";"_end
Set content=$piece(content,"charset=")_"charset="_charset_end
} Else {
Set content=$piece(content,"charset=")_end
}
} ElseIf charset'="" {
If $extract(content,$length(content))'=";" Set content=content_";"
Set content=content_" charset="_charset
}
Set content=$zstrip(content,"<>W")
If $extract(content,$length(content))=";" Set $extract(content,$length(content))=""
Set ..ContentType=content
Quit 1 }
zContentEncodingGet(%this) public {
Quit ..EntityBody.GetAttribute("CONTENT-ENCODING","") }
zContentEncodingSet(%this,contentencoding) public {
Do ..EntityBody.SetAttribute("CONTENT-ENCODING",contentencoding)
Quit 1 }
zContentLengthGet(%this) public {
Quit ..EntityBody.Size }
zContentTypeGet(%this) public {
Quit ..EntityBody.GetAttribute("CONTENT-TYPE","text/html") }
zContentTypeSet(%this,contenttype) public {
Do ..EntityBody.SetAttribute("CONTENT-TYPE",contenttype)
Quit 1 }
zCountFormData(%this,name) public {
Quit:'$data($zobjval(,/*FormData*/6,0,3,6,name)) 0
Set count=0
Set i="" For Set i=$order($zobjval(,/*FormData*/6,0,3,6,name,i)) Quit:i="" Set
count=count+1
Quit count }
zCountParam(%this,name) public {
Quit:'$data($zobjval(,/*Params*/14,0,3,14,name)) 0
Set count=0
Set i="" For Set i=$order($zobjval(,/*Params*/14,0,3,14,name,i)) Quit:i="" Set
count=count+1
Quit count }
zDateGet(%this) public {
Quit $get($zobjval(,/*Headers*/8,0,3,8,"DATE")) }
zDateSet(%this,value) public {
Quit ..SetHeader("Date",value) }
zDeleteCookie(%this,name,path,domain) public {
If $length(path)>1,$extract(path,*)="/" Set path=$extract(path,1,*-1)
Kill $zobjval(,/*Cookies*/1,0,3,1,domain,path,name)
Quit 1 }
zDeleteFormData(%this,name,index="") public {
If index="" {
If $data($zobjval(,/*FormData*/6,0,3,6,name)) Kill
$zobjval(,/*FormData*/6,0,3,6,name) Quit 1
} ElseIf $data($zobjval(,/*FormData*/6,0,3,6,name,index)) {
Kill $zobjval(,/*FormData*/6,0,3,6,name,index)
Quit 1
}
Quit 0 }
zDeleteParam(%this,name,index="") public {
If index="" {
If $data($zobjval(,/*Params*/14,0,3,14,name)) Kill
$zobjval(,/*Params*/14,0,3,14,name) Quit 1
} ElseIf $data($zobjval(,/*Params*/14,0,3,14,name,index)) {
Kill $zobjval(,/*Params*/14,0,3,14,name,index) Quit 1
}
Quit 0 }
zFromGet(%this) public {
Quit $get($zobjval(,/*Headers*/8,0,3,8,"FROM")) }
zFromSet(%this,value) public {
Quit ..SetHeader("From",value) }
zGet(%this,resource,test=0,reset=1) public {
quit
##class(%Net.HttpRequest)%this.Get($zobjval(,/*restServiceContext*/29,0,3,29)_resource,
.test)
}
zGetCookiesForHost(%this,domain,path) public {
Set domain=$piece(domain,":")
If '$data($zobjval(,/*Cookies*/1,0,3,1,domain)) Quit ""
Set path=$piece(path,"/",1,$length(path,"/")-1)
If $extract(path)'="/" Set path="/"_path
Set return="",realpath=""
For i=1:1:$length(path) {
If $data($zobjval(,/*Cookies*/1,0,3,1,domain,$extract(path,1,i))) {
Set realpath=$extract(path,1,i)
Set name=""
For {
Set
name=$order($zobjval(,/*Cookies*/1,0,3,1,domain,realpath,name),1,val) If name="" Quit
Set expire=$list(val,2)
If
expire,($piece(expire,",")*86400+$piece(expire,",",2))<($piece($ztimestamp,",")*86400+$pi
ece($ztimestamp,",",2)) Kill $zobjval(,/*Cookies*/1,0,3,1,domain,realpath,name) Quit
Set
https=$select(($zobjval(,/*ProxyServer*/19,0,3,19)'="")&&(+($zobjval(,/*ProxyPort*/18,0,3
,18))'=0):$zobjval(,/*ProxyHTTPS*/17,0,3,17),1:$zobjval(,/*Https*/11,0,3,11))
If $list(val,3)'=+https Continue
Set return=name_"="_$list(val)_"; "_return
}
}
}
Quit $extract(return,1,$length(return)-2) }
zGetDefaultCharset(%this,charset) public {
If charset'="" Quit $$MapCharset^%SYS.NLS(charset)
If $ZBitGet($ZVersion(0),1) Set charset="UTF-8" Quit "UTF8"
Set charset=$$MapExtCharset^%SYS.NLS($$GetCharset^%SYS.NLS())
Quit "RAW" }
zGetFullCookieList(%this,cookies) public {
Set index=1
Set domain=$order($zobjval(,/*Cookies*/1,0,3,1,""))
While domain'="" {
Set path=$order($zobjval(,/*Cookies*/1,0,3,1,domain,""))
While path'="" {
Set name=$order($zobjval(,/*Cookies*/1,0,3,1,domain,path,""))
While name'="" {
Set expire=$list($zobjval(,/*Cookies*/1,0,3,1,domain,path,name),2)
If
expire,($piece(expire,",")*86400+$piece(expire,",",2))<($piece($ztimestamp,",")*86400+$pi
ece($ztimestamp,",",2)) Kill $zobjval(,/*Cookies*/1,0,3,1,domain,path,name) Quit
Set
cookies(index)=$listbuild(name,domain,path)_$zobjval(,/*Cookies*/1,0,3,1,domain,path,name
),index=index+1
Set name=$order($zobjval(,/*Cookies*/1,0,3,1,domain,path,name))
}
Set path=$order($zobjval(,/*Cookies*/1,0,3,1,domain,path))
}
Set domain=$order($zobjval(,/*Cookies*/1,0,3,1,domain))
}
Quit index-1 }
zGetHeader(%this,name) public {
If $zconvert(name,"U")="COOKIE",'$data($zobjval(,/*Headers*/8,0,3,8,"COOKIE")) Quit
..GetCookiesForHost(..Server,$zobjval(,/*Location*/12,0,3,12))
Quit $get($zobjval(,/*Headers*/8,0,3,8,$zconvert(name,"U"))) }
zGetParam(%this,name,default="",index=1) public {
Quit $get($zobjval(,/*Params*/14,0,3,14,name,index)) }
zHead(%this,resource,test=0,reset=1) public {
quit
##class(%Net.HttpRequest)%this.Head($zobjval(,/*restServiceContext*/29,0,3,29)_resource,
.test)
}
zHorologToRFCDateTime(horolog) public { Set:'($data(horolog)#2) horolog=$Horolog
Set
horolog=$piece(horolog,",")*86400+$piece(horolog,",",2)+($piece($ztimestamp,",")*86400)+(
$piece($ztimestamp,",",2)\1)-($piece($horolog,",")*86400+$piece($horolog,",",2))
Set horolog=horolog\86400_","_(horolog#86400)
Quit $ZDate(horolog,11)_", "_$ZDatetime(horolog,2)_" GMT" }
zIfModifiedSinceGet(%this) public {
Quit $get($zobjval(,/*Headers*/8,0,3,8,"IF-MODIFIED-SINCE")) }
zIfModifiedSinceSet(%this,value) public {
Quit ..SetHeader("If-Modified-Since",value) }
zInsertCookie(%this,name,value,path,domain,expires,secure=0) public {
If $length(path)>1,$extract(path,*)="/" Set path=$extract(path,1,*-1)
Set $zobjval(,/*Cookies*/1,0,3,1,domain,path,name)=$listbuild(value,expires,secure)
Quit 1 }
zInsertCookieFromServer(%this,cookie) public {
Set domain=..Server,path=$zobjval(,/*Location*/12,0,3,12)
Set path=$piece(path,"/",1,$length(path,"/")-1)
If $extract(path)'="/" Set path="/"_path
Set secure=0,expires=""
For i=1:1:$length(cookie,";") {
Set piece=$ZSTRIP($Piece(cookie,";",i),"<>W") Quit:piece=""
If i=1 Set name=$piece(piece,"="),value=$extract(piece,$length(name)+2,*) Quit
Set type=$ZCVT($piece(piece,"="),"L"),val=$extract(piece,$length(type)+2,*)
If type="path" Set path=val Quit
If type="domain" {
Set
dots=$select(".COM.EDU.NET.ORG.GOV.MIL.INT."[("."_$piece(val,".",$length(val,"."))_"."):2
,1:3)
If $length(val,".")>dots Set domain=val
Quit
}
If type="expires" {
Set val=$ZSTRIP($Piece(val,",",2),"<>W")
Set date=$piece(val," "),time=$ztimeh($piece(val," ",2))
Set date=$piece(date,"-",2)_" "_$piece(date,"-")_" "_$piece(date,"-",3)
Set date=$ZDATEH(date,7)
Set date=date*86400+time
If date<($piece($ztimestamp,",")*86400+$piece($ztimestamp,",",2)) Set
expires=-1
Set expires=(date\86400)_","_(date#86400)
Quit
}
If type="secure" Set secure=1 Quit
}
If path'=$extract("/"_$zobjval(,/*Location*/12,0,3,12),1,$length(path)) Quit 1
If expires=-1 {
Kill $zobjval(,/*Cookies*/1,0,3,1,domain,path,name)
} Else {
Set
$zobjval(,/*Cookies*/1,0,3,1,domain,path,name)=$listbuild(value,expires,secure)
}
Quit 1 }
zInsertFormData(%this,name,value) public {
Set index=$order($zobjval(,/*FormData*/6,0,3,6,name,""),1)+1,$zobjval(,/*FormData*/6,0,3,6,name,index)=value,$zobjval(,/*FormData*/6,0,3,6)=$get(
$zobjval(,/*FormData*/6,0,3,6))+1,$zobjval(,/*FormData*/6,0,3,6,name,index,0)=$zobjval(,/
*FormData*/6,0,3,6)
Quit }
zInsertParam(%this,name,value) public {
Set index=$order($zobjval(,/*Params*/14,0,3,14,name,""),1)+1,$zobjval(,/*Params*/14,0,3,14,name,index)=$get(value),$zobjval(,/*Params*/14,0,3,14,
name,index,0)=$data(value)#2,$zobjval(,/*Params*/14,0,3,14)=$get($zobjval(,/*Params*/14,0
,3,14))+1,$zobjval(,/*Params*/14,0,3,14,name,index,1)=$zobjval(,/*Params*/14,0,3,14)
Quit }
zIsFormDataDefined(%this,name,index=1) public {
Quit $data($zobjval(,/*FormData*/6,0,3,6,name,index)) }
zIsParamDefined(%this,name,index=1) public {
Quit ''$data($zobjval(,/*Params*/14,0,3,14,name,index)) }
zLocationSet(%this,val) public {
Set $zobjval(,/*Location*/12,0,3,12)=$zconvert(val,"O","URL")
Quit 1 }
zNextFormData(%this,name) public {
Quit $order($zobjval(,/*FormData*/6,0,3,6,name)) }
zNextParam(%this,name) public {
Quit $order($zobjval(,/*Params*/14,0,3,14,name)) }
zOpen(%this) public {
If $zobjval(,/*Device*/2,0,3,2)'="" Close $zobjval(,/*Device*/2,0,3,2) Set
$zobjval(,/*Device*/2,0,3,2)=""
Set sucess=0
Set $ZT="OpenErr"
Set dev=$R(100000)
If $zobjval(,/*ProxyServer*/19,0,3,19)'="",+($zobjval(,/*ProxyPort*/18,0,3,18))'=0 {
Set server=$zobjval(,/*ProxyServer*/19,0,3,19)
Set port=$zobjval(,/*ProxyPort*/18,0,3,18)
} Else {
Set server=..Server
Set port=..Port
}
If $zobjval(,/*Https*/11,0,3,11),'$zobjval(,/*ProxyTunnel*/20,0,3,20) {
Open
"|TCP|"_dev:(server:port:"SCWD"::8192:8192:/TCPNOXY:/TLS=$zobjval(,/*SSLConfiguration*/25
,0,3,25)):$zobjval(,/*Timeout*/26,0,3,26) Set sucess=$T
} Else {
Open
"|TCP|"_dev:(server:port:"SCWD"::8192:8192:/TCPNOXY):$zobjval(,/*Timeout*/26,0,3,26) Set
sucess=$T
}
OpenExit
If 'sucess Quit
$$Error^%apiOBJ(6059,$select($zobjval(,/*ProxyServer*/19,0,3,19)'="":$zobjval(,/*ProxySer
ver*/19,0,3,19)_":"_$zobjval(,/*ProxyPort*/18,0,3,18),1:..Server_":"_..Port))
Set $zobjval(,/*Device*/2,0,3,2)="|TCP|"_dev
Quit 1
OpenErr
Set $ZT=""
Goto OpenExit }
zOutputFormData(%this,stream,table) public {
If $get(table)="" Set table="RAW"
Set param=""
For {
Set param=$order($zobjval(,/*FormData*/6,0,3,6,param)) Quit:param=""
Set index=""
For Set index=$order($zobjval(,/*FormData*/6,0,3,6,param,index),1,val)
Quit:index="" Set
order=$zobjval(,/*FormData*/6,0,3,6,param,index,0),output(order,0)=param,output(order)=va
l
}
Set first=1
Set order=$order(output(""),1,val)
While order'="" {
Set param=output(order,0)
Do
stream.Write($select(first:"",1:"&")_$zconvert($select(table="RAW":param,1:$zconvert(para
m,"O",table)),"O","URL")_"=")
Set first=0
If $isobject(val),val.%Extends("%Stream.Object") {
While 'val.AtEnd {
Set data=val.Read(4096) Do
stream.Write($zconvert($select(table="RAW":data,1:$zconvert(data,"O",table)),"O","URL"))
}
} Else {
Do
stream.Write($zconvert($select(table="RAW":val,1:$zconvert(val,"O",table)),"O","URL"))
}
Set order=$order(output(order),1,val)
}
Quit 1 }
zOutputHeaders(%this) public {
If ..Authorization="",$zobjval(,/*Username*/27,0,3,27)'="" Set
..Authorization="Basic
"_$system.Encryption.Base64Encode($zobjval(,/*Username*/27,0,3,27)_":"_$zobjval(,/*Passwo
rd*/15,0,3,15))
Set
https=$select(($zobjval(,/*ProxyServer*/19,0,3,19)'="")&&(+($zobjval(,/*ProxyPort*/18,0,3
,18))'=0):$zobjval(,/*ProxyHTTPS*/17,0,3,17),1:$zobjval(,/*Https*/11,0,3,11))
If https {
If ..Port'=443 Set
$zobjval(,/*Headers*/8,0,3,8,"HOST")=$zobjval(,/*Headers*/8,0,3,8,"HOST")_":"_..Port
} Else {
If ..Port'=80 Set
$zobjval(,/*Headers*/8,0,3,8,"HOST")=$zobjval(,/*Headers*/8,0,3,8,"HOST")_":"_..Port
}
Set name="" For Set name=$order($zobjval(,/*Headers*/8,0,3,8,name)) Quit:name=""
Set order($zobjval(,/*Headers*/8,0,3,8,name,1))=name
Set order="" For Set order=$order(order(order),1,name) Quit:order="" Write
$zobjval(,/*Headers*/8,0,3,8,name,0)_": "_$zobjval(,/*Headers*/8,0,3,8,name)_$char(13,10)
If '$data($zobjval(,/*Headers*/8,0,3,8,"COOKIE")) {
Set cookie=..GetCookiesForHost(..Server,$zobjval(,/*Location*/12,0,3,12))
If cookie'="" Write "Cookie: "_cookie_$char(13,10)
}
Set
$zobjval(,/*Headers*/8,0,3,8,"HOST")=$piece($zobjval(,/*Headers*/8,0,3,8,"HOST"),":")
Quit }
zOutputParams(%this,params="",table) public {
If params="",$order($zobjval(,/*Params*/14,0,3,14,""))="" Quit
Write "?",params
Set first=$select(params="":1,1:0)
Set param=$order($zobjval(,/*Params*/14,0,3,14,""))
While (param'="") {
Set index="" For Set index=$order($zobjval(,/*Params*/14,0,3,14,param,index))
Quit:index="" Set
order=$zobjval(,/*Params*/14,0,3,14,param,index,1),order(order)=param,order(order,0)=inde
x
Set param=$order($zobjval(,/*Params*/14,0,3,14,param))
}
Set order=$order(order(""),1,param)
While order'="" {
Set index=order(order,0),val=$zobjval(,/*Params*/14,0,3,14,param,index)
Write
$select(first:"",1:"&")_$zconvert($zconvert(param,"O",table),"O","URL")_$select($zobjval(
,/*Params*/14,0,3,14,param,index,0):"="_$zconvert($zconvert(val,"O",table),"O","URL"),1:"
") Set first=0
Set order=$order(order(order),1,param)
}
Quit }
zParseContent(in,return) public {
Kill return
Set in=$zstrip(in,"<W"),del="=",out=""
hloop If $extract(in)=del { Goto hdel } If in="" { Goto hexit } If $extract(in)="""" {
Goto hquote } Goto hdefault
hdefault
Set
stuff=$piece(in,del),out=out_$zstrip(stuff,">W"),in=$extract(in,$length(stuff)+1,*) Goto
hloop
hquote
Set stuff=$find(in,"""",2) If stuff=0 Set continue=out_$extract(in,2,*) Quit 1
Set out=out_$select(stuff=3:"""",1:$extract(in,2,stuff-2)),in=$extract(in,stuff,*)
If $extract(in)="""" { Set out=out_"""" Goto hquote } Else { Goto hdefault }
hdel If del="=" { Set name=$zconvert(out,"l"),del=";" } Else { Set:name'=""
return(name)=out Set del="=",name="" } Set out="",in=$zstrip($extract(in,2,*),"<W") Goto
hloop
hexit If del=";",name'="" { Set return(name)=out } Quit 0
}
zPortGet(%this) public {
If $zobjval(,/*Port*/16,0,3,16)'="" Quit $zobjval(,/*Port*/16,0,3,16)
Set
https=$select(($zobjval(,/*ProxyServer*/19,0,3,19)'="")&&(+($zobjval(,/*ProxyPort*/18,0,3
,18))'=0):$zobjval(,/*ProxyHTTPS*/17,0,3,17),1:$zobjval(,/*Https*/11,0,3,11))
Quit $select(https:443,1:80) }
zPost(%this,resource,test=0,reset=1) public {
quit
##class(%Net.HttpRequest)%this.Post($zobjval(,/*restServiceContext*/29,0,3,29)_resource,
.test)
}
zPragmaGet(%this) public {
Quit $get($zobjval(,/*Headers*/8,0,3,8,"PRAGMA")) }
zPragmaSet(%this,value) public {
Quit ..SetHeader("Pragma",value) }
zProxyAuthorizationGet(%this) public {
Quit $get($zobjval(,/*Headers*/8,0,3,8,"PROXY-AUTHORIZATION")) }
zProxyAuthorizationSet(%this,value) public {
Quit ..SetHeader("Proxy-Authorization",value) }
zPut(%this,resource,test=0,reset=1) public {
quit
##class(%Net.HttpRequest)%this.Put($zobjval(,/*restServiceContext*/29,0,3,29)_resource,
.test)
}
zRead(%this,device,timeout=10) public {
Set
return=1,zerror=$zerror,httpresponse=..HttpResponse,data=httpresponse.Data,eof=$zutil(68,
40) Do $zutil(68,40,0)
If $zcvt(data,"l")="string" {
Set data=""
} ElseIf '$isobject(data) {
Set data=##class(%Stream.GlobalBinary).%New()
}
Set SYSLOG=$get(^%ISCLOG,1)
Use device:(::"A":$char(10))
Do $ZU(96,18,2,"UTF8")
Set $ZTrap="ReadTrap"
Set
delim=$char(13,10),state=1,pos=1,rq="",used=0,found=0,query="",length="",chunked=0,exit=0
While (state'=0)&&(exit=0) {
If found Set query="",found=0
Set oldpos=pos,pos=$select(delim'="":$find(rq,delim,oldpos),1:0)
If pos'=0 {
Set query=query_$extract(rq,oldpos,pos-$L(delim)-1),used=used+(pos$length(delim)-oldpos)+1,found=1
} Else {
Set query=query_$extract(rq,oldpos,*),pos=1,used=used+($length(rq)oldpos)+1
If length'="",used'<length {
Set pos=$length(query)-(used-length)+1,query=$extract(query,1,pos1),used=length
Set found=1
} Else {
Try {
If length'="" {
Read rq#($select(length-used>32000:32000,1:lengthused)):timeout Set to=$test
} Else {
Read rq:timeout Set to=$test
}
If 'to,rq="" {
Do:$get(SYSLOG,1)'<3
Log^%SYS.ISCLOG($ZNAME,3,"HttpRequest","Timed out waiting for response from server","")
Set return=$$Error^%apiOBJ(5922),state=0
} Else {
If delim=$char(13,10) Set rq=$translate(rq,$char(13))
If $zb=$char(10) Set rq=rq_$char(13,10)
Do:$get(SYSLOG,1)'<3
Log^%SYS.ISCLOG($ZNAME,3,"HttpRequest","Read from server",rq)
}
} Catch {
If $zerror["<READ>" {
Set exit=1
} Else {
Do:$get(SYSLOG,1)>0
LogError^%SYS.ISCLOG($ZNAME,"HttpRequest","Error while reading from web server")
Set return=$$Error^%apiOBJ(5002,$zerror),state=0
}
}
If query=""||(state=0) Continue
}
}
Do:$get(SYSLOG,1)'<3 Log^%SYS.ISCLOG($ZNAME,3,"HttpRequest","READ:
state="_state_", used="_used,query)
If state=1,found {
If query="" Continue
If $piece(query," ",2)="100" Set state=4 Continue
Set httpresponse.StatusLine=query
Set httpresponse.HttpVersion=$piece(query,"
"),httpresponse.StatusCode=$piece(query," ",2),httpresponse.ReasonPhrase=$piece(query,"
",3,3641144)
Set state=2
Continue
}
If state=2||(state=6),found {
If $ascii(query)=32||($ascii(query)=9) {
If $get(key)'="" Set value=value_" "_$zstrip(query,"<>W")
} Else {
If $get(key)'="" {
If key="CONTENT-TYPE" {
Set
httpresponse.ContentType=value,httpresponse.ContentInfo=$zstrip($piece(value,";",2,32767)
,"<W")
If ..ParseContent(httpresponse.ContentInfo,.tmparray)
{
Set return=$$Error^%apiOBJ(5913,value)
} Else {
If $data(tmparray("boundary")) Set
httpresponse.ContentBoundary=tmparray("boundary")
}
}
If key="CONTENT-LENGTH" Set httpresponse.ContentLength=value
If key="SET-COOKIE" Do ..InsertCookieFromServer(value)
If key="TRANSFER-ENCODING",$zconvert(value,"l")="chunked"
Set chunked=1
Do httpresponse.SetHeader(key,value)
}
Set key=$zconvert($piece(query,":"),"u") ; Headers field names
are case insensitive
Set value=$zstrip($extract(query,$length(key)+2,*),"<>W")
}
If $translate(query,$char(13))="" {
If state=6 Set state=0 Continue
If
$zconvert($zstrip($piece(httpresponse.ContentType,";"),">W"),"l")["text/",$zobjval(,/*Rea
dRawMode*/21,0,3,21)'=1 {
Set
charset=$piece($translate($zconvert(httpresponse.ContentType,"l"),$char(32,9)),"charset="
,2),charset=$zstrip($piece(charset,";"),"<>W","""")
If charset="" Set charset="ISO-8859-1"
Set table=..GetDefaultCharset(.charset)
} Else {
Set table="RAW"
}
If chunked {
Set state=5
} Else {
Use device:(::"ASW")
Set
delim="",length=httpresponse.ContentLength,used=0,state=3
Try {
Do $zutil(96,18,2,table)
} Catch {
Set state=0,return=$$Error^%apiOBJ(5911,table)
}
}
Continue
}
}
If state=3 {
If query'="" {
If $isobject(data) {
Do data.Write(query)
} ElseIf $length(data)+$length(query)>32000 {
Set datastream=##class(%Stream.GlobalBinary).%New()
Do datastream.Write(data),datastream.Write(query)
Set data=datastream
} Else {
Set data=data_query
}
Set query=""
}
If found {
If chunked {
Set state=5,delim=$char(13,10),used=0,length=""
Use device:(::"A":$char(10))
Do $ZU(96,18,2,"UTF8")
Continue
} Else {
Set state=0
}
}
}
If state=4,found {
If $translate(query,$char(13,32))="" Set state=1
}
If state=5,found {
Set query=$zstrip($piece(query,";"),"<>W")
If query="" Continue
Set length=$zhex(query)
If length=0 {
Set state=6,delim=$char(13,10),used=0,length=""
Use device:(::"A":$char(10))
Do $ZU(96,18,2,"UTF8")
} Else {
Set delim="",used=0,state=3
Use device:(::"ASW")
Try {
Do $zutil(96,18,2,table)
} Catch {
Set state=0,return=$$Error^%apiOBJ(5911,table)
}
}
}
}
If $isobject(data) Do data.Rewind()
Set httpresponse.Data=data
Set $zerror=$get(zerror)
Do $zutil(68,40,eof)
Quit return
ReadTrap
Do $zutil(68,40,eof)
Quit $$Error^%apiOBJ(5002,$zerror) }
zRefererGet(%this) public {
Quit $get($zobjval(,/*Headers*/8,0,3,8,"REFERER")) }
zRefererSet(%this,value) public {
Quit ..SetHeader("Referer",value) }
zReset(%this) public {
Set location=$zobjval(,/*Location*/12,0,3,12),server=..Server
Kill
$zobjval(,/*Headers*/8,0,3,8),$zobjval(,/*FormData*/6,0,3,6),$zobjval(,/*Params*/14,0,3,1
4)
Do ..EntityBody.Clear()
Set $zobjval(,/*RedirectNo*/22,0,3,22)=0
Set $zobjval(,/*Headers*/8,0,3,8,"USER-AGENT")="Mozilla/4.0 (compatible;
Cache;)",$zobjval(,/*Headers*/8,0,3,8,"USER-AGENT",0)="UserAgent",$zobjval(,/*Headers*/8,0,3,8,"USER-AGENT",1)=1
Set
$zobjval(,/*Headers*/8,0,3,8,"HOST")=server,$zobjval(,/*Headers*/8,0,3,8,"HOST",0)="Host"
,$zobjval(,/*Headers*/8,0,3,8,"HOST",1)=2
Set
$zobjval(,/*Headers*/8,0,3,8,"CONNECTION")="Close",$zobjval(,/*Headers*/8,0,3,8,"CONNECTI
ON",0)="Connection",$zobjval(,/*Headers*/8,0,3,8,"CONNECTION",1)=3
Set
https=$select(($zobjval(,/*ProxyServer*/19,0,3,19)'="")&&(+($zobjval(,/*ProxyPort*/18,0,3
,18))'=0):$zobjval(,/*ProxyHTTPS*/17,0,3,17),1:$zobjval(,/*Https*/11,0,3,11))
Set
$zobjval(,/*Headers*/8,0,3,8,"REFERER")="http"_$select(https:"s",1:"")_"://"_server_":"_.
.Port_"/"_location,$zobjval(,/*Headers*/8,0,3,8,"REFERER",0)="Referer",$zobjval(,/*Header
s*/8,0,3,8,"REFERER",1)=4
Set $zobjval(,/*Headers*/8,0,3,8)=4
Quit 1 }
zReturnHeaders(%this) public {
Set return=""
Set name="" For Set name=$order($zobjval(,/*Headers*/8,0,3,8,name)) Quit:name=""
Set order($zobjval(,/*Headers*/8,0,3,8,name,1))=name
Set order="" For Set order=$order(order(order),1,name) Quit:order="" Set
return=return_$zobjval(,/*Headers*/8,0,3,8,name,0)_":
"_$zobjval(,/*Headers*/8,0,3,8,name)_$char(13,10)
If '$data($zobjval(,/*Headers*/8,0,3,8,"COOKIE")) {
Set cookie=..GetCookiesForHost(..Server,$zobjval(,/*Location*/12,0,3,12))
If cookie'="" Set return=return_"Cookie: "_cookie_$char(13,10)
}
Quit return }
zReturnParams(%this) public {
Set return="?"
Set param=$order($zobjval(,/*Params*/14,0,3,14,""))
While (param'="") {
Set index="" For Set index=$order($zobjval(,/*Params*/14,0,3,14,param,index))
Quit:index="" Set
order=$zobjval(,/*Params*/14,0,3,14,param,index,1),order(order)=param,order(order,0)=inde
x
Set param=$order($zobjval(,/*Params*/14,0,3,14,param))
}
Set order=$order(order(""),1,param)
While order'="" {
Set index=order(order,0),val=$zobjval(,/*Params*/14,0,3,14,param,index)
Set
return=return_$zconvert($zconvert(param,"O",$zutil(96,18,0)),"O","URL")_$select($zobjval(
,/*Params*/14,0,3,14,param,index,0):"="_$zconvert($zconvert(val,"O",$zutil(96,18,0)),"O",
"URL"),1:"")_"&"
Set order=$order(order(order),1,param)
}
Quit $extract(return,1,$length(return)-1) }
zSend(%this,type,location,test=0,reset=1) public {
Set writeError=0
Set param="",io=$IO,charset=$ZU(96,18,0)
If location'="" {
If location["?" {
Set
$zobjval(,/*Location*/12,0,3,12)=$piece(location,"?"),param=$piece(location,"?",2,3641144
)
} Else {
Set $zobjval(,/*Location*/12,0,3,12)=location
}
}
If $extract($zobjval(,/*Location*/12,0,3,12))="/" Set
$zobjval(,/*Location*/12,0,3,12)=$extract($zobjval(,/*Location*/12,0,3,12),2,*)
If test'=1 {
Set return=..Open()
If ('return) Quit return
Use $zobjval(,/*Device*/2,0,3,2)
}
Set table=$$MapCharset^%SYS.NLS($zobjval(,/*RequestHeaderCharset*/23,0,3,23))
Set ztrap=$ZTrap,$ZTrap="IOTrap"
Do $ZU(96,18,2,table)
Set $ZTrap=""
If
$zobjval(,/*ProxyServer*/19,0,3,19)'="",+($zobjval(,/*ProxyPort*/18,0,3,18))'=0,$zobjval(
,/*ProxyTunnel*/20,0,3,20) {
Try {
Write "CONNECT ",..Server,":",..Port," HTTP/1.0",!!,*-3
Use $zobjval(,/*Device*/2,0,3,2):(::"A":$char(10))
Read response For Read tmp:0 Quit:tmp=""
If $E(response,1,5)'="HTTP/" Set
return=$$Error^%apiOBJ(6088,..Server_":"_..Port,response) Goto Error
If $piece(response," ",2)'=200 Set
return=$$Error^%apiOBJ(6089,..Server_":"_..Port,$piece(response," ",2,32767)) Goto Error
If $zobjval(,/*ProxyHTTPS*/17,0,3,17) {
Use
$zobjval(,/*Device*/2,0,3,2):(::"SCWD"::8192:8192:/TCPNOXY:/TLS=$zobjval(,/*SSLConfigurat
ion*/25,0,3,25))
} Else {
Use $zobjval(,/*Device*/2,0,3,2):(::"SCWD"::8192:8192:/TCPNOXY)
}
} Catch {
Set return=$$Error^%apiOBJ(5002,$zerror) Goto Error
}
}
If
(..EntityBody.%IsA("%Net.ChunkedWriter")||(..EntityBody.Size>0)),$zconvert(..ContentType,
"l")["text/" {
Set entitycharset=..ContentCharset
If $zobjval(,/*WriteRawMode*/28,0,3,28) {
Set table="RAW"
} Else {
If $zobjval(,/*NoDefaultContentCharset*/13,0,3,13) && (entitycharset="")
{
Set table=..GetDefaultCharset("ISO-8859-1")
} Else {
Set table=..GetDefaultCharset(.entitycharset)
}
}
Set ..ContentCharset=entitycharset
} ElseIf $data($zobjval(,/*FormData*/6,0,3,6)) {
Set entitycharset=..ContentCharset
Set table=..GetDefaultCharset(.entitycharset)
Do ..EntityBody.Clear()
Do ..OutputFormData(..EntityBody,table)
Set table="RAW"
Set ..ContentType="application/x-www-form-urlencoded"
} Else {
Set table="RAW"
}
If
$zobjval(,/*ProxyServer*/19,0,3,19)'="",+($zobjval(,/*ProxyPort*/18,0,3,18))'=0,'$zobjval
(,/*ProxyTunnel*/20,0,3,20) {
Write type,"
http"_$select($zobjval(,/*ProxyHTTPS*/17,0,3,17):"s",1:"")_"://",..Server,":",..Port,"/",
$zobjval(,/*Location*/12,0,3,12)
} Else {
Write type," /",$zobjval(,/*Location*/12,0,3,12)
}
Do ..OutputParams(param,table)
Write " HTTP/",$zobjval(,/*HTTPVersion*/7,0,3,7),!
Do ..OutputHeaders()
Set name=""
For {
Set name=..EntityBody.NextAttribute(name) If name="" Quit
If $ZCVT(name,"U")="CONTENT-LENGTH" Continue
If name="LineTerminator" Continue
If $ZCVT(name,"U")="CONTENT-TYPE" {
If name'="CONTENT-TYPE",..ContentType="" Set
..ContentType=..EntityBody.GetAttribute(name) Do ..EntityBody.DeleteAttribute(name)
} Else {
Write name,": ",..EntityBody.GetAttribute(name),!
}
}
If ..EntityBody.%IsA("%Net.ChunkedWriter") {
Write "Content-Type: ",..ContentType,!
Set ztrap=$ZTrap,$ZTrap="IOTrap"
Set ..EntityBody.TranslateTable=table
Do $ZU(96,18,2,"RAW")
Do ..EntityBody.OutputStream()
Set $ZTrap=""
} ElseIf ..EntityBody.Size>0 {
Set size=..ContentLength
If table="UnicodeLittle"||(table="UnicodeBig") Set size=size*2
If
table'="RAW",($extract(table,1,$length("Latin"))'="Latin"),($extract(table,1,$length("CP"
))'="CP") {
Set size=0
While '..EntityBody.AtEnd { Set
size=size+$length($zconvert(..EntityBody.Read(10000),"O",table)) }
Do ..EntityBody.Rewind()
}
Write "Content-Length: ",size,!
Write "Content-Type: ",..ContentType,!
Write !
Set ztrap=$ZTrap,$ZTrap="IOTrap"
Do $ZU(96,18,2,table)
Set $ZTrap=""
Do ..EntityBody.OutputToDevice()
} Else {
Write !
}
Set ztrap=$ZTrap,$ZTrap="IOTrap"
Set writeError=1
Write *-3
Set $ZTrap=""
If test=1 {
Use io Do:$get(charset)'="" $zutil(96,18,2,charset)
Quit 1
}
Set ..HttpResponse=##class(%Net.HttpResponse).%New()
If $zobjval(,/*ResponseStream*/24,0,3,24)'="" Set
..HttpResponse.Data=$zobjval(,/*ResponseStream*/24,0,3,24)
Set return=..Read($zobjval(,/*Device*/2,0,3,2),$zobjval(,/*Timeout*/26,0,3,26))
Use io
If $zobjval(,/*Device*/2,0,3,2)'="" Close $zobjval(,/*Device*/2,0,3,2) Set
$zobjval(,/*Device*/2,0,3,2)=""
Set
redirect=$select($extract(..HttpResponse.StatusCode)=3:$zobjval(,/*FollowRedirect*/5,0,3,
5),1:0)
If (redirect="") Set redirect=((type="GET")||(type="HEAD"))
If
redirect,..HttpResponse.GetHeader("LOCATION")'="",$zobjval(,/*RedirectNo*/22,0,3,22)<5 {
Set $zobjval(,/*RedirectNo*/22,0,3,22)=$zobjval(,/*RedirectNo*/22,0,3,22)+1
Set location=$zstrip(..HttpResponse.GetHeader("LOCATION"),"<>W")
If $zconvert($extract(location,1,7),"l")="http://" {
Set server=$piece($extract(location,8,*),"/")
If server[":" Set ..Port=$piece(server,":",2),server=$piece(server,":")
Set ..Server=server
Set location="/"_$piece($extract(location,8,*),"/",2,3641144)
If
$zobjval(,/*ProxyServer*/19,0,3,19)'="",+($zobjval(,/*ProxyPort*/18,0,3,18))'=0 {
Set $zobjval(,/*ProxyHTTPS*/17,0,3,17)=0
} Else {
Set $zobjval(,/*Https*/11,0,3,11)=0
}
} ElseIf $zconvert($extract(location,1,8),"l")="https://" {
Set server=$piece($extract(location,9,*),"/")
If server[":" Set ..Port=$piece(server,":",2),server=$piece(server,":")
Set ..Server=server
Set location="/"_$piece($extract(location,9,*),"/",2,3641144)
If
$zobjval(,/*ProxyServer*/19,0,3,19)'="",+($zobjval(,/*ProxyPort*/18,0,3,18))'=0 {
Set $zobjval(,/*ProxyHTTPS*/17,0,3,17)=1
} Else {
Set $zobjval(,/*Https*/11,0,3,11)=1
}
}
If $extract(location)'="/" {
Set
location=$$CSPNormalizeURL^%SYS.cspServer(location,$zobjval(,/*Location*/12,0,3,12))
}
Set return=..Send(type,location,test)
}
Do:reset ..Reset()
If test=2 Do ..HttpResponse.OutputToDevice()
Quit return
IOTrap
Set $ztrap=""
If writeError {
Set
https=$select(($zobjval(,/*ProxyServer*/19,0,3,19)'="")&&(+($zobjval(,/*ProxyPort*/18,0,3
,18))'=0):$zobjval(,/*ProxyHTTPS*/17,0,3,17),1:$zobjval(,/*Https*/11,0,3,11))
If https {
Set
return=$$Error^%apiOBJ(6085,$zobjval(,/*SSLConfiguration*/25,0,3,25))
} Else {
Set return=$$Error^%apiOBJ(5002,$zerror)
}
} Else {
Set return=$$Error^%apiOBJ(5911,table)
}
Error Use:$get(io)'="" io
Do:$get(charset)'="" $ZU(96,18,2,charset)
If $zobjval(,/*Device*/2,0,3,2)'="" Close $zobjval(,/*Device*/2,0,3,2) Set
$zobjval(,/*Device*/2,0,3,2)=""
Quit return }
zServerGet(%this) public {
Quit $get($zobjval(,/*Headers*/8,0,3,8,"HOST")) }
zServerSet(%this,value) public {
Quit ..SetHeader("Host",value) }
zSetHeader(%this,name,value) public {
Set uname=$zconvert(name,"u")
If uname="CONTENTTYPE"||(uname="CONTENT-TYPE") Set ..ContentType=value Quit 1
If uname="CONTENTENCODING"||(uname="CONTENT-ENCODING") Set ..ContentEncoding=value
Quit 1
If uname="CONTENTLENGTH"||(uname="CONTENT-LENGTH") Quit $$Error^%apiOBJ(6007)
If uname="CONNECTION" Quit $$Error^%apiOBJ(6008)
If uname="USER-AGENT"||(uname="HOST")||(uname="REFERER")||(uname="CONNECTION"){
Set
$zobjval(,/*Headers*/8,0,3,8,uname)=value,$zobjval(,/*Headers*/8,0,3,8,uname,0)=name
If uname="REFERER" Set $zobjval(,/*Headers*/8,0,3,8,uname,1)=4
} ElseIf $get($zobjval(,/*Headers*/8,0,3,8,uname))'="" {
Set
$zobjval(,/*Headers*/8,0,3,8,uname)=$zobjval(,/*Headers*/8,0,3,8,uname)_","_value
} Else {
Set
$zobjval(,/*Headers*/8,0,3,8,uname)=value,$zobjval(,/*Headers*/8,0,3,8,uname,0)=name,$zob
jval(,/*Headers*/8,0,3,8,uname,1)=$increment($zobjval(,/*Headers*/8,0,3,8))
}
Quit 1 }
zSetParam(%this,name,value,index=1) public {
If '$data($zobjval(,/*Params*/14,0,3,14,name,index)) Set
$zobjval(,/*Params*/14,0,3,14)=$get($zobjval(,/*Params*/14,0,3,14))+1,$zobjval(,/*Params*
/14,0,3,14,name,index,1)=$zobjval(,/*Params*/14,0,3,14)
Set
$zobjval(,/*Params*/14,0,3,14,name,index)=$get(value),$zobjval(,/*Params*/14,0,3,14,name,
index,0)=$data(value)#2
Quit }
zUserAgentGet(%this) public {
Quit $get($zobjval(,/*Headers*/8,0,3,8,"USER-AGENT")) }
zUserAgentSet(%this,value) public {
Quit ..SetHeader("User-Agent",value) }
zrestServiceContextGet(%this) public {
quit $zobjval(,/*restServiceContext*/29,0,3,29) }
zrestServiceContextSet(%this,value) public {
set
$zobjval(,/*restServiceContext*/29,0,3,29)=$select($extract(value)="/":"",1:"/")_value
quit 1 }
zAuthorizationDisplayToLogical(%val)
Quit %val
zAuthorizationIsValid(%val)
Quit $select(($length(%val)'>50):1,1:$$Error^%apiOBJ(7201,%val,50))
zAuthorizationLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
zAuthorizationLogicalToOdbc(%val)
Quit %val
zAuthorizationNormalize(%val)
Quit %val
zEntityBodyDelete(streamvalue) public {
Set $ZTrap = "CatchError"
Quit
$select(streamvalue="":$$Error^%apiOBJ(5813),1:##class("%Library.GlobalBinaryStream").%De
lete($select(streamvalue="":"",1:$listbuild($listget(streamvalue),$listget(streamvalue,2)
,""))))
CatchError Set $ZTrap=""
Quit $$Error^%apiOBJ(5002,$zerror) }
zEntityBodyGetObject(%this,force=0) public {
Quit:$zobjval(,/*EntityBody*/4,0,3,3)=""
$select($zobjval(,/*EntityBody*/3,0,3,3)="":"",1:$listbuild($listget($zobjval(,/*EntityBo
dy*/3,0,3,3)),$listget($zobjval(,/*EntityBody*/3,0,3,3),2),""))
Quit:(+..EntityBody.%GetSwizzleObject(force,.oid)) oid Quit "" }
zEntityBodyGetObjectId(%this,force=0) public {
Quit $listget(..EntityBodyGetObject(force)) }
zEntityBodyGetSwizzled(%this) public {
If $zobjval(,/*EntityBody*/3,0,3,3)="" Quit ..EntityBodyNewObject("")
Set
oref=##class("%Library.GlobalBinaryStream").%Open($select($zobjval(,/*EntityBody*/3,0,3,3
)="":"",1:$listbuild($listget($zobjval(,/*EntityBody*/3,0,3,3)),$listget($zobjval(,/*Enti
tyBody*/3,0,3,3),2),""))) If oref="" Quit ""
Set $zobjval(,/*EntityBody*/4,0,0,3)=oref,$zobjmods(,3)=1
Quit oref }
zEntityBodyIsModified(%this) public {
Quit $zobjmod(,3) }
zEntityBodyIsValid(value) public {
Quit 1 }
zEntityBodyNewObject(%this,type="") public {
Set $ZTrap = "CatchError"
Set sc=1
If type="" {
Set type = "%Library.GlobalBinaryStream"
} ElseIf '($zobjclassmethod(type,"%IsA","%Library.GlobalBinaryStream")) {
Set sc=$$Error^%apiOBJ(5833,"xobw.RestRequest","EntityBody") Quit ""
}
Set newobject=$zobjclassmethod(type,"%New","") If newobject="" Quit ""
Set ..EntityBody=newobject
Quit newobject
CatchError Set $ZTrap=""
If (+sc) Set sc = $$Error^%apiOBJ(5002,$ze)
Quit "" }
zEntityBodyOid(streamvalue) public {
Quit
$select(streamvalue="":"",1:$listbuild(streamvalue_"","%Library.GlobalBinaryStream",""))
}
zEntityBodyOpen(streamvalue) public {
If $get(streamvalue)="" {
Set object=##class("%Library.GlobalBinaryStream").%New("")
} Else {
Set
object=##class("%Library.GlobalBinaryStream").%Open($select(streamvalue="":"",1:$listbuil
d($listget(streamvalue),$listget(streamvalue,2),"")))
If $isobject(object),object.IsNull()=1 Quit ""
}
Quit object }
zEntityBodySet(%this,newvalue) public {
If newvalue="" Set
$zobjval(,/*EntityBody*/4,0,3,3)="",$zobjval(,/*EntityBody*/3,0,3,3)="" Quit 1
If '$isobject(newvalue) Quit $$Error^%apiOBJ(5807,newvalue)
If newvalue=$zobjval(,/*EntityBody*/4,0,3,3) Quit 1
If newvalue.%Extends("%AbstractStream") {
Set
$zobjval(,/*EntityBody*/4,0,3,3)=newvalue,$zobjval(,/*EntityBody*/3,0,3,3)=""
} Else {
Do ..EntityBody.Rewind()
Quit ..EntityBody.CopyFrom(newvalue)
}
Quit 1 }
zEntityBodySetModified(%this,newvalue) public {
Set $zobjmod(,3)=newvalue Quit 1 }
zFollowRedirectDisplayToLogical(%val="")
Quit ''%val
zFollowRedirectIsValid(%val="")
Quit $select($isvalidnum(%val,0,0,2)&&(+%val'=2):1,1:$$Error^%apiOBJ(7206,%val))
zFollowRedirectLogicalToDisplay(%val="")
Quit %val
zFollowRedirectNormalize(%val)
Quit %val\1
zHttpResponseGetSwizzled(%this) public {
Quit $zobjval(,/*HttpResponse*/10,0,3,9) }
zHttpResponseIsModified(%this) public {
Quit $zobjmod(,9) }
zHttpResponseIsValid(value) public {
Quit 1 }
zHttpResponseNewObject(%this) public {
Set newobject=##class(%Net.HttpResponse).%New("") If newobject="" Quit ""
Set $zobjval(,/*HttpResponse*/10,0,3,9)=newobject,
$zobjval(,/*HttpResponse*/9,0,3,9)="",$zobjmods(,10)=1
Quit newobject }
zHttpResponseSet(%this,newvalue) public {
If newvalue'="" { If '$isobject(newvalue) { Quit $$Error^%apiOBJ(5807,newvalue) } If
$zobjval(,/*HttpResponse*/10,0,3,9)=newvalue { Quit 1 } }
Set
$zobjval(,/*HttpResponse*/10,0,3,9)=newvalue,$zobjval(,/*HttpResponse*/9,0,3,9)="",$zobjm
ods(,10)=1
Quit 1 }
zHttpResponseSetModified(%this,newvalue) public {
Set $zobjmod(,9)=newvalue Quit 1 }
zLocationIsModified(%this) public {
Quit $zobjmod(,12) }
zLocationSetModified(%this,newvalue) public {
Set $zobjmod(,12)=newvalue Quit 1 }
zPortDisplayToLogical(%val)
Quit $in(%val,"",%val)
zPortIsModified(%this) public {
Quit $zobjmod(,16) }
zPortIsValid(%val)
Quit $select($isvalidnum(%val,0,,):1,1:$$Error^%apiOBJ(7207,%val))
zPortLogicalToDisplay(%val)
Quit %val
zPortNormalize(%val)
Quit %val\1
zPortSet(%this,newvalue) public {
Set $zobjval(,/*Port*/16,0,3,16)=newvalue Quit 1 }
zPortSetModified(%this,newvalue) public {
Set $zobjmod(,16)=newvalue Quit 1 }
zResponseStreamIsValid(value) public {
Quit 1 }
zrestServiceContextDisplayToLog(%val)
Quit %val
zrestServiceContextIsModified(%this) public {
Quit $zobjmod(,29) }
zrestServiceContextIsValid(%val)
Quit 1
zrestServiceContextLogicalToDis(%val)
Quit $tr(%val,$c(0),"")
zrestServiceContextLogicalToOdb(%val)
Quit %val
zrestServiceContextNormalize(%val)
Quit $e(%val,1,50)
zrestServiceContextSetModified(%this,newvalue) public {
Set $zobjmod(,29)=newvalue Quit 1 }
xobw.RestRequestFactory.1^INT^1^62153,34146^0^1
;xobw.RestRequestFactory.1
;(C)InterSystems, generated for class xobw.RestRequestFactory. Do NOT edit. 03/03/2011
09:29:06AM
;;00BD3B32F0505D63;xobw.RestRequestFactory
;
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
Quit sc }
%ClassName(fullname) public {
Quit $select($get(fullname,0):"xobw.RestRequestFactory",1:"RestRequestFactory") }
%Construct(%this,webServiceName)
Set
$zobjval(,/*webServiceMetadata*/1,0,3,1)="",$zobjval(,/*webServiceMetadata*/2,0,3,1)=""
Quit ..%OnNew(.webServiceName)
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.RestRequestFactory"),cloned(+object)=%this,cloned(+obje
ct,0)=object Set $zobjmod(,0)=1
Set $zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2)
If deep>0 {
If $isobject(object.webServiceMetadata) Set
$zobjval(,2,0)=$zobjval(object,2,0).%ConstructClone(1,.cloned)
}
Quit %this }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.RestRequestFactory","%Library.RegisteredObject"),$s(isclass[
".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,*))) }
%GetParameter(paramname="") public {
Quit $case(paramname,"PROPERTYVALIDATION":2,:"") }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.RestRequestFactory","%Library.RegisteredObject"),$s(isclass[
".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,*))) }
%IsModified(%this) public {
Quit $zobjmod(,0) }
%NormalizeObject(%this)
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%OnNew(%this,webServiceName) public {
set webServiceId=##class(xobw.WebServiceMetadata).getWebServiceId(webServiceName)
if 'webServiceId {
do ##class(xobw.error.DialogError).forceError(186006_"^"_webServiceName)
}
set ..webServiceMetadata=##class(xobw.WebServiceMetadata).%OpenId(webServiceId)
quit 1 }
%PackageName()
Quit "xobw"
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
If $zobjval(,/*webServiceMetadata*/2,0,3,1)'="" {
Set:'$data(%objTX(1,+$zobjval(,/*webServiceMetadata*/2,0,3,1),1))
%objTX(1,+$zobjval(,/*webServiceMetadata*/2,0,3,1))=$zobjval(,/*webServiceMetadata*/2,0,3
,1),%objTX(1,+$zobjval(,/*webServiceMetadata*/2,0,3,1),1)=..webServiceMetadataGetObject(1
),%objTX(1,+$zobjval(,/*webServiceMetadata*/2,0,3,1),6)=1 Set
$zobjval(,/*webServiceMetadata*/1,0,3,1)=$listget(%objTX(1,+$zobjval(,/*webServiceMetadat
a*/2,0,3,1),1)) }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set %objTX(1,intOref)=%this,%objTX(1,intOref,1)=-1,%objTX(1,intOref,6)=4
Set tDepth=$select(depth'=2:depth,1:1)
Set Poref=$zobjval(,2,0) If Poref'="" {
If '$data(%objTX(1,+Poref)) Set sc=Poref.%AddToSaveSet(tDepth) Goto:('sc) exit
}
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%ValidateObject(%this,force=0)
Quit 1
zcreateRestRequest(%this,webServerName) public {
if ..webServiceMetadata.type'=2 {
do ##class(xobw.error.DialogError).forceError(186007)
}
set restRequest=##class(xobw.RestRequest).%New()
if restRequest'="" {
set restRequest.ReadRawMode=1 ;per InterSystems ticket# 736138
set webServerId=##class(xobw.WebServer).getWebServerId(webServerName)
if 'webServerId {
do ##class(xobw.error.DialogError).forceError(186005_"^"_webServerName)
}
set webServer=##class(xobw.WebServer).%OpenId(webServerId)
// web server is disabled
if 'webServer.status {
do
##class(xobw.error.DialogError).forceError(186002_"^"_webServer.name)
}
do ..setUpCredentials(webServer, restRequest)
do ..setUpServer(webServer, restRequest)
}
quit $get(restRequest) }
zgetRestRequest(webServiceName,webServerName) public {
set factory=##class(xobw.RestRequestFactory).%New(webServiceName)
if factory'="" {
set restRequest=factory.createRestRequest(webServerName)
}
quit $get(restRequest,"") }
zsetUpCredentials(%this,webServer,restRequest) public {
set
authorizedWebServiceId=##class(xobw.WebServicesAuthorized).getAuthorizedWebServiceId(webS
erver,..webServiceMetadata)
// web service is not authorized
if 'authorizedWebServiceId {
do
##class(xobw.error.DialogError).forceError(186003_"^"_..webServiceMetadata.name_"^"_webSe
rver.name)
}
set
authorizedWebService=##class(xobw.WebServicesAuthorized).%OpenId(authorizedWebServiceId)
// web service is disabled
if 'authorizedWebService.status {
do
##class(xobw.error.DialogError).forceError(186004_"^"_..webServiceMetadata.name_"^"_webSe
rver.name)
}
if webServer.loginRequired="1"!(webServer.loginRequired="") {
set restRequest.Username=webServer.userName
set restRequest.Password=webServer.getPassword()
}
quit }
zsetUpServer(%this,webServer,restRequest) public {
do webServer.setUpHttpRequest(restRequest)
set restRequest.restServiceContext=..webServiceMetadata.contextRoot
quit }
zwebServiceMetadataGetObject(%this,force=0) public {
Quit
$select($zobjval(,/*webServiceMetadata*/2,0,3,1)=""||($zobjval(,/*webServiceMetadata*/1,0
,3,1)'=""):$select($zobjval(,/*webServiceMetadata*/1,0,3,1)="":"",1:$listbuild($zobjval(,
/*webServiceMetadata*/1,0,3,1)_"")),(+..webServiceMetadata.%GetSwizzleObject(force,.oid))
:oid,1:"") }
zwebServiceMetadataGetObjectId(%this,force=0) public {
Quit $listget(..webServiceMetadataGetObject(force)) }
zwebServiceMetadataGetSwizzled(%this) public {
If $zobjval(,/*webServiceMetadata*/1,0,3,1)="" Quit ""
Set
oref=##class(xobw.WebServiceMetadata).%Open($select($zobjval(,/*webServiceMetadata*/1,0,3
,1)="":"",1:$listbuild($zobjval(,/*webServiceMetadata*/1,0,3,1)_""))) If oref="" Quit ""
Set $zobjval(,/*webServiceMetadata*/2,0,0,1)=oref,$zobjmods(,1)=1,$zobjmods(,2)=1
Quit oref }
zwebServiceMetadataIsModified(%this) public {
Quit $zobjmod(,1) }
zwebServiceMetadataIsValid(value) public {
Quit 1 }
zwebServiceMetadataNewObject(%this) public {
Set newobject=##class(xobw.WebServiceMetadata).%New("") If newobject="" Quit ""
Set $zobjval(,/*webServiceMetadata*/2,0,3,1)=newobject,
$zobjval(,/*webServiceMetadata*/1,0,3,1)="",$zobjmods(,2)=1
Quit newobject }
zwebServiceMetadataSet(%this,newvalue) public {
If newvalue'="" { If '$isobject(newvalue) { Quit $$Error^%apiOBJ(5807,newvalue) } If
$zobjval(,/*webServiceMetadata*/2,0,3,1)=newvalue { Quit 1 } }
Set
$zobjval(,/*webServiceMetadata*/2,0,3,1)=newvalue,$zobjval(,/*webServiceMetadata*/1,0,3,1
)="",$zobjmods(,2)=1
Quit 1 }
zwebServiceMetadataSetModified(%this,newvalue) public {
Set $zobjmod(,1)=newvalue Quit 1 }
zwebServiceMetadataSetObject(%this,newvalue) public {
Set
$zobjval(,/*webServiceMetadata*/1,0,3,1)=$listget(newvalue),$zobjval(,/*webServiceMetadat
a*/2,0,3,1)="",$zobjmods(,2)=1
Quit 1 }
zwebServiceMetadataSetObjectId(%this,newid) public {
Quit ..webServiceMetadataSetObject($select(newid="":"",1:$listbuild(newid_""))) }
zwebServiceMetadataUnSwizzle(%this,force=0) public {
If $zobjval(,/*webServiceMetadata*/2,0,3,1)="" Quit 1
Set modbit=$zobjmod(,1)
Set sc=..webServiceMetadata.%GetSwizzleObject(force,.newvalue) Quit:('sc) sc
Set
$zobjval(,/*webServiceMetadata*/1,0,3,1)=$listget(newvalue),$zobjval(,/*webServiceMetadat
a*/2,0,3,1)=""
Set $zobjmod(,1)=modbit,$zobjmods(,2)=1
Quit 1 }
xobw.VistaInfoHeader.1^INT^1^62153,34147^0^1
;xobw.VistaInfoHeader.1
;(C)InterSystems, generated for class xobw.VistaInfoHeader. Do NOT edit. 03/03/2011
09:29:07AM
;;0107E4A1737DA725;xobw.VistaInfoHeader
;
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
s proporef=$zobjproperty(%this,"Fault")
s proporef=$zobjproperty(%this,"vistaInfo")
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
i AllowedDepth>0 s AllowedDepth = AllowedDepth - 1
i AllowedCapacity>0 d
. s AllowedCapacity = AllowedCapacity - 1
. s AllowedCapacity = AllowedCapacity/2
s proporef=$zobjval(%this,2,0)
i proporef'="" s sc=1 i AllowedDepth'=0,AllowedCapacity'=0 s
sc=proporef.%BindExport(dev,.Seen,RegisterOref,AllowedDepth,AllowedCapacity) q:('sc) sc
s proporef=$zobjval(%this,6,0)
i proporef'="",dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef),1:$zobjexport(proporef_"",3)
+$zobjexport($zobjval(proporef,0,,,,3),3)+$zobjexport(proporef,3))!1 u t
if proporef'="",dev'="" d
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(2),1:$zobjexport(2_"",3))!1 u t
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.Count()),1:$zobjexport(propor
ef.Count()_"",3))!1 u t
. s idx="" f s value=proporef.GetNext(.idx) q:idx="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(idx),1:$zobjexport(idx_"",3))!1 u t s
t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(value),1:$zobjexport(value_"",3))!1 u
t
Quit sc }
%ClassName(fullname) public {
Quit $select($get(fullname,0):"xobw.VistaInfoHeader",1:"VistaInfoHeader") }
%Construct(%this,initvalue)
Set
$zobjval(,/*Fault*/1,0,3,1)="",$zobjval(,/*Fault*/2,0,3,1)="",$zobjval(,/*actor*/3,0,3,3)
="",$zobjval(,/*mustUnderstand*/4,0,3,4)="",$zobjval(,/*vistaInfo*/5,0,3,5)="",$zobjval(,
/*vistaInfo*/6,0,3,5)=""
Set $zobjmod(,5)=0,$zobjmods(,5)=0
Quit 1
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.VistaInfoHeader"),cloned(+object)=%this,cloned(+object,
0)=object Set $zobjmod(,0)=1
Set
$zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2),$zobjval(,3)=$zobjval(obj
ect,3)
Merge $zobjval(,5,0)=$zobjval(object,5,0),$zobjval(,6,0)=$zobjval(object,6,0) Set
$zobjval(,5)="",$zobjval(,6)=""
Set $zobjval(,4)=$zobjval(object,4)
If deep>0 {
If $isobject(object.Fault) Set
$zobjval(,2,0)=$zobjval(object,2,0).%ConstructClone(1,.cloned)
}
Quit %this }
%Destruct(%this) public {
If
$isobject($zobjval(,/*vistaInfo*/6,0,3,5)),$zobjcnt($zobjval(,/*vistaInfo*/6,0,3,5))>1 Do
$zobjval(,/*vistaInfo*/6,0,3,5).%Disconnect()
Quit 1 }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.VistaInfoHeader","%SOAP.Header","%Library.RegisteredObject",
"%XML.Adaptor"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(
isclass,2,*))) }
%GetParameter(paramname="") public {
Quit
$case(paramname,"KEYNAME":"VistaInfoHeader","PROPERTYVALIDATION":2,"XMLENABLED":1,"XMLIGN
OREINVALIDATTRIBUTE":1,"XMLIGNOREINVALIDTAG":0,"XMLIGNORENULL":0,"XMLINCLUDEINGROUP":1,"X
MLNAME":"hdr:VistaInfoHeader","XMLSEQUENCE":0,:"") }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.VistaInfoHeader","%SOAP.Header","%Library.RegisteredObject")
,$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,*)))
}
%IsModified(%this) public {
Quit $zobjmod(,0) }
%NormalizeObject(%this)
Set:$zobjval(,/*mustUnderstand*/4,0,3,4)'=""
$zobjval(,/*mustUnderstand*/4,0,3,4)=(..mustUnderstandNormalize($zobjval(,/*mustUnderstan
d*/4,0,3,4)))
new data,key
Set key="" For Set key=$order($zobjval(,/*vistaInfo*/5,0,3,5,key),1,data)
Quit:key="" Set:data'="" $zobjval(,/*vistaInfo*/5,0,3,5,key)=..vistaInfoNormalize(data)
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%PackageName()
Quit "xobw"
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set %objTX(1,intOref)=%this,%objTX(1,intOref,1)=-1,%objTX(1,intOref,6)=4
Set tDepth=$select(depth'=2:depth,1:1)
Set Poref=$zobjval(,2,0) If Poref'="" {
If '$data(%objTX(1,+Poref)) Set sc=Poref.%AddToSaveSet(tDepth) Goto:('sc) exit
}
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%ValidateObject(%this,force=0)
New iv,sc,rc Set sc=1
If '(..%IsModified()) Quit 1
If $zobjmod(,3) Set iv=$zobjval(,/*actor*/3,0,3,3) If iv'="" Set
rc=(..actorIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"actor",iv)
If $zobjmod(,4) Set iv=$zobjval(,/*mustUnderstand*/4,0,3,4) If iv'="" Set
rc=(..mustUnderstandIsValid(iv)) If ('rc) Set
sc=$$xEmbedErr(sc,rc,5802,"mustUnderstand",iv)
Quit sc
xEmbedErr(sc,rc,errcode,loc,val) { Set
rc=$$EmbedError^%apiOBJ(rc,errcode,"xobw.VistaInfoHeader"_":"_loc,val) Quit
$select(+sc:rc,1:$$AppendStatus^%occSystem(sc,rc)) }
Quit
zImportHeader(%this,headerName,format,handler,message,status) public {
Set tree=handler.DocumentId,..Fault=""
Set status=..XMLImport(@tree@(message),format,"",handler,message)
Quit 1 }
zWriteHeader(%this,tag,format,typeNamespace,elementQualified,soapPrefix,soapVersion,names
paces) public {
Set fmt=""
If fmt="" Set fmt=$get(format)
If $get(soapPrefix)="" Set soapPrefix="SOAP-ENV"
Set namespace=""
If namespace="" Set namespace=$get(typeNamespace)
If '$isobject($get(namespaces)) Set namespaces=##class(%XML.Namespaces).%New()
If (namespace'="") && (namespaces.GetPrefix(namespace)="") {
Do namespaces.AddNamespace(namespace,"hdr")
}
Set saveQualified=namespaces.ElementQualified
Set
namespaces.ElementQualified=$select($get(elementQualified)'="":elementQualified,1:(fmt'["
encoded"))
If $zobjval(,/*actor*/3,0,3,3)'="" {
Set
attrs($increment(attrs))=soapPrefix_":"_$select($get(soapVersion)="1.2":"role",1:"actor")
Set attrs(attrs,0)=$zobjval(,/*actor*/3,0,3,3)
}
If $zobjval(,/*mustUnderstand*/4,0,3,4)'="" {
Set attrs($increment(attrs))=soapPrefix_":mustUnderstand"
If $get(soapVersion)="1.2" {
Set
attrs(attrs,0)=$select($zobjval(,/*mustUnderstand*/4,0,3,4):"true",1:"false")
} Else {
Set attrs(attrs,0)=$zobjval(,/*mustUnderstand*/4,0,3,4)
}
}
If fmt="encoded" {
Set attrs($increment(attrs))=soapPrefix_":encodingStyle"
If soapVersion="1.2" {
Set attrs(attrs,0)="http://www.w3.org/2003/05/soap-encoding"
Set fmt="encoded12"
} Else {
Set attrs(attrs,0)="http://schemas.xmlsoap.org/soap/encoding/"
}
}
Set sc=..XMLExport(,fmt_",inline",namespaces,.attrs)
Set namespaces.ElementQualified=saveQualified
Quit sc }
zXMLDTD(top,format,input,dtdlist)
Quit
##class(%XML.Implementation).XMLDTD("xobw.VistaInfoHeader",.top,.format,.input,.dtdlist)
zXMLExport(%this,top,format,namespaces,attrs,createId,typeAttr,oreflist,idlist,initialInd
ent,local,mimeAttachments)
New
sc,val,aval,key,k,first,len,id,temp,temp1,fmt,topPrefix,topAttrs,typesPrefix,beginprefix,
endprefix,attrsPrefix,soapPrefix,schemaPrefix,xsiPrefix,xsiAttrs,ignoreNull,indentFlag,in
dentChars,currentIndent,initialCR,type,inlineFlag,deepFlag,tmpPrefix,tag,prefixDepth,xsit
ype,nocycle,hasNoContent,hasElement,usePrefix,encoded,soap12
Set sc=1,$ztrap="XMLExportTrap"
Set
fmt=$zcvt($get(format),"L"),encoded=$case($piece(fmt,",",1),"":0,"literal":0,"encoded":1,
"encoded12":1,:"")
If encoded="" Quit $$Error^%apiOBJ(6231,fmt)
Set soap12=encoded&&($piece(fmt,",",1)="encoded12")
Set ignoreNull=0
Set indentFlag=(fmt["indent")
Set inlineFlag=(fmt["inline")
Set deepFlag=(fmt'["shallow")
Set nocycle=(fmt["nocyclecheck")
Set currentIndent=$get(initialIndent)
If indentFlag {
Set indentChars=$piece($piece(fmt,"indent(",2),")",1) If indentChars="" Set
indentChars=" "
Set initialCR=($extract(currentIndent,1,2)=$c(13,10))
} Else {
Set (indentChars,currentIndent)=""
}
Set fmt=$piece(fmt,",",1)
If indentFlag Set fmt=fmt_",indent("_indentChars_")"
If inlineFlag Set fmt=fmt_",inline"
If 'deepFlag Set fmt=fmt_",shallow"
If nocycle Set fmt=fmt_",nocyclecheck"
Set mimeAttachments=$get(mimeAttachments)
Set id=$get(createId)
Set temp=""
If 'nocycle&&('encoded||inlineFlag) {
If $data(oreflist(%this)) Quit $$Error^%apiOBJ(6296,"xobw.VistaInfoHeader")
Set oreflist(%this)=""
}
Set namespaces=$get(namespaces)
Set tag=$get(top)
If $IsObject(namespaces) {
Set
sc=namespaces.PushNodeForExport("",$get(local,0),(encoded||(($get(typeAttr)'="")&&(typeAt
tr'="xobw.VistaInfoHeader"))),"",.topPrefix,.topAttrs,.typesPrefix,.attrsPrefix,.soapPref
ix,.schemaPrefix,.xsiPrefix,.xsiAttrs,.usePrefix)
If 'sc Quit sc
Set beginprefix=$select(namespaces.ElementQualified&&usePrefix:typesPrefix,1:"")
If xsiAttrs'="" Set xsiAttrs=" "_xsiAttrs
If topAttrs'="" Set temp=temp_" "_topAttrs
If tag="" Set tag=$select(encoded:"VistaInfoHeader",1:"hdr:VistaInfoHeader")
Set xsitype=namespaces.OutputTypeAttribute
} Else {
Set typesPrefix=namespaces If (typesPrefix'="")&&($extract(typesPrefix,*)'=":") Set
typesPrefix=typesPrefix_":"
Set (topPrefix,attrsPrefix,topAttrs,beginprefix)=""
Set soapPrefix="SOAP-ENC:"
Set schemaPrefix="s:"
Set xsiPrefix=$select(encoded:"xsi:",1:"d5p1:")
Set xsiAttrs=$select(encoded:"",1:" xmlns:d5p1=""http://www.w3.org/2001/XMLSchemainstance""")
If tag="" Set
tag=typesPrefix_$select(encoded:"VistaInfoHeader",1:"hdr:VistaInfoHeader")
Set xsitype=0
}
Set local=+$get(local)
If (($get(typeAttr)'="")&&(typeAttr'="xobw.VistaInfoHeader")) Set temp=temp_"
"_xsiPrefix_"type="""_typesPrefix_"VistaInfoHeader"""_xsiAttrs,xsiAttrs=""
Set endprefix="</"_beginprefix,beginprefix="<"_beginprefix
If id'="" {
If $piece($get(idlist(+%this)),",",2)'="" Quit 1
Set idlist(+%this)=id_",1"
Set temp=" "_$select($get(soap12):soapPrefix_"id",1:"id")_"=""id"_id_""""_temp
}
If encoded Set temp=temp_xsiAttrs,xsiAttrs=""
If indentFlag Write currentIndent Set
currentIndent=$select(initialCR:"",1:$c(13,10))_currentIndent_indentChars
If tag[":" Set topPrefix=$piece(tag,":"),tag=$piece(tag,":",2) If topPrefix'="" Set
topPrefix=topPrefix_":"
Write "<"_topPrefix_tag_temp
For k=1:1:$get(attrs) Write " "_attrs(k)_"="""_$zcvt(attrs(k,0),"O","XML")_""""
Write ">"
Set aval=..vistaInfo
Set k="" Set val=aval.GetNext(.k) If k'="" {
If encoded {
If indentFlag Write currentIndent Set currentIndent=currentIndent_indentChars
If soap12 { Write beginprefix_"hdr:vistaInfo"_$select(xsitype:"",1:"
"_soapPrefix_"itemType="""_typesPrefix_"PairOfnameString"_"""")_"
"_soapPrefix_"arraySize="""_aval.Count()_""""_">"
} Else { Write beginprefix_"hdr:vistaInfo "_$select(xsitype:"
"_xsiPrefix_"type="""_soapPrefix_"Array""",1:soapPrefix_"arrayType="""_typesPrefix_"PairO
fnameString"_"["_aval.Count()_"]""")_">" }
}
Else {
If indentFlag Write currentIndent Set currentIndent=currentIndent_indentChars
Write beginprefix_"hdr:vistaInfo>"
}
While k'="" {
If val'="" {
If encoded {
Write currentIndent_beginprefix_"hdr:vistaInfoItem>"
Write currentIndent_indentChars_beginprefix_"name>"_k_endprefix_"name>"
Write currentIndent_indentChars_beginprefix_"string"_$select(xsitype:"
"_xsiPrefix_"type="""_schemaPrefix_"string""",1:"")_">"_$select(val=$c(0):"",1:$select((v
al["<")||(val[">")||(val["&"):"<![CDATA["_$select(val["]]>":$$XMLescapeCData(val),1:val)_
"]]>",1:val))_endprefix_"string>"
Write currentIndent_endprefix_"hdr:vistaInfoItem>"
} Else {
Write currentIndent_beginprefix_"hdr:vistaInfoItem
name="""_$zcvt(k,"O","XML")_""""_$select(encoded&&xsitype:"
"_xsiPrefix_"type="""_schemaPrefix_"string""",1:"")_">"_$select(val=$c(0):"",1:$select((v
al["<")||(val[">")||(val["&"):"<![CDATA["_$select(val["]]>":$$XMLescapeCData(val),1:val)_
"]]>",1:val))_endprefix_"hdr:vistaInfoItem>"
}
} Else {
If encoded {
Write currentIndent_beginprefix_"hdr:vistaInfoItem>"
Write currentIndent_indentChars_beginprefix_"name>"_k_endprefix_"name>"
Write currentIndent_indentChars_beginprefix_"string
"_xsiPrefix_"nil=""true"""_xsiAttrs_"/>"
Write currentIndent_endprefix_"hdr:vistaInfoItem>"
} Else {
Write currentIndent_beginprefix_"hdr:vistaInfoItem
name="""_$zcvt(k,"O","XML")_""" "_xsiPrefix_"nil=""true"""_xsiAttrs_"/>"
}
}
Set val=aval.GetNext(.k)
}
If indentFlag Set currentIndent=$extract(currentIndent,1,*-$length(indentChars))
Write currentIndent
Write endprefix_"hdr:vistaInfo>"
}
If indentFlag Set currentIndent=$extract(currentIndent,1,*-$length(indentChars)) Write
currentIndent
Write "</"_topPrefix_tag_">" If indentFlag&&'initialCR Write ! Set
$extract(currentIndent,1,2)=""
If $IsObject(namespaces) Do namespaces.PopNode()
If 'encoded||inlineFlag {
If 'nocycle Kill oreflist(%this)
}
Quit sc
XMLExportTrap Set $ztrap=""
If $data(val) && $IsObject(val) && ($piece($ze,">",1)="<METHOD DOES NOT EXIST") {
Set sc=$$Error^%apiOBJ(6249,$zobjclass(val))
} Else {
Set sc=$$Error^%apiOBJ(5002,$ze)
}
XMLExportExit
If $IsObject(namespaces) Do namespaces.PopNode()
Quit sc
XMLescapeCData(line)
New pos Set pos=1
For Set pos=$find(line,"]]>",pos) Quit:pos=0 Set line=$extract(line,1,pos4)_"]]]]><![CDATA[>"_$extract(line,pos,*),pos=pos+11
Quit line
zXMLExportToStream(%this,export,top,format,namespaces,attrs,createId,typeAttr,oreflist,id
list,initialIndent) public {
Set io=$io
If $get(export)="" {
Set export=##class(%Library.FileCharacterStream).%New()
If $zbitget($zversion(0),1) Set export.TranslateTable="UTF8"
Set filestream=1
} Else {
Set filestream = ($zobjclass(export)="%Library.FileCharacterStream")
}
If filestream {
Set stream=export
} Else {
Set stream=##class(%Library.FileCharacterStream).%New()
If $zbitget($zversion(0),1) Set stream.TranslateTable="UTF8"
}
Set sc=stream.Write("") ; force stream's file to open
If (+sc) {
Set file=stream.Filename ; get filename and make current device
Use file
Set
sc=..XMLExport(.top,.format,.namespaces,.attrs,.createId,.typeAttr,.oreflist,.idlist,.ini
tialIndent)
// Don't Close file to leave stream positioned
Use io
}
// Need to ensdure that LineTerminator is correct for the platform
If (+sc) Set
stream.LineTerminator=$select(($zversion(1)=3):$char(10),1:$char(13,10))
If filestream || ('sc) Quit sc
Set sc=export.CopyFrom(stream)
Quit sc }
zXMLExportToString(%this,export,top,format,namespaces,attrs,createId,typeAttr,oreflist,id
list,initialIndent) public {
Set tSC=1,tIO=$IO,tXDEV="|XDEV|"_$JOB,$ZT="Trap"
Do {
/// For $$$IsUnicode use UTF-8
Open tXDEV:($ZF(6,1029,12):"":"S":/HOSTNAME="XSLT":/IOT=$S(($zcvt($get(format),"L")[",utf8")||$zbitget($z
version(0),1):"UTF8",1:"RAW"):/IBU=16384:/OBU=16384)
Use tXDEV
// Export to the XDEV buffer
Set tSC =
..XMLExport(.top,.format,.namespaces,.attrs,.createId,.typeAttr,.oreflist,.idlist,.initia
lIndent)
Quit:('tSC)
// Flush any remaining output
Write *-3
// Now read back a string (up to the maximum possible length, 32k or ~4MB for
long strings)
Set export = ""
While (1) {
Read tChunk:0
Quit:'$L(tChunk)
Set export = export _ tChunk
}
} While (0)
Exit
Close tXDEV
Use tIO
Quit tSC
Trap
Set
$ZT="",tSC=$S($ZE["<MAXSTRING>":$$Error^%apiOBJ(6279),1:$$Error^%apiOBJ(5002,$ZE))
Goto Exit }
zXMLGetSchemaImports(imports,classes)
Quit
##class(%XML.Implementation).XMLGetSchemaImports("xobw.VistaInfoHeader",.imports,.classes
)
zXMLImport(%this,top,format,namespace,handler,node,idlist,keynameattr,mimeAttachments)
New
tree,child,ref,loopref,pairref,data,aval,element,key,tag,id,sc,exists,tmp,tmpi,tmpns,clas
s,sublist,fmt,nsIndex,akeyname,part,partsById,encoded,encodedArray,SOAP12ENCns
Set SOAP12ENCns="http://www.w3.org/2003/05/soap-encoding"
Set sc=1
Set $ztrap="XMLImportTrap"
Set tree=handler.DocumentId
Set
fmt=$zcvt($get(format),"L"),encoded=$case($piece(fmt,",",1),"":0,"literal":0,"encoded":1,
"encoded12":1,:"")
If encoded="" Quit $$Error^%apiOBJ(6231,fmt)
Set fmt=$piece(fmt,",",1)
Set nsIndex=$select($get(namespace)="":"",1:$get(@tree@("ns",namespace)))
Set mimeAttachments=$get(mimeAttachments)
If mimeAttachments'="" {
For tmp=1:1:mimeAttachments.Count() {
Set part=mimeAttachments.GetAt(tmp)
If part.ContentId'="" Set partsById(part.ContentId)=part.Body
}
}
Set tag=$get(top)
If tag="" Set tag=$select(encoded:"VistaInfoHeader",1:"hdr:VistaInfoHeader")
If (@tree@(node,"t")'="e")||(tag'=@tree@(node)) Set ref=node Goto XMLImportMalformed
If encoded {
If $data(@tree@(node,"a","id")) Set idlist(node)=%this
}
If $get(@tree@(node,"nil"),0) Quit 1
Set sc=$$XMLImportElements(node)
XMLImportExit Quit sc
XMLImportElements(node)
Set child=""
XMLLOOP For { Set child=$order(@tree@(node,"c",child)) If
(child="")||(@tree@(child,"t")'="w") Quit }
If child="" Quit sc
Set tag=@tree@(child)
Set ref=child
If @tree@(ref,"t")'="e" Goto XMLImportMalformedNoTag
If tag="hdr:vistaInfo" {
If ($get(namespace)'="")&&'$case(@tree@(ref,"u"),"":1,nsIndex:1,:0) Goto XMLImportNS
If encoded&&$$XMLImportId() {
Set data=idlist(ref)
} Else {
If 'sc Goto XMLImportExit
Set aval=..vistaInfo
Set loopref=ref
Set element=$order(@tree@(loopref,"c",""))
While element'="" {
If @tree@(element,"t")'="w" {
Set ref=element
If @tree@(ref,"t")'="e" Goto XMLImportMalformedNoTag
If 'encoded&&(@tree@(ref)'="hdr:vistaInfoItem") Goto XMLImportBadTag
If ($get(namespace)'="")&&'$case(@tree@(ref,"u"),"":1,nsIndex:1,:0) Goto
XMLImportNS
If encoded {
Do XMLImportId() Goto:'sc XMLImportExit Set pairref=ref
Set ref="" For { Set ref=$order(@tree@(pairref,"c",ref)) If
(ref="")||(@tree@(ref,"t")'="w") Quit }
If (ref="")||(@tree@(ref,"t")'="e") Goto XMLImportMalformedNoTag
If @tree@(ref)'="name" Goto XMLImportBadTag
Set key=$order(@tree@(ref,"c","")) Goto:(@tree@(key,"t")'="c")
XMLImportMalformed Set key=@tree@(key)
For { Set ref=$order(@tree@(pairref,"c",ref)) If
(ref="")||(@tree@(ref,"t")'="w") Quit }
} Else {
Set key=$get(@tree@(ref,"a","name"))
}
If key="" Goto XMLImportNoKey
If encoded&&$$XMLImportId() {
Set data=idlist(ref)
} Else {
If 'sc Goto XMLImportExit
If $get(@tree@(ref,"nil"),0) { Set data=""
} Else {
Set data=$order(@tree@(ref,"c",""))
If $order(@tree@(ref,"c",data))'="" {
Set data="" If
'##class(%XML.ImportHandler).SerializeNode(tree,ref,0,0,.data) Goto XMLImportErr
} ElseIf data'="" { Goto:@tree@(data,"t")="e" XMLImportErr Set
data=@tree@(data) }
If data="" Set data=$c(0)
}
If encoded&&($data(@tree@(ref,"a","id"))) Set idlist(ref)=data
}
Do ..vistaInfo.SetAt(data,key)
}
Set element=$order(@tree@(loopref,"c",element))
}
Quit:('sc) Set ref=loopref
If encoded&&($data(@tree@(ref,"a","id"))) Set idlist(ref)=data
}
Goto XMLLOOP }
Goto XMLImportBadTag
XMLImportBadTag Quit $$Error^%apiOBJ(6237,tag_$$XMLImportLocation(ref))
XMLImportBadType Quit $$Error^%apiOBJ(6277,class,@tree@(ref)_$$XMLImportLocation(ref))
XMLImportErr
Set data=$order(@tree@(ref,"c",""))
If (data'="") {
If @tree@(data,"t")'="e" {
Quit
$$Error^%apiOBJ(6232,@tree@(ref)_$$XMLImportLocation(ref),$extract(@tree@(data),1,200))
} Else {
Quit $$Error^%apiOBJ(6253,@tree@(ref)_$$XMLImportLocation(ref),@tree@(data))
}
} Else {
Quit $$Error^%apiOBJ(6252,@tree@(ref)_$$XMLImportLocation(ref))
}
XMLImportIdErr Set sc=$$Error^%apiOBJ(6236,id,@tree@(ref)_$$XMLImportLocation(ref)) Quit
sc
XMLImportMalformed Set sc=$$Error^%apiOBJ(6233,@tree@(ref)_$$XMLImportLocation(ref)) Quit
sc
XMLImportMalformedNoTag Set
node=$get(@tree@(ref,"p")),sc=$$Error^%apiOBJ(6254,@tree@(ref),@tree@(node)_$$XMLImportLo
cation(node)) Quit sc
XMLImportNS Set sc=$$Error^%apiOBJ(6235,@tree@(ref)_$$XMLImportLocation(ref)) Quit sc
XMLImportNoKey Set sc=$$Error^%apiOBJ(6238,@tree@(ref)_$$XMLImportLocation(ref)) Quit sc
XMLImportLocation(node) new msg,loc
Set loc=$get(@tree@(node,"l"))
If loc="" Quit ""
Set
msg=$get(^%qCacheMsg("%ObjectErrors",$s(""'="":$zcvt("","L"),1:$get(^||%Language,"en")),"
XMLImportLocation")," (%1,%2)")
Quit $$FormatText^%occMessages(msg,$listget(loc,1),$listget(loc,2))
XMLImportTrap Set $ztrap=""
If $ZE["<CLASS DOES NOT EXIST>" Goto XMLImportBadTag
Quit $$Error^%apiOBJ(5002,$ZE)
XMLImportId() ;
If $data(@tree@(ref,"a","href")) {
Set id=$get(@tree@(ref,"a","href"))
If $extract(id)="#" {
Set tmp=$get(@tree@("id",$extract(id,2,*))) If tmp="" Goto XMLImportIdErr
Set ref=tmp
}
} ElseIf $data(@tree@(ref,"a","ref")) &&
($select($get(@tree@(ref,"a","ref","u"))="":"",1:$get(@tree@("ns#",^("u"))))=SOAP12ENCns)
{
Set id=$get(@tree@(ref,"a","ref"))
Set tmp=$get(@tree@("id",id)) If tmp="" Goto XMLImportIdErr
Set ref=tmp
} ElseIf '$data(@tree@(ref,"a","id")) {
Quit 0
}
Quit $data(idlist(ref))
zXMLImportAttributes(%this,tree,node,ignoreNull,keynameattr)
;
Quit 1
XMLImportAttrErr Quit
$$Error^%apiOBJ(6260,ref,$get(@tree@(node,"a",ref)),@tree@(node)_$$XMLImportAttrLocation(
node))
XMLImportAttrLocation(node) new msg,loc
Set loc=$get(@tree@(node,"l"))
If loc="" Quit ""
Set
msg=$get(^%qCacheMsg("%ObjectErrors",$s(""'="":$zcvt("","L"),1:$get(^||%Language,"en")),"
XMLImportLocation")," (%1,%2)")
Quit $$FormatText^%occMessages(msg,$listget(loc,1),$listget(loc,2))
zXMLIsObjectEmpty(%this,ignoreNull)
If ..vistaInfo.Next("")'="" Quit 0
Quit 1
zXMLNew(document,node,containerOref="")
Quit (##class(xobw.VistaInfoHeader).%New())
zXMLSchema(top="",format="",namespacePrefix="",input=0,refOnly=0,schema)
Quit
##class(%XML.Implementation).XMLSchema("xobw.VistaInfoHeader",top,format,namespacePrefix,
input,refOnly,.schema)
zXMLSchemaNamespace() public {
Quit ""
}
zattachHeader(proxy,infoArray) public {
set hdr=##class(xobw.VistaInfoHeader).%New()
set hdr.vistaInfo=infoArray
// set hdr.mustUnderstand=1
// attach header to client proxy instance
do proxy.HeadersOut.SetAt(hdr,"VistaInfoHeader")
}
zdetachHeader(proxy) public {
// detach header from client proxy instance
do proxy.HeadersOut.RemoveAt("VistaInfoHeader")
}
zroleGet(%this) public {
Quit $zobjval(,/*actor*/3,0,3,3) }
zroleSet(%this,val) public {
Set $zobjval(,/*actor*/3,0,3,3)=val
Quit 1 }
zFaultGetSwizzled(%this) public {
Quit $zobjval(,/*Fault*/2,0,3,1) }
zFaultIsModified(%this) public {
Quit $zobjmod(,1) }
zFaultIsValid(value) public {
Quit 1 }
zFaultNewObject(%this) public {
Set newobject=##class(%SOAP.Fault).%New("") If newobject="" Quit ""
Set $zobjval(,/*Fault*/2,0,3,1)=newobject,
$zobjval(,/*Fault*/1,0,3,1)="",$zobjmods(,2)=1
Quit newobject }
zFaultSet(%this,newvalue) public {
If newvalue'="" { If '$isobject(newvalue) { Quit $$Error^%apiOBJ(5807,newvalue) } If
$zobjval(,/*Fault*/2,0,3,1)=newvalue { Quit 1 } }
Set
$zobjval(,/*Fault*/2,0,3,1)=newvalue,$zobjval(,/*Fault*/1,0,3,1)="",$zobjmods(,2)=1
Quit 1 }
zFaultSetModified(%this,newvalue) public {
Set $zobjmod(,1)=newvalue Quit 1 }
zactorDisplayToLogical(%val)
Quit %val
zactorIsValid(%val)
Quit $select(($length(%val)'>50):1,1:$$Error^%apiOBJ(7201,%val,50))
zactorLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
zactorLogicalToOdbc(%val)
Quit %val
zactorNormalize(%val)
Quit %val
zmustUnderstandDisplayToLogical(%val)
Quit $in(%val,"",%val)
zmustUnderstandIsValid(%val)
Quit $select($isvalidnum(%val,0,,):1,1:$$Error^%apiOBJ(7207,%val))
zmustUnderstandLogicalToDisplay(%val)
Quit %val
zmustUnderstandNormalize(%val)
Quit %val\1
zmustUnderstandXSDToLogical(%val)
Quit $select((%val="")||(%val["Ee(),."):"",1:$number(%val,"I"))
zvistaInfoBuildValueArray(value,array) public {
Quit ##class(%Collection.ArrayOfDT).BuildValueArray(value,.array)
}
zvistaInfoDisplayToLogical(%val)
Quit %val
zvistaInfoGetSwizzled(%this) public {
Set oref=##class(%Collection.ArrayOfDT).%New() If oref="" Quit ""
Set $zobjval(,/*vistaInfo*/6,0,0,5)=oref,$zobjmods(,5)=1,$zobjmods(,6)=1
Set
oref.ElementType="xobw.VistaInfoHeader:vistaInfo",oref.ElementClassType="datatype",oref.O
wner=+%this,oref.Storage=5,oref.OrefStorage=6
Set $zobjmod(oref,0)=0
Quit oref }
zvistaInfoIsModified(%this) public {
Quit $zobjmod(,5) }
zvistaInfoIsValid(%val)
Quit 1
zvistaInfoLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
zvistaInfoLogicalToOdbc(%val)
Quit %val
zvistaInfoNormalize(%val)
Quit $e(%val,1,50)
zvistaInfoSet(%this,newvalue) public {
If '$isobject(newvalue),newvalue'="" Quit $$Error^%apiOBJ(5807,newvalue)
If $zobjval(,/*vistaInfo*/6,0,3,5)=newvalue Quit 1
If newvalue="" Kill $zobjval(,/*vistaInfo*/5,0,3,5),$zobjval(,/*vistaInfo*/6,0,3,5)
Set $zobjval(,/*vistaInfo*/5,0,3,5)="",$zobjval(,/*vistaInfo*/6,0,3,5)="",$zobjmods(,6)=1
Quit 1
Set oref=$zobjval(,/*vistaInfo*/6,0,3,5) Kill
$zobjval(,/*vistaInfo*/5,0,3,5),$zobjval(,/*vistaInfo*/6,0,3,5) Set
$zobjval(,/*vistaInfo*/5,0,3,5)="",$zobjval(,/*vistaInfo*/6,0,3,5)=oref,$zobjmods(,6)=1
Set key="" For Set value=newvalue.GetNext(.key) Quit:key="" Set
$zobjval(,/*vistaInfo*/5,0,3,5,key)=value
Quit 1 }
zvistaInfoSetModified(%this,newvalue) public {
Set $zobjmod(,5)=newvalue Quit 1 }
xobw.WebServer.1^INT^1^62153,34147^0^1
;xobw.WebServer.1
;(C)InterSystems, generated for class xobw.WebServer. Do NOT edit. 03/03/2011
09:29:07AM
;;0112563CC62CE879;xobw.WebServer
;
%1Check(id="",lockonly=0) public {
Set exists=##class(xobw.WebServer).%ExistsId(id) Quit:'exists
$select('lockonly:$$Error^%apiOBJ(5797,"xobw.WebServer"_","_"",id),1:1) Set
status=##class(xobw.WebServer).%LockId(id,1) Quit:('status) status If 'lockonly { Set
exists=##class(xobw.WebServer).%ExistsId(id) Do ##class(xobw.WebServer).%UnlockId(id,1,0)
Quit $select('exists:$$Error^%apiOBJ(5797,"xobw.WebServer"_","_"",id),1:1) } Else { Do
##class(xobw.WebServer).%UnlockId(id,1,0) Quit 1 } }
%AcquireLock(%this,locktype="") public {
Quit ..%LockId(..%Id(),$s($e(locktype)="s":1,1:0)) }
%BMEBuilt(bmeName)
Quit 1
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
s proporef=$zobjproperty(%this,"authorizedWebServices")
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
i AllowedDepth>0 s AllowedDepth = AllowedDepth - 1
i AllowedCapacity>0 d
. s AllowedCapacity = AllowedCapacity - 1
. s AllowedCapacity = AllowedCapacity/1
s proporef=$zobjval(%this,3,0)
i proporef'="" d
. s idx="" i proporef'="" f s elemoref=proporef.GetNext(.idx) q:idx="" s sc=1 i
AllowedDepth'=0,AllowedCapacity'=0 s
sc=elemoref.%BindExport(dev,.Seen,RegisterOref,AllowedDepth,AllowedCapacity) q:('sc)
q:('sc) sc
i proporef'="",dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef),1:$zobjexport(proporef_"",3)
+$zobjexport($zobjval(proporef,0,,,,3),3)+$zobjexport(proporef,3))!1 u t
if proporef'="",dev'="" d
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(5),1:$zobjexport(5_"",3))!1 u t
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.Count()),1:$zobjexport(propor
ef.Count()_"",3))!1 u t
. for i=1:1:proporef.Count() s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.GetAt(i)),1:$zobjexport(propo
ref.GetAt(i)_"",3))!1 u t
Quit sc }
%BuildIndices(idxlist="",autoPurge=0,lockExtent=0) public {
s $ZTrap="CatchError",locked=0,sc=1
i lockExtent { d %AcquireTableLock^xobw.WebServer.T1(0,.SQLCODE) i SQLCODE { q
$$Error^%apiOBJ(5540,SQLCODE,$g(%msg)) } else { s locked=1 } }
i autoPurge { set sc = $$%PurgeIndices^xobw.WebServer.T1(idxlist) i ('sc) { quit sc
} }
s sc=$$%BuildIndices^xobw.WebServer.T1(idxlist)
i locked { d %ReleaseTableLock^xobw.WebServer.T1(0) }
q sc
CatchError s $ZTrap="" i $ZE'="" { s sc = $$Error^%apiOBJ(5002,$ZE) } i locked { d
%ReleaseLock^xobw.WebServer.T1(0) } q sc }
%CheckUnique(idxlist="") public {
QUIT $$Error^%apiOBJ(5758,"%Persistent::%CheckUnique") }
%ClassName(fullname) public {
Quit $select($get(fullname,0):"xobw.WebServer",1:"WebServer") }
%ComposeOid(id) public {
Quit
$Select(##class(xobw.WebServer).%ExistsId(id):$select(id="":"",1:$listbuild(id_"","xobw.W
ebServer")),1:"")
}
%Construct(%this,initvalue)
Set
$zobjval(,/*%Concurrency*/1,0,3,1)=$zu(115,10),$zobjval(,/*authorizedWebServices*/2,0,3,2
)=$listbuild("xobw.WebServicesAuthorized","webServerRef",+%this,"children",1,1),$zobjval(
,/*authorizedWebServices*/3,0,3,2)=""
Set
$zobjval(,/*defaultTimeout*/4,0,3,4)=30,$zobjval(,/*ien*/5,0,3,5)="",$zobjval(,/*loginReq
uired*/6,0,3,6)="",$zobjval(,/*name*/7,0,3,7)="",$zobjval(,/*password*/8,0,3,8)="",$zobjv
al(,/*port*/9,0,3,9)=""
Set
$zobjval(,/*production*/10,0,3,10)="",$zobjval(,/*server*/11,0,3,11)="",$zobjval(,/*sslCo
nfiguration*/12,0,3,12)="",$zobjval(,/*sslEnabled*/13,0,3,13)="",$zobjval(,/*sslPort*/14,
0,3,14)="",$zobjval(,/*status*/15,0,3,15)=""
Set $zobjval(,/*userName*/16,0,3,16)=""
Set $zobjmod(,2)=0,$zobjmods(,2)=0
Quit 1
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.WebServer"),cloned(+object)=%this,cloned(+object,0)=obj
ect Set $zobjmod(,0)=1
Set
$zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2),$zobjval(,3)=$zobjval(obj
ect,3)
Set
$zobjval(,4)=$zobjval(object,4),$zobjval(,5)=$zobjval(object,5),$zobjval(,6)=$zobjval(obj
ect,6)
Set
$zobjval(,7)=$zobjval(object,7),$zobjval(,8)=$zobjval(object,8),$zobjval(,9)=$zobjval(obj
ect,9)
Set
$zobjval(,10)=$zobjval(object,10),$zobjval(,11)=$zobjval(object,11),$zobjval(,12)=$zobjva
l(object,12)
Set
$zobjval(,13)=$zobjval(object,13),$zobjval(,14)=$zobjval(object,14),$zobjval(,15)=$zobjva
l(object,15)
Set $zobjval(,16)=$zobjval(object,16)
If deep>0 {
If $isobject(object.authorizedWebServices) {
If $zobjval(object,3,0).NotLoaded Do $zobjval(object,3,0).Load()
Set $zobjval(object,3,0).InverseReference=%this
Set $zobjval(,3,0)=$zobjval(object,3,0).%ConstructClone(1,.cloned)
Set $zobjval(object,3,0).InverseReference=object
}
} Else {
If object.authorizedWebServices'="" {
If $zobjval(object,3,0).NotLoaded Do $zobjval(object,3,0).Load()
If deep=-1 {
Set
$zobjval(,3,0)="",$zobjval(,2,0)=$listbuild("xobw.WebServicesAuthorized","webServerRef",+
%this,"children",1,1)
} Else {
Set $zobjval(object,3,0).InverseReference=%this
Set $zobjval(,3,0)=$zobjval(object,3,0).%ConstructClone(0,.cloned)
Set $zobjval(object,3,0).InverseReference=object
}
}
}
Quit %this }
%Delete(oid="",concurrency=-1) public {
Quit:oid="" $$Error^%apiOBJ(5813) Set id=$listget(oid) Quit:id=""
$$Error^%apiOBJ(5812)
set $ZTRAP="%DeleteERR"
If concurrency = -1 Set concurrency=$zu(115,10)
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit
$$Error^%apiOBJ(5828)
Set class=$listget(oid,2)
If class="" { Set
class="xobw.WebServer",oid=$select(oid="":"",1:$listbuild($listget(oid),"xobw.WebServer")
_$select($listget(oid,3)'="":$listbuild($list(oid,3)),1:"")) } Else { Set
class=$s(class[".":class,$e(class)'="%":"User."_class,1:"%Library."_$e(class,2,*)) If
"xobw.WebServer"'=class { Quit $zobjclassmethod(class,"%Delete",oid,concurrency) } }
If +$g(%objtxSTATUS)=0 { Set traninit=1 k
%objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED k:'$TLevel
%0CacheLock,%objtxTID,%objtxID i '$zu(115,9) { s %objtxSTATUS=1 } else { TStart s
%objtxSTATUS=2 } } Else { Set traninit=0 }
Set sc=##class("xobw.WebServicesAuthorized").webServerRefRExec(.qh,id) Goto:('sc)
%DeleteEnd
For Set
sc=##class("xobw.WebServicesAuthorized").webServerRefRFetch(.qh,0,.robjs,.fc,.end) Do
Quit:('sc)||(end)
. For ptr=1:1:fc Set
sc=##class("xobw.WebServicesAuthorized").%Delete($select($list(robjs,ptr)="":"",1:$listbu
ild($list(robjs,ptr)_"")),concurrency) Quit:('sc)
Do ##class("xobw.WebServicesAuthorized").webServerRefRClose(.qh)
Goto:('sc) %DeleteEnd
Set oref=$zobjoid($listget(oid,2),$listget(oid))
If $isobject(oref) Do
. New %this Set %this=oref If %this.%Concurrency>2 { Set
sc=%this.%ReleaseLock($select(%this.%Concurrency=3:"s",1:"e")) } i $g(%objtxSTATUS)=2 { s
%objtxOIDUNASSIGNED(+oref)=oid,%objtxLIST(+oref)=oref Set
%objtxMODIFIED(+oref)=$zobjval(oref,0) } Set $zobjmod(oref,0)=1 Set
$zobjval(oref,0,,,,3)="" Set $zobjoid($listget(oid,2),$listget(oid))=""
Set sc=##class(xobw.WebServer).%DeleteData(id,concurrency)
%DeleteEnd If traninit { If (+sc) { i $g(%objtxSTATUS)=1 { k %objtxSTATUS } else { If
$Tlevel { TCommit } k
%objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED k:'$TLevel
%0CacheLock,%objtxTID,%objtxID } } Else { i $g(%objtxSTATUS)=2 { k %0CacheLock s
sc=$select(+sc:$$%TRollBack^%occTransaction(),1:$$AppendStatus^%occSystem(sc,$$%TRollBack
^%occTransaction())) k %objtxTID,%objtxID } else { k %objtxSTATUS } } }
Quit sc
%DeleteERR Set $ZTrap="", sc=$$Error^%apiOBJ(5002,$ZE) goto %DeleteEnd }
%DeleteData(id,concurrency)
Quit:id="" $$Error^%apiOBJ(5812) New %sc Set %sc=1
If concurrency If '$$%AcquireLock^xobw.WebServer.T1(id) Quit $$Error^%apiOBJ(5803)
n %ROWID,SQLCODE
Do %0o
If SQLCODE Set %sc=$$Error^%apiOBJ(5521,SQLCODE,$g(%msg))
If concurrency Do %ReleaseLock^xobw.WebServer.T1(id)
Quit %sc
%0o n
%mmmsqlc,%mmmsqld,%mmmsqlE,%mmmsqll,%mmmsqln,%mmmsqlp,%mmmsqlR,%mmmsqls,%mmmsqlt,%mmmsqlT
S,%mmmsqlTS2,%mmmsqlZ s $zt="%0err" s %mmmsqld(3)=0 s %mmmsqld(4)=""
s %mmmsqld(2)=$g(id)
s SQLCODE=100
k:'$TLEVEL %0CacheLock If $zu(115,1)=2,'$TLEVEL { s %mmmsqlTS2=1 TSTART } If $zu(115,1)
{ s %mmmsqlTS=1 TSTART }
; asl MOD# 2
s %mmmsqld(1)=%mmmsqld(2)
i %mmmsqld(1)'="",$d(^XOB(18.12,%mmmsqld(1)))
e g %0Bdun
s %mmmsqld(9)=$$%getlock^xobw.WebServer.T1(%mmmsqld(1)) i '%mmmsqld(9) s SQLCODE=-110 g
%0c
; asl MOD# 3
i %mmmsqld(1)'="",$d(^XOB(18.12,%mmmsqld(1)))
e g %0Cdun
d %delete^xobw.WebServer.T1(%mmmsqld(1),$c(0,2,0,0,0),'$g(%mmmsqlTS))
i 'SQLCODE i $i(%mmmsqld(3))'<$g(%0CacheRowLimit,9223372036854775807) d:%mmmsqld(9)=1
%ReleaseLock^xobw.WebServer.T1(%mmmsqld(1)) g %0c
%0Cdun
d:%mmmsqld(9)=1 %ReleaseLock^xobw.WebServer.T1(%mmmsqld(1)) g:SQLCODE<0 %0c
%0Bdun
%0Adun
%0c s %ROWCOUNT=$s($g(SQLCODE)'<0:+$g(%mmmsqld(3)),1:0)
If $zu(115,1),$g(%mmmsqlTS) { TCOMMIT:SQLCODE'<0 TROLLBACK:SQLCODE<0 1 }
TCOMMIT:SQLCODE=100&&(%ROWCOUNT=0)&&($g(%mmmsqlTS2))&&($zu(115,1)=2) q
%0err s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) d:$g(%mmmsqld(9))=1
%ReleaseLock^xobw.WebServer.T1(%mmmsqld(1)) g %0c
%DeleteExtent(concurrency=-1,deletecount,instancecount) public {
If concurrency = -1 Set concurrency=$zu(115,10)
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit
$$Error^%apiOBJ(5828)
Set deletecount=0,instancecount=0
Set sc=##class(xobw.WebServer).ExtentExecute(.qh) Quit:('sc) sc
For Set sc=##class(xobw.WebServer).ExtentFetch(.qh,.row,.atend)
Quit:$select(row="":1,('sc):1,1:0) Set id=$listget(row) If id'="" Set
sc=##class(xobw.WebServer).%Delete($listbuild(id),concurrency) Set
instancecount=instancecount+1 Set:(+sc) deletecount=deletecount+1 Quit:atend
Do ##class(xobw.WebServer).ExtentClose(qh)
If instancecount = deletecount { do ##class(xobw.WebServer).%KillExtent() set sc = 1
} else { set sc = $$Error^%apiOBJ(5764,"xobw.WebServer") }
Quit sc }
%DeleteId(id,concurrency=-1) public {
Quit
##class(xobw.WebServer).%Delete($select(id="":"",1:$listbuild(id_"")),.concurrency) }
%Destruct(%this) public {
Set oid=$zobjval(,0,,,,3)
If oid'="" { If $zobjval(,/*%Concurrency*/1,0,3,1)=3 { Do ..%ReleaseLock("s") }
ElseIf $zobjval(,/*%Concurrency*/1,0,3,1)=4 { Do ..%ReleaseLock("e") } Set
$zobjoid($listget(oid,2),$listget(oid))="" }
Kill
%objtxLIST(+%this),%objtxOIDASSIGNED(+%this),%objtxOIDUNASSIGNED(+%this),%objtxMODIFIED(+
%this)
Quit 1 }
%DowngradeConcurrency(%this,concurrency=0) public {
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit
$$Error^%apiOBJ(5828)
Set current=$zobjval(,/*%Concurrency*/1,0,3,1)
If concurrency'<current Quit 1
If current<3 Set modflag=$zobjmod(,0),$zobjval(,/*%Concurrency*/1,0,3,1)=concurrency
Set:modflag=0 $zobjmod(,0)=0 Quit 1
If concurrency>2 Set sc=..%AcquireLock($select(concurrency=3:"s",1:"e")) Quit:('sc)
sc
Do ..%ReleaseLock($select(current=3:"s",1:"e"))
Set modflag=$zobjmod(,0),$zobjval(,/*%Concurrency*/1,0,3,1)=concurrency
Set:modflag=0 $zobjmod(,0)=0
Quit 1 }
%Exists(oid) public {
Quit $isobject(##class(xobw.WebServer).%Open(oid,0)) }
%ExistsId(id) public {
Quit ##class(xobw.WebServer).%Exists($listbuild(id)) }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.WebServer","%Library.Persistent","%Library.SwizzleObject","%
Library.RegisteredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Li
brary."_$e(isclass,2,*))) }
%GUID(oid) public {
If $listget($Get(oid)) = "" Quit ""
If "xobw.WebServer"=$listget(oid,2) Quit $Get(^OBJ.GUID(1,oid))
Set class=$listget(oid,2)
If class="" { Set
class="xobw.WebServer",oid=$select(oid="":"",1:$listbuild($listget(oid),"xobw.WebServer")
_$select($listget(oid,3)'="":$listbuild($list(oid,3)),1:"")) } Else { Set
class=$s(class[".":class,$e(class)'="%":"User."_class,1:"%Library."_$e(class,2,*)) If
"xobw.WebServer"'=class { Quit $zobjclassmethod(class,"%GUID",oid) } }
Quit $Get(^OBJ.GUID(1,oid)) }
%GUIDSet(oid,guid="") public {
Quit "" }
%GetParameter(paramname="") public {
Quit
$case(paramname,"DBTIME":0,"DEFAULTCONCURRENCY":"$zu(115,10)","EXTENTSIZE":100000,"GUIDEN
ABLED":0,"MANAGEDEXTENT":1,"OBJJOURNAL":0,"PROPERTYVALIDATION":2,"READONLY":0,"SQLENABLED
":1,"STORAGECOMPILERCLASS":"%Compiler.Storage.CacheSQL",:"") }
%GetSwizzleObject(%this,force=0,oid) public {
Set oid="" If force=0 Set oid=(..%Oid()) Quit 1
If force=2 Set sc=..%Save(1) Set:(+sc) oid=(..%Oid()) Quit sc
Set oid=(..%Oid()) Quit:oid'="" 1
Set sc=..%Save(0) Set:(+sc) oid=..%Oid()
Quit sc }
%Id(%this)
Quit $listget($zobjval(,0,,,,3))
%IdSet(%this,id) public {
Set
class=$zobjclass(%this),oid=$select(id="":"",1:$listbuild(id_"",$s($l(class,".")=2:$s($e(
class,1,9)="%Library.":"%"_$p(class,".",2),1:class),1:class)))
If $zobjval(,0,,,,3)'="",$zobjval(,0,,,,3)'=oid Quit $$Error^%apiOBJ(5814)
Set $zobjval(,0,,,,3)=oid Set $zobjoid($listget(oid,2),$listget(oid))=%this
Quit 1 }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.WebServer","%Library.Persistent","%Library.SwizzleObject","%
Library.RegisteredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Li
brary."_$e(isclass,2,*))) }
%IsModified(%this) public {
Quit $zobjmod(,0) }
%KillExtent() public {
if
($s($d(^oddCOM("xobw.WebServicesAuthorized","m","%KillExtent",44))#2:^(44),$d(^oddCOM($g(
^(2),"xobw.WebServicesAuthorized"),"m","%KillExtent",44))#2:^(44),1:$s($d(^oddDEF($g(^odd
COM("xobw.WebServicesAuthorized","m","%KillExtent",2),"xobw.WebServicesAuthorized"),"m","
%KillExtent",44))#2:^(44),1:$g(^%qCacheObjectKey(1,"m",44))))) &&
($Data(^rOBJ($zutil(135,23,"xobw.WebServicesAuthorized")_"."_(+0)))) { set
sc=##class(xobw.WebServicesAuthorized).%KillExtent() }
set subextent=$order(^oddMAP("xobw.WebServer","Z","")) While subextent'="" { if
($s($d(^oddCOM(subextent,"m","%KillExtent",44))#2:^(44),$d(^oddCOM($g(^(2),subextent),"m"
,"%KillExtent",44))#2:^(44),1:$s($d(^oddDEF($g(^oddCOM(subextent,"m","%KillExtent",2),sub
extent),"m","%KillExtent",44))#2:^(44),1:$g(^%qCacheObjectKey(1,"m",44))))) &&
($Data(^rOBJ($zutil(135,23,subextent)_"."_(+0)))) { Set
sc=$zobjclassmethod(subextent,"%KillExtent") If ('sc) { Goto Exit } } Set
subextent=$order(^oddMAP("xobw.WebServer","Z",subextent)) }
set sc=##class(xobw.WebServer).%PurgeIndices()
If (+sc) { Set sc=##class(xobw.WebServer).%KillExtentData() }
Exit Quit sc }
%KillExtentData() public {
QUIT $$Error^%apiOBJ(5758,"%Persistent::%KillExtentData") }
%LoadData(%this,id)
n %ROWID,%sc,SQLCODE
Set %sc=0
If $zobjval(,/*%Concurrency*/1,0,3,1)=4 If '$$%AcquireLock^xobw.WebServer.T1(id) Quit
$$Error^%apiOBJ(5803)
If $zobjval(,/*%Concurrency*/1,0,3,1)'=4,$zobjval(,/*%Concurrency*/1,0,3,1) If
'$$%AcquireLock^xobw.WebServer.T1(id,1) Quit $$Error^%apiOBJ(5804)
Do %0Bo
If SQLCODE Set
$zobjval(,/*defaultTimeout*/4,0,3,4)="",$zobjval(,/*ien*/5,0,3,5)="",$zobjval(,/*loginReq
uired*/6,0,3,6)="",$zobjval(,/*name*/7,0,3,7)="",$zobjval(,/*password*/8,0,3,8)="",$zobjv
al(,/*port*/9,0,3,9)="",$zobjval(,/*server*/11,0,3,11)="",$zobjval(,/*sslConfiguration*/1
2,0,3,12)="",$zobjval(,/*sslEnabled*/13,0,3,13)="",$zobjval(,/*sslPort*/14,0,3,14)="",$zo
bjval(,/*status*/15,0,3,15)="",$zobjval(,/*userName*/16,0,3,16)=""
Else Do
. Set %sc=1
If $zobjval(,/*%Concurrency*/1,0,3,1)=2||($zobjval(,/*%Concurrency*/1,0,3,1)=1) Do
%ReleaseLock^xobw.WebServer.T1(id,1)
Quit $Select((+%sc):1,1:$$Error^%apiOBJ(5809))
%0Bo n
%mmmsqlc,%mmmsqld,%mmmsqlE,%mmmsqll,%mmmsqln,%mmmsqlp,%mmmsqlR,%mmmsqls,%mmmsqlt,%mmmsqlZ
s $zt="%0Berr" s %mmmsqld(27)=0,%mmmsqld(28)=""
s %mmmsqld(25)=$g(id)
s SQLCODE=100
; asl MOD# 2
s $zobjval(,/*ien*/5,0,3,5)=%mmmsqld(25)
i $zobjval(,/*ien*/5,0,3,5)'="",$d(^XOB(18.12,$zobjval(,/*ien*/5,0,3,5)))
e g %0BBdun
s %mmmsqld(33)=$g(^XOB(18.12,$zobjval(,/*ien*/5,0,3,5),0))
s $zobjval(,/*defaultTimeout*/4,0,3,4)=$p(%mmmsqld(33),"^",7) s
$zobjval(,/*name*/7,0,3,7)=$p(%mmmsqld(33),"^",1) s
$zobjval(,/*port*/9,0,3,9)=$p(%mmmsqld(33),"^",3) s
$zobjval(,/*server*/11,0,3,11)=$p(%mmmsqld(33),"^",4) s
$zobjval(,/*status*/15,0,3,15)=$p(%mmmsqld(33),"^",6)
s %mmmsqld(33)=$g(^XOB(18.12,$zobjval(,/*ien*/5,0,3,5),1))
s $zobjval(,/*loginRequired*/6,0,3,6)=$p(%mmmsqld(33),"^",1)
s %mmmsqld(33)=$g(^XOB(18.12,$zobjval(,/*ien*/5,0,3,5),3))
s $zobjval(,/*sslConfiguration*/12,0,3,12)=$p(%mmmsqld(33),"^",2) s
$zobjval(,/*sslEnabled*/13,0,3,13)=$p(%mmmsqld(33),"^",1) s
$zobjval(,/*sslPort*/14,0,3,14)=$p(%mmmsqld(33),"^",3)
s $zobjval(,/*userName*/16,0,3,16)=$g(^XOB(18.12,$zobjval(,/*ien*/5,0,3,5),200))
s $zobjval(,/*password*/8,0,3,8)=$g(^XOB(18.12,$zobjval(,/*ien*/5,0,3,5),300))
g:$zu(115,2)=0 %0BBuncommitted i $zu(115,2)=1 l
+^XOB(18.12,$p($zobjval(,/*ien*/5,0,3,5),"||",1))#"S":$zu(115,4) i $t { s
%mmmsqld(27)=1,%mmmsqld(28)=$name(^XOB(18.12,$p($zobjval(,/*ien*/5,0,3,5),"||",1)))_"#""S
I""" } else { s SQLCODE=-114,%msg="Unable to acquire shared lock on table xobw.WebServer
for RowID value: "_$zobjval(,/*ien*/5,0,3,5) ztrap "LOCK" }
; asl MOD# 3
i $zobjval(,/*ien*/5,0,3,5)'="",$d(^XOB(18.12,$zobjval(,/*ien*/5,0,3,5)))
e g %0BCdun
s %mmmsqld(38)=$g(^XOB(18.12,$zobjval(,/*ien*/5,0,3,5),0))
s $zobjval(,/*defaultTimeout*/4,0,3,4)=$p(%mmmsqld(38),"^",7) s
$zobjval(,/*name*/7,0,3,7)=$p(%mmmsqld(38),"^",1) s
$zobjval(,/*port*/9,0,3,9)=$p(%mmmsqld(38),"^",3) s
$zobjval(,/*server*/11,0,3,11)=$p(%mmmsqld(38),"^",4) s
$zobjval(,/*status*/15,0,3,15)=$p(%mmmsqld(38),"^",6)
s %mmmsqld(38)=$g(^XOB(18.12,$zobjval(,/*ien*/5,0,3,5),1))
s $zobjval(,/*loginRequired*/6,0,3,6)=$p(%mmmsqld(38),"^",1)
s %mmmsqld(38)=$g(^XOB(18.12,$zobjval(,/*ien*/5,0,3,5),3))
s $zobjval(,/*sslConfiguration*/12,0,3,12)=$p(%mmmsqld(38),"^",2) s
$zobjval(,/*sslEnabled*/13,0,3,13)=$p(%mmmsqld(38),"^",1) s
$zobjval(,/*sslPort*/14,0,3,14)=$p(%mmmsqld(38),"^",3)
s $zobjval(,/*userName*/16,0,3,16)=$g(^XOB(18.12,$zobjval(,/*ien*/5,0,3,5),200))
s $zobjval(,/*password*/8,0,3,8)=$g(^XOB(18.12,$zobjval(,/*ien*/5,0,3,5),300))
%0BBuncommitted ;
s SQLCODE=0 g %0Bc
%0BCdun i $zu(115,2)=1,$g(%mmmsqld(27))=1 { l -@%mmmsqld(28) s %mmmsqld(27)=0 }
%0BBdun
%0BAdun
%0Bc s %ROWCOUNT='SQLCODE i $zu(115,2)=1,$g(%mmmsqld(27))=1 { l -@%mmmsqld(28) } q
%0Berr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) g %0Bc
%LockExtent(shared=0) public {
Quit
$Select($$%AcquireTableLock^xobw.WebServer.T1(shared):1,1:$$Error^%apiOBJ($Select('shared
:5803,1:5804))) }
%GetLock(id,shared=0) public {
Kill:'$TLEVEL %0CacheLock If $increment(%0CacheLock("xobw.WebServer"))>$zutil(115,6)
{ If (+##class(xobw.WebServer).%LockExtent(shared)) { Quit 2 } Else { Quit 0 } }
Quit:(+##class(xobw.WebServer).%LockId(id,shared)) 1 Quit 0 }
%LockId(id,shared=0) public {
if id'="" { Quit:'$$%AcquireLock^xobw.WebServer.T1(id,shared)
$$Error^%apiOBJ($Select('shared:5803,1:5804)) Quit 1 } else { quit $$Error^%apiOBJ(5812)
} }
%NormalizeObject(%this)
Set:$zobjval(,/*defaultTimeout*/4,0,3,4)'=""
$zobjval(,/*defaultTimeout*/4,0,3,4)=(..defaultTimeoutNormalize($zobjval(,/*defaultTimeou
t*/4,0,3,4)))
Set:$zobjval(,/*ien*/5,0,3,5)'=""
$zobjval(,/*ien*/5,0,3,5)=(..ienNormalize($zobjval(,/*ien*/5,0,3,5)))
Set:$zobjval(,/*loginRequired*/6,0,3,6)'=""
$zobjval(,/*loginRequired*/6,0,3,6)=(..loginRequiredNormalize($zobjval(,/*loginRequired*/
6,0,3,6)))
Set:$zobjval(,/*name*/7,0,3,7)'=""
$zobjval(,/*name*/7,0,3,7)=(..nameNormalize($zobjval(,/*name*/7,0,3,7)))
Set:$zobjval(,/*password*/8,0,3,8)'=""
$zobjval(,/*password*/8,0,3,8)=(..passwordNormalize($zobjval(,/*password*/8,0,3,8)))
Set:$zobjval(,/*port*/9,0,3,9)'=""
$zobjval(,/*port*/9,0,3,9)=(..portNormalize($zobjval(,/*port*/9,0,3,9)))
Set:$zobjval(,/*production*/10,0,3,10)'=""
$zobjval(,/*production*/10,0,3,10)=(..productionNormalize($zobjval(,/*production*/10,0,3,
10)))
Set:$zobjval(,/*server*/11,0,3,11)'=""
$zobjval(,/*server*/11,0,3,11)=(..serverNormalize($zobjval(,/*server*/11,0,3,11)))
Set:$zobjval(,/*sslConfiguration*/12,0,3,12)'=""
$zobjval(,/*sslConfiguration*/12,0,3,12)=(..sslConfigurationNormalize($zobjval(,/*sslConf
iguration*/12,0,3,12)))
Set:$zobjval(,/*sslEnabled*/13,0,3,13)'=""
$zobjval(,/*sslEnabled*/13,0,3,13)=(..sslEnabledNormalize($zobjval(,/*sslEnabled*/13,0,3,
13)))
Set:$zobjval(,/*sslPort*/14,0,3,14)'=""
$zobjval(,/*sslPort*/14,0,3,14)=(..sslPortNormalize($zobjval(,/*sslPort*/14,0,3,14)))
Set:$zobjval(,/*status*/15,0,3,15)'=""
$zobjval(,/*status*/15,0,3,15)=(..statusNormalize($zobjval(,/*status*/15,0,3,15)))
Set:$zobjval(,/*userName*/16,0,3,16)'=""
$zobjval(,/*userName*/16,0,3,16)=(..userNameNormalize($zobjval(,/*userName*/16,0,3,16)))
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%Oid(%this)
Quit $zobjval(,0,,,,3)
%Open(oid,concurrency=-1,sc) public { Set:'($data(sc)#2) sc=1
If $listget($g(oid))="" Set sc = $$Error^%apiOBJ(5813) Quit ""
If concurrency = -1 Set concurrency=$zu(115,10)
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Set sc
= $$Error^%apiOBJ(5828) Quit ""
Set $Ztrap = "Catch"
New %this Set class=$listget(oid,2)
If class="" { Set
class="xobw.WebServer",oid=$select(oid="":"",1:$listbuild($listget(oid),"xobw.WebServer")
_$select($listget(oid,3)'="":$listbuild($list(oid,3)),1:"")) } Else { Set
class=$s(class[".":class,$e(class)'="%":"User."_class,1:"%Library."_$e(class,2,*)) If
"xobw.WebServer"'=class { Quit $zobjclassmethod(class,"%Open",oid,concurrency,.sc) } }
Set %this=$zobjoid($listget(oid,2),$listget(oid))
If %this'="" { If concurrency>$zobjval(,/*%Concurrency*/1,0,3,1) { If
($zobjval(,/*%Concurrency*/1,0,3,1)<3) && (concurrency > 2) { Set reload = 1 } Else { Set
reload = 0 } Set sc=..%UpgradeConcurrency(concurrency) If (reload) && ((+sc)) { Set
sc=..%Reload() } If ('sc) { Quit "" } } Else { Set sc = 1 } Quit %this }
Set %this=$zobjnew("xobw.WebServer")
Set $zobjval(,/*%Concurrency*/1,0,3,1)=concurrency
Set $zobjval(,3,0)=""
Set
$zobjval(,/*authorizedWebServices*/2,0,3,2)=$listbuild("xobw.WebServicesAuthorized","webS
erverRef",+%this,"children",1,1)
Set $zobjval(,/*production*/10,0,3,10)=""
Set $zobjval(,0,,,,3)=oid Set $zobjoid($listget(oid,2),$listget(oid))=%this
Set sc=..%LoadData($listget(oid)) If ('sc) Quit ""
Set $zobjmod(,0)=0
Quit %this
Catch Set $ZTrap = ""
If '(+$Get(sc)) { Quit "" }
Set sc =
$Select($Extract($ZE,1,9)="<PROTECT>":$$Error^%apiOBJ(939,"xobw.WebServer"_"::%Open"),1:$
$Error^%apiOBJ(5002,$ZE))
Quit "" }
%OpenId(id,concurrency=-1,sc=1) public {
Quit
##class(xobw.WebServer).%Open($select(id="":"",1:$listbuild(id_"")),.concurrency,.sc) }
%PackageName()
Quit "xobw"
%PurgeIndices(idxlist="",lockExtent=0) public {
s $ZTrap="CatchError",locked=0,sc=1
i lockExtent { d %AcquireTableLock^xobw.WebServer.T1(0,.SQLCODE) i SQLCODE { q
$$Error^%apiOBJ(5540,SQLCODE,$g(%msg)) } else { s locked=1 } }
s sc=$$%PurgeIndices^xobw.WebServer.T1(idxlist)
i locked { d %ReleaseTableLock^xobw.WebServer.T1(0) }
q sc
CatchError s $ZTrap="" i $ZE'="" { s sc = $$Error^%apiOBJ(5002,$ZE) } i locked { d
%ReleaseLock^xobw.WebServer.T1(0) } q sc }
%ReleaseLock(%this,locktype="") public {
Quit ..%UnlockId(..%Id(),$s($e(locktype)="s":1,1:0),$s($e(locktype,2)="i":1,1:0)) }
%Reload(%this) public {
If ..%Id()="" Quit $$Error^%apiOBJ(5813)
Set cur=$zobjval(,/*%Concurrency*/1,0,3,1),$zobjval(,/*%Concurrency*/1,0,3,1)=0
Set $zobjval(,/*authorizedWebServices*/3,0,3,2)="",$zobjmods(,2)=1,$zobjmods(,3)=1
Set
$zobjval(,/*authorizedWebServices*/2,0,3,2)=$listbuild("xobw.WebServicesAuthorized","webS
erverRef",+%this,"children",1,1)
Set $zobjval(,/*production*/10,0,3,10)=""
Set sc=..%LoadData(..%Id()) Set $zobjval(,/*%Concurrency*/1,0,3,1)=cur If ('sc) Quit
""
Set $zobjmod(,0)=0
Quit 1 }
%ResolveConcurrencyConflict(oid,objSS,iPtr,bAcceptYours=0) public {
Quit $$Error^%apiOBJ(5758,"xobw.WebServer"_"::%ResolveConcurrencyConflict") }
%RollBack(%this) public {
If $data(%objtxMODIFIED(+%this)) Set $zobjval(,0)=%objtxMODIFIED(+%this)
Quit 1 }
%Save(%this,related=1) public {
Set $ZTrap="%SaveERR"
New %objTX Set sc=1,traninit=0 If '$data(%objTX2) New %objTX2 Set %objTX2=1
If +$g(%objtxSTATUS)=0 { Set traninit=1 k
%objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED k:'$TLevel
%0CacheLock,%objtxTID,%objtxID i '$zu(115,9) { s %objtxSTATUS=1 } else { TStart s
%objtxSTATUS=2 } }
If $get(%objTX2(+%this)) Set sc=..%AddToSaveSet(1) Quit:('sc) sc Set
intRef=+%this,objValue=$get(%objTX(1,intRef,1)),sc=..%SerializeObject(.objValue,1)
Set:(+sc) %objTX(1,intRef,1)=objValue Quit sc
Set sc=..%AddToSaveSet(related+2) If ('sc) ZTrap "SG"
Set intRef = $Order(%objTX(4,""),1,objRef)
While intRef '= "" {
If '$Data(%objTX(5,intRef)) { Set sc=objRef.%AddToSaveSet(related+2) Set
%objTX(5,intRef) = objRef If ('sc) { ZTrap "SG" } }
Kill %objTX(4,intRef)
Set intRef = $Order(%objTX(4,""),1,objRef)
}
If '$data(%objTX(2)) s sc=1 GoTo %SaveCOMMIT
Set %objTX(3)=0,intRef="" For Set intRef=$order(%objTX(2,intRef)) Quit:intRef=""
If '$data(%objTX(1,intRef,2)) Set %objTX(3,$increment(%objTX(3)))=%objTX(1,intRef) Kill
%objTX(2,intRef)
For Quit:%objTX(3)<1 Set ptr=%objTX(3),objRef=%objTX(3,ptr),%objTX(3)=%objTX(3)-1
Kill %objTX(3,ptr) Set
objValue=$get(%objTX(1,+objRef,1)),sc=objRef.%SerializeObject(.objValue) Do Set
%objTX(1,+objRef,1)=objValue Kill %objTX(1,+objRef,3) Set $zobjmod(objRef,0)=0
. If ('sc) k:$g(%objtxSTATUS)=2 %objtxLIST(+objRef),%objtxMODIFIED(+objRef) ZTrap
"SG"
. i $g(%objtxSTATUS)=2 { Set %objtxMODIFIED(+objRef)=$zobjval(objRef,0) }
. Set intSucc="" For Set intSucc=$order(%objTX(1,+objRef,3,intSucc))
Quit:intSucc="" Kill %objTX(1,+objRef,3,intSucc),%objTX(1,intSucc,2,+objRef) If
'$data(%objTX(1,intSucc,2)) Set %objTX(3,$increment(%objTX(3)))=%objTX(1,intSucc) Kill
%objTX(2,intSucc)
For Set pserial=0 Do Quit:'pserial
. Set intRef="" For Set intRef=$order(%objTX(2,intRef)) Quit:intRef="" Set
intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred="" If
%objTX(1,intPred,6)=1 Set
objValue=$get(%objTX(1,intPred,1)),sc=(%objTX(1,intPred)).%SerializeObject(.objValue,1)
If (+sc) Set pserial=1,%objTX(1,intPred,1)=objValue Do
. . Set intSucc="" For Set intSucc=$order(%objTX(1,intPred,3,intSucc))
Quit:intSucc="" Kill %objTX(1,intPred,3,intSucc),%objTX(1,intSucc,2,intPred) If
'$data(%objTX(1,intSucc,2)) Set %objTX(3,$i(%objTX(3)))=%objTX(1,intSucc) Kill
%objTX(2,intSucc)
. . For Quit:%objTX(3)<1 Set
ptr=%objTX(3),objSerialize=%objTX(3,ptr),%objTX(3)=%objTX(3)-1 Kill %objTX(3,ptr) Set
objValue=$get(%objTX(1,+objSerialize,1)),sc=objSerialize.%SerializeObject(.objValue) Do
Set %objTX(1,+objSerialize,1)=objValue Kill %objTX(1,+objSerialize,3) Set
$zobjmod(objSerialize,0)=0
. . . If ('sc) k:$g(%objtxSTATUS)=2
%objtxLIST(+objSerialize),%objtxMODIFIED(+objSerialize) ZTrap "SG"
. . . i $g(%objtxSTATUS)=2 { Set
%objtxMODIFIED(+objSerialize)=$zobjval(objSerialize,0) }
. . . Set intSucc="" For Set intSucc=$order(%objTX(1,+objSerialize,3,intSucc))
Quit:intSucc="" Kill %objTX(1,+objSerialize,3,intSucc),%objTX(1,intSucc,2,+objSerialize)
If '$data(%objTX(1,intSucc,2)) Set %objTX(3,$i(%objTX(3)))=%objTX(1,intSucc) Kill
%objTX(2,intSucc)
If $data(%objTX(2))>2 Set sc=$$Error^%apiOBJ(5827) ZTrap "SG"
%SaveCOMMIT If traninit { i $g(%objtxSTATUS)=1 { k %objtxSTATUS } else { If $Tlevel {
TCommit } k %objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED
k:'$TLevel %0CacheLock,%objtxTID,%objtxID } }
Set $zobjmod(,0)=0 Quit sc
%SaveERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSG>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
If traninit { i $g(%objtxSTATUS)=2 { k %0CacheLock s
sc=$select(+sc:$$%TRollBack^%occTransaction(),1:$$AppendStatus^%occSystem(sc,$$%TRollBack
^%occTransaction())) k %objtxTID,%objtxID } else { k %objtxSTATUS } }
Quit sc }
%SaveData(%this,id)
s id=..%Id() i id="" QUIT ..%SaveDataInsert(id)
QUIT ..%SaveDataUpdate(id)
%SaveDataInsert(%this,id)
New %ROWID,%sc,SQLCODE,lock,temp1
Set lock=0,%sc=1
Do %0Do
If SQLCODE Quit $$Error^%apiOBJ(5521,SQLCODE,$get(%msg))
Set id=%ROWID Set
$zobjoid("xobw.WebServer",id)=%this,$zobjval(,0,,,,3)=$lb(id_"","xobw.WebServer")
Set:$g(%objtxSTATUS)=2 %objtxOIDASSIGNED(+%this)=""
If $zobjval(,/*%Concurrency*/1,0,3,1)=4 If '$$%AcquireLock^xobw.WebServer.T1(id)
Quit $$Error^%apiOBJ(5803)
If $zobjval(,/*%Concurrency*/1,0,3,1)=3 If '$$%AcquireLock^xobw.WebServer.T1(id,1)
Quit $$Error^%apiOBJ(5804)
If lock Do %ReleaseLock^xobw.WebServer.T1(id)
Quit %sc
q
%0Do s $zt="%0Derr"
n %i
n %mmmsqld
s
%i(2)=$g($zobjval(,/*defaultTimeout*/4,0,3,4)),%i(3)=$g($zobjval(,/*ien*/5,0,3,5)),%i(4)=
$g($zobjval(,/*loginRequired*/6,0,3,6)),%i(5)=$g($zobjval(,/*name*/7,0,3,7)),%i(6)=$g($zo
bjval(,/*password*/8,0,3,8)),%i(7)=$g($zobjval(,/*port*/9,0,3,9)),%i(8)=$g($zobjval(,/*se
rver*/11,0,3,11)),%i(9)=$g($zobjval(,/*sslConfiguration*/12,0,3,12)),%i(10)=$g($zobjval(,
/*sslEnabled*/13,0,3,13)),%i(11)=$g($zobjval(,/*sslPort*/14,0,3,14)),%i(12)=$g($zobjval(,
/*status*/15,0,3,15)),%i(13)=$g($zobjval(,/*userName*/16,0,3,16))
s $zt="",%ROWID=$$%insert^xobw.WebServer.T1(.%i,$c(0,0,0,0,1)),%ROWCOUNT='SQLCODE
q // From %0Do
%0Derr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) q
%SaveDataUpdate(%this,id)
New %ROWID,%sc,SQLCODE,lock,notexist,temp1
Set lock=0,notexist=0,%sc=1
If $zobjval(,/*%Concurrency*/1,0,3,1) Set lock=$$%AcquireLock^xobw.WebServer.T1(id)
If 'lock Set %sc=$$Error^%apiOBJ(5803) Quit %sc
Do %0Fo
If SQLCODE=100 { s notexist=1 } ElseIf SQLCODE { Set
%sc=$$Error^%apiOBJ(5521,SQLCODE,$g(%msg)) }
If notexist { If lock { Do %ReleaseLock^xobw.WebServer.T1(id) } Quit
..%SaveDataInsert(id) }
If lock Do %ReleaseLock^xobw.WebServer.T1(id)
Quit %sc
q
%0Fo n
%mmmsqlc,%mmmsqld,%mmmsqlE,%mmmsqll,%mmmsqln,%mmmsqlp,%mmmsqlR,%mmmsqls,%mmmsqlt,%mmmsqlT
S,%mmmsqlTS2,%mmmsqlZ s $zt="%0Ferr" s %mmmsqld(26)=0 s %mmmsqld(27)=""
s
%mmmsqld(2)=$g($zobjval(,/*defaultTimeout*/4,0,3,4)),%mmmsqld(4)=$g($zobjval(,/*ien*/5,0,
3,5)),%mmmsqld(6)=$g($zobjval(,/*loginRequired*/6,0,3,6)),%mmmsqld(8)=$g($zobjval(,/*name
*/7,0,3,7)),%mmmsqld(10)=$g($zobjval(,/*password*/8,0,3,8)),%mmmsqld(12)=$g($zobjval(,/*p
ort*/9,0,3,9)),%mmmsqld(14)=$g($zobjval(,/*server*/11,0,3,11)),%mmmsqld(16)=$g($zobjval(,
/*sslConfiguration*/12,0,3,12)),%mmmsqld(18)=$g($zobjval(,/*sslEnabled*/13,0,3,13)),%mmms
qld(20)=$g($zobjval(,/*sslPort*/14,0,3,14)),%mmmsqld(22)=$g($zobjval(,/*status*/15,0,3,15
)),%mmmsqld(24)=$g($zobjval(,/*userName*/16,0,3,16)),%mmmsqld(25)=$g(id)
n %data
s SQLCODE=100
k:'$TLEVEL %0CacheLock If $zu(115,1)=2,'$TLEVEL { s %mmmsqlTS2=1 TSTART } If $zu(115,1)
{ s %mmmsqlTS=1 TSTART }
; asl MOD# 2
s %mmmsqld(3)=%mmmsqld(25)
i %mmmsqld(3)'="",$d(^XOB(18.12,%mmmsqld(3)))
e g %0FBdun
s %mmmsqld(32)=$$%getlock^xobw.WebServer.T1(%mmmsqld(3)) i '%mmmsqld(32) s SQLCODE=-110
g %0Fc
; asl MOD# 3
i %mmmsqld(3)'="",$d(^XOB(18.12,%mmmsqld(3)))
e g %0FCdun
k %data
s
%data(2)=$g(%mmmsqld(2)),%data(1)=$g(%mmmsqld(4)),%data(4)=$g(%mmmsqld(6)),%data(5)=$g(%m
mmsqld(8)),%data(6)=$g(%mmmsqld(10)),%data(7)=$g(%mmmsqld(12)),%data(8)=$g(%mmmsqld(14)),
%data(9)=$g(%mmmsqld(16)),%data(10)=$g(%mmmsqld(18)),%data(11)=$g(%mmmsqld(20)),%data(12)
=$g(%mmmsqld(22)),%data(13)=$g(%mmmsqld(24))
d %update^xobw.WebServer.T1(%mmmsqld(3),$c(0,2,0,0,1),.%data,,'$g(%mmmsqlTS))
i 'SQLCODE i $i(%mmmsqld(26))'<$g(%0CacheRowLimit,9223372036854775807) d:%mmmsqld(32)=1
%ReleaseLock^xobw.WebServer.T1(%mmmsqld(3)) g %0Fc
%0FCdun
d:%mmmsqld(32)=1 %ReleaseLock^xobw.WebServer.T1(%mmmsqld(3)) g:SQLCODE<0 %0Fc
%0FBdun
%0FAdun
%0Fc s %ROWCOUNT=$s($g(SQLCODE)'<0:+$g(%mmmsqld(26)),1:0)
If $zu(115,1),$g(%mmmsqlTS) { TCOMMIT:SQLCODE'<0 TROLLBACK:SQLCODE<0 1 }
TCOMMIT:SQLCODE=100&&(%ROWCOUNT=0)&&($g(%mmmsqlTS2))&&($zu(115,1)=2) q
%0Ferr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) d:$g(%mmmsqld(32))=1
%ReleaseLock^xobw.WebServer.T1(%mmmsqld(3)) g %0Fc
%SaveDirect(id="",idList="",data,concurrency=-1) public {
QUIT $$Error^%apiOBJ(5758,"%Persistent::%SaveDirect") }
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
If $get(%objTX2(+%this)) { Set partial = 1 } ElseIf ('partial) { Set %objTX2(+%this)
= 1 }
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
If $zobjval(,/*authorizedWebServices*/3,0,3,2)'="" {
Set:'$data(%objTX(1,+$zobjval(,/*authorizedWebServices*/3,0,3,2),1))
%objTX(1,+$zobjval(,/*authorizedWebServices*/3,0,3,2))=$zobjval(,/*authorizedWebServices*
/3,0,3,2),%objTX(1,+$zobjval(,/*authorizedWebServices*/3,0,3,2),1)=..authorizedWebService
sGetObject(1),%objTX(1,+$zobjval(,/*authorizedWebServices*/3,0,3,2),6)=2 Set
$zobjval(,/*authorizedWebServices*/2,0,3,2)=$listget(%objTX(1,+$zobjval(,/*authorizedWebS
ervices*/3,0,3,2),1)) }
s:$g(%objtxSTATUS)=2 %objtxLIST(+%this)=%this
Set id=$listget(serial),sc=..%SaveData(.id) If ('sc) { Ztrap "SO" }
Set serial=(..%Oid())
If 'partial { Set %objTX2(+%this) = 0 }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
If 'partial { Set %objTX2(+%this) = 0 }
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set
serial=..%Oid(),%objTX(1,intOref)=%this,%objTX(1,intOref,1)=serial,%objTX(1,intOref,6)=1
If (serial '= "") && (depth<2) Quit 1
Set tDepth=$select(depth'=2:depth,1:1)
If
$zobjval(,/*authorizedWebServices*/3,0,3,2)'="",'$data(%objTX(1,+$zobjval(,/*authorizedWe
bServices*/3,0,3,2))) Set sc=..authorizedWebServices.%AddToSaveSet(tDepth) Quit:('sc) sc
If ..%ObjectModified() Set %objTX(2,intOref)=1
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%SortBegin(idxlist="",excludeunique=0) public {
Quit 1 }
%SortEnd(idxlist="",commit=1) public {
Quit 1 }
%UnlockExtent(shared=0,immediate=0) public {
Quit
$Select($$%ReleaseTableLock^xobw.WebServer.T1(shared,immediate):1,1:$$Error^%apiOBJ(5540,
SQLCODE,%msg)) }
%UnlockId(id,shared=0,immediate=0) public {
Do %ReleaseLock^xobw.WebServer.T1(id,shared,immediate)
Quit 1 }
%UpgradeConcurrency(%this,concurrency=0) public {
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit
$$Error^%apiOBJ(5828)
Set current=$zobjval(,/*%Concurrency*/1,0,3,1)
Quit:concurrency'>current 1
If concurrency<3 Set
modflag=$zobjmod(,0),$zobjval(,/*%Concurrency*/1,0,3,1)=concurrency Set:modflag=0
$zobjmod(,0)=0 Quit 1
Set sc=..%AcquireLock($select(concurrency=3:"s",1:"e")) Quit:('sc) sc
If current=3 Do ..%ReleaseLock("s")
Set modflag=$zobjmod(,0),$zobjval(,/*%Concurrency*/1,0,3,1)=concurrency
Set:modflag=0 $zobjmod(,0)=0
Quit 1 }
%ValidateObject(%this,force=0)
New iv,sc,rc Set sc=1
If '(..%IsModified()) Quit 1
If $zobjmod(,4) Set iv=..defaultTimeout If iv'="" Set
rc=(..defaultTimeoutIsValid(iv)) If ('rc) Set
sc=$$xEmbedErr(sc,rc,5802,"defaultTimeout",iv)
Set iv=$zobjval(,/*ien*/5,0,3,5) If iv="" Set
rc=$$Error^%apiOBJ(5659,"xobw.WebServer"_"::"_"ien"_"("_%this_",ID="_..%Id()_")"),sc=$sel
ect(+sc:rc,1:$$AppendStatus^%occSystem(sc,rc))
If $zobjmod(,6) Set iv=$zobjval(,/*loginRequired*/6,0,3,6) If iv'="" Set
rc=(..loginRequiredIsValid(iv)) If ('rc) Set
sc=$$xEmbedErr(sc,rc,5802,"loginRequired",iv)
If $zobjmod(,9) Set iv=$zobjval(,/*port*/9,0,3,9) If iv'="" Set
rc=(..portIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"port",iv)
If $zobjmod(,10) Set iv=$zobjval(,/*production*/10,0,3,10) If iv'="" Set
rc=(..productionIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"production",iv)
If $zobjmod(,13) Set iv=$zobjval(,/*sslEnabled*/13,0,3,13) If iv'="" Set
rc=(..sslEnabledIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"sslEnabled",iv)
If $zobjmod(,15) Set iv=$zobjval(,/*status*/15,0,3,15) If iv'="" Set
rc=(..statusIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"status",iv)
Quit sc
xEmbedErr(sc,rc,errcode,loc,val) { Set
rc=$$EmbedError^%apiOBJ(rc,errcode,"xobw.WebServer"_":"_loc,val) Quit
$select(+sc:rc,1:$$AppendStatus^%occSystem(sc,rc)) }
Quit
zcheckWebServicesAvailability(%this,dots) public {
set key = ""
set count=0
set result=##class(%Library.ListOfDataTypes).%New()
// if server is disabled, stop
if '$zobjval(,/*status*/15,0,3,15) {
do result.Insert("")
do result.Insert(" o Web server is disabled")
do result.Insert("")
quit result
}
// loop thru web services credentials defined for server and build list output
// mainly for ListMan consumption (AVAIL^XOBWUT1)
do {
set authorizedWebService = ..authorizedWebServices.GetNext(.key)
if $get(dots) write "."
set count=count+1
if (authorizedWebService '= "") {
set
webService=##class(xobw.WebServiceMetadata).%OpenId(authorizedWebService.webServiceIen)
if (authorizedWebService.status) {
if ((webService.type=1) || (webService.type=2)) {
if
##class(xobw.WebServiceMetadata).checkResourceAvailability(%this,authorizedWebService,web
Service,.httpStatusCode) {
do result.Insert(count_" "_webService.name_" is
available")
} else {
do result.Insert(count_" Unable to retrieve
'"_webService.availResource_"' for "_webService.name)
//
// the following lines will report spurious
%objlasterror errors.
// supposed to be fixed in Cache 5.1+.
//
if ($data(%objlasterror)'=0) {
do
$system.Status.DecomposeStatus(%objlasterror,.err)
set x=$get(err(1)," o no reason available")
set length=$length(x)
do result.Insert(" o "_$extract(x,1,70))
set x=$extract(x,71,length)
while (x'="") {
do result.Insert("
"_$extract(x,1,70))
set x=$extract(x,71,length)
} // while
// if there is a status code, show it
if $get(httpStatusCode)]"" do result.Insert(" o
HTTP Response Status Code: "_httpStatusCode)
} else {
do result.Insert(" o HTTP Response Status
Code: "_$get(httpStatusCode,"<no status code available>"))
} // %objlasterror
} // resource availability
} else {
do result.Insert(count_" "_webService.name_" is not a valid
web service type ["_webservice.type_"]")
} // not valid type (rare and should not occur)
} else {
do result.Insert(count_" "_webService.name_" is not enabled")
} // authorizedWebService.status
} // authorizedWebService
} while (key '= "")
quit result }
zdefaultTimeoutGet(%this) public {
quit
$select($zobjval(,/*defaultTimeout*/4,0,3,4):$zobjval(,/*defaultTimeout*/4,0,3,4),1:30) }
zgetPassword(%this) public {
quit $$DECRYP^XOBWPWD($zobjval(,/*password*/8,0,3,8)) }
zgetWebServerId(name) public {
if $get(name)="" {
do ##class(xobw.error.DialogError).forceError(186005_"^<empty string>")
}
quit +$order(^XOB(18.12,"B",name,0)) }
zsetUpHttpRequest(%this,httpRequest) public {
if ($zobjval(,/*sslEnabled*/13,0,3,13) && ('$$SSLOK^XOBWENV())) {
do
##class(xobw.error.DialogError).forceError(186002_"^"_$zobjval(,/*name*/7,0,3,7)_" (SSL
is disabled on VMS)")
}
if ($zobjval(,/*sslEnabled*/13,0,3,13)) {
set httpRequest.Https=1
set httpRequest.SSLConfiguration=$zobjval(,/*sslConfiguration*/12,0,3,12)
set httpRequest.Port=$zobjval(,/*sslPort*/14,0,3,14)
} else {
set httpRequest.Port=$zobjval(,/*port*/9,0,3,9)
}
// common setting
set httpRequest.Server=$zobjval(,/*server*/11,0,3,11)
set httpRequest.Timeout=..defaultTimeout
quit }
%ConcurrencyIsValid(value) public {
Quit 1 }
zauthorizedWebServicesGetObject(%this,force=0) public {
Quit
$select($zobjval(,/*authorizedWebServices*/3,0,3,2)=""&&($data($zobjval(,/*authorizedWebS
ervices*/2,0,3,2))):$select($zobjval(,/*authorizedWebServices*/2,0,3,2)="":"",1:$listbuil
d($zobjval(,/*authorizedWebServices*/2,0,3,2)_"")),(+..authorizedWebServices.%GetSwizzleO
bject(force,.oid)):oid,1:"") }
zauthorizedWebServicesGetObjec2(%this,force=0) public {
Quit $listget(..authorizedWebServicesGetObject(force)) }
zauthorizedWebServicesGetSwizzl(%this) public {
If $zobjval(,/*authorizedWebServices*/3,0,3,2)'="" Quit
$zobjval(,/*authorizedWebServices*/3,0,3,2)
If $zobjval(,/*authorizedWebServices*/2,0,3,2)'="" {
Set
oid=$select($zobjval(,/*authorizedWebServices*/2,0,3,2)="":"",1:$listbuild($zobjval(,/*au
thorizedWebServices*/2,0,3,2)_""))
Set oref=##class("%Library.RelationshipObject").%Open(oid) If oref="" Quit ""
} Else { Set
oref=##class("%Library.RelationshipObject").%New($listbuild("xobw.WebServicesAuthorized",
"webServerRef",+%this,"children",1,1)) If oref="" Quit "" }
Set $zobjval(,/*authorizedWebServices*/3,0,0,2)=oref,$zobjmods(,2)=1,$zobjmods(,3)=1
Set oref.ElementType="xobw.WebServicesAuthorized"
Do oref.%SetModified(0)
Quit oref }
zauthorizedWebServicesIsModifie(%this) public {
Quit $zobjmod(,2) }
zauthorizedWebServicesIsValid(value) public {
Quit 1 }
zauthorizedWebServicesNewObject(%this) public {
Set
newobject=##class("%Library.RelationshipObject").%New($listbuild("xobw.WebServicesAuthori
zed","webServerRef",+%this,"children",1,1)) If newobject="" Quit ""
Set ..authorizedWebServices=newobject
Quit newobject }
zauthorizedWebServicesRExec(%qHandle,inverse) public {
Quit 1 }
zauthorizedWebServicesRClose(%qHandle) public {
Quit 1 }
zauthorizedWebServicesRFetch(%qHandle,FetchCount=0,RowSet,ReturnCount,AtEnd) public {
Set ReturnCount=0,AtEnd=1,RowSet="" Quit 1 }
zauthorizedWebServicesRelate(%this,oref) public {
Quit ..authorizedWebServices.Relate(oref) }
zauthorizedWebServicesSet(%this,newvalue) public {
If newvalue'="",'$isobject(newvalue) Quit $$Error^%apiOBJ(5807,newvalue)
If newvalue'="",$zobjval(,/*authorizedWebServices*/3,0,3,2)=newvalue Quit 1
Set
$zobjval(,/*authorizedWebServices*/3,0,3,2)=newvalue,$zobjval(,/*authorizedWebServices*/2
,0,3,2)="",$zobjmods(,3)=1
Quit 1 }
zauthorizedWebServicesSetModifi(%this,newvalue) public {
Set $zobjmod(,2)=newvalue Quit 1 }
zauthorizedWebServicesUnRelate(%this,oref) public {
Quit ..authorizedWebServices.UnRelate(oref) }
zdefaultTimeoutDisplayToLogical(%val)
Quit $in(%val,"",%val)
zdefaultTimeoutIsModified(%this) public {
Quit $zobjmod(,4) }
zdefaultTimeoutIsValid(%val)
Quit
$select($isvalidnum(%val,0,5,7200):1,'$isvalidnum(%val):$$Error^%apiOBJ(7207,%val),%val<5
:$$Error^%apiOBJ(7204,%val,5),1:$$Error^%apiOBJ(7203,%val,7200))
zdefaultTimeoutLogicalToDisplay(%val)
Quit %val
zdefaultTimeoutNormalize(%val)
Quit %val\1
zdefaultTimeoutSet(%this,newvalue) public {
Set $zobjval(,/*defaultTimeout*/4,0,3,4)=newvalue Quit 1 }
zdefaultTimeoutSetModified(%this,newvalue) public {
Set $zobjmod(,4)=newvalue Quit 1 }
zienDisplayToLogical(%val)
Quit %val
zienIsValid(%val)
Quit 1
zienLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
zienLogicalToOdbc(%val)
Quit %val
zienNormalize(%val)
Quit $e(%val,1,50)
zloginRequiredDisplayToLogical(%val="")
Quit ''%val
zloginRequiredIsValid(%val="")
Quit $select($isvalidnum(%val,0,0,2)&&(+%val'=2):1,1:$$Error^%apiOBJ(7206,%val))
zloginRequiredLogicalToDisplay(%val="")
Quit %val
zloginRequiredNormalize(%val)
Quit %val\1
zportDisplayToLogical(%val)
Quit $in(%val,"",%val)
zportIsValid(%val)
Quit $select($isvalidnum(%val,0,,):1,1:$$Error^%apiOBJ(7207,%val))
zportLogicalToDisplay(%val)
Quit %val
zportNormalize(%val)
Quit %val\1
zExtentExecute(%qHandle) [ SQLCODE,c1 ] public { New SQLCODE,c1
Set sc=1
s %qHandle=$i(%objcn)
Do %Q360o
If 'SQLCODE { Set sc=1 } Else { Set:$isobject($g(%sqlcontext))
%sqlcontext.SQLCode=SQLCODE,%sqlcontext.Message=$g(%msg) Set
sc=$$Error^%apiOBJ(5821,"SQLCODE = "_SQLCODE) }
Quit sc }
zExtentClose(%qHandle) [ SQLCODE,c1 ] public { New SQLCODE,c1
Do %Q360c
Kill
%objcsc(%qHandle),%objcsp(%qHandle),%objcss(%qHandle),%objcst(%qHandle),%objcsl(%qHandle)
,%objcsR(%qHandle),%objcsZ(%qHandle),%objcsd(%qHandle)
If 'SQLCODE { Set sc=1 } Else { Set:$isobject($g(%sqlcontext))
%sqlcontext.SQLCode=SQLCODE,%sqlcontext.Message=$g(%msg) Set
sc=$$Error^%apiOBJ(5540,SQLCODE,$get(%msg)) }
Quit sc }
zExtentFetch(%qHandle,Row,AtEnd=0) [ SQLCODE,c1 ] public { New SQLCODE,c1
Set Row="",AtEnd=0
Do %0Mo
If 'SQLCODE { Set Row=$lb(c1) Set sc=1 } ElseIf SQLCODE=100 { Set AtEnd=1,sc=1
Set:$isobject($g(%sqlcontext))
%sqlcontext.SQLCode=SQLCODE,%sqlcontext.RowCount=$g(%ROWCOUNT) } Else {
Set:$isobject($g(%sqlcontext)) %sqlcontext.SQLCode=SQLCODE,%sqlcontext.Message=$g(%msg)
Set AtEnd=1,sc=$$Error^%apiOBJ(5540,SQLCODE,$get(%msg)) }
Quit sc }
zExtentFetchRows(%qHandle,FetchCount=0,RowSet,ReturnCount,AtEnd) [ SQLCODE,c1 ] public {
New SQLCODE,c1
Set RowSet="",ReturnCount=0,AtEnd=0
For {
Do %0No
If 'SQLCODE { Set RowSet=RowSet_$lb(c1),ReturnCount=ReturnCount+1
Quit:(ReturnCount=FetchCount)||(($l(RowSet)+($l(RowSet)\ReturnCount))>24000) } Else { Set
AtEnd=1 Quit }
}
If 'SQLCODE { Set sc=1 } ElseIf SQLCODE=100 { Set sc=1
Set:$isobject($g(%sqlcontext))
%sqlcontext.SQLCode=SQLCODE,%sqlcontext.RowCount=$g(%ROWCOUNT) } Else {
Set:$isobject($g(%sqlcontext)) %sqlcontext.SQLCode=SQLCODE,%sqlcontext.Message=$g(%msg)
Set sc=$$Error^%apiOBJ(5540,SQLCODE,$get(%msg)) }
Quit sc }
q
%0HBs1(%val) ;
Quit $tr(%val,$c(0),"")
%Q360o s $zt="%Q360E" s SQLCODE=$s($g(%objcsc(%qHandle)):-101,1:0) q:SQLCODE'=0 s
%objcsd(%qHandle,4)=0 s %objcsd(%qHandle,5)=0,%objcsd(%qHandle,6)=""
s %objcsc(%qHandle)=1 q
%Q360E s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) k
%objcsd(%qHandle),%objcsc(%qHandle) q
%0Hfirst
; asl MOD# 2
s %objcsd(%qHandle,1)=0
%0HBk1 s %objcsd(%qHandle,1)=$o(^XOB(18.12,%objcsd(%qHandle,1)))
i '+%objcsd(%qHandle,1) g %0HBdun
i %objcsd(%qHandle,1)="" g %0HBdun
s
%objcsd(%qHandle,3)=$s($zu(115,5)=2:$$%0HBs1(%objcsd(%qHandle,1)),1:%objcsd(%qHandle,1))
g:$zu(115,2)=0 %0HBuncommitted i $zu(115,2)=1 l
+^XOB(18.12,$p(%objcsd(%qHandle,1),"||",1))#"S":$zu(115,4) i $t { s
%objcsd(%qHandle,5)=1,%objcsd(%qHandle,6)=$name(^XOB(18.12,$p(%objcsd(%qHandle,1),"||",1)
))_"#""SI""" } else { s SQLCODE=-114,%msg="Unable to acquire shared lock on table
xobw.WebServer for RowID value: "_%objcsd(%qHandle,1) ztrap "LOCK" }
; asl MOD# 3
i %objcsd(%qHandle,1)'="",$d(^XOB(18.12,%objcsd(%qHandle,1)))
e g %0HCdun
s
%objcsd(%qHandle,3)=$s($zu(115,5)=2:$$%0HBs1(%objcsd(%qHandle,1)),1:%objcsd(%qHandle,1))
%0HBuncommitted ;
s:$g(SQLCODE)'<0 SQLCODE=0 s
%objcsd(%qHandle,4)=%objcsd(%qHandle,4)+1,%ROWCOUNT=%objcsd(%qHandle,4),%ROWID=%objcsd(%q
Handle,1),%objcsc(%qHandle)=10 q
%Q360f i '$g(%objcsc(%qHandle)) { s SQLCODE=-102 q } i %objcsc(%qHandle)=100 { s
SQLCODE=100 q } s SQLCODE=0
s $zt="%0Herr" i $d(%0CacheRowLimit)#2,$g(%objcsd(%qHandle,4))'<%0CacheRowLimit { s
SQLCODE=100,%ROWCOUNT=%objcsd(%qHandle,4),%objcsc(%qHandle)=100 q } g
%0Hfirst:%objcsc(%qHandle)=1
%0HCdun i $zu(115,2)=1,$g(%objcsd(%qHandle,5))=1 { l -@%objcsd(%qHandle,6) s
%objcsd(%qHandle,5)=0 }
g %0HBk1
%0HBdun
%0HAdun
s %ROWCOUNT=%objcsd(%qHandle,4),SQLCODE=100,%objcsc(%qHandle)=100 q
%Q360c i '$g(%objcsc(%qHandle)) { s SQLCODE=-102 q } s
%ROWCOUNT=$s($g(SQLCODE)'<0:+$g(%objcsd(%qHandle,4)),1:0)
i $zu(115,2)=1,$g(%objcsd(%qHandle,5))=1 { l -@%objcsd(%qHandle,6) } k
%objcsd(%qHandle),%objcsc(%qHandle) s SQLCODE=0 q
%0Herr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) s %objcsc(%qHandle)=100 q
%0Mo d %Q360f q:SQLCODE'=0
s c1=%objcsd(%qHandle,3)
q
%0No d %Q360f q:SQLCODE'=0
s c1=%objcsd(%qHandle,3)
q
zExtentGetInfo(colinfo,parminfo,idinfo,%qHandle,extoption=0,extinfo) public {
s parminfo=""
s:'($d(^oddCOM("xobw.WebServer","q","Extent",21),clientinfo)#2)&&'$s($d(^(2),clienti
nfo)#2:$d(^oddCOM(clientinfo,"q","Extent",21),clientinfo)#2||($d(^oddDEF(clientinfo,"q","
Extent",21),clientinfo)#2),1:$d(^oddDEF("xobw.WebServer","q","Extent",21),clientinfo)#2)
clientinfo=$g(^%qCacheObjectKey(1,"q",21))
Set:extoption
extinfo=$s($d(^oddCOM("xobw.WebServer","q","Extent",38))#2:^(38),$d(^oddCOM($g(^(2),"xobw
.WebServer"),"q","Extent",38))#2:^(38),1:$s($d(^oddDEF($g(^oddCOM("xobw.WebServer","q","E
xtent",2),"xobw.WebServer"),"q","Extent",38))#2:^(38),1:$g(^%qCacheObjectKey(1,"q",38))))
If clientinfo'="" Set
colinfo=$listget(clientinfo,1),parminfo=$listget(clientinfo,2),idinfo=$listget(clientinfo
,3) Quit 1
Set colinfo="",parminfo="",idinfo=$listbuild(0)
Set sc=$$externaltype^%apiOLE("%Library.CacheString",.exttypes,"0")
Quit:('sc) sc
s:'($d(^oddCOM("xobw.WebServer","q","Extent",23),names)#2)&&'$s($d(^(2),names)#2:$d(
^oddCOM(names,"q","Extent",23),names)#2||($d(^oddDEF(names,"q","Extent",23),names)#2),1:$
d(^oddDEF("xobw.WebServer","q","Extent",23),names)#2)
names=$g(^%qCacheObjectKey(1,"q",23))
s:'($d(^oddCOM("xobw.WebServer","q","Extent",22),captions)#2)&&'$s($d(^(2),captions)
#2:$d(^oddCOM(captions,"q","Extent",22),captions)#2||($d(^oddDEF(captions,"q","Extent",22
),captions)#2),1:$d(^oddDEF("xobw.WebServer","q","Extent",22),captions)#2)
captions=$g(^%qCacheObjectKey(1,"q",22))
For i=1:1:1 Set
colinfo=colinfo_$listbuild($listbuild($listget(names,i),$piece(exttypes,",",i),$listget(c
aptions,i)))
Set idinfo=$listbuild(1,"xobw.WebServer")
s ^oddCOM("xobw.WebServer","q","Extent",21)=$listbuild(colinfo,parminfo,idinfo)
Quit 1 }
zExtentGetODBCInfo(colinfo,parminfo,qHandle) public {
set version = $Select($Get(%protocol,41)>40:4,1:3)
If $Get(^oddPROC("XOBW","WEBSERVER_EXTENT",21))'="" { Set sc = 1,
metadata=$Select(version=4:^oddPROC("XOBW","WEBSERVER_EXTENT",12),1:^oddPROC("XOBW","WEBS
ERVER_EXTENT",12,version)) }
ElseIf $Data(^oddPROC("XOBW","WEBSERVER_EXTENT")) { Set sc =
$$CompileSignature^%ourProcedure("XOBW","WEBSERVER_EXTENT",.metadata,.signature) }
Else { Set sc = $$Error^%apiOBJ(5068,"xobw.WebServer:Extent") }
If (+sc) { Set
colcount=$li(metadata,2),cmdlen=colcount*$Case(version,4:10,:9),colinfo=$li(metadata,2,2+
cmdlen),parmcount=$li(metadata,cmdlen+3),pmdlen=parmcount*6,parminfo=$li(metadata,cmdlen+
3,cmdlen+pmdlen+3) }
Quit sc }
zExtentPrepare(qHandle,statement,containid=0,optional) public {
Quit 1 }
zExtentSendODBC(qHandle,array,qacn,%qrc,piece,ColumnCount) public {
Kill array(qacn) Set %qrc=0
SPInnerLoop Set rc=##class(xobw.WebServer).ExtentFetch(.qHandle,.row,.atend)
If ('rc) { Set %qrc=-400 Set:$isobject($get(%sqlcontext)) %sqlcontext.SQLCode=400,%sqlcontext.Message=$g(%msg) Do
ProcessError^%ourProcedure(rc,$get(%sqlcontext),.%qrc,.%msg) Do
Logerr^%SYS.SQLSRV(%qrc,"","SP",.%msg) Set piece=0 Quit }
If row="" Set %qrc=100,piece=0 Set:$isobject($get(%sqlcontext))
%sqlcontext.SQLCode=100 Quit 1
For piece=1:1:ColumnCount { Goto:$zobjexport($listget(row,piece),7) SPDone }
Goto SPInnerLoop
SPDone
For i=piece:1:ColumnCount { Set array(qacn,i)=$listget(row,i) }
Quit }
zienIndexCheck(K1,lockonly=0) public {
s id=K1,exists=##class(xobw.WebServer).%ExistsId(id) q:'exists
$s('lockonly:$$Error^%apiOBJ(5797,"xobw.WebServer","ienIndex",id),1:1) s
status=##class(xobw.WebServer).%LockId(id,1) q:('status) status if 'lockonly { s
exists=##class(xobw.WebServer).%ExistsId(id) d ##class(xobw.WebServer).%UnlockId(id,1,0)
quit $s('exists:$$Error^%apiOBJ(5797,"xobw.WebServer","ienIndex",id),1:1) } else { d
##class(xobw.WebServer).%UnlockId(id,1,0) q 1 } }
zienIndexDelete(K1,concurrency=-1) public {
Quit ##class(xobw.WebServer).%DeleteId(.K1,concurrency) }
zienIndexExists(K1,id="")
s id=K1 q ##class(xobw.WebServer).%ExistsId(K1)
Quit
zienIndexOpen(K1,concurrency=-1,sc=1) public {
Quit ##class(xobw.WebServer).%OpenId(.K1,concurrency,.sc) }
xobw.WebServiceMetadata.1^INT^1^62153,34148^0^1
;xobw.WebServiceMetadata.1
;(C)InterSystems, generated for class xobw.WebServiceMetadata. Do NOT edit. 03/03/2011
09:29:07AM
;;00EE8A355B0710B4;xobw.WebServiceMetadata
;
%1Check(id="",lockonly=0) public {
Set exists=##class(xobw.WebServiceMetadata).%ExistsId(id) Quit:'exists
$select('lockonly:$$Error^%apiOBJ(5797,"xobw.WebServiceMetadata"_","_"",id),1:1) Set
status=##class(xobw.WebServiceMetadata).%LockId(id,1) Quit:('status) status If 'lockonly
{ Set exists=##class(xobw.WebServiceMetadata).%ExistsId(id) Do
##class(xobw.WebServiceMetadata).%UnlockId(id,1,0) Quit
$select('exists:$$Error^%apiOBJ(5797,"xobw.WebServiceMetadata"_","_"",id),1:1) } Else {
Do ##class(xobw.WebServiceMetadata).%UnlockId(id,1,0) Quit 1 } }
%AcquireLock(%this,locktype="") public {
Quit ..%LockId(..%Id(),$s($e(locktype)="s":1,1:0)) }
%BMEBuilt(bmeName)
Quit 1
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
Quit sc }
%BuildIndices(idxlist="",autoPurge=0,lockExtent=0) public {
s $ZTrap="CatchError",locked=0,sc=1
i lockExtent { d %AcquireTableLock^xobw.WebServiceMetadata.T1(0,.SQLCODE) i SQLCODE
{ q $$Error^%apiOBJ(5540,SQLCODE,$g(%msg)) } else { s locked=1 } }
i autoPurge { set sc = $$%PurgeIndices^xobw.WebServiceMetadata.T1(idxlist) i ('sc) {
quit sc } }
s sc=$$%BuildIndices^xobw.WebServiceMetadata.T1(idxlist)
i locked { d %ReleaseTableLock^xobw.WebServiceMetadata.T1(0) }
q sc
CatchError s $ZTrap="" i $ZE'="" { s sc = $$Error^%apiOBJ(5002,$ZE) } i locked { d
%ReleaseLock^xobw.WebServiceMetadata.T1(0) } q sc }
%CheckUnique(idxlist="") public {
QUIT $$Error^%apiOBJ(5758,"%Persistent::%CheckUnique") }
%ClassName(fullname) public {
Quit $select($get(fullname,0):"xobw.WebServiceMetadata",1:"WebServiceMetadata") }
%ComposeOid(id) public {
Quit
$Select(##class(xobw.WebServiceMetadata).%ExistsId(id):$select(id="":"",1:$listbuild(id_"
","xobw.WebServiceMetadata")),1:"")
}
%Construct(%this,initvalue)
Set
$zobjval(,/*%Concurrency*/1,0,3,1)=$zu(115,10),$zobjval(,/*availResource*/2,0,3,2)="",$zo
bjval(,/*contextRoot*/3,0,3,3)="",$zobjval(,/*ien*/4,0,3,4)="",$zobjval(,/*name*/5,0,3,5)
=""
Set $zobjval(,/*proxyClassName*/6,0,3,6)="",$zobjval(,/*type*/7,0,3,7)=""
Quit 1
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.WebServiceMetadata"),cloned(+object)=%this,cloned(+obje
ct,0)=object Set $zobjmod(,0)=1
Set
$zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2),$zobjval(,3)=$zobjval(obj
ect,3)
Set
$zobjval(,4)=$zobjval(object,4),$zobjval(,5)=$zobjval(object,5),$zobjval(,6)=$zobjval(obj
ect,6)
Set $zobjval(,7)=$zobjval(object,7)
Quit %this }
%Delete(oid="",concurrency=-1) public {
Quit:oid="" $$Error^%apiOBJ(5813) Set id=$listget(oid) Quit:id=""
$$Error^%apiOBJ(5812)
set $ZTRAP="%DeleteERR"
If concurrency = -1 Set concurrency=$zu(115,10)
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit
$$Error^%apiOBJ(5828)
Set class=$listget(oid,2)
If class="" { Set
class="xobw.WebServiceMetadata",oid=$select(oid="":"",1:$listbuild($listget(oid),"xobw.We
bServiceMetadata")_$select($listget(oid,3)'="":$listbuild($list(oid,3)),1:"")) } Else {
Set class=$s(class[".":class,$e(class)'="%":"User."_class,1:"%Library."_$e(class,2,*)) If
"xobw.WebServiceMetadata"'=class { Quit $zobjclassmethod(class,"%Delete",oid,concurrency)
} }
If +$g(%objtxSTATUS)=0 { Set traninit=1 k
%objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED k:'$TLevel
%0CacheLock,%objtxTID,%objtxID i '$zu(115,9) { s %objtxSTATUS=1 } else { TStart s
%objtxSTATUS=2 } } Else { Set traninit=0 }
Set oref=$zobjoid($listget(oid,2),$listget(oid))
If $isobject(oref) Do
. New %this Set %this=oref If %this.%Concurrency>2 { Set
sc=%this.%ReleaseLock($select(%this.%Concurrency=3:"s",1:"e")) } i $g(%objtxSTATUS)=2 { s
%objtxOIDUNASSIGNED(+oref)=oid,%objtxLIST(+oref)=oref Set
%objtxMODIFIED(+oref)=$zobjval(oref,0) } Set $zobjmod(oref,0)=1 Set
$zobjval(oref,0,,,,3)="" Set $zobjoid($listget(oid,2),$listget(oid))=""
Set sc=##class(xobw.WebServiceMetadata).%DeleteData(id,concurrency)
%DeleteEnd If traninit { If (+sc) { i $g(%objtxSTATUS)=1 { k %objtxSTATUS } else { If
$Tlevel { TCommit } k
%objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED k:'$TLevel
%0CacheLock,%objtxTID,%objtxID } } Else { i $g(%objtxSTATUS)=2 { k %0CacheLock s
sc=$select(+sc:$$%TRollBack^%occTransaction(),1:$$AppendStatus^%occSystem(sc,$$%TRollBack
^%occTransaction())) k %objtxTID,%objtxID } else { k %objtxSTATUS } } }
Quit sc
%DeleteERR Set $ZTrap="", sc=$$Error^%apiOBJ(5002,$ZE) goto %DeleteEnd }
%DeleteData(id,concurrency)
Quit:id="" $$Error^%apiOBJ(5812) New %sc Set %sc=1
If concurrency If '$$%AcquireLock^xobw.WebServiceMetadata.T1(id) Quit
$$Error^%apiOBJ(5803)
n %ROWID,SQLCODE
Do %0o
If SQLCODE Set %sc=$$Error^%apiOBJ(5521,SQLCODE,$g(%msg))
If concurrency Do %ReleaseLock^xobw.WebServiceMetadata.T1(id)
Quit %sc
%0o n
%mmmsqlc,%mmmsqld,%mmmsqlE,%mmmsqll,%mmmsqln,%mmmsqlp,%mmmsqlR,%mmmsqls,%mmmsqlt,%mmmsqlT
S,%mmmsqlTS2,%mmmsqlZ s $zt="%0err" s %mmmsqld(3)=0 s %mmmsqld(4)=""
s %mmmsqld(2)=$g(id)
s SQLCODE=100
k:'$TLEVEL %0CacheLock If $zu(115,1)=2,'$TLEVEL { s %mmmsqlTS2=1 TSTART } If $zu(115,1)
{ s %mmmsqlTS=1 TSTART }
; asl MOD# 2
s %mmmsqld(1)=%mmmsqld(2)
i %mmmsqld(1)'="",$d(^XOB(18.02,%mmmsqld(1)))
e g %0Bdun
s %mmmsqld(9)=$$%getlock^xobw.WebServiceMetadata.T1(%mmmsqld(1)) i '%mmmsqld(9) s
SQLCODE=-110 g %0c
; asl MOD# 3
i %mmmsqld(1)'="",$d(^XOB(18.02,%mmmsqld(1)))
e g %0Cdun
d %delete^xobw.WebServiceMetadata.T1(%mmmsqld(1),$c(0,2,0,0,0),'$g(%mmmsqlTS))
i 'SQLCODE i $i(%mmmsqld(3))'<$g(%0CacheRowLimit,9223372036854775807) d:%mmmsqld(9)=1
%ReleaseLock^xobw.WebServiceMetadata.T1(%mmmsqld(1)) g %0c
%0Cdun
d:%mmmsqld(9)=1 %ReleaseLock^xobw.WebServiceMetadata.T1(%mmmsqld(1)) g:SQLCODE<0 %0c
%0Bdun
%0Adun
%0c s %ROWCOUNT=$s($g(SQLCODE)'<0:+$g(%mmmsqld(3)),1:0)
If $zu(115,1),$g(%mmmsqlTS) { TCOMMIT:SQLCODE'<0 TROLLBACK:SQLCODE<0 1 }
TCOMMIT:SQLCODE=100&&(%ROWCOUNT=0)&&($g(%mmmsqlTS2))&&($zu(115,1)=2) q
%0err s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) d:$g(%mmmsqld(9))=1
%ReleaseLock^xobw.WebServiceMetadata.T1(%mmmsqld(1)) g %0c
%DeleteExtent(concurrency=-1,deletecount,instancecount) public {
If concurrency = -1 Set concurrency=$zu(115,10)
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit
$$Error^%apiOBJ(5828)
Set deletecount=0,instancecount=0
Set sc=##class(xobw.WebServiceMetadata).ExtentExecute(.qh) Quit:('sc) sc
For Set sc=##class(xobw.WebServiceMetadata).ExtentFetch(.qh,.row,.atend)
Quit:$select(row="":1,('sc):1,1:0) Set id=$listget(row) If id'="" Set
sc=##class(xobw.WebServiceMetadata).%Delete($listbuild(id),concurrency) Set
instancecount=instancecount+1 Set:(+sc) deletecount=deletecount+1 Quit:atend
Do ##class(xobw.WebServiceMetadata).ExtentClose(qh)
If instancecount = deletecount { do ##class(xobw.WebServiceMetadata).%KillExtent()
set sc = 1 } else { set sc = $$Error^%apiOBJ(5764,"xobw.WebServiceMetadata") }
Quit sc }
%DeleteId(id,concurrency=-1) public {
Quit
##class(xobw.WebServiceMetadata).%Delete($select(id="":"",1:$listbuild(id_"")),.concurren
cy) }
%Destruct(%this) public {
Set oid=$zobjval(,0,,,,3)
If oid'="" { If $zobjval(,/*%Concurrency*/1,0,3,1)=3 { Do ..%ReleaseLock("s") }
ElseIf $zobjval(,/*%Concurrency*/1,0,3,1)=4 { Do ..%ReleaseLock("e") } Set
$zobjoid($listget(oid,2),$listget(oid))="" }
Kill
%objtxLIST(+%this),%objtxOIDASSIGNED(+%this),%objtxOIDUNASSIGNED(+%this),%objtxMODIFIED(+
%this)
Quit 1 }
%DowngradeConcurrency(%this,concurrency=0) public {
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit
$$Error^%apiOBJ(5828)
Set current=$zobjval(,/*%Concurrency*/1,0,3,1)
If concurrency'<current Quit 1
If current<3 Set modflag=$zobjmod(,0),$zobjval(,/*%Concurrency*/1,0,3,1)=concurrency
Set:modflag=0 $zobjmod(,0)=0 Quit 1
If concurrency>2 Set sc=..%AcquireLock($select(concurrency=3:"s",1:"e")) Quit:('sc)
sc
Do ..%ReleaseLock($select(current=3:"s",1:"e"))
Set modflag=$zobjmod(,0),$zobjval(,/*%Concurrency*/1,0,3,1)=concurrency
Set:modflag=0 $zobjmod(,0)=0
Quit 1 }
%Exists(oid) public {
Quit $isobject(##class(xobw.WebServiceMetadata).%Open(oid,0)) }
%ExistsId(id) public {
Quit ##class(xobw.WebServiceMetadata).%Exists($listbuild(id)) }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.WebServiceMetadata","%Library.Persistent","%Library.SwizzleO
bject","%Library.RegisteredObject","%XML.Adaptor"),$s(isclass[".":isclass,$e(isclass)'="%
":"User."_isclass,1:"%Library."_$e(isclass,2,*))) }
%GUID(oid) public {
If $listget($Get(oid)) = "" Quit ""
If "xobw.WebServiceMetadata"=$listget(oid,2) Quit $Get(^OBJ.GUID(1,oid))
Set class=$listget(oid,2)
If class="" { Set
class="xobw.WebServiceMetadata",oid=$select(oid="":"",1:$listbuild($listget(oid),"xobw.We
bServiceMetadata")_$select($listget(oid,3)'="":$listbuild($list(oid,3)),1:"")) } Else {
Set class=$s(class[".":class,$e(class)'="%":"User."_class,1:"%Library."_$e(class,2,*)) If
"xobw.WebServiceMetadata"'=class { Quit $zobjclassmethod(class,"%GUID",oid) } }
Quit $Get(^OBJ.GUID(1,oid)) }
%GUIDSet(oid,guid="") public {
Quit "" }
%GetParameter(paramname="") public {
Quit
$case(paramname,"DBTIME":0,"DEFAULTCONCURRENCY":"$zu(115,10)","EXTENTSIZE":100000,"GUIDEN
ABLED":0,"MANAGEDEXTENT":1,"OBJJOURNAL":0,"PROPERTYVALIDATION":2,"READONLY":0,"SQLENABLED
":1,"STORAGECOMPILERCLASS":"%Compiler.Storage.CacheSQL","XMLENABLED":1,"XMLIGNOREINVALIDA
TTRIBUTE":1,"XMLIGNOREINVALIDTAG":0,"XMLIGNORENULL":0,"XMLINCLUDEINGROUP":1,"XMLSEQUENCE"
:0,:"") }
%GetSwizzleObject(%this,force=0,oid) public {
Set oid="" If force=0 Set oid=(..%Oid()) Quit 1
If force=2 Set sc=..%Save(1) Set:(+sc) oid=(..%Oid()) Quit sc
Set oid=(..%Oid()) Quit:oid'="" 1
Set sc=..%Save(0) Set:(+sc) oid=..%Oid()
Quit sc }
%Id(%this)
Quit $listget($zobjval(,0,,,,3))
%IdSet(%this,id) public {
Set
class=$zobjclass(%this),oid=$select(id="":"",1:$listbuild(id_"",$s($l(class,".")=2:$s($e(
class,1,9)="%Library.":"%"_$p(class,".",2),1:class),1:class)))
If $zobjval(,0,,,,3)'="",$zobjval(,0,,,,3)'=oid Quit $$Error^%apiOBJ(5814)
Set $zobjval(,0,,,,3)=oid Set $zobjoid($listget(oid,2),$listget(oid))=%this
Quit 1 }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.WebServiceMetadata","%Library.Persistent","%Library.SwizzleO
bject","%Library.RegisteredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_iscla
ss,1:"%Library."_$e(isclass,2,*))) }
%IsModified(%this) public {
Quit $zobjmod(,0) }
%KillExtent() public {
set subextent=$order(^oddMAP("xobw.WebServiceMetadata","Z","")) While subextent'=""
{ if
($s($d(^oddCOM(subextent,"m","%KillExtent",44))#2:^(44),$d(^oddCOM($g(^(2),subextent),"m"
,"%KillExtent",44))#2:^(44),1:$s($d(^oddDEF($g(^oddCOM(subextent,"m","%KillExtent",2),sub
extent),"m","%KillExtent",44))#2:^(44),1:$g(^%qCacheObjectKey(1,"m",44))))) &&
($Data(^rOBJ($zutil(135,23,subextent)_"."_(+0)))) { Set
sc=$zobjclassmethod(subextent,"%KillExtent") If ('sc) { Goto Exit } } Set
subextent=$order(^oddMAP("xobw.WebServiceMetadata","Z",subextent)) }
set sc=##class(xobw.WebServiceMetadata).%PurgeIndices()
If (+sc) { Set sc=##class(xobw.WebServiceMetadata).%KillExtentData() }
Exit Quit sc }
%KillExtentData() public {
QUIT $$Error^%apiOBJ(5758,"%Persistent::%KillExtentData") }
%LoadData(%this,id)
n %ROWID,%sc,SQLCODE
Set %sc=0
If $zobjval(,/*%Concurrency*/1,0,3,1)=4 If
'$$%AcquireLock^xobw.WebServiceMetadata.T1(id) Quit $$Error^%apiOBJ(5803)
If $zobjval(,/*%Concurrency*/1,0,3,1)'=4,$zobjval(,/*%Concurrency*/1,0,3,1) If
'$$%AcquireLock^xobw.WebServiceMetadata.T1(id,1) Quit $$Error^%apiOBJ(5804)
Do %0Bo
If SQLCODE Set
$zobjval(,/*availResource*/2,0,3,2)="",$zobjval(,/*contextRoot*/3,0,3,3)="",$zobjval(,/*i
en*/4,0,3,4)="",$zobjval(,/*name*/5,0,3,5)="",$zobjval(,/*proxyClassName*/6,0,3,6)="",$zo
bjval(,/*type*/7,0,3,7)=""
Else Do
. Set %sc=1
If $zobjval(,/*%Concurrency*/1,0,3,1)=2||($zobjval(,/*%Concurrency*/1,0,3,1)=1) Do
%ReleaseLock^xobw.WebServiceMetadata.T1(id,1)
Quit $Select((+%sc):1,1:$$Error^%apiOBJ(5809))
%0Bo n
%mmmsqlc,%mmmsqld,%mmmsqlE,%mmmsqll,%mmmsqln,%mmmsqlp,%mmmsqlR,%mmmsqls,%mmmsqlt,%mmmsqlZ
s $zt="%0Berr" s %mmmsqld(15)=0,%mmmsqld(16)=""
s %mmmsqld(13)=$g(id)
s SQLCODE=100
; asl MOD# 2
s $zobjval(,/*ien*/4,0,3,4)=%mmmsqld(13)
i $zobjval(,/*ien*/4,0,3,4)'="",$d(^XOB(18.02,$zobjval(,/*ien*/4,0,3,4)))
e g %0BBdun
s %mmmsqld(21)=$g(^XOB(18.02,$zobjval(,/*ien*/4,0,3,4),0))
s $zobjval(,/*name*/5,0,3,5)=$p(%mmmsqld(21),"^",1) s
$zobjval(,/*type*/7,0,3,7)=$p(%mmmsqld(21),"^",2)
s $zobjval(,/*proxyClassName*/6,0,3,6)=$g(^XOB(18.02,$zobjval(,/*ien*/4,0,3,4),100))
s $zobjval(,/*contextRoot*/3,0,3,3)=$g(^XOB(18.02,$zobjval(,/*ien*/4,0,3,4),200))
s $zobjval(,/*availResource*/2,0,3,2)=$g(^XOB(18.02,$zobjval(,/*ien*/4,0,3,4),201))
g:$zu(115,2)=0 %0BBuncommitted i $zu(115,2)=1 l
+^XOB(18.02,$p($zobjval(,/*ien*/4,0,3,4),"||",1))#"S":$zu(115,4) i $t { s
%mmmsqld(15)=1,%mmmsqld(16)=$name(^XOB(18.02,$p($zobjval(,/*ien*/4,0,3,4),"||",1)))_"#""S
I""" } else { s SQLCODE=-114,%msg="Unable to acquire shared lock on table
xobw.WebServiceMetadata for RowID value: "_$zobjval(,/*ien*/4,0,3,4) ztrap "LOCK" }
; asl MOD# 3
i $zobjval(,/*ien*/4,0,3,4)'="",$d(^XOB(18.02,$zobjval(,/*ien*/4,0,3,4)))
e g %0BCdun
s %mmmsqld(26)=$g(^XOB(18.02,$zobjval(,/*ien*/4,0,3,4),0))
s $zobjval(,/*name*/5,0,3,5)=$p(%mmmsqld(26),"^",1) s
$zobjval(,/*type*/7,0,3,7)=$p(%mmmsqld(26),"^",2)
s $zobjval(,/*proxyClassName*/6,0,3,6)=$g(^XOB(18.02,$zobjval(,/*ien*/4,0,3,4),100))
s $zobjval(,/*contextRoot*/3,0,3,3)=$g(^XOB(18.02,$zobjval(,/*ien*/4,0,3,4),200))
s $zobjval(,/*availResource*/2,0,3,2)=$g(^XOB(18.02,$zobjval(,/*ien*/4,0,3,4),201))
%0BBuncommitted ;
s SQLCODE=0 g %0Bc
%0BCdun i $zu(115,2)=1,$g(%mmmsqld(15))=1 { l -@%mmmsqld(16) s %mmmsqld(15)=0 }
%0BBdun
%0BAdun
%0Bc s %ROWCOUNT='SQLCODE i $zu(115,2)=1,$g(%mmmsqld(15))=1 { l -@%mmmsqld(16) } q
%0Berr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) g %0Bc
%LockExtent(shared=0) public {
Quit
$Select($$%AcquireTableLock^xobw.WebServiceMetadata.T1(shared):1,1:$$Error^%apiOBJ($Selec
t('shared:5803,1:5804))) }
%GetLock(id,shared=0) public {
Kill:'$TLEVEL %0CacheLock If
$increment(%0CacheLock("xobw.WebServiceMetadata"))>$zutil(115,6) { If
(+##class(xobw.WebServiceMetadata).%LockExtent(shared)) { Quit 2 } Else { Quit 0 } }
Quit:(+##class(xobw.WebServiceMetadata).%LockId(id,shared)) 1 Quit 0 }
%LockId(id,shared=0) public {
if id'="" { Quit:'$$%AcquireLock^xobw.WebServiceMetadata.T1(id,shared)
$$Error^%apiOBJ($Select('shared:5803,1:5804)) Quit 1 } else { quit $$Error^%apiOBJ(5812)
} }
%NormalizeObject(%this)
Set:$zobjval(,/*availResource*/2,0,3,2)'=""
$zobjval(,/*availResource*/2,0,3,2)=(..availResourceNormalize($zobjval(,/*availResource*/
2,0,3,2)))
Set:$zobjval(,/*contextRoot*/3,0,3,3)'=""
$zobjval(,/*contextRoot*/3,0,3,3)=(..contextRootNormalize($zobjval(,/*contextRoot*/3,0,3,
3)))
Set:$zobjval(,/*ien*/4,0,3,4)'=""
$zobjval(,/*ien*/4,0,3,4)=(..ienNormalize($zobjval(,/*ien*/4,0,3,4)))
Set:$zobjval(,/*name*/5,0,3,5)'=""
$zobjval(,/*name*/5,0,3,5)=(..nameNormalize($zobjval(,/*name*/5,0,3,5)))
Set:$zobjval(,/*proxyClassName*/6,0,3,6)'=""
$zobjval(,/*proxyClassName*/6,0,3,6)=(..proxyClassNameNormalize($zobjval(,/*proxyClassNam
e*/6,0,3,6)))
Set:$zobjval(,/*type*/7,0,3,7)'=""
$zobjval(,/*type*/7,0,3,7)=(..typeNormalize($zobjval(,/*type*/7,0,3,7)))
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%Oid(%this)
Quit $zobjval(,0,,,,3)
%Open(oid,concurrency=-1,sc) public { Set:'($data(sc)#2) sc=1
If $listget($g(oid))="" Set sc = $$Error^%apiOBJ(5813) Quit ""
If concurrency = -1 Set concurrency=$zu(115,10)
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Set sc
= $$Error^%apiOBJ(5828) Quit ""
Set $Ztrap = "Catch"
New %this Set class=$listget(oid,2)
If class="" { Set
class="xobw.WebServiceMetadata",oid=$select(oid="":"",1:$listbuild($listget(oid),"xobw.We
bServiceMetadata")_$select($listget(oid,3)'="":$listbuild($list(oid,3)),1:"")) } Else {
Set class=$s(class[".":class,$e(class)'="%":"User."_class,1:"%Library."_$e(class,2,*)) If
"xobw.WebServiceMetadata"'=class { Quit
$zobjclassmethod(class,"%Open",oid,concurrency,.sc) } }
Set %this=$zobjoid($listget(oid,2),$listget(oid))
If %this'="" { If concurrency>$zobjval(,/*%Concurrency*/1,0,3,1) { If
($zobjval(,/*%Concurrency*/1,0,3,1)<3) && (concurrency > 2) { Set reload = 1 } Else { Set
reload = 0 } Set sc=..%UpgradeConcurrency(concurrency) If (reload) && ((+sc)) { Set
sc=..%Reload() } If ('sc) { Quit "" } } Else { Set sc = 1 } Quit %this }
Set %this=$zobjnew("xobw.WebServiceMetadata")
Set $zobjval(,/*%Concurrency*/1,0,3,1)=concurrency
Set $zobjval(,0,,,,3)=oid Set $zobjoid($listget(oid,2),$listget(oid))=%this
Set sc=..%LoadData($listget(oid)) If ('sc) Quit ""
Set $zobjmod(,0)=0
Quit %this
Catch Set $ZTrap = ""
If '(+$Get(sc)) { Quit "" }
Set sc =
$Select($Extract($ZE,1,9)="<PROTECT>":$$Error^%apiOBJ(939,"xobw.WebServiceMetadata"_"::%O
pen"),1:$$Error^%apiOBJ(5002,$ZE))
Quit "" }
%OpenId(id,concurrency=-1,sc=1) public {
Quit
##class(xobw.WebServiceMetadata).%Open($select(id="":"",1:$listbuild(id_"")),.concurrency
,.sc) }
%PackageName()
Quit "xobw"
%PurgeIndices(idxlist="",lockExtent=0) public {
s $ZTrap="CatchError",locked=0,sc=1
i lockExtent { d %AcquireTableLock^xobw.WebServiceMetadata.T1(0,.SQLCODE) i SQLCODE
{ q $$Error^%apiOBJ(5540,SQLCODE,$g(%msg)) } else { s locked=1 } }
s sc=$$%PurgeIndices^xobw.WebServiceMetadata.T1(idxlist)
i locked { d %ReleaseTableLock^xobw.WebServiceMetadata.T1(0) }
q sc
CatchError s $ZTrap="" i $ZE'="" { s sc = $$Error^%apiOBJ(5002,$ZE) } i locked { d
%ReleaseLock^xobw.WebServiceMetadata.T1(0) } q sc }
%ReleaseLock(%this,locktype="") public {
Quit ..%UnlockId(..%Id(),$s($e(locktype)="s":1,1:0),$s($e(locktype,2)="i":1,1:0)) }
%Reload(%this) public {
If ..%Id()="" Quit $$Error^%apiOBJ(5813)
Set cur=$zobjval(,/*%Concurrency*/1,0,3,1),$zobjval(,/*%Concurrency*/1,0,3,1)=0
Set sc=..%LoadData(..%Id()) Set $zobjval(,/*%Concurrency*/1,0,3,1)=cur If ('sc) Quit
""
Set $zobjmod(,0)=0
Quit 1 }
%ResolveConcurrencyConflict(oid,objSS,iPtr,bAcceptYours=0) public {
Quit $$Error^%apiOBJ(5758,"xobw.WebServiceMetadata"_"::%ResolveConcurrencyConflict")
}
%RollBack(%this) public {
If $data(%objtxMODIFIED(+%this)) Set $zobjval(,0)=%objtxMODIFIED(+%this)
Quit 1 }
%Save(%this,related=1) public {
Set $ZTrap="%SaveERR"
New %objTX Set sc=1,traninit=0 If '$data(%objTX2) New %objTX2 Set %objTX2=1
If +$g(%objtxSTATUS)=0 { Set traninit=1 k
%objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED k:'$TLevel
%0CacheLock,%objtxTID,%objtxID i '$zu(115,9) { s %objtxSTATUS=1 } else { TStart s
%objtxSTATUS=2 } }
If ..%ObjectModified() Set sc=..%SerializeObject(..%Oid()) If ('sc)
k:$g(%objtxSTATUS)=2 %objtxLIST(+%this),%objtxMODIFIED(+%this) ZTrap "SG"
%SaveCOMMIT If traninit { i $g(%objtxSTATUS)=1 { k %objtxSTATUS } else { If $Tlevel {
TCommit } k %objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED
k:'$TLevel %0CacheLock,%objtxTID,%objtxID } }
Set $zobjmod(,0)=0 Quit sc
%SaveERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSG>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
If traninit { i $g(%objtxSTATUS)=2 { k %0CacheLock s
sc=$select(+sc:$$%TRollBack^%occTransaction(),1:$$AppendStatus^%occSystem(sc,$$%TRollBack
^%occTransaction())) k %objtxTID,%objtxID } else { k %objtxSTATUS } }
Quit sc }
%SaveData(%this,id)
s id=..%Id() i id="" QUIT ..%SaveDataInsert(id)
QUIT ..%SaveDataUpdate(id)
%SaveDataInsert(%this,id)
New %ROWID,%sc,SQLCODE,lock,temp1
Set lock=0,%sc=1
Do %0Do
If SQLCODE Quit $$Error^%apiOBJ(5521,SQLCODE,$get(%msg))
Set id=%ROWID Set
$zobjoid("xobw.WebServiceMetadata",id)=%this,$zobjval(,0,,,,3)=$lb(id_"","xobw.WebService
Metadata")
Set:$g(%objtxSTATUS)=2 %objtxOIDASSIGNED(+%this)=""
If $zobjval(,/*%Concurrency*/1,0,3,1)=4 If
'$$%AcquireLock^xobw.WebServiceMetadata.T1(id) Quit $$Error^%apiOBJ(5803)
If $zobjval(,/*%Concurrency*/1,0,3,1)=3 If
'$$%AcquireLock^xobw.WebServiceMetadata.T1(id,1) Quit $$Error^%apiOBJ(5804)
If lock Do %ReleaseLock^xobw.WebServiceMetadata.T1(id)
Quit %sc
q
%0Do s $zt="%0Derr"
n %i
n %mmmsqld
s
%i(2)=$g($zobjval(,/*availResource*/2,0,3,2)),%i(3)=$g($zobjval(,/*contextRoot*/3,0,3,3))
,%i(4)=$g($zobjval(,/*ien*/4,0,3,4)),%i(5)=$g($zobjval(,/*name*/5,0,3,5)),%i(6)=$g($zobjv
al(,/*proxyClassName*/6,0,3,6)),%i(7)=$g($zobjval(,/*type*/7,0,3,7))
s
$zt="",%ROWID=$$%insert^xobw.WebServiceMetadata.T1(.%i,$c(0,0,0,0,1)),%ROWCOUNT='SQLCODE
q // From %0Do
%0Derr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) q
%SaveDataUpdate(%this,id)
New %ROWID,%sc,SQLCODE,lock,notexist,temp1
Set lock=0,notexist=0,%sc=1
If $zobjval(,/*%Concurrency*/1,0,3,1) Set
lock=$$%AcquireLock^xobw.WebServiceMetadata.T1(id) If 'lock Set %sc=$$Error^%apiOBJ(5803)
Quit %sc
Do %0Fo
If SQLCODE=100 { s notexist=1 } ElseIf SQLCODE { Set
%sc=$$Error^%apiOBJ(5521,SQLCODE,$g(%msg)) }
If notexist { If lock { Do %ReleaseLock^xobw.WebServiceMetadata.T1(id) } Quit
..%SaveDataInsert(id) }
If lock Do %ReleaseLock^xobw.WebServiceMetadata.T1(id)
Quit %sc
q
%0Fo n
%mmmsqlc,%mmmsqld,%mmmsqlE,%mmmsqll,%mmmsqln,%mmmsqlp,%mmmsqlR,%mmmsqls,%mmmsqlt,%mmmsqlT
S,%mmmsqlTS2,%mmmsqlZ s $zt="%0Ferr" s %mmmsqld(14)=0 s %mmmsqld(15)=""
s
%mmmsqld(2)=$g($zobjval(,/*availResource*/2,0,3,2)),%mmmsqld(4)=$g($zobjval(,/*contextRoo
t*/3,0,3,3)),%mmmsqld(6)=$g($zobjval(,/*ien*/4,0,3,4)),%mmmsqld(8)=$g($zobjval(,/*name*/5
,0,3,5)),%mmmsqld(10)=$g($zobjval(,/*proxyClassName*/6,0,3,6)),%mmmsqld(12)=$g($zobjval(,
/*type*/7,0,3,7)),%mmmsqld(13)=$g(id)
n %data
s SQLCODE=100
k:'$TLEVEL %0CacheLock If $zu(115,1)=2,'$TLEVEL { s %mmmsqlTS2=1 TSTART } If $zu(115,1)
{ s %mmmsqlTS=1 TSTART }
; asl MOD# 2
s %mmmsqld(5)=%mmmsqld(13)
i %mmmsqld(5)'="",$d(^XOB(18.02,%mmmsqld(5)))
e g %0FBdun
s %mmmsqld(20)=$$%getlock^xobw.WebServiceMetadata.T1(%mmmsqld(5)) i '%mmmsqld(20) s
SQLCODE=-110 g %0Fc
; asl MOD# 3
i %mmmsqld(5)'="",$d(^XOB(18.02,%mmmsqld(5)))
e g %0FCdun
k %data
s
%data(2)=$g(%mmmsqld(2)),%data(3)=$g(%mmmsqld(4)),%data(1)=$g(%mmmsqld(6)),%data(5)=$g(%m
mmsqld(8)),%data(6)=$g(%mmmsqld(10)),%data(7)=$g(%mmmsqld(12))
d %update^xobw.WebServiceMetadata.T1(%mmmsqld(5),$c(0,2,0,0,1),.%data,,'$g(%mmmsqlTS))
i 'SQLCODE i $i(%mmmsqld(14))'<$g(%0CacheRowLimit,9223372036854775807) d:%mmmsqld(20)=1
%ReleaseLock^xobw.WebServiceMetadata.T1(%mmmsqld(5)) g %0Fc
%0FCdun
d:%mmmsqld(20)=1 %ReleaseLock^xobw.WebServiceMetadata.T1(%mmmsqld(5)) g:SQLCODE<0 %0Fc
%0FBdun
%0FAdun
%0Fc s %ROWCOUNT=$s($g(SQLCODE)'<0:+$g(%mmmsqld(14)),1:0)
If $zu(115,1),$g(%mmmsqlTS) { TCOMMIT:SQLCODE'<0 TROLLBACK:SQLCODE<0 1 }
TCOMMIT:SQLCODE=100&&(%ROWCOUNT=0)&&($g(%mmmsqlTS2))&&($zu(115,1)=2) q
%0Ferr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) d:$g(%mmmsqld(20))=1
%ReleaseLock^xobw.WebServiceMetadata.T1(%mmmsqld(5)) g %0Fc
%SaveDirect(id="",idList="",data,concurrency=-1) public {
QUIT $$Error^%apiOBJ(5758,"%Persistent::%SaveDirect") }
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
If $get(%objTX2(+%this)) { Set partial = 1 } ElseIf ('partial) { Set %objTX2(+%this)
= 1 }
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
s:$g(%objtxSTATUS)=2 %objtxLIST(+%this)=%this
Set id=$listget(serial),sc=..%SaveData(.id) If ('sc) { Ztrap "SO" }
Set serial=(..%Oid())
If 'partial { Set %objTX2(+%this) = 0 }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
If 'partial { Set %objTX2(+%this) = 0 }
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set
serial=..%Oid(),%objTX(1,intOref)=%this,%objTX(1,intOref,1)=serial,%objTX(1,intOref,6)=1
If (serial '= "") && (depth<2) Quit 1
Set tDepth=$select(depth'=2:depth,1:1)
If ..%ObjectModified() Set %objTX(2,intOref)=1
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%SortBegin(idxlist="",excludeunique=0) public {
Quit 1 }
%SortEnd(idxlist="",commit=1) public {
Quit 1 }
%UnlockExtent(shared=0,immediate=0) public {
Quit
$Select($$%ReleaseTableLock^xobw.WebServiceMetadata.T1(shared,immediate):1,1:$$Error^%api
OBJ(5540,SQLCODE,%msg)) }
%UnlockId(id,shared=0,immediate=0) public {
Do %ReleaseLock^xobw.WebServiceMetadata.T1(id,shared,immediate)
Quit 1 }
%UpgradeConcurrency(%this,concurrency=0) public {
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit
$$Error^%apiOBJ(5828)
Set current=$zobjval(,/*%Concurrency*/1,0,3,1)
Quit:concurrency'>current 1
If concurrency<3 Set
modflag=$zobjmod(,0),$zobjval(,/*%Concurrency*/1,0,3,1)=concurrency Set:modflag=0
$zobjmod(,0)=0 Quit 1
Set sc=..%AcquireLock($select(concurrency=3:"s",1:"e")) Quit:('sc) sc
If current=3 Do ..%ReleaseLock("s")
Set modflag=$zobjmod(,0),$zobjval(,/*%Concurrency*/1,0,3,1)=concurrency
Set:modflag=0 $zobjmod(,0)=0
Quit 1 }
%ValidateObject(%this,force=0)
New iv,sc,rc Set sc=1
If '(..%IsModified()) Quit 1
Set iv=$zobjval(,/*ien*/4,0,3,4) If iv="" Set
rc=$$Error^%apiOBJ(5659,"xobw.WebServiceMetadata"_"::"_"ien"_"("_%this_",ID="_..%Id()_")"
),sc=$select(+sc:rc,1:$$AppendStatus^%occSystem(sc,rc))
Set iv=$zobjval(,/*name*/5,0,3,5) If iv="" Set
rc=$$Error^%apiOBJ(5659,"xobw.WebServiceMetadata"_"::"_"name"_"("_%this_",ID="_..%Id()_")
"),sc=$select(+sc:rc,1:$$AppendStatus^%occSystem(sc,rc))
Set iv=$zobjval(,/*type*/7,0,3,7) If iv="" Set
rc=$$Error^%apiOBJ(5659,"xobw.WebServiceMetadata"_"::"_"type"_"("_%this_",ID="_..%Id()_")
"),sc=$select(+sc:rc,1:$$AppendStatus^%occSystem(sc,rc))
Quit sc
zXMLDTD(top,format,input,dtdlist)
Quit
##class(%XML.Implementation).XMLDTD("xobw.WebServiceMetadata",.top,.format,.input,.dtdlis
t)
zXMLExport(%this,top,format,namespaces,attrs,createId,typeAttr,oreflist,idlist,initialInd
ent,local,mimeAttachments)
New
sc,val,aval,key,k,first,len,id,temp,temp1,fmt,topPrefix,topAttrs,typesPrefix,beginprefix,
endprefix,attrsPrefix,soapPrefix,schemaPrefix,xsiPrefix,xsiAttrs,ignoreNull,indentFlag,in
dentChars,currentIndent,initialCR,type,inlineFlag,deepFlag,tmpPrefix,tag,prefixDepth,xsit
ype,nocycle,hasNoContent,hasElement,usePrefix,encoded,soap12
Set sc=1,$ztrap="XMLExportTrap"
Set
fmt=$zcvt($get(format),"L"),encoded=$case($piece(fmt,",",1),"":0,"literal":0,"encoded":1,
"encoded12":1,:"")
If encoded="" Quit $$Error^%apiOBJ(6231,fmt)
Set soap12=encoded&&($piece(fmt,",",1)="encoded12")
Set ignoreNull=0
Set indentFlag=(fmt["indent")
Set inlineFlag=(fmt["inline")
Set deepFlag=(fmt'["shallow")
Set nocycle=(fmt["nocyclecheck")
Set currentIndent=$get(initialIndent)
If indentFlag {
Set indentChars=$piece($piece(fmt,"indent(",2),")",1) If indentChars="" Set
indentChars=" "
Set initialCR=($extract(currentIndent,1,2)=$c(13,10))
} Else {
Set (indentChars,currentIndent)=""
}
Set fmt=$piece(fmt,",",1)
If indentFlag Set fmt=fmt_",indent("_indentChars_")"
If inlineFlag Set fmt=fmt_",inline"
If 'deepFlag Set fmt=fmt_",shallow"
If nocycle Set fmt=fmt_",nocyclecheck"
Set mimeAttachments=$get(mimeAttachments)
Set id=$get(createId)
Set temp=""
If 'nocycle&&('encoded||inlineFlag) {
If $data(oreflist(%this)) Quit $$Error^%apiOBJ(6296,"xobw.WebServiceMetadata")
Set oreflist(%this)=""
}
Set namespaces=$get(namespaces)
Set tag=$get(top)
If $IsObject(namespaces) {
Set
sc=namespaces.PushNodeForExport("",$get(local,0),(encoded||(($get(typeAttr)'="")&&(typeAt
tr'="xobw.WebServiceMetadata"))),"",.topPrefix,.topAttrs,.typesPrefix,.attrsPrefix,.soapP
refix,.schemaPrefix,.xsiPrefix,.xsiAttrs,.usePrefix)
If 'sc Quit sc
Set beginprefix=$select(namespaces.ElementQualified&&usePrefix:typesPrefix,1:"")
If xsiAttrs'="" Set xsiAttrs=" "_xsiAttrs
If topAttrs'="" Set temp=temp_" "_topAttrs
If tag="" Set tag="WebServiceMetadata"
Set xsitype=namespaces.OutputTypeAttribute
} Else {
Set typesPrefix=namespaces If (typesPrefix'="")&&($extract(typesPrefix,*)'=":") Set
typesPrefix=typesPrefix_":"
Set (topPrefix,attrsPrefix,topAttrs,beginprefix)=""
Set soapPrefix="SOAP-ENC:"
Set schemaPrefix="s:"
Set xsiPrefix=$select(encoded:"xsi:",1:"d5p1:")
Set xsiAttrs=$select(encoded:"",1:" xmlns:d5p1=""http://www.w3.org/2001/XMLSchemainstance""")
If tag="" Set tag=typesPrefix_"WebServiceMetadata"
Set xsitype=0
}
Set local=+$get(local)
If (($get(typeAttr)'="")&&(typeAttr'="xobw.WebServiceMetadata")) Set temp=temp_"
"_xsiPrefix_"type="""_typesPrefix_"WebServiceMetadata"""_xsiAttrs,xsiAttrs=""
Set endprefix="</"_beginprefix,beginprefix="<"_beginprefix
If id'="" {
If $piece($get(idlist(+%this)),",",2)'="" Quit 1
Set idlist(+%this)=id_",1"
Set temp=" "_$select($get(soap12):soapPrefix_"id",1:"id")_"=""id"_id_""""_temp
}
If encoded Set temp=temp_xsiAttrs,xsiAttrs=""
If indentFlag Write currentIndent Set
currentIndent=$select(initialCR:"",1:$c(13,10))_currentIndent_indentChars
If tag[":" Set topPrefix=$piece(tag,":"),tag=$piece(tag,":",2) If topPrefix'="" Set
topPrefix=topPrefix_":"
Write "<"_topPrefix_tag_temp
For k=1:1:$get(attrs) Write " "_attrs(k)_"="""_$zcvt(attrs(k,0),"O","XML")_""""
Write ">"
Set val=$zobjval(,/*contextRoot*/3,0,3,3)
If val'="" {
Write currentIndent_beginprefix_"contextRoot"_$select(xsitype:"
"_xsiPrefix_"type="""_schemaPrefix_"string""",1:"")_">"_$select(val=$c(0):"",1:$select((v
al["<")||(val[">")||(val["&"):"<![CDATA["_$select(val["]]>":$$XMLescapeCData(val),1:val)_
"]]>",1:val))_endprefix_"contextRoot>"
}
Set val=$zobjval(,/*ien*/4,0,3,4)
If val'="" {
Write currentIndent_beginprefix_"ien"_$select(xsitype:"
"_xsiPrefix_"type="""_schemaPrefix_"string""",1:"")_">"_$select(val=$c(0):"",1:$select((v
al["<")||(val[">")||(val["&"):"<![CDATA["_$select(val["]]>":$$XMLescapeCData(val),1:val)_
"]]>",1:val))_endprefix_"ien>"
}
Set val=$zobjval(,/*name*/5,0,3,5)
If val'="" {
Write currentIndent_beginprefix_"name"_$select(xsitype:"
"_xsiPrefix_"type="""_schemaPrefix_"string""",1:"")_">"_$select(val=$c(0):"",1:$select((v
al["<")||(val[">")||(val["&"):"<![CDATA["_$select(val["]]>":$$XMLescapeCData(val),1:val)_
"]]>",1:val))_endprefix_"name>"
}
Set val=$zobjval(,/*type*/7,0,3,7)
If val'="" {
Write currentIndent_beginprefix_"type"_$select(xsitype:"
"_xsiPrefix_"type="""_schemaPrefix_"string""",1:"")_">"_$select(val=$c(0):"",1:$select((v
al["<")||(val[">")||(val["&"):"<![CDATA["_$select(val["]]>":$$XMLescapeCData(val),1:val)_
"]]>",1:val))_endprefix_"type>"
}
Set val=$zobjval(,/*proxyClassName*/6,0,3,6)
If val'="" {
Write currentIndent_beginprefix_"proxyClassName"_$select(xsitype:"
"_xsiPrefix_"type="""_schemaPrefix_"string""",1:"")_">"_$select(val=$c(0):"",1:$select((v
al["<")||(val[">")||(val["&"):"<![CDATA["_$select(val["]]>":$$XMLescapeCData(val),1:val)_
"]]>",1:val))_endprefix_"proxyClassName>"
}
Set val=$zobjval(,/*availResource*/2,0,3,2)
If val'="" {
Write currentIndent_beginprefix_"availResource"_$select(xsitype:"
"_xsiPrefix_"type="""_schemaPrefix_"string""",1:"")_">"_$select(val=$c(0):"",1:$select((v
al["<")||(val[">")||(val["&"):"<![CDATA["_$select(val["]]>":$$XMLescapeCData(val),1:val)_
"]]>",1:val))_endprefix_"availResource>"
}
If indentFlag Set currentIndent=$extract(currentIndent,1,*-$length(indentChars)) Write
currentIndent
Write "</"_topPrefix_tag_">" If indentFlag&&'initialCR Write ! Set
$extract(currentIndent,1,2)=""
If $IsObject(namespaces) Do namespaces.PopNode()
If 'encoded||inlineFlag {
If 'nocycle Kill oreflist(%this)
}
Quit sc
XMLExportTrap Set $ztrap=""
If $data(val) && $IsObject(val) && ($piece($ze,">",1)="<METHOD DOES NOT EXIST") {
Set sc=$$Error^%apiOBJ(6249,$zobjclass(val))
} Else {
Set sc=$$Error^%apiOBJ(5002,$ze)
}
XMLExportExit
If $IsObject(namespaces) Do namespaces.PopNode()
Quit sc
XMLescapeCData(line)
New pos Set pos=1
For Set pos=$find(line,"]]>",pos) Quit:pos=0 Set line=$extract(line,1,pos4)_"]]]]><![CDATA[>"_$extract(line,pos,*),pos=pos+11
Quit line
zXMLExportToStream(%this,export,top,format,namespaces,attrs,createId,typeAttr,oreflist,id
list,initialIndent) public {
Set io=$io
If $get(export)="" {
Set export=##class(%Library.FileCharacterStream).%New()
If $zbitget($zversion(0),1) Set export.TranslateTable="UTF8"
Set filestream=1
} Else {
Set filestream = ($zobjclass(export)="%Library.FileCharacterStream")
}
If filestream {
Set stream=export
} Else {
Set stream=##class(%Library.FileCharacterStream).%New()
If $zbitget($zversion(0),1) Set stream.TranslateTable="UTF8"
}
Set sc=stream.Write("") ; force stream's file to open
If (+sc) {
Set file=stream.Filename ; get filename and make current device
Use file
Set
sc=..XMLExport(.top,.format,.namespaces,.attrs,.createId,.typeAttr,.oreflist,.idlist,.ini
tialIndent)
// Don't Close file to leave stream positioned
Use io
}
// Need to ensdure that LineTerminator is correct for the platform
If (+sc) Set
stream.LineTerminator=$select(($zversion(1)=3):$char(10),1:$char(13,10))
If filestream || ('sc) Quit sc
Set sc=export.CopyFrom(stream)
Quit sc }
zXMLExportToString(%this,export,top,format,namespaces,attrs,createId,typeAttr,oreflist,id
list,initialIndent) public {
Set tSC=1,tIO=$IO,tXDEV="|XDEV|"_$JOB,$ZT="Trap"
Do {
/// For $$$IsUnicode use UTF-8
Open tXDEV:($ZF(6,1029,12):"":"S":/HOSTNAME="XSLT":/IOT=$S(($zcvt($get(format),"L")[",utf8")||$zbitget($z
version(0),1):"UTF8",1:"RAW"):/IBU=16384:/OBU=16384)
Use tXDEV
// Export to the XDEV buffer
Set tSC =
..XMLExport(.top,.format,.namespaces,.attrs,.createId,.typeAttr,.oreflist,.idlist,.initia
lIndent)
Quit:('tSC)
// Flush any remaining output
Write *-3
// Now read back a string (up to the maximum possible length, 32k or ~4MB for
long strings)
Set export = ""
While (1) {
Read tChunk:0
Quit:'$L(tChunk)
Set export = export _ tChunk
}
} While (0)
Exit
Close tXDEV
Use tIO
Quit tSC
Trap
Set
$ZT="",tSC=$S($ZE["<MAXSTRING>":$$Error^%apiOBJ(6279),1:$$Error^%apiOBJ(5002,$ZE))
Goto Exit }
zXMLGetSchemaImports(imports,classes)
Quit
##class(%XML.Implementation).XMLGetSchemaImports("xobw.WebServiceMetadata",.imports,.clas
ses)
zXMLImport(%this,top,format,namespace,handler,node,idlist,keynameattr,mimeAttachments)
New
tree,child,ref,loopref,pairref,data,aval,element,key,tag,id,sc,exists,tmp,tmpi,tmpns,clas
s,sublist,fmt,nsIndex,akeyname,part,partsById,encoded,encodedArray,SOAP12ENCns
Set SOAP12ENCns="http://www.w3.org/2003/05/soap-encoding"
Set sc=1
Set $ztrap="XMLImportTrap"
Set tree=handler.DocumentId
Set
fmt=$zcvt($get(format),"L"),encoded=$case($piece(fmt,",",1),"":0,"literal":0,"encoded":1,
"encoded12":1,:"")
If encoded="" Quit $$Error^%apiOBJ(6231,fmt)
Set fmt=$piece(fmt,",",1)
Set nsIndex=$select($get(namespace)="":"",1:$get(@tree@("ns",namespace)))
Set mimeAttachments=$get(mimeAttachments)
If mimeAttachments'="" {
For tmp=1:1:mimeAttachments.Count() {
Set part=mimeAttachments.GetAt(tmp)
If part.ContentId'="" Set partsById(part.ContentId)=part.Body
}
}
Set tag=$get(top)
If tag="" Set tag="WebServiceMetadata"
If (@tree@(node,"t")'="e")||(tag'=@tree@(node)) Set ref=node Goto XMLImportMalformed
If encoded {
If $data(@tree@(node,"a","id")) Set idlist(node)=%this
}
If $get(@tree@(node,"nil"),0) Quit 1
Set sc=$$XMLImportElements(node)
XMLImportExit Quit sc
XMLImportElements(node)
Set child=""
XMLLOOP For { Set child=$order(@tree@(node,"c",child)) If
(child="")||(@tree@(child,"t")'="w") Quit }
If child="" Quit sc
Set tag=@tree@(child)
Set ref=child
If @tree@(ref,"t")'="e" Goto XMLImportMalformedNoTag
If tag="contextRoot" {
If ($get(namespace)'="")&&'$case(@tree@(ref,"u"),"":1,nsIndex:1,:0) Goto XMLImportNS
If encoded&&$$XMLImportId() {
Set data=idlist(ref)
} Else { Goto:'sc XMLImportExit
If $get(@tree@(ref,"nil"),0) { Set data=""
} Else {
Set data=$order(@tree@(ref,"c",""))
If $order(@tree@(ref,"c",data))'="" {
Set data="" If
'##class(%XML.ImportHandler).SerializeNode(tree,ref,0,0,.data) Goto XMLImportErr
} ElseIf data'="" { Goto:@tree@(data,"t")="e" XMLImportErr Set
data=@tree@(data) }
If data="" Set data=$c(0)
}
If encoded&&($data(@tree@(ref,"a","id"))) Set idlist(ref)=data
}
Set $zobjval(,/*contextRoot*/3,0,3,3)=data
Goto XMLLOOP }
If tag="ien" {
If ($get(namespace)'="")&&'$case(@tree@(ref,"u"),"":1,nsIndex:1,:0) Goto XMLImportNS
Set exists("ien")=1
If encoded&&$$XMLImportId() {
Set data=idlist(ref)
} Else { Goto:'sc XMLImportExit
If $get(@tree@(ref,"nil"),0) { Set data=""
} Else {
Set data=$order(@tree@(ref,"c",""))
If $order(@tree@(ref,"c",data))'="" {
Set data="" If
'##class(%XML.ImportHandler).SerializeNode(tree,ref,0,0,.data) Goto XMLImportErr
} ElseIf data'="" { Goto:@tree@(data,"t")="e" XMLImportErr Set
data=@tree@(data) }
If data="" Set data=$c(0)
}
If encoded&&($data(@tree@(ref,"a","id"))) Set idlist(ref)=data
}
Set $zobjval(,/*ien*/4,0,3,4)=data
Goto XMLLOOP }
If tag="name" {
If ($get(namespace)'="")&&'$case(@tree@(ref,"u"),"":1,nsIndex:1,:0) Goto XMLImportNS
Set exists("name")=1
If encoded&&$$XMLImportId() {
Set data=idlist(ref)
} Else { Goto:'sc XMLImportExit
If $get(@tree@(ref,"nil"),0) { Set data=""
} Else {
Set data=$order(@tree@(ref,"c",""))
If $order(@tree@(ref,"c",data))'="" {
Set data="" If
'##class(%XML.ImportHandler).SerializeNode(tree,ref,0,0,.data) Goto XMLImportErr
} ElseIf data'="" { Goto:@tree@(data,"t")="e" XMLImportErr Set
data=@tree@(data) }
If data="" Set data=$c(0)
}
If encoded&&($data(@tree@(ref,"a","id"))) Set idlist(ref)=data
}
Set $zobjval(,/*name*/5,0,3,5)=data
Goto XMLLOOP }
If tag="type" {
If ($get(namespace)'="")&&'$case(@tree@(ref,"u"),"":1,nsIndex:1,:0) Goto XMLImportNS
Set exists("type")=1
If encoded&&$$XMLImportId() {
Set data=idlist(ref)
} Else { Goto:'sc XMLImportExit
If $get(@tree@(ref,"nil"),0) { Set data=""
} Else {
Set data=$order(@tree@(ref,"c",""))
If $order(@tree@(ref,"c",data))'="" {
Set data="" If
'##class(%XML.ImportHandler).SerializeNode(tree,ref,0,0,.data) Goto XMLImportErr
} ElseIf data'="" { Goto:@tree@(data,"t")="e" XMLImportErr Set
data=@tree@(data) }
If data="" Set data=$c(0)
}
If encoded&&($data(@tree@(ref,"a","id"))) Set idlist(ref)=data
}
Set $zobjval(,/*type*/7,0,3,7)=data
Goto XMLLOOP }
If tag="proxyClassName" {
If ($get(namespace)'="")&&'$case(@tree@(ref,"u"),"":1,nsIndex:1,:0) Goto XMLImportNS
If encoded&&$$XMLImportId() {
Set data=idlist(ref)
} Else { Goto:'sc XMLImportExit
If $get(@tree@(ref,"nil"),0) { Set data=""
} Else {
Set data=$order(@tree@(ref,"c",""))
If $order(@tree@(ref,"c",data))'="" {
Set data="" If
'##class(%XML.ImportHandler).SerializeNode(tree,ref,0,0,.data) Goto XMLImportErr
} ElseIf data'="" { Goto:@tree@(data,"t")="e" XMLImportErr Set
data=@tree@(data) }
If data="" Set data=$c(0)
}
If encoded&&($data(@tree@(ref,"a","id"))) Set idlist(ref)=data
}
Set $zobjval(,/*proxyClassName*/6,0,3,6)=data
Goto XMLLOOP }
If tag="availResource" {
If ($get(namespace)'="")&&'$case(@tree@(ref,"u"),"":1,nsIndex:1,:0) Goto XMLImportNS
If encoded&&$$XMLImportId() {
Set data=idlist(ref)
} Else { Goto:'sc XMLImportExit
If $get(@tree@(ref,"nil"),0) { Set data=""
} Else {
Set data=$order(@tree@(ref,"c",""))
If $order(@tree@(ref,"c",data))'="" {
Set data="" If
'##class(%XML.ImportHandler).SerializeNode(tree,ref,0,0,.data) Goto XMLImportErr
} ElseIf data'="" { Goto:@tree@(data,"t")="e" XMLImportErr Set
data=@tree@(data) }
If data="" Set data=$c(0)
}
If encoded&&($data(@tree@(ref,"a","id"))) Set idlist(ref)=data
}
Set $zobjval(,/*availResource*/2,0,3,2)=data
Goto XMLLOOP }
Goto XMLImportBadTag
XMLImportBadTag Quit $$Error^%apiOBJ(6237,tag_$$XMLImportLocation(ref))
XMLImportBadType Quit $$Error^%apiOBJ(6277,class,@tree@(ref)_$$XMLImportLocation(ref))
XMLImportErr
Set data=$order(@tree@(ref,"c",""))
If (data'="") {
If @tree@(data,"t")'="e" {
Quit
$$Error^%apiOBJ(6232,@tree@(ref)_$$XMLImportLocation(ref),$extract(@tree@(data),1,200))
} Else {
Quit $$Error^%apiOBJ(6253,@tree@(ref)_$$XMLImportLocation(ref),@tree@(data))
}
} Else {
Quit $$Error^%apiOBJ(6252,@tree@(ref)_$$XMLImportLocation(ref))
}
XMLImportIdErr Set sc=$$Error^%apiOBJ(6236,id,@tree@(ref)_$$XMLImportLocation(ref)) Quit
sc
XMLImportMalformed Set sc=$$Error^%apiOBJ(6233,@tree@(ref)_$$XMLImportLocation(ref)) Quit
sc
XMLImportMalformedNoTag Set
node=$get(@tree@(ref,"p")),sc=$$Error^%apiOBJ(6254,@tree@(ref),@tree@(node)_$$XMLImportLo
cation(node)) Quit sc
XMLImportNS Set sc=$$Error^%apiOBJ(6235,@tree@(ref)_$$XMLImportLocation(ref)) Quit sc
XMLImportLocation(node) new msg,loc
Set loc=$get(@tree@(node,"l"))
If loc="" Quit ""
Set
msg=$get(^%qCacheMsg("%ObjectErrors",$s(""'="":$zcvt("","L"),1:$get(^||%Language,"en")),"
XMLImportLocation")," (%1,%2)")
Quit $$FormatText^%occMessages(msg,$listget(loc,1),$listget(loc,2))
XMLImportTrap Set $ztrap=""
If $ZE["<CLASS DOES NOT EXIST>" Goto XMLImportBadTag
Quit $$Error^%apiOBJ(5002,$ZE)
XMLImportId() ;
If $data(@tree@(ref,"a","href")) {
Set id=$get(@tree@(ref,"a","href"))
If $extract(id)="#" {
Set tmp=$get(@tree@("id",$extract(id,2,*))) If tmp="" Goto XMLImportIdErr
Set ref=tmp
}
} ElseIf $data(@tree@(ref,"a","ref")) &&
($select($get(@tree@(ref,"a","ref","u"))="":"",1:$get(@tree@("ns#",^("u"))))=SOAP12ENCns)
{
Set id=$get(@tree@(ref,"a","ref"))
Set tmp=$get(@tree@("id",id)) If tmp="" Goto XMLImportIdErr
Set ref=tmp
} ElseIf '$data(@tree@(ref,"a","id")) {
Quit 0
}
Quit $data(idlist(ref))
zXMLImportAttributes(%this,tree,node,ignoreNull,keynameattr)
;
Quit 1
XMLImportAttrErr Quit
$$Error^%apiOBJ(6260,ref,$get(@tree@(node,"a",ref)),@tree@(node)_$$XMLImportAttrLocation(
node))
XMLImportAttrLocation(node) new msg,loc
Set loc=$get(@tree@(node,"l"))
If loc="" Quit ""
Set
msg=$get(^%qCacheMsg("%ObjectErrors",$s(""'="":$zcvt("","L"),1:$get(^||%Language,"en")),"
XMLImportLocation")," (%1,%2)")
Quit $$FormatText^%occMessages(msg,$listget(loc,1),$listget(loc,2))
zXMLIsObjectEmpty(%this,ignoreNull)
If $zobjval(,/*contextRoot*/3,0,3,3)'="" Quit 0
If $zobjval(,/*ien*/4,0,3,4)'="" Quit 0
If $zobjval(,/*name*/5,0,3,5)'="" Quit 0
If $zobjval(,/*type*/7,0,3,7)'="" Quit 0
If $zobjval(,/*proxyClassName*/6,0,3,6)'="" Quit 0
If $zobjval(,/*availResource*/2,0,3,2)'="" Quit 0
Quit 1
zXMLNew(document,node,containerOref="")
Quit (##class(xobw.WebServiceMetadata).%New())
zXMLSchema(top="",format="",namespacePrefix="",input=0,refOnly=0,schema)
Quit
##class(%XML.Implementation).XMLSchema("xobw.WebServiceMetadata",top,format,namespacePref
ix,input,refOnly,.schema)
zXMLSchemaNamespace() public {
Quit ""
}
zcheckResourceAvailability(webServer,authorizedWebService,webService,httpStatusCode)
public {
set httpRequest=##class(%Net.HttpRequest).%New()
// are web server and web service enabled
if ('webServer.status) quit ""
if ('authorizedWebService.status) quit ""
// set up http request
do webServer.setUpHttpRequest(httpRequest)
if webServer.loginRequired="1"!(webServer.loginRequired="") {
set httpRequest.Username=webServer.userName
set httpRequest.Password=webServer.getPassword()
}
// check resource availability.
set status=httpRequest.Get(webService.contextRoot_webService.availResource)
set httpStatusCode=httpRequest.HttpResponse.StatusCode
if (httpStatusCode="200") {
quit "1"
} else {
quit "0"
} }
zgetWebServiceId(name) public {
if $get(name)="" {
do ##class(xobw.error.DialogError).forceError(186006_"^<empty string>")
}
quit +$order(^XOB(18.02,"B",name,0)) }
%ConcurrencyIsValid(value) public {
Quit 1 }
zavailResourceDisplayToLogical(%val)
Quit %val
zavailResourceIsValid(%val)
Quit 1
zavailResourceLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
zavailResourceLogicalToOdbc(%val)
Quit %val
zavailResourceNormalize(%val)
Quit $e(%val,1,50)
zExtentExecute(%qHandle) [ SQLCODE,c1 ] public { New SQLCODE,c1
Set sc=1
s %qHandle=$i(%objcn)
Do %Q360o
If 'SQLCODE { Set sc=1 } Else { Set:$isobject($g(%sqlcontext))
%sqlcontext.SQLCode=SQLCODE,%sqlcontext.Message=$g(%msg) Set
sc=$$Error^%apiOBJ(5821,"SQLCODE = "_SQLCODE) }
Quit sc }
zExtentClose(%qHandle) [ SQLCODE,c1 ] public { New SQLCODE,c1
Do %Q360c
Kill
%objcsc(%qHandle),%objcsp(%qHandle),%objcss(%qHandle),%objcst(%qHandle),%objcsl(%qHandle)
,%objcsR(%qHandle),%objcsZ(%qHandle),%objcsd(%qHandle)
If 'SQLCODE { Set sc=1 } Else { Set:$isobject($g(%sqlcontext))
%sqlcontext.SQLCode=SQLCODE,%sqlcontext.Message=$g(%msg) Set
sc=$$Error^%apiOBJ(5540,SQLCODE,$get(%msg)) }
Quit sc }
zExtentFetch(%qHandle,Row,AtEnd=0) [ SQLCODE,c1 ] public { New SQLCODE,c1
Set Row="",AtEnd=0
Do %0Mo
If 'SQLCODE { Set Row=$lb(c1) Set sc=1 } ElseIf SQLCODE=100 { Set AtEnd=1,sc=1
Set:$isobject($g(%sqlcontext))
%sqlcontext.SQLCode=SQLCODE,%sqlcontext.RowCount=$g(%ROWCOUNT) } Else {
Set:$isobject($g(%sqlcontext)) %sqlcontext.SQLCode=SQLCODE,%sqlcontext.Message=$g(%msg)
Set AtEnd=1,sc=$$Error^%apiOBJ(5540,SQLCODE,$get(%msg)) }
Quit sc }
zExtentFetchRows(%qHandle,FetchCount=0,RowSet,ReturnCount,AtEnd) [ SQLCODE,c1 ] public {
New SQLCODE,c1
Set RowSet="",ReturnCount=0,AtEnd=0
For {
Do %0No
If 'SQLCODE { Set RowSet=RowSet_$lb(c1),ReturnCount=ReturnCount+1
Quit:(ReturnCount=FetchCount)||(($l(RowSet)+($l(RowSet)\ReturnCount))>24000) } Else { Set
AtEnd=1 Quit }
}
If 'SQLCODE { Set sc=1 } ElseIf SQLCODE=100 { Set sc=1
Set:$isobject($g(%sqlcontext))
%sqlcontext.SQLCode=SQLCODE,%sqlcontext.RowCount=$g(%ROWCOUNT) } Else {
Set:$isobject($g(%sqlcontext)) %sqlcontext.SQLCode=SQLCODE,%sqlcontext.Message=$g(%msg)
Set sc=$$Error^%apiOBJ(5540,SQLCODE,$get(%msg)) }
Quit sc }
q
%0HBs1(%val) ;
Quit $tr(%val,$c(0),"")
%Q360o s $zt="%Q360E" s SQLCODE=$s($g(%objcsc(%qHandle)):-101,1:0) q:SQLCODE'=0 s
%objcsd(%qHandle,4)=0 s %objcsd(%qHandle,5)=0,%objcsd(%qHandle,6)=""
s %objcsc(%qHandle)=1 q
%Q360E s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) k
%objcsd(%qHandle),%objcsc(%qHandle) q
%0Hfirst
; asl MOD# 2
s %objcsd(%qHandle,1)=0
%0HBk1 s %objcsd(%qHandle,1)=$o(^XOB(18.02,%objcsd(%qHandle,1)))
i '+%objcsd(%qHandle,1) g %0HBdun
i %objcsd(%qHandle,1)="" g %0HBdun
s
%objcsd(%qHandle,3)=$s($zu(115,5)=2:$$%0HBs1(%objcsd(%qHandle,1)),1:%objcsd(%qHandle,1))
g:$zu(115,2)=0 %0HBuncommitted i $zu(115,2)=1 l
+^XOB(18.02,$p(%objcsd(%qHandle,1),"||",1))#"S":$zu(115,4) i $t { s
%objcsd(%qHandle,5)=1,%objcsd(%qHandle,6)=$name(^XOB(18.02,$p(%objcsd(%qHandle,1),"||",1)
))_"#""SI""" } else { s SQLCODE=-114,%msg="Unable to acquire shared lock on table
xobw.WebServiceMetadata for RowID value: "_%objcsd(%qHandle,1) ztrap "LOCK" }
; asl MOD# 3
i %objcsd(%qHandle,1)'="",$d(^XOB(18.02,%objcsd(%qHandle,1)))
e g %0HCdun
s
%objcsd(%qHandle,3)=$s($zu(115,5)=2:$$%0HBs1(%objcsd(%qHandle,1)),1:%objcsd(%qHandle,1))
%0HBuncommitted ;
s:$g(SQLCODE)'<0 SQLCODE=0 s
%objcsd(%qHandle,4)=%objcsd(%qHandle,4)+1,%ROWCOUNT=%objcsd(%qHandle,4),%ROWID=%objcsd(%q
Handle,1),%objcsc(%qHandle)=10 q
%Q360f i '$g(%objcsc(%qHandle)) { s SQLCODE=-102 q } i %objcsc(%qHandle)=100 { s
SQLCODE=100 q } s SQLCODE=0
s $zt="%0Herr" i $d(%0CacheRowLimit)#2,$g(%objcsd(%qHandle,4))'<%0CacheRowLimit { s
SQLCODE=100,%ROWCOUNT=%objcsd(%qHandle,4),%objcsc(%qHandle)=100 q } g
%0Hfirst:%objcsc(%qHandle)=1
%0HCdun i $zu(115,2)=1,$g(%objcsd(%qHandle,5))=1 { l -@%objcsd(%qHandle,6) s
%objcsd(%qHandle,5)=0 }
g %0HBk1
%0HBdun
%0HAdun
s %ROWCOUNT=%objcsd(%qHandle,4),SQLCODE=100,%objcsc(%qHandle)=100 q
%Q360c i '$g(%objcsc(%qHandle)) { s SQLCODE=-102 q } s
%ROWCOUNT=$s($g(SQLCODE)'<0:+$g(%objcsd(%qHandle,4)),1:0)
i $zu(115,2)=1,$g(%objcsd(%qHandle,5))=1 { l -@%objcsd(%qHandle,6) } k
%objcsd(%qHandle),%objcsc(%qHandle) s SQLCODE=0 q
%0Herr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) s %objcsc(%qHandle)=100 q
%0Mo d %Q360f q:SQLCODE'=0
s c1=%objcsd(%qHandle,3)
q
%0No d %Q360f q:SQLCODE'=0
s c1=%objcsd(%qHandle,3)
q
zExtentGetInfo(colinfo,parminfo,idinfo,%qHandle,extoption=0,extinfo) public {
s parminfo=""
s:'($d(^oddCOM("xobw.WebServiceMetadata","q","Extent",21),clientinfo)#2)&&'$s($d(^(2
),clientinfo)#2:$d(^oddCOM(clientinfo,"q","Extent",21),clientinfo)#2||($d(^oddDEF(clienti
nfo,"q","Extent",21),clientinfo)#2),1:$d(^oddDEF("xobw.WebServiceMetadata","q","Extent",2
1),clientinfo)#2) clientinfo=$g(^%qCacheObjectKey(1,"q",21))
Set:extoption
extinfo=$s($d(^oddCOM("xobw.WebServiceMetadata","q","Extent",38))#2:^(38),$d(^oddCOM($g(^
(2),"xobw.WebServiceMetadata"),"q","Extent",38))#2:^(38),1:$s($d(^oddDEF($g(^oddCOM("xobw
.WebServiceMetadata","q","Extent",2),"xobw.WebServiceMetadata"),"q","Extent",38))#2:^(38)
,1:$g(^%qCacheObjectKey(1,"q",38))))
If clientinfo'="" Set
colinfo=$listget(clientinfo,1),parminfo=$listget(clientinfo,2),idinfo=$listget(clientinfo
,3) Quit 1
Set colinfo="",parminfo="",idinfo=$listbuild(0)
Set sc=$$externaltype^%apiOLE("%Library.CacheString",.exttypes,"0")
Quit:('sc) sc
s:'($d(^oddCOM("xobw.WebServiceMetadata","q","Extent",23),names)#2)&&'$s($d(^(2),nam
es)#2:$d(^oddCOM(names,"q","Extent",23),names)#2||($d(^oddDEF(names,"q","Extent",23),name
s)#2),1:$d(^oddDEF("xobw.WebServiceMetadata","q","Extent",23),names)#2)
names=$g(^%qCacheObjectKey(1,"q",23))
s:'($d(^oddCOM("xobw.WebServiceMetadata","q","Extent",22),captions)#2)&&'$s($d(^(2),
captions)#2:$d(^oddCOM(captions,"q","Extent",22),captions)#2||($d(^oddDEF(captions,"q","E
xtent",22),captions)#2),1:$d(^oddDEF("xobw.WebServiceMetadata","q","Extent",22),captions)
#2) captions=$g(^%qCacheObjectKey(1,"q",22))
For i=1:1:1 Set
colinfo=colinfo_$listbuild($listbuild($listget(names,i),$piece(exttypes,",",i),$listget(c
aptions,i)))
Set idinfo=$listbuild(1,"xobw.WebServiceMetadata")
s
^oddCOM("xobw.WebServiceMetadata","q","Extent",21)=$listbuild(colinfo,parminfo,idinfo)
Quit 1 }
zExtentGetODBCInfo(colinfo,parminfo,qHandle) public {
set version = $Select($Get(%protocol,41)>40:4,1:3)
If $Get(^oddPROC("XOBW","WEBSERVICEMETADATA_EXTENT",21))'="" { Set sc = 1,
metadata=$Select(version=4:^oddPROC("XOBW","WEBSERVICEMETADATA_EXTENT",12),1:^oddPROC("XO
BW","WEBSERVICEMETADATA_EXTENT",12,version)) }
ElseIf $Data(^oddPROC("XOBW","WEBSERVICEMETADATA_EXTENT")) { Set sc =
$$CompileSignature^%ourProcedure("XOBW","WEBSERVICEMETADATA_EXTENT",.metadata,.signature)
}
Else { Set sc = $$Error^%apiOBJ(5068,"xobw.WebServiceMetadata:Extent") }
If (+sc) { Set
colcount=$li(metadata,2),cmdlen=colcount*$Case(version,4:10,:9),colinfo=$li(metadata,2,2+
cmdlen),parmcount=$li(metadata,cmdlen+3),pmdlen=parmcount*6,parminfo=$li(metadata,cmdlen+
3,cmdlen+pmdlen+3) }
Quit sc }
zExtentPrepare(qHandle,statement,containid=0,optional) public {
Quit 1 }
zExtentSendODBC(qHandle,array,qacn,%qrc,piece,ColumnCount) public {
Kill array(qacn) Set %qrc=0
SPInnerLoop Set rc=##class(xobw.WebServiceMetadata).ExtentFetch(.qHandle,.row,.atend)
If ('rc) { Set %qrc=-400 Set:$isobject($get(%sqlcontext)) %sqlcontext.SQLCode=400,%sqlcontext.Message=$g(%msg) Do
ProcessError^%ourProcedure(rc,$get(%sqlcontext),.%qrc,.%msg) Do
Logerr^%SYS.SQLSRV(%qrc,"","SP",.%msg) Set piece=0 Quit }
If row="" Set %qrc=100,piece=0 Set:$isobject($get(%sqlcontext))
%sqlcontext.SQLCode=100 Quit 1
For piece=1:1:ColumnCount { Goto:$zobjexport($listget(row,piece),7) SPDone }
Goto SPInnerLoop
SPDone
For i=piece:1:ColumnCount { Set array(qacn,i)=$listget(row,i) }
Quit }
zienIndexCheck(K1,lockonly=0) public {
s id=K1,exists=##class(xobw.WebServiceMetadata).%ExistsId(id) q:'exists
$s('lockonly:$$Error^%apiOBJ(5797,"xobw.WebServiceMetadata","ienIndex",id),1:1) s
status=##class(xobw.WebServiceMetadata).%LockId(id,1) q:('status) status if 'lockonly { s
exists=##class(xobw.WebServiceMetadata).%ExistsId(id) d
##class(xobw.WebServiceMetadata).%UnlockId(id,1,0) quit
$s('exists:$$Error^%apiOBJ(5797,"xobw.WebServiceMetadata","ienIndex",id),1:1) } else { d
##class(xobw.WebServiceMetadata).%UnlockId(id,1,0) q 1 } }
zienIndexDelete(K1,concurrency=-1) public {
Quit ##class(xobw.WebServiceMetadata).%DeleteId(.K1,concurrency) }
zienIndexExists(K1,id="")
s id=K1 q ##class(xobw.WebServiceMetadata).%ExistsId(K1)
Quit
zienIndexOpen(K1,concurrency=-1,sc=1) public {
Quit ##class(xobw.WebServiceMetadata).%OpenId(.K1,concurrency,.sc) }
xobw.WebServiceProxyFactory.1^INT^1^62153,34148^0^1
;xobw.WebServiceProxyFactory.1
;(C)InterSystems, generated for class xobw.WebServiceProxyFactory. Do NOT edit.
03/03/2011 09:29:08AM
;;005C2D02BA1FF3D9;xobw.WebServiceProxyFactory
;
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
Quit sc }
%ClassName(fullname) public {
Quit
$select($get(fullname,0):"xobw.WebServiceProxyFactory",1:"WebServiceProxyFactory") }
%Construct(%this,webServiceName)
Set
$zobjval(,/*webServiceMetadata*/1,0,3,1)="",$zobjval(,/*webServiceMetadata*/2,0,3,1)=""
Quit ..%OnNew(.webServiceName)
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.WebServiceProxyFactory"),cloned(+object)=%this,cloned(+
object,0)=object Set $zobjmod(,0)=1
Set $zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2)
If deep>0 {
If $isobject(object.webServiceMetadata) Set
$zobjval(,2,0)=$zobjval(object,2,0).%ConstructClone(1,.cloned)
}
Quit %this }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.WebServiceProxyFactory","%Library.RegisteredObject"),$s(iscl
ass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,*))) }
%GetParameter(paramname="") public {
Quit $case(paramname,"PROPERTYVALIDATION":2,:"") }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.WebServiceProxyFactory","%Library.RegisteredObject"),$s(iscl
ass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,*))) }
%IsModified(%this) public {
Quit $zobjmod(,0) }
%NormalizeObject(%this)
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%OnNew(%this,webServiceName) public {
set webServiceId=##class(xobw.WebServiceMetadata).getWebServiceId(webServiceName)
if 'webServiceId {
do ##class(xobw.error.DialogError).forceError(186006_"^"_webServiceName)
}
set ..webServiceMetadata=##class(xobw.WebServiceMetadata).%OpenId(webServiceId)
quit 1 }
%PackageName()
Quit "xobw"
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
If $zobjval(,/*webServiceMetadata*/2,0,3,1)'="" {
Set:'$data(%objTX(1,+$zobjval(,/*webServiceMetadata*/2,0,3,1),1))
%objTX(1,+$zobjval(,/*webServiceMetadata*/2,0,3,1))=$zobjval(,/*webServiceMetadata*/2,0,3
,1),%objTX(1,+$zobjval(,/*webServiceMetadata*/2,0,3,1),1)=..webServiceMetadataGetObject(1
),%objTX(1,+$zobjval(,/*webServiceMetadata*/2,0,3,1),6)=1 Set
$zobjval(,/*webServiceMetadata*/1,0,3,1)=$listget(%objTX(1,+$zobjval(,/*webServiceMetadat
a*/2,0,3,1),1)) }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set %objTX(1,intOref)=%this,%objTX(1,intOref,1)=-1,%objTX(1,intOref,6)=4
Set tDepth=$select(depth'=2:depth,1:1)
Set Poref=$zobjval(,2,0) If Poref'="" {
If '$data(%objTX(1,+Poref)) Set sc=Poref.%AddToSaveSet(tDepth) Goto:('sc) exit
}
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%ValidateObject(%this,force=0)
Quit 1
zclose(%this) public {
quit 1 }
zgetProxy(%this,webServerName) public {
// Future: Add any required headers to proxy when discovered, if any
new %proxy
if ..webServiceMetadata.type'=1 {
do ##class(xobw.error.DialogError).forceError(186007)
}
xecute "set %proxy=##class("_..webServiceMetadata.proxyClassName_").%New()"
if %proxy'="" {
set webServerId=##class(xobw.WebServer).getWebServerId(webServerName)
if 'webServerId {
do ##class(xobw.error.DialogError).forceError(186005_"^"_webServerName)
}
set webServer=##class(xobw.WebServer).%OpenId(webServerId)
// web server is disabled
if 'webServer.status {
do
##class(xobw.error.DialogError).forceError(186002_"^"_webServer.name)
}
do ..setUpCredentials(webServer, %proxy)
do ..setUpLocation(webServer, %proxy)
}
quit $get(%proxy) }
zgetWebServiceProxy(webServiceName,webServerName) public {
set factory=##class(xobw.WebServiceProxyFactory).%New(webServiceName)
if factory'="" {
set proxy=factory.getProxy(webServerName)
set ok=factory.close()
}
quit $get(proxy,"") }
zsetUpCredentials(%this,webServer,proxy) public {
set
authorizedWebServiceId=##class(xobw.WebServicesAuthorized).getAuthorizedWebServiceId(webS
erver,..webServiceMetadata)
// web service is not authorized
if 'authorizedWebServiceId {
do
##class(xobw.error.DialogError).forceError(186003_"^"_..webServiceMetadata.name_"^"_webSe
rver.name)
}
set
authorizedWebService=##class(xobw.WebServicesAuthorized).%OpenId(authorizedWebServiceId)
// web service is disabled
if 'authorizedWebService.status {
do
##class(xobw.error.DialogError).forceError(186004_"^"_..webServiceMetadata.name_"^"_webSe
rver.name)
}
if webServer.loginRequired="1"!(webServer.loginRequired="") {
set proxy.HttpUsername=webServer.userName
set proxy.HttpPassword=webServer.getPassword()
}
quit }
zsetUpLocation(%this,webServer,proxy) public {
if (webServer.sslEnabled && ('$$SSLOK^XOBWENV())) {
do ##class(xobw.error.DialogError).forceError(186002_"^"_webServer.name_" (SSL
is disabled on VMS)")
}
if (webServer.sslEnabled) {
set
proxy.Location="https://"_webServer.server_":"_webServer.sslPort_"/"_..webServiceMetadata
.contextRoot
set proxy.SSLConfiguration = webServer.sslConfiguration
} else {
set
proxy.Location="http://"_webServer.server_":"_webServer.port_"/"_..webServiceMetadata.con
textRoot
}
set proxy.Timeout=webServer.defaultTimeout
quit }
zwebServiceMetadataGetObject(%this,force=0) public {
Quit
$select($zobjval(,/*webServiceMetadata*/2,0,3,1)=""||($zobjval(,/*webServiceMetadata*/1,0
,3,1)'=""):$select($zobjval(,/*webServiceMetadata*/1,0,3,1)="":"",1:$listbuild($zobjval(,
/*webServiceMetadata*/1,0,3,1)_"")),(+..webServiceMetadata.%GetSwizzleObject(force,.oid))
:oid,1:"") }
zwebServiceMetadataGetObjectId(%this,force=0) public {
Quit $listget(..webServiceMetadataGetObject(force)) }
zwebServiceMetadataGetSwizzled(%this) public {
If $zobjval(,/*webServiceMetadata*/1,0,3,1)="" Quit ""
Set
oref=##class(xobw.WebServiceMetadata).%Open($select($zobjval(,/*webServiceMetadata*/1,0,3
,1)="":"",1:$listbuild($zobjval(,/*webServiceMetadata*/1,0,3,1)_""))) If oref="" Quit ""
Set $zobjval(,/*webServiceMetadata*/2,0,0,1)=oref,$zobjmods(,1)=1,$zobjmods(,2)=1
Quit oref }
zwebServiceMetadataIsModified(%this) public {
Quit $zobjmod(,1) }
zwebServiceMetadataIsValid(value) public {
Quit 1 }
zwebServiceMetadataNewObject(%this) public {
Set newobject=##class(xobw.WebServiceMetadata).%New("") If newobject="" Quit ""
Set $zobjval(,/*webServiceMetadata*/2,0,3,1)=newobject,
$zobjval(,/*webServiceMetadata*/1,0,3,1)="",$zobjmods(,2)=1
Quit newobject }
zwebServiceMetadataSet(%this,newvalue) public {
If newvalue'="" { If '$isobject(newvalue) { Quit $$Error^%apiOBJ(5807,newvalue) } If
$zobjval(,/*webServiceMetadata*/2,0,3,1)=newvalue { Quit 1 } }
Set
$zobjval(,/*webServiceMetadata*/2,0,3,1)=newvalue,$zobjval(,/*webServiceMetadata*/1,0,3,1
)="",$zobjmods(,2)=1
Quit 1 }
zwebServiceMetadataSetModified(%this,newvalue) public {
Set $zobjmod(,1)=newvalue Quit 1 }
zwebServiceMetadataSetObject(%this,newvalue) public {
Set
$zobjval(,/*webServiceMetadata*/1,0,3,1)=$listget(newvalue),$zobjval(,/*webServiceMetadat
a*/2,0,3,1)="",$zobjmods(,2)=1
Quit 1 }
zwebServiceMetadataSetObjectId(%this,newid) public {
Quit ..webServiceMetadataSetObject($select(newid="":"",1:$listbuild(newid_""))) }
zwebServiceMetadataUnSwizzle(%this,force=0) public {
If $zobjval(,/*webServiceMetadata*/2,0,3,1)="" Quit 1
Set modbit=$zobjmod(,1)
Set sc=..webServiceMetadata.%GetSwizzleObject(force,.newvalue) Quit:('sc) sc
Set
$zobjval(,/*webServiceMetadata*/1,0,3,1)=$listget(newvalue),$zobjval(,/*webServiceMetadat
a*/2,0,3,1)=""
Set $zobjmod(,1)=modbit,$zobjmods(,2)=1
Quit 1 }
xobw.WebServicesAuthorized.1^INT^1^62153,34148^0^1
;xobw.WebServicesAuthorized.1
;(C)InterSystems, generated for class xobw.WebServicesAuthorized. Do NOT edit.
03/03/2011 09:29:08AM
;;013FB9D979E23784;xobw.WebServicesAuthorized
;
%1Check(id="",lockonly=0) public {
Set exists=##class(xobw.WebServicesAuthorized).%ExistsId(id) Quit:'exists
$select('lockonly:$$Error^%apiOBJ(5797,"xobw.WebServicesAuthorized"_","_"",id),1:1) Set
status=##class(xobw.WebServicesAuthorized).%LockId(id,1) Quit:('status) status If
'lockonly { Set exists=##class(xobw.WebServicesAuthorized).%ExistsId(id) Do
##class(xobw.WebServicesAuthorized).%UnlockId(id,1,0) Quit
$select('exists:$$Error^%apiOBJ(5797,"xobw.WebServicesAuthorized"_","_"",id),1:1) } Else
{ Do ##class(xobw.WebServicesAuthorized).%UnlockId(id,1,0) Quit 1 } }
%AcquireLock(%this,locktype="") public {
Quit ..%LockId(..%Id(),$s($e(locktype)="s":1,1:0)) }
%BMEBuilt(bmeName)
Quit 1
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
s proporef=$zobjproperty(%this,"webServerRef")
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
i AllowedDepth>0 s AllowedDepth = AllowedDepth - 1
i AllowedCapacity>0 d
. s AllowedCapacity = AllowedCapacity - 1
. s AllowedCapacity = AllowedCapacity/1
s proporef=$zobjval(%this,5,0)
i proporef'="" s sc=1 i AllowedDepth'=0,AllowedCapacity'=0 s
sc=proporef.%BindExport(dev,.Seen,RegisterOref,AllowedDepth,AllowedCapacity) q:('sc) sc
Quit sc }
%BuildIndices(idxlist="",autoPurge=0,lockExtent=0) public {
s $ZTrap="CatchError",locked=0,sc=1
i lockExtent { d %AcquireTableLock^xobw.WebServicesAuthorized.T1(0,.SQLCODE) i
SQLCODE { q $$Error^%apiOBJ(5540,SQLCODE,$g(%msg)) } else { s locked=1 } }
i autoPurge { set sc = $$%PurgeIndices^xobw.WebServicesAuthorized.T1(idxlist) i
('sc) { quit sc } }
s sc=$$%BuildIndices^xobw.WebServicesAuthorized.T1(idxlist)
i locked { d %ReleaseTableLock^xobw.WebServicesAuthorized.T1(0) }
q sc
CatchError s $ZTrap="" i $ZE'="" { s sc = $$Error^%apiOBJ(5002,$ZE) } i locked { d
%ReleaseLock^xobw.WebServicesAuthorized.T1(0) } q sc }
%CheckUnique(idxlist="") public {
QUIT $$Error^%apiOBJ(5758,"%Persistent::%CheckUnique") }
%ClassName(fullname) public {
Quit
$select($get(fullname,0):"xobw.WebServicesAuthorized",1:"WebServicesAuthorized") }
%ComposeOid(id) public {
Quit
$Select(##class(xobw.WebServicesAuthorized).%ExistsId(id):$select(id="":"",1:$listbuild(i
d_"","xobw.WebServicesAuthorized")),1:"")
}
%Construct(%this,initvalue)
Set
$zobjval(,/*%Concurrency*/1,0,3,1)=$zu(115,10),$zobjval(,/*ien*/2,0,3,2)="",$zobjval(,/*s
tatus*/3,0,3,3)="",$zobjval(,/*webServerRef*/4,0,3,4)="",$zobjval(,/*webServerRef*/5,0,3,
4)=""
Set $zobjval(,/*webServiceIen*/6,0,3,6)=""
Quit 1
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.WebServicesAuthorized"),cloned(+object)=%this,cloned(+o
bject,0)=object Set $zobjmod(,0)=1
Set
$zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2),$zobjval(,3)=$zobjval(obj
ect,3)
Set
$zobjval(,4)=$zobjval(object,4),$zobjval(,5)="",$zobjval(,4)="",$zobjval(,6)=$zobjval(obj
ect,6)
Quit %this }
%Delete(oid="",concurrency=-1) public {
Quit:oid="" $$Error^%apiOBJ(5813) Set id=$listget(oid) Quit:id=""
$$Error^%apiOBJ(5812)
set $ZTRAP="%DeleteERR"
If concurrency = -1 Set concurrency=$zu(115,10)
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit
$$Error^%apiOBJ(5828)
Set class=$listget(oid,2)
If class="" { Set
class="xobw.WebServicesAuthorized",oid=$select(oid="":"",1:$listbuild($listget(oid),"xobw
.WebServicesAuthorized")_$select($listget(oid,3)'="":$listbuild($list(oid,3)),1:"")) }
Else { Set
class=$s(class[".":class,$e(class)'="%":"User."_class,1:"%Library."_$e(class,2,*)) If
"xobw.WebServicesAuthorized"'=class { Quit
$zobjclassmethod(class,"%Delete",oid,concurrency) } }
If +$g(%objtxSTATUS)=0 { Set traninit=1 k
%objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED k:'$TLevel
%0CacheLock,%objtxTID,%objtxID i '$zu(115,9) { s %objtxSTATUS=1 } else { TStart s
%objtxSTATUS=2 } } Else { Set traninit=0 }
Set oref=$zobjoid($listget(oid,2),$listget(oid))
If $isobject(oref) Do
. New %this Set %this=oref If %this.%Concurrency>2 { Set
sc=%this.%ReleaseLock($select(%this.%Concurrency=3:"s",1:"e")) } i $g(%objtxSTATUS)=2 { s
%objtxOIDUNASSIGNED(+oref)=oid,%objtxLIST(+oref)=oref Set
%objtxMODIFIED(+oref)=$zobjval(oref,0) } Set $zobjmod(oref,0)=1 Set
$zobjval(oref,0,,,,3)="" Set $zobjoid($listget(oid,2),$listget(oid))=""
Set sc=##class(xobw.WebServicesAuthorized).%DeleteData(id,concurrency)
%DeleteEnd If traninit { If (+sc) { i $g(%objtxSTATUS)=1 { k %objtxSTATUS } else { If
$Tlevel { TCommit } k
%objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED k:'$TLevel
%0CacheLock,%objtxTID,%objtxID } } Else { i $g(%objtxSTATUS)=2 { k %0CacheLock s
sc=$select(+sc:$$%TRollBack^%occTransaction(),1:$$AppendStatus^%occSystem(sc,$$%TRollBack
^%occTransaction())) k %objtxTID,%objtxID } else { k %objtxSTATUS } } }
Quit sc
%DeleteERR Set $ZTrap="", sc=$$Error^%apiOBJ(5002,$ZE) goto %DeleteEnd }
%DeleteData(id,concurrency)
Quit:id="" $$Error^%apiOBJ(5812) New %sc Set %sc=1
If concurrency>1 If '$$%AcquireLock^xobw.WebServicesAuthorized.T1(id) Quit
$$Error^%apiOBJ(5803)
n %ROWID,SQLCODE
Do %0o
If SQLCODE Set %sc=$$Error^%apiOBJ(5521,SQLCODE,$g(%msg))
If concurrency>1 Do %ReleaseLock^xobw.WebServicesAuthorized.T1(id)
Quit %sc
%0o n
%mmmsqlc,%mmmsqld,%mmmsqlE,%mmmsqll,%mmmsqln,%mmmsqlp,%mmmsqlR,%mmmsqls,%mmmsqlt,%mmmsqlT
S,%mmmsqlTS2,%mmmsqlZ s $zt="%0err" s %mmmsqld(5)=0 s %mmmsqld(6)=""
s %mmmsqld(2)=$g(id)
s SQLCODE=100
k:'$TLEVEL %0CacheLock If $zu(115,1)=2,'$TLEVEL { s %mmmsqlTS2=1 TSTART } If $zu(115,1)
{ s %mmmsqlTS=1 TSTART }
; asl MOD# 2
s %mmmsqld(1)=%mmmsqld(2)
s %mmmsqld(3)=$p(%mmmsqld(1),"||"),%mmmsqld(4)=$p(%mmmsqld(1),"||",2)
i %mmmsqld(3)'="",%mmmsqld(4)'="",$d(^XOB(18.12,%mmmsqld(3),100,%mmmsqld(4)))
e g %0Bdun
s %mmmsqld(14)=$$%getlock^xobw.WebServicesAuthorized.T1(%mmmsqld(1)) i '%mmmsqld(14) s
SQLCODE=-110 g %0c
; asl MOD# 3
s %mmmsqld(3)=$p(%mmmsqld(1),"||"),%mmmsqld(4)=$p(%mmmsqld(1),"||",2)
i %mmmsqld(3)'="",%mmmsqld(4)'="",$d(^XOB(18.12,%mmmsqld(3),100,%mmmsqld(4)))
e g %0Cdun
d %delete^xobw.WebServicesAuthorized.T1(%mmmsqld(1),$c(0,2,0,0,0),'$g(%mmmsqlTS))
i 'SQLCODE i $i(%mmmsqld(5))'<$g(%0CacheRowLimit,9223372036854775807) d:%mmmsqld(14)=1
%ReleaseLock^xobw.WebServicesAuthorized.T1(%mmmsqld(1)) g %0c
%0Cdun
d:%mmmsqld(14)=1 %ReleaseLock^xobw.WebServicesAuthorized.T1(%mmmsqld(1)) g:SQLCODE<0 %0c
%0Bdun
%0Adun
%0c s %ROWCOUNT=$s($g(SQLCODE)'<0:+$g(%mmmsqld(5)),1:0)
If $zu(115,1),$g(%mmmsqlTS) { TCOMMIT:SQLCODE'<0 TROLLBACK:SQLCODE<0 1 }
TCOMMIT:SQLCODE=100&&(%ROWCOUNT=0)&&($g(%mmmsqlTS2))&&($zu(115,1)=2) q
%0err s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) d:$g(%mmmsqld(14))=1
%ReleaseLock^xobw.WebServicesAuthorized.T1(%mmmsqld(1)) g %0c
%DeleteExtent(concurrency=-1,deletecount,instancecount) public {
If concurrency = -1 Set concurrency=$zu(115,10)
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit
$$Error^%apiOBJ(5828)
Set deletecount=0,instancecount=0
Set sc=##class(xobw.WebServicesAuthorized).ExtentExecute(.qh) Quit:('sc) sc
For Set sc=##class(xobw.WebServicesAuthorized).ExtentFetch(.qh,.row,.atend)
Quit:$select(row="":1,('sc):1,1:0) Set id=$listget(row) If id'="" Set
sc=##class(xobw.WebServicesAuthorized).%Delete($listbuild(id),concurrency) Set
instancecount=instancecount+1 Set:(+sc) deletecount=deletecount+1 Quit:atend
Do ##class(xobw.WebServicesAuthorized).ExtentClose(qh)
If instancecount = deletecount { do
##class(xobw.WebServicesAuthorized).%KillExtent() set sc = 1 } else { set sc =
$$Error^%apiOBJ(5764,"xobw.WebServicesAuthorized") }
Quit sc }
%DeleteId(id,concurrency=-1) public {
Quit
##class(xobw.WebServicesAuthorized).%Delete($select(id="":"",1:$listbuild(id_"")),.concur
rency) }
%Destruct(%this) public {
Set oid=$zobjval(,0,,,,3)
If oid'="" { If $zobjval(,/*%Concurrency*/1,0,3,1)=3 { Do ..%ReleaseLock("s") }
ElseIf $zobjval(,/*%Concurrency*/1,0,3,1)=4 { Do ..%ReleaseLock("e") } Set
$zobjoid($listget(oid,2),$listget(oid))="" }
Kill
%objtxLIST(+%this),%objtxOIDASSIGNED(+%this),%objtxOIDUNASSIGNED(+%this),%objtxMODIFIED(+
%this)
Quit 1 }
%DowngradeConcurrency(%this,concurrency=0) public {
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit
$$Error^%apiOBJ(5828)
Set current=$zobjval(,/*%Concurrency*/1,0,3,1)
If concurrency'<current Quit 1
If current<3 Set modflag=$zobjmod(,0),$zobjval(,/*%Concurrency*/1,0,3,1)=concurrency
Set:modflag=0 $zobjmod(,0)=0 Quit 1
If concurrency>2 Set sc=..%AcquireLock($select(concurrency=3:"s",1:"e")) Quit:('sc)
sc
Do ..%ReleaseLock($select(current=3:"s",1:"e"))
Set modflag=$zobjmod(,0),$zobjval(,/*%Concurrency*/1,0,3,1)=concurrency
Set:modflag=0 $zobjmod(,0)=0
Quit 1 }
%Exists(oid) public {
Quit $isobject(##class(xobw.WebServicesAuthorized).%Open(oid,0)) }
%ExistsId(id) public {
Quit ##class(xobw.WebServicesAuthorized).%Exists($listbuild(id)) }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.WebServicesAuthorized","%Library.Persistent","%Library.Swizz
leObject","%Library.RegisteredObject","%XML.Adaptor"),$s(isclass[".":isclass,$e(isclass)'
="%":"User."_isclass,1:"%Library."_$e(isclass,2,*))) }
%GUID(oid) public {
If $listget($Get(oid)) = "" Quit ""
If "xobw.WebServicesAuthorized"=$listget(oid,2) Quit $Get(^OBJ.GUID(1,oid))
Set class=$listget(oid,2)
If class="" { Set
class="xobw.WebServicesAuthorized",oid=$select(oid="":"",1:$listbuild($listget(oid),"xobw
.WebServicesAuthorized")_$select($listget(oid,3)'="":$listbuild($list(oid,3)),1:"")) }
Else { Set
class=$s(class[".":class,$e(class)'="%":"User."_class,1:"%Library."_$e(class,2,*)) If
"xobw.WebServicesAuthorized"'=class { Quit $zobjclassmethod(class,"%GUID",oid) } }
Quit $Get(^OBJ.GUID(1,oid)) }
%GUIDSet(oid,guid="") public {
Quit "" }
%GetParameter(paramname="") public {
Quit
$case(paramname,"DBTIME":0,"DEFAULTCONCURRENCY":"$zu(115,10)","EXTENTSIZE":100000,"GUIDEN
ABLED":0,"MANAGEDEXTENT":1,"OBJJOURNAL":0,"PROPERTYVALIDATION":2,"READONLY":0,"SQLENABLED
":1,"STORAGECOMPILERCLASS":"%Compiler.Storage.CacheSQL","XMLENABLED":1,"XMLIGNOREINVALIDA
TTRIBUTE":1,"XMLIGNOREINVALIDTAG":0,"XMLIGNORENULL":0,"XMLINCLUDEINGROUP":1,"XMLSEQUENCE"
:0,:"") }
%GetSwizzleObject(%this,force=0,oid) public {
Set oid="" If force=0 Set oid=(..%Oid()) Quit 1
If force=2 Set sc=..%Save(1) Set:(+sc) oid=(..%Oid()) Quit sc
Set oid=(..%Oid()) Quit:oid'="" 1
Set sc=..%Save(0) Set:(+sc) oid=..%Oid()
Quit sc }
%Id(%this)
Quit $listget($zobjval(,0,,,,3))
%IdSet(%this,id) public {
Set
class=$zobjclass(%this),oid=$select(id="":"",1:$listbuild(id_"",$s($l(class,".")=2:$s($e(
class,1,9)="%Library.":"%"_$p(class,".",2),1:class),1:class)))
If $zobjval(,0,,,,3)'="",$zobjval(,0,,,,3)'=oid Quit $$Error^%apiOBJ(5814)
Set $zobjval(,0,,,,3)=oid Set $zobjoid($listget(oid,2),$listget(oid))=%this
Quit 1 }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.WebServicesAuthorized","%Library.Persistent","%Library.Swizz
leObject","%Library.RegisteredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_is
class,1:"%Library."_$e(isclass,2,*))) }
%IsModified(%this) public {
Quit $zobjmod(,0) }
%KillExtent() public {
set subextent=$order(^oddMAP("xobw.WebServicesAuthorized","Z","")) While
subextent'="" { if
($s($d(^oddCOM(subextent,"m","%KillExtent",44))#2:^(44),$d(^oddCOM($g(^(2),subextent),"m"
,"%KillExtent",44))#2:^(44),1:$s($d(^oddDEF($g(^oddCOM(subextent,"m","%KillExtent",2),sub
extent),"m","%KillExtent",44))#2:^(44),1:$g(^%qCacheObjectKey(1,"m",44))))) &&
($Data(^rOBJ($zutil(135,23,subextent)_"."_(+0)))) { Set
sc=$zobjclassmethod(subextent,"%KillExtent") If ('sc) { Goto Exit } } Set
subextent=$order(^oddMAP("xobw.WebServicesAuthorized","Z",subextent)) }
set sc=##class(xobw.WebServicesAuthorized).%PurgeIndices()
If (+sc) { Set sc=##class(xobw.WebServicesAuthorized).%KillExtentData() }
Exit Quit sc }
%KillExtentData() public {
QUIT $$Error^%apiOBJ(5758,"%Persistent::%KillExtentData") }
%LoadData(%this,id)
n %ROWID,%sc,SQLCODE
Set %sc=0
If $zobjval(,/*%Concurrency*/1,0,3,1)=4 If
'$$%AcquireLock^xobw.WebServicesAuthorized.T1(id) Quit $$Error^%apiOBJ(5803)
If $zobjval(,/*%Concurrency*/1,0,3,1)'=4,$zobjval(,/*%Concurrency*/1,0,3,1)>1 If
'$$%AcquireLock^xobw.WebServicesAuthorized.T1(id,1) Quit $$Error^%apiOBJ(5804)
Do %0Bo
If SQLCODE Set
$zobjval(,/*ien*/2,0,3,2)="",$zobjval(,/*status*/3,0,3,3)="",$zobjval(,/*webServerRef*/4,
0,3,4)="",$zobjval(,/*webServiceIen*/6,0,3,6)=""
Else Do
. Set %sc=1
If $zobjval(,/*%Concurrency*/1,0,3,1)=2 Do
%ReleaseLock^xobw.WebServicesAuthorized.T1(id,1)
Quit $Select((+%sc):1,1:$$Error^%apiOBJ(5809))
%0Bo n
%mmmsqlc,%mmmsqld,%mmmsqlE,%mmmsqll,%mmmsqln,%mmmsqlp,%mmmsqlR,%mmmsqls,%mmmsqlt,%mmmsqlZ
s $zt="%0Berr" s %mmmsqld(13)=0,%mmmsqld(14)=""
s %mmmsqld(10)=$g(id)
s SQLCODE=100
; asl MOD# 2
s %mmmsqld(9)=%mmmsqld(10)
s %mmmsqld(12)=$p(%mmmsqld(9),"||"),$zobjval(,/*ien*/2,0,3,2)=$p(%mmmsqld(9),"||",2)
i
%mmmsqld(12)'="",$zobjval(,/*ien*/2,0,3,2)'="",$d(^XOB(18.12,%mmmsqld(12),100,$zobjval(,/
*ien*/2,0,3,2)))
e g %0BBdun
s %mmmsqld(22)=$g(^XOB(18.12,%mmmsqld(12),100,$zobjval(,/*ien*/2,0,3,2),0))
s $zobjval(,/*status*/3,0,3,3)=$p(%mmmsqld(22),"^",6) s
$zobjval(,/*webServiceIen*/6,0,3,6)=$p(%mmmsqld(22),"^",1)
s $zobjval(,/*webServerRef*/4,0,3,4)=$p(%mmmsqld(9),"||")
g:$zu(115,2)=0 %0BBuncommitted i $zu(115,2)=1 l
+^XOB(18.12,$p(%mmmsqld(9),"||",1),100,$p(%mmmsqld(9),"||",2))#"S":$zu(115,4) i $t { s
%mmmsqld(13)=1,%mmmsqld(14)=$name(^XOB(18.12,$p(%mmmsqld(9),"||",1),100,$p(%mmmsqld(9),"|
|",2)))_"#""SI""" } else { s SQLCODE=-114,%msg="Unable to acquire shared lock on table
xobw.WebServicesAuthorized for RowID value: "_%mmmsqld(9) ztrap "LOCK" }
; asl MOD# 3
s %mmmsqld(12)=$p(%mmmsqld(9),"||"),$zobjval(,/*ien*/2,0,3,2)=$p(%mmmsqld(9),"||",2)
i
%mmmsqld(12)'="",$zobjval(,/*ien*/2,0,3,2)'="",$d(^XOB(18.12,%mmmsqld(12),100,$zobjval(,/
*ien*/2,0,3,2)))
e g %0BCdun
s %mmmsqld(30)=$g(^XOB(18.12,%mmmsqld(12),100,$zobjval(,/*ien*/2,0,3,2),0))
s $zobjval(,/*status*/3,0,3,3)=$p(%mmmsqld(30),"^",6) s
$zobjval(,/*webServiceIen*/6,0,3,6)=$p(%mmmsqld(30),"^",1)
s $zobjval(,/*webServerRef*/4,0,3,4)=$p(%mmmsqld(9),"||")
%0BBuncommitted ;
s SQLCODE=0 g %0Bc
%0BCdun i $zu(115,2)=1,$g(%mmmsqld(13))=1 { l -@%mmmsqld(14) s %mmmsqld(13)=0 }
%0BBdun
%0BAdun
%0Bc s %ROWCOUNT='SQLCODE i $zu(115,2)=1,$g(%mmmsqld(13))=1 { l -@%mmmsqld(14) } q
%0Berr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) g %0Bc
%LockExtent(shared=0) public {
Quit
$Select($$%AcquireTableLock^xobw.WebServicesAuthorized.T1(shared):1,1:$$Error^%apiOBJ($Se
lect('shared:5803,1:5804))) }
%GetLock(id,shared=0) public {
Kill:'$TLEVEL %0CacheLock If
$increment(%0CacheLock("xobw.WebServicesAuthorized"))>$zutil(115,6) { If
(+##class(xobw.WebServicesAuthorized).%LockExtent(shared)) { Quit 2 } Else { Quit 0 } }
Quit:(+##class(xobw.WebServicesAuthorized).%LockId(id,shared)) 1 Quit 0 }
%LockId(id,shared=0) public {
if id'="" { Quit:'$$%AcquireLock^xobw.WebServicesAuthorized.T1(id,shared)
$$Error^%apiOBJ($Select('shared:5803,1:5804)) Quit 1 } else { quit $$Error^%apiOBJ(5812)
} }
%NormalizeObject(%this)
Set:$zobjval(,/*ien*/2,0,3,2)'=""
$zobjval(,/*ien*/2,0,3,2)=(..ienNormalize($zobjval(,/*ien*/2,0,3,2)))
Set:$zobjval(,/*status*/3,0,3,3)'=""
$zobjval(,/*status*/3,0,3,3)=(..statusNormalize($zobjval(,/*status*/3,0,3,3)))
Set:$zobjval(,/*webServiceIen*/6,0,3,6)'=""
$zobjval(,/*webServiceIen*/6,0,3,6)=(..webServiceIenNormalize($zobjval(,/*webServiceIen*/
6,0,3,6)))
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%Oid(%this)
Quit $zobjval(,0,,,,3)
%Open(oid,concurrency=-1,sc) public { Set:'($data(sc)#2) sc=1
If $listget($g(oid))="" Set sc = $$Error^%apiOBJ(5813) Quit ""
If concurrency = -1 Set concurrency=$zu(115,10)
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Set sc
= $$Error^%apiOBJ(5828) Quit ""
Set $Ztrap = "Catch"
New %this Set class=$listget(oid,2)
If class="" { Set
class="xobw.WebServicesAuthorized",oid=$select(oid="":"",1:$listbuild($listget(oid),"xobw
.WebServicesAuthorized")_$select($listget(oid,3)'="":$listbuild($list(oid,3)),1:"")) }
Else { Set
class=$s(class[".":class,$e(class)'="%":"User."_class,1:"%Library."_$e(class,2,*)) If
"xobw.WebServicesAuthorized"'=class { Quit
$zobjclassmethod(class,"%Open",oid,concurrency,.sc) } }
Set %this=$zobjoid($listget(oid,2),$listget(oid))
If %this'="" { If concurrency>$zobjval(,/*%Concurrency*/1,0,3,1) { If
($zobjval(,/*%Concurrency*/1,0,3,1)<3) && (concurrency > 2) { Set reload = 1 } Else { Set
reload = 0 } Set sc=..%UpgradeConcurrency(concurrency) If (reload) && ((+sc)) { Set
sc=..%Reload() } If ('sc) { Quit "" } } Else { Set sc = 1 } Quit %this }
Set %this=$zobjnew("xobw.WebServicesAuthorized")
Set $zobjval(,/*%Concurrency*/1,0,3,1)=concurrency
Set $zobjval(,5,0)=""
Set $zobjval(,0,,,,3)=oid Set $zobjoid($listget(oid,2),$listget(oid))=%this
Set sc=..%LoadData($listget(oid)) If ('sc) Quit ""
Set $zobjmod(,0)=0
Quit %this
Catch Set $ZTrap = ""
If '(+$Get(sc)) { Quit "" }
Set sc =
$Select($Extract($ZE,1,9)="<PROTECT>":$$Error^%apiOBJ(939,"xobw.WebServicesAuthorized"_":
:%Open"),1:$$Error^%apiOBJ(5002,$ZE))
Quit "" }
%OpenId(id,concurrency=-1,sc=1) public {
Quit
##class(xobw.WebServicesAuthorized).%Open($select(id="":"",1:$listbuild(id_"")),.concurre
ncy,.sc) }
%PackageName()
Quit "xobw"
%PurgeIndices(idxlist="",lockExtent=0) public {
s $ZTrap="CatchError",locked=0,sc=1
i lockExtent { d %AcquireTableLock^xobw.WebServicesAuthorized.T1(0,.SQLCODE) i
SQLCODE { q $$Error^%apiOBJ(5540,SQLCODE,$g(%msg)) } else { s locked=1 } }
s sc=$$%PurgeIndices^xobw.WebServicesAuthorized.T1(idxlist)
i locked { d %ReleaseTableLock^xobw.WebServicesAuthorized.T1(0) }
q sc
CatchError s $ZTrap="" i $ZE'="" { s sc = $$Error^%apiOBJ(5002,$ZE) } i locked { d
%ReleaseLock^xobw.WebServicesAuthorized.T1(0) } q sc }
%ReleaseLock(%this,locktype="") public {
Quit ..%UnlockId(..%Id(),$s($e(locktype)="s":1,1:0),$s($e(locktype,2)="i":1,1:0)) }
%Reload(%this) public {
If ..%Id()="" Quit $$Error^%apiOBJ(5813)
Set cur=$zobjval(,/*%Concurrency*/1,0,3,1),$zobjval(,/*%Concurrency*/1,0,3,1)=0
Set $zobjval(,/*webServerRef*/5,0,3,4)="",$zobjmods(,4)=1,$zobjmods(,5)=1
Set sc=..%LoadData(..%Id()) Set $zobjval(,/*%Concurrency*/1,0,3,1)=cur If ('sc) Quit
""
Set $zobjmod(,0)=0
Quit 1 }
%ResolveConcurrencyConflict(oid,objSS,iPtr,bAcceptYours=0) public {
Quit
$$Error^%apiOBJ(5758,"xobw.WebServicesAuthorized"_"::%ResolveConcurrencyConflict") }
%RollBack(%this) public {
If $data(%objtxMODIFIED(+%this)) Set $zobjval(,0)=%objtxMODIFIED(+%this)
Quit 1 }
%Save(%this,related=1) public {
Set $ZTrap="%SaveERR"
New %objTX Set sc=1,traninit=0 If '$data(%objTX2) New %objTX2 Set %objTX2=1
If +$g(%objtxSTATUS)=0 { Set traninit=1 k
%objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED k:'$TLevel
%0CacheLock,%objtxTID,%objtxID i '$zu(115,9) { s %objtxSTATUS=1 } else { TStart s
%objtxSTATUS=2 } }
If $get(%objTX2(+%this)) Set sc=..%AddToSaveSet(1) Quit:('sc) sc Set
intRef=+%this,objValue=$get(%objTX(1,intRef,1)),sc=..%SerializeObject(.objValue,1)
Set:(+sc) %objTX(1,intRef,1)=objValue Quit sc
Set sc=..%AddToSaveSet(related+2) If ('sc) ZTrap "SG"
Set intRef = $Order(%objTX(4,""),1,objRef)
While intRef '= "" {
If '$Data(%objTX(5,intRef)) { Set sc=objRef.%AddToSaveSet(related+2) Set
%objTX(5,intRef) = objRef If ('sc) { ZTrap "SG" } }
Kill %objTX(4,intRef)
Set intRef = $Order(%objTX(4,""),1,objRef)
}
If '$data(%objTX(2)) s sc=1 GoTo %SaveCOMMIT
Set %objTX(3)=0,intRef="" For Set intRef=$order(%objTX(2,intRef)) Quit:intRef=""
If '$data(%objTX(1,intRef,2)) Set %objTX(3,$increment(%objTX(3)))=%objTX(1,intRef) Kill
%objTX(2,intRef)
For Quit:%objTX(3)<1 Set ptr=%objTX(3),objRef=%objTX(3,ptr),%objTX(3)=%objTX(3)-1
Kill %objTX(3,ptr) Set
objValue=$get(%objTX(1,+objRef,1)),sc=objRef.%SerializeObject(.objValue) Do Set
%objTX(1,+objRef,1)=objValue Kill %objTX(1,+objRef,3) Set $zobjmod(objRef,0)=0
. If ('sc) k:$g(%objtxSTATUS)=2 %objtxLIST(+objRef),%objtxMODIFIED(+objRef) ZTrap
"SG"
. i $g(%objtxSTATUS)=2 { Set %objtxMODIFIED(+objRef)=$zobjval(objRef,0) }
. Set intSucc="" For Set intSucc=$order(%objTX(1,+objRef,3,intSucc))
Quit:intSucc="" Kill %objTX(1,+objRef,3,intSucc),%objTX(1,intSucc,2,+objRef) If
'$data(%objTX(1,intSucc,2)) Set %objTX(3,$increment(%objTX(3)))=%objTX(1,intSucc) Kill
%objTX(2,intSucc)
For Set pserial=0 Do Quit:'pserial
. Set intRef="" For Set intRef=$order(%objTX(2,intRef)) Quit:intRef="" Set
intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred="" If
%objTX(1,intPred,6)=1 Set
objValue=$get(%objTX(1,intPred,1)),sc=(%objTX(1,intPred)).%SerializeObject(.objValue,1)
If (+sc) Set pserial=1,%objTX(1,intPred,1)=objValue Do
. . Set intSucc="" For Set intSucc=$order(%objTX(1,intPred,3,intSucc))
Quit:intSucc="" Kill %objTX(1,intPred,3,intSucc),%objTX(1,intSucc,2,intPred) If
'$data(%objTX(1,intSucc,2)) Set %objTX(3,$i(%objTX(3)))=%objTX(1,intSucc) Kill
%objTX(2,intSucc)
. . For Quit:%objTX(3)<1 Set
ptr=%objTX(3),objSerialize=%objTX(3,ptr),%objTX(3)=%objTX(3)-1 Kill %objTX(3,ptr) Set
objValue=$get(%objTX(1,+objSerialize,1)),sc=objSerialize.%SerializeObject(.objValue) Do
Set %objTX(1,+objSerialize,1)=objValue Kill %objTX(1,+objSerialize,3) Set
$zobjmod(objSerialize,0)=0
. . . If ('sc) k:$g(%objtxSTATUS)=2
%objtxLIST(+objSerialize),%objtxMODIFIED(+objSerialize) ZTrap "SG"
. . . i $g(%objtxSTATUS)=2 { Set
%objtxMODIFIED(+objSerialize)=$zobjval(objSerialize,0) }
. . . Set intSucc="" For Set intSucc=$order(%objTX(1,+objSerialize,3,intSucc))
Quit:intSucc="" Kill %objTX(1,+objSerialize,3,intSucc),%objTX(1,intSucc,2,+objSerialize)
If '$data(%objTX(1,intSucc,2)) Set %objTX(3,$i(%objTX(3)))=%objTX(1,intSucc) Kill
%objTX(2,intSucc)
If $data(%objTX(2))>2 Set sc=$$Error^%apiOBJ(5827) ZTrap "SG"
%SaveCOMMIT If traninit { i $g(%objtxSTATUS)=1 { k %objtxSTATUS } else { If $Tlevel {
TCommit } k %objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED
k:'$TLevel %0CacheLock,%objtxTID,%objtxID } }
Set $zobjmod(,0)=0 Quit sc
%SaveERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSG>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
If traninit { i $g(%objtxSTATUS)=2 { k %0CacheLock s
sc=$select(+sc:$$%TRollBack^%occTransaction(),1:$$AppendStatus^%occSystem(sc,$$%TRollBack
^%occTransaction())) k %objtxTID,%objtxID } else { k %objtxSTATUS } }
Quit sc }
%SaveData(%this,id)
s id=..%Id() i id="" QUIT ..%SaveDataInsert(id)
QUIT ..%SaveDataUpdate(id)
%SaveDataInsert(%this,id)
New %ROWID,%sc,SQLCODE,lock,temp1
Set lock=0,%sc=1
Do %0Do
If SQLCODE Quit $$Error^%apiOBJ(5521,SQLCODE,$get(%msg))
Set id=%ROWID Set
$zobjoid("xobw.WebServicesAuthorized",id)=%this,$zobjval(,0,,,,3)=$lb(id_"","xobw.WebServ
icesAuthorized")
Set:$g(%objtxSTATUS)=2 %objtxOIDASSIGNED(+%this)=""
If $zobjval(,/*%Concurrency*/1,0,3,1)=4 If
'$$%AcquireLock^xobw.WebServicesAuthorized.T1(id) Quit $$Error^%apiOBJ(5803)
If $zobjval(,/*%Concurrency*/1,0,3,1)=3 If
'$$%AcquireLock^xobw.WebServicesAuthorized.T1(id,1) Quit $$Error^%apiOBJ(5804)
If lock Do %ReleaseLock^xobw.WebServicesAuthorized.T1(id)
Quit %sc
q
%0Do s $zt="%0Derr"
n %i
n %mmmsqld
s
%i(2)=$g($zobjval(,/*ien*/2,0,3,2)),%i(3)=$g($zobjval(,/*status*/3,0,3,3)),%i(0)=$g($zobj
val(,/*webServerRef*/4,0,3,4)),%i(4)=$g($zobjval(,/*webServiceIen*/6,0,3,6))
s
$zt="",%ROWID=$$%insert^xobw.WebServicesAuthorized.T1(.%i,$c(0,0,0,0,1)),%ROWCOUNT='SQLCO
DE
q // From %0Do
%0Derr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) q
%SaveDataUpdate(%this,id)
New %ROWID,%sc,SQLCODE,lock,notexist,temp1
Set lock=0,notexist=0,%sc=1
If $zobjval(,/*%Concurrency*/1,0,3,1)>1 Set
lock=$$%AcquireLock^xobw.WebServicesAuthorized.T1(id) If 'lock Set
%sc=$$Error^%apiOBJ(5803) Quit %sc
Do %0Fo
If SQLCODE=100 { s notexist=1 } ElseIf SQLCODE { Set
%sc=$$Error^%apiOBJ(5521,SQLCODE,$g(%msg)) }
If notexist { If lock { Do %ReleaseLock^xobw.WebServicesAuthorized.T1(id) } Quit
..%SaveDataInsert(id) }
If lock Do %ReleaseLock^xobw.WebServicesAuthorized.T1(id)
Quit %sc
q
%0Fo n
%mmmsqlc,%mmmsqld,%mmmsqlE,%mmmsqll,%mmmsqln,%mmmsqlp,%mmmsqlR,%mmmsqls,%mmmsqlt,%mmmsqlT
S,%mmmsqlTS2,%mmmsqlZ s $zt="%0Ferr" s %mmmsqld(12)=0 s %mmmsqld(13)=""
s
%mmmsqld(2)=$g($zobjval(,/*ien*/2,0,3,2)),%mmmsqld(4)=$g($zobjval(,/*status*/3,0,3,3)),%m
mmsqld(6)=$g($zobjval(,/*webServerRef*/4,0,3,4)),%mmmsqld(8)=$g($zobjval(,/*webServiceIen
*/6,0,3,6)),%mmmsqld(10)=$g(id)
n %data
s SQLCODE=100
k:'$TLEVEL %0CacheLock If $zu(115,1)=2,'$TLEVEL { s %mmmsqlTS2=1 TSTART } If $zu(115,1)
{ s %mmmsqlTS=1 TSTART }
; asl MOD# 2
s %mmmsqld(9)=%mmmsqld(10)
s %mmmsqld(11)=$p(%mmmsqld(9),"||"),%mmmsqld(1)=$p(%mmmsqld(9),"||",2)
i %mmmsqld(11)'="",%mmmsqld(1)'="",$d(^XOB(18.12,%mmmsqld(11),100,%mmmsqld(1)))
e g %0FBdun
s %mmmsqld(21)=$$%getlock^xobw.WebServicesAuthorized.T1(%mmmsqld(9)) i '%mmmsqld(21) s
SQLCODE=-110 g %0Fc
; asl MOD# 3
s %mmmsqld(11)=$p(%mmmsqld(9),"||"),%mmmsqld(1)=$p(%mmmsqld(9),"||",2)
i %mmmsqld(11)'="",%mmmsqld(1)'="",$d(^XOB(18.12,%mmmsqld(11),100,%mmmsqld(1)))
e g %0FCdun
k %data
s
%data(2)=$g(%mmmsqld(2)),%data(3)=$g(%mmmsqld(4)),%data(0)=$g(%mmmsqld(6)),%data(4)=$g(%m
mmsqld(8))
d
%update^xobw.WebServicesAuthorized.T1(%mmmsqld(9),$c(0,2,0,0,1),.%data,,'$g(%mmmsqlTS))
i 'SQLCODE i $i(%mmmsqld(12))'<$g(%0CacheRowLimit,9223372036854775807) d:%mmmsqld(21)=1
%ReleaseLock^xobw.WebServicesAuthorized.T1(%mmmsqld(9)) g %0Fc
%0FCdun
d:%mmmsqld(21)=1 %ReleaseLock^xobw.WebServicesAuthorized.T1(%mmmsqld(9)) g:SQLCODE<0
%0Fc
%0FBdun
%0FAdun
%0Fc s %ROWCOUNT=$s($g(SQLCODE)'<0:+$g(%mmmsqld(12)),1:0)
If $zu(115,1),$g(%mmmsqlTS) { TCOMMIT:SQLCODE'<0 TROLLBACK:SQLCODE<0 1 }
TCOMMIT:SQLCODE=100&&(%ROWCOUNT=0)&&($g(%mmmsqlTS2))&&($zu(115,1)=2) q
%0Ferr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) d:$g(%mmmsqld(21))=1
%ReleaseLock^xobw.WebServicesAuthorized.T1(%mmmsqld(9)) g %0Fc
%SaveDirect(id="",idList="",data,concurrency=-1) public {
QUIT $$Error^%apiOBJ(5758,"%Persistent::%SaveDirect") }
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
If $get(%objTX2(+%this)) { Set partial = 1 } ElseIf ('partial) { Set %objTX2(+%this)
= 1 }
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
If $zobjval(,/*webServerRef*/5,0,3,4)'="" {
Set:'$data(%objTX(1,+$zobjval(,/*webServerRef*/5,0,3,4),1))
%objTX(1,+$zobjval(,/*webServerRef*/5,0,3,4))=$zobjval(,/*webServerRef*/5,0,3,4),%objTX(1
,+$zobjval(,/*webServerRef*/5,0,3,4),1)=..webServerRefGetObject(1),%objTX(1,+$zobjval(,/*
webServerRef*/5,0,3,4),6)=1 Set
$zobjval(,/*webServerRef*/4,0,3,4)=$listget(%objTX(1,+$zobjval(,/*webServerRef*/5,0,3,4),
1)) }
If $zobjval(,/*webServerRef*/4,0,3,4)="" Quit
$$Error^%apiOBJ(5659,"xobw.WebServicesAuthorized"_"::"_"webServerRef")
s:$g(%objtxSTATUS)=2 %objtxLIST(+%this)=%this
Set id=$listget(serial),sc=..%SaveData(.id) If ('sc) { Ztrap "SO" }
Set serial=(..%Oid())
If 'partial { Set %objTX2(+%this) = 0 }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
If 'partial { Set %objTX2(+%this) = 0 }
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set
serial=..%Oid(),%objTX(1,intOref)=%this,%objTX(1,intOref,1)=serial,%objTX(1,intOref,6)=1
If (serial '= "") && (depth<2) Quit 1
Set tDepth=$select(depth'=2:depth,1:1)
Set Poref=$zobjval(,5,0) If Poref'="" {
If '$data(%objTX(1,+Poref)) Set sc=Poref.%AddToSaveSet(tDepth) Goto:('sc) exit
If $get(%objTX(1,+Poref,1))="" Set
%objTX(1,+Poref,3,intOref)="",%objTX(1,intOref,2,+Poref)=""
}
If ..%ObjectModified() Set %objTX(2,intOref)=1
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%SortBegin(idxlist="",excludeunique=0) public {
Quit 1 }
%SortEnd(idxlist="",commit=1) public {
Quit 1 }
%UnlockExtent(shared=0,immediate=0) public {
Quit
$Select($$%ReleaseTableLock^xobw.WebServicesAuthorized.T1(shared,immediate):1,1:$$Error^%
apiOBJ(5540,SQLCODE,%msg)) }
%UnlockId(id,shared=0,immediate=0) public {
Do %ReleaseLock^xobw.WebServicesAuthorized.T1(id,shared,immediate)
Quit 1 }
%UpgradeConcurrency(%this,concurrency=0) public {
If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit
$$Error^%apiOBJ(5828)
Set current=$zobjval(,/*%Concurrency*/1,0,3,1)
Quit:concurrency'>current 1
If concurrency<3 Set
modflag=$zobjmod(,0),$zobjval(,/*%Concurrency*/1,0,3,1)=concurrency Set:modflag=0
$zobjmod(,0)=0 Quit 1
Set sc=..%AcquireLock($select(concurrency=3:"s",1:"e")) Quit:('sc) sc
If current=3 Do ..%ReleaseLock("s")
Set modflag=$zobjmod(,0),$zobjval(,/*%Concurrency*/1,0,3,1)=concurrency
Set:modflag=0 $zobjmod(,0)=0
Quit 1 }
%ValidateObject(%this,force=0)
New iv,sc,rc Set sc=1
If $zobjval(,/*webServerRef*/5,0,3,4)="",$zobjval(,/*webServerRef*/4,0,3,4)="" Set
rc=$$Error^%apiOBJ(5659,"xobw.WebServicesAuthorized"_"::"_"webServerRef"_"("_%this_",ID="
_..%Id()_")"),sc=$select(+sc:rc,1:$$AppendStatus^%occSystem(sc,rc))
If '(..%IsModified()) Quit 1
Set iv=$zobjval(,/*ien*/2,0,3,2) If iv="" Set
rc=$$Error^%apiOBJ(5659,"xobw.WebServicesAuthorized"_"::"_"ien"_"("_%this_",ID="_..%Id()_
")"),sc=$select(+sc:rc,1:$$AppendStatus^%occSystem(sc,rc))
If $zobjmod(,3) Set iv=$zobjval(,/*status*/3,0,3,3) If iv'="" Set
rc=(..statusIsValid(iv)) If ('rc) Set sc=$$xEmbedErr(sc,rc,5802,"status",iv)
Quit sc
xEmbedErr(sc,rc,errcode,loc,val) { Set
rc=$$EmbedError^%apiOBJ(rc,errcode,"xobw.WebServicesAuthorized"_":"_loc,val) Quit
$select(+sc:rc,1:$$AppendStatus^%occSystem(sc,rc)) }
Quit
zXMLDTD(top,format,input,dtdlist)
Quit
##class(%XML.Implementation).XMLDTD("xobw.WebServicesAuthorized",.top,.format,.input,.dtd
list)
zXMLExport(%this,top,format,namespaces,attrs,createId,typeAttr,oreflist,idlist,initialInd
ent,local,mimeAttachments)
New
sc,val,aval,key,k,first,len,id,temp,temp1,fmt,topPrefix,topAttrs,typesPrefix,beginprefix,
endprefix,attrsPrefix,soapPrefix,schemaPrefix,xsiPrefix,xsiAttrs,ignoreNull,indentFlag,in
dentChars,currentIndent,initialCR,type,inlineFlag,deepFlag,tmpPrefix,tag,prefixDepth,xsit
ype,nocycle,hasNoContent,hasElement,usePrefix,encoded,soap12
Set sc=1,$ztrap="XMLExportTrap"
Set
fmt=$zcvt($get(format),"L"),encoded=$case($piece(fmt,",",1),"":0,"literal":0,"encoded":1,
"encoded12":1,:"")
If encoded="" Quit $$Error^%apiOBJ(6231,fmt)
Set soap12=encoded&&($piece(fmt,",",1)="encoded12")
Set ignoreNull=0
Set indentFlag=(fmt["indent")
Set inlineFlag=(fmt["inline")
Set deepFlag=(fmt'["shallow")
Set nocycle=(fmt["nocyclecheck")
Set currentIndent=$get(initialIndent)
If indentFlag {
Set indentChars=$piece($piece(fmt,"indent(",2),")",1) If indentChars="" Set
indentChars=" "
Set initialCR=($extract(currentIndent,1,2)=$c(13,10))
} Else {
Set (indentChars,currentIndent)=""
}
Set fmt=$piece(fmt,",",1)
If indentFlag Set fmt=fmt_",indent("_indentChars_")"
If inlineFlag Set fmt=fmt_",inline"
If 'deepFlag Set fmt=fmt_",shallow"
If nocycle Set fmt=fmt_",nocyclecheck"
Set mimeAttachments=$get(mimeAttachments)
Set id=$get(createId)
Set temp=""
If 'nocycle&&('encoded||inlineFlag) {
If $data(oreflist(%this)) Quit $$Error^%apiOBJ(6296,"xobw.WebServicesAuthorized")
Set oreflist(%this)=""
}
Set namespaces=$get(namespaces)
Set tag=$get(top)
If $IsObject(namespaces) {
Set
sc=namespaces.PushNodeForExport("",$get(local,0),(encoded||(($get(typeAttr)'="")&&(typeAt
tr'="xobw.WebServicesAuthorized"))),"",.topPrefix,.topAttrs,.typesPrefix,.attrsPrefix,.so
apPrefix,.schemaPrefix,.xsiPrefix,.xsiAttrs,.usePrefix)
If 'sc Quit sc
Set beginprefix=$select(namespaces.ElementQualified&&usePrefix:typesPrefix,1:"")
If xsiAttrs'="" Set xsiAttrs=" "_xsiAttrs
If topAttrs'="" Set temp=temp_" "_topAttrs
If tag="" Set tag="WebServicesAuthorized"
Set xsitype=namespaces.OutputTypeAttribute
} Else {
Set typesPrefix=namespaces If (typesPrefix'="")&&($extract(typesPrefix,*)'=":") Set
typesPrefix=typesPrefix_":"
Set (topPrefix,attrsPrefix,topAttrs,beginprefix)=""
Set soapPrefix="SOAP-ENC:"
Set schemaPrefix="s:"
Set xsiPrefix=$select(encoded:"xsi:",1:"d5p1:")
Set xsiAttrs=$select(encoded:"",1:" xmlns:d5p1=""http://www.w3.org/2001/XMLSchemainstance""")
If tag="" Set tag=typesPrefix_"WebServicesAuthorized"
Set xsitype=0
}
Set local=+$get(local)
If (($get(typeAttr)'="")&&(typeAttr'="xobw.WebServicesAuthorized")) Set temp=temp_"
"_xsiPrefix_"type="""_typesPrefix_"WebServicesAuthorized"""_xsiAttrs,xsiAttrs=""
Set endprefix="</"_beginprefix,beginprefix="<"_beginprefix
If id'="" {
If $piece($get(idlist(+%this)),",",2)'="" Quit 1
Set idlist(+%this)=id_",1"
Set temp=" "_$select($get(soap12):soapPrefix_"id",1:"id")_"=""id"_id_""""_temp
}
If encoded Set temp=temp_xsiAttrs,xsiAttrs=""
If indentFlag Write currentIndent Set
currentIndent=$select(initialCR:"",1:$c(13,10))_currentIndent_indentChars
If tag[":" Set topPrefix=$piece(tag,":"),tag=$piece(tag,":",2) If topPrefix'="" Set
topPrefix=topPrefix_":"
Write "<"_topPrefix_tag_temp
For k=1:1:$get(attrs) Write " "_attrs(k)_"="""_$zcvt(attrs(k,0),"O","XML")_""""
Write ">"
Set val=$zobjval(,/*ien*/2,0,3,2)
If val'="" {
Write currentIndent_beginprefix_"ien"_$select(xsitype:"
"_xsiPrefix_"type="""_schemaPrefix_"string""",1:"")_">"_$select(val=$c(0):"",1:$select((v
al["<")||(val[">")||(val["&"):"<![CDATA["_$select(val["]]>":$$XMLescapeCData(val),1:val)_
"]]>",1:val))_endprefix_"ien>"
}
Set val=$zobjval(,/*status*/3,0,3,3)
If val'="" {
Write currentIndent_beginprefix_"status"_$select(xsitype:"
"_xsiPrefix_"type="""_schemaPrefix_"boolean""",1:"")_">"_..statusLogicalToXSD(val)_endpre
fix_"status>"
}
Set val=$zobjval(,/*webServiceIen*/6,0,3,6)
If val'="" {
Write currentIndent_beginprefix_"webServiceIen"_$select(xsitype:"
"_xsiPrefix_"type="""_schemaPrefix_"string""",1:"")_">"_$select(val=$c(0):"",1:$select((v
al["<")||(val[">")||(val["&"):"<![CDATA["_$select(val["]]>":$$XMLescapeCData(val),1:val)_
"]]>",1:val))_endprefix_"webServiceIen>"
}
If indentFlag Set currentIndent=$extract(currentIndent,1,*-$length(indentChars)) Write
currentIndent
Write "</"_topPrefix_tag_">" If indentFlag&&'initialCR Write ! Set
$extract(currentIndent,1,2)=""
If $IsObject(namespaces) Do namespaces.PopNode()
If 'encoded||inlineFlag {
If 'nocycle Kill oreflist(%this)
}
Quit sc
XMLExportTrap Set $ztrap=""
If $data(val) && $IsObject(val) && ($piece($ze,">",1)="<METHOD DOES NOT EXIST") {
Set sc=$$Error^%apiOBJ(6249,$zobjclass(val))
} Else {
Set sc=$$Error^%apiOBJ(5002,$ze)
}
XMLExportExit
If $IsObject(namespaces) Do namespaces.PopNode()
Quit sc
XMLescapeCData(line)
New pos Set pos=1
For Set pos=$find(line,"]]>",pos) Quit:pos=0 Set line=$extract(line,1,pos4)_"]]]]><![CDATA[>"_$extract(line,pos,*),pos=pos+11
Quit line
zXMLExportToStream(%this,export,top,format,namespaces,attrs,createId,typeAttr,oreflist,id
list,initialIndent) public {
Set io=$io
If $get(export)="" {
Set export=##class(%Library.FileCharacterStream).%New()
If $zbitget($zversion(0),1) Set export.TranslateTable="UTF8"
Set filestream=1
} Else {
Set filestream = ($zobjclass(export)="%Library.FileCharacterStream")
}
If filestream {
Set stream=export
} Else {
Set stream=##class(%Library.FileCharacterStream).%New()
If $zbitget($zversion(0),1) Set stream.TranslateTable="UTF8"
}
Set sc=stream.Write("") ; force stream's file to open
If (+sc) {
Set file=stream.Filename ; get filename and make current device
Use file
Set
sc=..XMLExport(.top,.format,.namespaces,.attrs,.createId,.typeAttr,.oreflist,.idlist,.ini
tialIndent)
// Don't Close file to leave stream positioned
Use io
}
// Need to ensdure that LineTerminator is correct for the platform
If (+sc) Set
stream.LineTerminator=$select(($zversion(1)=3):$char(10),1:$char(13,10))
If filestream || ('sc) Quit sc
Set sc=export.CopyFrom(stream)
Quit sc }
zXMLExportToString(%this,export,top,format,namespaces,attrs,createId,typeAttr,oreflist,id
list,initialIndent) public {
Set tSC=1,tIO=$IO,tXDEV="|XDEV|"_$JOB,$ZT="Trap"
Do {
/// For $$$IsUnicode use UTF-8
Open tXDEV:($ZF(6,1029,12):"":"S":/HOSTNAME="XSLT":/IOT=$S(($zcvt($get(format),"L")[",utf8")||$zbitget($z
version(0),1):"UTF8",1:"RAW"):/IBU=16384:/OBU=16384)
Use tXDEV
// Export to the XDEV buffer
Set tSC =
..XMLExport(.top,.format,.namespaces,.attrs,.createId,.typeAttr,.oreflist,.idlist,.initia
lIndent)
Quit:('tSC)
// Flush any remaining output
Write *-3
// Now read back a string (up to the maximum possible length, 32k or ~4MB for
long strings)
Set export = ""
While (1) {
Read tChunk:0
Quit:'$L(tChunk)
Set export = export _ tChunk
}
} While (0)
Exit
Close tXDEV
Use tIO
Quit tSC
Trap
Set
$ZT="",tSC=$S($ZE["<MAXSTRING>":$$Error^%apiOBJ(6279),1:$$Error^%apiOBJ(5002,$ZE))
Goto Exit }
zXMLGetSchemaImports(imports,classes)
Quit
##class(%XML.Implementation).XMLGetSchemaImports("xobw.WebServicesAuthorized",.imports,.c
lasses)
zXMLImport(%this,top,format,namespace,handler,node,idlist,keynameattr,mimeAttachments)
New
tree,child,ref,loopref,pairref,data,aval,element,key,tag,id,sc,exists,tmp,tmpi,tmpns,clas
s,sublist,fmt,nsIndex,akeyname,part,partsById,encoded,encodedArray,SOAP12ENCns
Set SOAP12ENCns="http://www.w3.org/2003/05/soap-encoding"
Set sc=1
Set $ztrap="XMLImportTrap"
Set tree=handler.DocumentId
Set
fmt=$zcvt($get(format),"L"),encoded=$case($piece(fmt,",",1),"":0,"literal":0,"encoded":1,
"encoded12":1,:"")
If encoded="" Quit $$Error^%apiOBJ(6231,fmt)
Set fmt=$piece(fmt,",",1)
Set nsIndex=$select($get(namespace)="":"",1:$get(@tree@("ns",namespace)))
Set mimeAttachments=$get(mimeAttachments)
If mimeAttachments'="" {
For tmp=1:1:mimeAttachments.Count() {
Set part=mimeAttachments.GetAt(tmp)
If part.ContentId'="" Set partsById(part.ContentId)=part.Body
}
}
Set tag=$get(top)
If tag="" Set tag="WebServicesAuthorized"
If (@tree@(node,"t")'="e")||(tag'=@tree@(node)) Set ref=node Goto XMLImportMalformed
If encoded {
If $data(@tree@(node,"a","id")) Set idlist(node)=%this
}
If $get(@tree@(node,"nil"),0) Quit 1
Set sc=$$XMLImportElements(node)
XMLImportExit Quit sc
XMLImportElements(node)
Set child=""
XMLLOOP For { Set child=$order(@tree@(node,"c",child)) If
(child="")||(@tree@(child,"t")'="w") Quit }
If child="" Quit sc
Set tag=@tree@(child)
Set ref=child
If @tree@(ref,"t")'="e" Goto XMLImportMalformedNoTag
If tag="ien" {
If ($get(namespace)'="")&&'$case(@tree@(ref,"u"),"":1,nsIndex:1,:0) Goto XMLImportNS
Set exists("ien")=1
If encoded&&$$XMLImportId() {
Set data=idlist(ref)
} Else { Goto:'sc XMLImportExit
If $get(@tree@(ref,"nil"),0) { Set data=""
} Else {
Set data=$order(@tree@(ref,"c",""))
If $order(@tree@(ref,"c",data))'="" {
Set data="" If
'##class(%XML.ImportHandler).SerializeNode(tree,ref,0,0,.data) Goto XMLImportErr
} ElseIf data'="" { Goto:@tree@(data,"t")="e" XMLImportErr Set
data=@tree@(data) }
If data="" Set data=$c(0)
}
If encoded&&($data(@tree@(ref,"a","id"))) Set idlist(ref)=data
}
Set $zobjval(,/*ien*/2,0,3,2)=data
Goto XMLLOOP }
If tag="status" {
If ($get(namespace)'="")&&'$case(@tree@(ref,"u"),"":1,nsIndex:1,:0) Goto XMLImportNS
If encoded&&$$XMLImportId() {
Set data=idlist(ref)
} Else { Goto:'sc XMLImportExit
If $get(@tree@(ref,"nil"),0) { Set data=""
} Else {
Set data=$order(@tree@(ref,"c",""))
If $order(@tree@(ref,"c",data))'="" {
Set data="" Goto XMLImportErr
} ElseIf data'="" { Goto:@tree@(data,"t")="e" XMLImportErr Set
data=@tree@(data) }
Set data=$zstrip(data,"<>W",$c(13,10)) If data'="" Set
data=..statusXSDToLogical(data) Goto:data="" XMLImportErr Goto:('..statusIsValid(data))
XMLImportErr
}
If encoded&&($data(@tree@(ref,"a","id"))) Set idlist(ref)=data
}
Set $zobjval(,/*status*/3,0,3,3)=data
Goto XMLLOOP }
If tag="webServiceIen" {
If ($get(namespace)'="")&&'$case(@tree@(ref,"u"),"":1,nsIndex:1,:0) Goto XMLImportNS
If encoded&&$$XMLImportId() {
Set data=idlist(ref)
} Else { Goto:'sc XMLImportExit
If $get(@tree@(ref,"nil"),0) { Set data=""
} Else {
Set data=$order(@tree@(ref,"c",""))
If $order(@tree@(ref,"c",data))'="" {
Set data="" If
'##class(%XML.ImportHandler).SerializeNode(tree,ref,0,0,.data) Goto XMLImportErr
} ElseIf data'="" { Goto:@tree@(data,"t")="e" XMLImportErr Set
data=@tree@(data) }
If data="" Set data=$c(0)
}
If encoded&&($data(@tree@(ref,"a","id"))) Set idlist(ref)=data
}
Set $zobjval(,/*webServiceIen*/6,0,3,6)=data
Goto XMLLOOP }
Goto XMLImportBadTag
XMLImportBadTag Quit $$Error^%apiOBJ(6237,tag_$$XMLImportLocation(ref))
XMLImportBadType Quit $$Error^%apiOBJ(6277,class,@tree@(ref)_$$XMLImportLocation(ref))
XMLImportErr
Set data=$order(@tree@(ref,"c",""))
If (data'="") {
If @tree@(data,"t")'="e" {
Quit
$$Error^%apiOBJ(6232,@tree@(ref)_$$XMLImportLocation(ref),$extract(@tree@(data),1,200))
} Else {
Quit $$Error^%apiOBJ(6253,@tree@(ref)_$$XMLImportLocation(ref),@tree@(data))
}
} Else {
Quit $$Error^%apiOBJ(6252,@tree@(ref)_$$XMLImportLocation(ref))
}
XMLImportIdErr Set sc=$$Error^%apiOBJ(6236,id,@tree@(ref)_$$XMLImportLocation(ref)) Quit
sc
XMLImportMalformed Set sc=$$Error^%apiOBJ(6233,@tree@(ref)_$$XMLImportLocation(ref)) Quit
sc
XMLImportMalformedNoTag Set
node=$get(@tree@(ref,"p")),sc=$$Error^%apiOBJ(6254,@tree@(ref),@tree@(node)_$$XMLImportLo
cation(node)) Quit sc
XMLImportNS Set sc=$$Error^%apiOBJ(6235,@tree@(ref)_$$XMLImportLocation(ref)) Quit sc
XMLImportLocation(node) new msg,loc
Set loc=$get(@tree@(node,"l"))
If loc="" Quit ""
Set
msg=$get(^%qCacheMsg("%ObjectErrors",$s(""'="":$zcvt("","L"),1:$get(^||%Language,"en")),"
XMLImportLocation")," (%1,%2)")
Quit $$FormatText^%occMessages(msg,$listget(loc,1),$listget(loc,2))
XMLImportTrap Set $ztrap=""
If $ZE["<CLASS DOES NOT EXIST>" Goto XMLImportBadTag
Quit $$Error^%apiOBJ(5002,$ZE)
XMLImportId() ;
If $data(@tree@(ref,"a","href")) {
Set id=$get(@tree@(ref,"a","href"))
If $extract(id)="#" {
Set tmp=$get(@tree@("id",$extract(id,2,*))) If tmp="" Goto XMLImportIdErr
Set ref=tmp
}
} ElseIf $data(@tree@(ref,"a","ref")) &&
($select($get(@tree@(ref,"a","ref","u"))="":"",1:$get(@tree@("ns#",^("u"))))=SOAP12ENCns)
{
Set id=$get(@tree@(ref,"a","ref"))
Set tmp=$get(@tree@("id",id)) If tmp="" Goto XMLImportIdErr
Set ref=tmp
} ElseIf '$data(@tree@(ref,"a","id")) {
Quit 0
}
Quit $data(idlist(ref))
zXMLImportAttributes(%this,tree,node,ignoreNull,keynameattr)
;
Quit 1
XMLImportAttrErr Quit
$$Error^%apiOBJ(6260,ref,$get(@tree@(node,"a",ref)),@tree@(node)_$$XMLImportAttrLocation(
node))
XMLImportAttrLocation(node) new msg,loc
Set loc=$get(@tree@(node,"l"))
If loc="" Quit ""
Set
msg=$get(^%qCacheMsg("%ObjectErrors",$s(""'="":$zcvt("","L"),1:$get(^||%Language,"en")),"
XMLImportLocation")," (%1,%2)")
Quit $$FormatText^%occMessages(msg,$listget(loc,1),$listget(loc,2))
zXMLIsObjectEmpty(%this,ignoreNull)
If $zobjval(,/*ien*/2,0,3,2)'="" Quit 0
If $zobjval(,/*status*/3,0,3,3)'="" Quit 0
If $zobjval(,/*webServiceIen*/6,0,3,6)'="" Quit 0
Quit 1
zXMLNew(document,node,containerOref="")
Quit (##class(xobw.WebServicesAuthorized).%New())
zXMLSchema(top="",format="",namespacePrefix="",input=0,refOnly=0,schema)
Quit
##class(%XML.Implementation).XMLSchema("xobw.WebServicesAuthorized",top,format,namespaceP
refix,input,refOnly,.schema)
zXMLSchemaNamespace() public {
Quit ""
}
zgetAuthorizedWebServiceId(webServer,webServiceMetadata) public {
set id=+$order(^XOB(18.12,webServer.ien,100,"B",webServiceMetadata.ien,""))
if (id) {
set id = webServer.ien_"||"_id
}
quit id }
%ConcurrencyIsValid(value) public {
Quit 1 }
zienDisplayToLogical(%val)
Quit %val
zienIsValid(%val)
Quit 1
zienLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
zienLogicalToOdbc(%val)
Quit %val
zienNormalize(%val)
Quit $e(%val,1,50)
zstatusDisplayToLogical(%val="")
Quit ''%val
zstatusIsValid(%val="")
Quit $select($isvalidnum(%val,0,0,2)&&(+%val'=2):1,1:$$Error^%apiOBJ(7206,%val))
zstatusLogicalToDisplay(%val="")
Quit %val
zstatusLogicalToXSD(%val)
Quit $select(%val:"true",1:"false")
zstatusNormalize(%val)
Quit %val\1
zstatusXSDToLogical(%val)
Quit $case(%val,"true":1,"false":0,1:1,0:0,:"")
zwebServerRefGetObject(%this,force=0) public {
Quit
$select($zobjval(,/*webServerRef*/5,0,3,4)=""||($zobjval(,/*webServerRef*/4,0,3,4)'=""):$
select($zobjval(,/*webServerRef*/4,0,3,4)="":"",1:$listbuild($zobjval(,/*webServerRef*/4,
0,3,4)_"")),(+..webServerRef.%GetSwizzleObject(force,.oid)):oid,1:"") }
zwebServerRefGetObjectId(%this,force=0) public {
Quit $listget(..webServerRefGetObject(force)) }
zwebServerRefGetSwizzled(%this) public {
If $zobjval(,/*webServerRef*/5,0,3,4)'="" Quit $zobjval(,/*webServerRef*/5,0,3,4)
Set
oid=$select($zobjval(,/*webServerRef*/4,0,3,4)="":"",1:$listbuild($zobjval(,/*webServerRe
f*/4,0,3,4)_""))
Set oref=##class("xobw.WebServer").%Open(oid) If oref="" Quit ""
Set $zobjval(,/*webServerRef*/5,0,0,4)=oref,$zobjmods(,4)=1,$zobjmods(,5)=1
Do oref.authorizedWebServicesRelate(%this)
Quit oref }
zwebServerRefIsModified(%this) public {
Quit $zobjmod(,4) }
zwebServerRefIsValid(value) public {
Quit 1 }
zwebServerRefNewObject(%this) public {
Set newobject=##class("xobw.WebServer").%New("") If newobject="" Quit ""
Set ..webServerRef=newobject
Do ..webServerRef.authorizedWebServicesRelate(%this)
Quit newobject }
zwebServerRefRExec(%qHandle,inverse) [ SQLCODE,c1,inverse ] public { New SQLCODE,c1
Set %qHandle=$increment(%objcn)
Do %R830o
If SQLCODE Quit $$Error^%apiOBJ(5821,"SQLCODE = "_SQLCODE)
Quit 1 }
zwebServerRefRClose(%qHandle) [ SQLCODE,c1,inverse ] public { New SQLCODE,c1,inverse
New SQLCODE
Do %R830c
Kill
%objcsc(%qHandle),%objcsp(%qHandle),%objcss(%qHandle),%objcst(%qHandle),%objcsl(%qHandle)
,%objcsR(%qHandle),%objcsZ(%qHandle),%objcsd(%qHandle)
Quit 1 }
zwebServerRefRFetch(%qHandle,FetchCount=0,RowSet,ReturnCount,AtEnd) [ SQLCODE,c1,inverse
] public { New SQLCODE,c1,inverse
Set RowSet="",ReturnCount=0,AtEnd=0
For {
Do %0Lo
If 'SQLCODE { Set RowSet=RowSet_$lb(c1),ReturnCount=ReturnCount+1
Quit:ReturnCount=FetchCount||(($length(RowSet)+($length(RowSet)\ReturnCount))>24000) }
Else { Set AtEnd=1 Quit }
}
Quit 1 }
q
%R830o s $zt="%R830E" s SQLCODE=$s($g(%objcsc(%qHandle)):-101,1:0) q:SQLCODE'=0 s
%objcsd(%qHandle,7)=0 s %objcsd(%qHandle,8)=0,%objcsd(%qHandle,9)=""
s %objcsd(%qHandle,3)=$g(inverse)
s %objcsc(%qHandle)=1 q
%R830E s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) k
%objcsd(%qHandle),%objcsc(%qHandle) q
%0Hfirst
; asl MOD# 2
s %objcsd(%qHandle,2)=%objcsd(%qHandle,3)
i %objcsd(%qHandle,2)="" g %0HBdun
s %objcsd(%qHandle,5)=0
%0HBk1 s %objcsd(%qHandle,5)=$o(^XOB(18.12,%objcsd(%qHandle,2),100,%objcsd(%qHandle,5)))
i '+%objcsd(%qHandle,5) g %0HBdun
i %objcsd(%qHandle,5)="" g %0HBdun
s %objcsd(%qHandle,1)=(%objcsd(%qHandle,2))_"||"_(%objcsd(%qHandle,5))
g:$zu(115,2)=0 %0HBuncommitted i $zu(115,2)=1 l
+^XOB(18.12,$p(%objcsd(%qHandle,1),"||",1),100,$p(%objcsd(%qHandle,1),"||",2))#"S":$zu(11
5,4) i $t { s
%objcsd(%qHandle,8)=1,%objcsd(%qHandle,9)=$name(^XOB(18.12,$p(%objcsd(%qHandle,1),"||",1)
,100,$p(%objcsd(%qHandle,1),"||",2)))_"#""SI""" } else { s SQLCODE=-114,%msg="Unable to
acquire shared lock on table xobw.WebServicesAuthorized for RowID value:
"_%objcsd(%qHandle,1) ztrap "LOCK" }
; asl MOD# 3
s
%objcsd(%qHandle,6)=$p(%objcsd(%qHandle,1),"||"),%objcsd(%qHandle,5)=$p(%objcsd(%qHandle,
1),"||",2)
i
%objcsd(%qHandle,6)'="",%objcsd(%qHandle,5)'="",$d(^XOB(18.12,%objcsd(%qHandle,6),100,%ob
jcsd(%qHandle,5)))
e g %0HCdun
s %objcsd(%qHandle,2)=$p(%objcsd(%qHandle,1),"||")
%0HBuncommitted ;
s:$g(SQLCODE)'<0 SQLCODE=0 s
%objcsd(%qHandle,7)=%objcsd(%qHandle,7)+1,%ROWCOUNT=%objcsd(%qHandle,7),%ROWID=%objcsd(%q
Handle,1),%objcsc(%qHandle)=10 q
%R830f i '$g(%objcsc(%qHandle)) { s SQLCODE=-102 q } i %objcsc(%qHandle)=100 { s
SQLCODE=100 q } s SQLCODE=0
s $zt="%0Herr" i $d(%0CacheRowLimit)#2,$g(%objcsd(%qHandle,7))'<%0CacheRowLimit { s
SQLCODE=100,%ROWCOUNT=%objcsd(%qHandle,7),%objcsc(%qHandle)=100 q } g
%0Hfirst:%objcsc(%qHandle)=1
%0HCdun i $zu(115,2)=1,$g(%objcsd(%qHandle,8))=1 { l -@%objcsd(%qHandle,9) s
%objcsd(%qHandle,8)=0 }
g %0HBk1
%0HBdun
%0HAdun
s %ROWCOUNT=%objcsd(%qHandle,7),SQLCODE=100,%objcsc(%qHandle)=100 q
%R830c i '$g(%objcsc(%qHandle)) { s SQLCODE=-102 q } s
%ROWCOUNT=$s($g(SQLCODE)'<0:+$g(%objcsd(%qHandle,7)),1:0)
i $zu(115,2)=1,$g(%objcsd(%qHandle,8))=1 { l -@%objcsd(%qHandle,9) } k
%objcsd(%qHandle),%objcsc(%qHandle) s SQLCODE=0 q
%0Herr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) s %objcsc(%qHandle)=100 q
%0Lo d %R830f q:SQLCODE'=0
s c1=%objcsd(%qHandle,1)
q
zwebServerRefRelate(%this,oref) public {
If $zobjval(,/*webServerRef*/5,0,3,4)=oref Quit 1
If
$zobjval(,/*webServerRef*/4,0,3,4)'="",$listget($zobjval(oref,0,,,,3))=$zobjval(,/*webSer
verRef*/4,0,3,4) Set
$zobjval(,/*webServerRef*/5,0,0,4)=oref,$zobjmods(,4)=1,$zobjmods(,5)=1 Quit 1
If $zobjval(,/*webServerRef*/5,0,3,4)'="" Do
..webServerRefUnRelate($zobjval(,/*webServerRef*/5,0,3,4))
Set $zobjval(,/*webServerRef*/5,0,3,4)=oref
Quit 1 }
zwebServerRefSet(%this,newvalue) public {
If newvalue'="",'$isobject(newvalue) Quit $$Error^%apiOBJ(5807,newvalue)
If newvalue'="",$zobjval(,/*webServerRef*/5,0,3,4)=newvalue Quit 1
If $zobjval(,/*webServerRef*/5,0,3,4)'="" Do
..webServerRef.authorizedWebServicesUnRelate(%this)
Set
$zobjval(,/*webServerRef*/5,0,3,4)=newvalue,$zobjval(,/*webServerRef*/4,0,3,4)="",$zobjmo
ds(,5)=1
If newvalue'="" Do ..webServerRef.authorizedWebServicesRelate(%this)
Quit 1 }
zwebServerRefSetModified(%this,newvalue) public {
Set $zobjmod(,4)=newvalue Quit 1 }
zwebServerRefSetObject(%this,newvalue) public {
If $zobjval(,/*webServerRef*/5,0,3,4)="" Set
$zobjval(,/*webServerRef*/4,0,3,4)=$listget(newvalue) Quit 1
Set sc=..webServerRef.%GetSwizzleObject(0,.oid) Quit:('sc) sc
If newvalue'="",oid=newvalue Quit 1
Do ..webServerRef.authorizedWebServicesUnRelate(%this) Set
$zobjval(,/*webServerRef*/5,0,3,4)="",$zobjval(,/*webServerRef*/4,0,3,4)=$listget(newvalu
e),$zobjmods(,5)=1 Quit 1
}
zwebServerRefSetObjectId(%this,newid) public {
Quit ..webServerRefSetObject($select(newid="":"",1:$listbuild(newid_""))) }
zwebServerRefUnRelate(%this,oref) public {
If $zobjval(,/*webServerRef*/5,0,3,4)=oref Set
$zobjval(,/*webServerRef*/5,0,3,4)="",$zobjval(,/*webServerRef*/4,0,3,4)="" Quit 1
If $zobjval(,/*webServerRef*/5,0,3,4)'="" Quit $$Error^%apiOBJ(5499)
Set $zobjval(,/*webServerRef*/4,0,3,4)=""
Quit 1 }
zwebServerRefUnSwizzle(%this,force=0) public {
Quit:$zobjval(,/*webServerRef*/5,0,3,4)="" 1
Set modbit=$zobjmod(,4)
Set sc=..webServerRef.%GetSwizzleObject(force,.newvalue) Quit:('sc) sc
Set
$zobjval(,/*webServerRef*/4,0,3,4)=$listget(newvalue),$zobjval(,/*webServerRef*/5,0,3,4)=
""
Set $zobjmod(,4)=modbit,$zobjmods(,5)=1
Quit 1 }
zExtentExecute(%qHandle) [ SQLCODE,c1 ] public { New SQLCODE,c1
Set sc=1
s %qHandle=$i(%objcn)
Do %Q360o
If 'SQLCODE { Set sc=1 } Else { Set:$isobject($g(%sqlcontext))
%sqlcontext.SQLCode=SQLCODE,%sqlcontext.Message=$g(%msg) Set
sc=$$Error^%apiOBJ(5821,"SQLCODE = "_SQLCODE) }
Quit sc }
zExtentClose(%qHandle) [ SQLCODE,c1 ] public { New SQLCODE,c1
Do %Q360c
Kill
%objcsc(%qHandle),%objcsp(%qHandle),%objcss(%qHandle),%objcst(%qHandle),%objcsl(%qHandle)
,%objcsR(%qHandle),%objcsZ(%qHandle),%objcsd(%qHandle)
If 'SQLCODE { Set sc=1 } Else { Set:$isobject($g(%sqlcontext))
%sqlcontext.SQLCode=SQLCODE,%sqlcontext.Message=$g(%msg) Set
sc=$$Error^%apiOBJ(5540,SQLCODE,$get(%msg)) }
Quit sc }
zExtentFetch(%qHandle,Row,AtEnd=0) [ SQLCODE,c1 ] public { New SQLCODE,c1
Set Row="",AtEnd=0
Do %0Ro
If 'SQLCODE { Set Row=$lb(c1) Set sc=1 } ElseIf SQLCODE=100 { Set AtEnd=1,sc=1
Set:$isobject($g(%sqlcontext))
%sqlcontext.SQLCode=SQLCODE,%sqlcontext.RowCount=$g(%ROWCOUNT) } Else {
Set:$isobject($g(%sqlcontext)) %sqlcontext.SQLCode=SQLCODE,%sqlcontext.Message=$g(%msg)
Set AtEnd=1,sc=$$Error^%apiOBJ(5540,SQLCODE,$get(%msg)) }
Quit sc }
zExtentFetchRows(%qHandle,FetchCount=0,RowSet,ReturnCount,AtEnd) [ SQLCODE,c1 ] public {
New SQLCODE,c1
Set RowSet="",ReturnCount=0,AtEnd=0
For {
Do %0So
If 'SQLCODE { Set RowSet=RowSet_$lb(c1),ReturnCount=ReturnCount+1
Quit:(ReturnCount=FetchCount)||(($l(RowSet)+($l(RowSet)\ReturnCount))>24000) } Else { Set
AtEnd=1 Quit }
}
If 'SQLCODE { Set sc=1 } ElseIf SQLCODE=100 { Set sc=1
Set:$isobject($g(%sqlcontext))
%sqlcontext.SQLCode=SQLCODE,%sqlcontext.RowCount=$g(%ROWCOUNT) } Else {
Set:$isobject($g(%sqlcontext)) %sqlcontext.SQLCode=SQLCODE,%sqlcontext.Message=$g(%msg)
Set sc=$$Error^%apiOBJ(5540,SQLCODE,$get(%msg)) }
Quit sc }
q
%0MBs1(%val) ;
Quit $tr(%val,$c(0),"")
%Q360o s $zt="%Q360E" s SQLCODE=$s($g(%objcsc(%qHandle)):-101,1:0) q:SQLCODE'=0 s
%objcsd(%qHandle,7)=0 s %objcsd(%qHandle,8)=0,%objcsd(%qHandle,9)=""
s %objcsc(%qHandle)=1 q
%Q360E s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) k
%objcsd(%qHandle),%objcsc(%qHandle) q
%0Mfirst
; asl MOD# 2
s %objcsd(%qHandle,3)=""
%0MBk1 s %objcsd(%qHandle,3)=$o(^XOB(18.12,%objcsd(%qHandle,3)))
i %objcsd(%qHandle,3)="" g %0MBdun
s %objcsd(%qHandle,4)=0
%0MBk2 s %objcsd(%qHandle,4)=$o(^XOB(18.12,%objcsd(%qHandle,3),100,%objcsd(%qHandle,4)))
i '+%objcsd(%qHandle,4) g %0MBk1
i %objcsd(%qHandle,4)="" g %0MBk1
s %objcsd(%qHandle,1)=(%objcsd(%qHandle,3))_"||"_(%objcsd(%qHandle,4))
s
%objcsd(%qHandle,6)=$s($zu(115,5)=2:$$%0MBs1(%objcsd(%qHandle,1)),1:%objcsd(%qHandle,1))
g:$zu(115,2)=0 %0MBuncommitted i $zu(115,2)=1 l
+^XOB(18.12,$p(%objcsd(%qHandle,1),"||",1),100,$p(%objcsd(%qHandle,1),"||",2))#"S":$zu(11
5,4) i $t { s
%objcsd(%qHandle,8)=1,%objcsd(%qHandle,9)=$name(^XOB(18.12,$p(%objcsd(%qHandle,1),"||",1)
,100,$p(%objcsd(%qHandle,1),"||",2)))_"#""SI""" } else { s SQLCODE=-114,%msg="Unable to
acquire shared lock on table xobw.WebServicesAuthorized for RowID value:
"_%objcsd(%qHandle,1) ztrap "LOCK" }
; asl MOD# 3
s
%objcsd(%qHandle,5)=$p(%objcsd(%qHandle,1),"||"),%objcsd(%qHandle,4)=$p(%objcsd(%qHandle,
1),"||",2)
i
%objcsd(%qHandle,5)'="",%objcsd(%qHandle,4)'="",$d(^XOB(18.12,%objcsd(%qHandle,5),100,%ob
jcsd(%qHandle,4)))
e g %0MCdun
s
%objcsd(%qHandle,6)=$s($zu(115,5)=2:$$%0MBs1(%objcsd(%qHandle,1)),1:%objcsd(%qHandle,1))
%0MBuncommitted ;
s:$g(SQLCODE)'<0 SQLCODE=0 s
%objcsd(%qHandle,7)=%objcsd(%qHandle,7)+1,%ROWCOUNT=%objcsd(%qHandle,7),%ROWID=%objcsd(%q
Handle,1),%objcsc(%qHandle)=10 q
%Q360f i '$g(%objcsc(%qHandle)) { s SQLCODE=-102 q } i %objcsc(%qHandle)=100 { s
SQLCODE=100 q } s SQLCODE=0
s $zt="%0Merr" i $d(%0CacheRowLimit)#2,$g(%objcsd(%qHandle,7))'<%0CacheRowLimit { s
SQLCODE=100,%ROWCOUNT=%objcsd(%qHandle,7),%objcsc(%qHandle)=100 q } g
%0Mfirst:%objcsc(%qHandle)=1
%0MCdun i $zu(115,2)=1,$g(%objcsd(%qHandle,8))=1 { l -@%objcsd(%qHandle,9) s
%objcsd(%qHandle,8)=0 }
g %0MBk2
%0MBdun
%0MAdun
s %ROWCOUNT=%objcsd(%qHandle,7),SQLCODE=100,%objcsc(%qHandle)=100 q
%Q360c i '$g(%objcsc(%qHandle)) { s SQLCODE=-102 q } s
%ROWCOUNT=$s($g(SQLCODE)'<0:+$g(%objcsd(%qHandle,7)),1:0)
i $zu(115,2)=1,$g(%objcsd(%qHandle,8))=1 { l -@%objcsd(%qHandle,9) } k
%objcsd(%qHandle),%objcsc(%qHandle) s SQLCODE=0 q
%0Merr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) s %objcsc(%qHandle)=100 q
%0Ro d %Q360f q:SQLCODE'=0
s c1=%objcsd(%qHandle,6)
q
%0So d %Q360f q:SQLCODE'=0
s c1=%objcsd(%qHandle,6)
q
zExtentGetInfo(colinfo,parminfo,idinfo,%qHandle,extoption=0,extinfo) public {
s parminfo=""
s:'($d(^oddCOM("xobw.WebServicesAuthorized","q","Extent",21),clientinfo)#2)&&'$s($d(
^(2),clientinfo)#2:$d(^oddCOM(clientinfo,"q","Extent",21),clientinfo)#2||($d(^oddDEF(clie
ntinfo,"q","Extent",21),clientinfo)#2),1:$d(^oddDEF("xobw.WebServicesAuthorized","q","Ext
ent",21),clientinfo)#2) clientinfo=$g(^%qCacheObjectKey(1,"q",21))
Set:extoption
extinfo=$s($d(^oddCOM("xobw.WebServicesAuthorized","q","Extent",38))#2:^(38),$d(^oddCOM($
g(^(2),"xobw.WebServicesAuthorized"),"q","Extent",38))#2:^(38),1:$s($d(^oddDEF($g(^oddCOM
("xobw.WebServicesAuthorized","q","Extent",2),"xobw.WebServicesAuthorized"),"q","Extent",
38))#2:^(38),1:$g(^%qCacheObjectKey(1,"q",38))))
If clientinfo'="" Set
colinfo=$listget(clientinfo,1),parminfo=$listget(clientinfo,2),idinfo=$listget(clientinfo
,3) Quit 1
Set colinfo="",parminfo="",idinfo=$listbuild(0)
Set sc=$$externaltype^%apiOLE("%Library.CacheString",.exttypes,"0")
Quit:('sc) sc
s:'($d(^oddCOM("xobw.WebServicesAuthorized","q","Extent",23),names)#2)&&'$s($d(^(2),
names)#2:$d(^oddCOM(names,"q","Extent",23),names)#2||($d(^oddDEF(names,"q","Extent",23),n
ames)#2),1:$d(^oddDEF("xobw.WebServicesAuthorized","q","Extent",23),names)#2)
names=$g(^%qCacheObjectKey(1,"q",23))
s:'($d(^oddCOM("xobw.WebServicesAuthorized","q","Extent",22),captions)#2)&&'$s($d(^(
2),captions)#2:$d(^oddCOM(captions,"q","Extent",22),captions)#2||($d(^oddDEF(captions,"q"
,"Extent",22),captions)#2),1:$d(^oddDEF("xobw.WebServicesAuthorized","q","Extent",22),cap
tions)#2) captions=$g(^%qCacheObjectKey(1,"q",22))
For i=1:1:1 Set
colinfo=colinfo_$listbuild($listbuild($listget(names,i),$piece(exttypes,",",i),$listget(c
aptions,i)))
Set idinfo=$listbuild(1,"xobw.WebServicesAuthorized")
s
^oddCOM("xobw.WebServicesAuthorized","q","Extent",21)=$listbuild(colinfo,parminfo,idinfo)
Quit 1 }
zExtentGetODBCInfo(colinfo,parminfo,qHandle) public {
set version = $Select($Get(%protocol,41)>40:4,1:3)
If $Get(^oddPROC("XOBW","WEBSERVICESAUTHORIZED_EXTENT",21))'="" { Set sc = 1,
metadata=$Select(version=4:^oddPROC("XOBW","WEBSERVICESAUTHORIZED_EXTENT",12),1:^oddPROC(
"XOBW","WEBSERVICESAUTHORIZED_EXTENT",12,version)) }
ElseIf $Data(^oddPROC("XOBW","WEBSERVICESAUTHORIZED_EXTENT")) { Set sc =
$$CompileSignature^%ourProcedure("XOBW","WEBSERVICESAUTHORIZED_EXTENT",.metadata,.signatu
re) }
Else { Set sc = $$Error^%apiOBJ(5068,"xobw.WebServicesAuthorized:Extent") }
If (+sc) { Set
colcount=$li(metadata,2),cmdlen=colcount*$Case(version,4:10,:9),colinfo=$li(metadata,2,2+
cmdlen),parmcount=$li(metadata,cmdlen+3),pmdlen=parmcount*6,parminfo=$li(metadata,cmdlen+
3,cmdlen+pmdlen+3) }
Quit sc }
zExtentPrepare(qHandle,statement,containid=0,optional) public {
Quit 1 }
zExtentSendODBC(qHandle,array,qacn,%qrc,piece,ColumnCount) public {
Kill array(qacn) Set %qrc=0
SPInnerLoop Set rc=##class(xobw.WebServicesAuthorized).ExtentFetch(.qHandle,.row,.atend)
If ('rc) { Set %qrc=-400 Set:$isobject($get(%sqlcontext)) %sqlcontext.SQLCode=400,%sqlcontext.Message=$g(%msg) Do
ProcessError^%ourProcedure(rc,$get(%sqlcontext),.%qrc,.%msg) Do
Logerr^%SYS.SQLSRV(%qrc,"","SP",.%msg) Set piece=0 Quit }
If row="" Set %qrc=100,piece=0 Set:$isobject($get(%sqlcontext))
%sqlcontext.SQLCode=100 Quit 1
For piece=1:1:ColumnCount { Goto:$zobjexport($listget(row,piece),7) SPDone }
Goto SPInnerLoop
SPDone
For i=piece:1:ColumnCount { Set array(qacn,i)=$listget(row,i) }
Quit }
zienIndexCheck(K1,K2,lockonly=0) public {
s id=K1_"||"_K2,exists=##class(xobw.WebServicesAuthorized).%ExistsId(id) q:'exists
$s('lockonly:$$Error^%apiOBJ(5797,"xobw.WebServicesAuthorized","ienIndex",id),1:1) s
status=##class(xobw.WebServicesAuthorized).%LockId(id,1) q:('status) status if 'lockonly
{ s exists=##class(xobw.WebServicesAuthorized).%ExistsId(id) d
##class(xobw.WebServicesAuthorized).%UnlockId(id,1,0) quit
$s('exists:$$Error^%apiOBJ(5797,"xobw.WebServicesAuthorized","ienIndex",id),1:1) } else {
d ##class(xobw.WebServicesAuthorized).%UnlockId(id,1,0) q 1 } }
zienIndexDelete(K1,K2,concurrency=-1) public {
Quit ##class(xobw.WebServicesAuthorized).%DeleteId(K1_"||"_K2,concurrency) }
zienIndexExists(K1,K2,id="")
s id=K1_"||"_K2 q ##class(xobw.WebServicesAuthorized).%ExistsId(K1_"||"_K2)
Quit
zienIndexOpen(K1,K2,concurrency=-1,sc=1) public {
Quit ##class(xobw.WebServicesAuthorized).%OpenId(K1_"||"_K2,concurrency,.sc) }
xobw.WsdlHandler.1^INT^1^62153,34148^0^1
;xobw.WsdlHandler.1
;(C)InterSystems, generated for class xobw.WsdlHandler. Do NOT edit. 03/03/2011
09:29:08AM
;;001E28775D63F0D7;xobw.WsdlHandler
;
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
Quit sc }
%ClassName(fullname) public {
Quit $select($get(fullname,0):"xobw.WsdlHandler",1:"WsdlHandler") }
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.WsdlHandler"),cloned(+object)=%this,cloned(+object,0)=o
bject Set $zobjmod(,0)=1
Quit %this }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.WsdlHandler","%Library.RegisteredObject"),$s(isclass[".":isc
lass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,*))) }
%GetParameter(paramname="") public {
Quit $case(paramname,"PROPERTYVALIDATION":2,:"") }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.WsdlHandler","%Library.RegisteredObject"),$s(isclass[".":isc
lass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,*))) }
%IsModified(%this) public {
Quit $zobjmod(,0) }
%NormalizeObject(%this)
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%PackageName()
Quit "xobw"
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set %objTX(1,intOref)=%this,%objTX(1,intOref,1)=-1,%objTX(1,intOref,6)=4
Set tDepth=$select(depth'=2:depth,1:1)
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%ValidateObject(%this,force=0)
Quit 1
zgetInfoFromFile(wsdlFile) public {
set status = ##class(%XML.TextReader).ParseFile(wsdlFile,.reader)
if (reader '= "") {
quit ##class(xobw.WsdlHandler).parse(reader)
} else {
quit ""
} }
zgetInfoFromStream(wsdlStream) public {
set status = ##class(%XML.TextReader).ParseStream(wsdlStream,.reader)
if (reader '= "") {
quit ##class(xobw.WsdlHandler).parse(reader)
} else {
quit ""
} }
zgetInfoFromString(wsdlString) public {
set status = ##class(%XML.TextReader).ParseString(wsdlString,.reader)
if (reader '= "") {
quit ##class(xobw.WsdlHandler).parse(reader)
} else {
quit ""
} }
zparse(reader) public {
set serviceFlag=0
while ('reader.EOF && reader.Read()) {
set:((reader.NodeType = "endelement") && (reader.LocalName = "service"))
serviceFlag=0
if ((reader.NodeType = "element") && (reader.LocalName = "service")) {
set serviceFlag=1
set:reader.MoveToAttributeName("name") serviceName=reader.Value
}
elseif (serviceFlag && (reader.NodeType="element") && (reader.LocalName="port")) {
set:reader.MoveToAttributeName("name") servicePort=reader.Value
}
elseif (serviceFlag && (reader.NodeType="element") && (reader.LocalName="address"))
{
set:reader.MoveToAttributeName("location")
serviceUrl=$P(reader.Value,"/",4,999)
}
}
quit $listbuild(serviceName,servicePort,serviceUrl) }
xobw.error.AbstractError.1^INT^1^62153,34148^0^1
;xobw.error.AbstractError.1
;(C)InterSystems, generated for class xobw.error.AbstractError. Do NOT edit. 03/03/2011
09:29:08AM
;;0156EAAB993532C8;xobw.error.AbstractError
;
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
s proporef=$zobjproperty(%this,"text")
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
i AllowedDepth>0 s AllowedDepth = AllowedDepth - 1
i AllowedCapacity>0 d
. s AllowedCapacity = AllowedCapacity - 1
. s AllowedCapacity = AllowedCapacity/1
s proporef=$zobjval(%this,4,0)
i proporef'="",dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef),1:$zobjexport(proporef_"",3)
+$zobjexport($zobjval(proporef,0,,,,3),3)+$zobjexport(proporef,3))!1 u t
if proporef'="",dev'="" d
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(1),1:$zobjexport(1_"",3))!1 u t
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.Count()),1:$zobjexport(propor
ef.Count()_"",3))!1 u t
. for i=1:1:proporef.Count() s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.GetAt(i)),1:$zobjexport(propo
ref.GetAt(i)_"",3))!1 u t
Quit sc }
%ClassName(fullname) public {
Quit $select($get(fullname,0):"xobw.error.AbstractError",1:"AbstractError") }
%Construct(%this,initvalue)
Set
$zobjval(,/*code*/1,0,3,1)="",$zobjval(,/*errorType*/2,0,3,2)="",$zobjval(,/*text*/3,0,3,
3)="",$zobjval(,/*text*/4,0,3,3)=""
Set $zobjmod(,3)=0,$zobjmods(,3)=0
Quit 1
%ConstructClone(%this,deep=0,cloned,location) public {
Quit "" }
%Destruct(%this) public {
If $isobject($zobjval(,/*text*/4,0,3,3)),$zobjcnt($zobjval(,/*text*/4,0,3,3))>1 Do
$zobjval(,/*text*/4,0,3,3).%Disconnect()
Quit 1 }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.error.AbstractError","%Library.RegisteredObject"),$s(isclass
[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,*))) }
%GetParameter(paramname="") public {
Quit $case(paramname,"PROPERTYVALIDATION":2,:"") }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.error.AbstractError","%Library.RegisteredObject"),$s(isclass
[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,*))) }
%IsModified(%this) public {
Quit $zobjmod(,0) }
%NormalizeObject(%this)
Set:$zobjval(,/*code*/1,0,3,1)'=""
$zobjval(,/*code*/1,0,3,1)=(..codeNormalize($zobjval(,/*code*/1,0,3,1)))
Set:$zobjval(,/*errorType*/2,0,3,2)'=""
$zobjval(,/*errorType*/2,0,3,2)=(..errorTypeNormalize($zobjval(,/*errorType*/2,0,3,2)))
new data,key
Set key="" For Set key=$order($zobjval(,/*text*/3,0,3,3,key),1,data) Quit:key=""
Set:data'="" $zobjval(,/*text*/3,0,3,3,key)=..textNormalize(data)
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%PackageName()
Quit "xobw.error"
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set %objTX(1,intOref)=%this,%objTX(1,intOref,1)=-1,%objTX(1,intOref,6)=4
Set tDepth=$select(depth'=2:depth,1:1)
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%ValidateObject(%this,force=0)
Quit 1
zdecompose(%this,error) public {
set error("errorType")=..errorType
set error("code")=..code
set error("text")=..text.Count()
set i=""
for set x=..text.GetNext(.i) quit:i="" set error("text",i)=x
quit 1 }
zdisplay(%this) public {
write !,"Error Class: ",..%ClassName(1)
write !,"Error Code: ",..code
write !,"Error Text: "
set i=""
for set x=..text.GetNext(.i) quit:i="" write !?5,x }
zcodeDisplayToLogical(%val)
Quit %val
zcodeIsValid(%val)
Quit 1
zcodeLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
zcodeLogicalToOdbc(%val)
Quit %val
zcodeNormalize(%val)
Quit $e(%val,1,50)
ztextBuildValueArray(value,array) public {
Quit ##class(%Collection.ListOfDT).BuildValueArray(value,.array)
}
ztextDisplayToLogical(%val)
Quit %val
ztextGetSwizzled(%this) public {
Set oref=##class(%Collection.ListOfDT).%New() If oref="" Quit ""
Set $zobjval(,/*text*/4,0,0,3)=oref,$zobjmods(,3)=1,$zobjmods(,4)=1
Set
oref.ElementType="xobw.error.AbstractError:text",oref.ElementClassType="datatype",oref.Ow
ner=+%this,oref.Storage=3,oref.OrefStorage=4
Set $zobjmod(oref,0)=0
Quit oref }
ztextIsModified(%this) public {
Quit $zobjmod(,3) }
ztextIsValid(%val)
Quit 1
ztextLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
ztextLogicalToOdbc(%val)
Quit %val
ztextNormalize(%val)
Quit $e(%val,1,50)
ztextSet(%this,newvalue) public {
If '$isobject(newvalue),newvalue'="" Quit $$Error^%apiOBJ(5807,newvalue)
If $zobjval(,/*text*/4,0,3,3)=newvalue Quit 1
If newvalue="" Kill $zobjval(,/*text*/3,0,3,3),$zobjval(,/*text*/4,0,3,3) Set
$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)="",$zobjmods(,4)=1 Quit 1
Set oref=$zobjval(,/*text*/4,0,3,3) Kill
$zobjval(,/*text*/3,0,3,3),$zobjval(,/*text*/4,0,3,3) Set
$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)=oref,$zobjmods(,4)=1
Set key="" For i=1:1 Set value=newvalue.GetNext(.key) Quit:key="" Set
$zobjval(,/*text*/3,0,3,3,i)=value
Quit 1 }
ztextSetModified(%this,newvalue) public {
Set $zobjmod(,3)=newvalue Quit 1 }
xobw.error.BasicError.1^INT^1^62153,34148^0^1
;xobw.error.BasicError.1
;(C)InterSystems, generated for class xobw.error.BasicError. Do NOT edit. 03/03/2011
09:29:08AM
;;009B57F3E49CA475;xobw.error.BasicError
;
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
s proporef=$zobjproperty(%this,"text")
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
i AllowedDepth>0 s AllowedDepth = AllowedDepth - 1
i AllowedCapacity>0 d
. s AllowedCapacity = AllowedCapacity - 1
. s AllowedCapacity = AllowedCapacity/1
s proporef=$zobjval(%this,4,0)
i proporef'="",dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef),1:$zobjexport(proporef_"",3)
+$zobjexport($zobjval(proporef,0,,,,3),3)+$zobjexport(proporef,3))!1 u t
if proporef'="",dev'="" d
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(1),1:$zobjexport(1_"",3))!1 u t
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.Count()),1:$zobjexport(propor
ef.Count()_"",3))!1 u t
. for i=1:1:proporef.Count() s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.GetAt(i)),1:$zobjexport(propo
ref.GetAt(i)_"",3))!1 u t
Quit sc }
%ClassName(fullname) public {
Quit $select($get(fullname,0):"xobw.error.BasicError",1:"BasicError") }
%Construct(%this,ecode,zerror)
Set
$zobjval(,/*code*/1,0,3,1)="",$zobjval(,/*errorType*/2,0,3,2)="",$zobjval(,/*text*/3,0,3,
3)="",$zobjval(,/*text*/4,0,3,3)=""
Set $zobjmod(,3)=0,$zobjmods(,3)=0
Quit ..%OnNew(.ecode,.zerror)
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.error.BasicError"),cloned(+object)=%this,cloned(+object
,0)=object Set $zobjmod(,0)=1
Merge $zobjval(,3,0)=$zobjval(object,3,0),$zobjval(,4,0)=$zobjval(object,4,0) Set
$zobjval(,3)="",$zobjval(,4)=""
Set $zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2)
Quit %this }
%Destruct(%this) public {
If $isobject($zobjval(,/*text*/4,0,3,3)),$zobjcnt($zobjval(,/*text*/4,0,3,3))>1 Do
$zobjval(,/*text*/4,0,3,3).%Disconnect()
Quit 1 }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.error.BasicError","xobw.error.AbstractError","%Library.Regis
teredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(is
class,2,*))) }
%GetParameter(paramname="") public {
Quit $case(paramname,"ERRORTYPE":"BASIC","PROPERTYVALIDATION":2,:"") }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.error.BasicError","xobw.error.AbstractError","%Library.Regis
teredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(is
class,2,*))) }
%IsModified(%this) public {
Quit $zobjmod(,0) }
%NormalizeObject(%this)
Set:$zobjval(,/*code*/1,0,3,1)'=""
$zobjval(,/*code*/1,0,3,1)=(..codeNormalize($zobjval(,/*code*/1,0,3,1)))
Set:$zobjval(,/*errorType*/2,0,3,2)'=""
$zobjval(,/*errorType*/2,0,3,2)=(..errorTypeNormalize($zobjval(,/*errorType*/2,0,3,2)))
new data,key
Set key="" For Set key=$order($zobjval(,/*text*/3,0,3,3,key),1,data) Quit:key=""
Set:data'="" $zobjval(,/*text*/3,0,3,3,key)=..textNormalize(data)
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%OnNew(%this,ecode,zerror) public {
set $zobjval(,/*errorType*/2,0,3,2)="BASIC"
set $zobjval(,/*code*/1,0,3,1)=ecode
set x=zerror
for do ..text.Insert($extract(x,1,70)) set x=$extract(x,71,9999) quit:x=""
quit 1 }
%PackageName()
Quit "xobw.error"
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set %objTX(1,intOref)=%this,%objTX(1,intOref,1)=-1,%objTX(1,intOref,6)=4
Set tDepth=$select(depth'=2:depth,1:1)
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%ValidateObject(%this,force=0)
Quit 1
zdecompose(%this,error) public {
set error("errorType")=$zobjval(,/*errorType*/2,0,3,2)
set error("code")=$zobjval(,/*code*/1,0,3,1)
set error("text")=..text.Count()
set i=""
for set x=..text.GetNext(.i) quit:i="" set error("text",i)=x
quit 1 }
zdisplay(%this) public {
write !,"Error Class: ",..%ClassName(1)
write !,"Error Code: ",$zobjval(,/*code*/1,0,3,1)
write !,"Error Text: "
set i=""
for set x=..text.GetNext(.i) quit:i="" write !?5,x }
zcodeDisplayToLogical(%val)
Quit %val
zcodeIsValid(%val)
Quit 1
zcodeLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
zcodeLogicalToOdbc(%val)
Quit %val
zcodeNormalize(%val)
Quit $e(%val,1,50)
ztextBuildValueArray(value,array) public {
Quit ##class(%Collection.ListOfDT).BuildValueArray(value,.array)
}
ztextDisplayToLogical(%val)
Quit %val
ztextGetSwizzled(%this) public {
Set oref=##class(%Collection.ListOfDT).%New() If oref="" Quit ""
Set $zobjval(,/*text*/4,0,0,3)=oref,$zobjmods(,3)=1,$zobjmods(,4)=1
Set
oref.ElementType="xobw.error.BasicError:text",oref.ElementClassType="datatype",oref.Owner
=+%this,oref.Storage=3,oref.OrefStorage=4
Set $zobjmod(oref,0)=0
Quit oref }
ztextIsModified(%this) public {
Quit $zobjmod(,3) }
ztextIsValid(%val)
Quit 1
ztextLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
ztextLogicalToOdbc(%val)
Quit %val
ztextNormalize(%val)
Quit $e(%val,1,50)
ztextSet(%this,newvalue) public {
If '$isobject(newvalue),newvalue'="" Quit $$Error^%apiOBJ(5807,newvalue)
If $zobjval(,/*text*/4,0,3,3)=newvalue Quit 1
If newvalue="" Kill $zobjval(,/*text*/3,0,3,3),$zobjval(,/*text*/4,0,3,3) Set
$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)="",$zobjmods(,4)=1 Quit 1
Set oref=$zobjval(,/*text*/4,0,3,3) Kill
$zobjval(,/*text*/3,0,3,3),$zobjval(,/*text*/4,0,3,3) Set
$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)=oref,$zobjmods(,4)=1
Set key="" For i=1:1 Set value=newvalue.GetNext(.key) Quit:key="" Set
$zobjval(,/*text*/3,0,3,3,i)=value
Quit 1 }
ztextSetModified(%this,newvalue) public {
Set $zobjmod(,3)=newvalue Quit 1 }
xobw.error.DialogError.1^INT^1^62153,34149^0^1
;xobw.error.DialogError.1
;(C)InterSystems, generated for class xobw.error.DialogError. Do NOT edit. 03/03/2011
09:29:08AM
;;00D81801BF4379EF;xobw.error.DialogError
;
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
s proporef=$zobjproperty(%this,"text")
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
i AllowedDepth>0 s AllowedDepth = AllowedDepth - 1
i AllowedCapacity>0 d
. s AllowedCapacity = AllowedCapacity - 1
. s AllowedCapacity = AllowedCapacity/1
s proporef=$zobjval(%this,4,0)
i proporef'="",dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef),1:$zobjexport(proporef_"",3)
+$zobjexport($zobjval(proporef,0,,,,3),3)+$zobjexport(proporef,3))!1 u t
if proporef'="",dev'="" d
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(1),1:$zobjexport(1_"",3))!1 u t
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.Count()),1:$zobjexport(propor
ef.Count()_"",3))!1 u t
. for i=1:1:proporef.Count() s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.GetAt(i)),1:$zobjexport(propo
ref.GetAt(i)_"",3))!1 u t
Quit sc }
%ClassName(fullname) public {
Quit $select($get(fullname,0):"xobw.error.DialogError",1:"DialogError") }
%Construct(%this,dialogCode,errorMessage)
Set
$zobjval(,/*code*/1,0,3,1)="",$zobjval(,/*errorType*/2,0,3,2)="",$zobjval(,/*text*/3,0,3,
3)="",$zobjval(,/*text*/4,0,3,3)=""
Set $zobjmod(,3)=0,$zobjmods(,3)=0
Quit ..%OnNew(.dialogCode,.errorMessage)
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.error.DialogError"),cloned(+object)=%this,cloned(+objec
t,0)=object Set $zobjmod(,0)=1
Merge $zobjval(,3,0)=$zobjval(object,3,0),$zobjval(,4,0)=$zobjval(object,4,0) Set
$zobjval(,3)="",$zobjval(,4)=""
Set $zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2)
Quit %this }
%Destruct(%this) public {
If $isobject($zobjval(,/*text*/4,0,3,3)),$zobjcnt($zobjval(,/*text*/4,0,3,3))>1 Do
$zobjval(,/*text*/4,0,3,3).%Disconnect()
Quit 1 }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.error.DialogError","xobw.error.AbstractError","%Library.Regi
steredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(i
sclass,2,*))) }
%GetParameter(paramname="") public {
Quit $case(paramname,"ERRORTYPE":"DIALOG","PROPERTYVALIDATION":2,:"") }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.error.DialogError","xobw.error.AbstractError","%Library.Regi
steredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(i
sclass,2,*))) }
%IsModified(%this) public {
Quit $zobjmod(,0) }
%NormalizeObject(%this)
Set:$zobjval(,/*code*/1,0,3,1)'=""
$zobjval(,/*code*/1,0,3,1)=(..codeNormalize($zobjval(,/*code*/1,0,3,1)))
Set:$zobjval(,/*errorType*/2,0,3,2)'=""
$zobjval(,/*errorType*/2,0,3,2)=(..errorTypeNormalize($zobjval(,/*errorType*/2,0,3,2)))
new data,key
Set key="" For Set key=$order($zobjval(,/*text*/3,0,3,3,key),1,data) Quit:key=""
Set:data'="" $zobjval(,/*text*/3,0,3,3,key)=..textNormalize(data)
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%OnNew(%this,dialogCode,errorMessage) public {
set $zobjval(,/*errorType*/2,0,3,2)="DIALOG"
set $zobjval(,/*code*/1,0,3,1)=dialogCode
set x=errorMessage
for do ..text.Insert($extract(x,1,70)) set x=$extract(x,71,9999) quit:x=""
quit 1 }
%PackageName()
Quit "xobw.error"
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set %objTX(1,intOref)=%this,%objTX(1,intOref,1)=-1,%objTX(1,intOref,6)=4
Set tDepth=$select(depth'=2:depth,1:1)
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%ValidateObject(%this,force=0)
Quit 1
zdecompose(%this,error) public {
set error("errorType")=$zobjval(,/*errorType*/2,0,3,2)
set error("code")=$zobjval(,/*code*/1,0,3,1)
set error("text")=..text.Count()
set i=""
for set x=..text.GetNext(.i) quit:i="" set error("text",i)=x
quit 1 }
zdisplay(%this) public {
write !,"Error Class: ",..%ClassName(1)
write !,"Error Code: ",$zobjval(,/*code*/1,0,3,1)
write !,"Error Text: "
set i=""
for set x=..text.GetNext(.i) quit:i="" write !?5,x }
zforceError(dialogInfo) public {
kill %XOBWERR,%objlasterror
set %XOBWERR=dialogInfo
set $ECODE=",UXOBW," }
zcodeDisplayToLogical(%val)
Quit %val
zcodeIsValid(%val)
Quit 1
zcodeLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
zcodeLogicalToOdbc(%val)
Quit %val
zcodeNormalize(%val)
Quit $e(%val,1,50)
ztextBuildValueArray(value,array) public {
Quit ##class(%Collection.ListOfDT).BuildValueArray(value,.array)
}
ztextDisplayToLogical(%val)
Quit %val
ztextGetSwizzled(%this) public {
Set oref=##class(%Collection.ListOfDT).%New() If oref="" Quit ""
Set $zobjval(,/*text*/4,0,0,3)=oref,$zobjmods(,3)=1,$zobjmods(,4)=1
Set
oref.ElementType="xobw.error.DialogError:text",oref.ElementClassType="datatype",oref.Owne
r=+%this,oref.Storage=3,oref.OrefStorage=4
Set $zobjmod(oref,0)=0
Quit oref }
ztextIsModified(%this) public {
Quit $zobjmod(,3) }
ztextIsValid(%val)
Quit 1
ztextLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
ztextLogicalToOdbc(%val)
Quit %val
ztextNormalize(%val)
Quit $e(%val,1,50)
ztextSet(%this,newvalue) public {
If '$isobject(newvalue),newvalue'="" Quit $$Error^%apiOBJ(5807,newvalue)
If $zobjval(,/*text*/4,0,3,3)=newvalue Quit 1
If newvalue="" Kill $zobjval(,/*text*/3,0,3,3),$zobjval(,/*text*/4,0,3,3) Set
$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)="",$zobjmods(,4)=1 Quit 1
Set oref=$zobjval(,/*text*/4,0,3,3) Kill
$zobjval(,/*text*/3,0,3,3),$zobjval(,/*text*/4,0,3,3) Set
$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)=oref,$zobjmods(,4)=1
Set key="" For i=1:1 Set value=newvalue.GetNext(.key) Quit:key="" Set
$zobjval(,/*text*/3,0,3,3,i)=value
Quit 1 }
ztextSetModified(%this,newvalue) public {
Set $zobjmod(,3)=newvalue Quit 1 }
xobw.error.HttpError.1^INT^1^62153,34149^0^1
;xobw.error.HttpError.1
;(C)InterSystems, generated for class xobw.error.HttpError. Do NOT edit. 03/03/2011
09:29:09AM
;;002E95218A2990EF;xobw.error.HttpError
;
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
s proporef=$zobjproperty(%this,"text")
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
i AllowedDepth>0 s AllowedDepth = AllowedDepth - 1
i AllowedCapacity>0 d
. s AllowedCapacity = AllowedCapacity - 1
. s AllowedCapacity = AllowedCapacity/1
s proporef=$zobjval(%this,4,0)
i proporef'="",dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef),1:$zobjexport(proporef_"",3)
+$zobjexport($zobjval(proporef,0,,,,3),3)+$zobjexport(proporef,3))!1 u t
if proporef'="",dev'="" d
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(1),1:$zobjexport(1_"",3))!1 u t
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.Count()),1:$zobjexport(propor
ef.Count()_"",3))!1 u t
. for i=1:1:proporef.Count() s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.GetAt(i)),1:$zobjexport(propo
ref.GetAt(i)_"",3))!1 u t
Quit sc }
%ClassName(fullname) public {
Quit $select($get(fullname,0):"xobw.error.HttpError",1:"HttpError") }
%Construct(%this,httpResponse)
Set
$zobjval(,/*code*/1,0,3,1)="",$zobjval(,/*errorType*/2,0,3,2)="",$zobjval(,/*statusLine*/
5,0,3,5)="",$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)=""
Set $zobjmod(,3)=0,$zobjmods(,3)=0
Quit ..%OnNew(.httpResponse)
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.error.HttpError"),cloned(+object)=%this,cloned(+object,
0)=object Set $zobjmod(,0)=1
Set
$zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2),$zobjval(,5)=$zobjval(obj
ect,5)
Merge $zobjval(,3,0)=$zobjval(object,3,0),$zobjval(,4,0)=$zobjval(object,4,0) Set
$zobjval(,3)="",$zobjval(,4)=""
Quit %this }
%Destruct(%this) public {
If $isobject($zobjval(,/*text*/4,0,3,3)),$zobjcnt($zobjval(,/*text*/4,0,3,3))>1 Do
$zobjval(,/*text*/4,0,3,3).%Disconnect()
Quit 1 }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.error.HttpError","xobw.error.AbstractError","%Library.Regist
eredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isc
lass,2,*))) }
%GetParameter(paramname="") public {
Quit $case(paramname,"ERRORTYPE":"HTTP","PROPERTYVALIDATION":2,:"") }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.error.HttpError","xobw.error.AbstractError","%Library.Regist
eredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isc
lass,2,*))) }
%IsModified(%this) public {
Quit $zobjmod(,0) }
%NormalizeObject(%this)
Set:$zobjval(,/*code*/1,0,3,1)'=""
$zobjval(,/*code*/1,0,3,1)=(..codeNormalize($zobjval(,/*code*/1,0,3,1)))
Set:$zobjval(,/*errorType*/2,0,3,2)'=""
$zobjval(,/*errorType*/2,0,3,2)=(..errorTypeNormalize($zobjval(,/*errorType*/2,0,3,2)))
Set:$zobjval(,/*statusLine*/5,0,3,5)'=""
$zobjval(,/*statusLine*/5,0,3,5)=(..statusLineNormalize($zobjval(,/*statusLine*/5,0,3,5))
)
new data,key
Set key="" For Set key=$order($zobjval(,/*text*/3,0,3,3,key),1,data) Quit:key=""
Set:data'="" $zobjval(,/*text*/3,0,3,3,key)=..textNormalize(data)
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%OnNew(%this,httpResponse) public {
set $zobjval(,/*errorType*/2,0,3,2)="HTTP"
set $zobjval(,/*code*/1,0,3,1)=httpResponse.StatusCode
set $zobjval(,/*statusLine*/5,0,3,5)=httpResponse.StatusLine
set len=70
for set x=httpResponse.Data.Read(.len) quit:len=-1 do ..text.Insert(x)
quit 1 }
%PackageName()
Quit "xobw.error"
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set %objTX(1,intOref)=%this,%objTX(1,intOref,1)=-1,%objTX(1,intOref,6)=4
Set tDepth=$select(depth'=2:depth,1:1)
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%ValidateObject(%this,force=0)
Quit 1
zdecompose(%this,error) public {
set error("errorType")=$zobjval(,/*errorType*/2,0,3,2)
set error("code")=$zobjval(,/*code*/1,0,3,1)
set error("statusLine")=$zobjval(,/*statusLine*/5,0,3,5)
set error("text")=..text.Count()
set i=""
for set x=..text.GetNext(.i) quit:i="" set error("text",i)=x
quit 1 }
zdisplay(%this) public {
write !,"
Error Class: ",..%ClassName(1)
write !,"
HTTP Error Code: ",$zobjval(,/*code*/1,0,3,1)
write !,"
HTTP Status Line: ",$zobjval(,/*statusLine*/5,0,3,5)
write !,"Application Error Text: "
set i=""
for set x=..text.GetNext(.i) quit:i="" write !?5,x }
zcodeDisplayToLogical(%val)
Quit %val
zcodeIsValid(%val)
Quit 1
zcodeLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
zcodeLogicalToOdbc(%val)
Quit %val
zcodeNormalize(%val)
Quit $e(%val,1,50)
ztextBuildValueArray(value,array) public {
Quit ##class(%Collection.ListOfDT).BuildValueArray(value,.array)
}
ztextDisplayToLogical(%val)
Quit %val
ztextGetSwizzled(%this) public {
Set oref=##class(%Collection.ListOfDT).%New() If oref="" Quit ""
Set $zobjval(,/*text*/4,0,0,3)=oref,$zobjmods(,3)=1,$zobjmods(,4)=1
Set
oref.ElementType="xobw.error.HttpError:text",oref.ElementClassType="datatype",oref.Owner=
+%this,oref.Storage=3,oref.OrefStorage=4
Set $zobjmod(oref,0)=0
Quit oref }
ztextIsModified(%this) public {
Quit $zobjmod(,3) }
ztextIsValid(%val)
Quit 1
ztextLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
ztextLogicalToOdbc(%val)
Quit %val
ztextNormalize(%val)
Quit $e(%val,1,50)
ztextSet(%this,newvalue) public {
If '$isobject(newvalue),newvalue'="" Quit $$Error^%apiOBJ(5807,newvalue)
If $zobjval(,/*text*/4,0,3,3)=newvalue Quit 1
If newvalue="" Kill $zobjval(,/*text*/3,0,3,3),$zobjval(,/*text*/4,0,3,3) Set
$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)="",$zobjmods(,4)=1 Quit 1
Set oref=$zobjval(,/*text*/4,0,3,3) Kill
$zobjval(,/*text*/3,0,3,3),$zobjval(,/*text*/4,0,3,3) Set
$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)=oref,$zobjmods(,4)=1
Set key="" For i=1:1 Set value=newvalue.GetNext(.key) Quit:key="" Set
$zobjval(,/*text*/3,0,3,3,i)=value
Quit 1 }
ztextSetModified(%this,newvalue) public {
Set $zobjmod(,3)=newvalue Quit 1 }
xobw.error.ObjectError.1^INT^1^62153,34149^0^1
;xobw.error.ObjectError.1
;(C)InterSystems, generated for class xobw.error.ObjectError. Do NOT edit. 03/03/2011
09:29:09AM
;;011F77BADC006610;xobw.error.ObjectError
;
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
s proporef=$zobjproperty(%this,"text")
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
i AllowedDepth>0 s AllowedDepth = AllowedDepth - 1
i AllowedCapacity>0 d
. s AllowedCapacity = AllowedCapacity - 1
. s AllowedCapacity = AllowedCapacity/1
s proporef=$zobjval(%this,4,0)
i proporef'="",dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef),1:$zobjexport(proporef_"",3)
+$zobjexport($zobjval(proporef,0,,,,3),3)+$zobjexport(proporef,3))!1 u t
if proporef'="",dev'="" d
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(1),1:$zobjexport(1_"",3))!1 u t
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.Count()),1:$zobjexport(propor
ef.Count()_"",3))!1 u t
. for i=1:1:proporef.Count() s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.GetAt(i)),1:$zobjexport(propo
ref.GetAt(i)_"",3))!1 u t
Quit sc }
%ClassName(fullname) public {
Quit $select($get(fullname,0):"xobw.error.ObjectError",1:"ObjectError") }
%Construct(%this,statuscode)
Set
$zobjval(,/*code*/1,0,3,1)="",$zobjval(,/*dcode*/5,0,3,5)="",$zobjval(,/*domain*/6,0,3,6)
="",$zobjval(,/*errorType*/2,0,3,2)="",$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,
0,3,3)=""
Set $zobjmod(,3)=0,$zobjmods(,3)=0
Quit ..%OnNew(.statuscode)
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.error.ObjectError"),cloned(+object)=%this,cloned(+objec
t,0)=object Set $zobjmod(,0)=1
Set
$zobjval(,1)=$zobjval(object,1),$zobjval(,5)=$zobjval(object,5),$zobjval(,6)=$zobjval(obj
ect,6)
Merge $zobjval(,3,0)=$zobjval(object,3,0),$zobjval(,4,0)=$zobjval(object,4,0) Set
$zobjval(,3)="",$zobjval(,4)=""
Set $zobjval(,2)=$zobjval(object,2)
Quit %this }
%Destruct(%this) public {
If $isobject($zobjval(,/*text*/4,0,3,3)),$zobjcnt($zobjval(,/*text*/4,0,3,3))>1 Do
$zobjval(,/*text*/4,0,3,3).%Disconnect()
Quit 1 }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.error.ObjectError","xobw.error.AbstractError","%Library.Regi
steredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(i
sclass,2,*))) }
%GetParameter(paramname="") public {
Quit $case(paramname,"ERRORTYPE":"OBJECT","PROPERTYVALIDATION":2,:"") }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.error.ObjectError","xobw.error.AbstractError","%Library.Regi
steredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(i
sclass,2,*))) }
%IsModified(%this) public {
Quit $zobjmod(,0) }
%NormalizeObject(%this)
Set:$zobjval(,/*code*/1,0,3,1)'=""
$zobjval(,/*code*/1,0,3,1)=(..codeNormalize($zobjval(,/*code*/1,0,3,1)))
Set:$zobjval(,/*dcode*/5,0,3,5)'=""
$zobjval(,/*dcode*/5,0,3,5)=(..dcodeNormalize($zobjval(,/*dcode*/5,0,3,5)))
Set:$zobjval(,/*domain*/6,0,3,6)'=""
$zobjval(,/*domain*/6,0,3,6)=(..domainNormalize($zobjval(,/*domain*/6,0,3,6)))
Set:$zobjval(,/*errorType*/2,0,3,2)'=""
$zobjval(,/*errorType*/2,0,3,2)=(..errorTypeNormalize($zobjval(,/*errorType*/2,0,3,2)))
new data,key
Set key="" For Set key=$order($zobjval(,/*text*/3,0,3,3,key),1,data) Quit:key=""
Set:data'="" $zobjval(,/*text*/3,0,3,3,key)=..textNormalize(data)
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%OnNew(%this,statuscode) public {
set $zobjval(,/*errorType*/2,0,3,2)="OBJECT"
do $system.Status.DecomposeStatus(statuscode,.err)
set $zobjval(,/*code*/1,0,3,1)=$GET(err(1,"code"),"<unknown>")
set $zobjval(,/*dcode*/5,0,3,5)=$GET(err(1,"dcode"),"<unknown>")
set $zobjval(,/*domain*/6,0,3,6)=$GET(err(1,"domain"),"<unknown>")
set x=$get(err(1))
for do ..text.Insert($extract(x,1,70)) set x=$extract(x,71,9999) quit:x=""
quit 1 }
%PackageName()
Quit "xobw.error"
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set %objTX(1,intOref)=%this,%objTX(1,intOref,1)=-1,%objTX(1,intOref,6)=4
Set tDepth=$select(depth'=2:depth,1:1)
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%ValidateObject(%this,force=0)
Quit 1
zdecompose(%this,error) public {
set error("errorType")=$zobjval(,/*errorType*/2,0,3,2)
set error("code")=$zobjval(,/*code*/1,0,3,1)
set error("dcode")=$zobjval(,/*dcode*/5,0,3,5)
set error("domain")=$zobjval(,/*domain*/6,0,3,6)
set error("text")=..text.Count()
set i=""
for set x=..text.GetNext(.i) quit:i="" set error("text",i)=x
quit 1 }
zdisplay(%this) public {
write !," Error Class: ",..%ClassName(1)
write !," Error Code: ",$zobjval(,/*code*/1,0,3,1)
write !," Error DCode: ",$zobjval(,/*dcode*/5,0,3,5)
write !,"Error Domain: ",$zobjval(,/*domain*/6,0,3,6)
write !," Error Text: "
set I=""
for set X=..text.GetNext(.I) quit:I="" write !?5,X }
zcodeDisplayToLogical(%val)
Quit %val
zcodeIsValid(%val)
Quit 1
zcodeLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
zcodeLogicalToOdbc(%val)
Quit %val
zcodeNormalize(%val)
Quit $e(%val,1,50)
ztextBuildValueArray(value,array) public {
Quit ##class(%Collection.ListOfDT).BuildValueArray(value,.array)
}
ztextDisplayToLogical(%val)
Quit %val
ztextGetSwizzled(%this) public {
Set oref=##class(%Collection.ListOfDT).%New() If oref="" Quit ""
Set $zobjval(,/*text*/4,0,0,3)=oref,$zobjmods(,3)=1,$zobjmods(,4)=1
Set
oref.ElementType="xobw.error.ObjectError:text",oref.ElementClassType="datatype",oref.Owne
r=+%this,oref.Storage=3,oref.OrefStorage=4
Set $zobjmod(oref,0)=0
Quit oref }
ztextIsModified(%this) public {
Quit $zobjmod(,3) }
ztextIsValid(%val)
Quit 1
ztextLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
ztextLogicalToOdbc(%val)
Quit %val
ztextNormalize(%val)
Quit $e(%val,1,50)
ztextSet(%this,newvalue) public {
If '$isobject(newvalue),newvalue'="" Quit $$Error^%apiOBJ(5807,newvalue)
If $zobjval(,/*text*/4,0,3,3)=newvalue Quit 1
If newvalue="" Kill $zobjval(,/*text*/3,0,3,3),$zobjval(,/*text*/4,0,3,3) Set
$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)="",$zobjmods(,4)=1 Quit 1
Set oref=$zobjval(,/*text*/4,0,3,3) Kill
$zobjval(,/*text*/3,0,3,3),$zobjval(,/*text*/4,0,3,3) Set
$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)=oref,$zobjmods(,4)=1
Set key="" For i=1:1 Set value=newvalue.GetNext(.key) Quit:key="" Set
$zobjval(,/*text*/3,0,3,3,i)=value
Quit 1 }
ztextSetModified(%this,newvalue) public {
Set $zobjmod(,3)=newvalue Quit 1 }
xobw.error.SoapError.1^INT^1^62153,34149^0^1
;xobw.error.SoapError.1
;(C)InterSystems, generated for class xobw.error.SoapError. Do NOT edit. 03/03/2011
09:29:09AM
;;007A756C3761823A;xobw.error.SoapError
;
%BindExport(%this,dev,Seen,RegisterOref,AllowedDepth,AllowedCapacity) public {
i $d(Seen(""_%this)) q 1
Set Seen(""_%this)=%this
s sc = 1
s proporef=$zobjproperty(%this,"soapFault")
s proporef=$zobjproperty(%this,"text")
d:RegisterOref InitObjVar^%SYS.BINDSRV(%this)
i dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(%this),1:$zobjexport(%this_"",3)+$zobj
export($zobjval(%this,0,,,,3),3)+$zobjexport(%this,3))!1 u t
i AllowedDepth>0 s AllowedDepth = AllowedDepth - 1
i AllowedCapacity>0 d
. s AllowedCapacity = AllowedCapacity - 1
. s AllowedCapacity = AllowedCapacity/2
s proporef=$zobjval(%this,6,0)
i proporef'="" s sc=1 i AllowedDepth'=0,AllowedCapacity'=0 s
sc=proporef.%BindExport(dev,.Seen,RegisterOref,AllowedDepth,AllowedCapacity) q:('sc) sc
s proporef=$zobjval(%this,4,0)
i proporef'="",dev'="" s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef),1:$zobjexport(proporef_"",3)
+$zobjexport($zobjval(proporef,0,,,,3),3)+$zobjexport(proporef,3))!1 u t
if proporef'="",dev'="" d
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(1),1:$zobjexport(1_"",3))!1 u t
. s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.Count()),1:$zobjexport(propor
ef.Count()_"",3))!1 u t
. for i=1:1:proporef.Count() s t=$io u dev i
$s($P(dev,":",1)="|TRM|":$$debugPutOref^%occLGUtil(proporef.GetAt(i)),1:$zobjexport(propo
ref.GetAt(i)_"",3))!1 u t
Quit sc }
%ClassName(fullname) public {
Quit $select($get(fullname,0):"xobw.error.SoapError",1:"SoapError") }
%Construct(%this,fault)
Set
$zobjval(,/*code*/1,0,3,1)="",$zobjval(,/*errorType*/2,0,3,2)="",$zobjval(,/*soapFault*/5
,0,3,5)="",$zobjval(,/*soapFault*/6,0,3,5)="",$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*t
ext*/4,0,3,3)=""
Set $zobjmod(,3)=0,$zobjmods(,3)=0
Quit ..%OnNew(.fault)
%ConstructClone(%this,deep=0,cloned,location) public {
If $data(cloned(+%this)) Quit cloned(+%this)
Set
object=%this,%this=$zobjnew("xobw.error.SoapError"),cloned(+object)=%this,cloned(+object,
0)=object Set $zobjmod(,0)=1
Set
$zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2),$zobjval(,5)=$zobjval(obj
ect,5)
Merge $zobjval(,3,0)=$zobjval(object,3,0),$zobjval(,4,0)=$zobjval(object,4,0) Set
$zobjval(,3)="",$zobjval(,4)=""
Set $zobjval(,6)=$zobjval(object,6)
If deep>0 {
If $isobject(object.soapFault) Set
$zobjval(,6,0)=$zobjval(object,6,0).%ConstructClone(1,.cloned)
}
Quit %this }
%Destruct(%this) public {
If $isobject($zobjval(,/*text*/4,0,3,3)),$zobjcnt($zobjval(,/*text*/4,0,3,3))>1 Do
$zobjval(,/*text*/4,0,3,3).%Disconnect()
Quit 1 }
%Extends(isclass) public {
Quit
''$listfind($listbuild("xobw.error.SoapError","xobw.error.AbstractError","%Library.Regist
eredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isc
lass,2,*))) }
%GetParameter(paramname="") public {
Quit $case(paramname,"ERRORTYPE":"SOAP","PROPERTYVALIDATION":2,:"") }
%IsA(isclass) public {
Quit
''$listfind($listbuild("xobw.error.SoapError","xobw.error.AbstractError","%Library.Regist
eredObject"),$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isc
lass,2,*))) }
%IsModified(%this) public {
Quit $zobjmod(,0) }
%NormalizeObject(%this)
Set:$zobjval(,/*code*/1,0,3,1)'=""
$zobjval(,/*code*/1,0,3,1)=(..codeNormalize($zobjval(,/*code*/1,0,3,1)))
Set:$zobjval(,/*errorType*/2,0,3,2)'=""
$zobjval(,/*errorType*/2,0,3,2)=(..errorTypeNormalize($zobjval(,/*errorType*/2,0,3,2)))
new data,key
Set key="" For Set key=$order($zobjval(,/*text*/3,0,3,3,key),1,data) Quit:key=""
Set:data'="" $zobjval(,/*text*/3,0,3,3,key)=..textNormalize(data)
Quit 1
%ObjectModified(%this) public {
Quit ''$zobjmod(,0) }
%OnNew(%this,fault) public {
set $zobjval(,/*errorType*/2,0,3,2)="SOAP"
set $zobjval(,/*code*/1,0,3,1)="" ; normally this holds the Cache Object error code
but this is a SOAP fault
set $zobjval(,/*soapFault*/5,0,3,5)=fault
set x=fault.faultstring
for do ..text.Insert($extract(x,1,70)) set x=$extract(x,71,9999) quit:x=""
quit 1 }
%PackageName()
Quit "xobw.error"
%SerializeObject(%this,serial,partial=0)
New sc,cref,eoid,key,id
Set $Ztrap = "%SerializeObjectERR"
Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" }
Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" }
Quit sc
%SerializeObjectERR
Set $ZTrap="" If $extract($zerror,1,5)'="<ZSO>" Set
sc=$$Error^%apiOBJ(5002,$ZE)
Quit sc
%AddToSaveSet(%this,depth=3,refresh=0,norecurseon="") public {
If ($data(%objTX(1,+%this))) && ('refresh) Quit 1
Set sc=1,intOref=+%this
If refresh {
Set intPoref=$order(%objTX(1,intOref,2,""))
While intPoref'="" { Kill
%objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set
intPoref=$order(%objTX(1,intOref,2,intPoref)) }
}
Set %objTX(1,intOref)=%this,%objTX(1,intOref,1)=-1,%objTX(1,intOref,6)=4
Set tDepth=$select(depth'=2:depth,1:1)
Set Poref=$zobjval(,6,0) If Poref'="" {
If '$data(%objTX(1,+Poref)) Set sc=Poref.%AddToSaveSet(tDepth) Goto:('sc) exit
}
exit Quit sc }
%RemoveFromSaveSet(%this) public {
If '($data(%objTX(1,+%this))) Quit 1
Set intRef=+%this
Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc=""
Kill %objTX(1,intSucc,2,intRef)
Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred=""
Kill %objTX(1,intPred,3,intRef)
Kill %objTX(1,intRef),%objTX(2,intRef)
Quit 1 }
%SetModified(%this,value) public {
Set $zobjmod(,0)=value
Quit 1 }
%ValidateObject(%this,force=0)
Quit 1
zdecompose(%this,error) public {
set error("errorType")=$zobjval(,/*errorType*/2,0,3,2)
set error("soapFaultType")=..soapFaultType
set error("faultactor")=..soapFault.faultactor
set error("faultcode")=..soapFault.faultcode
set error("faultstring")=..soapFault.faultstring
set error("detail")=..soapFault.detail
set error("text")=..text.Count()
set i=""
for set x=..text.GetNext(.i) quit:i="" set error("text",i)=x
quit 1 }
zdisplay(%this) public {
write !,"
Error Class: ",..soapFault.%ClassName(1)
write !," SOAP Fault Type: ",..soapFaultType
write !," SOAP Fault Actor: ",..soapFault.faultactor
write !," SOAP Fault Code: ",..soapFault.faultcode
write !,"SOAP Fault String: ",..soapFault.faultstring
write !,"SOAP Fault Detail: ",..soapFault.detail }
zisFaultClient(%this) public {
quit ($P(..soapFault.faultcode,":",2)=$P("Client",":",2)) }
zisFaultMustUnderstand(%this) public {
quit ($P(..soapFault.faultcode,":",2)=$P("MustUnderstand",":",2)) }
zisFaultServer(%this) public {
quit ($P(..soapFault.faultcode,":",2)=$P("Server",":",2)) }
zisFaultVersionMismatch(%this) public {
quit ($P(..soapFault.faultcode,":",2)=$P("VersionMismatch",":",2)) }
zsoapFaultGet(%this) public {
quit $zobjval(,/*soapFault*/5,0,3,5) }
zsoapFaultTypeGet(%this) public {
quit
$select(..isFaultServer():"Server",..isFaultClient():"Client",..isFaultVersionMismatch():
"Version Mismatch",..isFaultMustUnderstand():"Must Understand",1:"Unknown") }
zcodeDisplayToLogical(%val)
Quit %val
zcodeIsValid(%val)
Quit 1
zcodeLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
zcodeLogicalToOdbc(%val)
Quit %val
zcodeNormalize(%val)
Quit $e(%val,1,50)
zsoapFaultGetSwizzled(%this) public {
Quit $zobjval(,/*soapFault*/6,0,3,5) }
zsoapFaultIsModified(%this) public {
Quit $zobjmod(,5) }
zsoapFaultIsValid(value) public {
Quit 1 }
zsoapFaultNewObject(%this) public {
Set newobject=##class(%SOAP.Fault).%New("") If newobject="" Quit ""
Set $zobjval(,/*soapFault*/6,0,3,5)=newobject,
$zobjval(,/*soapFault*/5,0,3,5)="",$zobjmods(,6)=1
Quit newobject }
zsoapFaultSet(%this,newvalue) public {
If newvalue'="" { If '$isobject(newvalue) { Quit $$Error^%apiOBJ(5807,newvalue) } If
$zobjval(,/*soapFault*/6,0,3,5)=newvalue { Quit 1 } }
Set
$zobjval(,/*soapFault*/6,0,3,5)=newvalue,$zobjval(,/*soapFault*/5,0,3,5)="",$zobjmods(,6)
=1
Quit 1 }
zsoapFaultSetModified(%this,newvalue) public {
Set $zobjmod(,5)=newvalue Quit 1 }
ztextBuildValueArray(value,array) public {
Quit ##class(%Collection.ListOfDT).BuildValueArray(value,.array)
}
ztextDisplayToLogical(%val)
Quit %val
ztextGetSwizzled(%this) public {
Set oref=##class(%Collection.ListOfDT).%New() If oref="" Quit ""
Set $zobjval(,/*text*/4,0,0,3)=oref,$zobjmods(,3)=1,$zobjmods(,4)=1
Set
oref.ElementType="xobw.error.SoapError:text",oref.ElementClassType="datatype",oref.Owner=
+%this,oref.Storage=3,oref.OrefStorage=4
Set $zobjmod(oref,0)=0
Quit oref }
ztextIsModified(%this) public {
Quit $zobjmod(,3) }
ztextIsValid(%val)
Quit 1
ztextLogicalToDisplay(%val)
Quit $tr(%val,$c(0),"")
ztextLogicalToOdbc(%val)
Quit %val
ztextNormalize(%val)
Quit $e(%val,1,50)
ztextSet(%this,newvalue) public {
If '$isobject(newvalue),newvalue'="" Quit $$Error^%apiOBJ(5807,newvalue)
If $zobjval(,/*text*/4,0,3,3)=newvalue Quit 1
If newvalue="" Kill $zobjval(,/*text*/3,0,3,3),$zobjval(,/*text*/4,0,3,3) Set
$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)="",$zobjmods(,4)=1 Quit 1
Set oref=$zobjval(,/*text*/4,0,3,3) Kill
$zobjval(,/*text*/3,0,3,3),$zobjval(,/*text*/4,0,3,3) Set
$zobjval(,/*text*/3,0,3,3)="",$zobjval(,/*text*/4,0,3,3)=oref,$zobjmods(,4)=1
Set key="" For i=1:1 Set value=newvalue.GetNext(.key) Quit:key="" Set
$zobjval(,/*text*/3,0,3,3,i)=value
Quit 1 }
ztextSetModified(%this,newvalue) public {
Set $zobjmod(,3)=newvalue Quit 1 }
xobw.WebServer.T1^MAC^^62153,34145^0^1
; xobw.WebServer.T1
; Filing Methods for table: xobw.WebServer (extent = xobw.WebServer) - Do Not Edit.
Compiled March 3, 2011 09:29:05
; Filing Methods for table: xobw.WebServer (extent = xobw.WebServer)
#classmethod xobw.WebServerTableCode
#classcontext xobw.WebServer
#include %occExtent
#include %occInclude
#include %systemInclude
#import xobw
%delete(%rowid,%check,%tstart=1,%mv=0) n
bva,%d,%e,%ele,%itm,%key,%l,%oper,%pos,%s,sn,sqlcode,subs s
%oper="DELETE",sqlcode=0,%ROWID=%rowid,%d(1)=%rowid,%e(1)=%rowid,%d(3)=$p(%d(1),"||",1),%
l=$c(0)
k:'$TLEVEL %0CacheLock i '$a(%check,2) { n %ls i
$i(%0CacheLock("xobw.WebServer"))>$zu(115,6) { l +^XOB(18.12):$zu(115,4) l:$t ^XOB(18.12) s %ls=$s($t:2,1:0) } else { l +^XOB(18.12,%d(1)):$zu(115,4) s %ls=$t }
s:%ls=2 $e(%check,2)=$c(1) s:%ls=1 $e(%l)=$c(1) i '%ls s SQLCODE=-110,%msg="Unable to
acquire lock for "_%oper_" of table 'xobw.WebServer' on row with RowID = '"_$g(%d(1))_"'"
q } If %tstart { TSTART:($zu(115,1)=1)||('$TLEVEL&&($zu(115,1)=2)) } s $zt="%ETrap"
i '$a(%check),'$zu(115,7) d i sqlcode s SQLCODE=sqlcode g %EExit
. n %fk,%k,%p,%st,%t,%z s %k="",%p("%1")="%d(1),",%p("ienIndex")="%d(3),"
. f q:sqlcode<0 s %k=$o(^oddEXTR("xobw.WebServer","n",%k)) q:%k="" s %t="" f s
%t=$o(^oddEXTR("xobw.WebServer","n",%k,"f",%t)) q:%t="" s %st=(%t="xobw.WebServer") s
%fk="" f s %fk=$o(^oddEXTR("xobw.WebServer","n",%k,"f",%t,%fk)) q:%fk="" s
%z=$g(^oddEXTR("xobw.WebServer","n",%k,"f",%t,%fk,61)) i
%z'="",@("$$"_%z_"("_%p(%k)_",%k,%st)") s sqlcode=-124 q
d %DeleteChildren i sqlcode s SQLCODE=sqlcode g %EExit
k ^XOB(18.12,%d(1))
d gunlock TCOMMIT:%tstart&&($zu(115,1)=1)
s SQLCODE=0 q
%insert(%d,%check,%inssel,%vco,%tstart=1,%mv=0) n
bva,%ele,%itm,%key,%l,%n,%oper,%pos,%s,sqlcode,sn,subs s
%oper="INSERT",sqlcode=0,%l=$c(0,0,0) i '$a(%check),'$$FieldValidate() { s
SQLCODE=sqlcode q "" } d Normalize
k:'$TLEVEL %0CacheLock If %tstart { TSTART:($zu(115,1)=1)||('$TLEVEL&&($zu(115,1)=2)) }
s $zt="%ETrap"
s:'$d(%d(2)) %d(2)=30
i '$a(%check) i $g(%d(3))="" { d missing("ien") s SQLCODE=sqlcode g %EExit }
s %d(1)=%d(3)
i '$a(%check) d i sqlcode<0 s SQLCODE=sqlcode g %EExit
. i $g(%vco)'="" d @%vco q:sqlcode<0
. If '$a(%check,2) { l +^XOB(18.12,%d(1)):$zu(115,4) If $t { s $e(%l,2)=$c(1) } Else { d
ulerror("ienIndex") q } } If $d(^XOB(18.12,%d(1))) s sqlcode=-119,%msg="Table
'xobw.WebServer', Constraint 'ienIndex' (Field 'ien') failed unique check" q
i '$a(%check,2) { n %ls i $i(%0CacheLock("xobw.WebServer"))>$zu(115,6) { l
+^XOB(18.12):$zu(115,4) l:$t -^XOB(18.12) s %ls=$s($t:2,1:0) } else { l
+^XOB(18.12,%d(1)):$zu(115,4) s %ls=$t } s:%ls=2 $e(%check,2)=$c(1) s:%ls=1 $e(%l)=$c(1)
i '%ls s SQLCODE=-110,%msg="Unable to acquire lock for "_%oper_" of table
'xobw.WebServer' on row with RowID = '"_$g(%d(1))_"'" g %EExit }
s ^XOB(18.12,%d(1))=""
s:$s(($g(%d(2))'=""):1,($g(%d(5))'=""):1,($g(%d(7))'=""):1,($g(%d(8))'=""):1,1:($g(%d(12)
)'=""))
^XOB(18.12,%d(1),0)=$g(%d(5))_"^^"_$g(%d(7))_"^"_$g(%d(8))_"^^"_$g(%d(12))_"^"_$g(%d(2))
s:($g(%d(4))'="") ^XOB(18.12,%d(1),1)=$g(%d(4))
s:($g(%d(6))'="") ^XOB(18.12,%d(1),300)=$g(%d(6))
s:$s(($g(%d(9))'=""):1,($g(%d(10))'=""):1,1:($g(%d(11))'=""))
^XOB(18.12,%d(1),3)=$g(%d(10))_"^"_$g(%d(9))_"^"_$g(%d(11))
s:($g(%d(13))'="") ^XOB(18.12,%d(1),200)=$g(%d(13))
d gunlock2
d gunlock TCOMMIT:%tstart&&($zu(115,1)=1)
s SQLCODE=0 q %d(1)
// %insert-end
%update(%rowid,%check,%d,%vco,%tstart=1,%mv=0) n
%e,bva,%ele,%itm,%key,%l,%n,%oper,%pos,%s,icol,s,sn,sqlcode,subs,t s
%oper="UPDATE",sqlcode=0,%ROWID=%rowid,$e(%e,1)=$c(0),%l=$c(0,0,0) i
'$a(%check),'$$FieldValidate() s SQLCODE=sqlcode q
d Normalize i
($d(%d(1))&&($g(%d(1))'=%rowid))||($d(%d(3))&&($g(%d(3))'=$p(%rowid,"||",1))) s SQLCODE=107,%msg="Updating any of the RowID Fields ('ID', or 'ien') not allowed" q
f icol=2:1:13 s $e(%e,icol)=$c($d(%d(icol)))
s %d(1)=%rowid,%e(1)=%rowid,%d(3)=$p(%d(1),"||",1)
k:'$TLEVEL %0CacheLock i '$a(%check,2) { n %ls i
$i(%0CacheLock("xobw.WebServer"))>$zu(115,6) { l +^XOB(18.12):$zu(115,4) l:$t ^XOB(18.12) s %ls=$s($t:2,1:0) } else { l +^XOB(18.12,%d(1)):$zu(115,4) s %ls=$t }
s:%ls=2 $e(%check,2)=$c(1) s:%ls=1 $e(%l)=$c(1) i '%ls s SQLCODE=-110,%msg="Unable to
acquire lock for "_%oper_" of table 'xobw.WebServer' on row with RowID = '"_$g(%d(1))_"'"
q } If %tstart { TSTART:($zu(115,1)=1)||('$TLEVEL&&($zu(115,1)=2)) } s $zt="%ETrap"
i $g(%vco)'="" { d getoldall i sqlcode { s SQLCODE=-109 g %EExit } f
icol=2,4,5,6,7,8,9,10,11,12,13 { s:'$d(%d(icol)) %d(icol)=%e(icol) s:%d(icol)=%e(icol)
$e(%e,icol)=$c(0) }}
d:'$a(%check) i sqlcode s SQLCODE=sqlcode g %EExit
. i $g(%vco)'="" d @%vco q:sqlcode<0
s:$s($a(%e,2):1,$a(%e,5):1,$a(%e,7):1,$a(%e,8):1,1:$a(%e,12))
s=$g(^XOB(18.12,%d(1),0)),^XOB(18.12,%d(1),0)=$s($a(%e,5):%d(5),1:$p(s,"^"))_"^"_$p(s,"^"
,2)_"^"_$s($a(%e,7):%d(7),1:$p(s,"^",3))_"^"_$s($a(%e,8):%d(8),1:$p(s,"^",4))_"^"_$p(s,"^
",5)_"^"_$s($a(%e,12):%d(12),1:$p(s,"^",6))_"^"_$s($a(%e,2):%d(2),1:$p(s,"^",7))_"^"_$p(s
,"^",8,3641144)
s:$a(%e,4)
s=$g(^XOB(18.12,%d(1),1)),^XOB(18.12,%d(1),1)=$s($a(%e,4):%d(4),1:$p(s,"^"))_"^"_$p(s,"^"
,2,3641144)
s:$a(%e,6) ^XOB(18.12,%d(1),300)=$g(%d(6))
s:$s($a(%e,9):1,$a(%e,10):1,1:$a(%e,11))
s=$g(^XOB(18.12,%d(1),3)),^XOB(18.12,%d(1),3)=$s($a(%e,10):%d(10),1:$p(s,"^"))_"^"_$s($a(
%e,9):%d(9),1:$p(s,"^",2))_"^"_$s($a(%e,11):%d(11),1:$p(s,"^",3))_"^"_$p(s,"^",4,3641144)
s:$a(%e,13) ^XOB(18.12,%d(1),200)=$g(%d(13))
d gunlock2
d gunlock TCOMMIT:%tstart&&($zu(115,1)=1)
s SQLCODE=0 q
%1(%p1,lockonly=0,unlockref) // FKey validation entry point
n id s id=%p1
if '$$%getlock(id,1,.unlockref) { s sqlcode=-114,%msg="SQLCODE=-114: Cannot acquire
lock on referenced row for referenced key XOBW.WEBSERVER:%1" q 0 }
if 'lockonly { n qv s qv=$d(^XOB(18.12,%p1)) d:'$g(unlockref) %ReleaseLock(id,1) q qv }
Else { d:'$g(unlockref) %ReleaseLock(id,1) q 1 }
ienIndex(%p1,lockonly=0,unlockref) // FKey validation entry point
n id s id=%p1
if '$$%getlock(id,1,.unlockref) { s sqlcode=-114,%msg="SQLCODE=-114: Cannot acquire
lock on referenced row for referenced key XOBW.WEBSERVER:IENINDEX" q 0 }
if 'lockonly { n qv s qv=$d(^XOB(18.12,%p1)) d:'$g(unlockref) %ReleaseLock(id,1) q qv }
else { d:'$g(unlockref) %ReleaseLock(id,1) q 1 }
%PurgeIndices(indices="") q $$BuildPurgeIndices(indices,0)
%BuildIndices(indices="") q $$BuildPurgeIndices(indices,1)
%CheckUniqueIndices(indices,ok) n d,g,n,o s d=0
s ok=1 q
%AcquireLock(%rowid,s=0,unlockref) n %d,gotlock s %d(1)=%rowid,%d(3)=$p(%d(1),"||",1) s
s=$e("S",s) l +^XOB(18.12,%d(1))#s:$zu(115,4) set gotlock=$t s:gotlock&&$g(unlockref)
unlockref($i(unlockref))=$lb($name(^XOB(18.12,%d(1))),"xobw.WebServer") q gotlock
%AcquireTableLock(s=0,SQLCODE=0) s s=$e("S",s) l +^XOB(18.12)#s:$zu(115,4) q:$t 1 s
SQLCODE=-110,%msg="Unable to acquire "_$s(s="S":"shared ",1:"")_"table lock for table
'xobw.WebServer'" q 0
%ReleaseLock(%rowid,s=0,i=0) n %d s %d(1)=%rowid,%d(3)=$p(%d(1),"||",1) s
s=$e("S",s)_$e("I",i) l -^XOB(18.12,%d(1))#s s:i&&($g(%0CacheLock("xobw.WebServer")))
%0CacheLock("xobw.WebServer")=%0CacheLock("xobw.WebServer")-1 q
%ReleaseTableLock(s=0,i=0) s s=$e("S",s)_$e("I",i) l -^XOB(18.12)#s q 1
%getlock(%rowid,%s=0,unlockref) [] PUBLIC { k:'$TLEVEL %0CacheLock i
$i(%0CacheLock("xobw.WebServer"))>$zu(115,6) { l +^XOB(18.12):$zu(115,4) l:$t ^XOB(18.12) q $s($t:2,1:0) } q $$%AcquireLock(%rowid,%s,.unlockref) }
gunlock l:$a(%l) -^XOB(18.12,%d(1))
q
gunlock2 l:$a(%l,2) -^XOB(18.12,%d(1))#"I" q
%nBuild s
%n=$lb(,"ID","defaultTimeout","ien","loginRequired","name","password","port","server","ss
lConfiguration","sslEnabled","sslPort","status","userName")
q
FieldValidate() n %f ;Validate all fields
i
$g(%d(2))'="",'($select($isvalidnum(%d(2),0,5,7200):1,'$isvalidnum(%d(2)):$$$ERROR($$$DTN
otNum,%d(2)),%d(2)<5:$$$ERROR($$$DTMinVal,%d(2),5),1:$$$ERROR($$$DTMaxVal,%d(2),7200))) {
d invalid(2+1,%d(2)) } i $g(%d(10))'="",'($$fdV4(%d(10))) { d invalid(10+1,%d(10)) } i
$g(%d(12))'="",'($$fdV4(%d(12))) { d invalid(12+1,%d(12)) } i
$g(%d(4))'="",'($$fdV4(%d(4))) { d invalid(4+1,%d(4)) } i
$g(%d(7))'="",'($isvalidnum(%d(7),0,,)) { d invalid(7+1,%d(7)) } q 'sqlcode
fdV4(%val="")
Quit $isvalidnum(%val,0,0,2)&&(+%val'=2)
invalid(ficol,val) [sqlcode] PUBLIC { s:$l($g(val))>40 val=$e(val,1,40)_"..." d:'$d(%n)
%nBuild s %msg="Field 'WebServer."_$lg(%n,ficol)_"' "_$s($g(val)'="":" (value
"_$s(val="":"<NULL>",val=$c(0):"<EMPTY STRING>",1:"'"_val_"'")_")",1:"")_" failed
validation",sqlcode=$s(%oper="INSERT":-104,1:-105) q }
Normalize n %f ;Normalize all fields
f %f=3,5,6,8,9,11,13 { s:$g(%d(%f))'="" %d(%f)=$e(%d(%f),1,50) } f %f=2,4,7,10,12 {
s:$g(%d(%f))'="" %d(%f)=%d(%f)\1 } q
missing(fname) s sqlcode=-108,%msg="'"_fname_"' in table '"_"xobw"_"."_"WebServer"_"' is
a required field" q
ulerror(cname) s sqlcode=-110,%msg="Unable to obtain lock to
"_$s(%oper="DELETE":"maintain",1:"check")_" uniqueness of constraint '"_cname_"'" q
%ETrap s $zt="",SQLCODE=-415,%msg=$s($g(%msg)'="":%msg_" -- ",1:"")_"Error occuring
during "_%oper_" in '"_"xobw"_"."_"WebServer"_"': $ZE="_$ze i $ze["<FRAMESTACK>" { s
%msg="Error '"_$ze_"' occurred during "_%oper_" in '"_"xobw"_"."_"WebServer"_" - Process
HALTed" d ##Class(%SYS.System).WriteToConsoleLog(%msg) i
($zu(67,10,$j)=1)||($zu(67,10,$j)=3) { w !,%msg h 3 } HALT } g %EExit
%EExit d:%oper'="DELETE" gunlock2 d gunlock If %tstart,$zu(115,1)=1,$TLEVEL { s %tstart=0
TROLLBACK 1 } q:%oper="INSERT" "" q
getoldall ; Get all old data values
#sqlcompile SELECT=Logical
#import xobw
&sql(SELECT
defaultTimeout,loginRequired,name,password,port,server,sslConfiguration,sslEnabled,sslPor
t,status,userName INTO :%e() FROM xobw.WebServer WHERE ID=:%rowid) s sqlcode=SQLCODE q
%DeleteChildren ;Delete all child rows
n %ROWCOUNT,SQLCODE
&sql(DELETE %USECHECKVARIABLE FROM xobw.WebServicesAuthorized WHERE webServerRef =
:%d(1)) i SQLCODE<0 s sqlcode=SQLCODE q
q
%QuickInsert(d,%nolock=0,pkey=0,parentpkey=0) // Insert new row with values d(icol)
s:%nolock=2 %nolock=0
s
%ROWID=$$%insert^xobw.WebServer.T1(.d,$c(0,%nolock=1,0,0,0)),%ROWCOUNT='SQLCODE,%qrc=SQLC
ODE
i pkey { i %qrc { s %ROWID=$lb(-1) } else { s %ROWID=$lb(d(3)) } s
d=$zobjexport(%ROWID,5) } k d q
%QuickBulkInsert(%inscall,%nolock=0) // Insert multiple new rows with values %qd(icol)
n c,call,nc,nr,%qd,r,x s:%nolock=2 %nolock=0 s nr=$zobjexport(12) f r=1:1:nr { s
nc=$zobjexport(12) k %qd f c=1:1:nc { s:$zobjexport(17) %qd(c+1)=$zobjexport(12) } d
@%inscall s x=$zobjexport($s(%qrc:-1,1:%ROWID),18) } q
%QuickUpdate(%rowid,d,%nolock=0,pkey=0) // Update row with SQLRowID=%rowid with values
d(icol)
s:pkey %rowid=$$%QuickFindRowIDByPKey(%rowid,2) i %rowid="" { s %qrc=0,%ROWCOUNT=0 q }
i '$$%1^xobw.WebServer.T1(%rowid) s %qrc=0,%ROWCOUNT=0 q
s:%nolock=2 %nolock=0
d %update^xobw.WebServer.T1(%rowid,$c(0,%nolock=1,0,0,0),.d) s %ROWCOUNT='SQLCODE
s:SQLCODE=100 SQLCODE=0 s %qrc=SQLCODE k d q
%QuickBulkUpdate(%updcall,%nolock=0) // Update multiple new rows with values %qd(icol)
n c,call,nc,nr,%qd,r,x s:%nolock=2 %nolock=0 s nr=$zobjexport(12) f r=1:1:nr { s
%rowid=$zobjexport(12),nc=$zobjexport(12) k %qd f c=1:1:nc { s:$zobjexport(17)
%qd(c+1)=$zobjexport(12) } d @%updcall s x=$zobjexport($s(%qrc:-1,1:%ROWID),18) q:%qrc }
q
%QuickBulkSave(%inscall,%updcall,%nolock=0) // Insert and/or Update multiple [new] rows
with values %qd(icol)
n c,nc,nr,%pkey,%qd,r,%rowid,x s:%nolock=2 %nolock=0 s nr=$zobjexport(12) f r=1:1:nr {
s %pkey=$zobjexport(12),nc=$zobjexport(12) k %qd
f c=1:1:nc { s:$zobjexport(17) %qd(c+1)=$zobjexport(12) }
s %rowid=$$%QuickFindRowIDByPKey(%pkey,2) if %rowid="" { d @%inscall s
x=$zobjexport($s(%qrc:-1,1:%ROWID),18) } // Insert new row
else { d @%updcall s x=$zobjexport($s(%qrc:-1,1:%ROWID),18) q:%qrc } // Update
existing Row
} q
%QuickDelete(%rowid,%nolock=0,pkey=0) // Delete row where SQLRowID=%rowid
s:%nolock=2 %nolock=0
s:pkey %rowid=$$%QuickFindRowIDByPKey(%rowid,2) i %rowid="" { s %qrc=0,%ROWCOUNT=0 q }
i '$$%1^xobw.WebServer.T1(%rowid) s %qrc=0,%ROWCOUNT=0 q
d %delete^xobw.WebServer.T1(%rowid,$c(0,%nolock=1,0))
If SQLCODE=-106 { s %qrc=0,%ROWCOUNT=0 } ElseIf SQLCODE<0 { s %qrc=-SQLCODE,%ROWCOUNT=0
} Else { s %ROWCOUNT=1,%qrc=SQLCODE } q
%QuickLoad(%rowid,%nolock=0,pkey=0,skipnewqout=0,qq=0) // Get fields from row where
SQLRowID=%rowid
n d,i,il,subs,t s:%nolock=2 %nolock=1
s:pkey %rowid=$$%QuickFindRowIDByPKey(%rowid,2) i %rowid="" { s
SQLCODE=100,%qrc=100,%ROWCOUNT=0 q }
i %nolock=0 { i '$$%AcquireLock^xobw.WebServer.T1(%rowid) { s %qrc=114,%msg="Unable to
acquire exclusive lock on table xobw.WebServer for RowID value: "_%rowid,%ROWCOUNT=0 q }
s:$zu(115,2) il=$zu(115,2,0) }
#sqlcompile SELECT=ODBC
&sql(SELECT
%INTERNAL(ID),defaultTimeout,ien,loginRequired,name,password,port,server,sslConfiguration
,sslEnabled,sslPort,status,userName INTO
:d(1),:d(2),:d(3),:d(4),:d(5),:d(6),:d(7),:d(8),:d(9),:d(10),:d(11),:d(12),:d(13) FROM
xobw.WebServer WHERE %ID = :%rowid)
i SQLCODE { i %nolock=0 { d %ReleaseLock^xobw.WebServer.T1(%rowid,0,1) d:$g(il)
$zu(115,2,il) } s %ROWCOUNT=0 s:SQLCODE<0 SQLCODE=-SQLCODE s %qrc=SQLCODE q }
If %nolock=0 { If $zu(115,1)=1 { TSTART } ElseIf '$TLEVEL,$zu(115,1)=2 { TSTART }}
s:qq d=$zobjexport("xobw.WebServer",18),d=$zobjexport(13,18) s i=-1 f { s i=$o(d(i))
q:i="" s d=$zobjexport(d(i),18) } s %qrc=0,%ROWCOUNT=1 i %nolock=0 { d
%ReleaseLock^xobw.WebServer.T1(%rowid,0,0) d:$g(il) $zu(115,2,il) } q
%QuickBulkLoad(%rowidlist,%nolock=0,pkey=0) // QuickLoad multiple rows
n i,ql,rc,%rowid s:%nolock=2 %nolock=0 s rc=0,ql=$g(^oddSQL("xobw","WebServer","QL")) s
$p(ql,",",4)="1)"
f i=2:1:$lg(%rowidlist)+1 { s %rowid=$lg(%rowidlist,i) d @ql If SQLCODE=0 { s rc=rc+1 }
Else { q } } s %ROWCOUNT=rc q
%QuickFindRowIDByPKey(%pkey,output=1,internal=0) // Get ROWID value for PKEY value given
in %pkey
n %d,d s %d(3)=$lg(%pkey,1) s %d(1)=%d(3) if $zu(115,2)=1 { l
+^XOB(18.12,%d(1))#"S":$zu(115,4) i '$t { s %qrc=114,%msg="Unable to acquire shared lock
on table xobw.WebServer for RowID value: "_%d(1),%ROWCOUNT=0,d=$zobjexport("",18)
q:output=2 "" q } } i '$d(^XOB(18.12,%d(1))) { s %d(1)="",%ROWCOUNT=0 } Else { s
%ROWCOUNT=1 } s d=$zobjexport(%d(1),18) if $zu(115,2)=1 { l -^XOB(18.12,%d(1))#"SI" } s
%qrc=0 q:output=2 %d(1) q
%QuickFindPKeyByRowID(%rowid) // Get Primary Key fields from row where SQLRowID=%rowid
n d,s,subs,ul
#sqlcompile SELECT=ODBC
&sql(SELECT ien INTO :d(3) FROM xobw.WebServer WHERE %ID = :%rowid)
i SQLCODE { s %ROWCOUNT=0 s:SQLCODE<0 SQLCODE=-SQLCODE s %qrc=SQLCODE q }
s d=$zobjexport($lb(d(3)),5) s %qrc=0,%ROWCOUNT=1 q
BuildPurgeIndices(indices="",build) ; Create/Delete data from index global(s), return
Status Code
q $$$ERROR($$$MethodNotImplemented,"xobw.WebServer::%BuildIndices/%PurgeIndices")
SQLUPPER(v,l) PUBLIC { q $zu(28,v,7,$g(l,32767)) }
ALPHAUP(v,r) PUBLIC { q $zu(28,v,6) }
STRING(v,l) PUBLIC { q $zu(28,v,9,$g(l,32767)) }
SQLSTRING(v,l) PUBLIC { q $zu(28,v,8,$g(l,32767)) }
UPPER(v) PUBLIC { q $zu(28,v,5) }
MVR(v) PUBLIC { q $zu(28,v,2) }
#endclasscontext
#endclassmethod
xobw.WebServiceMetadata.T1^MAC^^62153,34145^0^1
; xobw.WebServiceMetadata.T1
; Filing Methods for table: xobw.WebServiceMetadata (extent = xobw.WebServiceMetadata) Do Not Edit. Compiled March 3, 2011 09:29:05
; Filing Methods for table: xobw.WebServiceMetadata (extent = xobw.WebServiceMetadata)
#classmethod xobw.WebServiceMetadataTableCode
#classcontext xobw.WebServiceMetadata
#include %callout
#include %occExtent
#include %occInclude
#include %systemInclude
#import xobw
%delete(%rowid,%check,%tstart=1,%mv=0) n
bva,%d,%e,%ele,%itm,%key,%l,%oper,%pos,%s,sn,sqlcode,subs s
%oper="DELETE",sqlcode=0,%ROWID=%rowid,%d(1)=%rowid,%e(1)=%rowid,%d(4)=$p(%d(1),"||",1),%
l=$c(0)
k:'$TLEVEL %0CacheLock i '$a(%check,2) { n %ls i
$i(%0CacheLock("xobw.WebServiceMetadata"))>$zu(115,6) { l +^XOB(18.02):$zu(115,4) l:$t ^XOB(18.02) s %ls=$s($t:2,1:0) } else { l +^XOB(18.02,%d(1)):$zu(115,4) s %ls=$t }
s:%ls=2 $e(%check,2)=$c(1) s:%ls=1 $e(%l)=$c(1) i '%ls s SQLCODE=-110,%msg="Unable to
acquire lock for "_%oper_" of table 'xobw.WebServiceMetadata' on row with RowID =
'"_$g(%d(1))_"'" q } If %tstart { TSTART:($zu(115,1)=1)||('$TLEVEL&&($zu(115,1)=2)) } s
$zt="%ETrap"
i '$a(%check),'$zu(115,7) d i sqlcode s SQLCODE=sqlcode g %EExit
. n %fk,%k,%p,%st,%t,%z s %k="",%p("%1")="%d(1),",%p("ienIndex")="%d(4),"
. f q:sqlcode<0 s %k=$o(^oddEXTR("xobw.WebServiceMetadata","n",%k)) q:%k="" s %t="" f
s %t=$o(^oddEXTR("xobw.WebServiceMetadata","n",%k,"f",%t)) q:%t="" s
%st=(%t="xobw.WebServiceMetadata") s %fk="" f s
%fk=$o(^oddEXTR("xobw.WebServiceMetadata","n",%k,"f",%t,%fk)) q:%fk="" s
%z=$g(^oddEXTR("xobw.WebServiceMetadata","n",%k,"f",%t,%fk,61)) i
%z'="",@("$$"_%z_"("_%p(%k)_",%k,%st)") s sqlcode=-124 q
k ^XOB(18.02,%d(1))
d gunlock TCOMMIT:%tstart&&($zu(115,1)=1)
s SQLCODE=0 q
%insert(%d,%check,%inssel,%vco,%tstart=1,%mv=0) n
bva,%ele,%itm,%key,%l,%n,%oper,%pos,%s,sqlcode,sn,subs s
%oper="INSERT",sqlcode=0,%l=$c(0,0,0) d Normalize
k:'$TLEVEL %0CacheLock If %tstart { TSTART:($zu(115,1)=1)||('$TLEVEL&&($zu(115,1)=2)) }
s $zt="%ETrap"
i '$a(%check) i $g(%d(4))="" { d missing("ien") s SQLCODE=sqlcode g %EExit }
s %d(1)=%d(4)
i '$a(%check) d i sqlcode<0 s SQLCODE=sqlcode g %EExit
. i $g(%vco)'="" d @%vco q:sqlcode<0
. d:$g(%d(5))="" %nBuild:'$d(%n),missing($lg(%n,6)) d:$g(%d(7))=""
%nBuild:'$d(%n),missing($lg(%n,8))
. q:sqlcode<0
. If '$a(%check,2) { l +^XOB(18.02,%d(1)):$zu(115,4) If $t { s $e(%l,2)=$c(1) } Else { d
ulerror("ienIndex") q } } If $d(^XOB(18.02,%d(1))) s sqlcode=-119,%msg="Table
'xobw.WebServiceMetadata', Constraint 'ienIndex' (Field 'ien') failed unique check" q
i '$a(%check,2) { n %ls i $i(%0CacheLock("xobw.WebServiceMetadata"))>$zu(115,6) { l
+^XOB(18.02):$zu(115,4) l:$t -^XOB(18.02) s %ls=$s($t:2,1:0) } else { l
+^XOB(18.02,%d(1)):$zu(115,4) s %ls=$t } s:%ls=2 $e(%check,2)=$c(1) s:%ls=1 $e(%l)=$c(1)
i '%ls s SQLCODE=-110,%msg="Unable to acquire lock for "_%oper_" of table
'xobw.WebServiceMetadata' on row with RowID = '"_$g(%d(1))_"'" g %EExit }
s:($g(%d(2))'="") ^XOB(18.02,%d(1),201)=$g(%d(2))
s:($g(%d(3))'="") ^XOB(18.02,%d(1),200)=$g(%d(3))
s ^XOB(18.02,%d(1),0)=%d(5)_"^"_%d(7)
s:($g(%d(6))'="") ^XOB(18.02,%d(1),100)=$g(%d(6))
d gunlock2
d gunlock TCOMMIT:%tstart&&($zu(115,1)=1)
s SQLCODE=0 q %d(1)
// %insert-end
%update(%rowid,%check,%d,%vco,%tstart=1,%mv=0) n
%e,bva,%ele,%itm,%key,%l,%n,%oper,%pos,%s,icol,s,sn,sqlcode,subs,t s
%oper="UPDATE",sqlcode=0,%ROWID=%rowid,$e(%e,1)=$c(0),%l=$c(0,0,0) d Normalize i
($d(%d(1))&&($g(%d(1))'=%rowid))||($d(%d(4))&&($g(%d(4))'=$p(%rowid,"||",1))) s SQLCODE=107,%msg="Updating any of the RowID Fields ('ID', or 'ien') not allowed" q
f icol=2:1:7 s $e(%e,icol)=$c($d(%d(icol)))
s %d(1)=%rowid,%e(1)=%rowid,%d(4)=$p(%d(1),"||",1)
k:'$TLEVEL %0CacheLock i '$a(%check,2) { n %ls i
$i(%0CacheLock("xobw.WebServiceMetadata"))>$zu(115,6) { l +^XOB(18.02):$zu(115,4) l:$t ^XOB(18.02) s %ls=$s($t:2,1:0) } else { l +^XOB(18.02,%d(1)):$zu(115,4) s %ls=$t }
s:%ls=2 $e(%check,2)=$c(1) s:%ls=1 $e(%l)=$c(1) i '%ls s SQLCODE=-110,%msg="Unable to
acquire lock for "_%oper_" of table 'xobw.WebServiceMetadata' on row with RowID =
'"_$g(%d(1))_"'" q } If %tstart { TSTART:($zu(115,1)=1)||('$TLEVEL&&($zu(115,1)=2)) } s
$zt="%ETrap"
i $g(%vco)'="" { d getoldall i sqlcode { s SQLCODE=-109 g %EExit } f icol=2,3,5,6,7 {
s:'$d(%d(icol)) %d(icol)=%e(icol) s:%d(icol)=%e(icol) $e(%e,icol)=$c(0) }}
d:'$a(%check) i sqlcode s SQLCODE=sqlcode g %EExit
. i $g(%vco)'="" d @%vco q:sqlcode<0
. i $a(%e,5),$g(%d(5))="" d %nBuild:'$d(%n),missing($lg(%n,6))
. i $a(%e,7),$g(%d(7))="" d %nBuild:'$d(%n),missing($lg(%n,8))
. q:sqlcode
s:$a(%e,2) ^XOB(18.02,%d(1),201)=$g(%d(2))
s:$a(%e,3) ^XOB(18.02,%d(1),200)=$g(%d(3))
s:$a(%e,5)||$a(%e,7)
s=$g(^XOB(18.02,%d(1),0)),^XOB(18.02,%d(1),0)=$s($a(%e,5):%d(5),1:$p(s,"^"))_"^"_$s($a(%e
,7):%d(7),1:$p(s,"^",2))_"^"_$p(s,"^",3,3641144)
s:$a(%e,6) ^XOB(18.02,%d(1),100)=$g(%d(6))
d gunlock2
d gunlock TCOMMIT:%tstart&&($zu(115,1)=1)
s SQLCODE=0 q
%1(%p1,lockonly=0,unlockref) // FKey validation entry point
n id s id=%p1
if '$$%getlock(id,1,.unlockref) { s sqlcode=-114,%msg="SQLCODE=-114: Cannot acquire
lock on referenced row for referenced key XOBW.WEBSERVICEMETADATA:%1" q 0 }
if 'lockonly { n qv s qv=$d(^XOB(18.02,%p1)) d:'$g(unlockref) %ReleaseLock(id,1) q qv }
Else { d:'$g(unlockref) %ReleaseLock(id,1) q 1 }
ienIndex(%p1,lockonly=0,unlockref) // FKey validation entry point
n id s id=%p1
if '$$%getlock(id,1,.unlockref) { s sqlcode=-114,%msg="SQLCODE=-114: Cannot acquire
lock on referenced row for referenced key XOBW.WEBSERVICEMETADATA:IENINDEX" q 0 }
if 'lockonly { n qv s qv=$d(^XOB(18.02,%p1)) d:'$g(unlockref) %ReleaseLock(id,1) q qv }
else { d:'$g(unlockref) %ReleaseLock(id,1) q 1 }
%PurgeIndices(indices="") q $$BuildPurgeIndices(indices,0)
%BuildIndices(indices="") q $$BuildPurgeIndices(indices,1)
%CheckUniqueIndices(indices,ok) n d,g,n,o s d=0
s ok=1 q
%AcquireLock(%rowid,s=0,unlockref) n %d,gotlock s %d(1)=%rowid,%d(4)=$p(%d(1),"||",1) s
s=$e("S",s) l +^XOB(18.02,%d(1))#s:$zu(115,4) set gotlock=$t s:gotlock&&$g(unlockref)
unlockref($i(unlockref))=$lb($name(^XOB(18.02,%d(1))),"xobw.WebServiceMetadata") q
gotlock
%AcquireTableLock(s=0,SQLCODE=0) s s=$e("S",s) l +^XOB(18.02)#s:$zu(115,4) q:$t 1 s
SQLCODE=-110,%msg="Unable to acquire "_$s(s="S":"shared ",1:"")_"table lock for table
'xobw.WebServiceMetadata'" q 0
%ReleaseLock(%rowid,s=0,i=0) n %d s %d(1)=%rowid,%d(4)=$p(%d(1),"||",1) s
s=$e("S",s)_$e("I",i) l -^XOB(18.02,%d(1))#s
s:i&&($g(%0CacheLock("xobw.WebServiceMetadata")))
%0CacheLock("xobw.WebServiceMetadata")=%0CacheLock("xobw.WebServiceMetadata")-1 q
%ReleaseTableLock(s=0,i=0) s s=$e("S",s)_$e("I",i) l -^XOB(18.02)#s q 1
%getlock(%rowid,%s=0,unlockref) [] PUBLIC { k:'$TLEVEL %0CacheLock i
$i(%0CacheLock("xobw.WebServiceMetadata"))>$zu(115,6) { l +^XOB(18.02):$zu(115,4) l:$t ^XOB(18.02) q $s($t:2,1:0) } q $$%AcquireLock(%rowid,%s,.unlockref) }
gunlock l:$a(%l) -^XOB(18.02,%d(1))
q
gunlock2 l:$a(%l,2) -^XOB(18.02,%d(1))#"I" q
%nBuild s %n=$lb(,"ID","availRoot","contextRoot","ien","name","proxyClassName","type")
q
Normalize n %f ;Normalize all fields
f %f=2,3,4,5,6,7 { s:$g(%d(%f))'="" %d(%f)=$e(%d(%f),1,50) } q
missing(fname) s sqlcode=-108,%msg="'"_fname_"' in table
'"_"xobw"_"."_"WebServiceMetadata"_"' is a required field" q
ulerror(cname) s sqlcode=-110,%msg="Unable to obtain lock to
"_$s(%oper="DELETE":"maintain",1:"check")_" uniqueness of constraint '"_cname_"'" q
%ETrap s $zt="",SQLCODE=-415,%msg=$s($g(%msg)'="":%msg_" -- ",1:"")_"Error occuring
during "_%oper_" in '"_"xobw"_"."_"WebServiceMetadata"_"': $ZE="_$ze i
$ze["<FRAMESTACK>" { s %msg="Error '"_$ze_"' occurred during "_%oper_" in
'"_"xobw"_"."_"WebServiceMetadata"_" - Process HALTed" d
##Class(%SYS.System).WriteToConsoleLog(%msg) i ($zu(67,10,$j)=1)||($zu(67,10,$j)=3) { w
!,%msg h 3 } HALT } g %EExit
%EExit d:%oper'="DELETE" gunlock2 d gunlock If %tstart,$zu(115,1)=1,$TLEVEL { s %tstart=0
TROLLBACK 1 } q:%oper="INSERT" "" q
getoldall ; Get all old data values
#sqlcompile SELECT=Logical
#import xobw
&sql(SELECT availRoot,contextRoot,name,proxyClassName,type INTO :%e() FROM
xobw.WebServiceMetadata WHERE ID=:%rowid) s sqlcode=SQLCODE q
%QuickInsert(d,%nolock=0,pkey=0,parentpkey=0) // Insert new row with values d(icol)
s:%nolock=2 %nolock=0
s
%ROWID=$$%insert^xobw.WebServiceMetadata.T1(.d,$c(0,%nolock=1,0,0,0)),%ROWCOUNT='SQLCODE,
%qrc=SQLCODE
i pkey { i %qrc { s %ROWID=$lb(-1) } else { s %ROWID=$lb(d(4)) } s
d=$zobjexport(%ROWID,5) } k d q
%QuickBulkInsert(%inscall,%nolock=0) // Insert multiple new rows with values %qd(icol)
n c,call,nc,nr,%qd,r,x s:%nolock=2 %nolock=0 s nr=$zobjexport(12) f r=1:1:nr { s
nc=$zobjexport(12) k %qd f c=1:1:nc { s:$zobjexport(17) %qd(c+1)=$zobjexport(12) } d
@%inscall s x=$zobjexport($s(%qrc:-1,1:%ROWID),18) } q
%QuickUpdate(%rowid,d,%nolock=0,pkey=0) // Update row with SQLRowID=%rowid with values
d(icol)
s:pkey %rowid=$$%QuickFindRowIDByPKey(%rowid,2) i %rowid="" { s %qrc=0,%ROWCOUNT=0 q }
i '$$%1^xobw.WebServiceMetadata.T1(%rowid) s %qrc=0,%ROWCOUNT=0 q
s:%nolock=2 %nolock=0
d %update^xobw.WebServiceMetadata.T1(%rowid,$c(0,%nolock=1,0,0,0),.d) s
%ROWCOUNT='SQLCODE s:SQLCODE=100 SQLCODE=0 s %qrc=SQLCODE k d q
%QuickBulkUpdate(%updcall,%nolock=0) // Update multiple new rows with values %qd(icol)
n c,call,nc,nr,%qd,r,x s:%nolock=2 %nolock=0 s nr=$zobjexport(12) f r=1:1:nr { s
%rowid=$zobjexport(12),nc=$zobjexport(12) k %qd f c=1:1:nc { s:$zobjexport(17)
%qd(c+1)=$zobjexport(12) } d @%updcall s x=$zobjexport($s(%qrc:-1,1:%ROWID),18) q:%qrc }
q
%QuickBulkSave(%inscall,%updcall,%nolock=0) // Insert and/or Update multiple [new] rows
with values %qd(icol)
n c,nc,nr,%pkey,%qd,r,%rowid,x s:%nolock=2 %nolock=0 s nr=$zobjexport(12) f r=1:1:nr {
s %pkey=$zobjexport(12),nc=$zobjexport(12) k %qd
f c=1:1:nc { s:$zobjexport(17) %qd(c+1)=$zobjexport(12) }
s %rowid=$$%QuickFindRowIDByPKey(%pkey,2) if %rowid="" { d @%inscall s
x=$zobjexport($s(%qrc:-1,1:%ROWID),18) } // Insert new row
else { d @%updcall s x=$zobjexport($s(%qrc:-1,1:%ROWID),18) q:%qrc } // Update
existing Row
} q
%QuickDelete(%rowid,%nolock=0,pkey=0) // Delete row where SQLRowID=%rowid
s:%nolock=2 %nolock=0
s:pkey %rowid=$$%QuickFindRowIDByPKey(%rowid,2) i %rowid="" { s %qrc=0,%ROWCOUNT=0 q }
i '$$%1^xobw.WebServiceMetadata.T1(%rowid) s %qrc=0,%ROWCOUNT=0 q
d %delete^xobw.WebServiceMetadata.T1(%rowid,$c(0,%nolock=1,0))
If SQLCODE=-106 { s %qrc=0,%ROWCOUNT=0 } ElseIf SQLCODE<0 { s %qrc=-SQLCODE,%ROWCOUNT=0
} Else { s %ROWCOUNT=1,%qrc=SQLCODE } q
%QuickLoad(%rowid,%nolock=0,pkey=0,skipnewqout=0,qq=0) // Get fields from row where
SQLRowID=%rowid
n d,i,il,subs,t s:%nolock=2 %nolock=1
s:pkey %rowid=$$%QuickFindRowIDByPKey(%rowid,2) i %rowid="" { s
SQLCODE=100,%qrc=100,%ROWCOUNT=0 q }
i %nolock=0 { i '$$%AcquireLock^xobw.WebServiceMetadata.T1(%rowid) { s
%qrc=114,%msg="Unable to acquire exclusive lock on table xobw.WebServiceMetadata for
RowID value: "_%rowid,%ROWCOUNT=0 q } s:$zu(115,2) il=$zu(115,2,0) }
#sqlcompile SELECT=ODBC
&sql(SELECT %INTERNAL(ID),availRoot,contextRoot,ien,name,proxyClassName,type INTO
:d(1),:d(2),:d(3),:d(4),:d(5),:d(6),:d(7) FROM xobw.WebServiceMetadata WHERE %ID =
:%rowid)
i SQLCODE { i %nolock=0 { d %ReleaseLock^xobw.WebServiceMetadata.T1(%rowid,0,1) d:$g(il)
$zu(115,2,il) } s %ROWCOUNT=0 s:SQLCODE<0 SQLCODE=-SQLCODE s %qrc=SQLCODE q }
If %nolock=0 { If $zu(115,1)=1 { TSTART } ElseIf '$TLEVEL,$zu(115,1)=2 { TSTART }}
s:qq d=$zobjexport("xobw.WebServiceMetadata",18),d=$zobjexport(7,18) s i=-1 f { s
i=$o(d(i)) q:i="" s d=$zobjexport(d(i),18) } s %qrc=0,%ROWCOUNT=1 i %nolock=0 { d
%ReleaseLock^xobw.WebServiceMetadata.T1(%rowid,0,0) d:$g(il) $zu(115,2,il) } q
%QuickBulkLoad(%rowidlist,%nolock=0,pkey=0) // QuickLoad multiple rows
n i,ql,rc,%rowid s:%nolock=2 %nolock=0 s
rc=0,ql=$g(^oddSQL("xobw","WebServiceMetadata","QL")) s $p(ql,",",4)="1)"
f i=2:1:$lg(%rowidlist)+1 { s %rowid=$lg(%rowidlist,i) d @ql If SQLCODE=0 { s rc=rc+1 }
Else { q } } s %ROWCOUNT=rc q
%QuickFindRowIDByPKey(%pkey,output=1,internal=0) // Get ROWID value for PKEY value given
in %pkey
n %d,d s %d(4)=$lg(%pkey,1) s %d(1)=%d(4) if $zu(115,2)=1 { l
+^XOB(18.02,%d(1))#"S":$zu(115,4) i '$t { s %qrc=114,%msg="Unable to acquire shared lock
on table xobw.WebServiceMetadata for RowID value:
"_%d(1),%ROWCOUNT=0,d=$zobjexport("",18) q:output=2 "" q } } i '$d(^XOB(18.02,%d(1))) {
s %d(1)="",%ROWCOUNT=0 } Else { s %ROWCOUNT=1 } s d=$zobjexport(%d(1),18) if $zu(115,2)=1
{ l -^XOB(18.02,%d(1))#"SI" } s %qrc=0 q:output=2 %d(1) q
%QuickFindPKeyByRowID(%rowid) // Get Primary Key fields from row where SQLRowID=%rowid
n d,s,subs,ul
#sqlcompile SELECT=ODBC
&sql(SELECT ien INTO :d(4) FROM xobw.WebServiceMetadata WHERE %ID = :%rowid)
i SQLCODE { s %ROWCOUNT=0 s:SQLCODE<0 SQLCODE=-SQLCODE s %qrc=SQLCODE q }
s d=$zobjexport($lb(d(4)),5) s %qrc=0,%ROWCOUNT=1 q
BuildPurgeIndices(indices="",build) ; Create/Delete data from index global(s), return
Status Code
q
$$$ERROR($$$MethodNotImplemented,"xobw.WebServiceMetadata::%BuildIndices/%PurgeIndices")
SQLUPPER(v,l) PUBLIC { q $zu(28,v,7,$g(l,32767)) }
ALPHAUP(v,r) PUBLIC { q $zu(28,v,6) }
STRING(v,l) PUBLIC { q $zu(28,v,9,$g(l,32767)) }
SQLSTRING(v,l) PUBLIC { q $zu(28,v,8,$g(l,32767)) }
UPPER(v) PUBLIC { q $zu(28,v,5) }
MVR(v) PUBLIC { q $zu(28,v,2) }
#endclasscontext
#endclassmethod
xobw.WebServicesAuthorized.T1^MAC^^62153,34146^0^1
; xobw.WebServicesAuthorized.T1
; Filing Methods for table: xobw.WebServicesAuthorized (extent =
xobw.WebServicesAuthorized) - Do Not Edit. Compiled March 3, 2011 09:29:05
; Filing Methods for table: xobw.WebServicesAuthorized (extent =
xobw.WebServicesAuthorized)
#classmethod xobw.WebServicesAuthorizedTableCode
#classcontext xobw.WebServicesAuthorized
#include %callout
#include %occExtent
#include %occInclude
#include %systemInclude
#import xobw
%delete(%rowid,%check,%tstart=1,%mv=0) n
bva,%d,%e,%ele,%itm,%key,%l,%oper,%pos,%s,sn,sqlcode,subs s
%oper="DELETE",sqlcode=0,%ROWID=%rowid,%d(1)=%rowid,%e(1)=%rowid,%d(0)=$p(%d(1),"||",1),%
d(2)=$p(%d(1),"||",2),subs(7)=$p(%d(0),"||",1),%l=$c(0)
k:'$TLEVEL %0CacheLock i '$a(%check,2) { n %ls i
$i(%0CacheLock("xobw.WebServicesAuthorized"))>$zu(115,6) { l +^XOB(18.12):$zu(115,4) l:$t
-^XOB(18.12) s %ls=$s($t:2,1:0) } else { l +^XOB(18.12,subs(7),100,%d(2)):$zu(115,4) s
%ls=$t } s:%ls=2 $e(%check,2)=$c(1) s:%ls=1 $e(%l)=$c(1) i '%ls s SQLCODE=110,%msg="Unable to acquire lock for "_%oper_" of table 'xobw.WebServicesAuthorized' on
row with RowID = '"_$g(%d(1))_"'" q } If %tstart {
TSTART:($zu(115,1)=1)||('$TLEVEL&&($zu(115,1)=2)) } s $zt="%ETrap"
i '$a(%check),'$zu(115,7) d i sqlcode s SQLCODE=sqlcode g %EExit
. n %fk,%k,%p,%st,%t,%z s %k="",%p("%1")="%d(1),",%p("ienIndex")="%d(0),%d(0),%d(2),,,"
. f q:sqlcode<0 s %k=$o(^oddEXTR("xobw.WebServicesAuthorized","n",%k)) q:%k="" s
%t="" f s %t=$o(^oddEXTR("xobw.WebServicesAuthorized","n",%k,"f",%t)) q:%t="" s
%st=(%t="xobw.WebServicesAuthorized") s %fk="" f s
%fk=$o(^oddEXTR("xobw.WebServicesAuthorized","n",%k,"f",%t,%fk)) q:%fk="" s
%z=$g(^oddEXTR("xobw.WebServicesAuthorized","n",%k,"f",%t,%fk,61)) i
%z'="",@("$$"_%z_"("_%p(%k)_",%k,%st)") s sqlcode=-124 q
k ^XOB(18.12,subs(7),100,%d(2))
d gunlock TCOMMIT:%tstart&&($zu(115,1)=1)
s SQLCODE=0 q
%insert(%d,%check,%inssel,%vco,%tstart=1,%mv=0) n
bva,%ele,%itm,%key,%l,%n,%oper,%pos,%s,sqlcode,sn,subs s
%oper="INSERT",sqlcode=0,%l=$c(0,0,0) s:$d(%d(0)) subs(7)=$p(%d(0),"||",1) i
'$a(%check),'$$FieldValidate() { s SQLCODE=sqlcode q "" } d Normalize
k:'$TLEVEL %0CacheLock If %tstart { TSTART:($zu(115,1)=1)||('$TLEVEL&&($zu(115,1)=2)) }
s $zt="%ETrap"
i '$a(%check) i $g(%d(0))="" { d missing("webServerRef") s SQLCODE=sqlcode g %EExit } i
$g(%d(2))="" { d missing("ien") s SQLCODE=sqlcode g %EExit }
s %d(1)=%d(0)_"||"_%d(2),subs(7)=$p(%d(0),"||",1)
i '$a(%check) d i sqlcode<0 s SQLCODE=sqlcode g %EExit
. i $g(%vco)'="" d @%vco q:sqlcode<0
. If '$a(%check,2) { l +^XOB("ienIndex",%d(0),%d(0),%d(2)):$zu(115,4) If $t { s
$e(%l,2)=$c(1) } Else { d ulerror("ienIndex") q } } If '$$fdU12(%d(0),%d(0),%d(2)) s
sqlcode=-119,%msg="Table 'xobw.WebServicesAuthorized', Constraint 'ienIndex' (Fields
'webServerRef','webServerRef','ien') failed unique check" q
. i '$$%1^xobw.WebServer.T1(%d(0)) s sqlcode=-104,%msg="Child table references nonexistent row in parent table" q
i '$a(%check,2) { n %ls i $i(%0CacheLock("xobw.WebServicesAuthorized"))>$zu(115,6) { l
+^XOB(18.12):$zu(115,4) l:$t -^XOB(18.12) s %ls=$s($t:2,1:0) } else { l
+^XOB(18.12,subs(7),100,%d(2)):$zu(115,4) s %ls=$t } s:%ls=2 $e(%check,2)=$c(1) s:%ls=1
$e(%l)=$c(1) i '%ls s SQLCODE=-110,%msg="Unable to acquire lock for "_%oper_" of table
'xobw.WebServicesAuthorized' on row with RowID = '"_$g(%d(1))_"'" g %EExit }
s ^XOB(18.12,subs(7),100,%d(2))=""
s:($g(%d(3))'="")||($g(%d(4))'="")
^XOB(18.12,subs(7),100,%d(2),0)=$g(%d(4))_"^^^^^"_$g(%d(3))
d gunlock2
d gunlock TCOMMIT:%tstart&&($zu(115,1)=1)
s SQLCODE=0 q %d(1)
// %insert-end
%update(%rowid,%check,%d,%vco,%tstart=1,%mv=0) n
%e,bva,%ele,%itm,%key,%l,%n,%oper,%pos,%s,icol,s,sn,sqlcode,subs,t s
%oper="UPDATE",sqlcode=0,%ROWID=%rowid,$e(%e,1)=$c(0),%l=$c(0,0,0) i
'$a(%check),'$$FieldValidate() s SQLCODE=sqlcode q
d Normalize i
($d(%d(1))&&($g(%d(1))'=%rowid))||($d(%d(0))&&($g(%d(0))'=$p(%rowid,"||",1)))||($d(%d(2))
&&($g(%d(2))'=$p(%rowid,"||",2))) s SQLCODE=-107,%msg="Updating any of the RowID Fields
('ID', 'webServerRef', or 'ien') not allowed" q
f icol=2:1:4 s $e(%e,icol)=$c($d(%d(icol)))
s
%d(1)=%rowid,%e(1)=%rowid,%d(0)=$p(%d(1),"||",1),%d(2)=$p(%d(1),"||",2),subs(7)=$p(%d(0),
"||",1)
k:'$TLEVEL %0CacheLock i '$a(%check,2) { n %ls i
$i(%0CacheLock("xobw.WebServicesAuthorized"))>$zu(115,6) { l +^XOB(18.12):$zu(115,4) l:$t
-^XOB(18.12) s %ls=$s($t:2,1:0) } else { l +^XOB(18.12,subs(7),100,%d(2)):$zu(115,4) s
%ls=$t } s:%ls=2 $e(%check,2)=$c(1) s:%ls=1 $e(%l)=$c(1) i '%ls s SQLCODE=110,%msg="Unable to acquire lock for "_%oper_" of table 'xobw.WebServicesAuthorized' on
row with RowID = '"_$g(%d(1))_"'" q } If %tstart {
TSTART:($zu(115,1)=1)||('$TLEVEL&&($zu(115,1)=2)) } s $zt="%ETrap"
i $g(%vco)'="" { d getoldall i sqlcode { s SQLCODE=-109 g %EExit } f icol=3,4 {
s:'$d(%d(icol)) %d(icol)=%e(icol) s:%d(icol)=%e(icol) $e(%e,icol)=$c(0) }}
d:'$a(%check) i sqlcode s SQLCODE=sqlcode g %EExit
. i $g(%vco)'="" d @%vco q:sqlcode<0
s:$a(%e,3)||$a(%e,4)
s=$g(^XOB(18.12,subs(7),100,%d(2),0)),^XOB(18.12,subs(7),100,%d(2),0)=$s($a(%e,4):%d(4),1
:$p(s,"^"))_"^"_$p(s,"^",2)_"^"_$p(s,"^",3)_"^"_$p(s,"^",4)_"^"_$p(s,"^",5)_"^"_$s($a(%e,
3):%d(3),1:$p(s,"^",6))_"^"_$p(s,"^",7,3641144)
d gunlock2
d gunlock TCOMMIT:%tstart&&($zu(115,1)=1)
s SQLCODE=0 q
%1(%p1,lockonly=0,unlockref) // FKey validation entry point
n id s id=%p1
if '$$%getlock(id,1,.unlockref) { s sqlcode=-114,%msg="SQLCODE=-114: Cannot acquire
lock on referenced row for referenced key XOBW.WEBSERVICESAUTHORIZED:%1" q 0 }
if 'lockonly { n qv s qv='$$fdU11(%p1) d:'$g(unlockref) %ReleaseLock(id,1) q qv } Else {
d:'$g(unlockref) %ReleaseLock(id,1) q 1 }
ienIndex(%p1,%p2,%p3,lockonly=0,unlockref) // FKey validation entry point
n id s id=$$%QuickFindRowIDByPKey($lb(%p1,%p2,%p3),0,1) q:SQLCODE $s('lockonly:0,1:1)
i '$$%getlock(id,1,.unlockref) { s sqlcode=-114,%msg="SQLCODE=-114: Cannot acquire lock
on referenced row for referenced key XOBW.WEBSERVICESAUTHORIZED:IENINDEX" q 0 }
if 'lockonly { n qv s qv='$$fdU12(%p1,%p1,%p3) d:'$g(unlockref) %ReleaseLock(id,1) q qv
} else { d:'$g(unlockref) %ReleaseLock(id,1) q 1 }
%PurgeIndices(indices="") q $$BuildPurgeIndices(indices,0)
%BuildIndices(indices="") q $$BuildPurgeIndices(indices,1)
%CheckUniqueIndices(indices,ok) n d,g,n,o s d=0
s ok=1 q
%AcquireLock(%rowid,s=0,unlockref) n %d,gotlock,subs s
%d(1)=%rowid,%d(0)=$p(%d(1),"||",1),%d(2)=$p(%d(1),"||",2),subs(7)=$p(%d(0),"||",1) s
s=$e("S",s) l +^XOB(18.12,subs(7),100,%d(2))#s:$zu(115,4) set gotlock=$t
s:gotlock&&$g(unlockref)
unlockref($i(unlockref))=$lb($name(^XOB(18.12,subs(7),100,%d(2))),"xobw.WebServicesAuthor
ized") q gotlock
%AcquireTableLock(s=0,SQLCODE=0) s s=$e("S",s) l +^XOB(18.12)#s:$zu(115,4) q:$t 1 s
SQLCODE=-110,%msg="Unable to acquire "_$s(s="S":"shared ",1:"")_"table lock for table
'xobw.WebServicesAuthorized'" q 0
%ReleaseLock(%rowid,s=0,i=0) n %d s
%d(1)=%rowid,%d(0)=$p(%d(1),"||",1),%d(2)=$p(%d(1),"||",2),subs(7)=$p(%d(0),"||",1) s
s=$e("S",s)_$e("I",i) l -^XOB(18.12,subs(7),100,%d(2))#s
s:i&&($g(%0CacheLock("xobw.WebServicesAuthorized")))
%0CacheLock("xobw.WebServicesAuthorized")=%0CacheLock("xobw.WebServicesAuthorized")-1 q
%ReleaseTableLock(s=0,i=0) s s=$e("S",s)_$e("I",i) l -^XOB(18.12)#s q 1
%getlock(%rowid,%s=0,unlockref) [] PUBLIC { k:'$TLEVEL %0CacheLock i
$i(%0CacheLock("xobw.WebServicesAuthorized"))>$zu(115,6) { l +^XOB(18.12):$zu(115,4) l:$t
-^XOB(18.12) q $s($t:2,1:0) } q $$%AcquireLock(%rowid,%s,.unlockref) }
gunlock l:$a(%l) -^XOB(18.12,subs(7),100,%d(2))
q
gunlock2 l:$a(%l,2) -^XOB("ienIndex",%d(0),%d(0),%d(2))#"I" q
%nBuild s %n=$lb("ID","ID","ien","status","webServiceIen")
q
FieldValidate() n %f ;Validate all fields
i $g(%d(3))'="",'($$fdV3(%d(3))) { d invalid(3+1,%d(3)) } q 'sqlcode
fdV3(%val="")
Quit $isvalidnum(%val,0,0,2)&&(+%val'=2)
invalid(ficol,val) [sqlcode] PUBLIC { s:$l($g(val))>40 val=$e(val,1,40)_"..." d:'$d(%n)
%nBuild s %msg="Field 'WebServicesAuthorized."_$lg(%n,ficol)_"' "_$s($g(val)'="":" (value
"_$s(val="":"<NULL>",val=$c(0):"<EMPTY STRING>",1:"'"_val_"'")_")",1:"")_" failed
validation",sqlcode=$s(%oper="INSERT":-104,1:-105) q }
Normalize n %f ;Normalize all fields
f %f=0,2,4 { s:$g(%d(%f))'="" %d(%f)=$e(%d(%f),1,50) } s:$g(%d(3))'="" %d(3)=%d(3)\1 q
#sqlcompile SELECT=Logical
#import xobw
fdU11(%1,%id="") &sql(SELECT ID FROM xobw.WebServicesAuthorized WHERE ID=:%1 AND (%ID <>
:%id OR :%id IS NULL)) QUIT SQLCODE=100
#sqlcompile SELECT=Logical
#import xobw
fdU12(%1,%2,%3,%id="") &sql(SELECT webServerRef,webServerRef,ien FROM
xobw.WebServicesAuthorized WHERE webServerRef=:%1 AND webServerRef=:%2 AND ien=:%3 AND
(%ID <> :%id OR :%id IS NULL)) QUIT SQLCODE=100
missing(fname) s sqlcode=-108,%msg="'"_fname_"' in table
'"_"xobw"_"."_"WebServicesAuthorized"_"' is a required field" q
ulerror(cname) s sqlcode=-110,%msg="Unable to obtain lock to
"_$s(%oper="DELETE":"maintain",1:"check")_" uniqueness of constraint '"_cname_"'" q
%ETrap s $zt="",SQLCODE=-415,%msg=$s($g(%msg)'="":%msg_" -- ",1:"")_"Error occuring
during "_%oper_" in '"_"xobw"_"."_"WebServicesAuthorized"_"': $ZE="_$ze i
$ze["<FRAMESTACK>" { s %msg="Error '"_$ze_"' occurred during "_%oper_" in
'"_"xobw"_"."_"WebServicesAuthorized"_" - Process HALTed" d
##Class(%SYS.System).WriteToConsoleLog(%msg) i ($zu(67,10,$j)=1)||($zu(67,10,$j)=3) { w
!,%msg h 3 } HALT } g %EExit
%EExit d:%oper'="DELETE" gunlock2 d gunlock If %tstart,$zu(115,1)=1,$TLEVEL { s %tstart=0
TROLLBACK 1 } q:%oper="INSERT" "" q
getoldall ; Get all old data values
#sqlcompile SELECT=Logical
#import xobw
&sql(SELECT status,webServiceIen INTO :%e() FROM xobw.WebServicesAuthorized WHERE
ID=:%rowid) s sqlcode=SQLCODE q
%QuickInsert(d,%nolock=0,pkey=0,parentpkey=0) // Insert new row with values d(icol)
s:%nolock=2 %nolock=0
i parentpkey { x "s d(0)=$$"_$p($g(^oddSQL("xobw","WebServer","Q1")),"(")_"(d(0),2)" i
d(0)="" { s %qrc=0,%ROWCOUNT=0,%msg="Could not find parent row for the given parent
Primary Key value" q }}
s
%ROWID=$$%insert^xobw.WebServicesAuthorized.T1(.d,$c(0,%nolock=1,0,0,0)),%ROWCOUNT='SQLCO
DE,%qrc=SQLCODE
i pkey { i %qrc { s %ROWID=$lb(-1) } else { s %ROWID=$lb(d(0),d(0),d(2)) } s
d=$zobjexport(%ROWID,5) } k d q
%QuickBulkInsert(%inscall,%nolock=0) // Insert multiple new rows with values %qd(icol)
n c,call,nc,nr,%qd,r,x s:%nolock=2 %nolock=0 s nr=$zobjexport(12) f r=1:1:nr { s
nc=$zobjexport(12) k %qd f c=1:1:nc { s:$zobjexport(17) %qd(c+1)=$zobjexport(12) } d
@%inscall s x=$zobjexport($s(%qrc:-1,1:%ROWID),18) } q
%QuickUpdate(%rowid,d,%nolock=0,pkey=0) // Update row with SQLRowID=%rowid with values
d(icol)
s:pkey %rowid=$$%QuickFindRowIDByPKey(%rowid,2) i %rowid="" { s %qrc=0,%ROWCOUNT=0 q }
i '$$%1^xobw.WebServicesAuthorized.T1(%rowid) s %qrc=0,%ROWCOUNT=0 q
s:%nolock=2 %nolock=0
d %update^xobw.WebServicesAuthorized.T1(%rowid,$c(0,%nolock=1,0,0,0),.d) s
%ROWCOUNT='SQLCODE s:SQLCODE=100 SQLCODE=0 s %qrc=SQLCODE k d q
%QuickBulkUpdate(%updcall,%nolock=0) // Update multiple new rows with values %qd(icol)
n c,call,nc,nr,%qd,r,x s:%nolock=2 %nolock=0 s nr=$zobjexport(12) f r=1:1:nr { s
%rowid=$zobjexport(12),nc=$zobjexport(12) k %qd f c=1:1:nc { s:$zobjexport(17)
%qd(c+1)=$zobjexport(12) } d @%updcall s x=$zobjexport($s(%qrc:-1,1:%ROWID),18) q:%qrc }
q
%QuickBulkSave(%inscall,%updcall,%nolock=0) // Insert and/or Update multiple [new] rows
with values %qd(icol)
n c,nc,nr,%pkey,%qd,r,%rowid,x s:%nolock=2 %nolock=0 s nr=$zobjexport(12) f r=1:1:nr {
s %pkey=$zobjexport(12),nc=$zobjexport(12) k %qd
f c=1:1:nc { s:$zobjexport(17) %qd(c+1)=$zobjexport(12) }
s %rowid=$$%QuickFindRowIDByPKey(%pkey,2) if %rowid="" { d @%inscall s
x=$zobjexport($s(%qrc:-1,1:%ROWID),18) } // Insert new row
else { d @%updcall s x=$zobjexport($s(%qrc:-1,1:%ROWID),18) q:%qrc } // Update
existing Row
} q
%QuickDelete(%rowid,%nolock=0,pkey=0) // Delete row where SQLRowID=%rowid
s:%nolock=2 %nolock=0
s:pkey %rowid=$$%QuickFindRowIDByPKey(%rowid,2) i %rowid="" { s %qrc=0,%ROWCOUNT=0 q }
i '$$%1^xobw.WebServicesAuthorized.T1(%rowid) s %qrc=0,%ROWCOUNT=0 q
d %delete^xobw.WebServicesAuthorized.T1(%rowid,$c(0,%nolock=1,0))
If SQLCODE=-106 { s %qrc=0,%ROWCOUNT=0 } ElseIf SQLCODE<0 { s %qrc=-SQLCODE,%ROWCOUNT=0
} Else { s %ROWCOUNT=1,%qrc=SQLCODE } q
%QuickLoad(%rowid,%nolock=0,pkey=0,skipnewqout=0,qq=0) // Get fields from row where
SQLRowID=%rowid
n d,i,il,subs,t s:%nolock=2 %nolock=1
s:pkey %rowid=$$%QuickFindRowIDByPKey(%rowid,2) i %rowid="" { s
SQLCODE=100,%qrc=100,%ROWCOUNT=0 q }
i %nolock=0 { i '$$%AcquireLock^xobw.WebServicesAuthorized.T1(%rowid) { s
%qrc=114,%msg="Unable to acquire exclusive lock on table xobw.WebServicesAuthorized for
RowID value: "_%rowid,%ROWCOUNT=0 q } s:$zu(115,2) il=$zu(115,2,0) }
#sqlcompile SELECT=ODBC
&sql(SELECT %INTERNAL(webServerRef),%INTERNAL(ID),ien,status,webServiceIen INTO
:d(0),:d(1),:d(2),:d(3),:d(4) FROM xobw.WebServicesAuthorized WHERE %ID = :%rowid)
i SQLCODE { i %nolock=0 { d %ReleaseLock^xobw.WebServicesAuthorized.T1(%rowid,0,1)
d:$g(il) $zu(115,2,il) } s %ROWCOUNT=0 s:SQLCODE<0 SQLCODE=-SQLCODE s %qrc=SQLCODE q }
If %nolock=0 { If $zu(115,1)=1 { TSTART } ElseIf '$TLEVEL,$zu(115,1)=2 { TSTART }}
s:qq d=$zobjexport("xobw.WebServicesAuthorized",18),d=$zobjexport(5,18) s i=-1 f { s
i=$o(d(i)) q:i="" s d=$zobjexport(d(i),18) } s %qrc=0,%ROWCOUNT=1 i %nolock=0 { d
%ReleaseLock^xobw.WebServicesAuthorized.T1(%rowid,0,0) d:$g(il) $zu(115,2,il) } q
%QuickBulkLoad(%rowidlist,%nolock=0,pkey=0) // QuickLoad multiple rows
n i,ql,rc,%rowid s:%nolock=2 %nolock=0 s
rc=0,ql=$g(^oddSQL("xobw","WebServicesAuthorized","QL")) s $p(ql,",",4)="1)"
f i=2:1:$lg(%rowidlist)+1 { s %rowid=$lg(%rowidlist,i) d @ql If SQLCODE=0 { s rc=rc+1 }
Else { q } } s %ROWCOUNT=rc q
%QuickLoadChildren(%parref,%nolock=0,pkey=0,returnpkey=0) // Get non-hidden fields from
table where ParentReferenceField=%parref
i pkey x "s %parref=$$"_$p($g(^oddSQL("xobw","WebServer","Q1")),"(")_"(%parref,2)" i
%parref="" { s %qrc=0,%ROWCOUNT=0 q }
n d,i,il,row s:%nolock=2 %nolock=0 i %nolock=0 { s:$zu(115,2) il=$zu(115,2,0) }
#sqlcompile SELECT=ODBC
If 'returnpkey { n id &sql(DECLARE qckchldid CURSOR FOR SELECT %ID INTO id FROM
xobw.WebServicesAuthorized WHERE webServerRef = :%parref) s %ROWCOUNT=0,%qrc=0 &sql(OPEN
qckchldid) i SQLCODE { s %qrc=-SQLCODE d:$g(il) $zu(115,2,il) q } f { &sql(FETCH
qckchldid) i SQLCODE { s:SQLCODE<0 %qrc=-SQLCODE s:'%ROWCOUNT&&(SQLCODE=100) %qrc=100
d:$g(il) $zu(115,2,il) q } s %qrc=0,d=$zobjexport($lb(id,id),18) } &sql(CLOSE qckchldid)
s:SQLCODE %qrc=-SQLCODE d:$g(il) $zu(115,2,il) q }
Else { &sql(DECLARE qckchldpk CURSOR FOR SELECT %ID, %INTERNAL(webServerRef),
%INTERNAL(webServerRef), ien INTO :d(1), :d(0), :d(0), :d(2) FROM
xobw.WebServicesAuthorized WHERE webServerRef = :%parref) s %ROWCOUNT=0,%qrc=0 &sql(OPEN
qckchldpk) i SQLCODE { s %qrc=-SQLCODE d:$g(il) $zu(115,2,il) q } f { &sql(FETCH
qckchldpk) i SQLCODE { s:SQLCODE<0 %qrc=-SQLCODE s:'%ROWCOUNT&&(SQLCODE=100) %qrc=100
d:$g(il) $zu(115,2,il) q } s row="",i=-1 f { s i=$o(d(i)) q:i="" s row=row_$lb(d(i)) }
s %qrc=0,d=$zobjexport(row,18) } &sql(CLOSE qckchldpk) s:SQLCODE %qrc=-SQLCODE d:$g(il)
$zu(115,2,il) q }
%QuickFindRowIDByPKey(%pkey,output=1,internal=0) // Get ROWID value for PKEY value given
in %pkey
n %d,d,id,rtm s rtm=$zu(115,5,$s(internal:0,1:1)) s %d(0)=$lg(%pkey,1) s
%d(0)=$lg(%pkey,2) s %d(2)=$lg(%pkey,3)
#sqlcompile SELECT=RUNTIME
s %ROWCOUNT=0,%qrc=0 &sql(SELECT %ID INTO :id FROM xobw.WebServicesAuthorized WHERE
webServerRef = :%d(0) AND webServerRef = :%d(0) AND ien = :%d(2))
d $zu(115,5,rtm) q:internal $g(id) i SQLCODE { s:SQLCODE<0 %qrc=-SQLCODE
s:'%ROWCOUNT&&(SQLCODE=100) id="",%qrc=0 } If output=1 { s d=$zobjexport(id,18) } ElseIf
output=2 { QUIT id } q
%QuickFindPKeyByRowID(%rowid) // Get Primary Key fields from row where SQLRowID=%rowid
n d,s,subs,ul
#sqlcompile SELECT=ODBC
&sql(SELECT %INTERNAL(webServerRef),%INTERNAL(webServerRef),ien INTO :d(0),:d(0),:d(2)
FROM xobw.WebServicesAuthorized WHERE %ID = :%rowid)
i SQLCODE { s %ROWCOUNT=0 s:SQLCODE<0 SQLCODE=-SQLCODE s %qrc=SQLCODE q }
s d=$zobjexport($lb(d(0),d(0),d(2)),5) s %qrc=0,%ROWCOUNT=1 q
BuildPurgeIndices(indices="",build) ; Create/Delete data from index global(s), return
Status Code
q
$$$ERROR($$$MethodNotImplemented,"xobw.WebServicesAuthorized::%BuildIndices/%PurgeIndices
")
SQLUPPER(v,l) PUBLIC { q $zu(28,v,7,$g(l,32767)) }
ALPHAUP(v,r) PUBLIC { q $zu(28,v,6) }
STRING(v,l) PUBLIC { q $zu(28,v,9,$g(l,32767)) }
SQLSTRING(v,l) PUBLIC { q $zu(28,v,8,$g(l,32767)) }
UPPER(v) PUBLIC { q $zu(28,v,5) }
MVR(v) PUBLIC { q $zu(28,v,2) }
#endclasscontext
#endclassmethod