Want to know The Truth About CPM?

12 May 2014

Might I learn something from Oracle Support?

Might I learn something?

I might and there’s a strong possibility you might as well.  Read on and find out about a new initiative that Oracle Support are running to help you get the most out of, well, Oracle Support.  I cannot see how you would not want to do this unless of course you find nearly endless searching through what is a huge website whilst your boss/clients/peers are beating on your head with, “Did you figure it out yet?  Do we need to file a SR?  Did you figure it out yet?  Did you?  Did you?  Did I mention that it’s really important that you figure this out?  Right now would be a good time to do so.” to be oh so enjoyable.  No, probably not.

What oh what oh what is this all about

If you are an Oracle customer, or an Oracle partner of Gold level or above, you have the ability to browse Oracle’s Support site, download patches, log Service Requests (SRs) if you are a partner  of Platinum or higher (customers can always do this so long as their maintenance is current), and download patches as well.  

There are many resources out there on the web:  blogs, message boards, Twitter and they are all (well most – I don’t get the blogs that are copy and paste regurgitations of the documentation; I also understand although I do not approve of sites that simply take Support KB articles and replicate them) pretty good.  But nothing trumps the breadth and depth of Oracle Support.  I like to think of this as the difference between paid troubleshooting, workaround finding, and general knowledge dissemination and those who do it for free, like yr. obdnt. srvnt and many others.  I don’t think one replaces the other (okay, except for those illegal sites – and no, I am not going to link to one as they are depressingly easy to find), they are instead complementary.  A blog like this one might cover a function or feature in one of the many EPM tools; Support will tell you how to fix one of those systems and even help you prevent problems.  I can only do the latter if you hire me and maybe not even then.

As I alluded to in the introductory paragraph of this post, Oracle Support is big.  Big in terms of content by product, big in terms of products, big in terms of sheer size.  Like I wrote, just big.  And with size comes confusion as one must filter out all of the other products that Oracle sells.  I seem to remember Thomas Kurian mentioning at an ACE Director briefing (note to all -- this is as close as I come to the Oracle power structure) that there are over 2,000 products with the Oracle brand and Oracle Support covers them all.

To reduce this potential confusion Oracle Support have launched all manner of education in how to use Oracle Support.  The latest initiative is an Oracle Support accreditation exam.  Italia Norwodworska of Oracle support sent me an email suggesting that I might like to check it out.  As I am one of those who is often confounded by the Support website, this sounded like a really good opportunity to learn more about a site I don’t often use, but when I do use it, I really need to use it as efficiently and effectively as possible.  Remember those quotes in the introduction?  Those were real life examples.  Ah, stress, how I don’t enjoy you.

What does it look like?

The Level 2 Accrediation for Business Analytics (I seem to have skipped level 1 but as always I do not let a lack of proper technical preparation slow me down) exam is a series of videos that explain how Support works and how to best use it.  Going through every one of the videos is recommended unless you really do know it all.  For the most part I just listened to it and jumped back to the videos when something I really didn’t understand was discussed.  The nice thing about videos like this is that you can play them as many times as needed till you grok the subject.

In case it is not obvious, you watch (or half-watch and listen) each of the subject areas and then take the test at the end.
This being the age of social media (and inexpensive animation) you will get pictures like the below to help drive a concept home:
Hmm, she reminds me of a grade school teacher telling me, “Cameron, you are a moderately bright boy, but you do not pay attention.”  True, that, even today.  But I did try to pay attention and as you’ll see from my not totally stellar score, I did manage to mostly pay attention.  The school-like aspect of this exam will become obvious later.

I’d like you to meet Joe

Joe is a stock photo and considerably better dressed than any Essbase admin I have ever met.  And I say this as someone who is just rolling off of an Essbase admin gig (don’t ask and I am officially the World’s Worst Essbase Admin as I kept on proposing new and hopefully better practices instead of just doing my job).  Here he is – I think his eyes follow me wherever I go in a room.  Creepy.  OTOH, Joe has what looks like a wicked cool 17” laptop so maybe he isn’t all bad.  At the same time, he never seems to move.  As I wrote, creepy.
All kidding aside, you will get to meet Joe at the beginning of every video and then Stalker Joe (as I have named him) goes away.  He’s just a bridging device and really isn’t so bad.  Having had a good look at those of us in the EPM community (and I most definitely include myself in this category), perhaps it is best that Oracle used a model.

