- Do not use 'sysadmin' to create work: The power full 'sysadmin' that is out of the box user for Oracle UCM. Developers tend to use this to write code, this is not a good idea simply because there are some services that can run only by 'sysadmin'. After you deploy your code and create users they may not be able to run some of the serivces and dev team will running in circles to figure out the reason.
- Security Groups For Web Assets: Create a security group exclusively for artifacts required to run your website. These can be JS, CSS, Images, Fragments, Templates, Layouts. Configure this security group to have only Read access for the Content editors and consumers. Read and Write access for developers. Read Write and Delete reserved only for managers or Technical leads.
- Doctype for WebAssest: Create a Doc type specific for WebAssests and check in your code and other stuff under this. Some of the content types specific for SS fragments SS layouts will be created while installing Site Studio we can use these.
- Do not put all fragments in only one Fragment Library: These can cause problem in large projects with more developers.
- One Fragment for One Fragment Library:While creating fragments its a good idea to create a new Fragment Library for each fragment. Advantage is in mutiple developer projects where developers can work on there fagment with out the problem of some one else working on it and thus locking the fragment.
- Give User Friendly Content ID for Fragment and Layouts: This again is to make life simpler for content creators and developers.Places where we have configured to automatticaly assaign content ID its essiential that developers make sure to give proper names. Site manager and Site Studio display the content ID when you open them for edits. Content creators will have a horendous time while selecting layouts for there sections. Instead of looking for landing layout they have to have a name value pair of layout name and content id. (Site manager utility lists the layouts by there content id) . The other advantage is while moving code from dev to uat to prod it is easier to archive with meaning full content id's.
- Do not use Site Studio Fragments AS IS: This I learned from experience. One should not use them as is. It is just for demo and to show the capabilites. Also they are slow. So create your own fragments and use them.
- CSS and JS do not make them Fragment Assests: This is some thing which can swing either way. Depends on the project you are doing. In case there are fragments reffreing to same JS check them in. Buts I feel its more prudent in cases we have dyanamic list fragments depending on same CSS and JS but uses different queries and other places like that.
- Assign Fragments under proper sections: In site studio fragments are listed under 4 categories. Navigation, Static, Dynamic and Other. If we do some house keeping here we can find things what we are looking for faster.
- Always have a blank head section: Only way you can add a head section code for the fragment once created is to delete it and recreate. Hence as a precausion keep that section always. You never know when requiremnets change.
- We can configue Linking in Contribution: File -->Site --> Advanced --> set default link format. ssLink usually preffred
- Cache Include: bin idoc script guide to speed up site
- Layout manually set values: No code on layout pages, no hard code values, put conditioned idoc to show 2,3 columns.
- URL Page Name: To get friendly names.
- Design view code name same as Fragment Name: This is what you see in the tool box and also when you put them on the layout page.
- Fragment type to refrence: I will get back to you on this.
Friday, December 19, 2008
Site Studio Best Practices
Wednesday, October 29, 2008
Dynamic Converter
For starters you can configure DC to your content regions and drive the contents of the webpage through Word Documents. We can go a step further and run your complete website through word documents without compramising on branding. We can map the MS word styles to specific css look and feel. DC supports hosts of other document formats.
Below are the steps to configure DC to your website. Here are assumptions I make.
- You already have Dynamic Converter installed.
- You have created a primary layout page with a content region.
- You have created a Dynamic Converter template.(Creating templates is a topic for another blog)
Once you have the above things in place here is what you need to do to see word documents as webpages.
Create Template Selection Rule.
- Login to Content Server
- Go to Administration --> Dynamic Converter Admin
- Give suitable name for the new rule.
- Create a critiria, this will be the case when this rule will be selected. Ex: Apply rules on content with Type News.
- Select a template, this will be applied to the document to retain the branding of your website.
- File extention should always be "hcst" DC inserts idoc scripts for the word documents while convertion. These would be executed before rendering as a webpage.
- Forced Convertion and Exclude from User Request is self explanatory. Althoug in my experience its better to uncheck Forced Convertion for performance resons.
Assign Selection Rule to Content Region
Now that you have a Template Selection Rule you have to assign this rule to the content regions in your layouts. Here is how you do this.
- Goto your layout page
- Double click on Content Region.
- Click on Settings.
- Slelect the radio button Use Single Rule Dynamic Conversion
- Choose the Template rule you have created.
- Click OK
To see the magic of DC veiw your layout page is browser and get into contribution mode and select a word document.
UCM server Configuration Variables
- Out of the Box
- Configuration or Settings Change
- Customisation
Thursday, October 23, 2008
Author Field in My Workflow Assigments
Here I have put the steps to add the author field for this page. I have followed the techniques given by Brain 'Bex' in his book. So in case you want to know more detail approach on customising the core services check out his book.
Step1: Open the files workflow.htm and std_services.htm. We can find these under installdirectory/shared/config/resources. These will list the standard services provided and services that are used to implement workflows.
Step2: (Assuming that we have at least one active workflow) Click on MyContentServer-->MyWorkflowAssignments. We will see Workflow in Queue page, here we see ContentID, Title,Enter Date, Last Action Date, and Actions columns for each work item in the queue.
Step3:Do a mouse hover on All Active Workflows and you will see a similar URL -->http//ContentServer/instancename/idcplg?IdcService=GET_ACTIVE_WORKFLOWS. The resultset for GET_ACTIVE_WORKFLOWS service is all the active workflows in the content server. Search for this service in services_refrence guide you will see the that the response template is WORKFLOW_LIST. Our first instinct will lead us to experiment with this. But if we see the other templates using these and do a intelligent guess we will stumble on WF_INQUEUE_LIST (workflow_queue.htm). Also you will see the refrence to this page in the URL of My workflow assignments page.
Step4: You will find workflow_queue.htm page in installDirectory/server/shared/config/templates. Open this page in a editor and add sample html code. Refresh content server page. You will see Testing at the end of the page. Incase you do not see any changes then, clear browser cache and refresh. Restart content server. Restart machine. If still you do not see the changes then you need to see other places where workflow_queue.htm is available. If you have a core update installed than go edit the page you will find inside the core update.
Step5:Now double click on workflow_queue.htm you will see the dynamic html resource used to build this page. You will see workflow_in_queue_table is an include. Now go to std_page_workflow.htm found under installDirectory/server/shared/config/resources and search for workflow_in_queue_table. Here we see that this inturn executes setup_workflow_in_queue_table_header.
Step6: Find for setup_workflow_in_queue_table_header and add below lines. dDocName column properties. <$exec rsAppendNewRow("ColumnProperties")$> <$exec setValue("ColumnProperties", "id", "dDocAuthor")$> <$exec setValue("ColumnProperties", "width", "auto")$> <$exec setValue("ColumnProperties", "headerLabel", "wwdDocAuthor")$> <$fieldName = "dDocAuthor"$> <$exec setValue("ColumnProperties", "headerURL", strTrimWs(inc("workflow_in_queue_header_resort_url")))$> <$exec setValue("ColumnProperties", "rowAlign", "left")$>This will add Author column in your content server page.Do a refresh to see the changes. Again make sure you are changing the file at the right place.
Step7: Above step will add the Author coulumn, to get the document author name for each document in the workflow do the following change.Add below line inside setup_workflow_in_queue_table_row dhtml<$exec setValue("RowData", "dDocAuthor", "<$if dDocAuthor$><$dDocAuthor$><$else$><$lc(\"wwNoRevisionCheckedIn\")$><$endif$>")$>.
On refresh you will the Author field of each document in your work queue.
Thursday, October 16, 2008
WebDAV and OracleUCM
- log in
- checkout
- edit
- check in.
We can build basic content management rules like who can see what? can be applied. To use WebDAV feature with Oracle UCM we need to install two components Folders and WebDAV(I donot know why this is optional, I believe this should be part of core feature). Installing and configuring is fairly simple. One thing to take care is to give a strong password for the cokie. Below are the steps which shows how to add it to your network folder.
- Go to Start --> Click on My Network Places
- Click Add a network place. (This will launch Add Network Place Wizard)
- Click Next
- Click Next
- Click Next
- In the internet or Network Address text box enter http:/yourServerName/yourServerInstanceName
/ idcplg/webdav - Click Next
- Give a suitable name to this network location.
- Click Next
- This will prompt you for the username and Password
- Now you will see the folders created in the Content Server
Make sure that content server is up and running while configuring WebDAV.
You should have at least read access on the server else you will not see any folders.
You should have installed Folders and WebDav components in your content server.