go to post Peter Cooper · Feb 26, 2019 Hi AllThere is another (hidden and undocumented) methodAt the top of the classInclude %sqlmgrUtilAnd then you have access to a useful macro $$parseStringI find this useful when I need to do some transforms on the csv data rather than just suck the raw data into a classCode snippit set oStream =##class(%Library.FileCharacterStream).%New() set sc =oStream.LinkToFile("somefile.csv") if sc'=$$$OK break do oStream.Rewind() set xDelim=",", xQuote="""" while 'oStream.AtEnd() set xLine=oStream.ReadLine(10000) set xLine=$zstrip(xLine, ">wp") set x1=$$parseString(xLine, xDelim, xQuote, .arr) ///you now have the individual cells from the csv in the array "arr" ///and you can process/transform them individually }Look in %sqlmgrUtil.inc for the definitionPeter
go to post Peter Cooper · Jun 22, 2018 Hi DavidI think this is a feature(?) of the way Javascript and the upload work in any browser - running JS or an upload blocks any UI updatingso it's not possible to do easily or at all - I thinkPeter
go to post Peter Cooper · Jun 22, 2018 Hi DavidsonPlease note $zf(-1 is now depreciated as of the most recent releases/patches of CachéThe replacement is $zf(100 - but stressing this will only work on the most recent patchesPeter
go to post Peter Cooper · May 20, 2018 Hey HermanGlad to see that you are still around!!!!Yup it's me - I was not understanding - see my reply abovePeter
go to post Peter Cooper · May 20, 2018 Hi DemitriIt's me!!!!I thought javascript was doing something differentif (oJSON.theValue) { write("hello") }I *thought* that it was evaluating it as a booleanIt's not - the test is showing if it's definedSo.....Learnt something todayThanksPeter
go to post Peter Cooper · May 20, 2018 Hi DimitryBut still inconsistentegset x={"TheValue":"123"} write x.TheValueDoes not return a quoted stringPeter
go to post Peter Cooper · May 17, 2018 Hi YoavRe Captcha etcThis folds into something that I am looking at for another clientCheck out https://developers.google.com/recaptcha/docs/verifyEssentially you need to change the client web page and the server (what are you using? ZEN/CSP or what) to call into an api to check what the user has entered= =But there are other alternatives - Google "better than Captcha"HTHPeter
go to post Peter Cooper · May 17, 2018 Hi YoavWhat I would look at is creating a Caché class method that does most of the workIn %SYS you can do things likeList all Users&sql(declare c1 cursor forselect ID into :xID from Security.Users....And to open the user objectset oUser=##class(Security.Users).%OpenId(<the_id>)And then the properties you need to update for two factor are oUser.PhoneProvider and oUser.PhoneNumber= =Access management would be by roles - again this is available from oUser.Rolesand the related class is Security.Roles= =Don't know about Captcha - but this would be client side - not serer sideHope this helpsPeter
go to post Peter Cooper · May 12, 2018 No not intentional!Everybody is good at some things and poor at others - and one thing I just *know* I am poor at is proof reading - I see what should be there rather than what actually *is* thereThanks!Peter