Customization manager 201
Sponsored Links
This presentation is the property of its rightful owner.
1 / 61

Customization Manager 201 PowerPoint PPT Presentation


  • 106 Views
  • Uploaded on
  • Presentation posted in: General

Customization Manager 201. Managing Customization Manager. About the Presenters. Tim Malia Partner T&T Data Solutions L.L.C. Tom Malia Partner T&T Data Solutions L.L.C. Take the lid off the “Black box” Understand where and how customizations are stored

Download Presentation

Customization Manager 201

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Customization Manager 201

Managing Customization Manager


About the Presenters

Tim Malia

Partner

T&T Data Solutions L.L.C.

Tom Malia

Partner

T&T Data Solutions L.L.C.


  • Take the lid off the “Black box”

  • Understand where and how customizations are stored

  • Understand how customizations are applied when a screen runs

  • Leverage the knowledge from 2 & 3 tobetter, more efficient and more quickly “manage” your customizations

Objectives


This material is intend for anyone that is responsible for or involved in maintaining Dynamic SL installations (i.e. they have to: keep it running, back it up, upgrade, troubleshoot, etc.)

This material is NOT intended to teach you anything about how to write customizations. However, if you do also write customizations, you may find this information quite helpful.

Target Audience


Section:

LEVELS


  • Customization “levels”

    1) Standard

    • “out of the box” (just the EXE)

      2) Supplemental products

    • “3rd party” (You can run um, you can’t write um)

      3) All Users

    • “Doesn’t matter what user ID”

      4) Group

    • “user’s ONE customization group”

      5) One user

    • “A specific user ID”

      6) Self /save settings on exit


Dynamics LS “out of the box”

Why?

When to be careful?

Standard


Q: If you can’t turn on standardmode, then how do you create these?

A: Write an “All User” customization, export it, make a minor change to the header of the customizations, then reimport it….. You’ll see details a little later.

Supplemental Products


This one’s pretty much self explanatory….

All User


Group Level

Q: How many groups?

A: “1” per user

Q: How do you write one?

A: Select Group ID


Group Level (continued)

Think about what you build on:

A little warning:


One User Level

Q: What’s the difference between “One User” and “Self”?

A1: Allows a user logged in as themselves to write customizations for another user that shouldn’t have rights to customization manager.

A2: “One User” does NOT get mixed up with “Save Setting On Exit” but “Self” does.


Self Level

A little warning:

“Save settings on exit” are indistinguishable from “Self”


Section:

Where & How are Customizations stored?


Where are customizations stored?

