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

Customization Manager 201 PowerPoint PPT Presentation


  • 96 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

Customization Manager 201

Managing Customization Manager


Tom malia partner t t data solutions l l c

About the Presenters

Tim Malia

Partner

T&T Data Solutions L.L.C.

Tom Malia

Partner

T&T Data Solutions L.L.C.


Customization manager 201

  • 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


Customization manager 201

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


Customization manager 201

Section:

LEVELS


Customization manager 201

  • 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


Customization manager 201

Dynamics LS “out of the box”

Why?

When to be careful?

Standard


Customization manager 201

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


Customization manager 201

This one’s pretty much self explanatory….

All User


Customization manager 201

Group Level

Q: How many groups?

A: “1” per user

Q: How do you write one?

A: Select Group ID


Customization manager 201

Group Level (continued)

Think about what you build on:

A little warning:


Customization manager 201

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.


Customization manager 201

Self Level

A little warning:

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


Customization manager 201

Section:

Where & How are Customizations stored?


Customization manager 201

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.


  • Customization manager 201

    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


    Customization manager 201

    How do customizations Load?


    Customization manager 201

    A little simpler view of the query

    That gets the set of customizations to apply


    Customization manager 201

    Get the actual customization code & property settings


    Customization manager 201

    1) Supplemental Products

    2) All Users

    3) Group (GOUPA)

    4) One User (TOMMALIA)

    5) Self/Save Settings on exit


    Customization management

    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 management1

    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”


    Customization manager 201

    Section:

    The OFFICIAL tools for managing customizations


    Official tools utilities export customizations 91 500 00

    Official Tools/Utilities:Export Customizations (91.500.00)


    Understanding cst files the header

    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

    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

    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 Customizations (91.510.00)


    Official tools utilities import options

    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


    Customization manager 201

    Section:

    Source Code Control & Documentations


    Customization documentation what should you document

    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 documentation how do you export source code

    Customization documentationHow do you export source code?


    Customization documentation where should you put your documentation

    Customization documentationWhere should you put your documentation?


    Something to take home a script to make project directories

    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"


    Customization manager 201

    Section:

    Customizations During Upgrades


    Upgrade management did you test all the customizations

    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

    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 results1

    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:Something to take home


    Upgrade management to recompile or not to recompile that might be the question

    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 question1

    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 question2

    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.


    Customization manager 201

    Section:

    Where angles fear to tread…

    UNOFFICIAL managemenet tools


    Adv management the un official way

    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

    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

    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

    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

    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!


    Customization manager 201

    Section:

    Supplemental Products Customizations development techniques


    Editing testing supplemental products

    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

    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

    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

    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 group1

    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

    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 products1

    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!


    Customization manager 201

    Move everything up to customize

    Move everything back when done


    Questions

    Questions?


    Wrap up

    • 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