#Beginner

6 Followers · 530 Posts

Beginner tag unites articles and questions for those who are getting started with InterSystems Data Platform

Question Eduard Lebedyuk · May 22, 2018

The code I'm researching loosely follows this flow:

  1. My first callback
  2. Black box
  3. My second callback

I can modify 1 and 3 no problem but modifying 2 is difficult.

However I think that step 2 has some optimization problems, namely:

  • instantiates lots of objects
  • throws/catches lots of exceptions (not logged)

Is there a way to count these two metrics?

3
0 351
Question Minsu Kim · May 9, 2018

Hello Global masters.

I am junior developer about Intersystems cache in South Korea.

I want to develop process management program on server.

My code :

TESTPID(IP)    ;
    #include %syPidtab
    Set Rset = ##class(%ResultSet).%New("%SYS.ProcessQuery:ListPids")
    d Rset.Execute()
    &sql(SELECT ClientIPAddress, Pid INTO :ClientIPAddress, :Pid
    FROM %SYS.ProcessQuery 
    WHERE ClientIPAddress = :IP)
    While Rset.Next() 
    {
​    i SQLCODE'=0 w !,"SQL Error "_SQLCODE continue ; 100 means process does not exist (halted)
    I Rset.GetData(1) = Pid D
    . w !,Rset.GetData(1)," ",ClientIPAddress," ",Pid
            //Set rs=$SYSTEM.Process.Terminate(Pid)
            //If rs'=1 {
            //    Write "Terminate Fialure "_" Pid "_Pid,!
            //}
            //Else {
            //    W "Sucess",!
        //    }
    //    }
    }
    d Rset.Close()
    Q
5
0 449
Article Kurro Lopez · Jan 24, 2018 3m read

Sometimes, we need to copy part of the properties of an object into a different one. 
The simplest thing would be to do the following:

Set obj1.FirstName = obj2.FirstName

Set obj1.SecondName = obj2.SecondName

What happens if the object contains a large number of properties? or we just want to extract an important group of data, and complement the information in another object?

Having the following classes:

Class Kurro.PersonalInfo Extends %Library.SerialObject
{
 /// Code of personal
 Property Code As %String;
 
 /// First name of personal
 Property FirstName As %String;
 
 /// Second name of personal
 Property SecondName As %String;
 
 /// Date of birthday of personal
 Property DateOfBirthday As %DateTime;
 
 /// Passport ID number
 Property PassportId As %String;
  
}



Class Kurro.NameInfo Extends %Library.SerialObject
{

 /// First name of personal
 Property FirstName As %String;
 
 /// Second name of personal
 Property SecondName As %String;
 
 /// Date of birthday of personal
 Property DateOfBirthday As %DateTime;

 /// Relationship
 Property Relationship As %String;
 
}

6
0 1894
Question Thembelani Mlalazi · Apr 26, 2018

I am using the EnsLib.RecordMap.Operation.BatchFileOperation to write a batch to a file but for some reason this has been working fine as of yesterday I had a problem with the cache databases filling up running out of memory so had to compact my database and gain space now when I run the operation I get the above error  .Of course in my batch table there is no batch record with ID 1.The message is passed with the correct header information but still get this error any suggestions why?

3
0 1160
Question Stephen Wilson · Apr 19, 2018

Does developing a RESTful API in Caché remove the requirement to use the InterSystems.Data.CacheClient.dll and generate proxy classes using the Caché Object Binding Wizard for .NET web development? If anyone has links to sample applications using .NET with Caché and REST Services, I would be grateful if you could share them.

4
0 640
Question Kishan Ravindran · Oct 12, 2017
Set httprequest=##class(%Net.HttpRequest).%New()
	Set httprequest.Server="www.intersystems.com"
	Do httprequest.Get("/")
	Do httprequest.HttpResponse.OutputToDevice()
	Do httprequest.Get("/cache/")
	Do httprequest.HttpResponse.OutputToDevice()

The above is the code which i found in this link http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?… 
How do the above code works and can i be able to run this?

Thanks in advance.

5
0 3621
Question Rafael Santos · Feb 26, 2018

Hi, iam newbie on caché database.

Iam trying, export data from query.

I read in some article that is not so simple.

So I create a view then a execute a query insert into select statement.

I have problem to know the job progress. I execute an hour ago and nothing  happened.

