You might also look into ##class(%UnitTest.Manager).WipeNamespace()
- Log in to post comments
You might also look into ##class(%UnitTest.Manager).WipeNamespace()
Yes.
Kyle, please notice that indeed
CALL %SYSTEM.SQL_TableExists('table name')
shows nothing -- no result is returned.
Whereas
?= CALL %SYSTEM.SQL_TableExists('table name')
prints boolean result 1 or 0 depending on whether 'table name' exists.
FWIW I just checked 2015.1.4 and 2015.2
And IE 11.0.9600.18697 on Windows 7x86
And Color Selection Dialog is opened properly:
/csp/samples/ZENDemo.Home.cls -> Components -> Popup Windows
Hi Jochen.
If you have different modules in one namespace I suggest to you to have different Atelier projects for these modules. Then you can have one Git repository to handle all these projects.
With such approach the repository has all the code for the namespace and the code is grouped by projects (modules) inside repository.
Here you can find more details on how you can define Git repository for multiple projects. https://wiki.eclipse.org/EGit/User_Guide#Creating_a_Git_Repository_for_multiple_Projects
Regards, Alexander.
I wonder if the problem is package name and it should be Sqluser instead of User. http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_defpersobj_sqlproj_pkg
Hi Jeffrey.
Please check web-application settings (Management portal -> System Administration -> Security -> Applications -> Web Applications) and ensure that application '/api/atelier' is Enabled -- it has "Application" checkbox checked in Enabled section.
Hope this might help, Alexander.
I and [@Eduard Lebedyuk] came up with another solution. 28 symbols, though:
f p='""_+""-'"":-'"":"" w p
']]' means 'Sorts After'. Indeed, as we can see A sorts after B.
USER>kill
USER>set A="1.0"
USER>set B="2.2"
USER>write A]]B
1
USER>set c(A) = 1, c(B) = 1
USER>zwrite c
c(2.2)=1
c("1.0")=1
Nice! Next step is "-1" or less :-)
Not always, If $T was set to 1 before, then it is not reseted on entering the method Main()
Of course for fun!
So the question boils down to "How to represent 0 using two symbols"
21 in non-expression mode
My solution is following: https://gist.github.com/adaptun/f04f15fc1474d57373d3f63928183284
Thank you for article Dmitry.
You say "you may notice data in ASCII is represented by in 1 byte but Unicode data in 2-bytes".
Actually, it seems, that Unicode data takes less then 2 bytes per character.
In your example with BLKDUMP string "TestТест" is represented as
54 65 73 74 92 30 A2 B5 C1 C2
First four bytes is clearly "Test" representation, so other four characters "Тест" are represented with just six bytes -- "92 30 A2 B5 C1 C2", instead of expected 8.
I'm not aware of such global setting.
If you want to prevent legacy Caché ObjectScript application with direct global access to see not-committed data, then you need to implement proper locking in that application.
Starting READ COMMITTED transaction in that process will not help as this does not affect the code that modifies globals directly.
Hi P.
Check for $d(^Vehicle(unitNumber)) in your sample is not right -- process in transaction can always read data that it has changed.
Starting transaction in READ COMMITTED mode means that this transaction cannot read data modified by other transactions but not commited yet (provided other transaction properly locks the data). It does not restricted other processes from reading data changed by this transaction, unless
a) Other process also starts transaction in READ COMMITED mode OR b) Other process acquires the lock for the global node that is modified by current process.
So, if legacy Caché ObjectScript code does not use locks you cannot prevent it from reading your uncommited data.
If legacy Caché ObjectScript uses locks then you need acquire these locks before inserting the rows into Vehicle.* tables.
Transaction isolation in Caché is implemented using locks. When you modify data using SQL or Object-access Caché acquire locks for you, unless you explicitely say not to do this.
Please see following documentation for more information on locking and concurrency in globals, Objects and SQL "Locking and Concurrency control" http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=ALOCK "Modifying the Database" http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_modify
Hope this explains things a little more, Alexander.
Oh. OK. (PUBLIC=1) in this case is related to %ListOfObjects return class, not the method itself.
Although, it's the question of how developer interpret this parameter.
You can add extra parameters for all properties of particular class using PropertyClass keyword http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=ROBJ_class_propertyclass
This does not apply to methods though...
Hi Sean.
This looks interesting.
Why do you prefer annotations style instead of standard Caché attribute style for properties?
I mean
/// @JSONNAME=BirthDate
Property DateOfBirth As %Date;
Instead of
Property DateOfBirth As %Date(JSONNAME = "BirthDate");
Thank you, Alexander.
Process monitor is useful tool in these cases (https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx).
Process monitor shows directories where zlib1.dll is searched for. So you can check if zlib1.dll is searched in <cache-dir>\bin.
You can use <csp:class includes='...'> ?
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RCSP_CSP_CLASS
For debugging purposes?
CSP Gateway trace is good.
Also, there are different verbose levels of CSP Gateway log. Particularly, notice v9 level.
Hi Amir.
Some of items you mentioned are already in Atelier
Go to File -> New -> Other. Then Atelier -> New File -> Custom File. Choose connection and pick Server-side template.
Also you can go to Tools-> Add-Ins or Tools -> Templates and run good old Studio Add-Ins or Templates
Hm, there is already globe icon on Atelier toolbar that opens CSP page.
The 6th in that list http://docs.intersystems.com/atelier/latest/topic/com.intersys.eclipse.help/html/reference/toolbar-atelier-perspective.html?cp=1_3_2
The 5th in that list http://docs.intersystems.com/atelier/latest/topic/com.intersys.eclipse.help/html/reference/toolbar-atelier-perspective.html?cp=1_3_2
As I understand this configuration should be done on EGit side, by setting core.autocrlf = true for Windows installations. http://mike.meessen.biz/blog/?p=368
Or TO_CHAR.
Depending if you need convert string -> date (TO_DATE) or date -> string (TO_CHAR)
Cool!
It would be great to show articles only for particular Author in Article dropdown list once the Author is chosen.
I think you can construct pKey as $ListBuild of different values and parse them back in LoadForm.
I don't think it's possible to add other parameters to LoadForm callback
At least please notice that Caché ObjectScript does not have operator precedence.
Instead of
if (c >= 128 && c <= 255) {
you should write
if (c >= 128) && (c <= 255) {
the same with
s:(c >= 128 && c <= 255) retval=$lg(map,(c-128))
Java binding is deprecated. http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=BLJV_preface
^%SYS.MONLBL is a great tool for profiling: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCM_monlbl