|
Navigation
Categories
Entries by Month
| September, 2009 (1) |
| May, 2008 (2) |
| March, 2008 (5) |
| December, 2007 (1) |
| October, 2007 (1) |
| September, 2007 (2) |
| May, 2007 (1) |
| April, 2007 (5) |
| October, 2006 (1) |
| July, 2006 (2) |
| June, 2006 (5) |
| January, 2006 (2) |
| December, 2005 (6) |
| November, 2005 (7) |
| October, 2005 (9) |
| September, 2005 (2) |
| August, 2005 (11) |
| July, 2005 (14) |
| June, 2005 (3) |
| May, 2005 (5) |
| April, 2005 (5) |
| March, 2005 (5) |
| February, 2005 (5) |
| January, 2005 (11) |
| December, 2004 (10) |
| November, 2004 (4) |
| October, 2004 (1) |
| September, 2004 (7) |
| August, 2004 (8) |
| July, 2004 (8) |
| June, 2004 (4) |
| May, 2004 (13) |
| April, 2004 (14) |
| March, 2004 (25) |
| February, 2004 (1) |
| May, 2003 (5) |
| April, 2003 (5) |
| March, 2003 (4) |
| February, 2003 (1) |
| January, 2003 (6) |
|
 Thursday, May 01, 2008
Introduction
The out-of-the-box Image Web Part can be used to display an image on a site. The web part has a property that specifies the web address of the image. For most site members, this is problematic – how do they get an image on the web site? And how do they determine the web address? For power users, these steps are understood, but are time consuming to complete.
The Image Upload Web Part will allow the site member to browse their local computer for the image. Once the image is selected, the web part will automatically upload the image to a location specified by an administrator and set the web address.
The result is a solution that works for both groups. Site members can display pictures from their computer and administrators can provide storage for those pictures with changing the permissions of their site and with minimal training.
More information available in the download or at the project's page on CodePlex. ImageUploadv3.zip (.16 KB)
 Wednesday, March 12, 2008
I am working on getting a community site up to host these articles as well as the code. My hope is that all interested developers will contribute their solution to the various Actions that can be selected in SharePoint designer.
This post is the first in a series. The series will discuss the porting steps as we presented in Seattle, but with the details filled in. (We had only 75 minutes to present, which is way too little.) Part 1 will discuss the virtual machine setup and the creation of the SharePoint Designer workflow that will be ported.
Virtual Machine Setup
When a workflow is created in SharePoint Designer, the site is updated with a few pieces that enable it to work. We want to ensure that we port all of these pieces, so we will be using two different web applications. The first at http://spdflow will be used for the SharePoint Designer workflow. The second at http://vsflow will host the Visual Studio workflow. Rather than use different port numbers for the web application, the hosts file (C:\WINDOWS\system32\drivers\etc\hosts) is updated with each of these host names.