The heart of the matter

Snarky (and really, unworthy) comments by yr. obdnt. srvnt. aside, this exam is quite valuable.  Dave Farnsworth, former EPM consultant (sadly now retired) once told me about buying books on one’s own nickel:  “If I get one new idea out of a book, just one, it’s paid for itself.”  I managed to learn at least four new things from this exam.  Did I mention it was free?  Quite the deal.

Things I should have known, but didn’t, and now do

What is a PowerView?

It’s the way you filter products within Oracle Support so you don’t get KB articles on how to get that bucket of prop wash for the IBM Series 360 (I am making this up in case it isn’t obvious) but instead just focus on the products you want to use.  It’ll be available the next time you log into Support.  I always wondered/was too lazy to figure that out, but I should have.

Terminology, vocabulary, and definitions

What’s the difference between a Patch Set, a Patch Set Update, and a Patch Set Exception?  Damfino.  Actually, now I do.

Patch Set

Patch Set Update

Patch Set Exception

Just to recap:
  • Patch Set = Large number of merged patches, are cumulative bug fixes, and change the release number.  Remember all of the posts on 11.1.2.3.500?  That was all about a patch set.
  • Patch Set Update = Low risk, cumulative patches, designed to be applied on a regular basis without forcing product recertification.
  • Patch Set Exception = Single fix for a single problem, applied via Opatch, handed out to customers with lots of pain.

I must shamefacedly admit that I have had no idea what these have precisely meant since, oh, 2007 and Oracle’s acquisition.  There’s lots of good information like this in the videos.

Art following reality

Here is a generic boss woman (sensible heels, suit, short hair) dealing rather adroitly with the geek in glasses.  Hmm, lose the blue eyes and the tie and it could be me, right down to the Rocky from South Philly at the Art Museum looking down the Ben Franklin Parkway towards City Hall pose.  Yeah, I come from Philly.
Let’s see if we can read some other truths into this screen shot:
  • Jolene (for I have named her such) has way better fashion sense than the geek.  This is damning with faint praise, but still it is worth noting.
  • She will be his boss in six months if she isn’t already.
  • Jolene secretly hates Cameron the geek and likely for good reason as she can run technical circles round him.  Also, she doesn’t think she’s Rocky Balboa.   Cameron shouldn’t either.  Look at that physique – he’s fooling himself.  The physical similarities (right down to the big head and glasses) are perhaps a bit too close for comfort for this writer.

Some fairly obvious advice that is surprisingly often not followed

I can think of many times where servers, usernames, and even passwords get posted to public forums.  Don’t Be That Guy.
Seriously, the above is really good advice.  Heed it or rue the day you posted confidential information for world+dog to see.

Teacher is going to ring my bell    

Class cutup, clown, or idiot? Only the exam can tell the tale.

Clicking on the Take The Exam link moves you to an Oracle University exam.  Gulp.
It’s a 30 question multiple choice exam – shades of school all right.  Most, but not everything, on the exam is in the videos (there is an assumption that you actually use the tools) and it took me about five minutes to go through the test.  You can review questions at any time and all in all it’s an effective interface.

Read ‘em and weep

I did actually take the videos seriously although perhaps not seriously enough:

A passing score, but will it get me into the university of my choice?  There’s that report card again with “Must try harder” in the margin.

What have I learnt from all this?

A couple of key things:
  1. The videos are quite good with information that I should have known but did not.  Sad but there it is.
  2. Even if I got a fair-to-middling score, I learnt new things, cf. the above comment.  This is all that really matters.
  3. It is pretty painless to watch these videos and take the test – I reckon you will need just under 40 minutes if you do it all at once.
  4. Sit up straight, no slouching, and pay attention!  Sorry, that was just a PTSD school moment – Oracle are actually quite friendly.  They want you to succeed as it’s better for all concerned.

I really applaud Oracle for coming up with this – it’s straightforward, entertaining (I wouldn’t have written all of those mildly funny comments if I didn’t enjoy it), and informative.  Take the test and I’ll bet that you too will learn from it.

The proof of the pudding is in the eating

Oh sure you say (you do say this, don’t you?), Cameron is merely shilling for his corporate masters.  Au contraire.  I dream of the massive amounts of dosh, cash, moola, bread, cabbage, simoleons, and spondulix that the various companies I write about send me.  In my dreams alas and alack, because it is actually the other way round.  Also, I have no corporate master.