Iam using intersystems web IDE.

Thanks for help!

6
0 531
Question Sarvan Ibishov · Jan 29, 2018

Hi. I am newby in Cache. My source code at below. I have problem in Relationship property. Could you please help?

 /// Class %Persistent
 Test.Chapter %Persistent

then in terminal I am running these commands:

USER>set c1 = ##class(Test.Chapter).%New()
USER>set c1.Name = "Introduction"
USER>set c1.Page = 10
USER>set c2 = ##class(Test.Chapter).%New()
USER>set c2.Name = "Development of DB"
USER>set c2.Page = 13
USER>set b = ##class(Test.Book).%OpenId(1)

USER>do b.Chapters.Insert(c1)
8
0 410
Question Eduard Lebedyuk · Feb 20, 2018

Several $System.OBJ methods have ByRef errorlog argument:

Compile(ByRef classes As %String = "", qspec As %String = "", ByRef errorlog As %String, recurse As %Boolean = 0)

ImportDir(dir As %String = "", wildcards As %String, qspec As %String = "", ByRef errorlog As %String, recurse As %Boolean = 0, ByRef imported As %String, listonly As %Boolean, ByRef selectedlist As %String)

What's the best approach of working with errorlog?

Do you convert it to status? If so - how? Manual iteration over local?

Is there some system method to convert it into %Status?

1
0 419
Article Kurro Lopez · Feb 21, 2018 1m read

Hi all,

I've created a method to calculate the age of a person, or the age of a process, contract or other stuff as you want.

/// Calculate the age from date of birth and other date (by default shoud be today).
/// <b>dateOfBird</b> Date of birth in cache format. ie. $ZDH("1972-01-01",3)
/// <b>day</b> Date to calculate to. ie: $H
ClassMethod AgeAt(dateOfBirth, day) As %Integer{
    quit:dateOfBirth=""
    quit:day=""
    
    set yeardob=$SYSTEM.SQL.DATEPART("year",dateOfBirth)
    set yearday=$SYSTEM.SQL.DATEPART("year",day)
    
    set years=yearday-yeardob
    kill yeardob, yearday
    
    set monthdob=$SYSTEM.SQL.DATEPART("month",dateOfBirth)
    set monthday=$SYSTEM.SQL.DATEPART("month",day)
    if (monthday-monthdob)<0 set years=years-1
    if (monthdob-monthday)=0
    {
        if ($SYSTEM.SQL.DATEPART("day",day) - $SYSTEM.SQL.DATEPART("day",dateOfBirth)) < 0
        {
            set years=years-1
        }
    }
    
    kill monthdob, monthday
    quit years
}
2
0 1942
Article Clark Matthews · Nov 3, 2016 4m read

Problem:

Caché prints to printers in a manner somewhat different from other Windows applications.  Caché sends the data directly to the GDI Printer, without the usual interface.  This is because the GUI interface can only be shown on a system desktop session and not in web browser and terminal sessions.  Some printer drivers have problems with this method of printing.

Is this the problem you are having?

  • If you are opening the printer as a Windows printer as described in the documentation (found here).
3
3 3164
Question George Hodder · Feb 2, 2018

Hi.. I have an issue where we are using OAuth2.0 with the ZAUTHENTICATE routine.  Once our token is validated we are using a users lan id (passed on the ID token) to find a software defined username in a Cache Global.

That is all working fine in ZAUTHENTICATE.. I am setting the software defined username in the Properties("Comment") array and wanting to reference it in the Rest Service Dispatch class.

6
0 1009
Question Ponnumani Gurusamy · Feb 11, 2018

I tried to learn DEEP SEE Analytics for our HealthShare "SAMPLES" Name Space. I followed our documentation and tried it. But my management portal analyzer and visual reporting fields are hidden. So Please help me for how do I use the deep see concepts and  provide some examples or demo.

Thanks ,

Ponnumani G.

1
0 304
Question Eduard Lebedyuk · Feb 5, 2018

Currently to check if the class  is mapped I call:

ClassMethod IsClassMapped(class) As %Boolean

{
  set sc = $system.OBJ.GetClassList(.classes,"/system=0 /percent=0 /mapped=0")
  quit $data(classes(class))
}

And it works, but I'm interested if there is a simpler approach out there?

2
0 460