The virtual machine will also have the necessary applications installed: SharePoint Designer 2007 and Visual Studio 2005 with the Office SharePoint Server 2007 SDK.
SharePoint Designer
We will use SharePoint Designer to create a workflow. The workflow will perform the most popular actions -- collecting data, creating a task and writing to the history list. This is accomplished via the following steps:
- In SharePoint Designer, open the site http://spdflow.
- Click File | New | Workflow. The Workflow Designer wizard is displayed.
- Name the workflow SPDFlow and attach it to the Announcements list. Leave the start options at the default, which is manually. (We'll be starting it often.)

- Click on the Initiation button on the bottom
- Add a Workflow Initiation Parameter named InitiationField with a default value of Barracuda. Then click OK
 
- Back in the Workflow Designer wizard, Click Next.
- In Step 1, click on the Conditions button and choose Compare Announcements field.

- Choose the Modified By field and the account name of the current user.


- Click on the Actions button and choose Collect Data from User.

- Click on the "data" link to invoke the Custom Task Wizard.

- Enter "Collect Data Task" for the task name and click Next

- Click Add to create a field.

- Name the field "TaskField" and enter a default value of "DeliverPoint"

- Click Finish on the Custom Task Wizard. You will receive a warning about running instances, which can be ignored.
- Click on the "this user" link in Step 1 Actions. Select the account name for the current user.

- Click on the "Variable: collect" link in Step 1 Actions. Rather than put the data in a generically named variable called "collect," choose "Create a new variable" and name it "ListItemID"

- Click on the Variables button at the bottom of the Workflow Designer form. Even though we did not choose the variable named "collect," it was created for us. Remove it, and any other unused variables, from the list.
- Click Finish.
SharePoint Designer will save the workflow and associate it with the Announcements list. Test the workflow by returning to the browser and navigating to the Announcements list.
 Tuesday, March 04, 2008
Many have asked. Many have said it is not possible. At the SharePoint Conference in Seattle today (March 4th, 2008), Todd Bleeker is presenting the steps necessary to take a workflow created in SharePoint Designer and port/convert it to a workflow template in Visual Studio!
The process started with an innocent question back in the fall of 2007 at Mindsharp's TechWeek. All of the Mindsharp Authorized Trainers, and one lucky developer (me) we assembled to share what we know and learn from others. One session address this workflow topic. The session ended when the steps we attempted crashed the site collection. (Thank goodness for virtual machines!) The topic list of that week was submitted to Microsoft as potential sessions at the SharePoint Conference. They selected the workflow porting session to be presented.
The task fell to SharePoint MVP and superstar presenter Todd Bleeker. As usual, Todd threw his considerable enthusiasm at the topic. I had the privilege of being a second set of eyes and a sounding board to Todd during the days leading up the presentation. Not only did I learn a ton about workflows, but I also interacted with many smart people who contributed ideas, encouragement and humor to us in the last 48 hours. I am honored to be the one to make this post, but I am not solely responsible for its content. I want to specifically mention Todd Bleeker (of course), Kimmo Forss of Microsoft, Marilyn White of White Consulting, Rob Bogue of Thor Projects, David Mann of Mann Software and Woody Windischman.
[Details to follow]
 Wednesday, September 12, 2007
One common pain point for SharePoint administrators is the Windows SharePoint Services Timer Service, also known as OWSTIMER.EXE. The Timer Service is responsible for executing several processes that are part of the product. A few of the more well-known processes are the search crawl refresh, recycle bin processing and the workflow processes. Also, the Timer Service is the process that SharePoint uses to push web.config modifications and solutions to all front end servers in the farm.
Two specific issues that are related to the Timer Service are its memory consumption and limited user interface. The Application Extension Download for SharePoint (AED for SharePoint) from Barracuda is designed to help system administrators deal with these issues. The download can be found in the Premium Content section of the Mindsharp web site. (The utility is free, but you will need to provide your name and email.)
Timer Operations Syntax
Restart Timer
stsadm -o restarttimer { -farm | -server <server name>;<server name> } [-exclude <server name>;<server name>] Restarts the Windows SharePoint Services Timer service on servers in the farm. Use the -farm parameter to restart the service on all servers in the farm that have the service installed. Use the -server parameter to specify the servers on which to restart the service. Use the -exclude parameter in conjuction with -farm to restart the service on all servers except those listed.
Enumerate Timer Jobs
stsadm -o enumtimerjobs
[-view {service | webapp}]
[-service <service name>]
[-webapp <web application url>]
[-schedule]
Displays the Timer Job Definition information.
Start Timer Job
stsadm -o starttimerjob
{ -service <service name> | -webapp <web application url> }
-job <job name>
Forces a one-time execution of the specified job.
 Tuesday, September 11, 2007
At my new job, I work with a lot of very smart people. I was chatting with Ben Curry, and he remarked about the troubles that a lot of administrators have with the OWSTimer.exe program. So, I wrote an extension to STSADM that will help manage this program. You can find the Adminstration Extension Download for SharePoint on the Mindsharp site.
Feedback is appreciated. Paul at barracada.net
 Thursday, May 26, 2005
Hey, I’m Tony Schreiner, a developer on the IE team...There have been a lot of questions and speculation about IE7's tabbed browsing feature, so I wanted to give an overview of some of the work we've done that you can look forward to seeing in Beta 1. IEBlog: the Microsoft Internet Explorer Weblog
Great information about the current thinking going on within the IE team. No mention of a date, however. 
 Friday, March 04, 2005
Full Source Full Source is an Internet Explorer menu extension which displays the source Internet Explorer is displaying, directly from the Internet Explorer object model. This is useful wherever javascript is dynamically writing HTML into the DOM, or where XSLT has been used to generate HTML.
If you have ever looked at the source of a list edit form, you'll know that you need this utility!
Their other utility (Toggle Borders) is neat as well.
 Thursday, January 20, 2005
Log Parser 2.2
Log parser is a powerful, versatile tool that provides universal query access to text-based data such as log files, XML files and CSV files, as well as key data sources on the Windows® operating system such as the Event Log, the Registry, the file system, and Active Directory®. You tell Log Parser what information you need and how you want it processed. The results of your query can be custom-formatted in text based output, or they can be persisted to more specialty targets like SQL, SYSLOG, or a chart.
Most software is designed to accomplish a limited numer of specific tasks. Log Parser is different... the number of ways it can be used is limited only by the needs and imagination of the user. The world is your database with Log Parser.
This is an update to the tool I mentioned before. (Two years ago!) But, since it still gets hits from the search engines, it's worth updating the post.
 Wednesday, January 05, 2005
I wrote about and dismissed SmarterStats for web server log analysis. It's been almost a year, so a little update is in order.
I have licensed and installed the enterprise version of this tool. With the web farm deployed (read the Sharepoint category) and some legacy web servers, SmarterStats became a very attractive option.
For those with less demanding needs, Microsoft has a KBase article that shows how to use the bulk copy program (bcp) to load the log files.
Update: KB Article discovered via John West
 Monday, January 03, 2005
UPDATE: John points out “It should be noted that when you change the setting to CT with UIiB, an automatic Full or Incremental (depending upon the presence of a timestamp column) is executed to re-sync the table data with the FT Catalog.“ I missed this when I posted, but new visitors should be aware of this. Thanks John!
John Kane came across my post on the forums at Joel on Software about full-text indexing on SQL Server. I suggested that I could post a script that sets all of the tables in an index to background change tracking, but I never did make that post.
So, here is a T-SQL script that will check every table in every catalog in the current database:
DECLARE @FTCatID smallint, @FTPath nvarchar(260), @FTStatus int DECLARE @FTName sysname, @FTNbrTbls int DECLARE @csr_FT CURSOR
DECLARE @FTTOwner sysname, @FTTName sysname, @FTTIndex sysname DECLARE @FTTColid int, @FTTActive int, @FTTCat sysname DECLARE @csr_FTT CURSOR
-- Get all the catalogs in the current database EXEC sp_help_fulltext_catalogs_cursor @csr_FT OUTPUT FETCH NEXT FROM @csr_FT INTO @FTCatID, @FTName, @FTPath, @FTStatus, @FTNbrTbls WHILE (@@FETCH_STATUS = 0) BEGIN
-- Get all the tables in this catalog
print @FTName EXEC sp_help_fulltext_tables_cursor @csr_FTT OUTPUT, @FTName FETCH NEXT FROM @csr_FTT INTO @FTTOwner, @FTTName, @FTTIndex, @FTTColid, @FTTActive, @FTTCat
WHILE (@@FETCH_STATUS = 0) BEGIN
print ' ' + @FTTName EXEC sp_fulltext_table @FTTName, 'Start_change_tracking' EXEC sp_fulltext_table @FTTName, 'Start_background_updateindex'
FETCH NEXT FROM @csr_FTT INTO @FTTOwner, @FTTName, @FTTIndex, @FTTColid, @FTTActive, @FTTCat
END
CLOSE @csr_FTT
DEALLOCATE @csr_FTT
FETCH NEXT FROM @csr_FT INTO @FTCatID, @FTName, @FTPath, @FTStatus, @FTNbrTbls END
CLOSE @csr_FT DEALLOCATE @csr_FT
If your server is setup like mine, you might have multiple databases on the server. If you want to run the above script on all the databases, here is a VBScript to do so:
dim oServer, oDB, oFS, oFile dim sCmdBatch
Set oFS = CreateObject("Scripting.FileSystemObject") Set oFile = oFS.OpenTextFile("FT_change_tracking.sql") sCmdBatch = oFile.ReadAll
Set oServer = CreateObject("SQLDMO.SQLServer")
WScript.Echo "Connecting..." oServer.LoginSecure = True oServer.Connect "servername"
On Error Resume Next
For Each oDB in oServer.Databases WScript.Echo "Database: " & oDB.Name oDB.ExecuteImmediate sCmdBatch Next
 Tuesday, September 14, 2004
Joel Spolsky mentioned that he is using the full-text search feature of SQL Server and that it required a manual job to re-index the database.
In fact, SQL Server 2000 will monitor a table for changes to a table that is included in a full-text index. The sp_fulltext_table procedure has parameters to 'Start_change_tracking' and 'Start_background_updateindex'.
As I wrote in Joel's discussion board, I have a script I could share that enumerates all indexes on a server and sets the change tracking for all tables in the index.
 Tuesday, July 13, 2004
Chris Sells recently put out a call for a VPC image of Longhorn. And someone on the blogs.msdn.com site mentioned something similar. This got me thinking, wouldn't it be nice if MSDN downloads had .vhd files?
I can see how it might not be helpful during an OS beta, since not everyone is running the same hardware. And there probably would need to be some changes to the installation process, so the activiation/license code could be entered before the first use instead of before the file copy.
Sure would be sweet...
 Monday, May 17, 2004
A while ago, I upgraded my dasBlog installation to version 1.6. I finally got around to looking at the new features, and found the drawArchiveMonths macro. This is now included, on the left below the categories.
Interestingly, it was one year ago when I vanished from the blogosphere (I don't like that word!). I'm determined to prevent that from happening again!
 Tuesday, March 16, 2004
The next step in our setup is to stress test the web farm/sql cluster. I considered Application Center Test (ACT) that is included in Visual Studio Enterprise, as well as the Web Application Stress tool (WebTool) (WAS Tutorial).
ACT is integrated with Visual Studio .Net. It also has a command-line interface, so you can schedule tests for unattended operation. However, the version bundled with .Net does not allow the test to have multiple client machines. (I couldn't find any other version, however. I assume there is a version included in Application Center 2000, but that's a big load balancing solution that I didn't want to investigate.)
WebTool is an older product, but is still usable. The key part, for me, is that it installs a service on the machine. Each machine that has the service installed can be controlled by any other machine with WebTool installed. In our load-balanced web farm, I need to simulate traffic from different IP ranges. This distributed testing model will do that quite nicely
 Friday, March 05, 2004
I found a .Net-based program that will generate statistical reports from your webserver log files. SmarterTools is fee for use on your development machine, so it is perfect for in-frequent requests about traffic. Very nice.
 Thursday, April 03, 2003
I was a bit disgusted with the FrontPage server admin. But, with time always a precious resource, I kept throwing together quick pages in the program. Now, a month later, I have to admit that it is a very useful program. The Page Banner and Link Bar components are nice. The Navigation pane that drives those components is very nice. The Shared Borders are a time saver. I wish the HTML editor would color-code ASP scripts. I'm using it. Early versions did not impress me. FrontPage 2002 does impress me. I'll have to see what's new in 2003.
 Tuesday, March 18, 2003
 Friday, March 07, 2003
I'm not going to be relying on FrontPage server extensions for security on a client page as I had intended. I don't know if I'm trying to use them incorrectly, or if the ISP implemented it correctly. I repeatedly tried to have a subweb with different permissions than the root web. Whenever I tried, the subweb would end up with no adminstrator. The only fix was to un-install the extensions. I going to change the pages to use a login form and cookies for the authentication. FP failed me.
If you are working in a web project in Visual Studio.Net, the Add New Item dialog does not include an ASP file type. However, VS.Net does understand the file type. Click on the File | New menu, then choose the Script category. Active Server Page is the first template listed. With help from an article by Chris Sells, I created the procedure to make the ASP template available to Blank and Empty Web Solutions. These procedures assume that you installed VS.Net to the default location of C:\Program Files\Microsoft Visual Studio .NET\. If you didn't, then adjust the paths accordingly. All of the files mentioned are plain text. Make backup copies first!
Blank Solution 1.) Copy the file asppage.asp from [InstallDir]\Common7\IDE\NewScriptItems to [InstallDir]\Common7\IDE\NewFileItems. 2.) Open [InstallDir]\Common7\IDE\NewScriptItems\NewScriptItems.vsdir. 3.) Select the line containing asppage.asp 4.) Paste the line into file [InstallDir]\Common7\IDE\NewScriptItems\NewFileItems.vsdir
Empty Web Solution 1.) Create a file name ActiveServerPage.vsz in [InstallDir]\Vb7\VBProjectItems 2.) Enter the following: VSWIZARD 6.0 Wizard=VsWizard.VsWizardEngine Param="WIZARD_NAME = ActiveServerPage" Param="WIZARD_UI = FALSE" Param="PROJECT_TYPE = VBPROJ" 3.) Open the file [InstallDir]\Vb7\VBProjectItems\Web Project Items\WebProjectItems.vsdir 4.) Add the following line. (Refer to the VS.Net documentation about VSDir files for an explanation of the values.) ..\ActiveServerPage.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|ASP Page|1|Active Server Page|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4520| |ASPPage.asp 5.) Open the file [InstallDir]\Vb7\VBProjectItems\Web Project Items\Web\WebWebProjectItems.vsdir 6.) Add the following line. (Refer to the VS.Net documentation about VSDir files for an explanation of the values.) ..\..\ActiveServerPage.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|ASP Page|1|Active Server Page|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4520| |ASPPage.asp
 Wednesday, February 12, 2003