What I mean by that is that I just stumped for a lovely, shiny, good-for-365-days Gold Partner agreement.  That’s $3,000 + tax of my not-terribly-big company’s money.  Why?  Gold Partners can access Oracle Support.

Yet another example of why being an independent ain’t all beer and skittles but Oracle Support is worth it and my money is where my mouth is.

Be seeing you.

05 May 2014

A Stupid Excel, Plannning, and Cameron Trick

Will I ever learn?

Will I?  Will I?  Sigh, no, apparently I will not.  I cannot believe I didn’t catch this before.  I have been struggling with this for, oh, about 6 years (whenever 11.1.1.1 came out and with it outlineload.cmd).  I am actually really and truly mad at myself for not knowing this.  Idiot.

The background

During a long, troubling, stressful, and not particularly fun weekend (sorry for the whine but not knowing this really frosts my cookies) trying to get ASO Planning to do something it just cannot do for my KScope14 session, I stumbled across this simple solution to Planning outlineload.cmd files in Excel.  

The problem

When a member has a comma or special character in it on metadata export (outlineload.cmd and with 11.1.2.3, Planning itself will export dimensionality) Planning will wrap double quotes around the member or alias so that it can correctly parse the field and the record on the way back in.  What happens then in Excel (I tested on Excel 2010 but this has been the way it’s worked since at least Excel 2003 and probably before) is this:

In case you can’t tell, an Account with the member name Depr,Taxes,Insur. Is spread over multiple columns in Excel where in fact it should be in the Parent column.

What’s even weirder is that the member name is in the correct column.  See the yellow highlighted cell A477.  So what’s up with the pink highlighted data in A478, B478, C478, and actually just about everything else in row 478?

A quick look in Notepad++ shows little difference.  Or at least one it took me literally almost forever to spot.  Idiot.

Goofus and Gallant

The bad

The good

The test with the answer

Do you see it?  Do you?  Please don’t be as blind as I was.

The answer is spaces.  Or more specifically, spaces after commas.  That’s it.

Bad, bad, bad

Metadata-comma-space-metadata is bad.

Depre, "Depr,Taxes,Insur.", Depreciation, false

Good, good, good

Metadata-comma-metadata is good.

Depre,"Depr,Taxes,Insur.",Depreciation,FALSE

The end of this Stupid Trick

That’s why even in the bad file the first instance of Depr,Taxes,Insur. worked in cell A477 but blew up in B478.  Record 477 didn’t have a leading comma-space as it was the first field in the record.  Record 478 did because it is the second column and had that infernal comma-space preceding it as a delimiter.   This difference in behavior in Excel was the clue that made me finally realize that maybe there was an issue with the way the delimiting was working.

I should also note that I looked around for a definition of comma-delimiting and I could not find:
  1. Any document or standard that said that spaces should or should not follow the delimiting commas.
  2. Any document or note regarding Excel that stated that Excel works this way.

I can’t believe I am the first to recognize this or figure it out and document it.  Perhaps this is all so obvious that world+dog already know it but it eluded me, hence this post.

To plainly state the solution to this incorrect delimiting in Excel:  All you have to do is go into a text editor and search for comma-space and replace it with plain commas-no space before you import it into Excel.

That second good file?  It’s the result of that search and replace.

Arrrgh, soooooo frustrating.  At least I have one positive thing coming out of this weekend.  May you never make this mistake.  I have a sneaking suspicion that most of you already knew this.  Double arrrgh.

Be seeing you.

28 April 2014

Limitations in Hybrid BSO Essbase

Before I begin

Lest anyone think that this blog post is Cameron’s Exercise in Whining About Essbase or Cameron’s Gift to Oracle’s Competitors or Cameron’s Act of Cutting His Oracle ACE Director Throat, please note that just about everything I am about to describe below is in the Essbase 11.1.2.3.500 ReadMe and I encourage you go to check out that oh so useful document to prove that I am not making this up from whole cloth.

This post will consist of a review of what that document means as Dan Pressman and I have tried (and failed) to get round the limitations and in the process discovered a few new surprises both positive and negative.  If you continue on you then have the opportunity to marvel at our stubbornness aka our inability to read, understand, and follow documentation which is both amusing and instructive.  Sometimes that stubbornness results in positive discoveries, so I suppose it isn’t a totally negative behavioral characteristic.  
Or you could just read and absorb the ReadMe and be done with it but then you’d miss the bits we figured out.  