System database:

  • CustomVBA

    “standard” for current SL versions

  • Custom2

    • “Pre-VBA” Basic Script Language (BSL)

  • Custom

    • OLD! – legacy from 16 bit product version.


  • What identifies a customizations?

    • ScreenID

      The executable name

    • Sequence

      500 = self

      400 = One user

      350 = Group

      300 = All users

      100 = Supplemental product

    • Entity ID

      Specific 3rd party, group or user


    How do customizations Load?


    A little simpler view of the query

    That gets the set of customizations to apply


    Get the actual customization code & property settings


    1) Supplemental Products

    2) All Users

    3) Group (GOUPA)

    4) One User (TOMMALIA)

    5) Self/Save Settings on exit


    Customization Management

    • Why should you care about all this?

      • If you’re an end user…. You really shouldn’t care

      • If you’re responsible for managing, backing up, upgrading, trouble shooting a Dynamics SL install, then you may find times when this information is VERY nice to know

    • When do I care about this?

      • NOT – during day-to-day operations while things are working

      • WHEN:

        • Things AREN’T working

        • You’re upgrading a system

        • You’re managing a project to add new customizations to a system that already has customizations

        • Etc.


    Customization Management

    • Do I REALLY need to know all the back end stuff? Aren’t there features and utilities built into the product for all this?

      • Ideally you will never “need” to know the “back end stuff”

      • Yes there are “official” tools for managing customization data (We’ll be looking at those next)

      • Sometimes you may have to dig into the “back end stuff”

      • Other times, it will just be easier for you if you know the “back end stuff”


    Section:

    The OFFICIAL tools for managing customizations


    Official Tools/Utilities:Export Customizations (91.500.00)


    Understanding CST files:The header:

    • Supplemental products:

    • All User :

    • One User :

    • The header must be all on one line in the actual file. The “->” represents a “line continuation” for demonstration purposes and would NOT be present in an actual file.

    ' Begin Customization Screen: 0327000 Version: 5 Sequence: 100->

    CompanyName: "Example Sup Prod"-> Description: "" ->

    System Administrator: FALSE Secure: 55

    ' Begin Customization Screen: 0327000 Version: 5 Sequence: 300->

    Description: "A New All Users Customization" System Administrator: FALSE Secure: 55

    ' Begin Customization Screen: 0327000 Version: 5 Sequence: 400UserId: "TOMMALIA"->

    Description: "A New One User Customization" System Administrator: FALSE Secure: 55


    Understanding CST files:Properties:

    • Changes to the properties of controls are exported in “Plain Text”.

    • Here is an example of a customization that simply changed the location of a button.

    Begin Button ButtonHistory

    '' Version = 6

    height = 21

    left = 278

    '' parent = "_SSTab1_TabPage0"

    '' parentform = "Form1"

    top = 85

    width = 97

    End


    Understanding CST files:Code/VBA Project:

    • The “Macro Text” section contains a UU Encoded

    Copy of the VBA project which includes any macro code.

    ' Begin Macro Text

    *** VBA PROJECT BINARY DATA FOLLOWS. DO NOT MODIFY. ***

    Length: 400384

    Compiled: 1

    MT,\1X*&Q&N$ /@ # /[_"0 & '

    M &P $ 'P H #^____ !P " ] &P!

    M "Q 0 @ ( # #_________________________________________

    M____________________________________________________________

    M____________________________________________________________

    M____________________________________________________________

    M *YY 0 ." [email protected]\ @( (P 3@ 'L ,0 P #@ 00 Y #$

    M,P R "T -P X #@ . M #$ ,0!$ #$ +0 X #@ 1 P "T , P #8 , Y

    M #< ,P Q $( -@ Y #< ?0

    M

    3 $,

    ' End Customization


    Official Tools/Utilities:Import Customizations (91.510.00)


    Official Tools/Utilities:Import Options

    • Overwrite

      • Deletes current and replaces with new

    • Reject customization

      • If a cust. For a given Screen/level/entity in the import already exists, then the new customization will not be imported

    • Merge

      • “Tries” to combine existing customizations to a screen/level/entity with one being imported to the same screen/level/entity


    Section:

    Source Code Control & Documentations


    Customization documentationWhat should you document?

    • Why was the customization implemented

    • What does the customization “look like”

    • Export of current state of the customizations (CST file)

    • Plain text exports of all VBA code

      • Don’t forget DH files also

      • NOTE! There’s a great new feature in SP1 for this!!! YA!

    • SQL Data Definition Language (DDL) scripts to create any needed tables, views, procs, etc.


    Customization documentationHow do you export source code?


    Customization documentationWhere should you put your documentation?


    Something to take home: a script to make project directories

    select

    Distinct

    'mkdir "'

    + ltrim(rtrim(CustomVBA.ScreenId))

    + '-'

    + REPLACE(Screen.Name, ' ', '_')

    + '\'

    + case

    when CustomVBA.Sequence between 0 and 100 then

    'SUPPROD\' + LTRIM(rtrim(CustomVBA.EntityId))

    when CustomVBA.Sequence = 200 then

    'LANG'

    when CustomVBA.Sequence = 250 then

    'LOCAL'

    when CustomVBA.Sequence between 300 and 349 then

    'ALLUSER'

    when CustomVBA.Sequence between 350 and 399 then

    'GROUP\' + LTRIM(rtrim(CustomVBA.EntityId))

    when CustomVBA.Sequence between 400 and 499 then

    'ONEUSER\' + LTRIM(rtrim(CustomVBA.EntityId))

    when CustomVBA.Sequence >= 500 then

    'SELF\' + LTRIM(rtrim(CustomVBA.EntityId))

    else

    CONVERT(varchar(4), CustomVBA.Sequence)

    end

    + '"'

    from

    customVBA

    left outer join

    Screen

    on

    CustomVBA.ScreenId = screen.Number

    mkdir "0101000-Journal_Transactions\SELF\TOMMALIA"

    mkdir "0327000-Vendor_Maintenance\ALLUSER"

    mkdir "0327000-Vendor_Maintenance\GROUP\GROUPA"

    mkdir "0327000-Vendor_Maintenance\ONEUSER\TOMMALIA"

    mkdir "0327000-Vendor_Maintenance\SELF\SYSADMIN"

    mkdir "0327000-Vendor_Maintenance\SELF\TOMMALIA"

    mkdir "0327000-Vendor_Maintenance\SUPPROD\Example Sup Prod"

    mkdir "0329000-Vendor_Class_Maintenance\SELF\SYSADMIN"

    mkdir "0826000-Customer_Maintenance\SELF\TOMMALIA"

    mkdir "TMTCE00-Timecard_Entry\ALLUSER"


    Section:

    Customizations During Upgrades


    Upgrade Management:Did you test ALL the customizations?

    • You ran the Dynamics SL upgrade, you upgraded the database and a couple users logged into screens without error…. You’re upgrade’s a success!

    • Turn the whole company loose on your shiny new Dynamics SL!

    • RIGHT?


    Upgrade Management:Keeping track of customization testing results

    • Most of you probably already do something like this… A simple spreadsheet to keep track of what needs t be upgraded, tested, etc….


    Upgrade Management:Keeping track of customization testing results

    • A slight variation on the same query we looked at for create the “create directory” statements earlier, and you can easily generate data that you can load into Excel to keep track of your customization upgrade.


    Upgrade Management:Something to take home


    Upgrade Management:to recompile or not to recompile. That might be the question:

    • Frequently customizations need no extra attention as a result of an upgrade…. But not always

    • VBA “caches” compiled customizations…. This can be a problem if the code “under” the cached customization has changed since it was compiled and cached… but you can force a recompile

    • Sometimes, it’s easier to just consistently “re-do” all customizations… but not necessarily from scratch


    Upgrade Management:to recompile or not to recompile. That might be the question:

    • VBA “caches” compiled customizations…. This can be a problem in the code “under” the cached customization has changed since the cache… but you can force a recompile

    • You can add an entry to the Solomon.ini file that will tell Dynamics SL that it should not rely on cached compiled code.

    [Customization]

    VBASourceSave=No

    VBASourceCompile=Yes


    Upgrade Management:to recompile or not to recompile. That might be the question:

    • Sometimes, it’s easier to just consistently “re-do” all customizations… but not necessarily from scratch

    • Sometimes it’s easiest to just bight the bullet and “redo” all customizations by importing modified CST files that have the macro section removed.

    • Then manually import or copy and past the VBA code back into the projects.

    • *Note: there’s a really good chance that with the ability to export vba code as plain text that comes with version 2011 SP1, this will no longer be necessary.


    Section:

    Where angles fear to tread…

    UNOFFICIAL managemenet tools


    Adv. Management:The UNofficial way

    Proceed at you own risk!

    What follows is not officially supported by Microsoft.

    T&T, Microsoft & SLUG are not responsible if you screw up your system doing this stuff!

    (But I’ve been doing it for years and so far so good)


    Adv. Management:Quick & Dirty Backups

    All customizations are stored in the Custom tables in the system database…. So....

    Here’s a REALLY simple way to create a “quick & Dirty” backup of all or part of your customizations to a new table so you could “restore” them back later if you need to.

    See prior warning message!

    Select

    CustomId

    ,Description

    ,EntityId

    ,RecordIndex

    ,ScreenId

    ,Sequence

    ,Version

    ,PropData

    INTO

    MyCustomVBA_Backup

    From

    CustomVBA


    Adv. Management:Restore Q&D Backup

    Restoring a “Quick & Dirty” backup of your CustomVBA table is basically just the reverse of creating one.

    See prior warning message!


    Temporarily remove one or more customizations

    Once you know what uniquely identifies a customization and how they load, now it should be

    fairly obvious, how easy it could be temporarily “remove” a customization or a group of customizations:

    See prior warning message!


    Adv. Management:“One User” Templates

    Group customizations are a handy addition, but do have limitations (i.e. only one group per user). Sometimes it would be nice to be able to “copy” customizations written for one user to another user. (Note: the “official” way to do this is, export, change the header line, reimport)

    See prior warning message!


    Section:

    Supplemental Products Customizations development techniques


    Editing/Testing Supplemental products

    • You can not start customize mode while in supplemental products level.

    • The easiest thing is to “move” them to all users

    • But you still have to test to make sure other levels will be compatible with the changes.

    • An easy way to do this is to “move” the whole stack of customizations “up” one level

    See prior warning message!


    Shift One User to Self and switch to Dev User

    • The first step is to move the one user customizations to “self” and switch the user ID to a “Development User”. This will be the user ID that you log in with to do your development and testing

    See prior warning message!


    Shift Group to One User and switch to Dev User

    • Next step is to move the group customizations to “one user” and switch the user ID to a “Development User”.

    See prior warning message!


    Shift All User to Group

    • Next step is to move the All Users customizations to “Group” level.

    See prior warning message!


    Shift All User to Group

    • Next step is to move the Supplemental products customizations to “All Users” level.

    See prior warning message!


    Shift Supplemental Prod. To All User

    • Next step is to move the Supplemental products customizations to “All Users” level.

    See prior warning message!


    Editing/Testing Supplemental products

    • When you’re done with all this, you effectively have the exact same set of customizations just with everything shift “up” so there’s nothing in the “Supplemental Products” section. So you’re free to customize and test any level by just changing the customization level.

    See prior warning message!


    Move everything up to customize

    Move everything back when done


    Questions?


    • THANK YOU!!!

    • Please fill out your evaluation forms for session: Customization Manager 201

    • Speaker Contact information:

      Tom Malia

      T&T Data Solutions L.L.C.

      [email protected]

      (410) 939-8382

    Wrap up


  • Login