You make a good point in highlighting the issue with the guides Also I would like to highlight that when workflow is shared, the complexity increases, and sometimes significantly...
-Guillaume -----Original Message----- From: Action Request System discussion list(ARSList) on behalf of strauss Sent: Wed 02/18/09 12:42 AM To: arslist@ARSLIST.ORG Subject: Re: Remedy Development Best Practices Great summaries of customization best practices! The only thing I would add is on the documentation; you need two different kinds of docs: 1. Functional descriptions of each feature added or modified, and all fields and/or forms added or modified, all OOTB workflow disabled and replaced with custom workflow, and all new, completely custom workflow or objects. Basically, everything you changed and why you changed it in a given functional module. Include details on any back-end integrations that are mostly custom code since they probably touch at least one OOTB form or module. Add to this document as you build new customizations. 2. Patch recovery lists by item type (form, field, active link, filter, etc.,) in the order that they must be restored after the last patch is applied. Includes OOTB workflow that must be inspected for BMC modifications in case you have to add those changes to your customized objects, that then must be re-disabled (yes, there are some in ITSM 7 patch 007 versus 006). Then list the customized objects that have to be checked, especially forms and views since you typically will not have renamed those from their OOTB version and most of the patches will overwrite them or at least replace some of their views; you will have to add your custom fields back to the updated views. Basically a checklist in the order you need to execute it to restore your customizations after any ITSM patch, especially some of the supplemental patches like 9002 that will even wipe out BMC integrations like RKM. If you customized any OOTB ARS components (password management filters, reports, e-mail integrations) you will need the same sort of checklist for these as well. Build these documents while cleaning up after a test patch on a copy of production; you will need them in order to minimize your down time when patching production (and to avoid missing something). The ITSM 7 patches are huge, and unless you are 100% OOTB you will need a plan to clean up after them. Remedy Migrator will pay for itself ten-fold when you have to do this. If all you have is production and development, patch development, then use migrator to restore the customizations on development from production, documenting it all as you go, then patch production and restore the customizations on production from development using migrator and the checklist. Good luck! Christopher Strauss, Ph.D. Call Tracking Administration Manager University of North Texas Computing & IT Center http://itsm.unt.edu/ From: Action Request System discussion list(ARSList) [mailto:arsl...@arslist.org] On Behalf Of William Rentfrow Sent: Tuesday, February 17, 2009 11:09 PM To: arslist@ARSLIST.ORG Subject: Re: Remedy Development Best Practices ** 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. William Rentfrow Principal Consultant, StrataCom Inc. wrentf...@stratacominc.com<blocked::mailto:wrentf...@stratacominc.com> 715-410-8056 C 715-592-5185 O ________________________________ From: Action Request System discussion list(ARSList) [mailto:arsl...@arslist.org] On Behalf Of bruce sisk Sent: Tuesday, February 17, 2009 6:30 PM To: arslist@ARSLIST.ORG Subject: Re: Remedy Development Best Practices ** A little used feature of the Remedy admin tool is the packing list feature. I work within the packing list or workspace. I add the existing workflow or forms to be modified to a packing list. After I have completed development, I export the contents of the packing list to a def file and use migrator to import just the differences. After that, I zip up the def files and the results from migrator. If required in your environment, you could check this zip into a source control solution. For new fields, especially if you are adding a new field to an OOTB form, you definately want to use a custom fieldid range. It can be anything you want...but you have to get in the habit of doing it. The reason this is valuable, you could then develop an sql query like the one below that could be used to search the fields table for fields in the range. I run this from ARUtilities... select f.fieldid, f.fieldname, a.name, CASE WHEN datatype= 2 THEN 'Integer' WHEN datatype= 3 THEN 'Real' WHEN datatype= 4 THEN 'Character' WHEN datatype= 5 THEN 'Diary' WHEN datatype= 6 THEN 'Selection' WHEN datatype= 7 THEN 'Date/Time' WHEN datatype=10 THEN 'Decimal' WHEN datatype=11 THEN 'Attachment' WHEN datatype=12 THEN 'Currency' WHEN datatype=13 THEN 'Date' WHEN datatype=14 THEN 'Time' WHEN datatype=31 THEN 'Trim' WHEN datatype=32 THEN 'Button' WHEN datatype=33 THEN 'Table' WHEN datatype=34 THEN 'Column' WHEN datatype=35 THEN 'Page Field' WHEN datatype=36 THEN 'Page Holder' WHEN datatype=37 THEN 'Attachment Pool' WHEN datatype=42 THEN 'View' ELSE 'UNKNOWN' END AS FIELDTYPE from field f, arschema a where f.schemaid = a.schemaid and ((f.fieldid like '85%' AND f.fieldid > 536870912) or (f.fieldid like '185%' AND f.fieldid > 999999 AND f.fieldid < 20000000)) order by f.fieldid desc Notice the 85% and 185% (global fields)...these are the field ranges I use. Bruce Sisk BFS Enterprises -----Original Message----- From: Ray Palla Sent: Feb 17, 2009 4:33 PM To: arslist@ARSLIST.ORG Subject: Re: Remedy Development Best Practices ** Generally speaking Steve; The best method is to disable the OOB workflow and then do a Save As... Renaming to your custom nomenclature. Modify and enable the new workflow. You can then save a .def file of your new workflow to import (if needed) following a new patch or upgrade. Often following an upgrade your old OOB workflow will be re-enabled, so a .def of those is usually a good idea to keep track of them and allow you to compare any modification made by the update. As far as naming convention... Some people put the company name (ABC) at the front of the old name, but I find it's easier to find them alongside the original code if the company name is added to the end. For field IDs I let the system pick it unless I'm using the field in multiple forms and want continuity across them. Everyone has a different way of assigning their own IDs. I've seen some separate ranges for each specific field type, while others just go with a large group that is not in the Remedy reserved range. To each his own. I find that there is little gained by either approach and tracking them is time consuming. Have fun; R ________________________________ From: Action Request System discussion list(ARSList) [mailto:arsl...@arslist.org] On Behalf Of Steven Iocco Sent: Tuesday, February 17, 2009 3:10 PM To: arslist@ARSLIST.ORG Subject: Remedy Development Best Practices ** 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? Thanks Steve __Platinum Sponsor: RMI Solutions ARSlist: "Where the Answers Are" html___ __Platinum Sponsor: RMI Solutions ARSlist: "Where the Answers Are" html___ ________________________________________ PeoplePC Online A better way to Internet http://www.peoplepc.com __Platinum Sponsor: RMI Solutions ARSlist: "Where the Answers Are" html___ __Platinum Sponsor: RMI Solutions ARSlist: "Where the Answers Are" html___ _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org Platinum Sponsor: RMI Solutions ARSlist: "Where the Answers Are" _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org Platinum Sponsor: RMI Solutions ARSlist: "Where the Answers Are"