One last preparatory note – we are doing extensive testing with Hybrid to try to figure out the architecture behind Hybrid because we believe that understanding at a high level how Hybrid works is key to the most effective utilization of the tool.  Also, it’s cool to figure things out.  Again, if this sort of thing piques your interest, I encourage you to come to the Evolution or Revolution:  The New Hybrid Essbase Dan and I are giving at Kscope14 where we will be setting ourselves up for ridicule and contempt when Oracle finally publishes how Hybrid works expounding at greater length on what we believe to be Hybrid’s architecture and resulting design good practices.  

The right perspective

The .500 patch is the first release of Hybrid.  In fact it is really a .0 release.  As such, it is not perfect, and Oracle freely admits and documents that in the ReadMe file.  Think of this release of Hybrid as a statement of technology direction and a proof of technological concept.

In that light, what they have done with Hybrid is extraordinary and to be applauded as this functionality will simply revolutionize how BSO databases are designed and utilized.  Yes, it is that important.

At the same time, we are in very early days with Hybrid so please do not read this blog post and walk away thinking, “Hybrid is half-baked, it isn’t good for anything, life isn’t fair, I never got a pony as a child, etc.”  This is the beginning of what I think of as the Hybrid revolution, you are getting in at the ground floor, and it is pretty easy to see where the improvements to Hybrid will be made.  Maybe today Hybrid is right for your applications, maybe it is not; I am willing to bet that as time goes on more and more of your BSO applications will become good candidates for Hybridization until each and every one of them is a Hybrid database.  I told you this is the beginning of the revolution.  

On to the limitations

What happens to a failed Hybrid operation?

Oracle has stressed, and I am reiterating, that Essbase will never return an incorrect value.  By that I mean that if an operation fails the supported-by-Hybrid test, Essbase will revert to Classic BSO operation and will return the correct value.  It may take a looooooooonnnnnngggggggg time to return the value, but return it Essbase will.  Do not be scared of inaccurate data coming out of Hybrid.  

Let’s review the ReadMe

Again, dear Oracle competitors/Oracle Legal, the following is directly from the ReadMe document, so again before anyone gets excited, go read that officially released document.

Unsupported calculations

I am afraid this is going to be a bit disappointing as the list of unsupported functionality is quite comprehensive.  Again, I stress that you consider this list in light of Hybrid being at its very first release.

One more thing to stress (or restress) – when I write “It does not work” that does not mean that Essbase doesn’t return the right value, it means that Hybrid didn’t fire and Classic BSO took over.  However as you have now set your database to calculate dynamically that could mean quite a delay.

I should also note that we only tested the top three but to my mind these are the most important bits of missing functionality.  Through this painful experience, I have learnt to trust the ReadMe so I no longer feel the need to try to prove the documentation wrong.

Cross-dimensional operators

To me this is the big does-not-work feature.  You cannot reference a cross-dimensional operator and use the Hybrid engine.  Dan Pressman and I went round and round and round on this trying some fairly crazy approaches, one of which involved CDFs, MDX, perl, and substitution variables before we finally came to our senses and realized it just didn’t work.  

Time Balance

Yes, that’s right, Time Balance is not available in Hybrid.  I really wanted this one to work and wasted a staggeringly large amount of time trying to get this to work via UDAs, member formulas in an Analytic dimension as you might in ASO, and I think by baying at the moon.  None of it worked.

Attributes

They just don’t work.  Nope, not at all.  G’wan, try it yourself.  They don’t work, even though they are dynamic sparse calculations which one would sort of think would be right up Hybrid’s alley if you know how ASO handles them.  With luck, they will be coming very soon.

Dynamic calcs with formulas that are targets of transparent partitions

I did not try this one, but I believe Oracle when they say it does not work. Dan did and confirms that this does not (he admits he did not read the ReadMe first and thus continues our near-perfect record of being unable, or at least unwilling, to read and comprehend documentation) work.

Queries with both two-pass and one-pass dynamic calc members from the same dimension

Ibid.

XOLAP

Ibid.

Other things that don’t yet work

These are not in the ReadMe file, but we personally tested these and know that at least in this release, they are not yet there in Hybrid.

