** Hi folks. Just wondering what practices some developers are using for custom code and enhancing ootb workflow. IE, field ID’s in a non reserved range, New workflow easily identified perhpaps by the company name etc. My real big dillemma is modifying existing workflow. Does anyone have some best practices for modifying existing workflow so that in the event of an upgrade pitfalls can be avoided or at least anticipated?
I am kind of a nut about this since 7.x came out.
Fields: Custom numbering in a predictable range. Generally when customizing an existing form I start with something like 600100200 for the field ID’s. Using this method you can easily run a simple SQL search on the form and field table to determine what your custom fields were:
For field names I use BMC’s naming convention which is pretty well documented. I do not remember if they only give this out to partners or not. If you can’t find it let me know.
For workflow and forms I use a special multi-tenancy way of naming. It’s pretty straight forward. If I am customizing original workflow I disable the original and never modify it. Then I rename it with the Business Name:Operating Company Name or abbreviation: then original name. So an Active Link named HPD:DoSomeStuff for XYZ Corp’s HR customer/tenant might get named XYZ:HR:HPD:DoSomeStuff. Cumbersome? Maybe. Useful? VERY – especially when you can narrow your view by prefix to find workflow specific to certain tenants.
I do this now even if the system is not planned to be multi-tenancy because you never know….
When making new workflow it’s similar – I take the form prefix (if one exists) or invent one if necessary for new forms. The result is the same as the above.
When I create brand new forms from scratch I do not worry about numbering the fields. An entirely custom form should never need have it’s fields differentiated from base product fields.
The only area I really run into a hitch philosophically is modifying base product active link guides or filter guides. You can either
1.) Choose to disable, copy, rename, and modify the calling Active Link/filter, copy the entire guide, disable all the base product workflow, copy it, rename it, re-enable it, and customize the active link/filter in question, or
2.) Disable the active link/filter in question, leave it in the base product guide, add the new customized active link/filter, and document the heck out of it.
I pragmatically chose #2 and stuck with it based on what mood I was in that day.
I spent the first 30 years or so of my life avoiding children like the plauge. Judge how you want – one of the consequences of that is that I don’t know the lyrics to many children’s songs. Since my daughter has never been a good sleeper (spare me the advice – been there, done that) we ended up buying a musical toy for her crib. It has four or five different songs on it that play in rotation.
I have an idea how many of them start. One of them is “Hush little baby don’t say a word – mommy’s going to buy you a mockingbird…”.
That is the sum total of my knowledge of the original song. However, the fact remains that my daughter likes when I sing to her (I have no idea why) and goes to sleep faster. So I just made up lyrics:
Hush little baby, don’t say a word
Daddy’s going to buy you a Thunderbird
If that Thunderbird isn’t great
We’ll drop in a 308
If that 308 isn’t fast
Daddy’s going to buy some premium gas.
If that gas doesn’t make it go far
Daddy’s going to buy you a brand new car
(and repeat!)
Hanna refers to this (currently, at age 2) as “Funderbird”. She sings it by herself now. I am the only person to blame if she grows up and falls in love with a gear head who has a Thunderbird.