| Lori 的个人资料See The Point日志列表 | 帮助 |
|
|
8月17日 See the Point Has MovedThe See the Point blog has moved. All archived posts will remain on this site, but are also duplicated on the new site. The reason for the delay in posting anything on this site has been the development and branding of the new site… Wait for it….
Http://www.pointgowin.com/seethepoint.
Please update your bookmarks. The See the Point blog can be subscribed using an RSS feed here: or These feeds include the older posts on this site that have also been replicated on the new site! 5月3日 Shameless plugs for SharePoint InfoSo yes, this is totally an advertisement for the best information I have been able to put my hands on recently about SharePoint. First up, Dux Raymond Sy has a book SharePoint for Project Management that I have recently begun reading. I am not by any means a project manager, but this is definitely some good stuff. It should be on the required reading list for all Project Managers! I was able to meet Dux at SharePoint Saturday in Atlanta, and he was nice enough to sign my copy. You can learn more about Dux through his blog: http://meetdux.com and on twitter: http://twitter.com/meetdux. Next, Tiffany Songvilay’s book So That’s How! 2007 Microsoft Office System: Timesavers, Breakthroughs, & Everyday Genius is a treasure trove of tips and tricks! I have referred several friends to this book, just to help them wade through the thousands of emails that we receive on a daily basis. Tiffany has a fun writing style that may have you singing 80’s tunes while reading! All of her tips and tricks can be implemented easily and with only a little effort from the end user. It really will make their lives easier! Tiffany’s blog is: http://volitionservices.com/ooe/default.aspx and follow her on twitter: http://twitter.com/tsongvilay1. The next two books I have just received and are next on my reading list. I am very excited about both of them. I WON them! Yes, total excitement upon winning books about technology! I won Professional Microsoft Office SharePoint Designer 2007 by Woodrow W. Windischman, Bryan Phillips, and Asif Rehmani at SharePoint Saturday. I have read a few blogs from Woody Windischman and have gotten to know him on twitter and am definitely looking forward to reading this book. I have been using SharePoint Designer for a couple of years (all self-taught) so I know that this will probably open up some more cool ideas for me. Read Woody’s blog: http://thesanitypoint.com/default.aspx and follow on twitter: http://twitter.com/woodywindy. My most recent win was from watching Todd Klindt’s netcast. Todd held a little contest and I was lucky enough to win a copy of SharePoint 2007 Disaster Recovery Guide by John Ferringer and Sean McDonough. I haven’t been anywhere that seemed to think DR for SharePoint was a priority and although I knew it was and screamed for a plan, I wasn’t the squeakiest wheel. However, I think that this will help me make my case, and ensure that DR plans are sound. I am looking forward to reading it! John Ferringer’s blog: http://sharepointblogs.com/ForTheUser/default.aspx and on twitter: http://twitter.com/ferringer. Sean McDonough on twitter: http://twitter.com/spmcdonough. Oh, and you can also follow Todd Klindt on twitter: http://twitter.com/toddklindt. There are so many other great books out there, I know, I have MANY of them. These are just the most recent additions to my collection and I thought I would share my thoughts. Now if only I could talk them into giving me some sort of commission... 4月24日 SharePoint on the GoMy friend Laura, who is completely to blame for my SharePoint addiction and I have all of these conversations all of the time about the cool things we are doing with SharePoint and InfoPath. On our recent trip to SharePoint Saturday in Atlanta, we decided to video a few of these conversations. You can see those conversations here: http://spinsiders.com/laurar/webcasts/. You may also view them on http://www.endusersharepoint.com. Hope you watch and enjoy! 4月20日 SharePoint Saturday AtlantaI had the privilege of attending SharePoint Saturday Atlanta on April 18th and live blogging the event. There was a little competition. The St. Louis MOSS Camp was also live blogging the event as well, and a little friendly rivalry broke out between the blogging. It was a fun event and there are some great notes from both events. If you want to view them both, you can do so here: EndUserSharePoint.com. If that is too much, you can view just the SharePoint Saturday Atlanta blogging below. 4月11日 The Rank and File"Hierarchy works well in a stable environment." - Mary Douglas
I haven't met a business process yet that doesn't involve some sort of hierarchy. Most of the ones I am friendly with involve some sort of approval hierarchy. Chances are your organization (like mine) has a different one for each process, department, or location. Some are maintained and integrated with Active Directory, some are so specialized, they can't be integrated and therefore maintenance is not automatic. Since employees come and go, get promoted, demoted, transferred, the hierarchy must be maintained easily, and unless your human resources department designates an FTE to monitor and maintain the changes, you have to figure out a solution. Enter the SharePoint list and an InfoPath form.
For this example, we will create a simple list, but you can create more complex ones as needed.
Create a list with the following columns and types:
Location - Single Line of Text
Approver 1 - Person or group (Person only, do not allow multiple selections)
Approver 2 - Person or group (Person only, do not allow multiple selections)
Create a few items.
Restrict all users to read only access and only have a specific group of people with contribute or full control permissions. Set these users up in a SharePoint group, you will use this group later.
In order to allow all users the ability to update the hierarchy, create a form in InfoPath. Ensure you put in a data connection in the form to the approval hierarchy list.
At minimum, include the following fields:
Location being updated (Drop-Down List Box using the data connection to look up the locations from your list)
Approver being updated (Drop-Down List Box using Approver 1 or Approver 2 as your choices)
Contact Selector (You can see how to add and configure the contact selector here)
I also added fields for contact information and a reason for the hierarchy change, to ensure that the changes were legitimate changes. Add a submit button to allow users to submit the form to a form library. Publish your form to the form library in the same site as your SharePoint List; ensure you promote all of the field properties into the library so that you can create a workflow using this data. Set the form library to require content approval, set the group you designated earlier as approvers for this library and allow all others to contribute forms. Customizing permission levels is your option, as is setting the library to open the form in the browser only.
Open SharePoint Designer and create a workflow to start when a new item is created in the form library.
For the first step, notify the group designated as approvers of the new submission and provide a link to the form as well as a link to approve or reject the form.
Pause until the value of the Approval Status changes.
Second step, set condition that if the form is approved to change the item in the approval list that matches the location selected in the form and the approver column.
Here is the catch, you have to use the AccountId field from the Contact Selector as the new value to update a column of the Person or Group type otherwise, the data will not update.
Now your approval heirarchy list can be maintained by users who do not have direct access to the approval heirarchy. You also have all of the data about why a change was made as well as who requested it and the approval process for audit purposes.
Tips:
* Be sure you have completed the steps to allow you to run a declarative workflow. You can find those steps here: http://blogs.technet.com/victorbutuza/default.aspx. If this is not done, you will get an error updating the list with Access Denied.
* Log to history regularly during your workflow for troubleshooting.
3月12日 Don't Hate, AggregateMOSS 2007 has this cool little web part: Site Aggregator. Most have seen it on My Sites out of the box. It displays relevant documents and tasks for you, the user, across the sites where you are a member. There are several web parts that are used only on My Sites; however, Site Aggregator is one of the few that can also be used in other sites. The Site Aggregator is the simplest answer to the constant question: “How can I display content from different site collections in another?” It allows you to pull in this content with no code, and the security that is applied to the item is not affected. 1. Add the Site Aggregator to your page. 2. When first added, the New Site Tab is displayed, enter the URL of a site into the Site URL field. In some cases, the Site Name will automatically populate, but you can enter your own value or change the default, then click Create. 3. Click Sites, New Site Tab and enter a new URL and site name, click Create. Repeat to add all of the sites required. You will notice that only the relevant documents or tasks for that user are displayed, you may want to change this behavior. 1. Click the drop-down on the right of the web part and select Modify Shared Web Part. 2. Scroll down and expand the URL section of the properties. 3. Delete “_layouts/MyInfo.aspx” from the URL to append to the site. 4. Click OK. Want to take it a little further? Don't show the full page with header, navigation, etc… from the site. Create a minimal master page, content type, and page layout to show only web parts. Create a page using this content type and add the content to this page, point your Site Aggregator to the URL of this page in each site you want to display. Your users will be able to view content that is contained in multiple sites from a single page, all without leaving their current site, and it will have the same appearance as the rest of the web parts on the page.
*TIPS* If you want to display only specific information from a list or library for the page where the Site Aggregator is, add a Query String filter web part to the page you will be linking to and include the string in the URL to append to site when you enter it in the Site Aggregator. It will not affect the other pages, however, you can only do one Query String, so make it consistent across other pages if you need to filter more than one site. Make sure you plan ahead when adding sites to the Site Aggregator. Once they are added, you cannot change the order, you can only delete them. Since the Site Aggregator passes your login information (domain and username only) to sites, you may not want to include external sites as this could pose a security risk. 2月21日 Need Air? Open a New WindowThe I Need to web part is a great tool for giving users the ability to select an action from a list of common actions that they need to perform. The tool works from a custom list with the following columns:
Menu Choice (single line of text)
Filter Value (choice)
URL (hyperlink) - this field MUST be URL and it is case-sensitive.
Once you have your list, add the I Need to web part to a page. Since the web part defaults to the Site Directory, you will need to configure it. Click the edit drop-down arrow on the web part and select Modify Shared Web Part. Click the Change button, then select the list you have created. Set the filter field and filter value for the actions you want to include, modify the width if desired.
Now you have a web part on the page that will allow users to perform the specified actions. The only draw-back is, if the links are to actions in a different site collection, how do you get your users back to the site where your I Need to web part is? In order to do this, you need to force the I Need to web part to open the links in a new window.
The web part uses a function from portal.js. Don't modify this file! Instead, add a JavaScript to your page with a CEWP (Content Editor Web Part) that instead makes the function open in a new window.
1. Add a Content Editor Web Part to your page.
2. Open the tool pane to modify the web part.
3. Click the Source Editor button.
4. Type the following script into the Source Editor:
5. Click Save, then expand the "Layout" section of the tool pane.
6. Check the box next to "Hidden" and click OK.
Now your I Need to web part will open links in a new window and the user will be able to come right back to the site and perform other actions. 2月19日 Auto-Pop Life with InfoPath (Part 2 of 2)From the first part of this series, you now know how to use the User Profile Service from SharePoint to populate the currently logged in user's data within an InfoPath form. Which is great, but sometimes you need to populate data from another user. One of the first instances that come to mind is an off-boarding form with workflows built around the process of off-boarding employees. Combine the web service data connection with a Contact Selector web part throw in a few rules, and you have your solution. How?
Step 1: Add the Contact Selector control to InfoPath - this only has to be done once within InfoPath, then it will be available for future forms.
1. From the Controls task pane, click on "Add or Remove Custom Controls..." then click Add.
2. Select "ActiveX Control" then click Next.
3. Locate "Contact Selector" in the list, select it, then click Next.
4. Ensure "Don't install a .cab file" is selected, click Next.
5. Set the Binding Property to "Value", click Next.
6. In the drop-down menu for field or group type, select "Field or Group (any data type)" then click Finish.
7. Click Close, click OK.
Step 2: Add a data connection - this must be done for each new form created.
There is some preliminary work here, first you have to create an XML file and save it. Open notepad and paste: <Context siteUrl="http://<your site url>"/>. Save the file as Context.xml. This same file can be used each time you create a new data connection of this type.
1. In InfoPath click Tools>Data Connections, then click the Add button.
2. Select "Create a ne connection to:" and "Receive data", click Next.
3. Select "XML Document" and click Next.
4. Browse to the Context.xml file you created in notepad, click Next.
5. "Include the data as a resource file in the form template or template part" should be selected, click Next.
6. Leave the connection named "Context" and automatically retrieve the data when the form is opened, click Finish.
Step 3: Add the control to the form.
1. Drag and drop the control to the desired location on the form.
2. Go to the Data Source task panel.
3. Modify the data source so that the group that is created by the new control is exactly like the data source pictured. The "Person" group is a repeating group, the field names are case sensitive and must be exactly as shown below.
The control on the form that can be used to lookup users in Active Directory. Which is pretty nice if the DisplayName and Account ID are all the information that is needed. Here's how to get more:
Step 4: Add your rules.
1. While in the Data Source task pane, create a field in the main data source (but not in your Contact Selector group) and name it something meaningful. I use HiddenAccountName to keep it distinct from the field in the Contact Selector group.
2. Click the drop-down menu on your data field in the data source, click "Properties", then click the function button to set the default data.
3. Click "Insert Field or Group..."
4. Select the AccountId field from your contact selector group, then click OK on each window until the Field or Group Properties is showing(2 times).
5. Click the Rules and Merge tab, click Add.
6. Don't set any conditions, this rule always applies, click Add Action.
7. Select "Set a field's value" from the drop down.
8. Click the data source button next to the "Field" field.
9. Select the data source you wish to use for the lookup in the drop-down menu. *Be sure you don't re-use the connection for the current user data if you have one in this form.
10. Expand the query fields and sub-groups, then select "Account Name", click OK.
11. Click the function button next to the "Value" field, then click Insert Field or Group.
12. Select the current field you created in step 1 above, click OK until all windows are closed (3 times).
13. In the data source pane, use the drop-down menu to select the data source that you will use to look up another user's profile information.
14. Expand the query fields and all sub groups until the field AccountName is visible. Click the drop-down menu on the AccountName field, then click properties.
15. Click on the Rules and Merge tab, then click Add.
16. Do not set any conditions, this rule will always apply. Click Add Action.
17. Select "Query using a data connection" from the drop-down menu.
18. Select the data connection you wish to use for the lookup from the drop-down menu (it should be the same as the data source listed in the task pane), then click OK.
19. Click Add Action.
20. Select "Set a field's value" from the drop-down.
21. Click on the data source button next to the "Field" field.
22. Ensure you change the data source to "Main" and select the field you wish to auto-populate, then click OK.
23. Select the function button next to the "Value" field, then click Insert Field or Group.
24. Expand the data fields group and all sub-groups, select "Value", click Filter Data, then click Add.
25. Where the "Value" field is defaulted, click the drop-down and select "Select a field or group..."
26. Select the "Name" field under "Property Values", click OK.
27. In the third field, click the drop-down and select "Type Text".
Repeat steps 19 through 28 for all fields that you wish to have auto-populate with the other user's data. It is important that "Query using a data connection" remain the first action. If it is not the first action, highlight that action and move it up until it is the first.
29. Click OK on all windows until you are back to your form.
Now you have a contact selector that allows a user to look up another user in AD and have their profile properties auto-populate fields on the form. 2月17日 Auto-Pop Life with InfoPath (Part 1 of 2)Forms are everywhere. You would be hard pressed to find some sort of business process that doesn't involve the use of some form. Developing InfoPath forms can be done to make many processes electronic. Combine the power of InfoPath 2007 with SharePoint's InfoPath Services and you can really make some dynamic forms with workflows to automate complex business processes.
So, lets say you have designed an InfoPath form that is a request form. What do your users want you to do? Make the process faster! What is the easiest way to do that? Make as many fields auto-populate as possible. What InfoPath combined with SharePoint's User Profile Service does is allow you to populate user information with no code! This means that the end user doesn't have to enter their information when you already have it populated in Active Directory (AD).
To get the current user's information:
1. Open InfoPath 2007 and click Design a Form Template.
2. You can choose to design from a blank form, one you have already created, or customize a sample.
3. Click Tools>Data Connections, then click Add to add a new connection.
4. Ensure "Create a new connection to:" is selected and select the radio button next to "receive data" then click Next.
5. Web Service should be selected, that is what the User Profile Service is, then click Next.
6. Enter the following address for the web service: http://<your site here>/_vti_bin/UserProfileService.asmx then click Next.
7. A list of options for the data will be shown, scroll down and select GetUserProfileByName, click Next.
8. Do not change the parameters, click Next.
9. Do not check "Store a copy of the data in the form template", click Next.
10. Ensure "Automatically retrieve data when the form is opened" is checked. You can change the name of the connection if you desire. Then click Finish.
Now you have this data connection, but that is a lot of work, right? Let's make it easier for future forms. We can take this connection and convert it to a universal data connection and store it in a library within SharePoint to be used in other forms. Leave your Data Connections open, in your SharePoint site, create a Universal Data Connection Library. Site Actions>Create (or View All Site Content>Create), select Data Connection Library from the Libraries list, title it and set the navigation and versioning as preferred.
Now, back to InfoPath.
11. Ensure that the data connection you created is highlighted and click Convert.
12. Enter the URL of the library (or browse to it) and the filename of the connection. Make it meaningful to you and don't forget the .udcx file extension.
13. For most power users who may create forms, select the "Relative to site collection (recommended)" option, click OK. This means that any forms posted within that site collection can utilize this single data connection that has already been created.
You will need to go to the Data Connection Library and approve the connection before publishing your form. For future forms, you only need to create a new data connection, select "Search for connections on a Microsoft Office SharePoint Server". Select your site (or manage sites to add your site to the drop-down), expand the data connection library, select your connection and then continue through setting up the data connection.
Alright, now we have this data connection, how do we use it to auto-populate fields in the form?
1. Double-click on any text box (or add one to your form) to adjust the properties.
2. In the default value field, click on the function button.
3. Click "Insert Field or Group".
4. Select your data connection from the drop-down menu, click OK.
5. Expand the "data fields" and all sub-folders until you can select the "Value" field, then click "Filter Data".
6. Click "Add" to create a new filter.
7. Where the "Value" field is defaulted, click the drop-down and select "Select a field or group..."
8. Select the "Name" field under "Property Values", click OK.
9. In the third field, click the drop-down and select "Type Text".
10. Type the property from the user profile that you wish to enter in the field, then click OK until you are back at your form.
11. Repeat this process on all of the fields that you want to auto-populate.
Below are some of the more common properties that you can filter on to populate your form. This is not an exhaustive list, but you can look at the Profile Properties that are defined within your Shared Services Provider for more.
AccountName
FirstName LastName PreferredName WorkPhone Office Department Title Manager UserName WebSite PublicSiteRedirect Assistant WorkEmail CellPhone Fax HomePhone So, now you can have a request form that auto-populates data about the current logged in user who is completing the form. All without writing a single line of code! Stay tuned, tomorrow I will show you how you can take this data connection and combine it with another InfoPath control to auto-populate data for users other than the currently logged in user.
|
|
|