SyndicationLatest news and updates from .5/18/2012 5:24:00 AMInfowise Bloghttp://www.infowisesolutions.com/blog/atom.aspxCreating email-driven business process in SharePointVladi Gubler4/19/2012 12:13:49 PMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=61Hello,
Today I will be explaining how to build a real life email-driven support desk application using a SharePoint site and a few of our components.
The system will be able to:
<ol>
<li>Receive support calls sent to an email address</li>
<li>Manage these support calls by tracking status, resolutions steps and associated tasks</li>
<li>Mark support calls as resolved and automatically request customer approval via email</li>
<li>Closing the support call by replying to an email</li>
</ol>
There are several advantages to the system that go beyond the limitation of a plain vanilla SharePoint site:
<ol>
<li>We are email-enabling a custom list,so we are free to use any columns.</li>
<li>The support calls are generated without having to log into the system, so they can be easily received from outside of the organization.</li>
<li>The support call can be broken down into multiple tasks, each one of them can be tracked individually.</li>
<li>Support calls cannot be closed without customer's consent.</li>
<li>Information can only be modified when allowed by item status and user identity.</li>
<li>WSS 3.0 or SharePoint Foundation 4.0 are required, which are free</li>
</ol>
Here is an example of the system in action:
<object width="500" height="396" data="http://www.youtube.com/v/bMU0o5Je6dU?version=3&hl=en_US&rel=0" type="application/x-shockwave-flash"><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/bMU0o5Je6dU?version=3&hl=en_US&rel=0" /><param name="allowfullscreen" value="true" /></object>
<h4>Required Components</h4>
We will need the following Infowise components:
<ol>
<li><a href="../../product.aspx?id=SmartListPro" target="_blank">Smart List Pro</a> - adds tabs, tab permissions and custom validations (amongst other capabilities)</li>
<li><a href="../../product.aspx?id=SmartAlertPro" target="_blank">Smart Alert Pro</a> - replaces the built-in alert mechanism to allow sending custom alert to any recipient, and only subject to specific conditions</li>
<li><a href="../../product.aspx?id=SmartImportPro" target="_blank">Smart Import Pro</a> - allows importing emails and DB items into SharePoint lists and document libraries</li>
<li><a href="../../product.aspx?id=AssociatedTasks" target="_blank">Associated Tasks Field</a> - adds the ability to create and manage relationships between different lists.</li>
<li><a href="../../product.aspx?id=ColorField" target="_blank">Color Field</a> - adds color-coding, icons, KPIs, progress bars and countdowns</li>
</ol>
You can download 30-day trial versions, which are fully functional.
Please install all products first, for the ones requiring feature activation on specific site collections, make sure the site collection where you intend to create the application is selected (it will be by default).
<h4>Creating Site and Lists</h4>
Let's begin by creating a blank site and call it <em>Service Center</em>.<br />Next create two lists:
<ol>
<li><em>Support Calls</em> - custom list that will contain the support calls</li>
<li><em>Tasks</em> - <em>Associated Tasks</em> list. If you don't see this list type,make sure <em>Associated Tasks</em> site collection feature is activated</li>
</ol>
<em>Tasks</em> list will not require adjustments (although it is advisable to remove unnecessary columns from the default view, such as <em>% Completed</em>)
Enable versionning in the <em>Support Calls</em> list and let's now add the columns:
<ol>
<li>Description (multiple lines of text) - will hold the problem description as submitted by the customer</li>
<li>Importance (single line of text) - will hold the Importance settings of the incoming email</li>
<li>Submitted by (single line of text) - will hold the email sender name</li>
<li>Email (single line of text) - will hold the email sender address</li>
<li>Status (Infowise Color Choice) - will hold the current status of the support call. You can set it do differentiate the values by color or by icon. The possible values are:</li>
<ol>
<li>New (red, default) - the call was just received</li>
<li>In process (yellow) - the call is being handled</li>
<li>Resolved (blue) - the support team resolved the issue and asks for the customer approval to close the support call</li>
<li>Closed (green) - the call is closed following customer approval</li>
</ol>
<li>Steps (multiple lines of text in Append mode) - document resolution steps in this column</li>
<li>Tasks (Infowise Associated Items) - manage associated tasks, so you can create and track multiple related tasks for each support call. Just use the default settings when adding the column (make sure Tasks list already exists and is of Associated Tasks type)</li>
<li>Customer Approval (yes/no, default no) - will hold customer's approval to close the support call</li>
<li>Approval Submitter (single line of text) - will hold the approving customer's name</li>
<li>Approval Submitted (date and time) - will hold the date and time of the approval</li>
</ol>
<img style="border-image: initial; border-width: 1px; border-color: black; border-style: solid;" title="Columns" src="../../Blog/PostImages/Vladi%20Gubler/Import%20-%20columns.png" alt="Columns" width="598" height="303" />
<h3>Product Configuration</h3>
Now we can configure additional products.
<h4>Smart List Pro</h4>
First, let's create tabs, tab permissions and validation rules using Smart List Pro.
<ol>
<li>Go into <em>List Settings</em> of <em>Support Calls</em></li>
<li>Click on <em>Tabs and tab permissions</em></li>
<li>Add a new tab named <em>General</em></li>
<li>Assign the following columns to the tab</li>
<ol>
<li>Title</li>
<li>Description</li>
<li>Importance</li>
<li>Submitted by</li>
<li>Email</li>
<li>Attachments</li>
</ol>
<li>Add the following permissions to the tab:</li>
<ol>
<li>Write mode in New form - allow data entry for new support calls (when they do not originate in emails)</li>
<li>Read mode in Edit/View forms - do not allow anyone to change the columns values when submitted</li>
</ol>
<li>Add a new tab named <em>Resolution</em>. It will hold the handling and resolutions steps</li>
<li>Assign the following columns to the tab</li>
<ol>
<li>Status</li>
<li>Steps</li>
<li>Tasks</li>
</ol>
<li>Add the following permissions to the tab</li>
<ol>
<li>Deny mode in New form - we don't want any hanlding when adding a new support call</li>
<li>Read mode in Edit/View forms - read/only mode for closed support calls</li>
<li>Write mode in Edit/View forms when Status is not equal Closed - allow editing while the support call is open. Optionally specify user/groups who are allowed to update the handling steps</li>
</ol>
<li>Add a new tab named <em>Closure</em>. It will hold the customer's approval to close the support call.</li>
<li>Assign the following columns to the tab</li>
<ol>
<li>Customer Approval</li>
<li>Approval Submitter</li>
<li>Approval Submitted</li>
</ol>
<li>Add the following permissions to the tab</li>
<ol>
<li>Deny mode in New form</li>
<li>Read mode in View/Edit forms - because we will be getting approvals via email, we never need to edit these columns manually</li>
</ol></ol>
<img style="border-image: initial; border-width: 1px; border-color: black; border-style: solid;" title="Tabs" src="../../Blog/PostImages/Vladi%20Gubler/Import%20-%20tabs.png" alt="Tabs" width="537" height="656" />
We are done creating the tabs, now the information can only be editing when it is allowed.
Now let's add a validation rule that will make it impossible to close support calls without customer's approval:
<ol>
<li>Go to <em>List Settings</em> for <em>Support Calls</em></li>
<li>Click on <em>Column Validation Settings</em></li>
<li>For column <em>Status</em> add a <em>Column</em> validation rule "not equals" "Closed" with error message "Support call cannot be closed until confirmed by the customer" with the condition "Customer Approval" equals "No". That would mean that when Customer Approval value is No, Status column cannot contain the value Closed. That will prevent users from closing support calls until it is confirmed by the customer.</li>
</ol>
<img style="border-image: initial; border-width: 1px; border-color: black; border-style: solid;" title="Validation" src="../../Blog/PostImages/Vladi%20Gubler/Import%20-%20validation.png" alt="Validation" width="594" height="292" />
<h4> Smart Alert Pro</h4>
We use Smart Alert Pro, our replacement for the built-in alert mechanism, to send out notifications to customers when support calls are marked as <em>Resolved</em>. By replying yes/no to this messages the customers can approve closing the support calls.
<ol>
<li>In the ribbon of<em> Support Calls</em> list (or the <em>Actions</em> menu when using SharePoint 2007) click on <em>Add Alert</em> (do not confuse with the built-in <em>Alert Me</em>)</li>
<li>Open up the <em>Recipients</em> section and remove your name from the <em>To</em> recipients.</li>
<li>Add column <em>Email</em> to the <em>To</em> recipients by selecting it and clicking on<em> Add to To</em></li>
<li>Open up the <em>What to send</em> section</li>
<li>Uncheck <em>Item is added</em> and <em>Item is deleted</em> checkboxes, only leaving<em> Item is modified</em></li>
<li>Add condition "Status" "After change" "Equals" "Resolved". That will send the alert only when the support call's status is changed to <em>Resolved</em></li>
<li>Open up the <em>Mail Template</em> section</li>
<li>Name the name template "Approval Request"</li>
<li>Enter the following into <em>Subject</em>: Approve resolution of '[Title|Title]' - ID:[ID|ID]</li>
<li>Enter the following (or similar) into <em>Body</em>:<br />
<div><span style="color: #0000ff;">Hello,</span></div>
<div><span style="color: #0000ff;"> </span></div>
<div><span style="color: #0000ff;">Our support team marked your service call '[Title|Title]' as Resolved. Please reply with yes if you confirm that the issue has been resolved, otherwise reply with no.</span></div>
<div><span style="color: #0000ff;"> </span></div>
<div><span style="color: #0000ff;">This is not a monitored email account, please only reply with "yes" or "no".</span></div>
<div><span style="color: #0000ff;"> </span></div>
<div><span style="color: #0000ff;">Thank you,</span></div>
<div><span style="color: #0000ff;"> </span></div>
<div><span style="color: #0000ff;">Support Team</span></div>
<div> </div>
<div><span style="color: #0000ff;"><span style="color: #000000;"> </span></span></div>
<div><span style="color: #0000ff;"><span style="color: #000000;"> </span></span></div>
</li>
<li>The template will create an email with the subject containing the title and the ID of the support call and body containing instructions.</li>
<li>Save the template and select it for the alert by using the radio buttons (for now all radio buttons should be set to <em>Default template</em>, choose the new template for <em>Modified</em> event).</li>
<li>Save the alert, you should receive a confirmation email.</li>
</ol>
<img style="border-image: initial; border-width: 1px; border-color: black; border-style: solid;" title="Alert" src="../../Blog/PostImages/Vladi%20Gubler/Import%20-%20alert.png" alt="Alert" width="569" height="527" />
<h4>Smart Import Pro</h4>
Now it's time email enable our list.
<ol>
<li>Go to <em>List Settings</em> for<em> Support Calls</em></li>
<li>Click on <em>Import Settings</em></li>
<li>Start creating new import profile</li>
<li>Name it <em>Email</em> (the actual name does not matter)</li>
<li>Leave the polling interval at 15 minutes (the default minimal value, 0 means every hour)</li>
<li>Select the mail server protocol. POP3, Exchange 2003 and down or Exchange 2007 and up are supported</li>
<li>Enter the address of the mail server (such as <em>mail.example.com</em> or <em>mailserver</em>)</li>
<li>Enter the user name and password for authentication, note that they are stored securely.</li>
<li>If needed change the default port and SSL settings</li>
<li>Choose to delete the emails from server (optional)</li>
<li>Click <em>Connect</em></li>
<li>Now let's add two actions, one for creating new support calls and one for updating approval value in existing ones</li>
<li>Create a new <em>Create list item/document action</em></li>
<li>Call it <em>Create support call</em></li>
<li>In Values to set fill in the following pairs:</li>
<ol>
<li>Title - [Subject]</li>
<li>Description - [Body]</li>
<li>Importance - [Importance]</li>
<li>Submitted by - [Sender Name]</li>
<li>Email - [Sender Address]</li>
</ol>
<li>In conditions add "Subject" "Not contains" "ID:". This will prevent importing emails containing "ID:" in the subject line, which are basically the replies to our approval requests.</li>
<li>Save the action</li>
<li>Create a new <em>Update list item</em> action</li>
<li>Call it <em>Confirm closure</em></li>
<li>In Values to set fill in the following pairs:</li>
<ol>
<li>Customer Approval - $Extract([Body]|^) - that will extract the first word from the email body. For more details on the Extract function, please refer to the user guide</li>
<li>Approval Submitted - [Date Sent]</li>
<li>Approval Submitter - [Sender Name]</li>
</ol>
<li>In Item selection conditions add the following:</li>
<ol>
<li>ID equals $Extract([Subject]|?ID:^) - that will extract the text immediately following "ID:" from the subject line, which will be the ID of the support call item, as included in the alert.</li>
<li>Status equals Resolved - only update the items requiring an update</li>
</ol>
<li>In conditions add "Subject" "Contains" "ID:". This will only run the actions on emails, which are replies to the alert.</li>
<li>Save the action.</li>
<li>Save the profile. </li>
</ol>
<img style="border-image: initial; border-width: 1px; border-color: black; border-style: solid;" title="Email import" src="../../Blog/PostImages/Vladi%20Gubler/Import%20-%20%20import.png" alt="Email import" width="600" height="555" />
<h4>Testing</h4>
Send an email to the service email account and see it converted into a support call (it could take up to 15 minutes). Handle the support call by repeatedly adding and completing tasks and modifying the steps. When done, change the status to <em>Resolved</em>. You will receive an email from the system requiring your approval to close the support call. Reply <em>yes</em> and watch the support call being confirmed for closing (you should wait up to 15 minutes for the import job to run). Now you can close the support call.
When testing the application, you can run the <em>Infowise Smart Import Pro scanner job</em> manually through Central Administration timer jobs management page, instead of waiting 15 minutes for it to run. It is possible on SharePoint 2010 only.
We are done, we've just created a functional help desk system in minutes without any custom development!New major release for Color FieldVladi Gubler3/30/2012 8:41:52 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=60<span style="font-size: small;">Hello,</span>
<span style="font-size: small;">We are proud to announce the new major release for <strong><a href="http://www.infowisesolutions.com/product.aspx?id=ColorField">Color Field</a></strong>, our custom field that allows color-coding your list views and items.</span>
<span style="font-size: small;">Not only does <em>Color Field</em> receive the new <em>Icon </em>mode, where you can assign an icon instead of color (a great feature in its own right, we even let you select from 60 available icons or link your own), we are bundling in a whole new field, the <strong>Indicator Field</strong>!</span>
<span style="font-size: small;">Indicator Field allows you to highlight data in other number, currency or date/time columns in the list, so you can instantly know where you stand.</span>
<span style="font-size: small;">The Indicator Field has 3 modes:</span>
<ol>
<li><span style="font-size: small;"><em>KPI </em>- define 3 ranges (low, medium and high) and assign icons to each range. The field will show the correct icon depending on the linked column value.</span></li>
<li><span style="font-size: small;"><em>Progress Bar</em> - define value column and goal value (which can be a column, a function or a typed-in value). You will see a progress bar depicting the value in relation to goal.</span></li>
<li><span style="font-size: small;">Countdown - link to any date/time column and show remaining (or elapsed) time. You can even define what units to show!</span></li>
</ol>
<span style="font-size: small;">Note: this is a MAJOR release, if you already have a license for Color Field, you can upgrade only if your license includes Annual Support, otherwise you need to reinstate and purchase support.</span>
<span style="font-size: small;">Get your 30-day trial version <a href="http://www.infowisesolutions.com/product.aspx?id=ColorField">now</a>!</span>New site template: Audit Management SystemVladi Gubler3/15/2012 9:42:41 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=59<span>Hi,</span>
<span>We are happy to announce that we've added a new site template for you to download: <a href="http://www.infowisesolutions.com/template.aspx?id=Audit">Audit Management System</a>.</span>
You can now manage your audit schedule and related findings and tasks.
Every audit can have an unlimited number of findings you can track. Each finding is assigned to a user and further broken down into corrective and preventive actions (CAPA). The actions (and again, you may create as many as you need) can be assigned to other users as well and tracked from within the finding in a centralized manner. The system will prevent you from closing down a finding as long as it has open tasks.
<span>Get the 30-day trial version today to get a hands-on experience. </span>New template: RFP Management SystemVladi Gubler3/1/2012 2:17:15 PMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=58<span style="font-size: small;">Hi,</span>
<span style="font-size: small;">We are happy to announce that we've added a new site template for you to download: <a href="http://www.infowisesolutions.com/template.aspx?id=RFP">RFP Management System</a>.</span>
<span style="font-size: small;">It will help you to upload/create Request for Proposal (RFP) documents and manage their lifecycle.</span>
<span style="font-size: small;">First you create/upload a new document, then you can specify its parameters, such as additional documents, bidding period and category. Next assign tasks to people associated with the RFP. Both RFPs and their tasks are viewable using a convenient calendar interface.</span>
<span style="font-size: small;">When the time comes, you can upload the proposals you receive from your vendors and link them to the RFP, the convenient list view allows you to see the RFPs, their additional documents, tasks and proposal, all in a single place.</span>
<span style="font-size: small;">Select the winning proposal and sign your decision electronically, change the RFP status to Completed and you are done!</span>
<span style="font-size: small;">Get the 30-day trial version today to get a hands-on experience. </span>Tree view Filtering of web parts using Smart Filter ProVladi Gubler2/24/2012 8:29:58 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=57<span style="font-size: small;">Hello,</span>
<span style="font-size: small;">We are happy to announce the new feature set we've just added to <a href="../../product.aspx?id=SmartFilterPro">Smart Filter Pro</a> - our state-of-the-art filtering web part. You can now display your filter as an expanding tree, clicking on any node in that tree will filter the connected web parts accordingly.</span>
<span style="font-size: small;">You create the tree by defining one or more lookup filter and setting "Show as tree" for each of them. Each filter makes up a level in the tree, according to the filter order (you can easily control the order as well). For instance, your first filter is a lookup to Category and the second one - to Subcategory. Whenever you click on any node in the second level, the connected web parts are filtered by both Category and Subcategory, click on the first level - you are only filtering by Category.</span>
<span style="font-size: small;"><img style="border-image: initial; border: 1px solid black;" title="Filter by treeview" src="../../products/images/SmartFilterPro/treeview.png" alt="Filter by treeview" width="274" height="232" /></span>
<span style="font-size: x-small;">You can still define and use additional, non-tree filters as well, as you could in the previous versions.</span>
<span style="font-size: x-small;">Another great addition: right-click any node in the tree and you see a menu for creating new item. Click on the menu and a pop-up shows up where you can enter data for your new item. Depending on the node you clicked in the tree, some columns are filled in automatically and are not even show on the form!</span>
<span style="font-size: x-small;"><img style="border-image: initial; border: 1px solid black;" title="New item" src="../../products/images/SmartFilterPro/newitem.png" alt="New item" width="600" height="154" /><br /></span>
<span style="font-size: x-small;">Get a <a href="../../product.aspx?id=SmartFilterPro">trial version</a> today!</span>Import your emails and SQL items into SharePoint listsVladi Gubler2/20/2012 12:52:20 PMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=56<span style="font-size: small;">Hi,</span>
<br /><span style="font-size: small;">We are thrilled to announce the new addition to our product line -<a href="http://www.infowisesolutions.com/product.aspx?id=SmartImportPro"> Smart Import Pro</a>. Smart Import Pro allows you to import data from external sources, such as email and database servers into any list of document library. You can generate new list items, documents or wiki pages from the external data or update existing items. </span>
<span style="font-size: small;">For instance, start a service call from an email message or generate investigations based on unusual data in a SQL database. You can even approve a business process by simply replying to an email, without even having to log into the SharePoint server!</span>
<span style="font-size: small;">Smart Import Pro is powerful and configurable. You can assign unlimited import profiles to any list or library. Each profile can run constantly (each 15 minutes), daily, weekly or monthly; each time it runs, it checks for new data on the server (be it POP mail server, Exchage or any database server). Then the new data is handled by one or more actions. Actions can create new items or update existing ones. You can even set filtering conditions on the actions, meaning that only data items satisfying your criteria are handled.</span>
<span style="font-size: small;">The "Extract" function allows you to extract a portion of any text element (say, email message Subject or Body) and use that value in Create or Update actions. For instance, extract the service request ID from the email subject and update just the relevant service request with new information or new attachments! Or respond "Yes" to an approval request email to set an approval to a business process!</span>
<span style="font-size: small;">Get a fully-functional 30-day trial version <a href="http://www.infowisesolutions.com/product.aspx?id=SmartImportPro">today</a> and see for yourself!</span>Website-based product licensingVladi Gubler1/25/2012 11:56:08 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=55Hi,
Today we starting rolling out our newest licensing module. We now support licensing out products for just a single website.
The idea came from our customers, who wanted to purchase the site templates that we offer for download. The site templates were meant as technology demonstrators to show off our products in real-world situations. But people wanted to get it installed and running in the production environments as well. The templates use our products and install trial versions. Of course, you can purchase the full server license, but what if you just need that particular site running and do not want to commit for the full license yet?
That's when the website licenses come to help. We can now license and register the products in bulk for just a single website. They will work inside that website, but will show up as expired anywhere else. This way you can purchase a discounted license just for the website you need running right now and can postpone the decision regarding server licenses for later.
Registration procedure is also simplified: once purchased the license, simply email us the Registration ID produced by the Trial and Registration web part located on the site's homepage. We will issue a license key, you will enter it into the web part, click Register and that's it!
So give our site templates a try, they are completely self-installing and self-configuring, so the whole process is as easy as it should be!New SharePoint Site Template: Employee TrainingVladi Gubler1/9/2012 10:39:15 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=54Hi,
As almost every week lately, we have a new site template now for both WSS 3.0 and SharePoint Foundation 4.0 (or if you prefer MOSS 2007 and SharePoint 2010). This time it is<a href="http://www.infowisesolutions.com/Template.aspx?ID=EmployeeTraining"> Employee Training</a> site. This is where your employees goes to see what internal training courses are available, which ones still have room left to sign up.
Your trainers will be able to set up course using a convenient calendar based view. Courses can then be updated with materials and you can even set the maximum number of participants.
Your employees can then find a course based on category/subcateogry and description and sign up (if there is still room left). The signup process is as easy as it should be - just click a mouse button! You can then view your past and present courses on the personalized homepage. When you are finished taking the course, just fill in a short review, so that the trainers and course can then be evaluated.
The site template uses 4 Infowise products and is packaged together into a single automatic installer for your convenience that will install the products and then create and configure the site for you. <a href="http://www.infowisesolutions.com/Template.aspx?ID=EmployeeTraining">Give it a try</a>, it is free for 30 days!New template: Help DeskVladi Gubler12/27/2011 7:57:12 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=53<span style="font-size: small;">Hi,</span>
<span style="font-size: small;"> We've prepared a new site template for you to use: <strong>Help Desk</strong> site. Just download and run the installer to automatically install and configure the template and get the following functionality:</span>
<ol>
<li><span style="font-size: small;"><em>Create service requests</em> - anyone can create a new service request, including the end users. Unassigned requests can then be forwarded to specific handlers byt the service representatives.</span></li>
<li><span style="font-size: small;"><em>Monitor the resolution process</em> - create tasks from within the service request and log every resolution step you take.</span></li>
<li><span style="font-size: small;"><em>Complete the request</em> - set request status to Closed to remove the request from the list of active requests.</span></li>
<li><span style="font-size: small;"><em>Create KB articles</em> - the site also contains a KB system based on a wiki library. Articles can be created directly or generated from past service requests with a click of the mouse!</span></li>
<li><span style="font-size: small;">Manage keywords - assign requests and KB articles to keywords. Keyword can be created on the fly. You can search by them and even assign experts to them.</span></li>
</ol>
<span style="font-size: small;">And as with all our site templates, you can modifiy it any way you see fit! It is basically a SharePoint site after all.</span>
<span style="font-size: small;"> The template's installation wizard will install trial versions of our products used in creating the template, you can try them out for 30 days without any obligation. </span>
<span style="font-size: small;"> Get the template now from <a href="../../template.aspx?ID=HelpDesk">here</a>. The template works great on both WSS 3.0 and SharePoint Foundation 4.0.</span>New in Associated Tasks Field: Action and Summary ColumnsVladi Gubler11/1/2011 7:14:47 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=52Hello,
If you want to use your SharePoint lists as the backbone of a custom application, <a href="../../product.aspx?id=AssociatedTasks" target="_blank">Infowise Associated Tasks Field</a> is one of the first things you need. It enables you to create relationships between lists, so you ca add and manage related items directly from within the parent item forms and views. Imagine tasks associated with events, price proposal items appearing straight within the body of the proposal. The applications are endless, and we've been working hard on implementing this functionality in our sample <a href="../../applications.aspx" target="_blank">site templates</a> as well.
Constant improvement is more than a motto to us. Just look at the version history tab of any of our products to see it for yourself, we put out new versions as fast as we can, adding more and more functionality to make the products the best in their class.<strong> Associated Tasks</strong> field is one of our major product and as such receive its fair share of attention as well.
We are proud to announce two new and exciting features that were recently added:
<ul>
<li><span style="text-decoration: underline;">Actions </span>- you can now define action to perform on all related item at once. You can update, delete or (in case of document libraries) publish all of the item associated with the same parent item. You can complete all the tasks at once or send the old items to the archive. You can even specify that certain actions can only be available for administrators.</li>
<li><span style="text-decoration: underline;">Summary Columns</span> - new field type is here to help you perform calculations on related items. You can now count the items, get a summary of values (or even averages or standard deviations). No more manual calculations for quotes and proposals, know straight away how may overdue tasks are associated with the event or what is the average time it takes to complete a service request task.</li>
</ul>
So get your trial version now and see how helpful <em>Associated Tasks Field</em> can be for you!New from Infowise: self-installing site templatesVladi Gubler11/1/2011 6:24:36 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=51<span style="font-size: small;">Hi,</span>
<span style="font-size: x-small;">As you know, our components help you create business processes in minutes using just your browser, without any coding. Using products, such as the ones included in the <a href="../../bundle.aspx?id=UltimateForms" target="_blank">Ultimate Forms</a> bundle, you can created sophisticated web-based applications, such as the ones we've have under the Site Templates section of this website. For a while now we've been showing off videos of sample processes, along with blogs describing step-by-step instructions on how you can build them yourselves.</span>
<span style="font-size: x-small;">Now we've decided to kick it up a notch. We started packaging these applications as <strong>self-installing site templates</strong>. You can now pick any site template you like, download and just run the installation package. Without any manual intervention, the installer will determine what Infowise products you need, install or upgrade them if necessary, install the site template and then create and configure the website for the application. All that is needed from you is to point the installer to the desired location for the new website and maybe fill in your users in the SharePoint groups for the application.</span>
<span style="font-size: x-small;">Trial versions of missing products are installed automatically, so you can use the new site for 30 days without any commitment on your part. Use the site any way you like and change it according to your needs. Ready to buy the components? It's just as easy, you have the links to the product pages right from the website!</span>
<span style="font-size: x-small;">So try it out! The site templates available for download have a <em>Download and install</em> link on the <a href="../../applications.aspx" target="_blank">Site Templates</a> page.</span>Control your links with URL PlusVladi Gubler10/31/2011 8:30:37 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=50Hello,
The Hyperlink or Picture field type is part of SharePoint from the very start. This column is very useful for, well, creating links, the building block of any web application. But the field has not evolved from the humble beginning, in SharePoint 2003. It still only allows you to specify whether you want the URL to be displayed as link or picture, that's about it.
That's why we created <a href="../../product.aspx?id=URLPlusField">URL Plus field</a>, which upgrades what the regular field can do. So now you can:
<ul>
<li>Open links in a new window (if you want)</li>
<li>Specify the link description, so your users don't have to enter any description and the links still have a uniform look (when you skip filling in the description in the built-in field, the URL itself is used as the description, which can be quite ugly)</li>
<li>Show icon instead of textual link, so for instance, you can use the help icon for the links to the help pages.</li>
</ul>
We even support converting the new field back and forth into the built-in field, so you can convert your existing field and not lose your data!
Get your trial version now!Special Offer for the Holiday SeasonVladi Gubler10/31/2011 4:14:05 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=49Hello friends!
<img title="Special Offer" src="../../Blog/PostImages/Vladi%20Gubler/holiday_2011_sm.jpg" alt="Special Offer" width="550" height="136" />
Here, at Infowise, we always try to bring you the best SharePoint products with the greatest value. You are probably already familiar with our <a href="../../bundle.aspx?id=UltimateForms" target="_blank">Ultimate Forms</a> bundle, made up of 8 of our leading products, which allows you to build business processes in minutes using just your browser. Just check our the sample application videos on the bundle page to see what exciting new capabilities you can get to maximize what your SharePoint sever can do for you!
With the holiday season just around the corner, we are happy to announce our new and exciting special offer. When you purchase Ultimate Forms, you receive a 70% discount (that's right, seventy percent!) for one of our three bestselling product:
<ul>
<li><a href="../../product.aspx?id=SmartActionPro" target="_blank">Smart Action Pro</a> - automatically create/update items, create lists/site, update external database and application, whenever a list item is created or modified. You can now create extremely powerful code-free solution using just your browser without any experience with coding or workflow design.</li>
<li><a href="../../product.aspx?id=SmartAlertPro" target="_blank">Smart Alert Pro</a> - bring your alerts to a whole new level, with multiple recipient types, conditions, timer-based notifications and custom message template. A must have for any business process.</li>
<li><a href="../../product.aspx?id=SmartPrintPro" target="_blank">Smart Print Pro</a> - print out your lists and list item using templates of your own design. Create paper forms, receipts or quotes and then print them or convert into PDFs, with a click of the mouse.</li>
</ul>
Now it's easy to make Ultimate Forms even better by pairing it up with these additional components. So get your free 30-day trial versions today and use this opportunity to save by ordering by the end of the year.
The promotion is active Nov 1st 2011 till Dec 31 2011.Infowise Capability Dashboard is released!Vladi Gubler10/31/2011 12:28:18 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=48<span style="font-size: small;">Hi,</span>
<span style="font-size: small;">We are proud to announce that the new version of our registration module - Infowise Capability Dashboard - is released and bundled up with all of our products. The registration module always allowed you to try out our products and register them when you purchase licenses. Now we are taking it several steps forward, by allowing you not only to register your current products, but also to upgrade your SharePoint farm with new capabilities by installing new products directly from your server.</span>
<img style="font-size: small;" title="Infowise Capabilty Dashboard" src="../../Blog/PostImages/Vladi%20Gubler/iw-dashboard.png" alt="Infowise Capabilty Dashboard" width="550" height="342" />
<span style="font-size: small;">You can view the complete list of our products, installed and not. Each product presents its features, screenshots, videos and technical details. You can see which products are installed, what version you have installed and what version is available, so you can install and upgrade directly, without having to visit our site.</span>
<span style="font-size: small;">To register a product, just click on its registration status and enter your license key[s] in the pop-up window, it's that easy! The Dashboard completely replaces the Product Registration page, which has been removed.</span>
<span style="font-size: small;">We hope you like this new approach and we are confident it will help you discover the products you need to get the most out of your SharePoint farm!</span>
<span style="font-size: small;">NOTE: Capability Dashboard works even when there is no Internet connection available, but the capabilities are reduces as no real time information update is possible.</span>Visit us at SPC 2011 in Anaheim CAVladi Gubler10/4/2011 5:19:04 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=47<span style="font-size: small;">Hi,</span>
<span style="font-size: small;">We are currently exhibiting at the Microsoft SharePoint Conference 2011 at the Anaheim Convention Center. Visit us at booth #163 and watch demos of our leading products.</span>
<span style="font-size: small;">See you there!</span>SharePoint custom field XSLT rendering with custom propertiesVladi Gubler9/22/2011 5:37:24 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=46Hi,
For our new product, <a href="http://www.infowisesolutions.com/product.aspx?id=URLPlusField" target="_blank">URL Plus Field</a>, we needed to render a field value different depending on field settings. For instance, you can set to open links in a new window or replace the description text with an icon. In 2007, this is pretty easy, once you define your custom property as an attribute of field schema (do not use PropertySchema, you must set you custom values as attributes, you can do that by directly manipulating the underlying XML in your field class). In 2010, there is no way (as far as I can tell, please enlighten me) to know what the field values are in the XSLT rendering.
First we tried to fall back to old school CAML rendering by setting CAMLRendering property to true. That basically brought the whole list rendering down with an error, it is something specific to URL fields, as it works fine with text or number fields.
So I needed to come up with a way to get the property values and keep the XSLT rendering. After spending an entire day looking for a solution, approaching it from different angle and basically pulling my hair out, I still was nowhere near the solution.
The break came the next day, when I had an idea - if I cannot read the properties, maybe I can incorporate the property values as part of the item value (the URL itself). AND IT WORKED!!!
What I did was override the GetFieldValue method of my field class:
<span style="background-color: #ccffff;"><span style="white-space: pre;"> </span><span style="color: #0000ff;">public override object GetFieldValue(string value) </span><span style="color: #0000ff; white-space: pre;"> </span><br /></span><span style="color: #0000ff; background-color: #ccffff;"> <span style="white-space: pre;"> </span>{<span style="white-space: pre;"> </span><br /> if (IsSharePoint2010) <span style="white-space: pre;"> </span> <span style="white-space: pre;"> </span><br /> <span style="white-space: pre;"> </span>{ <span style="white-space: pre;"> </span><br /> <span style="white-space: pre;"> </span>if (string.IsNullOrEmpty(value)) <span style="white-space: pre;"> </span><br /> <span style="white-space: pre;"> </span>return value;<span style="white-space: pre;"> <br /></span></span><span style="color: #0000ff; background-color: #ccffff;"> <span style="white-space: pre;"> </span>return value + string.Format(",{0},{1},{2},{3}", DisplayFormat, ShowAsIcon, IconUrl, OpenInNewWindow); <br /></span><span style="color: #0000ff; background-color: #ccffff;"> <span style="white-space: pre;"> </span>} <span style="white-space: pre;"> </span><br /></span><span style="color: #0000ff; background-color: #ccffff;"> else <span style="white-space: pre;"> <br /></span></span><span style="color: #0000ff; background-color: #ccffff;"> <span style="white-space: pre;"> </span>return base.GetFieldValue(value); <span style="white-space: pre;"> </span><br /></span><span style="color: #0000ff; background-color: #ccffff;"> <span style="white-space: pre;"> </span>}<span style="white-space: pre;"> </span></span>
Here I'm basically checking if the current SharePoint version is 2010 (using a helper method that compare the build version of the local farm to 12, which is 2007), if not, I attach my additional property values to the URL itself. Now we are getting the property value in XSLT through the back door :)
So now we can use these values in our XSLT template.
Using the following two helper templates I can split my field value into parts and get value of each separate part:
<blockquote>
<span style="color: #000000;">This template split the value into sort of an array (in the XSL world):</span>
<span style="color: #0000ff; background-color: #ccffff;"><xsl:template name="IWURLPLUStokens"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:param name="str" select="."/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:param name="splitString" select="','"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"><xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:when test="contains($str,$splitString)"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <token></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:value-of select="substring-before($str,$splitString)"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </token></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:call-template name="IWURLPLUStokens"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:with-param name="str" select="substring-after($str,$splitString)"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:with-param name="splitString" select="$splitString"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:call-template></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:when></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <token></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:value-of select="$str"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </token></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:template></span>
And this one will return value according to index:
<span style="color: #0000ff; background-color: #ccffff;"> <xsl:template name="IWURLPLUSGetPartAtIndex"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:param name="splits"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:param name="index"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:value-of select="msxsl:node-set($splits)/token[position()=$index]"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:template></span>
</blockquote>
So now we can split our value into the URL itself (index=1) and the property values (the other 4 parts in our example).
Using the regular XSLT template we can now use these values to produce the exact outcome that we need in any XSLT view!
<span style="color: #0000ff; background-color: #ccffff;"> <xsl:template match="FieldRef[@FieldType='UrlPlusField']" mode="URL_body"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:param name="thisNode" select="." /></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:variable name="thisValue" select="$thisNode/@*[name()=current()/@Name]"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:variable name="url"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:when test="contains($thisValue, ',')"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:value-of select="substring-before($thisValue, ',')" /></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:when></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:value-of select="$thisValue" /></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:variable></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:variable name="splits"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:call-template name="IWURLPLUStokens"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:with-param name="str" select="$thisValue"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:call-template></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:variable></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:variable name="displayFormat"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:if test="contains($thisValue, ',')"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:call-template name="IWURLPLUSGetPartAtIndex"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:with-param name="splits" select="$splits"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:with-param name="index" select="2"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:call-template></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:if></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:variable></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:variable name="openInNewWindow"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:if test="contains($thisValue, ',')"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:call-template name="IWURLPLUSGetPartAtIndex"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:with-param name="splits" select="$splits"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:with-param name="index" select="5"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:call-template></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:if> </xsl:variable></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:variable name="showAsIcon"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:if test="contains($thisValue, ',')"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:call-template name="IWURLPLUSGetPartAtIndex"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:with-param name="splits" select="$splits"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:with-param name="index" select="3"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:call-template></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:if></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:variable></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:variable name="iconUrl"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:if test="contains($thisValue, ',')"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:call-template name="IWURLPLUSGetPartAtIndex"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:with-param name="splits" select="$splits"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:with-param name="index" select="4"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:call-template></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:if></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:variable></span><br /><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:variable name="desc" select="$thisNode/@*[name()=concat(current()/@Name, '.desc')]" /></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:when test="$url=''"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:when></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:when test="$displayFormat='Image'"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <img src="{$url}" alt="{$desc}" /></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:when></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <a href="{$url}" ></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:if test="$openInNewWindow='Always'"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:attribute name="target">_new</xsl:attribute></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:if></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:when test="$showAsIcon='True'"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <img border="0"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:attribute name="alt"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:when test="$desc=''"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:value-of select="$url"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:when></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:value-of select="$desc"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:attribute></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:attribute name="src"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:when test="$iconUrl='Link'">/_layouts/images/LINK.GIF</xsl:when></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:when test="$iconUrl='Help'">/_layouts/images/hhelp.gif</xsl:when></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:when test="$iconUrl='Warning'">/_layouts/images/WARN16.GIF</xsl:when></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:attribute></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </img></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:when></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:when test="$desc=''"></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:value-of select="$url"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:when></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> <xsl:value-of select="$desc"/></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </a></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:otherwise></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:choose></span><br /><span style="color: #0000ff; background-color: #ccffff;"> </xsl:template></span>
And that's it. Pretty easy, huh?!Demo application: Construction Initiation ProjectVladi Gubler9/5/2011 3:55:35 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=45Hi,
In this demo application we are showing off how our <a href="../../bundle.aspx?id=ConnectedField" target="_blank">Bi-directional Lookup bundle</a> can help you create real-life application in SharePoint in just minutes. The bundle contains two products:
<ul>
<li><a href="../../product.aspx?id=ConnectedFields2007" target="_blank">Connected Field</a> - extends the built-in lookup field, adding various new capabilities, such as master-detail relationships between two or more fields, value sorting and filtering, in-line new value creation and more</li>
<li><a href="../../product.aspx?id=AssociatedTasks" target="_blank">Associated Tasks Field</a> - allows creating relationships between lists, allowing managing related items or documents in the context of the parent item</li>
</ul>
The demo application is a construction initiation project. In it, we create an entry for a proposed constructions project, add various required documents to it, publish the documents for review and collect reading confirmations from the designated users. Once all the required reading tasks have been completed, the project is completed and we can now proceed on with our construction. As we only cover this initial stage, we will not be handling the actual construction stages here.
Watch the following video to see the system in action:
<object width="560" height="345" data="http://www.youtube.com/v/dZG1isCj1VY?version=3&hl=en_US&rel=0" type="application/x-shockwave-flash">
<param name="allowFullScreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="src" value="http://www.youtube.com/v/dZG1isCj1VY?version=3&hl=en_US&rel=0" />
<param name="allowfullscreen" value="true" />
</object>
So lets get started.
First, we need to create a new blank site for the project. Then, we will create several lists that will manage our data.
<img style="border: 1px solid black;" title="Lists" src="../../Blog/PostImages/Vladi%20Gubler/1-lists.png" alt="Lists" width="398" height="376" />
<ol>
<li><em>Designations </em>- a simple Custom list holding list of designations for the project, such as Residential, Commercial or Agricultural. Just create the list from the Custom list template and enter some demo data, no changes to the list structure are required</li>
<li><em>Building Types</em> - for each designation we list several building types, such as House or Appartment Building for Residential, Bank or Shop for Commercial. Create a custom list and add a lookup column for the <em>Designations </em>list.</li>
<li><em>Signing Tasks</em> - list hoding reading confirmation tasks. We can either use the built-in Tasks list or the supplied Associated Tasks list. In the first case we will need to replace the built-in Task content type with the provided Associated Task content type. Using the built-in list type involves a little bit more work, but gives you the added benefit of email notification when a task is assigned.<ol>
<li>Create the list from Tasks list template</li>
<li>In Advanced Settings enable content type management</li>
<li>Add content type from Infowise group called Associated Task</li>
<li>Remove built-in Task content type</li>
<li>Remove unnecessary column, leaving only Title, Start Date, Due Date and Assigned To</li>
<li>Add yes/no column Confirm Reading, set default value to No</li>
<li><img style="border: 1px solid black;" title="Signing Tasks" src="../../Blog/PostImages/Vladi%20Gubler/2-readtasks.png" alt="Signing Tasks" width="557" height="505" /></li>
</ol></li>
<li><em>Documents </em>- document library to manage the construction documents<ol>
<li>Create the document library</li>
<li>Allow content type management under Advanced Settings</li>
<li>Add Associated Document content type under Infowise group</li>
<li>Remove built-in Document content type</li>
<li>Add Signers (person or group) field</li>
<li>Add All Signed (choice) field with option Yes and No, No is the default. Set the column to be hidden in forms in the content type settings as we will be updating it programmatically using a workflow</li>
<li>Add Document Type (choice) field with some demo data, such as Budget or Structural Plans</li>
<li><img style="border: 1px solid black;" title="Documents" src="../../Blog/PostImages/Vladi%20Gubler/3-doc.png" alt="Documents" width="550" height="444" /></li>
<li>Add Read & Sign (Associated Tasks) field, pointing the the Signing Tasks list. Allow task generation for users in Signers field.</li>
<li><img style="border: 1px solid black;" title="Documents ATF" src="../../Blog/PostImages/Vladi%20Gubler/4-docread.png" alt="Documents ATF" width="377" height="424" /></li>
</ol></li>
<li><em>Construction Projects</em> - this is the main list of the system, where the actual projects are managed.<ol>
<li>Create list from Custom list template</li>
<li>Create columns as shown in the following figure.</li>
<li><img style="border: 1px solid black;" title="Project" src="../../Blog/PostImages/Vladi%20Gubler/5-proj.png" alt="Project" width="550" height="398" /></li>
<li>The Building Type column is a Connected Field, it must be set to be filtered by the parent Designation column</li>
<li><img style="border: 1px solid black;" title="Connected Field" src="../../Blog/PostImages/Vladi%20Gubler/6-cf.png" alt="Connected Field" width="315" height="325" /></li>
<li>The Document column is an Associated Tasks column pointing to the Documents library</li>
<li><img style="border: 1px solid black;" title="Documents ATF" src="../../Blog/PostImages/Vladi%20Gubler/7-doclink.png" alt="Documents ATF" width="338" height="244" /></li>
<li>Status column contains values New, In Process, Completed (New is default). Set the column to be hidden in forms using the content type settings as we will be updating it using a workflow</li>
</ol></li>
</ol>
Now we can add a couple of workflow to take care of our status columns. These are simple workflows created using SharePoint Designer 2007 or 2010.
First, let's create a workflow to run on the Signing Tasks list to update the All Signed column of the parent document. The workflow will run each time any task is updated, it will check if all tasked for the particular document are completed and then will update the document itself.
Note: make sure the Associated Tasks WF Support feature is activated for the web application.
<img title="Document WF" src="../../Blog/PostImages/Vladi%20Gubler/8-docwf.png" alt="Document WF" width="594" height="174" />
<ol>
<li>Open the site in SharePoint Designer</li>
<li>Create a new List workflow for the Signing Tasks list. The workflow is to be set to run each time an item is updated</li>
<li>Call the workflow Document Status as that's what it is supposed to update</li>
<li>Add condition of type Associated Item value check</li>
<li>Set check for Confrm Reading column to be actual to Yes</li>
<li>Add action Infowise Associated Tasks Extract Parent ID to get the parent document item ID from the related task and store it in a workflow variable</li>
<li>Add action to update the parent document in the Documents list, by setting the All Signed value to Yes for item with ID matching the stored variable</li>
<li>Publish the workflow</li>
</ol>
Now we add a workflow to set the project status to Completed when all documents are read by all users
<img title="Project WF" src="../../Blog/PostImages/Vladi%20Gubler/9-projwf.png" alt="Project WF" width="596" height="203" />
<ol>
<li>Open the site in SharePoint Designer</li>
<li>Create a new List workflow for the Documents list. The workflow is to be set to run each time an item is updated</li>
<li>Call the workflow Project Status</li>
<li>Add action Infowise Associated Tasks Extract Parent ID to get the parent projectitem ID from the related document and store it in a workflow variable</li>
<li>Add Update List Item action to update the status of the parent project to In Process. This way any update will change the project status from the default New status</li>
<li>Add condition of type Associated Item value check</li>
<li>Set check for All Signed column to be actual to Yes</li>
<li>Add action to update the parent item in the Construction Projects list, by setting the Status value to Completed for item with ID matching the stored variable</li>
<li>Publish the workflow</li>
</ol>
This is it, you now have a functioning system and it took you just a few minutes!Discover your newsletter exposureVladi Gubler9/4/2011 3:08:23 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=44Hi,
SharePoint is a great platform to publish news and events. You can use rich text messages, links or even images and you can have it all in a centralized place where it is easy to find. To make it even more effective, you can use our <a href="../../product.aspx?id=Newsletter">Newsletter</a> add-on to send the items directly to the inboxes of your employees or clients. By using your own custom email templates you can create the snazziest newsletters, complete with your company logos, colors and layout.
The newest features added to our <strong>Newsletter </strong>are Unsubscribe and Analytics.
<em>Unsubscribe </em>allows you to add a link to the newsletter message to allow users to remove themselves from the mailing list. The functionality is completely automated, you don't even have to edit your recipient list, <strong>Newsletter </strong>will handled everything for you.
<em>Analytics </em>allows you to know precisely when the newsletter message is read and by whom. The visual representation calculates totals, daily totals and lists the actual recipients, complete with the time and date of reading.
<img title="Newsletter Analytics" src="../../products/images/Newsletter/analytics_scr.png" alt="Newsletter Analytics" width="550" height="391" />
<span style="text-decoration: underline;">Note:</span> both features require access from the newsletter message back to the server, so you need to set up your system accordingly.Print your data with Smart Print ProVladi Gubler9/4/2011 2:50:28 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=43Hello,
Announcing the latest addition to our product line: <a href="http://www.infowisesolutions.com/product.aspx?id=SmartPrintPro">Smart Print Pro</a>
Managing information inside SharePoint is just great. You can set up complex applications in virtually no time at all, especially with the help of such great tools as our <a href="../../bundle.aspx?id=UltimateForms" target="_blank">Ultimate Forms</a> bundle. It is just a bit more difficult to print the information or send it out to external parties. Simply printing the page will include the whole page with it, including the navigation bars, logos and all the unrelated stuff. Sure, you can export it to Excel first, but the extra steps required are simply not convenient.
This is where Smart Print Pro can really help you out. It adds a nifty Print buttons to all your lists and list items. Click on it and you will see the print preview in a pop-up window (yes, in SharePoint 2007 as well). There you can send it to the printer, convert to PDF or have it emailed to you for forwarding.
By default, the printed item includes all the columns. But you can create your own custom print templates, select the columns you want, group them into sections and add custom header and footer. You can created multiple templates for the same list, so you can have different print-out for customers, for archives and for internal use.
<img title="Print invoice" src="../../Blog/PostImages/Vladi%20Gubler/printInvoice.png" alt="Print invoice" width="550" height="412" />
Get your 30-day trial installation today!Get your bottom line with Summary columnsVladi Gubler9/4/2011 2:35:43 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=42Hello,
As you might already know, our <a href="http://www.infowisesolutions.com/product.aspx?id=AssociatedTasks">Associated Tasks Field</a> helps you create relationships between items located in different lists. So you can assign tasks to events, add documents to projects and basically create any type of relationships to turn SharePoint lists into a real life application infrastructure.
Now, we offer you an additional treat - you can now use the bindled Associated Items Summary columns to count or summarize your related items. For instance, imagine that you use the product to create and manage customer invoices. You do it using two lists:
<ul>
<li><strong>Invoices </strong>- where the actual invoices are managed, with such columns as Customer, Bill To and Ship To</li>
<li><strong>Invoice Lines</strong> - here you enter the items for each invoice, by entering item title, unit price, quantity and line total (use Calculated field for that)</li>
</ul>
Using Associated Tasks field you can show the lines withing the context of each invoice and you can even create new lines for new or existing invoices straight from the invoice's Edit form.
But what if you wanted to calculate the grand total or simply show the number of item lines in the Invoices list view. This is where the Associated Items Summary column helps.
<ul>
<li>Create a new summary column in the Invoices list</li>
<li>Point it to the Associated Tasks column you created to show the invoice lines</li>
<li>Select the Line Total column to perform calculations on that column</li>
<li>Select Sum operation</li>
<li>You can even optionally add filters, so that only specific related items are included in the summary</li>
</ul>
<img title="Invoice" src="../../Blog/PostImages/Vladi%20Gubler/invoice.png" alt="Invoice" width="550" height="484" />
That's it. Now each time an invoice item is added, modified or deleted, the parent invoice has its summary value re-calculated.
By the way, check out the new <a href="http://www.infowisesolutions.com/product.aspx?id=SmartPrintPro">Smart Print Pro</a> to print our your invoices or convert them to PDF.How to keep your products up-to-dateVladi Gubler8/7/2011 3:38:00 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=41<span style="font-size: small;">Hello,</span>
<span style="font-size: small;">We are happy to inform you that we started rolling out an upgrade to our registration module that now includes a "Check for updates" feature. Just enter the Infowise Ltd Product Registration management page located in Central Administration and you will see a new column in the list of your products, named <em>Check for Updates.</em></span>
<span style="font-size: small;">If your server is connected to the Internet, just click the link and your currently installed version will be compared to the latest released version. If an upgrade exists, you will even be able to download and run it directly, without the need to browse to our site.</span>
<span style="font-size: small;"><img style="border: 1px solid black;" title="Registration page" src="http://www.infowisesolutions.com/Blog/PostImages/Vladi%20Gubler/registration.png" alt="Registration page" width="530" height="502" /><br /></span>
<span style="font-size: small;">Please note that we are including the upgraded module with our products gradually, and not all of them contain the upgrade yet.</span>Pharmaceuticals Manufacturing Deviation Report using Ultimate FormsVladi Gubler7/18/2011 2:37:16 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=40<span style="font-size: small;">Hello,</span>
<span style="font-size: small;"> </span>
<hr />
<strong style="font-size: small;">UPDATE</strong><span style="font-size: small;">: you can now download a self-installing site template </span><a style="font-size: small;" href="http://www.infowisesolutions.com/Template.aspx?ID=DeviationReport">here</a><span style="font-size: small;">. The package will install trial versions of all the required Infowise products automatically.</span>
<span style="font-size: small;"> </span>
<hr />
<span style="font-size: small;">Our</span><a style="font-size: small;" href="http://http//infowisesolutions.com/bundle.aspx?id=UltimateForms"> Ultimate Forms</a><span style="font-size: small;"> bundle allows you to build almost any SharePoint-based business application using nothing but your browser.</span>
<span style="font-size: small;">Today we are showing our regulated process for the pharmaceuticals industry - <em>Manufacturing Deviation Report</em>. The report is a business process where any irregularity detected in the drug manufacturing process must be documented, investigated and acted upon using a set of corrective and preventing actions (CAPA).</span>
<span style="font-size: small;">Here you can see the report in action:</span>
<span style="font-size: small;">
<object width="560" height="349" data="http://www.youtube.com/v/aMAy4MCv9-g?version=3&hl=en_US&rel=0" type="application/x-shockwave-flash">
<param name="data" value="http://www.youtube.com/v/aMAy4MCv9-g?version=3&hl=en_US&rel=0" />
<param name="src" value="http://www.youtube.com/v/aMAy4MCv9-g?version=3&hl=en_US&rel=0" />
</object>
</span>
<span style="font-size: small;">As you can see, it's quite a complex process, spanning multiple stages and involving many users.</span>
<span style="font-size: small;">But you will be surprised how easy it is to implement a process like this using our bundle.</span>
<span style="font-size: small;">So let's get started creating this process. You need to download and install the<em> Ultimate Forms</em> bundle from <a href="http://http//infowisesolutions.com/bundle.aspx?id=UltimateForms">our website</a>. You can also install our <a href="http://http//infowisesolutions.com/product.aspx?id=DocumentLinkField">Document Link Field</a> for the attached documents functionality, but this is up to you.</span>
<span style="font-size: small;">First of all, we need a blank site to host our system.</span>
<span style="font-size: small;">Now let's create several auxiliary lists, before we move on to our main list, the <em>Deviation </em>report itself.</span>
<span style="font-size: small;">We need the following lists:</span>
<ol>
<li><span style="font-size: small;"><em>Shared Documents</em> - a document library to hold our attachments, no changes to the structure are required.</span></li>
<li><span style="font-size: small;"><em>Batch Statuses</em> - custom list, serving as a data source for the Batch Status lookup column. Includes value such as <em>On Hold</em>, <em>Destroyed</em>,<em> In Process </em>and so on. The actual values depend on your requirements</span></li>
<li><span style="font-size: small;"><em>Departments </em>- custom list, serving as a data source for the Department lookup column. In our example holds the names of different manufacturing departments</span></li>
<li><span style="font-size: small;"><em>Professional Opinions</em> - a Tasks list to hold the request for porfessional opinions. Once created:</span><ol>
<li><span style="font-size: small;">Allow content type management.</span></li>
<li><span style="font-size: small;">Add existing content type called<em> Associated Task</em> under Infowise group.</span></li>
<li><span style="font-size: small;">Remove the built-in <em>Task </em>content type.</span></li>
</ol></li>
<li><span style="font-size: small;"><em>CAPA Tasks</em> - a <em>Tasks </em>list to manage the corrective and preventive actions. Do the following:</span><ol>
<li><span style="font-size: small;">Create a <em>Tasks </em>list called <em>CAPA Tasks</em></span></li>
<li><span style="font-size: small;">Go to the <em>Content Types</em> gallery of your site and create two new content types: <em>Corrective Action</em> and <em>Preventive Action</em>. Base both of them on the <em>Associated Task</em> content type. Add <em>Approve Closure </em>yes/no column and a signature column.</span></li>
<li><span style="font-size: small;">Add the newly created content types to the <em>CAPA Tasks</em> list, you need to enable content type management in the list settings first.</span></li>
<li><span style="font-size: small;">Remove the built-in <em>Task </em>content type</span></li>
</ol></li>
</ol>
<span style="font-size: small;">We can now move on to creating the main list.</span>
<ol>
<li><span style="font-size: small;">Create a custom list called <em>Deviation Reports</em>.</span></li>
<li><span style="font-size: small;">Add columns for each of the stages</span></li>
<li><span style="font-size: small;"><img title="Columns" src="../../Blog/PostImages/Vladi%20Gubler/dr_columns.png" alt="Columns" width="550" height="760" /></span></li>
<li><span style="font-size: small;">Most of the columns are just regular SharePoint columns, but pay attention to the following:</span><ol>
<li><span style="font-size: small;"><em>Batch Details</em> - imports information from a manufacturing system. Can either connect directly to any database or to a web service.</span></li>
<li><span style="font-size: small;"><em>Additional Files</em> - for most stages we allow uploading and linking documents using Document Link Field</span></li>
<li><span style="font-size: small;"><em>Signature columns</em> - using Infowise Electronic Signature field you an sign other columns in the list. In our case, each tab's columns are signed by the signature column on that tab.</span></li>
<li><span style="font-size: small;"><em>Professional Opinions</em> - Associated Tasks field linking to the <em>Professional Opinions</em> list.</span></li>
<li><span style="font-size: small;"><em>Corrective Actions and Preventing Actions</em> - <em>Associated Tasks</em> fields linking to the <em>CAPA Tasks</em> list. Make sure to assign the correct content type for each column.</span></li>
</ol></li>
</ol>
<span style="font-size: small;">Once the list is created, we can create the tabs to represent the stages of the process.</span>
<ol>
<li><span style="font-size: small;">Go to<em> List Settings</em></span></li>
<li><span style="font-size: small;">Click on <em>Tabs and Tab Permissions</em></span></li>
<li><span style="font-size: small;">Create a tab for<em> Preliminary Report</em> stage</span></li>
<li><span style="font-size: small;">Select the columns to be appear on the tab</span></li>
<li><span style="font-size: small;">Using tab permission, set <em>Write </em>permission to <em>New </em>form and <em>Read </em>permission to <em>Edit </em>and <em>View </em>forms.</span></li>
<li><img title="Tab 1" src="../../Blog/PostImages/Vladi%20Gubler/dr_tab1.png" alt="Tab 1" width="544" height="881" /></li>
<li><span style="font-size: small;">Create tab for <em>Production Manager</em></span></li>
<li><span style="font-size: small;">Define settings as shown below. You can add a user or group to the <em>Write </em>permission to make sure only a specific user can edit this tab. For simplicity sake, we do not use user-based permissions in this demo.</span></li>
<li><img title="Tab 2" src="../../Blog/PostImages/Vladi%20Gubler/dr_tab2.png" alt="Tab 2" width="546" height="880" /></li>
<li><span style="font-size: small;">Do the same for the <em>Head Pharmacist</em></span></li>
<li><img title="Tab 3" src="../../Blog/PostImages/Vladi%20Gubler/dr_tab3.png" alt="Tab 3" width="545" height="896" /></li>
<li><span style="font-size: small;">And the Quality Assurance Manager</span></li>
<li><img title="Tab 4" src="../../Blog/PostImages/Vladi%20Gubler/dr_tab4.png" alt="Tab 4" width="544" height="911" /></li>
<li><span style="font-size: small;">The same goes for the last tab. Notice how we prevent closing the report when there are still open actions</span></li>
<li><img title="Tab 5" src="../../Blog/PostImages/Vladi%20Gubler/dr_tab5.png" alt="Tab 5" width="545" height="899" /></li>
</ol>
<span style="font-size: small;">We now have set the tabs to appear according to our process. Using <em>Advanced Column Permissions</em>, let's set <em>Read</em> permissions to <em>Status</em>, <em>Open Corrective Actions</em> and <em>Open Preventing Actions</em> columns to prevent users from editing them directly.</span>
<span style="font-size: small;">Using <em>Item ID settings</em>, we can generate the report ID automatically using a template:</span>
<img title="Item ID" src="../../Blog/PostImages/Vladi%20Gubler/dr_itemid.png" alt="Item ID" width="481" height="525" />
<span style="font-size: small;">We are almost done, we just need to plug in a couple of simple <em>SharePoint Designer</em> workflows to make the whole process run.</span>
<span style="font-size: small;">First, let's add add a workflow to the <em>CAPA Tasks</em> list that will close tasks and update the deviation report when there are no longer any open tasks left either for the <em>Corrective Actions</em> or <em>Preventive Actions</em> field. Notice the new actions and conditions added by the <em>Associated Tasks</em> field. They are capable of checking all items associated with the same parent item.</span>
<img title="Task WF" src="../../Blog/PostImages/Vladi%20Gubler/dr_wftask.png" alt="Task WF" width="552" height="510" />
<span style="font-size: small;">Set the workflow to run when an item is updated.</span>
<span style="font-size: small;">Now let's create our main workflow that will change the report status depending on user input.</span>
<span style="font-size: small;">We will simply change the status to the next stage when we detect a signature field being filled.</span>
<img title="Report WF" src="../../Blog/PostImages/Vladi%20Gubler/dr_reportwf.png" alt="Report WF" width="549" height="618" />
<span style="font-size: small;">Set the workflow to run when an item is created.</span>
<span style="font-size: small;">This is it, you can now test the process to make sure it runs successfully. Feel free to use this demo as a basis for your own processes and we will appreciate your feedback!</span>Put your lists to work with Smart Action ProVladi Gubler7/17/2011 3:17:57 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=39Hello,
When we enter information into our SharePoint sites, we often have a requirement that certain actions have to take place when this information is entered. We might need to set specific permissions on a document based on its properties. We might need to update our ERP application or create a new site for a project. SharePoint contains a workflow infrastructure and we can also add custom event receivers to our lists, but in both cases we are talking about costly development, with many workhours (and money) spent on requirement analysis, coding and testing, not to mention deployment in multiple environments. And all we wanted to do was a simple one-step task!
Thankfully, you can now leverage the power of Infowise <a href="../../product.aspx?id=SmartActionPro">Smart Action Pro</a> to your advantage. Using one of our 9(!) possible action types, you can perform a multitude of actions within SharePoint sites and in any external application. And most importantly - there is no coding involved, just some easy settings from within the familiar <em>List Settings</em> page.
Let me show you an example to demonstrate the power, versatility and the ease of use of <strong>Smart Action Pro</strong>. In our system, we enter a new project name to the list of projects. The same second the following actions take place automatically:
<ol>
<li>Task is created for a reviewer with due date in 30 days.</li>
<li>Specific permissions are set for that task.</li>
<li>The new project is registered in our LOB (line-of-business) application using a stored procedure call (or you can use web services as well).</li>
<li>A new site from a preset template is created for the project.</li>
<li>A task is created within the new site.</li>
<li>The projects list entry is updated with the link to the new site.</li>
<li>You receive an email saying that your tasks have completed successfully.</li>
</ol>
Let's watch a quick video to see it with our own eyes:
<object width="560" type="application/x-shockwave-flash" data="http://www.youtube.com/v/FldSY132y-4?version=3&hl=en_US&rel=0" height="349">
<param name="data" value="http://www.youtube.com/v/FldSY132y-4?version=3&hl=en_US&rel=0" />
<param name="src" value="http://www.youtube.com/v/FldSY132y-4?version=3&hl=en_US&rel=0" />
</object>
Now let's see how it's done.
<ol>
<li>First, we need to create a Project Center site, just create a <em>Blank </em>site.</li>
<li>Create a list of <em>Projects</em>, based on a <em>Custom </em>list template.</li>
<li>Create a<em> Review Tasks</em> list based on <em>Tasks </em>list template. Create a lookup column to the list of <em>Projects </em>called <em>Project</em>.</li>
<li>Add<em> Link</em> column to hold links to our project sites using Hyperlink field type.</li>
</ol>
<img title="Project List" width="551" src="../../Blog/PostImages/Vladi%20Gubler/smact_projlist.png" height="479" alt="Project List" />
<ol>
<li>Optionally create a site template for the project site or use the regular team site</li>
<li>Open Projects list, go to <em>List Settings.</em></li>
<li>Click<em> Actions settings</em>.</li>
<li>Now we need to create an Actions column. This column holds our action history and is also used to display actions to users. You must have at least one action column in your list before you can create acitons. You can also specify the e-mail address of the administrator, so he or she are notified of errors while running actions.</li>
</ol>
<img title="Action Column" width="550" src="../../Blog/PostImages/Vladi%20Gubler/smact_actcol.png" height="106" alt="Action Column" />
<ol> </ol>
We can now start creating actions.
<ol>
<li>First, let's create an action for creating a review task in our Tasks list.</li>
<li>Open the<em> Add/Update Action</em> section.</li>
<li>Select <em>Create List Item</em> action type.</li>
<li>Enter a user-friendly name, such as <em>Create review task.</em></li>
<li>Enter a description, description are intended to give some extra info to your users regarding the task about to be performed.</li>
<li>You do not need to enter the <em>Advanced Settings</em> tab now, but you can use it to set some advanced properties of tasks, such as making them hidden from users, allowing multiple execution or allowing tasks to run with high privileges.</li>
<li>Select New and deselect Edit events, so that our task only runs when the project is created, not when it's updated.</li>
</ol>
<img title="General Settings" width="550" src="../../Blog/PostImages/Vladi%20Gubler/smact_genset.png" height="165" alt="General Settings" />
<ol>
<li>Enter the<em> Actions Settings</em> tab. This tab looks differently depending on the selected action type. In our case, we need to choose the site where our list is (<em>Current Site</em> in our case), select the list where the review task is created (Review <em>Tasks </em>list) and enter the column value for the new task.<ol>
<li><em>Title </em>= Review for [Title] - value in square brackets indicate column values of the current list, in this case the name of the new project. You can also use the value picker to select the column values and functions from a list instead of typing them in manually</li>
<li><em>Project</em> = [ID] - project ID for the lookup column</li>
<li><em>Due Date</em> = [Today] + 30 - creates a due date for the task in a month from the date project was created</li>
<li><em>Assigned to</em> = email address of the reviewer.</li>
</ol></li>
<li>As this action will run in all cases, there is no need to specify conditions, but you could use a set of conditions to make actions run in certains cases only.</li>
<li>Save the new action.</li>
</ol>
<img title="Action 1" width="550" src="../../Blog/PostImages/Vladi%20Gubler/smact_act1.png" height="216" alt="Action 1" />
<ol> </ol>
Now you can create an action to give specific permissions to the review task
<ol>
<li>Select <em>Manage Permissions</em> action type.</li>
<li>Enter user-friendly name and description.</li>
<li>In<em> Action Settings</em>, choose to apply permissions to <em>Item</em>.</li>
<li>Select current site and <em>Review Tasks</em> list.</li>
<li>Under <em>Item </em>selection conditions, enter Project=[Title], so that only the review tasks related to the current project (which is actually only the task we create in the previous action) is selected.</li>
<li>Under<em> Action Type</em> select <em>Add Users</em>.</li>
<li>Enter a user to give specific permissions to.</li>
<li>Select a permission level.</li>
<li>Save the action.</li>
</ol>
<img title="Action 2" width="550" src="../../Blog/PostImages/Vladi%20Gubler/smact_act2.png" height="278" alt="Action 2" />
<ol> </ol>
Let's add an action for registering the new project in an SQL database:
<ol>
<li>Select <em>Run DB strored procedure</em> action type.</li>
<li>Enter name and description.</li>
<li>In <em>Action Settings</em> select <em>MS SQL</em> provider type. You can use any other provider type as well, such as <em>Oracle</em>.</li>
<li>Enter a connection string for your database and click <em>Connect </em>to populate the list of stored procedures.</li>
<li>Select a stored procedure from the list.</li>
<li>Specify value for the procedure parameters using current item's column values, text and functions. You can use the value picker for this values as well.</li>
<li>Save the action.</li>
</ol>
<img title="Action 3" width="550" src="../../Blog/PostImages/Vladi%20Gubler/smact_act3.png" height="202" alt="Action 3" />
<ol> </ol>
Now we create a site for the project:
<ol>
<li>Select<em> Create site</em> action type.</li>
<li>Enter name and description, switch to <em>Action Settings</em> tab.</li>
<li>Enter [Title] in the site <em>Title </em>box to create a site named after the project.</li>
<li>Enter [ID] in the <em>URL </em>field to ensure unique site URL.</li>
<li>Select a site template from the list.</li>
<li>Save the action.</li>
</ol>
<img title="Action 4" width="550" src="../../Blog/PostImages/Vladi%20Gubler/smact_act4.png" height="262" alt="Action 4" />
<ol> </ol>
A new item is added to the Tasks list of the new site by the following action:
<ol>
<li>Select <em>Create list item</em> action type.</li>
<li>Enter name and description, switch to <em>Action Settings</em> tab.</li>
<li>Because we are adding an item to a site that does not exist yet, we need to use an existing site for specifying values and condition. Then we enter a <em>Run-time value</em> for both the site URL and the list name, this value will be used when the task is actually performed.</li>
<li>Select any existing site created from the same template as our <em>Project </em>site</li>
<li>Select the <em>Tasks </em>list</li>
<li>Enter values for Title, Due Date, Start Date and Description columns using text and column values.</li>
<li>Enter server-relative (or absolute) URL for the run-time value of the site URL, remember to use the [ID] token we used in the previous action.</li>
<li>Enter Tasks as a run-time value for list name. You must always enter a run-time value for the list name if you entered one for the site URL.</li>
<li>Save the action.</li>
</ol>
<img title="Action 5" width="550" src="../../Blog/PostImages/Vladi%20Gubler/smact_act5.png" height="215" alt="Action 5" />
<ol> </ol>
Let's update our current item with a link to the new project site:
<ol>
<li>Select <em>Update list item</em> action type.</li>
<li>Enter name and description, switch to <em>Action Settings</em> tab.</li>
<li>Set Current Site and Current List.</li>
<li>In <em>Value to set</em>, enter Link = URL to the new site, including the [ID] token.</li>
<li>In Item selection settings, enter ID=[ID], this will select the current item.</li>
<li>Save the action.</li>
</ol>
<img title="Action 6" width="550" src="../../Blog/PostImages/Vladi%20Gubler/smact_act6.png" height="251" alt="Action 6" />
<ol> </ol>
Let's create an action to inform the project creator of successful execution of all tasks:
<ol>
<li>Select Send e-mail action type.</li>
<li>Enter name and description, switch to <em>Action Settings</em> tab.</li>
<li>Select <em>Created by</em> in <em>To </em>field.</li>
<li>Enter Subject and Body. You can use column values and functions.</li>
<li>Save the action.</li>
</ol>
<img title="Action 7" width="550" src="../../Blog/PostImages/Vladi%20Gubler/smact_act7.png" height="171" alt="Action 7" />
This is it. We now have all the actions in place. Whenever we create a new project name, we will have the whole working environment set up automatically for us! And no coding, as promised!
<ol> </ol>Use SharePoint on the road with Smart List MobileVladi Gubler7/17/2011 2:51:03 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=38<span style="font-size: small;">Hi,</span>
<span style="font-size: small;">More and more organizations use SharePoint as a platform for internal systems. You see people building whole CRM, issue tracking and lead managements system using SharePoint lists and document libraries. At a fraction of the cost of a commercial application you are now able to build a fully customizable system, tailor-made for your needs.</span>
<span style="font-size: small;">The problems start when you want your mobile users to get access to that system. Although both SharePoint 2007 and 2010 have mobile support (and a much better one in 2010), it is still too rudimentary to be truely useful. In an effort to create a universally accessible experience, Microsoft created a simplistic mobile site, not utilizing the full potential of today's mobile devices, such as iPhones or Droids.</span>
<span style="font-size: small;"><a href="../../product.aspx?id=SmartListMobile" target="_blank">Smart List Mobile</a> allows you to create an advanced user experience, but still preserve a simple user interface more suitable for mobile devices. By extending the capabilities of <a href="../../product.aspx?id=SmartListPro">Smart List Pro</a>, you can now create special <em>mobile </em>tabs, specifically made for the different kinds of mobile users you might have. So your field technicians and your managers get access to different sets of data and edit different columns of the same lists.</span>
<span style="font-size: small;">In our sample Support Center application, we will create two lists. One, based on a Contacts list, will hold the customer information, and the other, based on a Tasks list, will manage our support calls. Of course, you can create a completely different set of lists, based on your requirements.</span>
<span style="font-size: small;">Our homepage could look something like this:</span>
<img title="Web homepage" width="550" src="../../Blog/PostImages/Vladi%20Gubler/slm_homepage.png" height="242" alt="Web homapage" />
<span style="font-size: small;">Now, we will add some tabs to the support call New/Edit forms to make the data entry easier and more structured:</span>
<span style="font-size: x-small;"><img title="Web Support Call" width="550" src="../../Blog/PostImages/Vladi%20Gubler/slm_supportcall.png" height="493" alt="Web Support Call" /></span>
<span style="font-size: small;">But when we enter the same pages using our mobile device, we see something completely different:</span>
<span style="font-size: x-small;"><img title="Mobile Old" src="../../Blog/PostImages/Vladi%20Gubler/slm_omhp.png" alt="Mobile Old" /></span>
<span style="font-size: small;">As you can see, the users see all the lists and document libraries in the site, even those that are completely irrelevant to them. The same goes for the list columns, in an advanced system a list such as Support Calls, could contain dozens of columns, with only a couple of those relevant to the mobile users.</span>
<span style="font-size: small;">Now let's see what<strong> Smart List Mobile</strong> could do.</span>
<span style="font-size: x-small;"><img title="Mobile Homepage" width="378" src="../../Blog/PostImages/Vladi%20Gubler/slm_mhome.png" height="605" alt="Mobile Homepage" /></span>
<span style="font-size: small;">First of all, it applies styling to the whole site. By adding icons, removing clutter and changing the color scheme, it makes the page so much more useful (you can also specify your own custom styling if you like). Additionally, the <em>Actions</em> functionality allows you to create quick links to useful pages, such as creating a new support call.</span>
<span style="font-size: small;">But the real magic lies in the mobile tabs. Just like regular <strong>Smart List Pro</strong> tabs, the mobile tabs (which as actually created and managed by exactly the same screen) contain columns and permissions. You can assign just a subset of the list columns to each mobile tab, just the columns your mobile users will need to view or update.</span>
<span style="font-size: small;">You can create as many mobile tabs as you want, but only one is shown to the user. It is selected using permissions, only the most suitable tab, the one suitable for the current form, current user and passing the most conditions is selected. So for instance, here we assigned a tab for our field technicians:</span>
<span style="font-size: x-small;"><img title="Mobile Technician Settings" width="541" src="../../Blog/PostImages/Vladi%20Gubler/slm_techset.png" height="840" alt="Mobile Technician Settings" /></span>
<span style="font-size: small;">And here is the tab for our managers:</span>
<span style="font-size: x-small;"><img title="Manager Tab Settings" width="542" src="../../Blog/PostImages/Vladi%20Gubler/slm_mngset.png" height="833" alt="Manager Tab Settings" /></span>
<span style="font-size: small;">You can see that both the list of visible column and the permission settings are different.</span>
<span style="font-size: small;">Because the technicians only need to close the support calls, this is the actual screen they see in their mobile devices.</span>
<span style="font-size: small;"><img title="Technician tab" width="381" src="../../Blog/PostImages/Vladi%20Gubler/slm_techtab.png" height="592" alt="Technician tab" /></span>
<span style="font-size: small;">The managers need to edit additional columns of the support call, so their screen is a bit different.</span>
<span style="font-size: small;"><img title="Manager Tab" width="378" src="../../Blog/PostImages/Vladi%20Gubler/slm_mngtab.png" height="562" alt="Manager Tab" /></span>
<span style="font-size: small;">As you can see, you can create user-specific mobile interfaces in seconds. By keeping it stream-lined and simple, you can be sure your users will need the absolute minimal time to update the lists and spend the majority of their time doing their actual job :)</span>
<span style="font-size: small;">Get a free 30-day trial of <a href="../../product.aspx?id=SmartListMobile">Smart List Mobile</a> and <a href="../../product.aspx?id=SmartListPro">Smart List Pro</a> today!</span>Get the info you need with Smart Filter ProVladi Gubler6/27/2011 5:22:17 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=37Hi there,
Filtering SharePoint lists and document libraries to get just the items you need could be a time consuming task. Although every list contains filtering controls built directly into the column headers, the filtering capability is quite limited, allowing you just to select one value from a long list of possible values. To apply an additional filter you need to do it all over again and, of course, the column you filter by must be included in the current view, which is not always the case.
But what if you wanted to filter multiple web parts in one go? What if you wanted to more user-friendly way to enter the data? What if you wanted to filter by a parameter you pass from another page? What if you use WSS or Foundation and don't have the filter web parts?
This is where <a href="../../product.aspx?id=SmartFilterPro" target="_blank">Smart Filter Pro</a> can help you out. It has 8 different filter types, from a simple text entry to cascading lookups and form field values. You can create as many filters as you need, some visible to users and some maybe even hidden. You can decide how your filter web part looks: horizontal or vertical, one row or several. And most importantly, the settings are as simple and as intuitive as they get, so you can get started in no time at all!
<object width="560" type="application/x-shockwave-flash" data="http://www.youtube.com/v/kG3_hs7e2Do?version=3&hl=en_US&rel=0" height="349">
<param name="data" value="http://www.youtube.com/v/kG3_hs7e2Do?version=3&hl=en_US&rel=0" />
<param name="src" value="http://www.youtube.com/v/kG3_hs7e2Do?version=3&hl=en_US&rel=0" />
</object>
Get <a href="../../product.aspx?id=SmartFilterPro" target="_blank">your trial version</a> now and get the info you need!HR Recruitment Process using Ultimate FormsEthan Bach6/19/2011 12:57:10 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=36Hello All,
<a title="Ultimate Forms Bundle" href="../../bundle.aspx?id=UltimateForms" target="_parent">Ultimate Forms Bundle</a> is a set of SharePoint components which providing all the capabilities to build state-of-the-art electronic forms in minutes, using the browser only.
In this post we'll show how to build a simple HR recruitment system using Ultimate Forms bundle. We'll see how easily we can create an HR solution within SharePoint, with minimum of work.
Let's start with the recruitment process goals:
<span style="white-space: pre;"> </span>1. To Insert into the system the candidate details, CV's, recommendations and any other useful documentation<br /> 2. To categorize the candidate<br /><span style="white-space: pre;"> </span>3. To set some approval tasks for the managers and give them tools to decide whether to move on with the candidate.<br /> 4. Send confirmation email on every stage to the appropriate person.
All of this should show us at end of the process the big picture regarding every candidate. And one last thing - everything should be based on a SharePoint list!
Well, it's not too much to ask for <img title="Cool" border="0" src="../../resources/tinymce/plugins/emotions/img/smiley-cool.gif" alt="Cool" />, so let's see how we made it.
Let's begin with the process roles. In this example there are three roles: the recruitment agent, the HR manager and the appropriate division manager.
The process starts when the recruitment agent creates new item, uploads a CV file, and starts to fill out the form. The recruitment agent form is actually split into four steps, in a wizard-like style (powered by <a title="Smart List Pro" href="../../product.aspx?id=SmartListPro" target="_parent">Smart List Pro</a>). Using the wizard style simplifies the metadata entry and enables the recruitment agent to fill out several fields at a time instead of many fields on the same page which can be a pain. The fields are grouped into logical subjects (each subject represented by a tab in the wizard) e.g.- basic details, candidate details, affiliation and etc.
Here are some screenshots of the recruitment agent forms:
<img title="Ultimate Forms - HR Process Example" width="660" src="../../Blog/PostImages/Ethan%20Bach/HR1.jpg" height="573" alt="Basic details tab" />
<img title="Ultimate Forms - HR Recruitment Process Example" width="660" src="../../Blog/PostImages/Ethan%20Bach/HR2.jpg" height="416" alt="Candidate details tab" />
<img title="Ultimate Forms - HR Recruitment Process Sample" width="660" src="../../Blog/PostImages/Ethan%20Bach/HR3.jpg" height="428" alt="Affiliation tab" />
<img title="Ultimate Forms - HR Recruitment Process Example" width="660" src="../../Blog/PostImages/Ethan%20Bach/HR4.jpg" height="354" alt="Summary tab" />
After the recruitment agent finishes to fill in her fields, the next stage is the HR Manager approval. To proceed to the next stage, the system sends a confirmation email to The HR Manager (powered by <a href="../../product.aspx?id=SmartAlertPro">Smart Alert Pro</a>), which indicates that she has a new candidate to review.
Here is a screenshot of the HR Manager confirmation email:
<img title="Ultimate Forms - HR Recruitment Process Example " width="623" src="../../Blog/PostImages/Ethan%20Bach/HR5.jpg" height="503" alt="Smart Alert Pro - Email Conformation" />
The HR manager edits the item and can review all the candidate details by switching the form tabs and can decide whether to move forward with the candidate or reject him. Afterwards the HR manager needs to electronically sign the form (powered by Electronic Signature Field) and finally add some remarks about her decision.<br /> <em>*remark - In some cases, the HR manager or HR director is the final step at the process. It can be changed with slight adjustments.</em>
HR Manager form:
<img title="HR Manager Form" width="625" src="../../Blog/PostImages/Ethan%20Bach/HR6.jpg" height="520" alt="Ultimate Forms - Recruitment Process Example" />
<em><br /></em>
The last stage the division manager approval. After the HR manager approves the candidate, according to the candidate affiliation (filled in by the recruitment agent), the appropriate division manager gets a confirmation email which indicates that he has a new candidate to review.
So far, we saw the user interface. Now let's see how all of this done behind the scenes.
It all starts with SharePoint custom list, we built a list containing all the necessary columns for all stages of the process. With the help of <a href="../../product.aspx?id=SmartListPro">Smart List Pro</a> we divided all the list columns into six different tabs: Basic Details, Candidate Details, Affiliation, Summary, HR Manager Approval and Division Manager Approval.
We've activated the wizard mode for the list - Under Smart List Pro – "Tabs and Tabs Permissions", under the "General Settings" section – we marked the "Wizard Mode" checkbox.
Here is a screenshot of the Tabs and tab permissions form – <a title="Smart List Pro" href="../../product.aspx?id=SmartListPro" target="_parent">Smart List Pro</a> Settings:
<img title="Smart List Pro Settings - Tabs and tab permissions." width="534" src="../../Blog/PostImages/Ethan%20Bach/HR7.jpg" height="586" alt="Ultimate Forms - HR Recruitment Process Example" /><br /><br />
For the recruitment agent tabs - Basic Details, Candidate Details, Affiliation and Summary We left the Permissions section empty, that means that every user can add candidates, which was good enough for this example. It's possible to restrict the tabs only to the recruitment agents by adding a permission rule to the recruitment agents Active Directory group or SharePoint group. That would restrict the tabs only for the recruitment agents.
For the HR manager and the division manager tabs we added permission rules.
The first rule is for The HR Manager, at this example – Mary Sheldon. We gave her Write permission for all of the list forms – New, Edit and View forms. We set the "HR Manager Approval" tab to be her default tab, this means that when she edits the candidate item – the focus will set to the "HR Manager Approval" tab. We also gave Read permissions to the division manager – in this example Jonathan Summers, so he would be able to view the HR decisions and remarks. He would also have the same set of permissions on the "Division Manager" tab and this tab would be his default tab.
Here is a screenshot of the "Tabs and Tab Permissions" focused on the "HR Manager Approval" tab. You can see the rules under the "Current permission rules" section:
<img title="Tabs and tab permissions - Smart List Pro settings" width="548" src="../../Blog/PostImages/Ethan%20Bach/HR8.jpg" height="714" alt="Ultimate Forms - HR Recruitment Process Example" />
And what about the email alert for the HR Manager right after the recruitment agent submits her form and the same for the Division Manager's alert after the HR Manager submits her form? Well, this magic happens thanks to <a href="../../product.aspx?id=SmartAlertPro">Smart Alert Pro</a>, which enables to create an alert, configure a condition for the alert and assign the alert to any user. With <a href="../../product.aspx?id=SmartAlertPro">Smart Alert Pro</a> it's possible to use alert templates and define how exactly the alert would appear to the end user using alert templates!
Basically, what we did here is to create an alert using <a href="../../product.aspx?id=SmartAlertPro">Smart Alert Pro</a> and assign it to The HR Manager – Mary Sheldon. Afterwards, we added a condition to the alert so it would sent only if the "Recruitment Agent Decision" column is equal to "Passed" , then we created a Mail Template which we designed it to contain all the necessary fields and data.
Here is how it looks at the <a href="../../product.aspx?id=SmartAlertPro">Smart Alert Pro</a> "create new alert" form:
<img title="Create new alert form - Smart Alert Pro" width="648" src="../../Blog/PostImages/Ethan%20Bach/HR9.jpg" height="598" alt="Ultimate Forms - HR Recruitment Process Example" />
Here is the Manage mail Templates section at the same <a href="../../product.aspx?id=SmartAlertPro">Smart Alert Pro</a> " Add alert" form:
<img title="Manage mail templates - Smart Alert Pro " width="645" src="../../Blog/PostImages/Ethan%20Bach/HR10.jpg" height="595" alt="Ultimate Forms - HR recruitment Process Example" />
Here we can see that the template contains some rich text and placeholders for list fields. Is very simple to create templates and manage them. Mail templates also enables to share templates between users and to add <span style="text-decoration: underline;">an attachment to the alert</span>!
As you can see, it is very simple to create electronic forms out of SharePoint lists. <a title="Ultimate Forms" href="../../bundle.aspx?id=UltimateForms" target="_parent">Ultimate Forms</a> and <a title="Smart Alert Pro" href="../../product.aspx?id=SmartAlertPro" target="_parent">Smart Alert Pro</a> enables you to create electronic forms and business processes in minutes without the need of InfoPath or SharePoint Designer.
This is only an example of how to create HR applications within SharePoint and this example doesn't cover all of the HR needs and features, but with our products and with SharePoint out-of-the-box features you can easily create powerful applications. That’s the only way to do it this days!
(This article is based on the <a title="HR Recruitment Process using Ultimate Forms" href="http://www.youtube.com/watch?v=ViXCwqzNun0" target="_parent">HR Recruitment Process using Ultimate Forms video</a>)Create drip campaigns in SharePointVladi Gubler5/19/2011 12:44:43 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=35Hi,
Today I want to show you how you can easily implement fully-automated drip campaigns in SharePoint using just your browser.
So what are drip campaigns anyway? Wikipedia is always a handy research tool for these things: <a href="http://en.wikipedia.org/wiki/Drip_Marketing">http://en.wikipedia.org/wiki/Drip_Marketing</a>. So basically you want to send a series of messages to your customers, at preset time intervals, as a follow-up to registration, product download, etc. These messages can contain instructions, advertisements, images or anything else you need. The main goal here is to create a meaningful virtual conversation with your customer, without having to hire a horde of marketing people.
So what do you need? You need<a href="../../product.aspx?id=SmartAlertPro" target="_blank"> Infowise Smart Alert Pro</a>, our upgrade to the good old SharePoint alerts. Two of its main features are the ability to send email to external accounts, even those saved in any text column, and user-defined email templates, that you create and manage yourself.
What we need is to create a Contacts list where you will enter the contact information of your new customers. The list will have a set of custom alerts attached to it, each triggered after a pre-set time interval, starting from the moment the customer entry was created. In our case, we will have 3 templates: one will go out after a week, the second - after two weeks and the third - after a month. Obviously you can create as many templates as you need and define the intervals the way you want them. You can even set conditions for the alerts, so, for instance, if you marked the customer as not willing to receive any additional emails, the system will stop sending to that customer.
So, let's start:
<ol>
<li>Install <strong><a href="../../product.aspx?id=SmartAlertPro">Infowise Smart Alert Pro</a>.</strong> You can get the 30-day trial from the product page's download button. You need WSS 3.0 or SharePoint Foundation 2010 as well, of course, the free version will do.</li>
<li>Create a contacts list. You can change the columns as you need. Just remember to have a column for the email address.<br /><img width="550" src="../../Blog/PostImages/Vladi%20Gubler/dc%20create%20list.png" height="345" alt="Create Contacts List" /> </li>
<li>From list menu (or the <em>List </em>ribbon on SharePoint Foundation 2010) click on <em>Add Alert</em> (<span style="text-decoration: underline;">do not</span> confuse with <em>Alert Me</em>, which will take you to the built-in alert mechanism).</li>
<li>The alert creation page is opened. Your list should already be selected.</li>
<li>Open the <em>Recipients </em>section</li>
<li>The <em>To </em>field contains your name for now, remove it by clicking on the X</li>
<li>Add a new "<em>Users in column</em>" recipient by selecting the email column and clicking on <em>Add to To<br /><img width="550" src="../../Blog/PostImages/Vladi%20Gubler/dc%20recip.png" height="627" alt="Add Recipients" /> </em></li>
<li>Optionally, add yourself to the <em>CC </em>or the <em>BCC </em>recipients to be notified when your customer receives the email</li>
<li>In the <em>What to send</em> section, clear all the checkbox related to item added, modified and deleted events, we don't need them</li>
<li>Mark the A<em>ccording to date in column</em> checkbox</li>
<li>Select <em>Created </em>as your date column</li>
<li>Specify that you want the alert <em>1 week after date<br /><img width="550" src="../../Blog/PostImages/Vladi%20Gubler/dc%20what%20to%20send.png" height="630" alt="Alert Date" /> </em></li>
<li>Open the <em>Mail Templates</em> section</li>
<li>Create a new mail template by entering template name, message subject and message body. Your subject and body can contain functions and column values from the current contact item (use the list on the right to copy and past the values where you need them).<br /><img width="550" src="../../Blog/PostImages/Vladi%20Gubler/dc%20template.png" height="631" alt="Create Template" /> </li>
<li>Click <em>Add </em>to create the new template</li>
<li>Check the <em>Date </em>radio button opposite the new template's name to select for the date-based emails of the current alert.<br /><img width="550" src="../../Blog/PostImages/Vladi%20Gubler/dc%20select%20template.png" height="628" alt="Select Template" /> </li>
<li>Click <em>OK </em>at the bottom of the page.</li>
<li>Repeat steps 3-17 for the additional messages of your campaign. Specify the time interval and the message template accordingly.</li>
</ol>
This is it, your drip campaign is ready. Now create new contacts in the list and they will start receiving the mailings!Strategic Partnership with Crow Canyon SystemsVladi Gubler4/14/2011 4:23:02 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=34<span style="font-size: small;">Hello all,</span>
<span style="font-size: small;">We are happy to announce that <em>Infowise Knowledge Solutions </em>and <a href="http://www.crowcanyon.com" target="_blank">Crow Canyon Systems </a>have signed a strategic partnership agreement, which will lead to the incorporation of a large number of <em>Infowise </em>products in the SharePoint-based business applications developed and marketed by Crow Canyon Systems.</span>
<span style="font-size: small;">Leading Infowise products, such as <a href="../../product.aspx?id=SmartListPro" target="_blank">Smart List Pro</a>,<a href="../../product.aspx?id=SmartAlertPro" target="_blank"> Smart Alert Pro</a>,<a href="../../product.aspx?id=AssociatedTasks" target="_blank"> Associated Tasks Fields </a>and many others help Crow Canyon Systems to create sophisticated, integrated applications, speeding up the development process by allowing them to focus just on their own area of expertise in application development.</span>
<span style="font-size: small;">Quoting the words of <strong>Darrel Trimble</strong>, partner at Crow Canyon Systems</span>:
<span style="font-size: x-small;"><span style="color: #595557;"><span style="font-family: Arial;">"Crow Canyon SharePoint applications deliver the most<br />extendable and customizable CRM and Service Desk applications on the<br />market. Our applications merge the collaborative features of<br />SharePoint with powerful business process capabilities to deliver issue and<br />service request tracking for IT, HR, Facilities and Customer<br />Service. In a strategic partnership with Infowise Solutions, we<br />leverage their technologies to deliver new levels of productivity across your<br />organization. We put SharePoint to work for you!"</span></span></span>
<span style="font-size: x-small;"><span style="color: #595557;"><span style="font-family: Arial;"><span style="font-size: small;">Visit Crow Canyon Systems at <a href="http://www.crowcanyon.com">http://www.crowcanyon.com</a></span></span></span></span>
<span style="font-size: x-small;"><span style="color: #595557;"><span style="font-family: Arial;"><span style="font-size: small;"><img title="Crow Canyon Systems" width="501" src="../../Blog/PostImages/Vladi%20Gubler/CCS%20logo%20small.png" height="108" alt="Crow Canyon Systems" /><br /></span></span></span></span>
<span style="font-family: Times New Roman; font-size: small;"><br /><br /></span>Got a blog? Get $1000!Vladi Gubler4/12/2011 8:22:10 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=33If SharePoint runs in your veins and you're a proud member of the SharePoint bloggers community, we have a special treat for you! Now you can get more than <strong>$1000</strong> credit for purchasing our products.
<h4>How does it work?</h4>
Very simple, download and try out any of our products and then post blog entries, reviews and feedbacks on how these products helped to fulfill your business requirements quickly and easily using just your browser. Every authorized entry will entitle you to $1000 credit for purchasing our products.
<h4>Why should I participate?</h4>
As a SharePoint blogger, you have an opportunity to make a difference for the growing worldwide SharePoint community by showing people around the globe how to save time and money building sophisticated SharePoint solutions using our products.<br />Give creative ideas and suggestions to people all around the world on how to turn SharePoint into their main business platform, share the solutions created using our products that go beyond what SharePoint can do by itself.<br />Get your well-deserved credit to receive our products for free and enjoy a wide range of powerful SharePoint components for your organization.
<h4>Do I have to be a developer?</h4>
No, anyone can participate! You can even write a blogfrom an end-user perspective, as long as you’ve had some experience with our products.
<h4>What products can I receive for free?</h4>
You receive cash-equivalent credit from us and may use it to purchase any product.
<h4>When can I start?</h4>
Immediately, just post a review or feedback about our products and sent the link to <a href="mailto:info@infowisesolutions.com">info@infowisesolutions.com</a>.
<h4>Terms and Conditions</h4>
<ul>
<li>All content must be original</li>
<li>You must link back to our site</li>
<li>English is the preferred language, but other major languages can also be considered</li>
<li>Your blog/site/forum must have an adequate number of monthly visitors</li>
<li>All content must be pre-approved by Infowise</li>
<li>Infowise reserves the right to approve or reject content submitted</li>
</ul>Create relationships in SharePointVladi Gubler4/10/2011 12:24:15 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=32Hi,
Today I want to talk about one of our most versatile and useful products -<strong> <a href="../../product.aspx?id=AssociatedTasks">Associated Tasks Field</a></strong>.
Using SharePoint lists and document libraries to store and manage real world entities is an everyday task. We use them to represent lifecycles, projects, stages, events, what not. And as in the real world, we need to maintain relationships between the different entities. For instance, holding a trade show requires preparations, giving out and tracking tasks, your project can have subprojects and your documents are related to each other.
Unfortunately, SharePoint only supports rudimentary tools for managing these relationships. It basically boils down to the ubiquitous <em>Lookup </em>field that you can use to point to the parent item from a child item, that's about it. Tracking and maintaining these relationships is a truly daunting task.
That's where<a href="../../product.aspx?id=AssociatedTasks"> <em>Associated Tasks Field</em></a> can help! Don't let the name fool you, it is not just about tasks. You can use the field to create relationships between all kinds of items and documents. You can now create, view and manage any number of related items associated with any item or document, directly from within the parent item itself. This is just one way of how it might look:
<img width="622" src="../../Blog/PostImages/Vladi%20Gubler/atf-preview.png" height="459" style="border: 1px solid black;" alt="Preview" />
As you can see, the related items, in this case tasks, appear right inside the <em>Display </em>form of the parent. The <em>Title </em>column of the tasks contains the complete item context menu so you can manage the related item straight away.
<img width="466" src="../../Blog/PostImages/Vladi%20Gubler/atf-manage.png" height="287" style="border: 1px solid black;" alt="Manage" />
Now let me just give you a few examples of what you can accomplish in minutes using our product. Remember, these are just examples, you will find that the product can be helpful in so many ways!
<h2>Many-to-many Relationships</h2>
Just imagine managing a list of your partner companies and a list of products. In some of the products <em>Company A</em> is a supplier, but in others it's a client. But you would prefer to manage its details only once. Well,<em> Associated Tasks Field</em> can help you!
<ul>
<li>Just create a list for <em>Companies </em>and <em>Products</em>. You decide on how the lists should look like.</li>
<li>Now create two relationship lists (just regular custom lists with lookup column for both <em>Companies </em>and <em>Products </em>lists). One relationship list is to be called <em>Suppliers </em>and the other - <em>Clients</em>.</li>
<li>In <em>Companies </em>list create two<em> Associated Tasks</em> columns, one pointing to the <em>Suppliers </em>list (called <em>Supplies</em>) and the other to the <em>Clients </em>list (called <em>Buys</em>)</li>
<li>In Products list also create two <em>Associated Tasks</em> columns, one pointing to <em>Suppliers </em>list (called <em>Suppliers</em>) and the other - to <em>Clients </em>(called <em>Clients</em>)</li>
</ul>
This is it! Now you can view the suppliers and the customers for each product and you can see which products each company supplies and buys from you. You can even see the related items directly from views!
<img width="454" src="../../Blog/PostImages/Vladi%20Gubler/atf-m2m.png" height="282" style="border: 1px solid black;" alt="Many-to-many" />
<h2>Read and Sign</h2>
In regulated environments some documents, such as <em>SOPs</em>, must be read by the relevant employees each time a new version comes out. This formal process has to be properly managed and documented. Usually such systems take weeks if not months to develop.<br />Well, it's a snap using the<em> Associated Tasks Field</em>!
<ul>
<li>Create a <em>User/Group</em> column called <em>Signers </em>in your document library. This is where you specify who should read each document. You can enter users or groups. When groups are entered, each group member receives a separate task, so you can track each employee individually.</li>
<li>Create an <em>Associated Tasks</em> list. This is a special list type we supply, similar to the built-in <em>Tasks </em>list, the only difference being that it posseses additional support for the<em> Associated Tasks Field</em>.</li>
<li>Create an <em>Associated Tasks</em> column in the document library pointing to the newly created <em>Tasks </em>field. Specify in the column properties that you want tasks to be auto-generated, what <em>User/Group</em> column to use and what <em>Title </em>to give to the generated tasks</li>
</ul>
<img width="379" src="../../Blog/PostImages/Vladi%20Gubler/atf-readsign.png" height="426" style="border: 1px solid black;" alt="Read & Sign" />
<ul>
<li>You are done! Now when you upload a document, you specify the <em>Signers </em>group. Once ready to be distributed, you just click the <em>Generate</em> button and a separate related task is generated for each user in the group.</li>
<li>You can track the related tasks from within the document properties or from views.</li>
<li>You can even use the SharePoint Designer workflow actions and conditions to integrate the <em>Read & Sign</em> into a bigger lifecycle process.</li>
</ul>
<h2>Related Documents</h2>
You can enable attachments in any SharePoint list. But can you do the following with attachments?
<ul>
<li>Manage <strong>document properties</strong></li>
<li>Check-in/check-out and manage <strong>versions</strong></li>
<li>Assign <strong>different </strong>related documents to different parts of the list item</li>
<li>View related documents in parent list <strong>views</strong></li>
<li>Add attachments to other <strong>documents</strong></li>
</ul>
<em>Associated Tasks Field</em> allows you to do all that and more, turning your attachments into full-fledged managed documents. And these documents can have their own attachments as well!
<h2>To sum things up</h2>
<em>Associated Tasks Field</em> is a powerful tool to turn your SharePoint into a platform for building real life business applications using nothing but your browser! <a href="../../product.aspx?id=AssociatedTasks">Download a trial version</a> to test drive it yourself. And take a look at our <strong><a href="../../bundle.aspx?id=UltimateForms">Ultimate Forms</a></strong> bundle that includes 8 of our top sellers you can use to build all the business processes you need, just take a look at our demo applications (on the bundle page, at the bottom)!Take control of your SharePoint alertsVladi Gubler3/16/2011 4:26:25 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=31Hi,
Alerts have been one of SharePoint's main selling points since the very beginning (at least since 2003 version, I don't even remember what 2001 had). Whenever you wanted updates to be pushed directly to your mailbox, you used alerts. No need to manually check for updates, let the server do it for you.
SharePoint itself evolved greatly over the years, but the basic functionality of the alerts has not changed that much. Anyone familiar with the process in SharePoint 2003, will feel right at home even in 2010. Just click on Alert Me, fill out a couple of settings (all optional) and you are good to go.
Alas it is not that simple in the real life. Adding an alert on a frequently updated list (or document library) will often cause a tsunami of useless notifications with just a few of them really of any value. The alert mechanism does not allow you to specify conditions what and when to send, so every item will generate an alert. Moreover, the email that you get is a generic one, you still need to go to the item itself to find out what you are supposed to do with it.
These are just some of the problems we considered when we began to design <a href="../../product.aspx?id=SmartAlertPro" target="_blank">Smart Alert Pro</a>. our alternative alert mechanism. We wanted to create a tool that would allow you to get just the alerts you want, in the format you want. The following brief list describes some of the main advantages of <em>Smart Alert Pro</em>:
<ul>
<li><span style="text-decoration: underline;">Send alerts to whoever you need</span> - SharePoint users/groups, distribution lists, users in User/Group column, addresses in Contacts list and manually typed addresses. You also get To, CC and BCC recipients and even a "Do not send" list.</li>
<li><span style="text-decoration: underline;">Manage you alerts</span> - you can manage all your alerts from a single location (and an administrator can manage alerts for everyone).</li>
<li><span style="text-decoration: underline;">Interface integration</span> - unlike some of the competing products, <em>Smart Alert Pro </em>is not a web part, it integrates into the user interface, just like the built-in alerts mechanism.</li>
<li><span style="text-decoration: underline;">Alerts and notifications</span> - you can send alerts when items are added, updated and deleted, but also according to a Date column, before or after the entered date, with repeating.</li>
<li><span style="text-decoration: underline;">Conditions</span> - you can define conditions when to send the alert. You can use a combination of any column values. Check out the great integration with <a href="../../product.aspx?id=SmartListPro" target="_blank">Smart List Pro</a>, where you can hook up tab conditions. This way you can send alerts when the item moves from one stage in the process to another.</li>
<li><span style="text-decoration: underline;">Templates</span> - you can define rich message templates to use in your alerts. You can include any column value as well as links to item/list/site. You can even ask for the document (or list attachments) to be sent as attachments. Templates are saved and may be reused. Administrators can create templates to be used by all users. So next time you send an alert, you can include in it explanations, instructions or even images, exactly as you want them.</li>
</ul>
As you can see, we offer you a wealth of features that will make the alerts so much more meaningful. Now you can make sure you will only get the alerts you truely want. <a href="../../product.aspx?id=SmartAlertPro">Get your free 30-day trial version now</a>!Student Scholarship Process using Ultimate FormsShani Gubler3/13/2011 5:34:15 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=30<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Hello All,</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">As you already know we offer a bundle of 7 of our forms –oriented products, the <strong><a href="../../bundle.aspx?id=UltimateForms" target="_blank">Ultimate Forms Bundle</a></strong>. With <strong><a href="../../bundle.aspx?id=UltimateForms" target="_blank">Ultimate Forms Bundle</a></strong> you can create an easy and simple data-driven system directly from your browser, which can be ideal for various business processes.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">The<strong> <a href="../../bundle.aspx?id=UltimateForms" target="_blank">Ultimate Forms Bundle</a></strong> is your solution if you need to implement workflows involving stages, conditions and various users.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Here is an example of a Scholarship Application process ,which has three main funds: Assistance Fund, Excellence Fund and Glenn Miller Fund. Each fund has its own criteria and scholarship amount, when the Assistance Fund gives the biggest scholarship, then Excellence Fund and finally Glenn Miller Fund. Assistance Fund approves scholarships based on socioeconomic background, Excellence Fund based on academic achievements and Glenn Miller based on academic major.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">First the students fill out the scholarship application form with all personal and academic details as follows:</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Application Form:</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><img title="Application Form" width="576" src="../../Blog/PostImages/Shani%20Gubler/SS3applicationform.png" height="269" style="border: black 1px solid;" alt="Application Form" /></span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> </span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Then, the form application transferred to one of the three funds.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Our data-driven system works in a way that the student will receive the most valuable scholarship, for example if he/she doesn't meet Assistance Fund criteria and has high grades he/she will be transferred directly to Excellence Fund for approval, if he/she is rejected by an Excellence Fund and his/her major is Art, Music or Animation his/her application will submitted to Glenn Miller Fund.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">How we did it ? Here is the answer: We build a list containing all the necessary columns for all stages of the process. With the help of <strong><a href="../../product.aspx?id=SmartListPro" target="_blank">Smart List Pro</a> </strong>we divided all the list columns into five different tabs: Application Form, three Funds and Supervisor Approval, for each tab we defined criteria to approve/reject the application.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Application Form Tab:</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> </span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><img title="Application Form tab" width="548" src="../../Blog/PostImages/Shani%20Gubler/SS3tabapplicationform.png" height="401" alt="Application Form tab" /></span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Now we need to add conditions that will control the visibility and editability of the tab.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Application Form Conditions: </span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><img title="Tab Application Cond" width="567" src="../../Blog/PostImages/Shani%20Gubler/SStabapplicationcond.png" height="135" alt="Tab Application Cond" /> </span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Assistance Tab:</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><img title="Assistance Tab" width="530" src="../../Blog/PostImages/Shani%20Gubler/SStabassistance.png" height="372" alt="Assistance Tab" /> </span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> Assistance Tab Conditions:</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> <img title="Assistance Tab Conditions" width="528" src="../../Blog/PostImages/Shani%20Gubler/SStabassistancecond.png" height="173" alt="Assistance Tab Conditions" /></span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> Now you ask me how does it work?</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Here is an application of Caroll who is eligible for both Assistance and Excellence Funds, with the help of <strong><a href="../../product.aspx?id=SmartListPro" target="_blank">Smart List Pro</a> </strong>product her application is first routed to the higher scholarship approval, if it's approved, the process ends, if not, her request is submitted automatically to Excellence Fund. Each manager can edit the request only within his/her responsibility.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><img title="Caroll2" width="474" src="../../Blog/PostImages/Shani%20Gubler/Caroll2.png" height="333" alt="Caroll2" /></span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">To streamline the procedure we used our <strong><a href="../../product.aspx?id=SignatureField" target="_blank">Electronic Signature Field</a></strong>, the manager signs in the proper fields using user name and password and ends the process, as simple as this.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Furthermore, using <strong><a href="../../product.aspx?id=SmartIDPro">Smart ID Pro </a></strong>product we manage the master status of applications submitted to us. Whenever the apllication is updated <strong><a href="../../product.aspx?id=SmartIDPro" target="_blank">Smart ID Pro </a></strong>changes the status due to its conditions.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Smart ID Pro Conditions:</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><img title="Smart ID Pro Cond" width="585" src="../../Blog/PostImages/Shani%20Gubler/SSsmartidprocond.png" height="194" alt="Smart ID Pro Cond" /></span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> </span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">So after the form application has been filled out and routed to a certain fund according to its criteria and been approved/rejected by a relevant manager, we want to see a list of all our scholarship applications, only not just to see them but identify them by their approval status, for this particular task we used our <a href="../../product.aspx?id=ColorField" target="_blank"><strong>Color Choice Field</strong></a> and its looks like this:</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">View enhanced by <a href="../../product.aspx?id=ColorField" target="_blank"><strong>Color Choice Field</strong></a>:</span>
<p style="line-height: 150%;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> <img title="View Color" width="621" src="../../Blog/PostImages/Shani%20Gubler/SSviewclolor2.png" height="274" alt="View Color" /></span>
<span style="font-family: arial,helvetica,sans-serif; color: #38393a; font-size: small;">In order to create this view you need to include the <a href="../../product.aspx?id=ColorField" target="_blank"><strong>Color Choice Field</strong> </a>column in a view. We added the status column with three different values: Approved (red), Rejected (green) and In Process (white).</span>
<p style="line-height: 150%;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong><span style="color: #38393a;"><a href="../../product.aspx?id=ColorField" target="_blank">Color Choice Field:</a></span></strong></span>
<p style="line-height: 150%;"><span style="font-family: arial,helvetica,sans-serif; color: #38393a; font-size: small;"><img title="Color Field" width="367" src="../../Blog/PostImages/Shani%20Gubler/colorfieldsett.png" height="382" alt="Color Field" /></span>
<p style="line-height: 150%;"><span style="font-family: arial,helvetica,sans-serif; color: #38393a; font-size: small;">As you can see we manage to create a pretty complex process using just our browser. </span>
<p style="line-height: 150%;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Our <strong><a href="../../bundle.aspx?id=UltimateForms" target="_blank">Ultimate Forms Bundle</a> </strong>provides you the means to do the hard work in a simple and fluent way.</span>Copy SharePoint items with Item Copier FieldVladi Gubler3/10/2011 2:09:15 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=29Hi,
How many times did you need to create a SharePoint list item or document that was almost identical to an existing item/document and you had to copy everything manually? Wouldn't it be great to create a copy with a click of a button and just make small changes to it?<br /><br />Now you can! Introducing<em> <a href="../../product.aspx?id=ItemCopierField" target="_blank">Infowise Item Copier Field</a></em>, a custom field that can do all that. It copies items, documents, attachments, event item-level security, and all that with a touch of a button!
Look how easy it is:
<ul>
<li>Download and install the product. You can get it <a href="../../product.aspx?id=ItemCopierField" target="_blank">here</a>.</li>
<li>Add the field as you would any regular field. Name it "<em>Copy</em>" (or anything else, it does not matter)</li>
<li>Now specify which fields you want to copy, you can copy all or some of the fields.<br /><br /><img title="Item Copier Field settings" width="160" src="../../Blog/PostImages/Vladi%20Gubler/ICF%20settings.png" height="469" style="border: black 1px solid;" alt="Item Copier Field settings" /></li>
<li>Specify whether or not you want the item level security settings copied as well.</li>
<li>This is it, now open the list view.</li>
<li>You will see the new field displayed there.<br /><br />?<img title="Item Copier Field in view" width="490" src="../../Blog/PostImages/Vladi%20Gubler/ICF%20column.png" height="226" style="border: black 1px solid;" alt="Item Copier Field in view" /></li>
<li>Click on it and you will be transferred to the <em>New</em> form with all the columns already filled out, all you need is to click OK.<br /><br /><img title="Item Copier Field new form" width="599" src="../../Blog/PostImages/Vladi%20Gubler/ICF%20new%20item.png" height="595" style="border: black 1px solid;" alt="Item Copier Field new form" /></li>
<li>If your item contains attachments, there is an additional step of specifying which attachments, if any, you want copied with the item.</li>
</ul>
This is it, an easy-to-use solution for the everyday need.
Cheers!
SPSecurityTrimmedControl or "How to hide stuff from people"Genady Vaisman3/9/2011 10:26:56 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=28<span style="font-family: arial,helvetica,sans-serif; font-size: small;">This convenient control has been around since the old good MOSS days, but was never given enough attention..</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">So i would like to explain what it is good for and how you can use it in your site.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">SPSecurityTrimmedControl will basically hide all its content from users that won't meet a given security definition.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Unlike the previous solutions (style.display='none'...), the content will be hidden on the server side!</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">For Example: recently i was asked to show the top ribbon only to users with Manage rights.</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">What i did, was:</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Open the site's Master Page in SharePoint Designer</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Find a div with id= s4-ribbonrow, its content is actually the top ribbon</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Wrap this div with a <span style="font-family: arial,helvetica,sans-serif; font-size: small;">SPSecurityTrimmedControl, like this:</span></span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> </span></span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><img title="spsecuritytrimmedcontrol" width="671" src="../../Blog/PostImages/Genady%20Vaisman/spsecuritytrimmedcontrol.png" height="235" alt="spsecuritytrimmedcontrol" /></span></span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Useful attributes of the control:</span></span>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong>PermissionContext</strong> - against which user permissions will be tested</span></span></li>
</ul>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> (possible values: CurrentSite, CurrentList, CurrentFolder, CurrentItem or RootSite)</span>
<ul>
<li><strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">PemissionMode - </span></span></strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">does the user have to meet all role definitions or just one of them</span></span></li>
</ul>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> (possible values: All or Any)</span>
<ul>
<li><strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">PermissionsString - </span></span></strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">what permissions does the user need to see the content - can enter some values separated by comma</span></span></li>
</ul>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> (possible values are from the enumeration SPBasePermissions:</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">EmptyMask,ViewListItems,AddListItems,EditListItems,DeleteListItems,ApproveItems,OpenItems,ViewVersions,</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> DeleteVersions,CancelCheckout,ManagePersonalViews,ManageLists,ViewFormPages,Open,ViewPages,</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> AddAndCustomizePages, ApplyThemeAndBorder,ApplyStyleSheets,ViewUsageData,CreateSSCSite,</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> ManageSubwebs,CreateGroups,</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> ManagePermissions,BrowseDirectories,BrowseUserInfo,AddDelPrivateWebParts,</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> UpdatePersonalWebParts,ManageWeb,</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> UseClientIntegration,UseRemoteAPIs,ManageAlerts,CreateAlerts,</span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"> EditMyUserInfo,EnumeratePermissions,FullMask)</span>
<ul>
<li><strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">AuthenticationRestrictions - </span></span></strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">allows to differ between authenticated and anonymous users</span></span></li>
</ul>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> (possible values: AllUsers, <span class="selflink">AuthenticatedUsersOnly, <span class="selflink">AnonymousUsersOnly)</span></span></span></span></span>
<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">save, check-in, publish and there you go!</span></span>Building a business process in SharePointVladi Gubler3/8/2011 11:10:28 PMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=27Hello,
<hr />
<strong>UPDATE</strong><span>: you can now download a self-installing site template </span><a href="http://www.infowisesolutions.com/Template.aspx?ID=VehicleReservation">here</a><span>. The package will install trial versions of all the required Infowise products automatically.</span>
<span> </span>
<hr />
If you keep track of our product line, you are probably aware that we offer a bundle of 7 of our forms-oriented products, called the <a href="../../bundle.aspx?id=UltimateForms"><strong>Ultimate Forms </strong>bundle</a>. The bundle allows you to build complex business processes in SharePoint using just your browser. Such features as different tabs for different stages of the process, simplified data entry and relationships between items, to name but a few, turn any regular SharePoint list into a <span style="text-decoration: underline;">complete data management system</span>.
We've created a business process for demo purposes, called <em>Vehicle Reservation Form</em>. In this process, an employee can reserve one of the company cars, the manager approves the reservation and the vehicle supervisor handles the order, you can even administer special requests within you reservation, such as preparing a gift basket for an important guest or supplying winter tires. <strong>Watch </strong>the video now to see how it works:
<object width="480" height="390" data="http://www.youtube.com/v/lVKK1h-7mvY?fs=1&hl=ru_RU&rel=0" type="application/x-shockwave-flash">
<param name="data" value="http://www.youtube.com/v/lVKK1h-7mvY?fs=1&hl=ru_RU&rel=0" />
<param name="allowFullScreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="src" value="http://www.youtube.com/v/lVKK1h-7mvY?fs=1&hl=ru_RU&rel=0" />
<param name="allowfullscreen" value="true" />
</object>
As you can see, this is a pretty powerful capability, but it took us just over an hour to build, using nothing but the browser!
Let me show you how it is done:
<ol>
<li>Install the products included in the <strong>Ultimate Forms </strong>bundle. You can get a full-featured 30-day trial version <a title="here" href="../../dl.aspx?id=UltimateForms&bundle=true" target="_blank">here</a></li>
<li>Create a blank site.</li>
<li>Create a custom list named <em>Vehicle Types</em>. It will hold the types of vehicles you can order. You do not need to add any columns, the built-in <em>Title </em>column will suffice.<br /><br /><img style="border: black 1px solid;" title="Vehicle Types list" src="../../Blog/PostImages/Vladi%20Gubler/VR-Vehicle%20Types%20List.png" alt="Vehicle Types list" width="363" height="315" /></li>
<li>Create a custom list named <em>Vehicles</em>. Add a lookup column, named <em>Class</em>, pointing to the <em>Vehicle Types </em>list. You can use the regular lookup field or our <em>Connected Field</em>, which will give you the option of adding new vehicle types directly from the <em>Vehicles </em>list, in the midst of adding a new vehicle. This is really cool, as if your vehicle type is not in the list, you do not need to leave your entry form in the middle to go and add it to another list.<br /><br /><img style="border: black 1px solid;" title="Vehicles list" src="../../Blog/PostImages/Vladi%20Gubler/VR-Vehicles%20List.png" alt="Vehicles list" /></li>
<li>Create a list for reservation-related tasks. We will use the <em>Associated Tasks </em>template and call the list <em>Tasks</em>, no need to change any of the default settings.</li>
<li>Create a document library for related documents. Call it <em>Attachments</em>, there is no need to change any of the settings.</li>
<li>Now we come to the main list of our system, the one that will store and manage the reservations themselves. Create a custom list called <em>Vehicle Reservations</em>.</li>
<li>These are the columns we need to include in the list. I will explain the settings for our custom fields in more details.<br /><br /><img style="border: black 1px solid;" title="Vehicle Reservations list columns" src="../../Blog/PostImages/Vladi%20Gubler/VR-Reservation%20Columns.png" alt="Vehicle Reservations list columns" /></li>
<li><em>Vehicle </em>column is a <em><a href="../../product.aspx?id=ConnectedFields2007">Connected Field </a></em>master-detail column, meaning that the vehicle list in the column is filtered according to the value selected in the <em>Vehicle Type</em> column. First we tell the column what list to take the values from and which column to show, so far it is almost identical to how the regular lookup field works. Now we tell it to link to parent, specifying the parent lookup column in the current list AND the link column, which is the lookup column in the <em>Vehicles </em>list pointing to the <em>Vehicle Types </em>list, we called it <em>Class</em>, remember?<br /><br /><img style="border: black 1px solid;" title="Connected Field settings" src="../../Blog/PostImages/Vladi%20Gubler/VR-CF%20Settings.png" alt="Connected Field settings" /></li>
<li>Our <em>Pick-up Location </em>column is also responsible for color-coding the reservations, we are using our <em><a href="../../product.aspx?id=ColorField">Color Choice Field</a></em>, which is similar to the regular choice field, but also allows you to specify a different color for each option. When included in a view, it paints the whole row in the color of the selected value.<br /><br /><img style="border: black 1px solid;" title="Color Choice settings" src="../../Blog/PostImages/Vladi%20Gubler/VR-Color%20Settings.png" alt="Color Choice settings" /></li>
<li>We permit the employee to enter multiple tasks for each reservation for including and tracking specific requests pertaining to that reservation. We are using our <em><a href="../../product.aspx?id=AssociatedTasks">Associated Tasks Field</a></em>, which can create and manage related tasks. We've already created a list for storing the associated tasks. Now we add the field that will allow users to enter and track the tasks in the context of a reservation. Once we've added the field, most of the settings are defined automatically, once you select <em>Tasks </em>as your source list. <span style="text-decoration: underline;">Note</span> that the <em>Source view </em>selector specifies what view to use as a template for the view in the field, that is how you specify which fields to show.<br /><br /><img style="border: black 1px solid;" title="Associated Tasks Field settings" src="../../Blog/PostImages/Vladi%20Gubler/VR-ATF%20Settings.png" alt="Associated Tasks Field settings" /></li>
<li>The employee's manager is filled out automatically using the information managed in SharePoint profiles. Using our <em><a href="../../product.aspx?id=UserProperty">User Property Field</a></em>, we can defined what information to extract from the current user's profile and what template to use for presenting that information. You can use multiple profile properties and regular text. In our sample form we simply include the <em>Manager </em>property. Find the property in the right box, select it and click on <em>Add to formula</em>.<br /><br /><img style="border: black 1px solid;" title="User Property Field settings" src="../../Blog/PostImages/Vladi%20Gubler/VR-UPF%20Settings.png" alt="User Property Field settings" /></li>
<li>We need to make sure manager and supervisor approvals are not being changed by someone else. Obviously we can enable versionning on the list and see who made the change in the version history. But this is not convenient and prone to errors. Our <em><a href="../../product.aspx?id=SignatureField">Electronic Signature Field </a></em>allows you to instantly know when field values have been changed, as the signature will be broken and you will see it clearly in views. Just add the signature field and specify which columns are to be signed. The manager will then sign the values using username/password combination, ensuring that any change will be noticable straight away.<br /><br /><img style="border: black 1px solid;" title="Signature Field settings" src="../../Blog/PostImages/Vladi%20Gubler/VR-Signature%20Settings.png" alt="Signature Field settings" /></li>
<li><em><a href="../../product.aspx?id=DocumentLinkField">Document Link Field</a> </em>allows you to attach documents to a specific location in the form, as a field. The documents themselves are stored in a regular document library, so you can use check-out, versionning and approval.<br /><br /><img style="border: black 1px solid;" title="Document Link Field settings" src="../../Blog/PostImages/Vladi%20Gubler/VR-DLF%20Settings.png" alt="Document Link Field settings" /></li>
<li>The Supervisor needs to allocate a car for the reservation. The cars are managed in an SQL database, external to SharePoint. Using our <em>LOB <a href="../../product.aspx?id=LOBItemLinkField">Item Link Field</a></em><a href="../../product.aspx?id=LOBItemLinkField"> </a>we can pull the car information from the database by specifying the key, which in our case is the license plate number. We need to provide the field with a connection string for MS SQL or Oracle database. Then we can select from a list of tables and views. After that we can specify which fields we want to use and even give user-friendly names to some or all of the fields. Finally, we can either select the key value or type it in, depending on the requirements.<br /><br /><img style="border: black 1px solid;" title="LOB settings" src="../../Blog/PostImages/Vladi%20Gubler/VR-LOB%20Settings.png" alt="LOB settings" /></li>
<li>We are now done defining the columns. Next we want to give each reservation a unique identifier using our <em><a href="../../product.aspx?id=SmartIDPro">Smart ID Pro</a></em>. The identifier will be generated automatically and entered into the <em>Title </em>field of the item. We start by selecting the <em>Title </em>field, then we specify the ID template using text, column value placeholders and functions. As the same ID type is applied to all items, we do not need conditions. Our template takes in vehicle make, pick-up date and a numerator (for uniqueness).<br /><br /><img style="border: black 1px solid;" title="Smart ID Pro settings" src="../../Blog/PostImages/Vladi%20Gubler/VR-SIP%20settings.png" alt="Smart ID Pro settings" /></li>
<li>Now we define the different tabs that will make up the process. <em><a href="../../product.aspx?id=SmartListPro">Smart List Pro </a></em>is the product responsible for that. Generally, each stage of the process gets a separate tab and we define permissions based on those tabs, which is the fastest way. First, we enter the tab name, then we select the columns and their order. After that we need to specify the permissions. For instance, the first, <em>Reservation Details</em>, tab, is in <em>Write </em>mode in the <em>New </em>form (when the item is created) and in <em>Read </em>mode in all the other forms, so that the reservation details are not changed by the manager and supervisor.<br /><br /><img style="border: black 1px solid;" title="Tab settings" src="../../Blog/PostImages/Vladi%20Gubler/VR-tab%20settings.png" alt="Tab settings" /></li>
<li>We also want to add a validation rule, stating the Hondas cannot be picked up at the airport. That is pretty straightforward. The rule is that the <em>Pick-up location </em>does not equal <em>Airport </em>under the condition that the <em>Vehicle </em>contains the word <em>Honda</em>. Otherwise, an error message is shown and the form cannot be saved.<br /><br /><img style="border: black 1px solid;" title="Validation settings" src="../../Blog/PostImages/Vladi%20Gubler/VR-validation%20settings.png" alt="Validation settings" /></li>
<li>The last thing we want to do is to add some view permissions, so that each person is automatically shown his or her own default view, while other, restricted, views are hidden. First we create a view for each stage, filtering out items currently not at that stage. After that, we specify which users, depending on their role in the process, see which view.<br /><br /><img style="border: black 1px solid;" title="View settings" src="../../Blog/PostImages/Vladi%20Gubler/VR-view%20settings.png" alt="View settings" /></li>
</ol>
This is basically it, the process is ready for testing. We used no custom development, we did not even open up SharePoint Designer. The whole thing can be done in both 2007 and 2010 version, using the same tools. One last thing you might want to do is to define a dashboard as the system's Welcome page, using OOTB list view web parts. Isn't it really easy and fun? <img title="Cool" src="../../resources/tinymce/plugins/emotions/img/smiley-cool.gif" border="0" alt="Cool" /><br /><br /><a title="See enlarged" onclick="window.open('http://infowisesolutions.com/Blog/PostImages/Vladi%20Gubler/VR-dashboard.png','','width=1120,height=510,left='+(screen.availWidth/2-560)+',top='+(screen.availHeight/2-255)+'');return false;" href="../../Blog/PostImages/Vladi%20Gubler/VR-dashboard.png" target="_blank"><img style="border: black 1px solid;" title="Dashboard" src="../../Blog/PostImages/Vladi%20Gubler/VR-dashboard2.png" alt="Dashboard" width="557" height="251" /></a>
See you next time!SPGridView with SPDataSource in SharePoint 2010 Wiki pagesVladi Gubler2/24/2011 12:21:45 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=26Hello,
Just a quick post about an annoying issue we had to tackle recently.<br />We needed to build a simple web part to show some data from a list with filtering and paging. As this was a SharePoint 2010 project only, we chose to use the new Visual Web Part (which is basically a user control loaded inside a web part, we used to do that in 2007 as well, just did not call it a visual web part, but who cares?<img title="Wink" border="0" src="../../resources/tinymce/plugins/emotions/img/smiley-wink.gif" alt="Wink" />)<br /><br />Visual web parts allow you to move much of the logic into the markup of the ASCX file, which means you can use drag and drop techniques for placing controls and other cool features we are all familiar with from the world of web site design.
In this case all we needed were a SPDataSource control, which provides us with the data from a SharePoint list, and SPGridView, which renders the data on a page, complete with SharePoint native CSS classes and general look and feel. All in all, a quick 5 minute job, no thrills. The problems started when we tried to enable filtering: it just would not work, the context menu would be stuck in "Loading" and nothing. After hitting the head against the wall, trying all kinds of workarounds, converting the whole thing into a regular web part, replacing the SPDataSource with ObjectDataSource, there was no progress! The whole thing took more than a day and still nothing.
Finally, a bright idea - put the web part on another page, the first time it was a rich text control on a Wiki page, but now a regular web part page with regular web part zones. And, voila! Everything working straight away, no coding required! The wiki page (or the rich text control specifically) probably has some included JS that interferes with the SPGridView and breaks the whole filtering AJAX infrastructure. It's a shame that Microsoft did not find out about it in their QA tests, but it happens to the best of us.<img title="Embarassed" border="0" src="../../resources/tinymce/plugins/emotions/img/smiley-embarassed.gif" alt="Embarassed" />
So, if for some reason, you run into this issue, now you have a clue what is going on.San Francisco SharePoint Conference impressionsVladi Gubler2/9/2011 8:37:57 PMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=25Hi all,
The <a href="http://www.sptechcon.com/SanFrancisco2011/">SF SPTechCon 2011 </a>just ended today. We were an exhibitor there, set up a booth and showed off our product demos. This was a very good experience for us, we had quite a few nice chats with potential clients and business partners. The people we talked to were generally very excited to see what our products can do and how useful they can be for them to implement various business processes using just their browser. We mainly focused on the <a href="../../bundle.aspx?id=UltimateForms">Ultimate Forms bundle</a>, showing the <a href="http://www.youtube.com/watch_popup?v=lVKK1h-7mvY&vq=large">Vehicle Reservation </a>form demo, a full-featured business process we built in some hour and a half. The new <a href="../../product.aspx?id=SmartAlertPro">Smart Alert Pro </a>alert management add-on also got some really enthusiastic responses. It was very interesting to hear what people thought about our products and what additional features they would want to see in them in the future,
A big thank you to all of you who visited us at the booth, hope to see you again at the next conference!
<img title="SPTechCon 2011 San Francisco" width="465" src="../../Blog/PostImages/Vladi%20Gubler/sptechcon.jpg" height="228" alt="SPTechCon 2011 San Francisco" />SharePoint Column PermissionsVladi Gubler1/27/2011 11:39:31 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=24Hi,
Column permissions (or field security or whatever you like to call it) is a very common need, especially as more and more companies chose to computerize their paper forms using SharePoint. A simple vacation request form that needs to be approved by the manager has two kinds of columns - thse filled out by the employee (start date and end dates come to mind :)) and those filled out by the manager (approve/deny). How can that be accomplished?
Well, the short answer is - it cannot be done in SharePoint out of the box. The product does not have any support for column security, all columns always have the same permissions as the item which values they represent. So we need to look at the alternatives.
<ul>
<li><span style="text-decoration: underline;">InfoPath forms</span> - SharePoint and InfoPath have been best friends for a long time, there was a forms library in SharePoint 2003 and the situation has been improving ever since. In InfoPath you can implements rules and condition and create just the user interface you want using a simple designer. Using Forms Services you can fill out the resulting form using nothing but your browser. But there is also a dark side:
<ul>
<li>InfoPath forms are not lists, although you can promote certain value to become columns in the form library, but this is not 100% list-based solution, for once, you cannot use custom fields</li>
<li>Creating InfoPath forms requires some learning curve, nothing major, but enough to deter users</li>
<li>It looks different, it behaves differently, it just does not fit in the familiar look and feel of your system</li>
</ul>
</li>
<li>"<span style="text-decoration: underline;">Secure" custom field type</span> - some sort of custom field that encrypts its value and only shows it to users with sufficient permissions. This type of solution is offerred by a few companies out there and does seem to provide an interesting approach. But there are some drawbacks as well:
<ul>
<li>This is a custom field, although it is possible to make it behave similarly to the built-in fields, such as text, number or date, it can never replace all field types out there, certainly not the custom one you might need in your solution.</li>
<li>The value is stored can only be used by the field itself, if you want to get rid of the field type, you need to re-enter all the data. All you wanted was a SharePoint list, not a catholic wedding :)</li>
</ul>
</li>
<li><span style="text-decoration: underline;">Custom iterator </span>- is the component that controls which columns will appear on the new/edit/view form of any SharePoint list or document library. The SharePoint infrastructure allows the built-in component to be replaced by custom one, that can show or hide columns based on custom logic, such as column permissions. Due to the fact that only the background component is replaced, your user interface remains unchanged and you can use any field type, built-in or custom. This approach is not without sin:
<ul>
<li>These are display restrictions, the underlying data does not have any security layer applyed to it. So the columns can still be shown using standard views and datasheet view. This is actually not a big deal, as you can control which columns appear in views and you can block the datasheet view. But in most cases even these measures are unnecessary as all you want to do is basically prevent a regular user from accidently editing the fields they are not supposed to edit, the changes can always be tracked by turning on the auditing feature when needed.</li>
</ul>
</li>
</ul>
In my personal opinion, the third option is by far the most convenient and useful, despite the drawbacks. It allows you to create advanced, multistage electronic forms with minimal effort and easy-to-use, consistent interface. This is why we based out Smart List Pro (<a href="../../product.aspx?id=SmartListPro">http://www.infowisesolutions.com/product.aspx?id=SmartListPro</a>) product around this appoach, adding such cool features as tabs and tab permissions, view permissions, custom validation and more. We even have a feature-limited free version, Smart List Lite, for you to enjoy. Get it free or install the 30-day trial version, this is really cool and helpful.
That's all for now :)Scroll any list in 5 minutesGenady Vaisman1/24/2011 11:47:12 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=23<span style="font-size: small; font-family: arial,helvetica,sans-serif;">I think that anyone, who has ever worked with SharePoint products, has heard the request: </span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">".. and on the main page.. i want you to add the news list .. and .. yeah make it scroll through the topics.."</span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">so you go and search the web.. maybe they have one on codeplex (maybe they really do.. <img title="Embarassed" border="0" src="../../resources/tinymce/plugins/emotions/img/smiley-embarassed.gif" alt="Embarassed" /> ), </span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">maybe some products company has a sale or even better, they're giving it free <img title="Money mouth" border="0" src="../../resources/tinymce/plugins/emotions/img/smiley-money-mouth.gif" alt="Money mouth" /> ???<img title="Money mouth" border="0" src="../../resources/tinymce/plugins/emotions/img/smiley-money-mouth.gif" alt="Money mouth" /></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">what i am gonna show you now is how to do it yourself.</span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">All you need is a SharePoint web site, a list and a SharePoint designer!</span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">the process is really quick and simple - believe me, it will take much less time to do it, then it took me to prep it :)</span>
<span style="text-decoration: underline;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;"><strong>Step One</strong>: take a list, any list (in fact any web part or other content)</span></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;"><img title="links list" width="576" src="../../Blog/PostImages/Genady%20Vaisman/marquee%20(3).png" height="183" alt="links list" /></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;"><span style="text-decoration: underline;"><strong>Step Two: </strong>prepare a site page on which you'll have the list displayed</span></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">press "Edit Page" > "Insert" > "Existing List" and select your list</span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;"><img title="site page" width="600" src="../../Blog/PostImages/Genady%20Vaisman/marquee%20(4).png" height="297" alt="site page" />?</span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;"><strong><span style="text-decoration: underline;">Step Three: </span></strong><span style="text-decoration: underline;">Adjust list web part appearence</span></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">select wanted view, disable list toolbar, remove web part frame.. </span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">prepare the list visual appearence</span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;"><strong><span style="text-decoration: underline;"><img title="list properties" width="600" src="../../Blog/PostImages/Genady%20Vaisman/marquee%20(5).png" height="350" alt="list properties" /></span></strong></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;"><strong><span style="text-decoration: underline;">Step Four: </span></strong><span style="text-decoration: underline;">Open SharePoint Designer</span></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">open the site, which contains your page and edit it</span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;"><img title="edit page" width="600" src="../../Blog/PostImages/Genady%20Vaisman/marquee%20(6).png" height="400" alt="edit page" /></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;"><strong><span style="text-decoration: underline;">Step Five: </span></strong><span style="text-decoration: underline;">Find list's web part in code view</span></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;"><span style="text-decoration: underline;"><img title="code view" width="600" src="../../Blog/PostImages/Genady%20Vaisman/marquee%20(7).png" height="400" alt="code view" /></span></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;"><strong><span style="text-decoration: underline;">Step Six: </span></strong><span style="text-decoration: underline;">Add marquee object</span></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">in a brief: html marquee object let's you scroll it's content on a web page.</span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">Main attributes:</span>
<ul>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Direction: direction in which the content should scroll</span></li>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Behavior: how the text scrolls inside the marquee</span></li>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Scroll Amount: number of pixels to scroll each time</span></li>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Scroll Delay:speed of the scrolling</span></li>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Full spec on marquee object: <a href="http://msdn.microsoft.com/en-us/library/ms535851(VS.85).aspx">http://msdn.microsoft.com/en-us/library/ms535851(VS.85).aspx</a></span></li>
</ul>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">now you need to "wrap" the list's web part with the marquee element, so:</span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;"><span style="text-decoration: underline;"> </span></span><img title="marquee" width="600" src="../../Blog/PostImages/Genady%20Vaisman/marquee.png" height="288" alt="marquee" />
<span style="font-size: small; font-family: arial,helvetica,sans-serif;"> save the page and you're all done, let it scroll !!!</span>
<span style="font-size: x-small; font-family: Arial;"> </span>
<span style="font-size: x-small; font-family: Arial;"><img title="scrolling" width="612" src="../../Blog/PostImages/Genady%20Vaisman/marquee%20(2).png" height="469" alt="scrolling" /></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">it's hard to show scrolling content with an image - so you'll just have to take my word on it <img title="Wink" border="0" src="../../resources/tinymce/plugins/emotions/img/smiley-wink.gif" alt="Wink" /></span>
<span style="font-size: small; font-family: arial,helvetica,sans-serif;">Enjoy</span>How to create a wiki indexVladi Gubler1/23/2011 10:35:54 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=22Hi all,
In this post I am going to demonstrate how you can create wiki index pages without any code.
SharePoint Wiki site template (both 2007 and 2010) is great for creating large information depositories with multiple interconnected articles. The very nature of the wiki in general emphasises the ability to easily browse the related article using the hyperlinks embedded into the body of the current article. But what if you needed just to browse the list of articles present in the system? Wiki is not hierarchic in nature and does not possess a table of content nor an index of terms.
But we can create one easily. We will use a regular view, which, depending on the parameter passed using the query string (the characters in the page's address, after the question mark :)). We will pass the first letter and see all the articles beginning with that letter.
First we need the index itself, looking something like this:<br /><img title="Wiki Index" width="359" src="../../Blog/PostImages/Vladi%20Gubler/wikiIndex.png" height="116" alt="" />
This is basically a Content Editor web part, created in a browser. Each letter/digit is a link to our view page, in the format <a href="https://connect.deltagalil.com/f5-w-687474703a2f2f706f7274616c2e636f72702e64656c746167616c696c2e636f6d$$/wiki/Wiki%20Pages/forms/index.aspx?fl=A">https://[server]/Wiki Pages/forms/index.aspx?fl=A</a><br />where index.aspx is our view page and the "fl" (first letter) parameter takes the value of the clicked letter or digit.<br />Where do we put this web part? On the default page of course. In my case I completely customized this article and created a welcome page of sorts, including the index, a search box, Featured Article web part and even article categories. Under SharePoint 2007 you need to edit the page in SharePoint Designer to add web part zone, in 2010 it is not needed as the wiki text editor now allows web parts as well as text (which is really cool BTW).
Now it is time to create our view. Go to View All Site Content and locate the wiki library. Open it and create a new view, name it Index (the name does not matter obviously, just as long as the URL is the same as the one that we used in the Index web part).
The view should only include the Name (linked to document) field. Sort the items by Name.<br />Now we need to make the view aware of the query string parameter we pass.
<ul>
<li>Open the view page in SharePoint Designer</li>
<li>Convert the view web part into XSLT</li>
<li>Delete all unnecessary elements, such as column title</li>
<li>Add new Query String parameter names "fl"</li>
</ul>
<img width="514" src="../../Blog/PostImages/Vladi%20Gubler/wikiAddParameter.png" height="348" alt="" />
<ul>
<li>Add new filter: Name column start with the value of the "fl" parameter.</li>
</ul>
<img width="447" src="../../Blog/PostImages/Vladi%20Gubler/wikiFilter.png" height="271" alt="" />
<ul>
<li>This is it, now you will see all the articles starting with the letter you clicked on</li>
</ul>
An ID for every itemVladi Gubler12/12/2010 5:09:54 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=21Hi everyone,
A quick intro for a new, exciting product of ours -<a href="../../product.aspx?id=SmartIDPro"> Infowise Smart ID Pro</a>, a comprehensive solution for generating sophisticated item ID's.
If you work at a law firm, a bank, an insurance company or any other place that needs to store valuable documents (or other data) in the right order, label or category and reuse them again for reference, meeting, important calculation, signature check or just as a quick reminder for yourself on the topic, you will definitely find<strong> </strong>our new release -<a href="../../product.aspx?id=SmartIDPro"> Infowise Smart ID Pro</a> -<strong> </strong>not just useful but a life saver!
Just think for a moment what you usually do when you work on a document. To create ID number you need to look for and find the related previous documents, determine to what category the document belongs (and what if the specific document you are working on belongs to a brand new category?), out of all the information in and about the document you need to create a unique ID. The point is that each step you need to browse the existing data in your library or list and improvise each time something doesn’t fit. I am sure you do not need us to tell you how tedious this can be! That why you need Infowise Smart ID Pro.
<a href="../../product.aspx?id=SmartIDPro">Smart ID Pro</a><strong> </strong>is the answer we developed based on the feedback and needs of our customers and it is designed to simplify the ID assignment process. <a href="../../product.aspx?id=SmartIDPro">Smart ID Pro </a>fits naturally into the work environment and enables much more options and possibilities your users are bound to find helpful.
<span style="text-decoration: underline;">So what can you do with <a href="../../product.aspx?id=SmartIDPro">Smart ID Pro</a>?</span>
<ul>
<li>Assign ID's to documents or list item based on rules and conditions. Define multiple rules and the most suitable will be applied automatically.</li>
<li>Any column value, function or character can be used as a part of the ID pattern.</li>
<li>Any text column can be used to store the ID's.</li>
<li>Can only assign an ID after the manager's approval? Apply patterns according to any condition you choose.</li>
<li>Prevent editing of the ID column</li>
<li>ID rules are saved as part of list template, so you can create new lists from saved list templates with the ID setting already baked in.</li>
<li>Works in both document libraries and lists.</li>
<li>Works in both SharePoint 2007 and 2010, WSS/Foundation or server.</li>
</ul>Form filling made easy with Infowise User Property FieldVladi Gubler12/12/2010 4:43:58 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=20Hi all,
Today we are going to talk about a new product of ours - User Property Field.
Many forms you fill out daily contain fields where you need to enter your details, your position, your phone number or your bosses name. Back in the Dark Ages there was no choice but to dip your pen in ink and scribe away. Today, in the Digital Age, why would we go back to such an anachronism? In the corporate environment your computer knows everything about you and it will be happy to fill this data in for you if you just let it. Think of the time you could save by just not re-typing the same info over and over again!.
With<a href="../../product.aspx?id=UserProperty"> Infowise User Property Field</a>, your SharePoint server can fetch and insert data about you, using Active Directory and/or SharePoint Profiles repository. Every time you start filling out a form, your data will already be inside!
<a href="../../product.aspx?id=UserProperty">Infowise User Property Field</a> lets enter simply properties , or create templates made up from multiple property values and text. You can even let your users edit the automatic value if you want. Just another time-saver from Infowise!Holidays Special Offer for Ultimate FormsVladi Gubler11/30/2010 8:55:50 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=19<span style="font-size: x-small;"><img width="664" src="../../Blog/PostImages/Vladi%20Gubler/2010HolidaySmall.jpg" height="165" alt="Holidays special offer" /></span>
<span>Hello everyone!</span>
The holidays are coming and we are pleased to come up with a special offer – buy <a href="../../bundle.aspx?id=UltimateForms">Ultimate Forms </a>bundle and get one of our bestsellers, <strong>for free</strong>!
<ul>
<li><a href="../../product.aspx?id=Newsletter">Newsletter </a>- Automate e-mail newsletters</li>
<li><a href="../../product.aspx?id=EventCalendar">Event Calendar Plus</a> - Advanced color-coded calendar viewer</li>
<li><a href="../../product.aspx?id=ListSearch">List Search</a> - Advanced search capability of list content</li>
</ul>
Catch this holidays special and get a benefit worth up to <strong>599$</strong>. Contact our sales team at – <a href="mailto:sales@infowisesolutions.com">sales@infowisesolutions.com</a> or give us a call +1-416-572-7755 to take advantage of this offer.
<em>Terms and conditions:</em>
<ul>
<li><em>This special offer is valid for customers who purchased <a href="../../bundle.aspx?id=UltimateForms">Ultimate Forms </a>between the following dates: 12/01/2010 to 12/31/2010.</em></li>
<li><em>This special offer includes the same licensing level of the selected free product as the licensing level of the ultimate forms bundle purchased, e.g. – when purchasing <a href="../../bundle.aspx?id=UltimateForms">Ultimate Forms </a>with <strong>Annual Support </strong>you'll get one of on the free products suggested with <strong>Annual Support</strong>.</em></li>
<li><em>This special offer includes the same number of licenses equivalent to the Ultimate Forms licenses purchased, e.g. - when purchasing two <a href="../../bundle.aspx?id=UltimateForms">Ultimate Forms</a> with <strong>Annual Support </strong>licenses you'll get two licenses of the selected free products with <strong>Annual Support</strong>.</em></li>
</ul>
Happy holidays from Infowise!
Read & Sign documents in SharePoint made easyVladi Gubler11/29/2010 3:17:44 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=18Hi,
Today I'm going to show you how to create a fully functioning regulatory Read & Sign system in just a few minutes. <br />Just a few word as a background: various regulatory agencies, such as FDA, require certain documents, say SOP's to be regularly read by employees. The fact that the document has been declared as read by a certain employee needs to be recorded in the system so it can not be refuted.
Many of us have chosen SharePoint as the platform for managing the complete lifecycle of all our document, so it makes sense to have the Read & Sign functionality there as well. Basically, we need to assign a task to each of our employees in the target audience to read and sign the document and we need to be able to track the status of these tasks. And obviously we need to be able to do all that as painlessly as possible. The vanilla SharePoint installation does have a few shortcomings when it comes to these requirements, it is not as easy as it should be to create tasks for multiple users, based on domain groups, or even nested domain groups, and task tracking is also not very intuitive.
This is where we, here at Infowise, can help. Our products work together to create such a system in just a few minutes to give you all the functionality and ease of use you need. So let me show how.<em> (The following is based on SharePoint 2010 UI, but the same exact functionality is there for SharePoint 2007, as with all of our products.)</em>
Take a look at how your system will look like in just 10-15 minutes:
<object width="560" type="application/x-shockwave-flash" data="http://www.youtube.com/v/Qd0CQO26y3g?fs=1&hl=en_US&amp;rel=0" height="349" style="width: 560px; height: 349px;">
<param name="data" value="http://www.youtube.com/v/Qd0CQO26y3g?fs=1&hl=en_US&amp;rel=0" />
<param name="src" value="http://www.youtube.com/v/Qd0CQO26y3g?fs=1&hl=en_US&amp;rel=0" />
</object>
We need the following products - you can download and install them free of charge for a 30-day trial:
<ul>
<li><a title="Associated Tasks Field" href="../../product.aspx?id=AssociatedTasks">Associated Tasks Field </a>- will provide task creation and association with the SOP</li>
<li><a title="Electronic Signature Field" href="../../product.aspx?id=SignatureField">Electronic Signature Field</a> - lets you sign other column values electronically</li>
</ul>
First we need a document library for the SOP's. Just go ahead and create a simple document library, as you usually would. Now we need two new columns in the library (of course, you can also add additional columns for your needs as well). The first column will be of type <em>Person or Group</em>. We will call it <em>Signers</em>, it will accept multiple values and require data entry.
<img width="588" src="../../Blog/PostImages/Vladi%20Gubler/sopdoclibsettings1.png" height="207" style="display: block; margin-left: auto; margin-right: auto;" alt="Signer column added" /><br />For the second column, which will use the <em>Associated Tasks Field</em>, we will need a target list for the tasks. You can either use the provided Associated Tasks list type or create a regular Tasks lists. In the latter case you need to work just a bit harder but you get the added bonus of email notifications when tasks are assigned. So we will go for the second options.
<ul>
<li>Create a <em>Tasks </em>list and name it <em>Signing Tasks</em></li>
<em> </em>
<li>In the list settings go to<em> Advanced settings</em></li>
<li>Allow management of content types</li>
</ul>
<img width="316" src="../../Blog/PostImages/Vladi%20Gubler/soptasksettings.png" height="116" style="display: block; margin-left: auto; margin-right: auto;" alt="Content type management allowed" />
<ul>
<li style="text-align: left;">Add <em>Associated Task</em> content type located under <em>Infowise</em></li>
</ul>
<em><img width="585" src="../../Blog/PostImages/Vladi%20Gubler/sopcontenttype.png" height="304" style="display: block; margin-left: auto; margin-right: auto;" alt="Add content type" /></em>
<ul>
<li>Remove <em>Task </em>and <em>Summary Task </em>content types</li>
<li>Click on the <em>Associated Task</em> content type to edit</li>
<li>Hide the columns we will not need, such as <em>priority</em>, <em>status</em>, <em>% complete </em>and <em>start date</em>. To hide, click on the column name and choose Hide.</li>
<li>Add yes/no column named <em>I confirm reading</em></li>
<li>Add <em>Signature </em>field to the list (also name it Signature), select the<em> I confirm reading </em>column to sign.</li>
<li>Modify the default view to contain <em>Title</em>, <em>Assigned To, Due Date, I confirm reading</em> and <em>Signature columns</em></li>
</ul>
Now we can add the Associated Tasks column to our SOP document library.
<ul>
<li>On the ribbon click on <em>Create Column</em></li>
<em> </em>
<li>Enter <em>Read & Sign </em>as the new column's title</li>
<li>Choose <em>Associated tasks</em> column type</li>
<li>Uncheck the <em>Add to default view </em>checkbox</li>
<li>Specifiy the number of items per page (e.g. 10)</li>
<li>Check <em>Generate tasks automat</em>ically checkbox</li>
<li>Enter task title - <span style="text-decoration: underline;">Please read and sign</span></li>
</ul>
<img width="493" src="../../Blog/PostImages/Vladi%20Gubler/sopATFsettings.png" height="483" style="display: block; margin-left: auto; margin-right: auto;" alt="Configure Associated Tasks Field" />
<ul>
<li>Save the column.</li>
</ul>
You are now ready to test your SOP system. Upload a document and enter users and/or groups into the Signers column. These are the people who are to sign the document in the future. Save the document properties. You can now edit/review/approve the document in the usual fashion. When it is time for the read & sign procedure, just edit the document properties and click on Generate tasks.
<img width="637" src="../../Blog/PostImages/Vladi%20Gubler/sopBefore.png" height="453" alt="Edit document properties" />
A task named Please read and sign will be created for each of the users in the Signers column, domain groups, if present, will be expanded as well.
<img width="641" src="../../Blog/PostImages/Vladi%20Gubler/sopBeforeSign.png" height="592" alt="Tasks created" />
Each user will receive an email informing him of the task. The user can open the context menu of the task directly from the display/edit form of the document or from the <em>Signing Tasks </em>list. The user edits the task by checking the<em> I confirm reading </em>checkbox and signing with username and password.
<img width="638" src="../../Blog/PostImages/Vladi%20Gubler/sopTask.png" height="581" alt="Task signing" />
The manager can view the signing progress by viewing the document's properties at any time.
<img width="639" src="../../Blog/PostImages/Vladi%20Gubler/sopAfterSign.png" height="649" alt="Task status" />
As you can see, this is really easy and straightforward. You can use any combination of our products to create sophisticated business processes in SharePoint in minutes, so why not give it a try?<img title="Smile" border="0" src="../../resources/tinymce/plugins/emotions/img/smiley-smile.gif" alt="Smile" />Cross site collection navigation made easyVladi Gubler10/4/2010 8:36:00 PMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=17Hi All,
If you have a large SharePoint installation, you've probably already divided your data into several site collections and placed them in separate databases. The reason to do that are the built-in limitations of SharePoint, perfomance and backup restore functionality. Basically, it is really not a good idea to keep it all in one giant site collection as bad things will start happening pretty soon <img title="Undecided" border="0" src="../../resources/tinymce/plugins/emotions/img/smiley-undecided.gif" alt="Undecided" />
But how you handle your navigation menu now? When everything was under a single site collection, SharePoint took care of it, whenever you added a site, it would appear under the navigation menu, no questions asked. Now it's a bit trickier, SharePoint has no native support for cross-site collection navigation (which sucks). You have a few options though:
<ol>
<li>Create links between site collections manually - a pain in the lower rear end</li>
<li>Create a custom web part to handle the navigation - crude, unnatural, prone to errors</li>
<li>Use an XML navigation provider - not the most convenient solution, plus you need to update this file on all front-ends each time you add a site collection</li>
<li>Missing some other similar bad solution...</li>
</ol>
All of these solution have major flaws and none of them provides a real security trimming for the menu, where each user only see what is permitted, which is very important for keeping everything safe and secure.
Well, there is a better way, our product, <strong>ECS </strong>(<a href="../../product.aspx?id=ECS">http://infowisesolutions.com/product.aspx?id=ECS</a>) does just that and more. It seamlessly integrates into your web site to provide true security-trimmed cross site collection navigation, it will handle creation of new site collections and will even allow you to inherit permissions between different site collections. Your end users will be able to add new site collection without even knowing it! And obviously the product works with built-in cache, so the performance is excellent. You can even include site collection from a different farm altogether (the functionality is a bit reduced, but still you get the security trimming!)
Try it out now, the installation is a simple NEXT-NEXT-NEXT and you just activate the feature on a web application of your choosing. Not happy? Uninstall the product and everything gets back to normal immediately.
<strong>UPDATE</strong>: watch the demo now!
<object width="640" type="application/x-shockwave-flash" data="http://www.youtube.com/v/SEewuE1AcGk?fs=1&hl=en_US&rel=0&hd=1" height="390">
<param name="data" value="http://www.youtube.com/v/SEewuE1AcGk?fs=1&hl=en_US&rel=0&hd=1" />
<param name="allowFullScreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="src" value="http://www.youtube.com/v/SEewuE1AcGk?fs=1&hl=en_US&rel=0&hd=1" />
<param name="allowfullscreen" value="true" />
</object>
Custom Field View Rendering in SharePoint 2010genady vaisman10/3/2010 9:36:08 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=16<div><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-size: small;">Hello,</span></span></div>
<div><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">ever tried to use custom field properties in rendering field content on a list view in sharepoint 2010? </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">doesn't work.. </span></span></div>
<div><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-size: small;">so you google it (naturally) - </span></span></div>
<div><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-size: small;">you hear about a magic way to deliver - CAMLRendering=TRUE, but hey - that doesn't work !!!</span></span></div>
<div><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-size: small;">you go to msdn and find out that PropertySchema and RenderPattern are obsolete, but what is the way to do it in 2010, no one tells..</span></span></div>
<div><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-size: small;">after a day of searching and wondering, i want to share my findings with you.</span></span></div>
<div><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-size: small;">first of all, i still don't have a clue about how it suppose to be done in SharePoint 2010, but here's a working solution that will get you through meanwhile:</span></span></div>
<div><span style="text-decoration: underline;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-size: small;">1. fldtypes_MyField.xml:</span></span></span></div>
<div><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-size: small;">leave it as it was (or should be) for Moss 2007 - with rendering pattern and property schema, etc..</span></span></div>
<div><span style="font-size: small;"><strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;">important:</span></strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> add the following properties AllowBaseTypeRendering & CAMLRendering !</span></span></div>
<div><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-size: small;">for example:</span></span></div>
<div><FieldTypes><br /> <FieldType><br /> <Field Name="TypeName"><strong>MyField</strong></Field><br /> <Field Name="ParentType">Text</Field><br /> <Field Name="TypeDisplayName">TypeDisplayName;</Field><br /> <Field Name="TypeShortDescription">TypeDisplayName;</Field><br /> <Field Name="UserCreatable">TRUE</Field><br /> <Field Name="Sortable">TRUE</Field><br /> <Field Name="Filterable">TRUE</Field><br /> <Field Name="FieldTypeClass">MyField, MyField, Version=1.0.0.0, Culture=neutral, PublicKeyToken=...</Field><br /> <Field Name="FieldEditorUserControl">/_controltemplates/MyFieldFieldEditor.ascx</Field><br /> <Field Name="<strong>AllowBaseTypeRendering</strong>">TRUE</Field><br /> <Field Name="<strong>CAMLRendering</strong>">TRUE</Field><br /> <PropertySchema><br /> <Fields><br /> <Field Hidden="TRUE" Name="<strong>MyCustomProperty</strong>" DisplayName="MyCustomProperty" Type="Text"><br /> </Field><br /> </Fields><br /> <Fields></Fields><br /> </PropertySchema><br /> <RenderPattern Name="HeaderPattern"><br /> <HTML><br /> <![CDATA[<br /> <script type="text/javascript" language="javascript" src="/_layouts/<strong>MyFieldHelper</strong>.js"></script><br /> ]]><br /> </HTML><br /> <!-- copy the rest of the header pattern of base field --> <br /> </RenderPattern></div>
<div><RenderPattern Name="DisplayPattern"> <br /> <Switch><br /> <Expr><br /> <Property Select="<strong>MyCustomProperty</strong>" HTMLEncode="TRUE"/><br /> </Expr><br /> <Case Value=""><br /> <Column HTMLEncode="TRUE"/><br /> </Case><br /> <Default><br /> <Property Select="<strong>MyCustomProperty</strong>" HTMLEncode="TRUE"/><br /> <!-- call js function inside HTML element, like in Moss --><br /> </Default><br /> </Switch> <br /> <br /> </RenderPattern><br /> </FieldType><br /></FieldTypes></div>
<div></div>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">
<div></div>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"> <span style="font-family: arial,helvetica,sans-serif; color: #000000; font-size: small;"><span style="text-decoration: underline;"><span style="font-size: small;">2. fldtypes_MyField.xsl:</span></span></span></span></span></div>
</span></span></span>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="font-family: arial,helvetica,sans-serif; color: #000000; font-size: small;"><span style="font-size: small;">this one is new for SharePoint 2010, and it goes to Templates\Layouts\Xsl</span></span></span></span></span></span></span></div>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="font-family: arial,helvetica,sans-serif; color: #000000; font-size: small;"> </span></span></span></span></span></span></span></span></span><span style="font-family: Arial; color: #000000; font-size: x-small;">in order to your js calls will be evaluated properly, you need these templates:</span></div>
</span></span></span>
<div></div>
<div><span style="color: #0000ff; font-size: x-small;"></span>
<div></div>
<div><span style="color: #000000;"> </span></div>
</div>
<div><span style="color: #000000;"><span style="font-size: x-small;"><span style="font-size: x-small;"><span style="font-size: x-small;"><span style="font-family: Arial; font-size: x-small;"> </span></span></span></span> <xsl:stylesheet xmlns:x="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"</span><br /><span style="color: #000000;"> xmlns:d="<a href="http://schemas.microsoft.com/sharepoint/dsp">http://schemas.microsoft.com/sharepoint/dsp</a>"</span><br /><span style="color: #000000;"> version="1.0"</span><br /><span style="color: #000000;"> exclude-result-prefixes="xsl msxsl ddwrt"</span><br /><span style="color: #000000;"> xmlns:ddwrt="<a href="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">http://schemas.microsoft.com/WebParts/v2/DataView/runtime</a>"</span><br /><span style="color: #000000;"> xmlns:asp="<a href="http://schemas.microsoft.com/ASPNET/20">http://schemas.microsoft.com/ASPNET/20</a>"</span><br /><span style="color: #000000;"> xmlns:__designer="<a href="http://schemas.microsoft.com/WebParts/v2/DataView/designer">http://schemas.microsoft.com/WebParts/v2/DataView/designer</a>"</span><br /><span style="color: #000000;"> xmlns:xsl="<a href="http://www.w3.org/1999/XSL/Transform">http://www.w3.org/1999/XSL/Transform</a>"</span><br /><span style="color: #000000;"> xmlns:msxsl="urn:schemas-microsoft-com:xslt"</span><br /><span style="color: #000000;"> xmlns:SharePoint="Microsoft.SharePoint.WebControls"</span><br /><span style="color: #000000;"> xmlns:ddwrt2="urn:frontpage:internal"></span></div>
<div><span style="color: #000000;"> <xsl:template match="FieldRef[@FieldType=<strong>'MyField'</strong>]" mode="header"></span><br /><span style="color: #000000;"> <th class="ms-vh2" nowrap="nowrap" scope="col" onmouseover="OnChildColumn(this)"></span><br /><span style="color: #000000;"> <strong><script language="Javascript" type="text/javascript" src="/_layouts/MyFieldHelper.js" /></strong></span><br /><span style="color: #000000;"> <xsl:call-template name="dvt_headerfield"></span><br /><span style="color: #000000;"> <xsl:with-param name="fieldname"></span><br /><span style="color: #000000;"> <xsl:value-of select="@Name" /></span><br /><span style="color: #000000;"> </xsl:with-param></span><br /><span style="color: #000000;"> <xsl:with-param name="fieldtitle"></span><br /><span style="color: #000000;"> <xsl:value-of select="@DisplayName" /></span><br /><span style="color: #000000;"> </xsl:with-param></span><br /><span style="color: #000000;"> <xsl:with-param name="displayname"></span><br /><span style="color: #000000;"> <xsl:value-of select="@DisplayName" /></span><br /><span style="color: #000000;"> </xsl:with-param></span><br /><span style="color: #000000;"> <xsl:with-param name="fieldtype"></span><br /><span style="color: #000000;"> <xsl:value-of select="@FieldType" /></span><br /><span style="color: #000000;"> </xsl:with-param></span><br /><span style="color: #000000;"> </xsl:call-template></span><br /><span style="color: #000000;"> </th></span><br /><span style="color: #000000;"> </xsl:template></span></div>
<div><span style="color: #000000;"> <xsl:template match="FieldRef[@FieldType=<strong>'MyField'</strong>]" mode="body"></span><br /><span style="color: #000000;"> <xsl:param name="thisNode" select="." /></span><br /><span style="color: #000000;"> <xsl:value-of select="<a href="mailto:$thisNode/@*[name()=current()/@Name">$thisNode/@*[name()=current()/@Name</a>]" disable-output-escaping="yes" /></span><br /><span style="color: #000000;"> </xsl:template></span><br /><span style="color: #000000;"></xsl:stylesheet></span></div>
<div><span style="font-family: arial,helvetica,sans-serif; color: #000000; font-size: small;"><span style="font-size: small;">all other stuff - MyField, MyFieldEditor, Field Rendering Control, custom property storage work around all remains the same.</span></span></div>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="font-family: arial,helvetica,sans-serif; color: #000000; font-size: small;"><span style="font-size: small;">?</span></span></span></span></span></div>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">?</span></span></span><span style="font-family: Arial; color: #000000; font-size: x-small;">happy coding,</span></div>
<div><span style="font-family: Arial;"><span style="font-size: x-small;"><span style="color: #000000;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">?</span></span></span>Genady</span></span></span></div>
<div></div>
</div>Error using Exchange WebDAV from codeVladi Gubler10/3/2010 4:29:55 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=15Hi,
Adding Exchange interoperability to our Event Calendar web part we stumbled upon a weird errors, everything was written correctly, it was supposed to work, it worked in the samples we used as a basis for our own code, but still, no go. Took me a while to realize that the order of adding the header to the web request was important, you need to specify the header just after creating the WebRequest object, and then it's going to work smoothly."Helpful" SharePoint DesignerVladi Gubler9/7/2010 1:27:00 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=14Came across an annoying feature of SPD - being helpful when you do not need that. While making one of our products, namely Voting field, work for a customer in a DataView, I needed to re-create the HTML rendered by the control using XSL. One of the elements we require is a div, whose ID we send to a JS function for client side rendering. SPD just kept adding {generate-id()} tag to the end of the ID property, which of course would mess up the JS. Solved it rather simply, added my own static variable {$MyVar} to the end of the ID, it prevented SPD from adding its own. That was annoying...Adding AJAX to SharePoint 2007Vladi Gubler8/4/2010 1:07:04 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=12Hi,
This is a simple guide we wrote on how to add AJAX support to your SharePoint 2007 (or WSS 3.0) installation.<br />You DO NOT need this for SharePoint 2010 as it has it preinstalled.
<a title="http://www.infowisesolutions.com/ajax.aspx" href="../../ajax.aspx">http://www.infowisesolutions.com/ajax.aspx</a>Using electronic signatures in SharePointVladi Gubler7/31/2010 11:26:41 PMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=11Hi,<br />In this post I'm going to go over the feature of our<a title="Electronic Signature field" href="../../product.aspx?id=SignatureField"> Electronic Signature field </a>and how it can help you make your SharePoint-based system become compliant with federal (or other) regulations, such as FDA 21 CFR Part 11.<br /><br />SharePoint is a great tool for managing all kinds of data: documents, business processes, you name it. Coupled with a Single Sign-on, entering data is a breeze, you don't even need to authenticate yourself, your SharePoint automatically recognizes you based on your Windows login information, which is called Windows Integrated Authentication. But what if you are required by regulations to enter username/password combination each time you need to enter data? Of course you can disable Windows Integrated Authentication, but then you will need to enter your password each time you need to check someone's phone number in the SharePoint people search, your users will certainly not like that. And what about the production floor with multiple employees sharing a single PC, do you really expect them to log off/log on each time they want to update a batch status?
This is exactly why we developed our Electronic Signature field. As any other field it can be added to any document library or list and then attached in its settings to some or all of the other fields there.
<img title="Add signature field" width="452" src="../../Blog/PostImages/Vladi%20Gubler/singaturesettings.png" height="339" alt="Add signature field" />
Then you can enter your username and password combination while entering data, the combination will be validated online against the Active Directory and a hashed value of the signed fields, your identity, item version and time of signing will be added to the item.
<img title="Add a signature" width="500" src="../../Blog/PostImages/Vladi%20Gubler/signatureedit.png" height="463" alt="Add a signature" />
You will be able to see the signature in both views and display/edit form and even validate it in real time.
<img title="Signature in list view" width="617" src="../../Blog/PostImages/Vladi%20Gubler/signatureList.png" height="194" alt="Signature in list view" />
If you click on the green mark you can validate the signature in real time by recalculating the hash value and comparing it to the stored one.
<img title="Signature validation" width="577" src="../../Blog/PostImages/Vladi%20Gubler/signatureValidation.png" height="253" alt="Signature validation" />
If one of the signed fields is changed by you or any other user, the signature field (together with the accompanying background event receiver) notices the change and causes the signature to become invalid, unless a new, fresh signature is added. As I mentioned, we have the event reciever running in the background, which catches all updates, even those not made directly using the SharePoint UI, such as updates using web services for those integrated systems you might have.
Try it our now, we have a 30-day fully-functioning version available for download!How to create a business process in minutes with Smart List ProVladi Gubler7/22/2010 3:11:40 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=10I would like to demostrate the ease with which you can build a pretty complex multistage business process using plain old SharePoint together with our own <a title="Smart List Pro" href="../../product.aspx?ID=SmartListPro" target="_blank">Smart List Pro</a>. The process is a software version approval, where a developer submits a new version, the QA authorize it and the IT department approves its installation. Of course, this could be any other process as well, depending on your business needs.
Smart List Pro extends the capabilities of a regular SharePoint list forms, including tabbed interface, permissions on tabs and/or individual columns, advanced validation and much more.<br />We can also use our <em>Electronic Signature </em>field that allows you to electronically sign some or all column values, so that it's plain to see whether the values have been changed since being entered by the responsible party.
The process uses 3 tabs: Dev, QA and IT. When entering a new process application, only the Dev tab is visible. When editing the item, the Dev tab becomes read-only and the QA tab is editable. Once the QA decision is made, the QA tab becomes read-only and the IT tab is editable. Once the IT decision is made, all tabs become read-only.
<img title="Edit form" width="625" src="../../Blog/PostImages/Vladi%20Gubler/SLP4.png" height="397" style="vertical-align: middle;" alt="" />
We start with creating a regular custom list. The following columns need to be added to the list:
<ul>
<li>Product (text, choice or lookup field) - name of the software we want to approve</li>
<li>Version (text) - version number</li>
<li>Dev Team Leader (user) - name of the development team lead</li>
<li>Dev signature (Infowise Signature field, optional) - signs the above column to make sure they have not been altered</li>
<li>QA Approval (choice: n/a, Approved, Rejected, default: n/a) - indicates QA department approval status</li>
<li>QA Approval Date (date) - the date/time when the QA decision was made</li>
<li>QA Comments (multiline text) - general QA comments</li>
<li>QA Team Leader (user) - name of the QA team lead</li>
<li>QA signature (Infowise Signature field, optional) - signs the QA columns to make sure they have not been altered</li>
<li>IT Approval (choice: n/a, Approved, Rejected, default: n/a) - indicates IT department approval status</li>
<li>IT Approval Date (date) - the date/time when the IT decision was made</li>
<li>IT Comments (multiline text) - general IT comments</li>
<li>IT Team Leader (user) - name of the IT team lead</li>
<li>IT Signature (Infowise Signature field, optional) - signs the IT columns to make sure they have not been altered</li>
</ul>
<img title="Form fields" width="406" src="../../Blog/PostImages/Vladi%20Gubler/SLP1.png" height="388" style="vertical-align: middle;" alt="Form fields" />
Once done, you can move to creating the tabs and permission. Make sure <em>Smart List Pro </em>is installed and the feature is activated in the site collection scope. Go to <em>List Settings </em>and click on <em>Tabs and tab permissions</em>, which one of the options <em>Smart List Pro </em>adds.
<ul>
<li>Create 3 tabs by enterin tab names and clicking on Add. The tabs are <em>Dev</em>, <em>QA </em>and <em>IT </em>(the tab names do not matter of course)</li>
<li>Select the <em>Dev </em>tab and assign the following columns to it: <em>Title</em>, <em>Product</em>, <em>Version</em>, <em>Dev Team Leader </em>and <em>Dev Signature </em>(if you choose to use it)</li>
<li>Select the <em>QA </em>tab and assign the following columns to it:<em>QA Approval</em>, <em>QA Approval Date</em>, <em>QA Comments</em>, <em>QA Team Leader </em>and <em>QA Signature </em>(again, if you choose to use it)</li>
<li>Select the <em>IT </em>tab and assign the following columns to it:<em>IT Approval</em>, <em>IT Approval Date</em>, <em>IT Comments</em>, <em>IT Team Leader </em>and <em>IT Signature </em>(again, if you choose to use it)</li>
</ul>
<img title="Tab settings" width="549" src="../../Blog/PostImages/Vladi%20Gubler/SLP2.png" height="406" alt="Tab settings" />
<ul>
<li>Now we handle the permissions:
<ul>
<li>Select the <em>Dev </em>tab, select <em>Write </em>under <em>Permissions </em>and check only the <em>New </em>form, add the rule</li>
<li>Select <em>Read </em>permission and the check <em>Edit </em>and <em>Display </em>forms, add the rule</li>
<li>Select the <em>QA </em>tab, select <em>Deny </em>under <em>Permissions </em>and check only the <em>New </em>form, add the rule</li>
<li>Select <em>Write </em>permission, check the <em>Edit </em>and <em>Display </em>forms and add under conditions that <em>QA Approval </em><strong>equals</strong> to <span style="text-decoration: underline;">n/a</span></li>
<li>Select <em>Read </em>permission, check the <em>Edit </em>and <em>Display </em>forms and add under conditions that <em>QA Approval </em><strong>does not equal </strong>to <span style="text-decoration: underline;">n/a</span></li>
<li>Select the <em>IT </em>tab, select <em>Deny </em>under <em>Permissions </em>and check only the <em>New </em>form, add the rule</li>
<li>Select <em>Write </em>permission, check the Edit and Display forms and add under conditions that<em> QA Approval </em><strong>equals </strong>to <span style="text-decoration: underline;">Approved </span>and <em>IT Approval </em><strong>equals </strong>to <span style="text-decoration: underline;">n/a</span></li>
<li>Select <em>Read </em>permission, check the <em>Edit </em>and <em>Display </em>forms and add under conditions that <em>IT Approval </em><strong>does not equal </strong>to <span style="text-decoration: underline;">n/a</span></li>
</ul>
</li>
</ul>
<img title="Tab permissions" width="549" src="../../Blog/PostImages/Vladi%20Gubler/SLP3.png" height="550" style="vertical-align: middle;" alt="Tab permissions" />
This is it! In <strong>10 minutes </strong>you've got a pretty compex form for one of those ubiquitous business needs, something you would spend days building in ASP.NET or InfoPath. You can obviously expand the form, for instance, including permissions based on user identity, create a workflow in SharePoint Designer to send email to the parties and so on, but the lion's share of work is already done.
Try it out for yourself, just download the trial version of <a title="Smart List Pro" href="../../product.aspx?ID=SmartListPro">Smart List Pro</a> or use our <strong>free </strong>(but limited in the number of rules) version -<a title="Smart List Lite" href="../../product.aspx?ID=SmartListLite"> Smart List Lite</a>
Microsoft DPM - The best backup/restore solution for SharePoint 2010Ethan Bach7/21/2010 12:46:27 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=9We’ve all been in this situation – after a good long SharePoint based portal implementation – we start scratching our head to figure out what's the best way to back up the SharePoint farm and drown in the multitude of options – SharePoint native backup, stsadm or 3<sup>rd</sup> party products like AvePoint or EMC.<br />Now, Microsoft makes our life very easy by announcing Data Protection Manager as the main backup/restore application for SharePoint 2010.<br />Well, you might think that’s just another one of the many methods to protect SharePoint 2010 but DPM hides under its hood some pretty cool features which make it the #1 backup/restore application for SharePoint 2010. Here are some of them:
<ul>
<li><strong>Application Awareness</strong> – it is probably one of the most important features of DPM, DPM is aware that it's backing up SharePoint and not any other solution when backing up SharePoint databases. The meaning of this is that DPM works hand in hand with SharePoint and as the result of that the backed up data is more consistent as DPM makes sure that all the transactions that are occurring during the backup are taken into consideration.</li>
<li><strong>Item Level Recovery</strong> – DPM enables to recover a single object out of a full farm backup of a wide variety of SharePoint objects, such as documents, lists, document libraries, sites and sites collections.</li>
<li><strong>Protects SharePoint Search</strong>. In a large farm the search index can get rather big. In these situations - backing up search is crucial as in a case of disaster it could take very long time, even days, to index the farm again. </li>
<li><strong>Better Performance</strong> – DPM runs a very light agent which almost does not affect the farm production environment, with very low I/O, as it scans memory blocks to track changes in real -time. </li>
<li><strong>Self-Healing Backup Process</strong> – during the backup, if one of the backup objects, such as server or database, goes offline – DPM will proceed with the backup as planned and try to self-heal and add the offline object during the next planned backup.</li>
<li><strong>Reduce Storage Costs</strong> – DPM aims to use disks as the main backup storage and tapes for archiving. It's very understandable as disks are cheaper and more common than tapes and it's very easy and quick to restore data from them.<br />Furthermore, DPM reduces storage costs by minimizing backed up data by backing up only the changed blocks of data, meaning that every backup after the first full backup is approximately 5% (average daily data change on a SharePoint farm) of the whole farm data. That saves about 75% of storage space comparing to differential SharePoint native backup over a one month period.</li>
<li><strong>Search for Content (across Recovery Points)</strong>. DPM enables to search the backed up data. It's very helpful if we want to perform an item level recovery, DPM search makes it very easy to locate an item to recover when needed and the time factor is crucial.</li>
</ul>
DPM is a great SharePoint 2010 backup/restore solution. And the fact it comes from Microsoft is a big advantage over other solutions as it integrates well with SharePoint within the backup/restore processes.<br />It very important to mention that DPM actually is the main Microsoft backup/restore solution for other Microsoft products such as Active Directory, Exchange, SQL, Virtual Server, file shares, System State and more. So it’s a great new backup/restore product family from Microsoft.
For more information – <a href="http://www.microsoft.com/dpm">http://www.microsoft.com/dpm</a><br />Try it! There's also a 180 days evaluation download.System.Security.SecurityException: Access denied when registering SPJobDefinitionVladi Gubler7/20/2010 11:43:42 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=8While testing some of our products on SharePoint 2010 I came across an annoying problem. Some of our products use custom timer jobs, and when trying to register such a job, say using feature receivers, caused a completely unexpected <em>Access denied </em>exception. I tried to run the code with elevated privilegies, no use.
It took me some time, but I finally got it - in SharePoint 2010 you must register the timer jobs only in feature receivers scope to the farm or web application level. Although I can see some logic in it, I still find it extremely annoying that something that used to work smoothly under MOSS would be completely broken under 2010, no matter what the reason is.What’s New in SharePoint 2010 Capacity Planning mor7/19/2010 7:06:39 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=7Originally posted on "<a href="http://www.sharepointjoel.com/">http://www.sharepointjoel.com/</a>"<br /><br />
<div>Whether you are upgrading or deploying a new SharePoint 2010 farm, the capacity boundaries are one of the the most important thing you need to understand to have a successful deployment. <br />When designing a farm, people need to be educated about how best to scale. These links below contain a lot of word docs, essentially you may find it more difficult to find the guidance you’re looking for, but there is actually already way more information published at release than in the earlier version.<br />New TechNet documentation and Whitepapers have just became available:<br />
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=B9091243-0E17-404D-8853-57309F885722&displayLang=en">Capacity management and sizing for SharePoint Server 2010</a> – Kelley Vice (Thanks for gathering this, there’s guidance here that is applicable even to 2007) </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9CF4FA6B-4C9C-4FCA-B9C9-4A4F724DF448&displayLang=en">SharePoint Server 2010 performance and capacity technical case studies</a> (Includes one example of Collab and one of Publishing) </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=FD1EAC86-AD47-4865-9378-80040D08AC55&displayLang=en">SharePoint Server 2010 performance and capacity test results and recommendations</a> (Various documents including: Access Services, Large Lists max performance, Divisional Portal, Infopath, Performance Point, Search, Web Application Services, Web Content Management, Workflow) <br /><br /><br /><br />
<ul>
<li>Designing Large Lists and Maximizing Performance </li>
<li>Estimate performance and capacity requirements for Access Services </li>
<li>Provides guidance on how using Access Services impacts topologies running SharePoint Server 2010. </li>
<li>Capacity Planning and Sizing for SharePoint Server 2010-based Divisional Portal </li>
<li>Provides guidance on performance and capacity planning for a SharePoint 2010 based divisional portal. </li>
<li>Designing Large Lists and Maximizing List Performance </li>
<li>Provides guidance on performance of large document libraries and lists. This document is specific to SharePoint Server 2010, although the throttles and limits that are discussed also apply to Microsoft SharePoint Foundation 2010. </li>
<li>SharePoint Server 2010 Capacity Management for InfoPath Solutions </li>
<li>Provides guidance on the footprint that usage of InfoPath Forms Services has on topologies running SharePoint Server 2010. </li>
<li>Estimate performance and capacity requirements for PerformancePoint Services </li>
<li>Provides guidance on the footprint that usage of PerformancePoint Services has on topologies running SharePoint Server 2010. </li>
<li>Estimate performance and capacity requirements for Search in SharePoint Server 2010 </li>
<li>Provides capacity planning information for different deployments of Search in SharePoint Server 2010, including small, medium, and large farms. </li>
<li>SharePoint Server 2010 Capacity Management for Web Content Management Deployments </li>
<li>Provides guidance on performance and capacity planning for a Web Content Management solution. </li>
<li>Word Automation Services 2010 Capacity Planning Guidance </li>
<li>Provides capacity planning guidance for Word Automation Services in SharePoint Server 2010. </li>
<li>Estimate Performance and Capacity Requirements for Workflow in SharePoint Server 2010 </li>
<li>Provides guidance on the footprint that usage of Workflow has on topologies running SharePoint Server 2010. </li>
</ul>
</li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=990041E5-0A73-4D2F-895D-2232D1A229F5&displayLang=en">Databases That Support SharePoint 2010 Products</a> </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=FD686CBB-8401-4F25-B65E-3CE7AA7DBEAB&displayLang=en">Topologies for SharePoint Server 2010</a> </li>
</ul>
Note: I highly recommend digging into these docs to better understand what these various “limits” are. There is much more information on new types of limits. Essentially there are now boundaries, thresholds, and supported limits. Much of these limits come down to testing. “The capacity planning information in this document provides guidelines for you to use in your planning. It is based on testing performed at Microsoft, on live properties. However, your results are likely to vary based on the equipment you use and the features and functionality you implement for your sites.” My personal recommendation is to be cautious. There are very few of these limits I’d recommend passing or even getting close to passing.<br />I was interested in providing a comparison of how things have changed based on the <a href="http://technet.microsoft.com/en-us/library/cc262787(office.12).aspx">SharePoint 2007 capacity boundaries</a> and <a href="http://technet.microsoft.com/en-us/library/cc262787(office.14).aspx">2010 capacity boundaries</a> document. Here are some of my observations in differences that are worth noting. There is more the same than different when it comes to capacity planning. Don’t throw out all of your knowledge of SharePoint with what you find that’s new. A lot of the best practices are the same. Here’s my list of <a href="http://blogs.msdn.com/joelo/archive/2007/07/09/capacity-planning-key-links-and-info.aspx">SharePoint 2007 key capacity planning blogs and articles</a>.<br /><strong>The biggest key changes…</strong><br />
<table cellspacing="0" cellpadding="2" border="0" style="width: 557px;">
<tbody>
<tr>
<td width="174" valign="top"></td>
<td width="159" valign="top"><strong>SharePoint 2007</strong><br /><strong>(recommended max)</strong></td>
<td width="222" valign="top"><strong>SharePoint 2010</strong><br /><strong>(recommended max)</strong></td>
</tr>
<tr>
<td width="174" valign="top">Items per view</td>
<td width="159" valign="top">2000</td>
<td width="222" valign="top">5000</td>
</tr>
<tr>
<td width="174" valign="top">Documents per library</td>
<td width="159" valign="top">5 million</td>
<td width="222" valign="top">10 million</td>
</tr>
<tr>
<td width="174" valign="top">Database size</td>
<td width="159" valign="top">100GB</td>
<td width="222" valign="top">200GB (up to 1TB for workloads)</td>
</tr>
<tr>
<td width="174" valign="top">Simultaneous Doc Editors</td>
<td width="159" valign="top">1 (no Multi user editing of Word, Excel, PPT)</td>
<td width="222" valign="top">10 (max at 99)</td>
</tr>
<tr>
<td width="174" valign="top">Column</td>
<td width="159" valign="top">2000 per doc lib, 4096 per list with (rowOrdinal)</td>
<td width="222" valign="top">New Row Wrapping (8,000 bytes)</td>
</tr>
<tr>
<td width="174" valign="top">Content Databases per Web App</td>
<td width="159" valign="top">100</td>
<td width="222" valign="top">300</td>
</tr>
<tr>
<td width="174" valign="top">App Pools per web server</td>
<td width="159" valign="top">8</td>
<td width="222" valign="top">10</td>
</tr>
<tr>
<td width="174" valign="top">Indexed (Crawl Count)</td>
<td width="159" valign="top">50 Million items per SSP</td>
<td width="222" valign="top">100 Million per search Application</td>
</tr>
<tr>
<td width="174" valign="top">Site Collections per Web App</td>
<td width="159" valign="top">50,000</td>
<td width="222" valign="top">500,000</td>
</tr>
</tbody>
</table>
<strong>Items per view</strong><br />If there was one thing that was a focus it was list scale. Not only is the list itself much more scalable, and better designed, but also the actual rendering of the lists is more flexible and more manageable. I’ve discussed the list threshold throttling limits where you can control how much is returned in a view. In 2007 we had a recommended limit of 2000. This 2000 number found itself as a key designing principal. Now the default is 5000 and this is as well the recommended max for a view more than doubling the previous limit. I’ve seen examples where this was increased and still the list rendering had much better performance than in 2007. … “Maximum number of list or library items that a database operation, such as a query, can process at one time, outside of the daily time window set by the administrator during which queries are unrestricted.”<br /><strong>Documents per list</strong><br /><br /><strong>Column <span class="goog">Limits</span></strong><br />What seems like a decent investment is row wrapping. SharePoint Server 2010 data is stored in SQL Server tables. To allow for the maximum number of possible columns in a SharePoint list, SharePoint Server will create several rows in the database when data will not fit on a single row. This is called <em>row <span class="goog">wrapping</span></em>. Six rows are recommended as a maximum.<br /><strong>Site Collection Sizing</strong><br />25 to 100GB “A site collection should not exceed 100 GB unless it is the only site collection in the database. Certain site collection actions, such as site collection backup/restore or Move-SPSite, cause large Microsoft SQL Server® operations which can have performance impact or fail if other Site collections are active in the same database.”<br /><strong>Database</strong><br />Published recommendations go from 2007 as 100GB content databases and in SharePoint 2010 looking at 200GB with possibilities of up to 1TB with careful non collaborative workloads like documents and records repositories. “We strongly recommended limiting the size of content databases to 200 GB to help ensure system performance. Content database sizes up to 1 terabyte are supported only for large, single-site repositories and archives with non-collaborative I/O and usage patterns, such as Records Centers.”<br /><strong><span class="goog">Storage</span></strong><br />While structurally the blobs are better managed and more scalable, the fundamental storage story has changed a bit. We had EBS support with SharePoint 2007 SP1, but implementing anything was complex and many cautions against doing anything unless you had support with a vendor and even then, proceed with extreme caution. With SharePoint 2010 and SQL 2008 R2 we have a better story with RBS (Remote Blob Storage) essentially handled transparently by SQL. SharePoint 2010 is happy to have SQL store its blobs on external storage using a provider mechanism.<br /><strong>Databases per Web App & App Pools per Server</strong><br />Knowing people are using 64 bit hardware you’ll see a few recommendations simply based on better scale with SQL and IIS. Examples of this is the numbers of databases per web app and the number of app pools per server which totally depends on the RAM on the box. SharePoint 2010 by default does not use less memory than SharePoint 2007. For example with App Pools, “This limit is dependent largely upon: 1) The amount of RAM allocated to the front end server 2) The workload that the farm is serving – the user base and the usage characteristics (the process of a single highly active application pools can reach 10 GB or more)”<br /><strong>Index Sizing</strong><br />“SharePoint Search supports index partitions, which each contain a subset of the entire search index. The recommended maximum is 10 million items for a given partition. The overall recommended maximum number of items: e.g., people, list items, documents, Web pages, etc., is 100 million.”</div>Deploying Resource files (resx) to the App_GlobalResources folder in a Virtual Directory mor7/19/2010 7:05:25 AMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=6<div id="Blog1" class="widget Blog">
<div class="blog-posts hfeed">
<div class="date"><span style="font-family: Arial; font-size: small;" class="Apple"><span style="font-size: 13px;" class="Apple">Many of us who had to create resource files for a SharePoint application that is meant to be shown in more than one language, had the difficulty of deploying resource files to the virtual directory folder in all the front ends of the SharePoint farm, and had to resolve the issue usually by creating a timer job.</span></span></div>
<div class="date">
<div class="date">
<div class="post">
<div class="post hentry uncustomized-post-template">
<div class="post-body entry-content">
<div><span style="font-family: Arial; font-size: small;" class="Apple"><span style="font-size: 13px;" class="Apple"><br /></span></span></div>
<div><span style="font-family: Arial; font-size: small;" class="Apple"><span style="font-size: 13px;" class="Apple">In SharePoint 2010 we can do this automatically through visual studio.</span></span></div>
<div><span style="font-family: Arial; font-size: small;" class="Apple"><span style="font-size: 13px;" class="Apple"><br /></span></span></div>
<div><span style="font-family: Arial; font-size: small;" class="Apple"><span style="font-size: 13px;" class="Apple">This next post describes how to do that:</span></span></div>
<div><span style="font-family: Arial; font-size: small;" class="Apple"><span style="font-size: 13px;" class="Apple"><span style="font-family: 'Times New Roman'; font-size: medium;" class="Apple"><a href="http://jonlejon.blogspot.com/2010/05/sharepoint-2010-vs-2010-and-deploying.html">http://jonlejon.blogspot.com/2010/05/sharepoint-2010-vs-2010-and-deploying.html</a></span></span></span></div>
<div><span style="font-family: Arial; font-size: small;" class="Apple"><span style="font-size: 13px;" class="Apple"><br /></span></span></div>
<div><span style="font-family: Arial; font-size: small;" class="Apple"><span style="font-size: 13px;" class="Apple">Hope this helps someone :0)</span></span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>Welcome to our first blog post!Vladi7/18/2010 12:03:34 PMhttp://www.infowisesolutions.com/blog/Comments.aspx?ArticleId=5After entertaining the idea of putting up our own blog, we finally did it! We now have our own blogging machine :)<br />The blog will cover our ideas, experiences and insight into the world of SharePoint. We will share out revelations and frustrations, talk about our products (of course <img title="Cool" border="0" src="../../resources/tinymce/plugins/emotions/img/smiley-cool.gif" alt="Cool" />) and try to share some knowledge with fellow SharePointers.
Come back when we have some new posts ready, which will be very soon, this is a promise!