In principle OK.
But also ODBC or JDBC connection have timeouts limits. Though they are typically longer than CSP.
- Log in to post comments
In principle OK.
But also ODBC or JDBC connection have timeouts limits. Though they are typically longer than CSP.
Yeah!
it's not only no timeout but you can easy debug all your SQLCOMPUTED code.
If you use ORDER BY in a SubSELECT you have to add a TOP clause as well. e.g.
select *, %vid from (select TOP ALL * from UACCESSRIGHT order by RIGHTID) where %vid between 10 and 20
I think they named it M(umps)
![]()
Postcondition is preferred
especially quit:error or continue:ignore
for i=1:1:5 write i," " is as fine as for i=1:1:5 { write i," " } write "end"
but this is really bad:
f i=1:1:5 d w "? "
.w i," "
w "end"ZEN uses pure XML encoding:
differently from HTML there are just 5 specials allowed / required
I see 2 options
#1)
add the ChangeItem holding the last change in addition to your list of Objects.
and add the appiopriate indices.
like this:
This looks simple but it requires that any program that adds a change also
updates the "Last" property.
If this isn't feasible you may use %OnBeforeAddToSaveSet() or similar to insert you "Last" object during %Save().
It requires more space on disk and is not redundant.
It doesn't generate entries for existent records.This requires a special update exercise.
#2)
Add the property to be indexed as SqlComputed and index it.
This is not so speedy but gives you the flexibility not just check the last element
and has no impact or dependency on any existing code using it.
if you search for Cacheobject.dll in docs.intersystems.com
you find several articles that my help you.
%Service_CacheDirect
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
Upgrading from CacheObject.dll
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
Connection String for Use with the Older DLL
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
what you describe sounds pretty much like code management, versioning.
these tools depend on appropriate plugins to Word, EXCEL, Eclipse, ....
to trap the SAVE in the appropriate "editor"
BUT this always means to have a specific piece of code installed on your client if you expect some "automatic" upload.
This thing may upload/download your documents over HTTP, WebSockets or whatever.
browsers should NEVER be allowed to access your local machine without manual confirmation.
#1)
authentication is switched on/off in Mgmt Portal
System > Security Management > Web Applications and bound to the specific WebApplication
#2)
CSP has typically a persistent %session object.
You can that switch off by a Class parameter.
#3) You have 2 typical places for private Classmethods:
OnPreHTTP() before anything goes back to browser or similar.
You typically place your private authentication there.
http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?…
OnPage() which means when you have already replied with an HTTP header...
Some Example
But there is no array keys and no %DynamicArray object found.
so it fails on %GetIterator().
my guess {"keys":[ .... ]} could be the solution.
Why would you hack around Studio to mimic what is ready to use in Atelier ?
just for better readability of the audience I transformed your WHEN condition that dictates speed.
It shows me that you basically check on (HL7.{RGSgrp(1).AIL:LocationResourceID(1).Room}
I see not much opportunity for optimization of CONTAINS
But for your StartsWith you may try this construct:
In(SubString((HL7.{RGSgrp(1).AIL:LocationResourceID(1).Room},1,6),"HOC OR","HOC EN")
or
In(SubString((HL7.{RGSgrp(1).AIL:LocationResourceID(1).Room},1,6),"ONT EN","GAL OR","GAL EN",BUC OR")
An HealthShare expert might be able to answer if it is possible to have an index on the fields of your WHEN condition.
A different approach could be to handle the whole WHEN in a Custom Utility Function
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
the code is already included in the CSP example
the file comes a MIME data in %request:
for easier reading compile the CSP file and see the generated class csp.upload.cls in SAMPLES
<!-- As form is submitted to this page look to see if we have the stream in the %request object -->
<csp:if condition='($data(%request.MimeData("FileStream",1)))'>
<hr><br>
Submitted filename: <b>#(..EscapeHTML(%request.MimeData("FileStream",1).FileName))#</b><br>
Size of file: <b>#(..EscapeHTML(%request.MimeData("FileStream",1).Size))#</b><br>
Mime Section: <b>#(..EscapeHTML(%request.MimeData("FileStream",1).MimeSection))#</b><br>
Type of stream: <b>#(..EscapeHTML($classname(%request.MimeData("FileStream",1))))#</b><br>
Content Type: <b>#(..EscapeHTML(%request.MimeData("FileStream",1).ContentType))#</b><br>
<br>
First 200 characters of stream:<br>
<ul>
<script language="Cache" runat="server">
See also doc on %CSP.Request
http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?…
It seems you try to call ans Action that is not defined / compiled
/// Get class name for a message descriptor class for this web method based on the SOAPAction
Method GetMsgClass(action As %String, messageChildlist As %Integer, Output methodName As %String, bodyStream As %GlobalCharacterStream = "") As %String [ Internal, ServerOnly = 1 ]
{
Set (methodName,className,msgClass,methodList)=""
Set class=$classname()
Set methodList=$get($$$SOAPParametersSoapActionList(class,action))
>>>> this is line +3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
this translates to and there is no attempt to write something.
#define SOAPParametersSoapActionList(%class,%soapAction) ^oddCOM(%class,$$$cCLASSxmldata,"P",0,"soapAction",$select(%soapAction="":$c(0),1:%soapAction))
But finally: . . . . stNow"),h:\dev5\</text>
Does your Caché Server Instance have access right to the bolded directory location ???? This smells like <PROTECT>
Hey, Nicole
That's excellent !!!
What ever I click on shows up in "Atelier Documentation" Tab.
Thanks for the hint! ![]()
You may try to cheat it by changing the <input> tag to
and you get in CHROME and Firefox
C:\fakepath\EUR_Meldung.pdf
and fakepath doesn't exist obviously
while IE11 and EDGE on Windows10 tell me the real path (!)
C:\Users\ich\Desktop\EUR\EUR_Meldung.pdf
I give no further comment related to security & privacy on products from M$
OK, you look for something different than I understood.
The CLASS REFERENCE to DocBook seems to be not directly available as in Studio.
Just by external access to Documentation ....
Part of it is found if you have an class in your editor and move your cursor over a class name
then you get a volatile class description that you can nail down by clicking or <F2>
Its's pretty similar to the DocBook version EXCEPT that you have no further references (e.g. Data Types or %Status or ...)
So it's not a multi level navigation like in browser!
For illustration I have done this for %Persitent. For %Populate, %XML.Adaptor you have do again and again.
Easier:
in tab Server Explorer clickk to ADD NEW Sever Connection (green cross)

Could you pls. be a little bit more precise in what context you expect the reference?
A screenshot would be nice to explain your issue.
To my understanding the structure of your global is irrelevant in this context.
If you want to use sharding forget about ALL global access.
You only access works over SQL ! (at least at the moment, objects may follow in some future)
It's the decision of the sharing logic where and how data are stored in globals.
If you ignore this and continue with direct global access you have a good chance to break it.
This naming "mistake" of %ZEN caused a lot of extra checks and workarounds that we may have to carry around forever. ![]()
My personal proposal "CSP#" written as CSPXX (CSPX was already used by Ensemble) didn't win the internal naming contest. ![]()
Guess why. ![]()
List of supported nnenmonics for ANSI terminals (X364)
%X364 ; BINDING FOR ANSI X3.64 NAMESPACE, NOV/92 ; LRS952 06/07/05
APC ; Application program command
BEL ; Ring the bell
CBT(%1) ; Cursor backward tabulation %1 tab stops
CCH ; Cancel character
CHA(%1) ; Cursor horizontal absolute (move to column %1)
CHT(%1) ; Cursor horizontal tabulation (forward %1 tab stops)
CNL(%1) ; Cursor next line (cursor down %1 lines)
CPL(%1) ; Cursor preceding line (cursor up %1 lines)
CPR ; Cursor position report (return in $KEY)
CTC(%1,%2,%3,%4,%5,%6,%7,%8,%9) ; Cursor tabulation control
CUB(%1) ; Cursor backward %1 columns
CUD(%1) ; Cursor down %1 lines
CUF(%1) ; Cursor forward %1 columns
CUP(%2,%1) ; Cursor position (column %1, line %2)
CUU(%1) ; Cursor up %1 lines
CVT(%1) ; Cursor vertical tabulation
DAQ(%1,%2,%3,%4,%5,%6,%7,%8,%9) ; Define area qualification
DCH(%1) ; Delete %1 characters
DCS ; Device control string
DL(%1) ; Delete %1 lines
DSR(%1) ; Device status report - type %1 - return in $KEY
EA(%1) ; Erase in area
ECH(%1) ; Erase %1 characters
ED(%1) ; Erase in display (%1=0 cursor-to-end,1 begin-to-cursor,2 entire scr)
EF(%1) ; Erase in field
EL(%1) ; Erase in line (%1=0 cursor-to-end, 1 begin-to-cursor, 2 entire line)
EPA ; End of protected area
ESA ; End of selected area
HPA(%1) ; Horizontal position attribute (cursor to column %1)
HPR(%1) ; Horizontal position relative (cursor forward %1 columns)
HTJ ; Horizontal tab with justify
HTS ; Horizontal tabulation set
HVP(%1,%2) ; Horizontal and vertical position (column %1, line %2)
ICH(%1) ; Insert %1 characters
IL(%1) ; Insert %1 lines
IND ; Index
INT ; Interrupt
MC ; Media copy
MW ; Message waiting
NEL ; Next line
NP(%1) ; Next page (advance %1 pages of terminal display memory)
OSC ; Operating system command
PLD ; Partial line down
PLU ; Partial line up
PM ; Privacy message
PP(%1) ; Preceding page (backup %1 pages of terminal display memory)
PU1 ; Private use one
PU2 ; Private use two
REP ; Repeat
RI ; Reverse index
RIS ; Reset to initial state
RM(%1,%2,%3,%4,%5,%6,%7,%8,%9) ; Reset mode
SEM ; Select editing extent mode
SGR(%1,%2,%3,%4,%5,%6,%7,%8,%9) ; Select graphic rendition %1 thru %9
SM(%1,%2,%3,%4,%5,%6,%7,%8,%9) ; Set mode
SPA ; Start of protected area
SS2 ; Single shift two
SS3 ; Single shift three
SSA ; Start of selected area
ST ; String terminator
STS ; Set transmit state
SU ; Scroll up
TBC ; Tabulation clear
VPA(%1) ; Vertical position attribute (move to row %1 at same column)
VPR(%1) ; Vertical position relative (move down %1 lines at same column)
VTS ; Vertical tabulation sets
With this reply I'd bet om SOAP
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> ......
But without details it's a guesswork. At least some schema for the content of PUT is required.
What I've seen at UPS there are many interfaces. So which one is it ?
This was more a code correction exercise.
Honestly I wouldn't have done it that way at all. But using %XML.TextReader instead.
It was just to late in the evening to do a pretty solution.
The next auditor may do it.
BTW. for Attributes it'S %lev+1*3
pls. point me to that WSDL or post it so we can try.
Without WSDL all to say isthe same what the error says: some important parameters are missing.
The XML document is well formed but the document is not valid
As Eduard already pointed out there is just no need to use %XML.Node as %XML.Document inherits it already
I have elaborated your code also to cover Attributes and Chlidren in the document.
and added some readability features.
To some extend %XML.TextReader could have done the same.
No need to copy the code from browser the class + test data is attached. xmlreading.zip
It seems to me you try to call a SOAP service.
That service requires some special XML structured content. That is missing. It is typically placed in Authtoken.Entity
you can test your request by
set tSc = AuthToken.Post("/webservices/Void",1) to see what you send.with is empty in your case.
It may work with pure %Net.HttpReqquest but if you have a valid WSDL definition you better use
the WebService Client Generator in Caché Studio that does it all for you.
It would be useful to have sour WSDL to try it. Pls. attach it.
As I don't have a personal account on UPS I'n unable to identify what you a re trying to achieve.
I worked also with PHP WS. It does a lot under cover (without your control) that you have to do in Caché by your own code.
eg. at any request the related WDSL is downloaded for actual mapping.
you should ensure that in the last else branch in method ..OutputNode() your variable
alChild is an object of type %XML.Document to satify your method
.. XmlToJSONnode(sbJSON As %AbstractStream, node As %XML.Document, showNodeName As %Boolean)
when you call it.