Thursday, October 11, 2012
Interact Intranet: Noise Words
To improve processing time for search queries it is common for applications and databases to ignore certain words which have low value. SQL Server has it's own list of noise words which you can edit and change.
Interact also has a list however I've been told they are hard-coded into the system and not customizable.
Here is the list of Interact's noise words:
1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z not about after all also an and another any are as at be because been before being between both but by came can come could did do each for from get got has had he have her here him himself his how if in into is it like make many me might more most much must my never now of on only or other our out over said same see should since some still such take than that the their them then there these they this those through to too under up very was way we well were what where which while who with would you your & ? use
Curiously if you look at the Interact database you'll notice there is a table called NoiseWords which has a single, unpopulated, column called WRD.
Reference (login required): http://extranet.interact-intranet.com/Interact/Pages/Content/Document.aspx?id=4609
Friday, September 21, 2012
Configuring MS RoboCopy to schedule ongoing synchronization of files between servers
Robocopy is a utility to copy directories from one server to another. Commands to use the tool are fairly straightforward and can be added to a batch file to run based on a schedule.
We recently encountered a situation where we needed to sync various files from one server to another on an on-going basis. To do that we create a folder on the root of our origination server and called it Robocopy.
Within that folder we created a copy.bat file with a very simple argument following the command structure of:
Our command specifically says:
The /MIR command mirrors a directory tree and the /LOG command tells it to writes the status output to the log file (appends the output to the existing log file).
We recently encountered a situation where we needed to sync various files from one server to another on an on-going basis. To do that we create a folder on the root of our origination server and called it Robocopy.
Within that folder we created a copy.bat file with a very simple argument following the command structure of:
robocopy <Source> <Destination>
Our command specifically says:
robocopy c:\myFolder \\extranet\c$\myFolder /MIR /LOG+:robo.logThis essentially is saying take everything from the C:\myFolder folder and copy it to the \\extranet server's C:\myFolderfolder.
The /MIR command mirrors a directory tree and the /LOG command tells it to writes the status output to the log file (appends the output to the existing log file).
Schedule the File to Run
In Windows Server 2008 the process of scheduling a batch or job to run is extremely simple. Just open your Task Scheduler and create a task. The action in this case is to start a program and then point the path to the .bat file that was created. That is it!Thursday, September 20, 2012
Interact Intranet: Expanding your content - literally
Content pages in Interact Intranet are made up of 3 zones.
Occasionally you may find yourself not wanting to use any options and wishing you could extend your content into zone 3. Luckily that is possible and is extremely easy to do on a content by content basis.
The width of the 2nd zone is fixed using the CSS width property of .DocumentContentsHTML.
Within your web page document you can add some inline CSS styling to override this property and move from a 3 zone layout to a 2 zone layout as shown in the pictures below.
The code to override this element would look like this:
Caveat: This was done in 5.1.4 and it is possible that future upgrades might overwrite a modification like this.
- Side navigation
- Content
- Options (Author, rating, etc.)
Occasionally you may find yourself not wanting to use any options and wishing you could extend your content into zone 3. Luckily that is possible and is extremely easy to do on a content by content basis.
The width of the 2nd zone is fixed using the CSS width property of .DocumentContentsHTML.
Within your web page document you can add some inline CSS styling to override this property and move from a 3 zone layout to a 2 zone layout as shown in the pictures below.
The code to override this element would look like this:
<STYLE type=text/css>
.DocumentContentsHTML{width:750px;}
</STYLE>
Caveat: This was done in 5.1.4 and it is possible that future upgrades might overwrite a modification like this.
Tuesday, September 18, 2012
Interact Intranet: Modifying web page templates
When you create a document in Interact Intranet you have the option of building your own web page. If you choose to build your own web page you are presented with a series of templates, formatted HTML, to make your content more attractive.
The default template displays a large image on the left side of the page. There is a blank template (no formatting) however a user would need to select it from the dropdown. As we are undergoing a content migration of thousands of documents we are encouraging our users to transfer content from files to web content. Despite training we are finding that many of our content managers are neglecting to change the template and are confused by the default templates appearance.
To rectify this problem I look into the Interact database to see how it is handling templates. Sure enough, there is a CONTENT_TEMPLATE table which includes everything you would need to modify your templates (title, summary, source code, affiliated css file, grouping, active and the ability to modify the order).
Since my goal is to simply adjust the default template and order of the other templates there are only a few fields that concern me:
Within the template dropdown above you can see the impact of the TemplateGroup field where some fall into Standard and other into Smart. By changing a few 1's to 2's in that field, and modifying the OrderBy field I've been able to modify the Template dropdown to have a new default and appear like this:
The Active field is boolean and my testing showed that setting templates to False (0) hides templates as you'd expect. I didn't bother attempting to change the source code of the templates which is stored in the source field although it looks straightforward.
Caveat: This was done in 5.1.4 and it is possible that future upgrades might overwrite a modification like this.
The default template displays a large image on the left side of the page. There is a blank template (no formatting) however a user would need to select it from the dropdown. As we are undergoing a content migration of thousands of documents we are encouraging our users to transfer content from files to web content. Despite training we are finding that many of our content managers are neglecting to change the template and are confused by the default templates appearance.
To rectify this problem I look into the Interact database to see how it is handling templates. Sure enough, there is a CONTENT_TEMPLATE table which includes everything you would need to modify your templates (title, summary, source code, affiliated css file, grouping, active and the ability to modify the order).
Since my goal is to simply adjust the default template and order of the other templates there are only a few fields that concern me:
Within the template dropdown above you can see the impact of the TemplateGroup field where some fall into Standard and other into Smart. By changing a few 1's to 2's in that field, and modifying the OrderBy field I've been able to modify the Template dropdown to have a new default and appear like this:
The Active field is boolean and my testing showed that setting templates to False (0) hides templates as you'd expect. I didn't bother attempting to change the source code of the templates which is stored in the source field although it looks straightforward.
Caveat: This was done in 5.1.4 and it is possible that future upgrades might overwrite a modification like this.
Monday, September 17, 2012
Interact Intranet: Document Types and Content Queries
We are going through a migration effort from our old intranet (Plumtree) to Interact Intranet. In doing so we'd like to track a few things that aren't available from the out of the box statistics tool. Fortunately the database shows that quite a lot of data is being tracked so in this post I'll write about the queries that I run to help us track our content.
Document Types
There are 7 documents types in the system:- 10 - web based document
- 20 - document: link to something?
- 30 - document: link to something?
- 40 - document: upload a document (file)
- 50 - document: link to something on the network
- 100 - discussion forum threads, and for each document that has a comment section it also gets an entry in this table
- 110 - this is the catch all document type which makes it awkward to identify specific content types. Type 110 includes: discussion forums posts, document comments, and activity wall posts (among others I'm sure!)
Important Queries (for me to remember)
who has submitted the most content
- in the system
SELECT COUNT(CONTENT.AddedBy) as Count, PERSON.Firstname, PERSON.Surname
FROM CONTENT
INNER JOIN PERSON
ON CONTENT.AddedBy=PERSON.PersonID
WHERE CONTENT.TYPEID in ('40','10')
GROUP BY CONTENT.AddedBy, PERSON.Surname, PERSON.Firstname
ORDER BY COUNT(CONTENT.AddedBy) DESC
- in each area
SELECT SECTION.Title as Area, COUNT(CONTENT.AddedBy) as Count, PERSON.Firstname, PERSON.Surname
FROM CONTENT
INNER JOIN PERSON
ON CONTENT.AddedBy=PERSON.PersonID
INNER JOIN SECTION
ON SECTION.SectionID=CONTENT.SectionID
WHERE CONTENT.TYPEID in ('40','10')
GROUP BY CONTENT.AddedBy, PERSON.Surname, PERSON.Firstname, SECTION.title, CONTENT.SectionID
ORDER BY COUNT(CONTENT.AddedBy) DESC
how many documents are file based and how many are web pages
- in the system
SELECT CONTENT.TYPEID, COUNT(*) as Count
FROM CONTENT
Where CONTENT.TypeID in ('40', '10')
Group BY CONTENT.TypeID
If you are curious about the other types of documents you could run a query like this to see the count for each different type:
SELECT TYPEID, COUNT(*) as Count
FROM CONTENT
GROUP BY TypeID
NOTE: If you look at Interact Site Statistics "Size of Intranet" that seems to reflect the majority of what is shown here. I have a 10 item discrepancy between the sum at this point, so perhaps 110, 50 and 30 aren't included in that number.
how many documents have been added
- to the system
SELECT COUNT(*) as Count
FROM CONTENT
Where CONTENT.TypeID in ('40', '10') - to each area/section
SELECT SECTION.Title, COUNT(*)
FROM CONTENT
INNER JOIN SECTION
ON SECTION.SectionID=CONTENT.SectionID
WHERE CONTENT.TypeID in ('40','10')
GROUP BY SECTION.Title
ORDER BY SECTION.Title
Thursday, September 13, 2012
Interact Intranet: Mapping Active Directory fields
Every Interact customer that uses an Active Directory repository will at one time or another need to create and map fields. The process can be tricky, so the purpose of this blog is to provide instructions on how to accomplish this task and some tips to help along the way. (note: this is done on 5.1.3 and the process might be different on other versions)
This diagram illustrates the relationship between the mapping steps detailed further below.
WARNING
Be extremely careful with these fields. Once created they cannot be edited nor deleted.
This diagram illustrates the relationship between the mapping steps detailed further below.
Fields
Three different fields need to be created for this process.- Profile field
These fields are tied to user profiles, although you have the option on whether or not to display the data. - Active directory field
This is behind the scenes field that users will never see. Title it in a manner that will be intuitive to your Administrators. - Mapping field
This is behind the scenes field that users will never see. Title it in a manner that will be intuitive to your Administrators. Not only does the name of this field appear as the mapping field, but also within the mapping table (in the step Mapping Your Fields Together below)
Naming Conventions
I would recommend developing a naming convention to prevent confusion between these fields. Because they organize alphabetically a prefix would help keep fields of the same type together.- Profile field:
Employee Type - AD field:
AD Employee Type - Mapping field:
Map Employee Type
Creating Fields
Profile field
- Navigate to: Site Admin-> Manage People-> Manage Additional Fields
- Click the New Field button and fill in the following information:
- Title
- Additional Field Type
- Once created this field is no longer editable
- Number of Rows
- Sets the size of the text-box field
- Icon
- Apply To (Staff/Contacts)
- Display on Profile
- Allow User Edit
- Regardless of how you set this, an admin can always override this field, even if it is mapped against AD, however each time AD syncs your changes will be overwritten
- Available To
- Restrict who can see the information (All, User, Manager, User & Manager)
- Once created the new field will appear in the Additional Fields section of the edit profile area
- Fields will not appear on a public profile unless they contain data
Mapping field
WARNING
Be extremely careful with these fields. Once created they cannot be edited nor deleted.
- Navigate to: Site Admin-> Manage People-> Active Directory Sync
- Select your domain
- From the Options dropdown select Manage Field Mappings
- From the Options dropdown select Manage Fields
- Click the Add Field button and fill in the following information:
- Field Type: Additional Field
- Title
- Additional Field
- This maps against the Profile field
- Description
- Click the Save button
Active Directory field
WARNINGBe extremely careful with these fields. Once created they cannot be edited nor deleted.
- Navigate to: Site Admin-> Manage People-> Active Directory Sync
- Select your domain
- From the Options dropdown select Manage Field Mappings
- From the Options dropdown select Manage Fields
- Click the Add Field button and fill in the following information:
- Field Type: ACTIVE DIRECTORY
- Title
- Field
- Description
- Field Size
- Click the Save button
Mapping Your Fields Together
The 4th and final step in this process is linking your Mapping field to your AD field. To do this:- Navigate to: Site Admin-> Manage People-> Active Directory Sync
- Select your domain
- From the Options dropdown select Manage Field Mappings
- Click the Add Mapping button and fill in the following information:
- Interact Field
- this ties to the Mapping field above
- Active Directory Field
- this ties to the Active Directory field
- Click the Save button
Test
Now that you've mapped all of these fields you probably don't want to wait for them to sync with AD at 1am or whenever your sync has been scheduled. You can force your AD sync job to run by going to your front end server, opening the scheduled tasks utility and running it once manually.Further Reading (login required)
Interact covers these steps in: How to Create and Map a New Active Directory Field to a New Interact FieldFriday, September 7, 2012
Interact Intranet: Announcements using Keywords
Interact Intranet provides several options for displaying news/announcements within your site. Below are two that we are considering:
Document List
A Document List widget allows you to select content from specific content areas with a lot of flexibility. As an admin you can select whether or not to display a thumbnail, the number of items to show, how to order them (alpha, or chrono), whether to display the date, summary, etc. To utilize this type of widget you'd need to set aside a category (content area) specifically for your news items and point the widget there. Each time someone in your organization needs to post an announcement they would create the item in that folder and it would automatically display.Keywords
Another option for displaying announcements is to use the Keyword Search widget. This widget is different from the Document List above in that rather than looking at a particular category in your system it instead looks at every document in your system and displays only those that match your keyword criteria. If someone in your organization needs to post an announcement they can post it wherever the content fits into the taxonomy, and simply by adding a keyword such as home_announcement it will display within this widget. To take this a step further, you could have multiple Keyword Search widgets on homepages of different areas of your site, for example on the Human Resources home page and make the same announcement appear simultaneously in both by using a second keyword such as HR_announcement.Differences
- Archives
- All announcements created using the Document List are stored in a particular category, therefore it simplifies showing a full index of items - just link to the category. For a Keyword Search you could create a link that points to the particular keyword and view the contents as search results.
- Breadcrumb & Side Navigation
- The side navigation and breadcrumb of an announcement remain consistent if all documents live in the same category and use the Document List. When using the Keyword Search each announcement would take you to the corresponding area where the document lives. To get back to the main announcements they'd need to click on the Home tab again (or the back button) where the Document List option would show a more intuitive Announcement category in the side navigation. Both approaches require a single click to get back to the list of announcements.
- Duplication of content
- Documents can live within multiple categories, however they can only live within a single area. Therefore if you have an important announcement that relates to content in a particular area of your site you'd need to create it there and additionally create it in your designated announcement category if using the Document List approach. This is a moot issue when using the Keyword Search because it can pull content from any category so the content would only need to exist once.
Features | Document List widget | Keyword Search widget |
Show thumbnail | Yes | Yes |
Show mini-thumbnail | Yes | No |
Show author | No | Yes |
Show date | Yes | Yes |
Show summary | Yes | Yes |
Show in 2 columns | No | Yes |
Control # to display | Yes | Yes |
Subscribe to:
Posts (Atom)