Thursday, March 15, 2012

Documentation: Dual Purpose Documents - Functional & Design


I'm a strong believer in the value of proper documentation. I believe that each time a project is completed, I put more value into documentation.

That's not to say that each project actually uses documentation properly, efficiently, or thoroughly.

I won't delve into the entire issue here, but I wanted to post a quick Excel spreadsheet that had a simple little switch that could hide implementation design details from view.

The issue is that sometimes it's easier to wrap a config file with a little context to have a good document for business review than it is to create a separate document. Data can be duplicated if it's relative to the business summary and also the overall configuration.

For this reason, I've put a little macro function on the xls that will let someone use a drop down list to pick either "Design" or "Functional" to reveal and hide respectively specific rows in each sheet.

It's nothing special, but something I've found helpful.

Here's the file


On the Introduction tab, you'll see the following in A1 & B1:



That tab will show/hide the rows 7-10,13 on all sheets except "Introduction" & "Change Log".

Set to "Design":


Set to "Functional"




Friday, March 9, 2012

UCM 11g: Custom idocscript function to calculate dispersion path

There was a recent thread on the yahoo user group regarding the dispersion path that's automatically applied since PS3.

The default dispersion rule is:

$dRevClassID[-9:-6:0:b]/$dRevClassID[-6:-3:0:b]

that substrings the dRevClassID, base 64 encodes it, and forces to lower case. For example, the mdaw and mdew that people often see are '000' and '010' respectively. if the dRevClassID is shorter than the specified length, it's padded with '0's.

This kills the long standing method of manually deriving the webviewable path.

Here is a sample component that adds a custom idoc function that basically does some padding, substring'ing, and b64 encoding (if the final argument is "1" or "true"). The source is included.

strDispersion(String stringToBeProcessed, Starting index, End index, isBase64Encoded)


to use, build the path as usual with the group, account(s), etc.. but use this for the dispersion path, if you're using the ootb path:

<$strDispersion(dRevClassID,0,3,"1")$>/<$strDispersion(dRevClassID,3,6,"1")$>/~edisp/
It's not perfect (e.g., unchecked casting of a long to int), but it shows the steps to get the dispersion values.

Let me know if anyone picks it up and tries it out!

-ryan

Sunday, March 4, 2012

WebCenter Sites: New community fourm!

Hey all,

There's a new resource for the emerging WebCenter Sites community. This google group has recently been created to help the community move forward with their understanding of the product.

There's not too much out there on FatWire/Sites, so this should be a good first stop to get assistance.

Same rules as the yahoo UCM group apply, you'll need to do your due dilligance if you're asking for troubleshooting assistance. But, feel free to post anything that might be confusing or blocking your progress!

Topics include:

  • any concept issue that cannot be resolved by reading the docs
  • choosing basic assets or flex assets
  • migration concepts
  • asset planning
  • installation
  • customizations
  • and so on!

https://groups.google.com/forum/?hl=en&fromgroups#!forum/webcentersites