My cache version is:
Cache for Windows (x86-64) 2016.2.1 (Build 803U) Wed Oct 26 2016 12:31:28 EDT [HealthShare Modules:Core:15.01.171 + Linkage Engine:15.0.171]
- Log in to post comments
My cache version is:
Cache for Windows (x86-64) 2016.2.1 (Build 803U) Wed Oct 26 2016 12:31:28 EDT [HealthShare Modules:Core:15.01.171 + Linkage Engine:15.0.171]
Thanks for the answer, it was configured to -1, I've updated this value and this error doesn't appears anymore
Thanks, you are right, this values was -1
Hi all,
I've found the "ghost in the code". The problem was the JSon structure has some fields with "_" as part of the name of the property. When it tries to convert JSon to a class, this kind of name is not good for ensemble.
How have I solved? easy... replacing the content and remove all "_" (I'm sure that there is not values with "_")
set content = tHttpResponse.Data.Read()
$$$TRACE(content)
$$$TRACE($LENGTH(content))
set content = $REPLACE(content,"_","") // Remove all _ as part of the field name
set objJson = ##class(%DynamicObject).%FromJSON(content)
set b64 = objJson.Result.RES.DATA.DATAB64 // Instead of DATA_B64Take care with this problem if you are developing Api and Cache ![]()
Best regards
Thanks Eduard, my JSon has this underscore as part of the name of variable but is not supported (or it seems). With my workaround it works
mmm... I see
The name of the variable is under double quote, and I'm calling the variable directly. Let me check in my solution.
USER>set obj = ##class(%DynamicObject).%FromJSON("{""A_B"":""HELLO WORLD""}")
USER>w obj.A_B
W obj.A_B
^
<UNDEFINED> *B
USER>w obj."A_B"
HELLO WORLD
I would like a join code too, I'm very interested
Hi,
Currently, I created an acount using my working email (flopez@salutic.es), then all information, alerts, and everything has been sent using this email.
Then I was invited to participate in Global Master, and all my contributions in Developer Community are counted in GM.
Now, I want to unlink this email and use my personal one. I've modified the GM and DC email, but the login still as it is, all alerts from GM are sent to the new email.
I think that, as I have modified my GM email, my new contributions will not be considered as points in GM, due it is waiting for the email flopez@salutic.es, I am right?
That is the aim of my question, is it possible to change the email login to link this one to my current GM account.
Best regards and thanks for your attention
The #12 ALWAYS works!!!! #TrueStory
Thanks for the solution.
The problem was that I should to call to a BS, not a BP instead. So I've created a dummy BS to call the BP to do the process.
Thanks again for the key
Thanks John.
I've checked your answer as correct because this is the best approach to do it.
In Studio we can add everything and I don't forget any file.
Best regards,
Francisco López
Hi Alexander,
I have the extension *.* to CSPms, instead of each extension (CSP, ZEN, CLS....) and the "Invoke handler only if request is mapped" is unchecked, but still doesn't work ![]()
I've just done a "rubber duck" with myself... when I've wrote the comment, I've realised that the extensión that I have is "*.*", instead of "*", that is the difference.
A WebApi hasn't an extensión, therefore it is handler by the CSPms library.
I've just changed it and it works
Thanks for all
Thanks Kyle,
You are right, Apache send all request to CSP Gateway, but IIS needs to know who to response the request. The answer is "*"
Hi Eduard,
I tried to do that before, but all CSP pages was displayed, but WebApi didn't work. The problem has been resolved. Please check the other answer.
Thanks for your comment
I'll be there, sure ![]()
Hi,
I've created this method to check if a property exitsts because the method generator doesn't knows if the property exists in the target class in runtime.
If you debug the code you can see the compiled code:
zCopyProps(obj) public {
If (obj.ExistsProperty("Code")) { set obj.Code=..Code }
If (obj.ExistsProperty("DateOfBirthday")) { set obj.DateOfBirthday=..DateOfBirthday }
If (obj.ExistsProperty("FirstName")) { set obj.FirstName=..FirstName }
If (obj.ExistsProperty("PassportId")) { set obj.PassportId=..PassportId }
If (obj.ExistsProperty("SecondName")) { set obj.SecondName=..SecondName } }

so, in runtime, there is no a quick way to check if this property exists to prevent an exception error.
The idea is to copy only the common properties.
If you see the definition of PersonalInfo and NameInfo, both are different classes.
The unique union between both classes is Kurro.Utils.Functions
He does not know what properties the target class obtained, he only knows his own properties and makes a list of methods to copy from the current class to the target class.
This method is compiled, therefore, you need to verify if the destination property exists in the target class at run time. This method is created "on fly" when you create a new instance of this class. Do you know if the property "Name" will be in the object passed as a parameter? Maybe not, so you should check if this property exists in the target.
makes sense?
I hope I have solved the doubt, or maybe I do not understand your question.
Yep, brace always.
Because you will never know if you need to update your condition or chain another. The brace shows what is the scope of the condition, also for loops, for, for each, etc.
It is a good practices and it is more readable.
As Eduard Lebedyuk has commented, a single IF for use to set a variable, the postconditionals is a good idea, coz you know the condition before to set.
OMG!!! What is that!!!
It seems a KGB spy code !!! ![]()
![]()
![]()
Indeed... the brace delimits the scope of the operation
Thanks for your easy solution. I'll change my code to improve this.
I've solved this problem just adding a Default setting for SendSuperSession

I know, this is not the best way to fix it.. but it works ;)
It seem that works... but sometime I have an error, but I'm not able to check what is happend because the message viewer doesn't display the trace.
Always it's displaying an error


Yep, that was other problem.
I've exported all classes, dropped namespace and database, created all as new namespace and import the classes.
Now, the message viewer works (fortunatly it is a DEV environment), compiled all via terminal.
However, sometimes the error about SendSuperSession appear intermittently, often when there are some request at the same time
Registered!!!
One question, the webinar will be available in Youtube or other platform afterwards?
Hi all,
Since I've installed Eclipse instead of Atelier, I'm not able to get to add-in options. It is always greyed.
The server is online, I've tried to local and external server, but it doesn't work.
This is the version of Eclipse and Atelier pluging installed.




Any suggestion is welcome.
Best regards,
Francisco Lopez
Hi Yuval,
Thanks for your comment.
The idea of this tip is only copy content from a class to another class, only I want a subgroup of elements. The command %ConstructClone is to clone a class, you have the same class, not a part of it.
Best regards
Cool...
If I've been "Global Master of the Month", may I claim the badge?
Nice.
This beta has solved the problem that I have with templates in Eclipse.