I'm reading about how to wring performance from MSXML and I ran across this nugget from the MSXML4 page on MSDN:
Additionally, MSXML 4.0 provides the new, faster XML parser and a substantially improved XSLT engine. You can use the new parser with DOM by setting the NewParser property to True. The new parser does not yet support asynchronous DOM load or DTD validation. However, everything else functions the same way as with the old parser, only faster. In our tests, MSXML showed about 2x better performance for pure parsing, and more than 4x better performance for XSLT transformation.
 Thursday, January 30, 2003
I found a great utility from Microsoft named Log Parser. It is a command-line program that will read log files from many different sources and execute SQL style queries against the log entries. From the Overview:
Quickly search for data and patterns in files of various formats, including IIS log files, Windows Event Log files, generic comma separated value (CSV) files, W3C files, and text files.
Create formatted reports and XML files containing data retrieved from different sources.
Export data to SQL tables. You can export entire files or filter the data to obtain only relevant entries.
Convert data from one log file format to another.
Very recommended.
UPDATE (Jan. 20, 2005): An updated version is now available.
 Thursday, January 16, 2003
I worked on redesigning the logo for the RMYB league. The tool at hand was Macromedia's Fireworks v4.0. This program seems much more user-friendly than Adobe's Photoshop. Keep in mind that I have no training in graphic design! Your mileage may vary.
 Friday, January 10, 2003
|
|
Search

Powered by: newtelligence dasBlog 2.2.8279.16125
The opinions expressed herein are my own personal opinions and do
not represent my employer's view in anyway.
© Copyright 2010, Paul Schaeflein
E-mail
|