DATAEXPORT

The calc script command DATAEXPORT doesn’t work in Hybrid, at least when writing out upper level members.  I didn’t try (or care) about level zero because there wouldn’t be any Hybrid functionality there.  Gary Crisci called this one in an email exchange with me.  And yes, it is super sad, but I have email exchanges about Essbase functionality with people.  Time to get a grip, Cameron.  Or a life.

Report Writer

The Essbase Report Writer, around since the beginning of Essbase is also not supported by Hybrid.

Transparent partitions that have Hybrid sources and Classic targets

One of the many harebrained and unsuccessful attempts Dan and I attempted was to try to push all of those lovely fast dynamic ASO aggregations from a Hybrid source to a Classic target where we thought Classic could then apply its Time Balance, cross-dim, etc., etc., etc. functionality.  There is no joy in Mudville.

XREF and XWRITE

To be fair, I didn’t test XWRITE, but for sure XREF doesn’t work and I have to believe where one goes, the other follows.

Top-down formulas

Any formula that fires in top down mode does not work in Hybrid.  Unfortunately, many calculation functions fit this profile.

So what does work?

Rack and stack BSO databases

If this functionality wasn’t there, Hybrid wouldn’t exist.  But it does work, quite well actually, and that is very exciting.

Formulas

Supported functions

@CHILDREN, @EXP, @INT, @ISMBR, @MIN, @MINSRANGE, @MOD, @MODE, @NOTEQUAL, @POWER, @RANGE, @REMAINDER, @ROUND, @VAR, @VARIANCEP, and @VARPER

These functions are supported.  

Sparse formulas

So long as the formula references only other members of the same sparse dimension members, Hybrid can fire.  

Dense formulas

So long as the formula references only other members of the same dense dimension members, Hybrid can fire.
One interesting thing to note here – intrablock calculations will, if possible, fire in Hybrid.  Think about what that means – Hybrid is working everywhere, not just for sparse calculations.  And not just at upper levels.  Again, ponder that bit of information because it is fairly earth-shattering.

Sparse to dense/sparse formulas

You cannot use cross dimensional operators, but if your sparse formula references sparse members and dense stored members, the calculation can succeed in Hybrid.  The example the ReadMe gives is as follows:  @MINSRANGE("Stereo","Qtr1":"Qtr2"); which assumes that this is a sparse member formula, Stereo is in a sparse dimension, and that Qtr1 and Qtr2 are stored dense members.

Transparent partitions with Classic BSO source to Hybrid BSO targets

This works quite nicely – hooking this up between a Classic and Hybrid database couldn’t be easier.  And it is fast, just like a Classic BSO to ASO partition.  With this, you no longer need to build two different engine versions of the same database.  This is a significant reduction in build and maintenance effort and a big win.  

NB – Before you try it in a futile attempt to get round the documented functionality of Hybrid by wrapping Classic BSO functionality around Hybrid as we did and as noted above, you cannot xref or transparent partition from a Hybrid source to a Classic target and fire the Hybrid engine; everything will run in Classic BSO mode.  Did I mention that this can be slow?  It is.

Other things that work

MDX as a data extractor

Remember how DATAEXPORT and the Report Writer do not work in Hybrid?  The good news is that MDX queries do use Hybrid so we can extract upper level data in a really fast mode so long as we can parse the output.

If there were any more proof needed to show that Oracle has bet big on MDX (and really, there isn’t), here it is – MDX trumps the Report Writer which has been around since the year dot in Essbase.

Where do we go from here?

The list of limitations is seemingly long and I suspect that it is not complete.  If you are disappointed by this, you shouldn’t be.   Cast your mind back to how limited ASO was when it first came out.  Now think about how powerful and capable it is.  I expect the same functionality improvements to occur in Hybrid.

Oracle have thrown a lifeline to BSO (and yes, you ASO bigots out there, BSO does have quite a few good points) that will, in my opinion, both transform BSO applications and bring the two engines much closer together.  It’s early days with Hybrid and I for one am going to continue to explore what Hybrid can and cannot do.

If this sort of geeky exploration is to your liking, and you want to know more about what Dan and I found, I again encourage you to come to our joint Kscope14 session.

Join us, won’t you?

07 April 2014

EPM 11.1.2.3.500 Patching Woes, Trials, and Tribulations

