I just restart webserver/Cache when I encounter problems after web application configuration changes. It often helps.
- Log in to post comments
I just restart webserver/Cache when I encounter problems after web application configuration changes. It often helps.
Sure. To see deprecated classes for some version execute this query against it:
SELECT ID, Description FROM %Dictionary.ClassDefinition WHERE LOWER(Description) [ 'deprecated'
To see deprecated methods execute this query:
SELECT parent AS "Class", Name AS "Method", Description FROM %Dictionary.MethodDefinition WHERE LOWER(Description) [ 'deprecated'
And to see deprecated properties execute this query:
SELECT parent AS "Class", Name AS "Method", Description FROM %Dictionary.PropertyDefinition WHERE LOWER(Description) [ 'deprecated'
Note, that this queries only return classes/methods/properties which contain "deprecated" in their definition. To catch deprecated inherited classes/methods/properties query %Dictionary.CompiledClass/%Dictionary.CompiledMethod/%Dictionary.CompiledProperty instead.
Hello.
How can I get/set pool size value for a Production item programmatically? I can't find it in a "Settings Defaults" list.
Could you please tell what do you want to achieve with making 'Open as read-only' setting default?
Consider adding links to cache documentation from the page that describes the issue, we now have version agnostic urls even. For example this issue could use a link to documentation.
Another question is: what's wrong with postconditionals? They exist not only in caché objectscript and in fact very useful as they allow elimination of all 3 lines blocks with one if condition and one action to execute if if is true. Can I disable an issue type for a project?
Thank you.
Sure. You could use %CELLZERO instead:
WITH MEMBER [MEASURES].[Revenue as Percent of Total] AS 'Measures.[Amount Sold] / %MDX("select Measures.[Amount sold] on 1
from holefoods","%CONTEXT","filters|columns")',FORMAT_STRING='##.##%;;;;'
MEMBER [MEASURES].[Revenue Percent Cumulative] AS 'Measures.[Revenue as Percent of Total] + %CELLZERO(0,-1)',
FORMAT_STRING='##.##%;;;;' SELECT {[Measures].[Amount Sold],[MEASURES].[REVENUE PERCENT CUMULATIVE]} ON 0,
NON EMPTY ORDER([Product].[P1].[Product Category].Members,Measures.[Amount Sold],BDESC) ON 1 FROM [HoleFoods] Jokes aside, why do you need to remove %CELL usage?
Thanks. Removed that as it's useless without zzzz variables.
I wondered actually, what for do you prefix all variable names with "zzzz".
There is also this way:
set p = ##class(%ZEN.proxyObject).%New()
set p.a = 1
set p.b = 2
do p.%ToJSON()
kill p.%data("b")
do p.%ToJSON()kill p.%data("b") would completely remove b property. But better use Caché 2016.1 with native JSON support.
Another queue processing sample is now available in this GitHub repository, courtesy of Vladimir Prushkovskiy.
Formatted your code a little.
getst(getvars, StBeg, temp) ; Save call stack in local or global array ; In: ; getvars = 1 - save variables defined at the last stack level ; getvars = 0 or omitted - don't save; default = 0 ; StBeg - starting stack level for save; default: 1 ; temp - where to save ($name). ; Out: ; temp - number of stack levels saved ; temp(1) - call at StBeg level ; temp(2) - call at StBeg+1 level ; ... ; temp(temp) - call at StBeg+temp-1 level ; ; Calls are saved in format: ; label+offset^rouname +CommandNumberInsideCodeLine~CodeLine w/o leading spaces" ; E.g.: ; temp(3) = First+2^%ZUtil +3~i x=""1stAarg"" s x=x+1 s c=$$Null(x,y)" ; Sample calls: ; d getst^%ZUtil(0,1,$name(temp)) ; save calls w/o variables in temp starting from level 1 ; d getst^%ZUtil(1,4,$name(^zerr($i(^zerr)))) ; save calls with variables in ^zerr starting from level 4 new loop,zzz,StEnd set getvars = $get(getvars) set StBeg = $get(StBeg, 1) kill @temp set @temp = 0 set StEnd = $STACK(-1)-2 for loop = StBeg:1:StEnd { set @temp = @temp+1 set @temp@(@temp) = $STACK(loop, "PLACE") _ "~" _ $zstrip($STACK(loop, "MCODE"), "<W") if getvars,(loop=StEnd) { set zzz="" for { set zzz = $order(@zzz) quit:zzz="" set @temp@(@temp,zzz) = $get(@zzz) } if $zerror'="" { set @temp@(@temp,"$ze") = $zerror } } } quit 1
You can fill $zerror by passing a name into LOG^%ETN:
Do LOG^%ETN("test")
It would record your current $zerror value, replace it with "test", execute LOG captue, and at the end restore $zerror to what it was before the call.
Thank you.
Also note, that e.Log() calls LOG^%ETN.
I assume that's a comment to my answer?
If yes, here's the working code. Maybe I missed some changes in my answer. Because, again, I needed to do too much changes to run the code in the first place.
I made the following changes:
1. Changed
Set mimePart.ContentType = "application/pdf"
to
Set mimePart.ContentType = "application/x-object"
2. Commented out:
Do mimeMsg.SetHeader("Content-Disposition","attachment; name=""Files1""; filename="""_docName_"""")
Set mimeMsg.ContentTransferEncoding = "base64"3. Uncommented:
//Set req.ContentType = "multipart/form-data;boundary=" _mimeMsg.Boundary
After these change I received non-empty files object.
"files": {
"uploadedfile": "cd \\\r\n@echo start >> date.txt\r\n"
}Howether. Here's some tips on how to ask questions like these (with not working code samples):
1. It must run everywhere. Remove the calls to other code (hardcode values if needed), like:
##class(HData.SiteSettings).GetFaxLogin()2. Remove unused arguments, like coverpath
3. Remove non essential code like:
Set req.SSLConfiguration = "CardChoice"
Do req.InsertFormData("Username",##class(HData.SiteSettings).GetFaxLogin())
Do req.InsertFormData("Password",##class(HData.SiteSettings).GetFaxPassword())
Do req.InsertFormData("ProductId",##class(HData.SiteSettings).GetFaxProductId())
Do req.InsertFormData("cookies","false")
Do req.InsertFormData("header","header")
//Create job name for fax
Set sendDate = +$H
Set sendTime = $P($ZTIMESTAMP,",",2)+(15*60)
Set schedDate = $ZDATETIME(sendDate_","_sendTime,1,4)
Set schedDate = $E(schedDate,1,16)_" "_$E(schedDate,17,18)
Set docList = $LFS(docpath,"\")
Set docName = $LISTGET(docList,$LL(docList))
Do req.InsertFormData("JobName",schedDate_docName)
//format phone number and set billing code
Set num = $REPLACE(phone,"-","")
Do req.InsertFormData("BillingCode",num)
Do req.InsertFormData("Numbers1",num)
//get notification email
Set email = ##class(HData.SiteSettings).GetFaxNotifyEmail()
If (email '= "") Do req.InsertFormData("FeedbackEmail",email)4. Comment out unused and misleading code paths like
Set base64 = ##class(%SYSTEM.Encryption).Base64Encode(docStream)
Set mimeMsg.ContentTransferEncoding = "base64"5. Provide a GitHub Gist snippet of an xml file (with the code) to import and write how to run it.
Your goal, is to make it extremely easy for everyone to take a look at your snippet. All the process must consist of these two steps:
I meant: write a new class with method generator. And inherit from it.
Since XMLEnabled class can be not persistent and, therefore, not have an extent at all, there is no such method. If you need to write XMLExportToFile() for several classes you can write method generator which generates a method that would:
And inherit all classes, in which you have a need of XMLExportToFile() method from this class.
It's for translating response status into Caché status. I have the following code:
ClassMethod GetResponseStatus(Request As %Net.HttpRequest) As %Status
{
Set Status = Request.HttpResponse.StatusCode
Quit:(Status = 200) $$$OK
Set Body = Request.HttpResponse.Data.Read($$$MaxCacheInt)
Quit $$$ERROR($$$GeneralError,"Status code: " _ Status _ " ReasonPhrase: " _ Request.HttpResponse.ReasonPhrase _ " StatusLine: " _ Request.HttpResponse.StatusLine _ " Body: " _ Body)
}And I want to add URL reporting to it.
There is more to URL then just that. For example:
Thanks. I thought it would be something like this, but hoped there was a system method somewhere.
I want to edit this answer.
Answer
I think latency is more important than bandwith. Studio works fine on 100kb/s wireless connection, but when ping goes higher than 1s it becomes kind of slow.
Missed that part. Thank you.
Where can I find "Settings and Preferences" in Subscriptions tab under My Account?

You can open this (any) method in Studio and see the definition (with some rare exceptions, in iKnow package only %iKnow.TextTransformation.HeaderRepositorySetArray and %iKnow.TextTransformation.KeyRepositorySetArray classes are not availible). It's the best way to get an idea of how method works and the code usually even has comments.
Scrapped from GetSimilar():