Migrate development capsule changes to production

Whenever I create / test new / modified enhancements I apply and test them first in Development capsule. When there is consensus about the change I manually apply the changes to procedures / screens / etc.making very very sure that I migrate everything (sometimes this can be a rather tricky process).

 

How do you guys do this? Is there a better way of doing this? 

 

Even when I create a new control and i want to copy that to production board won't allow me and complains about databases not the same... (why is it not possible to open two capsules at the same time without consuming another license ans start the client twice?)

Answers

  • Paul Wyatt
    Paul Wyatt Customer
    100 Comments 100 Up Votes 100 Likes Second Anniversary
    edited March 2020

    (Corrected following observation from Ray Martens, Thanks Ray)

     

    Hi Peter,

     

    Your post appears to be asking the following questions:

     

    1. Can multiple BOARD instances be open at the same time by the same user with the same licence?
    2. What is the best practice for promoting a model from Dev Server to Production Server.

     

    I will first deal with the multiinstance question.  I will then post a separate response to question 2 regarding promotion best practice

     

    MULTI INSTANCE

    BOARD desktop and BOARD WEB both support multi instance.  This allows a user to open multiple instances of Board from the same server, regardless of capsule and database.  There is one important point to note which is that a multiple instance cannot exist on both platforms.  That is to say that a user cannot open a desktop instance and then a web instance with the same licence.  Doing so will cause the previous instance to close/fail/lock/stop functioning.

     

    CREATING MULTIPLE INSTANCES ON BOARD WEB

    1. To create a multiple instance on web:
    2. Log into BOARD WEB using your BOARD URL
    3. Open a capsule
    4. Open a new Web Tab
    5. Navigate to your usual BOARD URL
    6. Select another capsule to open.
    7. Repeat from Step 4 for additional instances from the same server

    NB: If you copy the URL of a board capsule, you can create another capsule/database model and paste the URL into a viewer object.  Doing this would allow you to operate 2 (or more)  separate capsules in one WEB instance.  This could be useful for Dev/Admin work where a security model is shared by various capsules, or for the creation of 'Managerial peek through' screens.

     

    CREATING MULTIPLE INSTANCES ON BOARD DESKTOP

    1. Navigate to your BOARD Win Client; it should be found here: C:\Program Files (x86)\Board\Board Client
    2. Right click on BoardWinClient.exe
    3. Select 'Send to Desktop (Create shortcut)'
    4. Go to Desktop
    5. Right click on 'BoardWinClient.exe - Shortcut'
    6. Select 'Properties > Shortcut'
    7. In the line for 'Target', navigate to the end of the script and enter a single [space].
    8. The image below shows that after the text you should type '/multiinstance' (Without the single quote marks). 
    9. Using the edited shortcut, double click it to open a server BOARD instance with usual login and open a capsule (or not, it does not matter).
    10. Navigate to the desktop and double click the shortcut again.
    11. Open another instance of BOARD, either the same server or another server host.
    12. Select Host and log in.
    13. Continue to repeat from step 10 until bored :-)

     

    Image: Update shortcut icon properties (EDIT: Use a forward slash [/] and not a backslash as erroneously shown in the image below)

    image

  • Hi Peter,

    promotion of model from one capsule to another - Best Practice

     

    TRANSPORTER TOOL

    Firstly, there is a 'transporter' tool which provides a formal method of promoting data models from one server to another.  However, I do not use it and so I cannot comment on its effectiveness; you should approach your BOARD sales person for further details.  I do know that it was updated for BOARD 10.1.4 though and so I assume it does better what ever it did and with more features to do it - yay.

     

    MANUAL PROMOTION PROCESS

    The main method of promotion is by copy/paste as you're doing now.  It is up to each DEV and their company policies and strategies as to how they carry this out and track versions and rollbacks. 

    So, more importantly is how to successfully promote by avoiding some evil little pitfalls that you should be aware of and incorporate into your own processes for a successful promotion.  This situation has gotten harder now that we develop and promote from DESKTOP to WEB as not only 'What you See IS NOT What You Get' but function settings really matter in WEB but allow DESKTOP to work perfectly well without in a number of instances, like NEXEL.

     

    What follows is my subjective advice and a very incomplete checklist of sorts.  I do appreciate you were hoping for a 'quick fix' promotion guide and it is possible that another DEV has one...probably kept in a cupboard next to the stable of unicorns.

     

    AREAS TO CHECK

    The biggest headaches I've had over the years has always been with anything not involving BOARD out-of-the-box objects: 

     

    1.   PROCEDURES

    Process

       - Nexel Writeback validation check.

       a.   Firstly, edit the Nexel routine you saved to Library...which isn't there because you forgot to save it to library!

       b.   After you've saved the NEXEL routine to Library, ensure [Allow Write Inplace] has been activated if you're writing to cubes.

       c.   If you're using selections within the procedure, ensure that [x] Use Configuration Selections is activated.  Not setting this allows DESKTOP to function perfectly well but the model fails when used on WEB...all because of this little b@?#?y checkbox.

     

    LAUNCH

       - Call Procedure

    You may use a DEV database and then promote the HBMP and rename it to that of the production model.  If you're calling procedures, you should check that the correct db is being called or you'll be trawling through procedure after procedure to find this issue.

     

    DATA READ.    

       - ASCII Data Read.   ASCII Path/File & New path have always been my biggest issue for omissions.   I find it better to just use a New Path, typing the complete path from e:\, each time so that defaults do not creep in on promotion.

    EXTRACT

       - Extract to ASCII File.   Make sure you're using the correct path/file as they may work in DEV but fail in Production due to the folder not actually existing or a default location being used instead.

       - Extract Layout to File.   Ensure Path/File is entered precisely as required.

     

    2.   CAPSULE PROPERTIES

    Capsule Web Tile - If you enter any object references in here but delete or rename the objects, or, if you change security settings to prevent a user accessing the objects within the CAPSULE WEB TILE being displayed, you will get WEB errors and they will make you laugh sooo hard when you eventually correct the issue...I'm still chuckling over my own ones now, after discovering them several months ago - Ahhh, BOARD, what are you like?

     

    Peter, I hope that this is of some use to you?  As I said, I appreciate you were hoping for a yes,no or 'here's a work flow for perfect promotions' type response.  In essence, I think its just down to experience and using this FORUM regularly to keep up to date with the 'gremlins'.

     

    Regards,

     

    Paul Wyatt

  • Hi Paul Wyatt - Avison Young UK,

    that was really helpful! In my case I needed to set the parameter to

    /multiinstance 

    (with a forward slash).

    BR, Ray

  • Unknown
    Unknown Active Partner

    The Run on current DataBase under Call Procedure Command (released in 10.1.4) (see release notes: Board 10.1.4 Release Notes ) is also very useful when you both copy capsule and db, rename the db and let the new capsule point to this new db.

    image500.jpg



  • Paul Wyatt
    Paul Wyatt Customer
    100 Comments 100 Up Votes 100 Likes Second Anniversary
    edited March 2020

    (Amended following observation made by interested typ)

     

    PROMOTION BEST PRACTICE - The Data Reader issue.

     

    Whilst we're discussing PROMOTION issues and Best Practice, I thought I'd share a really fun outcome that can occur when one makes a change to a datareader - namely, when deleting a datareader which has been included in a procedure. 

    • If a data reader process which has been used in a procedure is deleted, the procedure remains BUT will not function. 
    • An error message is provided which indicates process has failed but on initially reviewing this error, all appears to be ok. 
    • Only by opening the process can it be seen that the Data Reader box is blank.

    Example:

    1.  Procedure fails and presents a little message will appear in the bottom right corner of the screen (which may be hard notice if you're using a 27" UHD monitor - just saying).  The message will identify the number of the process within the procedure that failed - no.98 in this example. 

    image

     

    2.   On initial inspection, it appears that the process is absolutely fine; the process is a SQL Data Read and the name of the procedure is clearly displayed (now scratchy head as to what is wrong.  Conclusion: re-run procedure...D'oh, it did it again).

    image

     

    3.  Open the process that BOARD indicated in the first place and it can be seen that the Protocol, which I deleted and re-created, was missing.

    image

     

    This error demonstrates BOARD's ability to identify errors (or bugs for the ex-programmers) but also it's inability to fully handle the error in a way that would help the DEV rather than assist with the premature balding common in a lot of analysts.

     

    In fairness, I don't hold BOARD responsible.  At least we now have the Community to share these issues on.  I do think that it would be useful to consolidate these issues though.  Maybe we should have a forum for known and tested common errors/bugs/issues?  From it, Best Practice could be created.  We might even be able to get close to creating a generic Promotion template - Any suggestions (for or against) anyone?

  • Thanks Jonathan Baetens, That's a really great outcome.  I will be incorporating that into all of my models once I've played about with it and am familiar with it's behaviour.

  • If i understood properly, you deleted a datareader, then re-create it ? I don't understand the concept of "re-create".

    I only understand "create a new datareader and define it exactly like the deleted one". But i would not expect here BOARD to recognize that the new created DR is like the deleted one, and therefore I find normal that the procedure displays no DR at all when you click on the line 98.

    Of course i would dream that you receive a warning message before deleting the DR like "this DR is called in Procedure XXXX, you should first delete the procedure line and then the DR"

    It is a known issue that after some operations (not even deleting) like renaming a cube, or a datareader, the lines of procedures (e.g. dataflow, call datareader...) display the initial name in the procedure main window, until you open each individual line, switch to another cube (or datareader or whatever), click ok, then open again, switch back on the proper renamed cube (or datareader or whatever), click ok and save the procedure. This manual and not very pleasant maintenance task is often forgotten or deliberately ignored by DEVs, which makes then discovering an application as a DEV a bit more displeasing.

  • You are right, the re-creation of the datareader was totally irrelevant but I realised this too late to correct the post. 

    I usually write down my experience and then try and extract the point but in this instance, I recalled what led me to the point and immediately posted

    :-(.

    Thanks for picking up on that, I'd hate for anyone to be confused and miss the main point within that part of the post, which was:

     

    If you delete a data reader which is used in a process and do not amend the procedure, the process breaks and the cause is not immediately clear.

    ...Ha, I should have just written that - much simpler and clearer.

  • Previous Member
    edited March 2020

    I understand, thanks for the clarification.

    In general you can edit and modify the comments / articles you posted in the past. I used this function many times .

    When reading some of my content, I sometimes checks someting unclear and edits the original content, I prefer this against adding comments, because i find additional comments "correcting" the original content difficult to follow as a reader.

     

    image

  • Paul Wyatt
    Paul Wyatt Customer
    100 Comments 100 Up Votes 100 Likes Second Anniversary
    edited March 2020

    interested typ,  Thank you, you've helped clear up what I've been doing wrong all this time :-).  I was trying to edit from the INBOX and not from the ORIGINAL post location.  When selecting the [Actions] on the INBOX, I only saw the [No actions available] - see image below; I was even thinking that other users had different security access to me!!!  I will straighten out my posted replies when I get a moment at home.

     

    Image: Actions options from INBOX.

     

    image

  • very good, glad that I could help on this point!

  • It is my understanding that internally board works with an integer as UID to uniquely identify everything - deleting a procedure and then creating a new identically named procedure does not solve your issue since the UID is different.

    I had a case where UIDs were being re-used! I deleted an entity which had some values in it, created a new one and those old values appeared! Re-using i not bad but please make sure that all evidence of old UID has been erased before handing out previously used UID. Anyway - digressing - thanks for your valuable feedback - just like the data(model) migration tool (never used it myself) i think board should release a capsule migration tool... i envision a tool where i would identify the component to be migrated and the tool would check which of the dependent components need an import or refresh, present the list and then let me toggle which ones would be migrated (with functionality much like SVN or the like where source would be displayed like a comparision) - ah one can dream, can't one? wishlist