A warning
Don't take infrastructure advice from me.  Ever.  That begs the question, “Why are you reading a blog post on infrastructure by yr. obdnt. srvnt.”?  Simply because tales of suffering, woe, and misadventure are always instructive and sometimes entertaining.  Read the below to know that when I write this I state the truth. 

The following workaround fixed my issue, but I make no warranty that it will apply to anything other than my environment.  With that huge caveat, off we go...
Why I am here
As most of you know, I am a serially challenged (I do it again and again and I fail again and again) infrastructure idiot.  However, needs must when the devil drives, and no one else is going to install the 11.1.2.3.500 patch for me, so....

I spent most of the last weekend in March struggling with that EPM 11.1.2.3.500 17529887 patch.  Much of the issue was that Planning simply didn't work.  My compact deployment started up all right, but when I tried to enter a Planning app, nothing.  And by nothing I mean I could not edit dimensions, forms, etc., etc., etc.  Bummer.

Help is on the way
In desperation, I reached out to John Booth (if a customer needs infrastructure work, I am not sure why he would use anyone else – for sure you shouldn't hire me) and described my system symptoms.  John asked if the ADF patches 16964825 and 18362693 had been applied. 

I think they are supposed to be applied automatically as part of that big (2 gigabyte) patchset but it didn't (apparently) happen. 

I tried applying those patches from the normal C:\Oracle\Middleware\EPMSystem11R1\OPatch location.  They failed.  I reached out to John again (not many would take calls on a Sunday -- thanks, John) and he explained to me that there are two opatch locations.  The ADF patches, because they are at a base level of Fusion (I think I have this right), are applied at C:\Oracle\Middleware\oracle_common\OPatch.  I applied the patches and now Planning mostly worked.

Here are the screenshots (the second one is important because there is a twist) of the patches being applied.

16964825


18362693


Did you see the special bit of the patch here?  Don't just patch 18362693, patch 18362693\oui.  From John I know that "oui" in this context is not "Yes" in French, but instead Oracle Universal Installer.

Did it work?  Yes and no.

The issue

I could now get into Planning via IE.  Terrific.  But Planning via Smart View...it was interesting.  What's wrong with the below screenshot?

Take a look at it in IE:

Yet Another Infrastructure Moment of Pain or YAIMP.

The fix

What I did was roll everything back (thank you VMWare and thank you Cameron for being the cautious geek you usually are) via VMWare’s snapshot functionality to a prepatch environment.

I then applied those two ADF patches before I did anything else in that C:\Oracle\Middleware\oracle_common\OPatch location.

I then applied the rest of the .500 patches in the normal C:\Oracle\Middleware\EPMSystem11R1\OPatch location.  Opatch tried to apply the two ADF patches (it is built into the 17529887 patch as far as I can tell) and aborted their reapplication, but continued on with the rest of the patching process.

I then crossed my fingers.  Did it work? 

Why yes it did. Whew.

The clew I should have knew

Were I more eagle eyed, I would have seen this in my initial failed install:

That would be the two required ADF patches going KABOOM.  Did I see it?  Nope.  Dumb, dumb, dumb on my part.  As my teachers used to say back in school, “A smart boy, but does not pay attention to detail.  Must do better.”   It is nice (?) that my fundamental personality traits are constant through time.

Even dumber is that this is explicitly noted in Oracle Support KB article Issues Using Planning after Applying EPM Patch 11.1.2.3.500 (Doc ID 1640411.1).  Although I swear that when I looked for some clew (or clue) to my issue I couldn’t find it.  Sigh.

The cause

So why didn’t it work?  Most likely because I didn’t have my 11.1.2.3.000 environment set up quite right.  Careful reading (oh sure, now I do this) of the Great and Good John Goodwin’s post on 11.1.2.3.500, rewards the faithful reader with this important note:
One thing is nice is that applying the patch looks to automatically install the required ADF patches in to oracle_common home. (if you have opatch added to the path variable that is).

Looking at my PATH environment variable I see:

No reference to C:\Oracle\Middleware\oracle_common there and I think that is why the whole thing didn’t work.

The end

I think I have ten new grey hairs from all of this.  And if you wonder why I suffered through this
process, I have two Kscope14 sessions riding on a .500 environment.  It was either do or die.  Luckily this time I lived.  Again, I would never have gotten this far without John Booth's help.  Thanks, John!

Be seeing you.

Cameron