go to post Warlin Garcia · Jun 13, 2017 You can manage without. You have plenty of Object Oriented options to get to the items. Or you could use $O over the global to get the IDs (similar to what Extent would do)
go to post Warlin Garcia · Jun 12, 2017 I guess it depends on which context you're referring to essential.If you are working on a pure Cache environment you can probably go without the SQL layer. However, you need SQL to expose data to the world (e.g. reporting tools that can only connect through xDBC layer).In terms for performance you can always make the case that SQL is slower when compared to direct global access, however SQL provides more "readability" for new (and not so new) developers since SQL is "standard" (or wider spread) compared to ObjectScript.My rule is to always chose SQL over direct global access unless the performance requirements can only be met by the latter.
go to post Warlin Garcia · Jun 7, 2017 Can you elaborate on this: "For performance reasons we suggest using Foreign Keys instead of relationships."My understanding is that Relationships will create the foreign keys (and the relationship table) for you similar as you would do in the relational world:TableAAIDTableBBID TableABRelationshipAIDBIDFK: AIDFK: BID
go to post Warlin Garcia · Jun 7, 2017 The 3 options yield the "same" results, however, depending on needs, one requires more work on your part than the other. With Relationships, for example, Cache automatically handles all referential integrity for you (foreign keys are automatically generated for you). Whereas the other options don't provide that and you're required (depending on your needs) to code the referential checks (e.g. declare foreign keys).
go to post Warlin Garcia · Oct 17, 2016 Relationships load a "collection" of pointers to the members of the relationship. Objects are loaded to memory only when accessed. Pretty much how Arrays work as well. In essence Arrays and Relationships work the same. Relationships provide the extra referential integrity.
go to post Warlin Garcia · Oct 17, 2016 You're on the right track, however, depending on your needs, always prefer a relationship over a "plain" array/list. One of the biggest benefits is the referential integrity you get "out of the box".
go to post Warlin Garcia · Jul 13, 2016 Parameters being passed to a SOAP operation are also defined as properties in the generated class. In your override method, the "proxy" parameter will have a property matching the name of Obj1 and Obj2 parameters. Given your example the following should workMethod override(proxy As %SOAP.ProxyDescriptor, tag As %String){ .... W proxy.Obj1,! W proxy.Obj2,! ........}
go to post Warlin Garcia · Jun 29, 2016 Out of curiosity, why would you need to have a calculated field for this setup? You can always access the properties on ClassC with the following querySELECT BRecord->Record->Propx FROM SQLUser.ClassC