Thursday, September 21, 2006

Changing folder names and identifiers - the correct way

After you have made an important change to your EUL you always get hold of a sample of your users' workbooks and test them, right? Of course you do. I'm not even going to think about the consequences of not doing so. Well maybe a little but then that's really your problem not mine. Ok, well it's my problem too because it's at this stage that I get the all-important "help me" call.

You're probably aware that the very important objects to Discoverer are the folder names and identifiers. Oracle calls these primary objects for a reason. You're also probably aware that Discoverer embeds both the folder identifier and the folder name within the workbook. When that workbook is opened, Discoverer looks for a folder by the embedded identifier. If the identifier is not found then it looks for a folder by the embedded folder name. If the folder is located by either mechanism, phew, the workbook opens and runs. However, if neither are found then you are in deep trouble because the workbook will not open.

So, armed with that knowledge, you can now proceed with editing your EUL. If you have ever attended one of our training courses (link) or read our book (link), you will know that we always, always recommend giving folders meaningful identifiers and business names. Leaving folder identifiers as NEWFOLDER1 is asking for trouble when migrating environments, so please don't do it. Changing a folder name or identifier is a simple process but one that can get you, as the administrator into a lot of trouble.

To change a folder name or identifier, use this workflow:
  1. Open Discoverer Administrator and connect as an administrator
  2. Open the business area containing the folder you want to work with
  3. Expand the business area and locate the folder
  4. Right-click on the folder, and from the pop-up select Properties
  5. The name of the folder is the first property, while the identifier is the last
  6. Change one or the other - not both
  7. When prompted that doing this could upset existing workbooks, click OK
  8. Get your users to test
But what about if you have already got badly named identifiers and names, what should you do? You have to change them, that's what you do, and here is where a testing strategy comes into play. Whatever you do, you must NOT change both the identifer and name at the same time because the workbooks will never open. You need to decide what you will change first, perhaps the name, and make all those changes. You now need to ask or tell your users that they MUST open and RESAVE their workbooks. Remember, because you only changed the name Discoverer will locate the folder using the identifier. The resave process re-embeds the name. After you are sure that all workbooks have been opened and resaved, and only now, can you change the identifiers. Once again you have to repeat the process and tell your users that they MUST open and once again RESAVE their workbooks. At the end of this step, all of your workbooks should be in sync with all of your folders.

But, there is a gotcha, and that gotcha is the purpose of this posting

Just opening a workbook to prove that it still works is not enough because if the user closes it without resaving and you now proceed to change the identifier, that workbook will no longer open. I have seen this happen when the administrator was unaware that the workbook has to be resaved.

1 comment:

Ken Frantz ( said...

We are preparing for a migration from Discoverer 9i to 10g and have decided to take the opportunity to do some clean-up work. I am aware of the problems inherent in changing folder names and identifiers. There is another problem that you do not mention in your post, however. Joins. It seems that changing either the name or the identifier of a join really messes up a workbook. Can you elaborate on how/whether joins can be modified? Also, will changing either the name or identifier of an item class affect the opening of workbooks that use the LOV's? If you have covered any of this elsewhere, please pardon my questions. I have only just "Discoverer"ed this blog. :>)