Hi Carey, Yes, I was aware the "guarantee" is not really guaranteed and have seen the odds prediction and already reviewed some of the information you provided below.
I also agree it's not critical that it matches but I also wanted to investigate the opportunity to maintain consistency. I'd already planned to maintain the 38-character size in the new system and initially planned to continue the use of our two-character prefix (we use a different one for each type we create). The original question was aimed at finding out if information on how the Application_Generate_GUID function generates them is freely available. Based on the lack of responses in this regard, it appears not. One big consideration is ease of creation and use. It's preferable to create them in the "foreign" system going forward so I was basically looking to get as close as possible to the existing GUID being generated by Remedy. Because we use these with direct access URLs, we also have to validate whatever is generated will not cause problems when being passed. Prior to the response yesterday, I was not aware of the UUID function in MySQL so I need to do some research on that. Odds are we can create something using that function that will work fine and can be passed to Remedy and stored in the 38-character field. Appreciate your well thought-out and informative reply. Regards, Craig Carter Information Technology Manager, RSP -----Original Message----- From: Action Request System discussion list(ARSList) [mailto:[email protected]] On Behalf Of Carey Matthew Black Sent: Thursday, December 31, 2009 10:03 AM To: [email protected] Subject: Re: Q: GUID Generation Craig, I hope this helps add some background (or maybe just some extra academic thinking) on the topic. I hate to, again, point out that acronyms suck. ( I really hate to repeat myself. ) But "GUID" may not mean what you think it means. Ref: http://en.wikipedia.org/wiki/Globally_Unique_Identifier Ref: http://en.wikipedia.org/wiki/Universally_Unique_Identifier I have often heard GUID vs GGUID used too. For me: GUID = Guaranteed Unique ID (or IDentifier) GGUID = Guaranteed Globally Unique ID (or IDentifier) (You might call this a UUID.) In spite of the "Guarantee" that these names seem to provide their really is no guarantee when you have multiple systems generating values without some kind of unique/specific context being accounted for in addition to the values being used. There are some good statistics/probibility math that you can find somewhere if you really want to know the odds. But the details all matter to some extent if you relay on just the GUID/UUID algorithms. In other words, a given system can assert that it's ID's are unique to that system (and actually know that it is true at a processing cost). However when you start mixing data from multiple systems you run a risk ( a very small one, but it is still there) that you could get the same "GUID" (or GGUID, or UUID) from multiple systems for different "things". With that said I would quote the manual about what an AR System GUID's should be relied on to be: REF: Workflow-Objects-710.pdf pg. 206 " Application-Generate-GUID [ "<GUID_prefix>" ] Generates a globally unique identifier (GUID). The prefix can be a maximum of two characters, which can contain non-alpha characters (although alpha characters are recommended). If you do not include the GUID prefix, it defaults to ID. " And I note that the definition of an AR System GUID is: REF: Form-App-Objects-710.pdf pg. 314 " Data type: Character Maximum length: 38 " (Oddly similar to the "Universally_Unique_Identifier" article with two extra leading characters... hum...) While I can not say that "this was the plan", it seems reasonable that the point of the two leading characters was to provide some kind of "context" to the GUID value. ( A limited one, but a context all the same.) So if you do decide to never use a prefix of "XX" in your AR System applications then you should be able to carve out a (sub) name space of that total range of AR System GUID values and know that you will never have a conflict. Then you can generate a GUID in the other application and stuff an "XX" on the front of it. This approach seems like a better design than trying to "make then look like each other" to me. I think the only thing that you might want to try to keep the same is the overall data type between the two systems. (Char, Length "38": Note your other systems likely generate GUID values of Char 36. They lack an embedded context value, IMHO. :) ) Hope that helps. -- Carey Matthew Black BMC Remedy AR System Skilled Professional (RSP) ARS = Action Request System(Remedy) Love, then teach Solution = People + Process + Tools Fast, Accurate, Cheap.... Pick two. On Wed, Dec 30, 2009 at 5:52 PM, Craig Carter <[email protected]> wrote: > We were primarily trying to keep consistency between the million or so > records we already have with the old format that will still be there. We'll > investigate the UUID function on MySQL and see if that will work. Having > never used MySQL, I wasn't aware that existed. > > Craig Carter > Information Technology Manager, RSP > > -----Original Message----- > From: Action Request System discussion list(ARSList) > [mailto:[email protected]] On Behalf Of Grooms, Frederick W > Sent: Wednesday, December 30, 2009 2:24 PM > To: [email protected] > Subject: Re: Q: GUID Generation > > I'm not exactly clear why you need to use Remedy's GUID. > On MS SQL server you could use the NewID() function to generate a unique ID > On MySQL you can use UUID() function > Either one of those will give you a "Unique" ID to work with. > > Fred > > > -----Original Message----- > From: Action Request System discussion list(ARSList) > [mailto:[email protected]] On Behalf Of Craig Carter > Sent: Wednesday, December 30, 2009 2:57 PM > To: [email protected] > Subject: Re: Q: GUID Generation > > We're actually on SQL Server and they are on MySQL and we can't use a simple > sequencer anyway. After reviewing GUID and UUID, there are several variances > on this and I'd like to basically duplicate what the BMC/Remedy function does > rather than have them call a Remedy web service and pass one back. We're > basically migrating certain processes to another system but keeping them > integrated so it would be easier if their system could generate a like value > going forward. > > Craig Carter > Information Technology Manager, RSP > > -----Original Message----- > Date: Wed, 30 Dec 2009 21:28:07 +0100 > Subject: Q: GUID Generation > From: Craig Carter <[email protected]> > To: [email protected] > > ** > > Anyone know if the actual code behind "Application_Generate_GUID" is > available anywhere? We need to try and duplicate this functionality in a > different system for integration purposes and wondered if this information is > available anywhere? > Regards, > Craig Carter > Information Technology Manager, RSP _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org Platinum Sponsor:[email protected] ARSlist: "Where the Answers Are" _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org Platinum Sponsor:[email protected] ARSlist: "Where the Answers Are"

