Precisely Speaking
May 18, 2012, 03:53:41 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: So what's news with you?  Tell us about it in "Getting To Know You"!
 
   Home   Help Calendar Login Register  
Pages: [1]   Go Down
  Print  
Author Topic: Comparison on SB+ objects  (Read 1802 times)
slestak
Uber-Pro
****
Posts: 69



« on: October 23, 2009, 11:59:52 AM »

Hi guys,

I am aware of the /COMPARE command for diffing individual items in System Builder.  This works somewhat well, but can be ungainly for larger screens or reports, since they are made up of dozens of field definitions, process slots, etc.  I have found that fore even moderately sized report definitions, the COMPARE utility uses high cpu and does not come back for several minutes.

Does anyone have any advice for proper care and feeding of a TEST account and how to know that a process is "synced".  It seems it would almost require a "tree traversal" kind of approach comparing every linked item but that would be impossible.

Thanks,

Steve
Logged
precisonline
President/Chief Technologist
Administrator
Rock Star
*****
Posts: 1532



WWW
« Reply #1 on: October 23, 2009, 02:42:24 PM »

1) Create a file called CHECKSUMS in your TEST account.

2) Create a program that selects all of the appropriate SB+ files (...PROCESS, ...PROGS, ...MENUS, ...HELP, ...DRIVERS, ...DEFN) and all of the other DICT files in the account and cycles through each, writing a record to the CHECKSUMS file with the checksum of the item in the TEST account.  The Unidata CHECKSUM() function works great for this.

3) Log over to your production account and set a pointer to the CHECKSUMs file.

4) Create a derivative of the program in #2 that does the exact same thing, but writes the checksum of the item into attribute 2 of the file.

5) Use a field definition to compare attribute 1 to attribute 2 in the file.  You can then select this to see what is different.  Further investigation will be required to determine the extent of difference on individual items.

(I know, it seems like a lot of work, but it could be a good auditing tool.)
Logged

-Kevin
Accidents "happen"; success, however, is planned and executed.
slestak
Uber-Pro
****
Posts: 69



« Reply #2 on: October 26, 2009, 05:11:56 AM »

This does seem like it would work for massive compares.  It would only up-to-date as of when the CHECKSUM file was written to.  As soon as work continues, it is stale.
Logged
precisonline
President/Chief Technologist
Administrator
Rock Star
*****
Posts: 1532



WWW
« Reply #3 on: October 26, 2009, 06:00:06 AM »

True, it won't keep itself updated, which is something of a challenge with the way that SB+ fragments the application into so many pieces.  Dictionaries, definitions, processes, resources... it's all just a bit much at times.  I'd say we could put some triggers on the files to keep things updated, however there's no way to add a trigger to a dictionary file, and of course dictionaries play a huge role in this plan.

But for periodic reconciliation, yeah, it could work.
Logged

-Kevin
Accidents "happen"; success, however, is planned and executed.
Pages: [1]   Go Up
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!