Clayton's SharePoint Madness

All About SharePoint, InfoPath, and SharePoint Designer!

Blog Listing

I don’t really like how hard it is to find a specific blog entry even when you search, because the search results don’t show abstracts, and the categories don’t either, so I’m making this landing page for people to quickly find what they’re interested in…

**Speaking at the Document Strategy Forum Conference in Chicago on Nov. 1st**

SharePoint 2010:



qRules Series:


562 Responses to “Blog Listing”

  1. John said

    Clayton, are you aware of any ‘open behavior’ rule limits in IP2007?
    (Tools->Open and Save->Rules)

    I have 8 rules, most are simple conditions (if a=y) and 1 action (set var) each.
    I introduced a web service lookup in the first rule (set three query fields, get 4 data fields) similar to queries I use elsewhere in the form (which work). The form, web-browser enabled, works as expected in the preview mode, but fails to ‘execute all rules’ when opening from SP (after publishing). By simply removing the query action and ‘hardcoding’ the field values that would have been read from the query data fields, the form works from SP. It’s like some limit has been encountered.

    I appreciate any insight you might have.


    • Clayton Cobb said

      Does that web service definitely work within the form itself? Often, data connections like that will work in rich client and preview mode but not in browser mode. You said this query was similar to queries you use elsewhere, but are you using that exact web service query elsewhere in the form that are confirmed to work in browser mode?

      I am not aware of a rule limit, but I also have not seen documentation stating there is NOT a limit. Do these steps:
      1) Verify that web service lookup works within the body of the form when rendered in the browser
      2) If it does, remove all other Form Load rules except this one and see if it works
      3) If it does, then maybe there is a rule limit. Add the other rules one at a time until it breaks to see if you find a limit. If there is, maybe combine actions into the same rules.

  2. John said

    Yes, there are other fields on this form that use this web service, same query (different field passing in lookup value though) and similar data fields.

    1 – done. works

    2,3 – be nice to have IP2010 copy/paste 🙂 Yes, I’ll try that approach.

    • Clayton Cobb said

      Whatever you’re doing in the broken rule, be sure to do that _exact_ thing in the form – not just something similar. I’m much more inclined to think the query just isn’t working than to think the rules have a limit, but I could be wrong.

  3. Gunnar said


    I just wanted to say thank you for putting all this great information out there for all us non-programmers to use. Also, thanks for your quick responses to my many emails and for calling me! Your help saved me hours (if not days) of work. My form is doing things I never thought it would be able to do. So thanks and keep the blogs coming!


  4. nazakath said

    Hi clayton

    Can you please suggest me a planning how can i install moss sp2 in production server.
    Currently using moss sp1.

    I have never gone through this kind of request,So i need your help in this regard.
    Please do the needful.

    +91 9035434396.

  5. Mark Bowman said

    Clayton a quick query regarding Digital Signatures and Browser-based forms. There’s a message that pops up stating “Parts of this form are digitally signed and cannot be modified” etc etc. Are you aware of any way to remove this warning message? Just annoying is all 🙂

    • Clayton Cobb said

      Mark, not something I have tried to overcome. It would probably require server-side customization. I recommend posting the question on, because the folks who run that site are masters at coding/customizing InfoPath.

  6. hari said

    i want to create leave approval workflow in sharepoint. when ever ake a leave an employee the immediate head of employee is approved is routed for repotingmanager for approval.and employee also notify about approval

  7. Bill said

    Hello Everyone,

    I am running SharePoint 2003 and I have one sub-site that will not come up when you click on the link. All the other sub-sites come up with out issue. I am able to access the content of the site when I go to “Manage Content and Structure” but I cannot open default.aspx. I do have a backup that I could restore from but I wanted to try and figure this out before I did that. I am not confident that a restore would even fix the problem.

    Thank you in advance for any assistance.

    • Clayton Cobb said

      Bill, has that site been customized in any way with Frontpage or anything else? What error do you get when trying to go to the default page? Do all other pages on that sub-site work? I never work with SPS2003 nor WSS 2.0, so I’m not as knowledgeable on the design gotchas nor which tools can be used (I used SharePoint Designer a lot with 2007 and 2010, but I assume Frontpage is used for 2003).

      • Bill said

        I apologize, I wrote SharePoint 2003 I meant it is running on a Windows 2003 server and it is SharePoint 2007.

        To answer your questions.
        To the best of my knowledge the site has not been customized in any other way then through the SharePoint site. Meaning creating lists, adding content, or modifing lists.

        The error I receive is “An unexpected error has occurred”. Yes, that is very helpful.

        Through “Manage Content and Structure” I can access all the lists in the site. Which is really the only thing this site contains.

      • Clayton Cobb said

        Then I would open that site in SharePoint Designer 2007 and see if the Default.aspx is even there in the root folder of the site, then if it is, open it in SPD and see what’s up.

  8. Bill said

    Thank you for the great suggestion. Upon opening the page in SPD I realized that I had a third party utility installed on the site for making charts out of lists. The evaluation period has expired which was causing the issue.

  9. Aks said


    I have an requirment to design form (form should appeare on default.aspx of site)with validations in sharepoint.And on button click data should get submit to database and workflow (multilevel approval workflow)should also start in parallel.

    Can u suggest me how to do that using sharepoint designer?

    Thanks …..

    • Clayton Cobb said

      I can’t help you with any forms, because that will be done with custom code, but I can help with SPD workflows. However, if you are creating the form with custom code, why are you not creating the workflow with custom code in Visual Studio? It will be much more robust and powerful that way.

      The only way your method will work with SPD is if your form submits data to SharePoint. If it only submits to a database, then SharePoint Designer will not be able to help you. SPD workflows only fire when a SharePoint list item (list or document) has been created or changed.


  10. Aks said


    thanks for your quick response..after struggling with VS and forms finally I switched to Infopath for simplicity.

    I want to create Multilevel Expense report approval workflow.

    Task I completed:
    1.Designed Infopath form as per my requirement.
    2.Published in my form library.
    3.Forms are browser enabled and working fine.

    Now I want to create workflow using SPD.

    Approval Levels
    1.Approval by Team Lead
    2.Approval by Accounts.
    3.Approval by Dir.

    1. If my expense is lessthan or equal to 500
    teamlead can approve directly and notify accounts.
    2.If my expense is greater than 500 than teamlead will keep it pending , ask reason from the employee of such high expense and assign it to Accounts for review.Accounts after reviewing will say it approved or reject.
    It approved then final approval from Dir and if reject notify creator and stop workflow.

    I my not getting how to write these conditions in SPD, I mean how to create Assign to do item etc..

    Can u please help me out in writing these condition in SPD ?

    • Clayton Cobb said

      AKS, I can do all of this, but we’re talking a pretty extensive explanation if I try to write it. I think it would be better to discuss it over Skype or something like that, because it will take forever to type, and I think that’s a bit much to ask. I will give a few tips, though, in case that gets you over the hump:
      1) I don’t actually like to assign tasks. I keep all of te task “assignment” and approval buttons inside my form. This simplifies things
      2) I use my blog on User Roles in Browser Forms to conditionally hide and disable certain fields, buttons, and views so that only certain users can do certain things (i.e. Team Lead, Accounts, and Director)
      3) It’s easy to use a condition IN THE FORM to say that if the expense is less than 500, then let the Team lead approve. If it’s great than 500, then before the Team Lead even gets involved, show a hidden message to the submitter that asks why the expense so high, and require the submitter to give a reason before even submitting the form (hint: use data validation on the Reason field that only triggers when expenses > 500)
      4) After that, it’s all easy. Keep the logic in the form and make each user have different views, sections, and buttons that are available based off their identity. Use both these blogs to help:

      •InfoPath – Get user information without writing code (extended)
      •InfoPath – User Roles in Browser-Enabled Forms Using AD Groups
      •InfoPath – User Roles in Browser-Enabled Forms Using Contacts List

      They are all right here on my Blog Listing page (home page)

  11. Ritz said


    I have an requirement in sharepoint that there is an document library where word documents are uploaded.User wants to show short description of each documents in pop-up kind of box on mouse hover of documents in the library.

    How should i proceed?

    I have created one description column in library which is currently hidden.What changes i need to do in xslt to show pop-up window having description of documents?

    Any help will be appreciated….


    • Clayton Cobb said

      Ritz, that is not a function of SharePoint to do that, so if you really want to go outside the box to make that happen, then you’ll either need to find some Javascript or JQuery online that already does it, or you’ll need to write your own. It seems to me that the easiest, simplest, and most effective method would be to just show the Description column in your view. What is the reason for wanting a mouse-over popup showing the description instead of showing the description in the view, which takes no effort?

  12. David Wend said

    While I’m not a Dot Net jockey, I’m rather proud of what I’ve been able to do with SPD workflows and custom New & EditForms to create an Earned Time Requests system that emails Supervisors links back to the list item when a request has been made, and emails the Requester when a request has been approved or declined. As it stands now everyone can submit a request and they can use a People Picker to select their supervisor by way of placing supervisors into a SharePoint group and limiting the Choose From: option to that group. Rather than maintaining this Supervisor SharePoint Group, I’d like to use methods that you described in your InfoPath – Get user information without writing code (extended) . I was hoping there was a way to setup similar data connections with a regular custom SharePoint NewFrom. Currently the NewFrom I’m using has no masterpage elements which makes for a clean easy to use no distractions form. It is fine for the limited testers as a proof of concept, yet we are a company of 800 with a very high management ratio. It would be nice to be able to auto populate the request form with the Requester’s Department, Supervisor’s PreferredName (for the requesters’ convenience) yet populate the list with the Supervisor’s WorkEmail so that the workflow would work properly.
    Question to you; is there a way to auto populate a few fields in a Custom SharePoint NewFrom by way of the UserProfileService?

  13. Gaurav R said

    Hi Clayton,

    I might be asking about a simple or complex thing regarding a experiment I’d like to do on SharePoint. I would like to create a ‘Thank You’ form where user selects the name of the person he would like to thanks, selects his email ID and select some picture (Thanks You cards) and write some text in notes section on why he his showing his gratitude and submit the form. The form then attach the image selected and sends an email to the intended person with notes etc.

    Could you please let me know, is it possible in SharePoint and if yes, kindly provide a high level view on how to do this. If No, please provide any idea on which application we can try this experiment.

    Any help will be appreciated….

    Gaurav R

  14. Nitesh said

    Hello Clayton,
    First ..thanks for your great contribution on Infopath.
    I have gone through your posts i has been a great help while developing similar solution for my site.I am using SharePoint2007 and Infopath2007…no 2010 component. I have couple of question on Leave Applications system.
    1.I am submitting my leave applications to Infoform library.Everything works well. But number of employee is >600 at my site so if i assume 10 application per year from each employee i would certainly cross limit of number of documents in one infoform library which is 2000.
    Suggested Solution : I predict one solution for this ..not sure about its technical difficulties…Submit leave application details to SQL server as well as Infoform library.After 1 month of submitting to library we can delete document from library.When ever we need data we can get from SQL Database.
    Problem : Is it possible to create/update a new entry in a table (in db) with all relevant information while submit/update leave application.Please help.

    2. I have seen in your 5 mins video, mails that flows as notification for leave application to employee/leader has two good thigs
    a. Dynamic subject line : containing text + Employee name …how is it possible in 2007 components?
    b. Direct link to leave application in mail body. Could you please help on this.

    Any help would be appreciated.

    • Clayton Cobb said

      Nitesh, thanks for commenting.

      1) There is not a 2000-item limit on Form libraries or on any list or library in SharePoint. You can have MILLIONS of documents. The 2000 recommended limit is only a limit on how many items should be DISPLAYED at one time. So, all you would have to do is make sure your main view is filtered to only show item that were created in the last 30, 60, 90 days (or whatever duration works for you). You do this by going to the View settings, Filter section, “show only items where Created is greater than or equal to [Today] – 90.” Something like that would work well. You also have the option setting the view so that it is grouped by a piece of metadata and set the groupings to be collapsed. That way, you could have 6000 items, but the page would render very quickly, because everything is in collapsed groups as long as you don’t have hundreds or thousands of groupings. Then, when someone clicks to expand a group, it will load however many items are in that group, which should never be too many at one time if your groupings make sense.

      2a) Yes, you can do it in 2007 by using the action Build Dynamic String in a previous step. This gives you the same dynamic string builder as what is now built-in to 2010. You create your string by combining static text with metadata from the form, and it saves to a variable. You then put that variable in your Subject line as a single piece of metadata. I do this all the time.

      2b) For this, it’s as simple by using the technique from 2a to concatenate the static URL to your form library and then appending the ID to the end or the Server Absolute URL (this is available in SPD). Just check the properties of an existing form to get the full path, and then build your dynamic URL accordingly. There should be a static piece combined with a dynamic piece from the current item. If it’s a browser form, then open a form in the browser (from that form library), and copy that whole path into your dynamic string builder. Then, replace the part after &XMLlocation= with the metadata field named Encoded Absolute URL.


  15. Rakesh said

    Hi Clayton,

    I have a infopath initiation form with a textbox. I have to do something on the Changed event of this textbox. So i wrote the following code:

    public void InternalStartup()
    EventManager.FormEvents.Loading += new LoadingEventHandler(FormEvents_Loading);
    EventManager.XmlEvents[“/my:myFields/my:toolName”].Changed += new XmlChangedEventHandler(toolName_Changed);

    public void toolName_Changed(object sender, XmlEventArgs e)
    // XPathNavigator myNav = this.MainDataSource.CreateNavigator();
    // myNav.SelectSingleNode(“//my:keyword”, this.NamespaceManager).SetValue(“Keyword”);

    when i deploy this xsn file for workflow. I always get the following error on the load of this form.

    System.InvalidOperationException, mscorlib

    System.InvalidOperationException: Invalid Context: /my:myFields/my:toolName event must be registered before this form is deployed.

    Could you please figure out the solution?

    Thanks for your help,


    • Clayton Cobb said

      Rakesh, my whole bblog is about building codeless solutions. I am not a dev and write no code, so i cant help with debugging your code. However, it appears to me that the error is pretty helpful. It says you must register the event before deploying the form. Perhaps that is meaningful to you?

      If you need more help, i recommend the experts at They are the foremost experts in the world on infopath and have a slew of expert devs.

      Clay Cobb

  16. Ashish Kanoongo said

    Congratulations to become as an MVP !!!

  17. Debbie said

    Hi Clayton,
    I wanted to calculate the difference between 2 date picker controls for use in a leave request form that I am creating. First, I created a blank form and copied and pasted the Value fields that were posted in the article by S.Y.M. Wong-A-Ton. My Practice form does not work and returns a value of zero in my difference field. Were any other changes suppose to be made to instructions?
    Thank you for your help,

    • Clayton Cobb said

      Debbie, I haven’t read through SYM’s method nor tried it, so I’d have to go build a scenario and get back with you. However, I have successfully used the method by Alec Pojidaev on his blog. If you search for his name and “codeless programming,” you’ll find it.


  18. Debbie said

    Thank you!

    I will search for Alec Pojidaev and try his method.

  19. Debbie said

    I found the blog you suggested and was able to download the form because I could not follow his steps. His form worked fine but gave me 4 days instead of 5 when I clicked on a Monday and then an End date of Friday. I read in his blog someone else asking the question. His answer was to modify finalize rule as following: substring-after(., “;”)+1

    I tried but I must be modifying the incorrect rule because my answer is coming back as 3 now.
    Can you tell me where to modify?
    Thank you,

    • Clayton Cobb said

      Debbie, I’ll have to look at in a few days probably – barely time to breathe day or night at the moment.

  20. Steve said


    Is there a way to get the AccountName from GetUserProfileByName by using the preferredname?
    I have an Infopath textbox that has an Approver’s lastname, firstname and I would like to get the Approver’s Accountname.I’ve seen your blog about getting the current user’s information. I need to get someone other than the current user’s information. The Approver’s name comes from a people picker column on a sharepoint list. Is there a way to put the accountname in a hidden field on sharepoint when the name is entered.

    • Clayton Cobb said

      Steve, you can only query the GetUserProfileByName web method with username. However, if your identities are coming from a People Picker in SharePoint, then that data is available. People Pickers pull from the same profile database as the web service – it’s all the same thing. You just need to get that specific attribute. Is there a reason you’re using a People Picker in SharePoint that you’re consuming into InfoPath as opposed to a People Picker (Contact Selector) inside InfoPath itself?

      • Steve said

        When you say “username” what format are you referring to? the AccountName from AD. The format you see when you use username(). I’m using the sharepoint list because there is other data I am pulling from that list. and the approver is tied to cost field. When the cost field is selected on infopath, I fill the approver field on infopath from the SP list. I then send an email to the approver.

      • Clayton Cobb said

        Username is username – like ccobb. AccountName is domain\username – like planet\ccobb – which I also refer to as Domain Name. The userName() function retrieves the username, and this is the value that the UserProfileService accepts.

    • Steve said

      I’ve tried to pass everything under the sun to the getuserprofilebyname parm AccountName but it appears it only accepts the AccountName. I’ve seen examples (nothing that worked) where people were saying you could pass the perferred name. I found a work around. On the sharepoint site, I changed the name to be displayed by account. On the infopath form, I query the getuserprofilebyname using the Account and display the PerferredName.

  21. Ricky said

    Hello Clayton,

    Your blog has lots of useful information for Infopath novice like me. I am now getting comfortable with the software. I wanted to know if there is a way in 2010 version to create a workflow without using Sharepoint server. I am creating a form where Supervisor has to sign before Manager and so on. We do not have Sharepoint Server. Let me know if you have any ideas regarding the same.


    • Clayton Cobb said

      Ricky, you would need some sort of workflow engine/product. I don’t know of standalone workflow products, but they probably exist. I don’t know if any interact directly with InfoPath, though.

      You could maybe have multiple Submit to Email data connections and custom buttons for each person in the workflow so that when the first person submits, it emails it to the Supervisor, and the Supervisor gets a custom submit button visible to only him that then submits the form via email to the Manager. That might work.

  22. Scott said

    I feel like I know you as I have read so many of your posts.
    I would like to be able to add both both a repeating table and another field (i.e. textbox) to a SP List.
    For example, repeating table has fields ONE, TWO, THREE and I have a field on my form titled FOUR and want to submit a single row including ONE, TWO, THREE, and FOUR. Submiting the repeating table works. I thought of using a rule (repeating table: NAME contains “FieldName”, THREE = Textbox: FOUR). Or trying to modify my XML to include the name of the xpath textbox (i.e. field name= “”).

  23. Norman said

    I need to find a specific job title in the AD (User profile db) Title Field (SharePoint 2007)

    I’m in InfoPath (2007), and trying my best to stay away from code.

    I need to create (seemingly) iterative loop that loops up through the food chain until Title = “EVP”

    I’ve been manipulating the rules under a button, and am trying to figure out how to do a loop.

    Am I moving in the right direction here? Any suggestions??

    • Clayton Cobb said

      Loop through what? What do you mean by food chain? I feel like I’m missing some info, because I can’t tell what you’re referring to.

  24. SharePoint said

    This looks great Clayton! A lot of great resources.

  25. Gary said

    I have a Sharepoint 2007 library setup called New Course Requests which contains a Infopath template I have created. Attached to this library I have a Workflow called Form Submission which is attached to the New Course Requests Library. When the form is saved and manually submitted the workflow runs and indicates it has completed, but none of the actions in the workflow are run? Below is the logic in the workflow:

    The Check Workflow does not find any errors. Can anyone see a reason why this workflow is not running although it has been attached to the New Course Requests library?

    • Clayton Cobb said

      I can’t see the logic.

      • Gary said

        Sorry, the image did not paste properly. Essentially, the logic is:

        CONDITION If Idept equals Communication Sciences

        ACTIONS Email gary.jones@xxxxxxxxx
        then copy item in New Course Requests to CSID-Dept Head
        then delete item in New Course Requests

        I think the logic is fairly standard, but even though this workflow has been assigned to a form library and runs without error – it does not perform the actions in the logic. (New Course Requests is the form library the workflow is attached to)

      • Clayton Cobb said

        That means the condition isnt being met. It is easy to build your workflows for debugging by by using the Log to History List action.

        Add an Else If condition with two action:

        Log Idept to History List. Log “Condition not met” to History List.

        Also add log actions to your first condition under each action you perform so that you know they occur. For instance,

        Your first action under the If statement should be Log “condition met” to History List.

        As an aside, i do not recommend copying forms to another location. They should reside where their template is published.

        Clay Cobb

  26. Mahda said

    Hi Clayton
    I’ve created a workflow in SPD for sending an email when a specific condition is true, and I specify that this workflow should automatically run when a new item is created or when I start it manually . But it only works when I manually start it. May I ask you help me to solve this simple problem?!

    • Clayton Cobb said

      Mahda, if it is truly set to start automatically for a new item, then it should run. Some reasons why it would not run: 1) You’re adding the new item as the System Account 2) Your list or library is set to require check-out, and the item has not been checked in yet 3) The item has required fields that haven’t been filled in and therefore the item has not been checked in yet 4) The workflow is running, and you didn’t notice. You should see a new column appear with the name of your workflow, and it should have a status. Do you see nothing in this column when a new item is added, or does it Fail to start, or what?

  27. Ashraf said

    Hello Clayton,
    Your posts regarding infopath is very helpful.But i am in trouble implementing a form which will be developed run time from sharepoint site.Its like, the form contains user name and Email but my enduser will be able to add 2 more fields according to his/her needs and they can also name the filed as per their requirement. Those fileds will get data connection with sharepoint list or other data source after creation.

    In a word, i would like to give endusers a choice to add fileds according to their choice.

    Please let me know whether it is possible in infopath form or not?? If yes, please help me out.

    • Clayton Cobb said

      No, users can’t add fields. For a user to interact with a field, it must already exist in the form’s data schema. You do have the option of hiding certain fields unless the user chooses to see them. You can do this with conditional formatting on fields or entire sections. You basically hide them unless some other action is performed, such as pressing a button, checking a box, or selecting a certain value in an existing field. No matter what, though, a user cannot name a field at runtime.

      I don’t understand the part where you said, ” Those fields will get data connection with SharePoint list or other data source after creation.” What does that mean?

      • Ashraf said

        for every fields i need to store the data somewhere when user input something.
        Is it possible to control or create a data connection at run time??

      • Clayton Cobb said

        Maybe with code, but that would very advanced. I’ve never seen anything like that. Why can’t you just promote your fields while publishing the form template? That makes all your data visible and ready in SharePoint. Once the form is submitted, and all the fields are populated in the form library, you can use workflows to then populate other lists and libraries with that data.

  28. Mahda said

    I’ve a “Cost Request” process.It should collect data from 4 people in an order that specifies in process, each one should review data entered by previous people and then decides about approval or rejection. And no one should change previous data.
    I’ve created a workflow in SPD with “Collect data from a user” action, but people can change other’s data.How can I solve it?

    • Clayton Cobb said

      Mahda, you can do all of that within InfoPath by using User Roles and conditional formatting on sections/views/controls so that only the right person can change the right fields and click the right buttons at the right time. I cover this topic in my blogs about User Roles and the one about getting the current user’s profile info. I would not recommend the Collect data from user approach in SPD, because that creates tasks. If you must use that route, then you’ll have to create a new workflow in the Tasks list that dynamically changes the permissions for each task based off who the task is assigned to. You can do this with SPD using the Codeplex Custom Workflow Activities (Delete Item Permissions and Grant Item Permissions).

  29. Keefer said

    I’m trying to allow a user filling out an InfoPath form to select documents from a SharePoint library in a multiple selection list box, but need those documents to be links to the documents on the form (not attachments and not just a text list of the documents). I’ve successfully created a data connection to the SharePoint library and connected it to a multiple selection list box, but cannot select a column other than static text columns (e.g. Title, etc.). Would love to pull the Name column since it is a hyperlinked column, but it isn’t listed as an option when I create the data connection. Is there a way to create a new hyperlinked column in the SharePoint library that I can use in the data connection or to code the InfoPath form so that the SharePoint library items are listed as hyperlinks?

    • Clayton Cobb said

      Keefer, I’ve seen this request before but haven’t tried to figure it out myself yet. The main thing is it doesn’t matter if you pull in a field that is a hyperlink, because the feature that causes it to BE hyerplinked is a function of the browser. In an InfoPath multi-select box, even if you could display a field that is hyperlinked in SharePoint, it wouldn’t be a hyperlinked value in the list box. The list box is only going to show static text, because it is a text box in and of itself.

  30. Leslie Foster said

    We have a business need to retain workflow history for auditing purposes (I work for a bank). We expect to need to retain AT LEAST 2 years worth of history (probably more). I understand the “log to history” is just a new list that has the standard recommended limit of 2k items. I’ve also seen that MS isn’t really supporting use of the list for auditing purposes.

    We will be moving to SP 2010 Enterprise sometime this year. Are you are aware of any improvements in this area with 2010 (or best practices we should look at)? Thx.

    • Clayton Cobb said

      Leslie, I haven’t seen anything that can be used for auditing workflow histories. It isn’t something that would be very reliable and useful after 2 years, so that’s a pretty tough requirement. You will probably need to build something custom to store the history items in a huge list, or customize the built-in workflow history list, which is hidden from the browser by default. Keep in mind that the workflow history is set to only keep the last 60 days of history items, I believe.

      • Leslie Foster said

        Yes, you are correct that the default is to delete history older than 60 days. We’ve got this turned off currently but expect this not a good long term solution. Thanks for the info 🙂

  31. Neel said


    Do you knopw of any third party tool for configuing FBA in SP 2010?

    I am looking for one, as ihave to set up on various servers in various locations which are not on farm nor will be in future


    • Clayton Cobb said

      I don’t think you usually use a 3rd-party tool for this. Everyone I see online just creates their own FBA member and role provider. There are a lot of blogs out there now talking about Claims-Based Authentication using FBA, so I would suggest looking for those.

      • Neel said


        Yes you are right, I have seen few good blogs about this.

        Here is my question:
        For example: If i have 2 servers (configured config file for FBA) and am planning to create 10 new SP sites, and each site is public facing with FBA, Now all the users for 10 sites sits in one database or multiple database..

        Did check the membership and role, so all of them sit in aspnet database, and I can manage in one place rather than multiple databases


      • Clayton Cobb said

        Should be in one database, and you point to that identity provider at the web application level. The sites, which I assume are separate site collections, would all be in the same web application, which uses the same FBA provider. If they are all separate web applications, then each web app would need to point to the FBA provider.

        Be sure that when you create your web application you choose Claims Mode.

      • Neel said

        Thanks for the quick response, all sites are in same web application

        Here is my main issue, I am trying to figure out how to handle this scenario
        Site A – 8 users – accounting

        Site B – 9 users – HR

        IF HR want s to add a users, when he logs into db using aspnet conn string, he sees all 17 users (8 accounting + 9 HR), Is there a way to restrict what users HR and accounting can see based on their domain.

        I haven’t done this befre, is there a way to filter out ? is so how

      • Clayton Cobb said

        I don’t think so, but I don’t know that sort of thing. I don’t ever use FBA. I use AD even for external users.

      • Neel said

        what would you suggest using FBA or LDAP ? going forward, which would make life easier in managing multiple users

      • Clayton Cobb said

        I avoid FBA at all costs, because I don’t like it. I consider AD to be easier, but that depends on many factors.

  32. Chris G said


    I have an InfoPath 2010 form created that has a rule set up to populate a field with the Document name from a SharePoint Document Library (MOSS 2007). I want that to be a hyperlink directly to the document. I’ve tried a million different things but to no avail.

    I can get it to put the name of the document in there – no problem. I converted the Control to a hyperlink but it comes up with an XVIEW link. I also tried converting the Data Type of the populated field to HyperLink (anyURI), but that doesn’t work either.

    Any tips? 🙂


    • Clayton Cobb said

      You probably need to concatenate the URL of the document library with the filename of the document and place that into the URL slot of your hyperlink field.

  33. Fred Barksdale said

    How do I get the SNMP Comm String in my SharePoint form to only be visible by me? I’ve been trying to find a solution for weeks. Any ideas?


    • Clayton Cobb said


      I just replied to this same question posted by someone named “Mike” on our COSPUG discussion board. Fred=Mike?

      Anyway, I am not sure what an “SNMP Comm String” is, so you can explain your situation? Nothing should show on your form that you don’t choose to show.

    • Clayton Cobb said

      Oh, also, when you say “SharePoint Form,” are you referring to InfoPath, and is it a browser form, and what version/year of SharePoint?

  34. Gary said

    Hi Clayton,

    I have an Infopath for I have created that includes views and user roles assigned to those views, which I have published to a Sharepoint server. Thus, this means that the form should open in the Sharepoint library it resides in using Infopath since it cannot be browser enabled due to the assigned user roles. When I try to open the form in the Sharepoint Library, it tells me “This form template is not currently browser-enabled. It must either be republished as a browser-enabled form, or opened using Microsoft Office InfoPath”

    I have checked in the Advanced settings of the library under browser enabled documents to ‘Open in the client application’ even though it is not browser enabled when I publish it. Still, it will not launch Infopath and open the form in it so the user can fill it out. Any ideas on why it is not opening the form since it is not designated as browser enabled?


    • Clayton Cobb said

      Does the user trying to open it have the right version of InfoPath installed locally? What is the method being used to open the form?

      • Gary said

        I found the issue was that IE was blocking it opening because the site was not in its Trusted Zone. I fixed that and the form opens in Infopath now. That brings up this question – I have assigned user roles to specific views in my infopath form.
        For instance, I have a Submitter view, Dept Head View and Mgmt View created for the form and
        a different user role assigned to each view. How do I set a Sharepoint Library to open the form
        in the view appropriate for the library the form resides in? (The Submitter submits the form and
        it moves the form to the library for Dept Head’s approval, so the submitter should see one view and the
        Dept Head a new view that has an approval area in it.

        I’m stumped on how to get it to open in the view I want, even though I have set a default view in Infopath.


      • Clayton Cobb said

        You have to switch the view on form load by using a Form Load rule. You go to Tools > Form Options > Open & Save > Rules, and add conditional rules that switch the view based off the user’s role or identity. I have a blog post showing how to do this in browser forms, but the same concept works for any form.

  35. Rahul said


    I am stuck in an issue here, wherein I have an AdminApproved form template in Infopath 2010. The template has a “GetUserProfileByName” dataconnection, that pulls in attributes from the UserProfile, everytime the form loads.
    I am going through a load – balanced environment, with 2 WFE’s. The strange thing is, I am pointing to one of the WFE and on trying to open a new document of the same template, the webservice query returns the data. But when I get off the form and reload it again, I get “An error occurred while trying to connect to a Web service.”

    Am I sure you must have an idea whats going on here. Any help would greatly be appreciated.


    • Clayton Cobb said

      In a load-balanced environment, using that web service can get tricky, because the URL is the load-balanced URL, so the call from the WFE goes back out to the load balancer and can have issues with access. What I do is add a hosts file entry to each WFE so that whenever the browser tries to browse the load-balanced URL, I make it browse itself. Basically, add a hosts file entry to each WFE for the same URL but pointing to the current WFE’s IP.

      • Rahul said

        Thanks for the reply Clayton.
        I have been also testing the form, by pointing to ‘A’ WFE.
        Well, I will be moving to a production environment pretty soon. I believe adding a hosts file entry would not be possible then.
        What I thought and did was a registry hack, to enable the ‘disableloopcheck’, thinking this would help. But this didn’t.
        Also, this is INTERMITTENT, in the sense that when a form loads its fine, when I reload it again, it throws the error or loads fine, or vice versa. So I am very confused as to whats going on here.
        Can you suggest anything that I could check?

        Thanks Clayton.

      • Clayton Cobb said

        It would be intermittent due to the load balanced WFEs, I would think. It probably works when on one WFE is chosen by the load balancer but not the other. 401 is an access issue (unauthorized). Loopbackcheck does need to be disabled, but the hosts file thing is not avoidable. Why would you not be able to do that in Production? That’s exactly where I’ve done it – I don’t load balance WFEs in non-production usually.

      • Rahul said

        Also, to add to my above comment, from the logs I am seeing a 401 error. Hope this helps.


      • Rahul said

        This is what comes from the logs:

        Bad One (Has no user context, hits the ws on the actual subsite):
        2010-07-22 21:36:00 POST /sites/active/_vti_bin/UserProfileService.asmx – 80 – InfoPathDA 401 1 5 0

        Good One (Has user context, hits the ws on the root site):
        2010-07-22 19:59:24 POST /_vti_bin/UserProfileService.asmx – 80 ESI7789304 InfoPathDA 200 0 0 62

        I have the bad one, on my form as a data connection. Not sure why there is a 401 there. Is this a permissions issue, not sure what could be done to prevent this.
        Any idea?

        Also, in production I have users filling out the form, so making a host file entry for them would not feasible, I think.

        If it boils down to the issue, that the load balancer is the culprit, what could you suggest in prod, to autopopulate the attributes?
        Also, the strange thing is that, I have made a hosts file entry to point to each one of the WFE’s, as you had suggested, but still its a hit and a miss, as it was before.
        Is there anything on the server that I could check. This is very weird.

        Please continue helping the needy 🙂


      • Clayton Cobb said

        I didn’t say a hosts file entry on client machines. I said on the actual WFEs. Those machines need a hosts file entry pointing back to themselves whenver a call is made to the load balanced URL due to the load-balancing issue. You don’t want the WFE to go back through the load balancer – you want them each to stay local and browse themselves.

        Let’s take a step back, though. I noticed something in this new info you gave. You referred to /sites/active as a sub-site, but that’s not a sub-site. That is an actual separate site collection. InfoPath can’t connect to data sources across site collections. You should always connect to the user profile service in the same site collection as the form. Where does your form exist? Is it in the root site collection or the /sites/active site collection? Make sure you ONLY connect to web services in the same site collection.

      • Rahul said

        Yes. It is connecting to the webservice, within the same site collection, that is /sites/active. I usually preview the form before publishing it out, so if I use it from a different site collection, I know that this would throw me a SOAP error.
        Let me just have my admin try your trick of pointing the WFE’s to itself on the actual WFE. I had never tried that for an infopath issue, very good point though.

        The strange thing is from the errors from the log file,
        2010-07-22 21:36:00 POST /sites/active/_vti_bin/UserProfileService.asmx – 80 – InfoPathDA 401 1 5 0
        I am getting a 401 for the webservice that I am using within the same site collection. This is where my actual form is published to.
        Also, this is the miss, while I can also have an occasional hit too, when I reload the form.

        My concern is with the 401’s. Not sure why I am getting them, when I am using the webservice from the same site collection.
        Do I need to change some security settings on the server?

        Thanks for being with the needy guy Clayton 🙂

      • Rahul said

        Here is the latest update.
        The good news is I have the form loading correctly, without any errors now.
        I had my admin make the hosts file entry on the WFEs, to point to itself. This wasn’t the only change that had to be made, in the process I also realized that the personal features had to be turned on. So now the form loads.
        The not so good news, is my admins here are not really comfortable making the hosts file entry on the WFEs. They are not sure why this would fix it. Ahh!! thats not too bad….

        Well, thanks again for your time and concern.

      • Clayton Cobb said

        Personal Features always has to be available to the user trying to retrieve data from the User Profile Service. It doesn’t get “turned on,” but rather it’s a permission, and everyone has to have Read permissions on it to use the web service. It NEVER would work if that permission was not granted to the user, so I don’t know how you were getting it to work intermittently.

        I explained earlier why the hosts file entry works in a load-balanced situation.

  36. Neel said


    This off topic,

    Can you please let meknow how to place abanner image on top of the ribbon using css or v4 master page in sharepoint 2010


  37. Shamshad Ali said


    Could you plz. refer my problem to one who can do this?
    Here is my post on MSDN Forum:

    I have one another problem:

    In the newer version of SharePoint 2010, we are using federated search feature to list custom open search service results in SharePoint. This works fine, but we are unable to customize the original sharepoint search result page to host federated search result web part in it. This page just doesn’t show up in SharePoint Designer. While working in SharePoint 2007, we had a result.aspx page when we type something in search text box, it lands to this page and we were able to edit this page and put our own web part to customize the search by giving .FLD file (Federated Search Results web part), we have our own open search service running so we used it. Likewise this when we are upgrading to SharePoint 2010, it lands our search to site/layouts/OSSSearchResults.aspx page which is basically in “_layout” folder and its template file. so we are unable to integrate our Federated search results with SharePoint 2010 default search results. Could you plz. help me in this regards? How this would be done?

    Post on MSDN forum:

    Please help.

    Shamshad Ali.

    • Clayton Cobb said

      For the Search issue, it’s just because you haven’t set up a Search Center and haven’t configured search to point to that Search Center. OSSSEarchResults.aspx is there in 2007, too, as the default search results page.

  38. Chris said

    How can I prevent editing of an approved document in Sharepoint. I am using an out of the box approval workflow. What is the simplest way to achieve this requirement?


    • Clayton Cobb said

      There isn’t really a simple way, but there are two ways I can think of: 1) Since you say it’s an “approved” document, then that tells me you are using the content management feature. This means that when someone edits the document, it goes into pending state and becomes a draft, so no one else can see these changes until it’s approved (published). So, if you keep content management active, then it doesn’t matter if anyone changes it, because only the approved (published) version will show, and the other changes will never take effect. This is a passive method.

      2) You could create a SharePoint Designer workflow to enforce dynamic permissions. You’d have to first download the Custom SPD Workflow Activities from Codeplex and install them on the server. Then, you’d have the ability to create a workflow on that doc lib that removes permissions ON THE CONDITION that the document is approved. You would remove the permissions of regular users, including the creator, but not the approvers/admins.

  39. jean said

    Is it that we cannot use Infopath services (customise form in infopath etc) , import from visio etc under a Standard Sharepoint 201 license rather thatn a Enterprise license ???

  40. Mahda said

    Hi clayton,
    I’ve created a workflow in SPD that should start when an item is created or changed, but it doesn’t work. when I create anotherr workflow with the same conditions and actions that should work when an item is created, it works well. both WF have one simple step with a “compare … field ” condition and “set field in current item” action.
    I cann’t find the reason, do you have any idea?

    • Clayton Cobb said

      My guess would be that either the condition isn’t being met, or you are trying to start the workflow with the System Account instead of a regular user.

      When using SPD workflows, always use “log to history list” actions at every step, conditional branch, and action so that you can debug the workflow by reading the workflow history. Be sure to have an “else if” branch always with at least one of these log actions so you know when the condition isn’t met.

  41. Mahda said

    Thanks Clayton,
    I see the value of field that checked in WF, so I’m sure it’s not the reason,and I logged in with regular user. I create another WF whit same conditions,actions,and …,and now that is working.I could not find the reason of this problem some times happens!!!

    There is another problem, I changed a SPD workflow but it runs previous version of that,I delete previous versions but this problem persists. what can I do?

    • Clayton Cobb said

      A previous version cannot run if a new version has replaced it. In 2010, you can’t just save the workflow – you must publish it to fully take effect. However, once it is published, all new workflows will use the new version. Old versions only run on workflows that already are underway when the new one is published, and if you delete old versions, it is not possible for them to run again.

  42. Mahda said

    I have a dropdown list that should be fill with users in a certain group in a sharepoint site.
    I think it should be possible but I couldn’t find any solution.
    Do you have any suggestion?

    • Clayton Cobb said

      You’ll need to use the UserGroup.asmx web service to get members of a SharePoint group. You use the UserProfileService to get members of an Active Directory group. The former is on (blog #37), and the latter is on my blog.

  43. john said

    I’m working on a custom SharePoint workflow which instructs Sharepoint to send a custom email to a contact which includes a link to a list item attachment. I can use the “Add to body” to insert a variable value to the list item, however, I want the a link that will bring the user directly to the attachment uploaded to the list item. Is there an out of the box “add to body” which will enable this to work?

    • Clayton Cobb said

      I haven’t tried doing it, but if I were to try, I would click on an existing attachment to get the URL of that attachment. I would then examine that URL to see what the variables are and then construct my URL using the proper variables so that it sends the user to the attachment of the current (or specified) list item. The problem is that you can have more than one attachment, so you need to find out how they are named and see if you can get this “name” for use in the URL.

  44. Derek said


    I am rolling out SP 2010 and along with it, browser based froms.
    I am looking for code to put behind my IP forms to
    1. Print the form either be for or after(can leave form open) the user submits
    2. The ability to save a form that may require more data input befor submitting to the form library. Preferably save it to their mysite content library. I think this would help eliminate the need for the IP filler software.

    Both of these are indeoendent and should have seperate controls.

    I have tried the “this.print()” but got errors
    Would like to have C# code, using IP 2010 as well

    Hope you can help me,

    • Clayton Cobb said


      I do all of my solutions without code and am not a developer, so I can’t help much in that realm. All the code I’ve seen for printing with a button has only worked in Filler forms, not in browser forms. I haven’t seen an example that works for browser forms, and be advised that Print code requires Full Trust, which is not a best practice. Is it truly important to print with a button instead of just using the built-in print feature in the InfoPath toolbar? That requires no development and no effort as long as your users don’t mind clicking Print Preview in the toolbar and then printing from there.

      Saving to another location for temporary purposes may work – I’ve never tried that, but saving to a dynamic location based off the current user would definitely require code, since you can’t put variables in submit data connections. It’s not so big of a deal to submit to a different, pre-defined location (i.e. a staging form library in the same site), but saving (saving is submitting) dynamically to a user’s MySite would require a dynamic submit data connection, which is definitely code. Why, though, is it a big deal to just submit to the same form library and have a metadata flag that defines the form as being in draft? That’s what I would do to again avoid a ton of hassle and custom code.

      • Derek said

        What I do not get is that there is a “print preview” button in the browser ribon but no “print button”. Is there something I am missing?

        Also, I am trying to secure all the form libraies, they are hidden fro users due to many fingers causing issues, I give them a link that pops open a new window with the form. So you can see from that example the users are very limited in what they have acces to. Kind of trick I know.
        But maybe I can give them a save button that dumps to a general library as you suggested, still not the best solution. but I am running short on time as well.

      • Clayton Cobb said

        Well, what is more important? To finish on time with a healthy, OOTB solution where users actually have access to where they need to go or to completely customize the system with code just to prevent users from being able to interact with the system normally while potentially going beyond the deadline? I have many, many solutions built for different companies and agencies where I don’t have to obscure everything like you’re mentioning. Why is it so bad in your environment? You’re making headaches for yourself for reasons that I’m not sure are valid, although you of course have been driven down this road by something bad in the past. I just don’t know if it’s something you could overcome with some more knowledge of how to use SharePoint or if it truly requires deep customization using code. I can do the vast majority of what I need without code, including obscuring stuff from the user and even dynamically assigning granular permissions to every item, if necessary.

        Btw, if users can submit forms to a form library, then the form library is not hidden. They can get to the form library if they browse to it whether it’s visible to on a page, link, etc. So, they aren’t actually limited in terms of access, but rather their access is obscured from view. If you dump a saved file anywhere, then how are they supposed to get back to it? Are you using a workflow to send them a direct URL to the form wherever it gets saved? If so, then I would still save them to the same form library instead of having to manage multiple locations with multiple publishings of your form template.

        As for print preview, that’s pretty normal behavior. Other Office products have it, and in InfoPath, it allows you to set a special view as your print view, and then this special print view pops up in a separate window for the user to preview before printing. Is that a big issue?

      • Derek said

        So is there a print button that is supposed to be in the browser ribbon?

      • Clayton Cobb said

        No, just a Print Preview button.

      • Derek said

        what do you do for a work around so users can print the form?

      • Clayton Cobb said

        As opposed to clicking Print Preview and then choosing their print options like in other Microsoft products? You can add Full Trust code to client forms to do this on a button click, but I don’t know of a way in browser forms.

  45. Barry C said

    First off, I want to say thanks for your blog and knowledge. I have read many of your posts on several sites and appreciate your guidance. Since you have posted about this I want to ask if this is possible, or if I am going crazy for trying it.

    I am running Office 2010, MOSS 2010, and SQL Server 2008.

    It seems that it is easy to create a filler form for a connection to a SQL Database, and easy to create a external type connection from SP to SQL. But how about a form that will allow Infopath to send and receive info from both SP and SQL server? It looks like this has to be done as a full trust form, but that does not seem to be the easiest thing to publish to make work. I pull much of the SQL data into SP and use that list as a datasource in Infopath, but I need to create a button to perform an SQL Command but it is fails. (I think because of the trust) I want to do this in a single form, does it sound possible?

    • Clayton Cobb said

      Why does it need to be Full Trust to submit to SQL? I don’t know of anything that would require Full Trust. If it’s a Filler form as you said, then it shouldn’t be difficult. You just will want to make it a regular blank template with submit data connections for both SQL and the SharePoint form library plus receive data connections for SQL and whatever else you need to use as a data source. I don’t know what you mean by “perform a SQL command,” but you should be able to submit to the DB without an issue. You could also create a web service for read/write with the SQL DB and use that instead.

      What exactly was requiring Full Trust? Did you write code that required Full Trust? I wouldn’t expect you to need code. Also, why do you know want to go though BCS?

  46. Rick Johnson said

    Hi Clayton,

    I’m getting server error (Server Error in ‘/’ Application.) after creating a new BDC service. I know the services are running. Don’t have any other service problems

    BDC errors in Log File, but still hasn’t helped me yet.
    Critical The BDC Service application BDC is not accessible. The full exception text is: Access is denied.
    Exception LoadController::RefreshThrottlingRules failed: System.ServiceModel.Security.SecurityAccessDeniedException: Access is denied. Server stack trace: at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter) at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invo…
    Exception …ke(IMessage message) Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at Microsoft.SharePoint.BusinessData.SharedService.IBdcServiceApplication.GetThrottlingRules() at Microsoft.SharePoint.BusinessData.SharedService.BdcServiceApplicationProxy.b__14d(IBdcServiceApplication serviceApplication) at Microsoft.SharePoint.BusinessData.SharedService.BdcServiceApplicationProxy.Execute[T](String operationName, UInt32 maxRunningTime, ExecuteDelegate`1 operation, Boolean performCanaryCheck, Boolean isChannelThatDelegatesIdentity) at Microsoft.SharePoint.BusinessData.SharedService.BdcServ…
    Exception …iceApplicationProxy.GetThrottlingRules() at Microsoft.SharePoint.BusinessData.SystemSpecific.LoadController.RefreshThrottlingRules(Object stateInfo) System.ServiceModel.Security.SecurityAccessDeniedException: Access is denied. Server stack trace: at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter) at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage…
    Exception … methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at Microsoft.SharePoint.BusinessData.SharedService.IBdcServiceApplication.GetThrottlingRules() at Microsoft.SharePoint.BusinessData.SharedService.BdcServiceApplicationProxy.b__14d(IBdcServiceApplication serviceApplication) at Microsoft.SharePoint.BusinessData.SharedService.BdcServiceApplicationProxy.Execute[T](String operationName, UInt32 maxRunningTime, ExecuteDelegate`1 operation, Boolean performCanaryChe…
    Exception …ck, Boolean isChannelThatDelegatesIdentity) at Microsoft.SharePoint.BusinessData.SharedService.BdcServiceApplicationProxy.GetThrottlingRules() at Microsoft.SharePoint.BusinessData.SystemSpecific.LoadController.RefreshThrottlingRules(Object stateInfo)
    Monitorable Watson bucket parameters: Microsoft SharePoint Foundation 4, ULSException14, b01ba824 “business connectivity services”, 0e00129b “14.0.4763.0”, c180aef3 “mscorlib”, 0200c627 “2.0.50727.0”, 4bebe8e2 “thu may 13 04:56:18 2010”, 0000420f “0000420f”, 00000051 “00000051”, 39c114b2 “securityaccessdeniedexception”, 66366464 “f6dd”

    • Clayton Cobb said

      Rick, the error says, “Access Denied.” Did you add your account as an administrator of this BDC instance? You do this from the Manage Service Applications screen by single-clicking the BDC service app, then clicking Administrators in the ribbon.

      • Rick Johnson said

        Yes I did add my account and others. Thus opening everything wide open from BDC service app. We did notice the below error application log when BDC page is being envoked. Thanks for you input.

        Event code: 3005
        Event message: An unhandled exception has occurred.
        Event time: 11/9/2010 2:48:30 PM
        Event time (UTC): 11/9/2010 10:48:30 PM
        Event ID: 3242118da188490fbb5c0618c6e1947b
        Event sequence: 1469
        Event occurrence: 22
        Event detail code: 0

        Application information:
        Application domain: /LM/W3SVC/1518422796/ROOT-1-129338152431220733
        Trust level: WSS_Minimal
        Application Virtual Path: /
        Application Path: C:\inetpub\wwwroot\wss\VirtualDirectories\3048\
        Machine name: ORSPSSWFE01

        Process information:
        Process ID: 1332
        Process name: w3wp.exe
        Account name: AMR\sys_psssvr

        Exception information:
        Exception type: SecurityAccessDeniedException
        Exception message: Access is denied.

        Request information:
        Request URL: http://orspsswfe01:81/_admin/BDC/ViewBDCApplication.aspx?AppId=d50151ef-3b6f-4ca7-9444-bb311ec43204
        Request path: /_admin/BDC/ViewBDCApplication.aspx
        User host address:
        User: AMR\kwarmack
        Is authenticated: True
        Authentication Type: Negotiate
        Thread account name: AMR\sys_psssvr

        Thread information:
        Thread ID: 22
        Thread account name: AMR\sys_psssvr
        Is impersonating: False
        Stack trace: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
        at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
        at Microsoft.SharePoint.BusinessData.SharedService.IBdcServiceApplication.GetEntitiesLikeNameAndNamespace(String wildcardedNamespace, String wildcardedName, Int32 callerCultureLcid, Boolean activeOnly, Guid partitionId)
        at Microsoft.SharePoint.BusinessData.SharedService.BdcServiceApplicationProxy.c__DisplayClassa9.b__a8(IBdcServiceApplication serviceApplication)
        at Microsoft.SharePoint.BusinessData.SharedService.BdcServiceApplicationProxy.Execute[T](String operationName, UInt32 maxRunningTime, ExecuteDelegate`1 operation, Boolean performCanaryCheck, Boolean isChannelThatDelegatesIdentity)
        at Microsoft.SharePoint.BusinessData.SharedService.BdcServiceApplicationProxy.GetEntitiesLikeNameAndNamespace(String wildcardedNamespace, String wildcardedName, Int32 callerCultureLcid, Boolean activeOnly, Guid partitionId)
        at Microsoft.SharePoint.BusinessData.Administration.EntityCollection.EnsureEntities()
        at Microsoft.SharePoint.BusinessData.Administration.EntityCollection.GetEnumerator()
        at Microsoft.SharePoint.ApplicationPages.ViewBDCApplication.FillTableWithEntities(DataTable entitiesTable, IEnumerable`1 entities)
        at Microsoft.SharePoint.ApplicationPages.ViewBDCApplication.InitializeEntityView()
        at Microsoft.SharePoint.ApplicationPages.ViewBDCApplication.OnPreRender(EventArgs e)
        at System.Web.UI.Control.PreRenderRecursiveInternal()
        at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

      • Clayton Cobb said

        It’s not something that has ever happened to me, so I’m not sure what’s going on. The error is non-specific, so it would require some digging. I have built a bunch of 2010 farms without this ever happening, so it points to something non-standard about your build. How did you create this service application instance? Manually or through the config wizard? Did you put it in its own app pool with a separate service account or did it use an existing app pool? Is the app pool identity of that app pool account AMR\sys_psssvr?

      • Rick Johnson said

        Let me dig into IIS more to see if that is the problem. Thanks for reply again. I will let you know what I find.

  47. Cory Williams said

    Hi Clayton,

    As a little background my clients group has an array of forms, they want each form to populate with default data about the user, so I am hitting against the Profile Service. However they also will be using approval for these forms and will need to select the approvers in some circumstances whereas other times it would be automatically derived based on their manager and that managers manager. However it doesn’t always follow that path for approval which is where the people pickers come in. So typically there are three approvers on a form, in some situations as many as six. In some instances I was using the people picker for the first approver, and then their manager would automatically populate as the second approver.

    What seems weird to me is how the people picker processes information when input.

    Here are the results I can get back when using the picker. The scenario does vary from person to person, probably legacy domain users vs. new domain.

    1. Click on the search and search for Virginia Hall
    Result Virginia K Hall with no Manager

    2. Enter in Virginia Hall and check the name
    Result Virginia Hall with Manger

    3. Enter in Hall, Virginia (prompts to confirm name)
    Result Hall, Virginia K no Manager

    I can use another person and get a manager all three times, with only the last item showing different. I have no real way to see the data as it exsists behind the scenes so right now I am grasping at straws.

    As another note this is a “no code” environment, using only Form Services in MOSS.



    • Clayton Cobb said

      This is definitely caused by artifacts in AD. Those are separate user accounts. Virginia Hall is not Virginia K Hall. Either AD needs to be cleaned out of the legacy user IDs, or your SharePoint profile import and User Info table need to be cleaned out and set to never retrieve those IDs, but it’s best to fix it at the AD level. This is not necessarily a case of the Contact Selector behaving differently, but rather a case of having multiple entities for the same person, and the CS isn’t sure which one to use. Once a user is in the User Information List (User Info table in the SP DB that has a separate entry for each site collection), then Contact Selector users come from that list, but if the searched value isn’t seen in the UIL, then it pulls from AD (or some combination thereof).

  48. Mucham said

    Hi Clayton,

    Can we use query, queryoptions while creating a SOAP Service connection data source to get the list items ? We can use the filter on dataview webpart, but I want to get the filtered items from the SOAP service to avoid performance issue.My list contains 50000 list items.So I have to apply the filter while getting the items from the SOAP service. Please help me. Thanks in advance.

    • Clayton Cobb said

      Mucham, what product and version are you referring to? You didn’t mention any of that, so I don’t know if you’re talking about InfoPath 2007/2010, SPD 2007/2010, SharePoint 2007/2010, or some combination thereof. Are you just talking about Data Sources in SPD that you’re using in a DVWP, and you want to filter server side instead of client side? Is this 2007 or 2010?

      • Mucham said

        I am using SPD 2010 to create a SOAP Service connection datasource and I want to filter server side.

      • Clayton Cobb said

        Is there a reason you’re not using REST instead? With REST, you can connect to lists via ListData.svc and provide query/filter parameters in the URL itself. To pre-filter SOAP services requires a query parameter. I know that lists have query fields (each field is a query field), but I don’t know if you can set and get on SOAP service dynamically from a DVWP. I do it from with InfoPath in SharePoint 2010 all the time, but not with DVWPs.

  49. Mucham said

    Our requirement is like the filter should be taken from query string. So If I use REST in SPD, I have to hard code the filter URL. To avoid this I am trying to use SOAP service.

  50. Scott Powers said

    Hi Clayton,

    I had a questions regarding InfoPath 2007 “Option buttons” and I wasn’t sure which blog to attach it to? Anyway, I am making a grade sheet InfoPath form where each task has 3 option buttons “Go”, “No Go” and “N/A”. What I need to do is count how many are “GO”, “No Go” and “N/A” for grading. For example, anything that was N/A would not be figured into the final score, so if there were 50 tasks and 10 were N/A, then 40 would be 100% and the value of “No Go” would be subtracted from that. I tried using rules and the count function, but could not figure out how to make it look at all of the tasks instead of one field?

    Again thank you!


    • Clayton Cobb said

      If it only looked at one field, then are you saying this is a repeating field in a repeating table with the option buttons repeated for each row and bound to one repeating field? Or, are the option buttons all connected to separate non-repeating fields?

      To sum all results of a repeating table, it would be sum(@Option[Option!=N/A]). This is basically saying to add up all the values of the Option field that AREN’T N/A. The part in brackets would not be hand typed. You would insert the Option field inside the Sum function and you would filter where Option is equal to N/A. Next, be sure that your buttons are set to these values: – Go = 1 – No Go = 0 – N/A = N/A

      That way, when Go is selected, the actual XML value is 1. Now, the result of the above formula will basically tell you how many rows were set to Go. Next, use count(@Option[Option!=”N/A”]) to get a total number of rows where something other than N/A was chosen. Lastly, once you have made sure both the sum and count formulas work, you put them together in the same formula with the sum one divided by the count one.

  51. Pranay Chandra said

    i understood the concept of sharepoint workflow but in my organization i need to create a Leave Form based on INOFPATH,So Manager has to Approve for leave and then Leave form must go to HR
    But in my Organization There r many teams and for different teams there are different Managers,so how Will Workflow automatically take Managers for Different Teams


  52. Mohammed said

    Hi Clayton,

    I have infopath forms saved in to library out of which there are some forms which is having problem.

    1) After saving form it is showing xml icon insted of Infopath Icon (Note: all the other forms are showing Infopath Icon except the few forms)
    2) Infopath fields data is not able to pull in to columns (Other forms field date are able to see in columns but only few forms data is not getting displayed in columns)
    3) Opening infopath form in Read Only mode is good but when it opening in Edit Mode it gives error (A device attached to this system is not functioning) and when i click on Ok button it opens a plain notepad

    Please help me
    Thanks in advance


  53. Clayton: I really do hate to bother you with questions; however, I have reached the end of the internet and have not found an answer to my delemma. I have a (SP2010) dataview web part diplaying help desk tickets. I have it connected to an infopath form displaying the information, but the only way to select and display the information in the infopath form is by clicking on the small double arrows next to the item in the dataview list. Is there a way to make it so another item, say ticket number, is clicked and the information is then passed to the infopath web part form. I greatly appreciate your knowledge and experience. Thank you.
    Kevin Hinderleider

    • Clayton Cobb said

      Not that I know of. Those double arrows are what represent the connected web part. I know how to make other fields of that DVWP hyperlinked, but I don’t know how to make them replicate the functionality of the connected web part arrows.

  54. jim mcdonnell said

    Hi Clayton,
    My name is Jim and I am looking for some reasonable training in SharePoint Devolopment. Can you tell me the names of any place in the Metro Area where I might be able to check out. I know of AmeriTeach but they are a little out of our budget at the moment.

    Thank You


  55. Diane said

    Please help, I am unable to track down the source of my 5566 error, Microsoft has so far been of very little assistance and I am absolutely just stuck.

    Form works fine from the inside the network using http: calling the web service, as soon as I try to use it from the outside using https: (through TMG) the web service call errors out with the dreaded 5566 error. The event log is not much help. I have tried several of the solutions on the web, Anonymous access is not on and I have edited the registry to disable loopback. Any help would be appreciated.

    (I have changed server names and domain.)

    The following query failed: GetUserProfileByName 2 (User: OurDomain\spadmin, Form Name: Template, IP: , Connection Target:, Request:, Form ID: urn:schemas-microsoft-com:office:infopath:list:-AutoGen-2010-12-31T02:07:49:296Z Type: DataAdapterException, Exception Message: Unable to connect to the remote server
    Unable to connect to the remote server)

    • Clayton Cobb said

      Diane, you said the event log is not of much help, but it has to be. There HAS to be an entry in the logs for this failed attempt either on the WFE or on TMG. It may not be in the Event log itself – you have to also look in the SharePoint logs. You didn’t mention if this was 2007 or 2010, so you either have to go to 12\Logs or 14\Logs and find the full details of this error. I have a large farm split across domains with ISA (precursor to TMG) in front of the load balanced external WFEs, and I have my browser forms working. I specifically had to do a good bit of work to get things like the User Profile Service to work, but it’s all good now. However, this is very, very advanced architectural stuff, which is why you haven’t been able to find help. I would not be able to go to that length of support for free, but we could help you professionally on this if you needed it. Otherwise, I can give some guidance in hopes that you figure it out with my tips. The first tip is to find the EXACT, detailed error in the logs so that you can find out why exactly it can’t connect to the “remote server.” Remember this. The user has already gone through TMG and opened the browser form, which is rendered by Forms Services on that WFE. The WFE then MAKES the web service call on behalf of the user. If you have one WFE, then it queries itself. If you have more than one, then it depends on your setup. Also, I am assuming this is the same form being used in HTTP and HTTPS, right? That means that when the HTTPS user opens the form, all the data connections are still HTTP. In our environment, we have HTTPS everywhere – not good really to have HTTP and HTTPS mixed for the same solution. InfoPath can’t translate its data connections automatically.

      • Diane said

        Hi Clayton, Happy New Year and thanks for the reply. I turned on verbose logging on the forms services (it is Sharepoint 2010 and InfoPath 2010) and am going to try to trap the error in the 14 hive logs. We have two Web Front Ends, and I will will have to look at how they are making the query to the web service. Thanks for that tip. We have changed all our connections and forms to HTTPS as well. We may need to take you up on the offer for professional help, please send me more info regarding your going rate. As you said some of of this is pretty advanced and the TMG is completely new to me. I will start with the verbose logs first and see where I can get from there.

  56. Debi said

    Clayton, Just watched your hour video on the leave form. I am struggling a bit with the same thing. I am using the OOTB Approval workflow which I am not sure I should do but it seems I am having some problems with it.
    The views – I have various views and I am hoping to do it like you did – manager view as the approver, submit view etc… Also, to be able to reject an approval and have it be able to re-submit by the initial requestor.
    I open the form and I have tried this two ways – if I have the username, manager name and manager email prefill from the user profile service on form load – that works but if I then go in as someone else it auto fills in the new users info on the form so the previous info is overwritten with the new users info.
    So then I created a rule to change the employee details and had a “switch view” rule run before it. The condition being that a cell in the form was filled already so that if that was the case that they got the approvers view. This only works until the initial user goes back in to resubmit and they get no submit button cause the view is the approvers.
    My links in the emails that get generated by the workflow open infopath in the thick client, I would prefer that they open in the web browser. I know that is alot but I have been trying various things and although your works great in the video, I did not really get to see the details of the view switching.

    • Clayton Cobb said

      You have fields for storing the submitter info and the current user info, but these are separate fields. For submitter fields (submitterUserName, submitterEmail, submitterManager, submitterFullName, etc), they should have default values that retrieve from the User PRofile Service. These will only get populated when the form is first opened. Then, create CurrentUser fields for all the same details, and you populate those with Form Load rules that run every time the form is opened. That way, you have hidden fields storing the current user’s info that you can compare against the submitter info and the MAnager info. However, these fields should not be shown on the form – they are hidden and only used for building conditions.

      The links need to be the full Forms Services URL. You can find my answer to that all over the MSDN InfoPath forums. I need to write up a blog showing how to do it so that I can stop typing it, but for now, just search for it, and you should find me answering it tons of times. THe Forms Services URL is much longer than just the URL to the XML file, and this is the URL you have to dynamically construct in your workflow emails.

      • Debi said

        Thanks again Clayton.
        So….I have the workflow setting “workflow status”.
        Please let me know if I have this correct – the status is set depending on the submit, approve and reject buttons which moves the workflow on to send emails etc… and the views are changed based on the currentUser matching with the submittingUser or submitting Manager.

        Couple more questions –
        1. Do you have seperate views for the “your submission has been made, approved, rejected that are kicked off by the button push?
        2. If that is the case, does the workflow status in conjuction with the currentUser make the view changes?

      • Clayton Cobb said

        Yes, those are views, and they are driven by the buttons. Each button has a purpose and is visible based off the person and workflow status. That is how I know which view switches to put on the buttons. I know the logic before the button is pushed. The view switches are not dynamic, but the buttons are.

      • Debi said

        Thanks again- I noticed that your workflow status dropdown field in on the form itself and that it appears to be read only. I have created the dropdown with the workflow status’s (if that’s a word) as dropdown selections and I assume it changes based on what button is pushed and who is logged in. I cannot however seem to make the field “read-only”

      • Clayton Cobb said

        Add a formatting rule that says, “If Field is present, Disable this control.” Choose a field that is always present, such as the myFields root folder. Just a little trick.

      • Debi said

        I am still having some trouble with the link in the email that sharepoint sends via workflow. I have read you explinations on how to do it (in various places, you have had to type this answer alot!)

        I am wondering if it has to do with my url have Xsn Location instead of Xml location in it.

        Basically this is my URL from the address bar when I open a doc.


        I have replaced everything after the first = sign with [%Current Item:Encoded Absolute URL%] and picked up at &SaveLocation=http%3A%2F%2Fportal%2FBank%20Forms%2FTimeSheets&Source=http%3A%2F%2Fportal%2FBank%2520Forms%2FTimeSheets%2FForms%2FAllItems%2Easpx&DefaultItemOpen=1

        It is still opening in the thick client. Any ideas?

      • Clayton Cobb said

        Debi, it’s not just XSN vs. XML. The XSN attribute tells the browser which form template to use. The XML attribute tells the browser which FORM to open. The reason why your sample below had no XML attribute is because you opened a new form instead of an existing form. If you had opened an existing form, then you would have seen a different URL, and it would have made more sense. You SHOULD have both the XSN and XML values, but they should not all have Encoded Absolute URL. Only the XmlLocation should have [%CurrentItem:Encoded Absolute URL%], because that is the URL directly to the current form. However, XsnLocation should have the URL to the form template, and this should just be static text, not a variable. Remove the entire SaveLocation node if you aren’t using the Save button in the toolbar (I never do), and set your Source attribute to the URL you want people to return to when closing the form (usually the default view or My view of the list/library).

        Make sure you take out all the encoding and use real characters. For instance, instead of %3A, use :. Instead of &, use &.

      • Debi said

        Well I guess that was it – I changed Xsn to Xml and it worked. Sorry to bother you with that.

      • Debi said

        I am sorry – I seem to be missing the “aha” moment here. So I have created the submitter fields seperate from the Current User fields.
        When I open the form the submitter fields which are on the form are auto filled by the pull from UserProfile.

        When I open the form as myself (not my test user) it pulls all my info in there as the current user. Do I need to change the fields on the form?
        Previously you said not to put the current user fields on there – which I have not.

        I apologize that I am missing this. I really do think that you are going to explain and I am going to go “OHHHHH” “head slap”

      • Clayton Cobb said

        The Submitter fields should only get populated when the form is first opened. You can ensure this by setting their default values to the corresponding values of the User Profile Service. When using default values like this, those fields should ONLY get populated when the form is first opened and never again.

        For the CurrentUser fields, you don’t use default values. Instead, you use Form Load rules to PUSH those values every time the form is opened so that they update every time. Are you saying that your Submitter fields are changing every time someone new logs in even though you set their values using default values?

      • Debi said

        Well I have a feeling that I just have the wrong fields on the form.
        When someone new opens the form the default values of the submitter fields get pulled from the UserProfile Service. These are the fields that are on the top of my form for Name and Manager Name.
        After I submit the form, the manager gets notified and when they open the form – the same fields (the submitter fields on the form) pull data and fill them in again with the managers info.

      • Clayton Cobb said

        The Submitter fields should not get populated every time. They should be set to only populate the first time the form is opened.

      • Debi said

        I am not sure how to do that. They are on the form and the default is set to pull the data. How do I tell it to only do it once?

      • Clayton Cobb said

        In all of my forms, when I set a field’s default value to a node of the User Profile Service, it only ever populates the first time. I don’t know why yours are populating every time. You are sure you don’t have any Form Load rules or other rules doing it?

        You can try de-selecting the check box on those fields that says to update the formula.

      • Debi said

        That was it. I uncheck those boxes and it is now only pulling that data on the first time.
        One other thing I noticed. I created only one view of the form and have the buttons dynamically showing up or not – I was wondering how to made the words “reason for rejection and approval comments” be visible or not or if you had another full view of the form for that.

      • Clayton Cobb said

        I put text inside a section and put conditional formatting on the section to hide/show based off the user and workflow status.

      • Debi said

        Thank you Clayton!!

      • Debi said

        Did you have any trouble getting your buttons to click the first time. I put in comments and then click the Approve button but nothig happens until I clisk it again???

      • Clayton Cobb said

        That’s because you have to remove focus from a field before performing another action. When you type data into a field, the data is not committed until you put focus elsewhere (tab or click elsewhere). If your next movement is to click the button, then this only changes focus and commits the comments to the field, which makes it seem like it requires 2 clicks. Really, you just have to commit data to the field before performing your next action. Clicking tab is the easiest way, imo.

  57. Derek said

    I am trying to create an invoice template in Infopath, the request was made to have a static border and also place a staic filed at the bottom of the page. The information that fills the invoice is pulled from a different view and is placed in a repeating table. (both views are using the same data source binding) I am really stuck on how to hold a text box to the bottom of the page because as more data is entered it pushed the remaining filed/border down. Any thoughts on this?

  58. Clayton:
    Have you every heard of a way to date/time stamp an entry into a notes filed that is inside an InfoPath 2010 form. Such that when a new note is entered either in the rich text notes field or by adding a new entry in a repeating section? Thanks for the reply in advance.


    • Clayton Cobb said

      Sure, you just add a rule to the notes field that sets the timestamp field to the now() function. If you mean you want the timestamp inside the same field as the notes field, then use a rule that sets the notes field to concat(NotesField, ” “, now()) or something like that. That will take whatever is in the notes field and concatenate the date/time to it.

  59. Debi said

    On your absence form do you have another view with the “stamp approve” pictures at the bottom or did you create 2 more sections that can be hidden/shown that have the pictures of the approval stamp?

    • Clayton Cobb said

      It’s all in one view with conditionally formatted sections. My other views are only for post-submit messages to the user.

      • Debi said

        Another question – All my “post-submit” message views “submit using the data connection” and then close, the user is sent to the home page of the site (where I want them).
        The only one that does not is the initial submission. It just closes the form and then they go to the submission doc library where I do not want them.
        The initial submission in done on the actual “submit” button that has other rules on it – like the itial status change and the “edit” vs. “firstsubmission” strfilename rules.
        How do I get the initial “sumitted successfully” view to take them to the page I want them left at?

      • Clayton Cobb said

        Your buttons don’t control. That is controlled by the Source parameter of the URL. The reason why it works right for your subsequent edits is because you are sending the user a pre-defined URL via email that has the Source parameter set to your home page. However, when they click “New” from the form library, Forms Services automatically sets the Source parameter to the the same place where the user clicked New. If you want this to be different, then you can’t let your users click New from the library/list. YOu will need to formulate the Forms Services URL for opening a new form (click on a new form and copy the URL) and replace the Source parameter with your desired return location, and provide this link to your users somewhere. It can be on your home page, in the navigation, on a custom page, in an email, etc.

      • Debi said

        Ah- perfect. Thanks so much for explaining that –

        I have them click a link to launch a form anyway so I will set the URL properly. I have been doing all the testing with a test account and launching the form from the library. I love it when it is easy 🙂

  60. Roby said

    Could you shed some light on an efficient way of deploying InfoPath forms, in the following scenario?
    Consider a situation, where I have admin approved approved form templates, with data connections to a WCF WebService and the User Profile Service.
    I develop the form templates and in the process use ‘DEV’ data connections. As I move to another environment say Production, I need to change the ‘DEV’ data connections to ‘PROD’.
    Is there a better way of going through this deployment process, assuming that I do not want to manage data connections ‘hard-coded’ on the form template, rather have a config file which I would edit when I am moving between environments?

    Thanks for your help.

    • Clayton Cobb said

      Roby, I don’t use Visual Studio and don’t work with custom code, so I’m not a great help in this area. If you have the forms and data connection files in both environments, then all that needs to change is the root URL of the data connections. I would imagine you could change this dynamically in your feature when deploying updates, right? If not, then if you’re using 2010, re-publishing to the new environment asks you if you want to update the data connections, and it does it for you automatically. If neither of these are an option, then you can simply export the form template to its source files, open the manifest.xsf in notepad, and use find/replace to fix all the root URLs. After saving the manifest changes (be aware that the form template must be closed when doing this), you right-click it, design, then publish to the new environment.

  61. Emma said

    Hi Clayton,

    I’ve created a request form library that has a workflow to Create a List Item in a task list with certain information from the form. I have had to create custom workflows because of requirements that did not fit the Assign a To-Do Item workflow.

    The problem I have encountered is in updating the due date in the task list item when the due date is changed in the InfoPath form; while I can use the due date field to perform a look up if needed, it is not accessible in the Current Item (popular thinking is because it is actually a value from the InfoPath form) for comparison so I can’t access the field to set a condition to test the two date values.

    How can I update the task list item when an edit is made to a field on the form?

    • Clayton Cobb said

      It should be easy to update the due date of the task when the date in the form changes. I didn’t understand why you couldn’t do it. If there is some date in the form that drives the task, then make sure that field is promoted to the form library, then have your workflow use “update list item” to update the task, and you update the right task by saving the ID of the form into a formID field of the task. That allows them to be tied/associated for updating purposes. This workflow should run on the form library.

      What did you mean by, “it is not accessible in the Current Item (popular thinking is because it is actually a value from the InfoPath form).” It SHOULD be accessible – why isn’t it? The “current item” is the form that edited. The only thing you may run into is the fact that you likely promoted your date field from the form and let InfoPath create the column, which means it’s a single line of text data type while the task Due Date is a date type, so maybe your workflow comparison area isn’t letting you match separate data types. In this event, you use a variable to convert the task due date to a string. In any event, you have to make sure the syntax is exactly the same and that the data types match.

  62. Emma said

    Hi Clayton, and thank you for the reply, I didn’t expect to hear from you so soon.

    I didn’t promote the date field from the form, it is a column in the library that is assigned the date value from the form and I do have a taskID field for each form library item (This field is also in the library, not promoted from the form. I changed its type from single line to Number when it didn’t display in the lookup). Apologies though, for not being clear on what exactly isn’t accessible.

    What I should have said was that I can’t perform a lookup on the task because the task ID field does not show up as a field in the Lookup Details. To make it more clear, this is what happens when I try to set the condition (the same thing happens no matter which of the two conditions I use, or whether the current item is the first or second value):

    1. Set first value to the Date Due field of the Current Item
    2. Set second value’s Source to the task library (which displays the Find List Item section)
    3. Set second value’s Field to the Date Due field of the task library

    In the Find the List Item section:

    1. Set Field to the task library’s ID field
    2. Clicked fx to open Lookup Details
    3. Kept default Source: Current Item

    At this point the TaskID field of the form library does not show up in the Field list so that I can look up the task item using this value.

    I hope this gives you a clear idea of what my problem is.

    Thanks again.

    • Clayton Cobb said

      So you’re doing it the opposite way by storing the task ID in the form library record instead of storing the form’s ID into the task that you create?

      When comparing IDs, it’s the same thing. The data types have to match. Do you have the exact same data type in your taskID field as a built-in ID field? It’s integer, I believe. I know you mentioned number, but that number may be 1.000000000, which is not the same as 1. I regularly relate things by ID, and it works fine. Without digging into it myself, all I can say is you have to get your syntax and data types to match exactly.

  63. Emma said

    I’m actually storing both IDs. ParentID in task, TaskID in form, since there are updates in both directions that we want to occur.

    I have related things by ID as well in another project I completed recently. That’s why I’m finding this so perplexing. I compared the two and can’t see where this one is different from the other but obviously something must be.

    I’ll tackle it again next week. Hopefully my next post on here will be a hooray that I’ve figured it out and not that I’m still stumped!

    • Clayton Cobb said

      You only need one ID to work in both directions, because that’s a relationship that works both ways. You don’t need to store both IDs and compare those IDs at different times. If the task created by the form stores the form ID, then that’s all you need.

      • Emma said

        Thanks Clayton. I realized after looking into this yesterday (meaning that the lightbulb finally came on! 🙂 what you meant about the ID’s. One of those things that is so obvious once noticed that you don’t know how you missed it initially.

        Anyway, this is working just fine now, but now I’m having problems with a workflow that is doing the opposite, updating request fields when the task is updated. But I’ve posted that on the Microsoft SharePoint Forums, so you’ll probably see it before too long.

  64. Derek said


    I have a library that I created an Approval workflow in. The WF runs 2 seperate approval processes and I set variables to capture the “comments” from each approver and write them back to the library into a site column, I would like this data to be in the infopath form but I am unable to figure this out.

    If I tell the workflow to update fields in the form, I get blank fields. If I try to use a data connection to the library and pull the column data into the form, I seem to get blank values as well. I do not seem to be able to create a filter that will pull data. If I publish a repeating field from the secondary connection I can get all the data that is in the coulmn. I even did this with the ID field to see if they lined up, then tried to filter by ID but still get nothing.

    Is there a way to publish the WF variable back into the InfoPath form?


    • Clayton Cobb said

      You first need to make sure the field exists in InfoPath, then promote it during the publishing process, MAKE SURE IT’S SET TO ALLOW EDITING in SharePoint (this is a checkbox on the property promotion screen when publishing), then the fields will be available for updating via SPD. I do this quite a bit.

      • Derek said


        Thanks for the help. I had it at about 90%, the check box that allows editing was the hang up.

        One other question for this topic, I am altering the Task Forms in InfoPath, I am creating a data conection back to the library that the form was submitted to kick off the WF. I want to include data from the original Infopath form so the person completeing the task can do “1 stop shopping”,so to speak. What would you use as the filter to capture data from the data conection? Would I use the title or ID? And how would it look?

        I have done a lot of filtering but none that are pulled into a WF like this. I can’t seem to jump this hurdle. And I know I do not want a repeating field, as if I right clicked on the secondary data source to insert.

        Any sugestions?


      • Clayton Cobb said

        It’s best for the person to view the original item as-is without pulling the data into the task form. There is no unique identifier for doing a lookup back to the original item. The workflow maintains the ID of the task so that you can cross-reference from within the workflow, but the created task only stores a reference to the original item in the “Link” column. This is a hyperlink column that displays the name of the original item and is hyperlinked to the that original item. The name is not unique, but the URL should be. However, when I’ve tried doing exactly what you’re talking about, it just never worked. Task forms are very limited relative to full InfoPath forms. I’ve been adding data connections that work in preview but never work in the browser as if they aren’t getting triggered – I haven’t mastered this yet and am not sure it can be done.

      • Derek said

        I figured as much.. Seems like this system(SP 2010 & IP 2010) gives lots of hope to alot of special tricks but in the end it is very rudimentary.

        Well 1 last thing… How do you open a new form from inside IP since the button does not have that as an option in 2010?

  65. John said

    MOSS document library views of 2007 InfoPath form-created XML files do not display column content for all XML files (all XML files have text in the fields). I noticed there are some duplicate column names listed when modifying the MOSS views. After adding the duplicate columns to a view, the view shows text in both columns for some XML files, and text in one or the other duplicate column for other XML files in the library.

    The XML files were created by a 2007 InfoPath form template published many times as the same site content type. The duplicate columns are coming from form template fields that have not been modified in InfoPath since being added to the form template. (the same template fields are published as columns everytime the form is republished)

    How can these duplicate columns be removed from the MOSS document library such that all XML files will display column text in the MOSS views?

    • Clayton Cobb said

      That happens when the form template gets out of sync, so you now have columns with the same name but different GUIDs based on the two templates that are published (this easily happens with content type publishing). Some of your forms are associated with a different template than the one you’re now using. Did you ever publish this form template directly to the library and then later publish it as a content type to the same library with the same columns? If so, this is one scenario that duplicates the fields (same name/different GUID). The best way to remove fields is to re-publish and remove the properties from the property promotion screen of the publishing wizard. However, it seems your CURRENT template is tied to the new columns, so if you don’t know which template version the old columns are associated with, then there is no direct way to get rid of them.

      If this is your situation, then I recommend first going to the Relink view and re-linking all the files with the current template. Then, you’ll need to refresh the data in the form library by either opening and closing every form (don’t have to submit/save – just open and close) or open the whole form library in Windows Explorer, then refresh the form library – the data should all show up in the same columns and all the old columns should be empty. IF you have a lot of files, you may need to scroll through the whole list of XML files in Windows Explorer. I know it sounds weird, but it works.

      After everything is re-associated with the current template and no data exists in the old columns, you’ll need to use something like SharePoint Manager to remove the old field, but you need to be very careful that you check all the GUIDs to make sure you remove the right ones. I recommend saving the entire thing off to a dev environment or at least to a temporary subsite to test all of this before doing it for real.

      • John said

        Something I forgot to mention – when publishing the template to the site content type, one of the wizard dialogs in the sequence of publishing dialogs allows the path/filename of the updated template to be specified. When making changes to the template, like adding/deleting fields on the form, I would change the name of the updated template slightly (append a date-code) so the template associated with existing saved forms would continue to exist unchanged. Otherwise, the existing XML files (forms) could not be opened.

        I did not ever publish the form template directly to the library, always updated the site content type.

        However, I found out other groups could not utilize the site content type as is (which was the reason for publishing as a site content type) because they had their own library paths. Since it required programming to save forms to another library path, I did publish the template to the other group sites document libraries. I did that by copying the template on my PC to a new directory on my PC, updating the connection definitions to the new location and publishing to the other group document libraries. So far, I’ve only published once to their sites.

        Since I have multiple ‘versions’ of the template (i.e. different template names) in the site content type it sounds like I need to relink and refresh the data in the form library using the site content type.

      • Clayton Cobb said

        Oh man, you definitely shouldn’t have changed the name like that. The location of the save should be in a doc lib with versioning turned on – you don’t change the name each time – you just overwrite the existing version.

      • John said

        I don’t recall if the instructions to set up the template this way said to turn on versioning or not (back in 2009). It’s odd that MOSS, as structured/rigid as it is, would allow the name to be changed each time the template is published to the same site content type. I notice when I republish the copy of the template for another group to their doc library (not published as a site content type) then the publish dialogs don’t allow me to change the template name.

        If the existing forms (XML files) can be ‘upgraded’ to the latest version of the template, then I could move to the built-in version control of the template. Is there a process to ‘upgrade’ existing forms that were created by earlier ‘versions’ of the template so they all work/open with the latest ‘version’?

      • Clayton Cobb said

        You use the relink function in the form library – it’s a built-in view.

      • John said

        Clayton, just wanted to close on this. Thanks for the help. The relink worked, though it fired off the workflow in some cases (oops). Will avoid the template rename/publish method, use template versioning instead.

  66. bonka johnson said

    Hi Clayton, first thank you for tons of great info…

    I am reading about IP 2010 and workflows and I cannot figure out one thing. All examples I’ve seen use one infopath form and one workflow. Is it possible to create more complicated list with multiple forms and workflows?

    for example, the list can store job requests and depending on the request type (defect, change, new project etc.) different IP forms will be shown with some fields used across all the forms (like “job number” or “due date”). When to design different workflows depending on request type, so projects will go through approval process for example while defects will go through a fast path

    • Clayton Cobb said

      Bonka, you can do whatever you want. I just built a conference management system that has one form for submitting and approving events themselves, and then it has a separate form for employees to request attendance ONLY to the approved events. These are separate forms in separate form libraries with about 6 total workflows working in concert. Some of the workflows go across from one form library to the other, and both forms pull data from SharePoint lists and the User Profile Service. This is all more complicated than one form with one workflow, but that’s ok – it’s just an example for you that you can certainly do whatever you want.

      • Bonka Johnson said

        thanks for the quick response, Clayton, and example! very interesting, I did not think about that from a perspective of having multiple libraries working together…but the rule is only one set of forms can be used withing one library, right? (one form for new item, one for edit and one for view)

      • Clayton Cobb said

        No, that’s definitely not the rule. Content Types are a major, major part of SharePoint. Content types allow you to have multiple types of content in a single list or library. For document libraries, you could have multiple content types for different pre-defined document templates, or the same template with separate metadata fields (columns). In lists, you can have multiple different types of tasks in a Task list, for example. Each content type can have its own set of forms.

        Btw, the way you asked about new/edit/display forms, I am guessing you’re talking about actual lists, and if you want to use InfoPath, then you’re talking about lists converted to InfoPath. This is a brand new feature in 2010, so don’t take that for granted. All InfoPath solutions built up until this point were in form libraries where there is no new/edit/display “form,” but rather one form template for all scenarios. In fact, in lists converted to InfoPath, there really is only one template, but SharePoint does the conversion for you by creating 3 separate pages with the InfoPath form web part on each page where the form template acts according to the page you’re on. When simply creating and managing your own template, none of that is done for you.

      • bonka johnson said

        thanks, Clayton. looks like I need to do my homework, thanks for the idea about multiple libraries and content types – will research that

  67. Steve Allen said

    Thanks for sharing your skills!
    I’ve been stumped on something and thought I’d run it past you. It has to do with setting item level permissions using a multi-user column in SP2010. I have an infopath form with a multi-people picker field that we eval to another field which is promoted and works fine for the approval part of the workflow. Tried SPDActivities grant permissions on items as well as impersonation ‘add list item permissions’ and it seems neither can handle multi-user fields or person or group fields. The closest viable option I’ve been able to find so far is here…
    …but I don’t know the first thing about coding.
    Do you have any ideas on how I could accomplish this without code?

    thanks again for all your efforts,

    • Clayton Cobb said

      Steve, one thing I confirmed early on in SP2010 Beta was that we couldn’t use multi-person People Picker fields for assigning dynamic permissions. So, my workaround is to have multiple single-person People Pickers whenever possible. However, I _have_ been able to assign tasks from mutli-person People Picker fields. You SHOULD be able to leverage People Picker fields for assigning dynamic permissions AS LONG AS they are set to only allow one user or group; however, that only works if it’s a SharePoint People Picker, which would require an InfoPath list form. If you’re working with InfoPath form libraries, then everything is much different, because the schema of the form is not bound to the library. This is why we do things like the double eval trick in 2007 forms and 2010 library forms. In this scenario, I assign permissions by promoting the AccountId value of the Contact Selector schema and use that in the permissions assignment.

      I use the Codeplex SPDActivities for 2007 all the time, and they work, but they only work for 2007. How did you test them for 2010? He hasn’t built a new set for 2010, and some of his stuff was added to the product like the dynamic permissions, which is great. I see the code posted by that user in the comments sections, and we can try adding it to the source code to see if it works. If it does, then I’ll let you know. However, it does require knowing how to pull down the source code, update it in Visual Studio, re-package it, and re-deploy the solution to the farm. This will definitely require code to accomplish, but the code is only written for making the custom activities, and after that, it’s reusable by non-devs. However, these are only for 2007, so to do it in 2010 would require writing a new custom activity that does what the OOTB ones do plus this extra feature. I’m not sure I can get that done quickly.

      • Steve Allen said

        The SPDActivities installer exe didn’t work for me on 2010 so I installed the wsp manually with powershell and all the SPDActivities have been working perfectly. Thanks for your quick reply.

      • Clayton Cobb said

        That is interesting – they arent supposed to work, because the structure is different in 2010.

      • Steve Allen said

        I guess I should say “the handful I’ve tried have worked for me” as I haven’t tried all of them.

  68. haltindag said

    Hi Clayton,

    I put my question regarding SharePoint list on

    Can you PLEASE have a look at my question? I hope you can give me a good workaround as you gave me one last week.
    I want to be redirected to the HOME page after I clicked SAVE button in Add new/Edit item mode.


  69. Gaber said

    Hi All,
    Thanks for all and specially Clayton Cobb..
    I am a new developer in (sharepoint-infopath) and i hope to find the solution to my problem.
    I have need to create form library and change some items in it’s list according to data in it’s infopath form when the current date is changed(Daily).
    It is easy to do it manually, but my question is: if it is be able to do it automaticly ???

    i have used MOSS 2007 and infopath 2007

    • Clayton Cobb said

      Gaber, I don’t know exactly what you mean by “change some items in it’s list according to data in it’s infopath form when the current date is changed(Daily).” Please clarify.

  70. Ravi Gupta said

    Hi Clayton,

    I have a problem. I was trying to put a hyperlink field pointing to current form. For this I used a field with below default value:

    concat(SharePointSiteCollectionUrl(), “_layouts/FormServeraspx?XMLLocation=/SIP Support Forms/SIP Support -“, Customer, “.xml&DefaultItemOpen=1”)

    Its working fine but I think there should be a more cleaner way. Please suggest.


    • Clayton Cobb said

      There isn’t a cleaner way if you have to generate the URL from within InfoPath. If you generate it within SharePoint Designer, then you can do it differently.

      Btw, you need to make sure you add a Source parameter so that the browser knows what to do after the form is closed.

  71. Steve said

    A friend was using your autonumbering on a library. The library has over 2000 items and IE choked when the datasource retrieved all the IDs. Apparently IE doesn’t parse the long list(?) They used code behind to solve their problem. I am looking for non code behind solution. How would you do it? I ran a test on two Libraries. One with Items and one without. When selecting the ID, it is displayed differently. w/Itms ows_id, w/oItms ID. I created an XML connection to the libraries with a view that shows a limited list, sorted by create date. I can retrieve the maxID, (if there are items). On an empty library the ID is not prefaced with ows(does it matter). I retrieve the maxid and set the numID to it, I then check if numID is blank and if so, I set it to 1, otherwise add 1. before I go further, thought I would check to see if there was a better way. Thanks once again for your help.

    • Clayton Cobb said

      I create a limited item view showing most recent items and use the XML data connection method to connect to that view, so you’re already using the same trick.

      • Steve said

        When using the xml data source, I can not get the rules to set up on a new library. When trying to select the ID from a secondary source, the ID appears under schema. ows_ID does not exist until a row is added. I ran a test and whether a row exists in the library or not, the ID under the schema contains the value “RowsetSchema” . Therefore, I can not check if ID contains this value. I tried counting the other fields. But, they do not contain valid info “Row”. Nothing to distinguish between a new library or one with items. Do you have any idea how to check if this is the first time a form is being added to a library using the xml data source.

      • Clayton Cobb said

        Yeah, I always have to add an item for the XML data source schema to get built properly in the form, so I don’t have an answer for you in this case. Chicken before the egg…

      • Steve said

        thank you for your reply. wanted to make sure I wasn’t missing something. I’ll try using xpath. If I find a way, I’ll let you know.

  72. moujan said

    Dear Mr.Clayton Cobb
    I am a new SPD and I would like to make a leave permit form, I have designed it but InfoPath and published it, when I set workflow at SharePoint desinger2007, that have 1 step and in its action I used Assign a to do item which send request to the manger but manager can only complete the task or cancel. I like he can approve or reject it, how I can design it?

  73. James Hess said

    I’ve read a lot of your posts recently and figured I’d try hitting you with this issue, see if you’ve come across it and have a fix.

    I’m working on a Sharepoint 2010 implementation. We have the site and subsites created, tons of lists and data setup already. But, workflows are giving us real trouble. Any workflow with a pause in it simply doesn’t work correctly. They will periodically work, but most of the time, when the pause is reached, it just hangs there and will not restart.

    This issue is WIDELY known and posted about, but to date, I’ve been unable to find a true fix for it.

    Any help is appreciated.

    James Hess

    • Clayton Cobb said

      James, you say the issue is WIDELY known? I didn’t know that to be the case. I have dealt with it before, but it’s a very, very low percentile occurrence in my experience. It did happen with a current customer I have, and we used an stsadm command to basically reset the timer job that handles workflow pauses. I don’t recall the exact syntax, but if you search for stsadm and workflow-timer-job, you will probably find it. That’s all I have to offer at the moment. To really dig deep into the situation, you have to go look into the content database to find the tables where the row of data gets written while waiting for the timer job to pick it up. YOu need to see if the row is getting written to begin with and then see if it’s being removed from that table when the timer job hits.

      • James Hess said

        In looking at this issue, we’ve found hundreds of posts of people having this same issue, both in SP2007 and SP2010, where my widely comment came from.

        It’s a pretty frustrating issue to have though. Workflows work great until we insert the pause, both for a time duration or until a specific date. And, even more, we can use a keyed date, static date or calculated date and get the same problem.

        In the workflow, everything runs great until it hits the pause, then it just never comes out of the pause, or most of the time that is the case. If I let the workflow sit for a while, sometimes it actually works when I run a test.

        At this point, we’re unable to use a pause and need to be able to. We have a workflow that waits until a Reminder Date that is calculated based on an Expiration Date (which is keyed in). On that Reminder Date, the workflow needs to kick off a reminder email to both the Created By and others that are entered.

        Not sure if we’ve run the same command you’re referring too, but we’ve actually done several around the timer to this point.


      • Clayton Cobb said

        You have to dig into the database to see exactly what is happening (and not happening).

  74. James Hess said

    Yeah, we’ve been there too today, just driving me nuts trying to track this one down. Also found we are running the workflow timers at 1 minute intervals, might be too often so we’re bumping up to 5 and then working backwards if that helps.

    Just one of those issues that is driving me crazy trying to resolve and I can’t stand not being able to fix something.

    Thanks for the help

    • Clayton Cobb said

      Yeah, 5 minutes is the default, but I prefer 1 minute. However, I have found issues that arise when dropping to 1-minute intervals, so it’s at least something to check.

  75. kiran said

    i designed a sequential approval infopath form. It consists of multiple approvers.In that form it consists of approve and review buttons.actually my question is If first approver approved the form then he signed with his digital signature in a section then he submitt it the mail goes to second approver ,If he clicks review button the form should goes to edit mode.then i want to clear all digital signatures before edit mode.

  76. kiran said

    how to remove digital signature based on rules in infopath?

    • Clayton Cobb said

      I don’t know if that can be done – I’ve never tried it. Once a form is signed digitally, it gets locked. I’m not sure if the digital signature can be removed with a rule – there is no such action.

  77. kiran.g said

    When a digitally signed web-based form is rejected and send back the
    applicant, the signature must be removed to let the fields fill out again.
    How can I remove the Signature node in between the group?

    • Clayton Cobb said

      Kiran, are you sure this is a viable solution? If someone digitally signs a form, then it is LOCKED. No one else can touch the form or at least the section that was signed. It would not make sense for another person to be able to remove the signature, because that violates the integrity of the signature. If I can remove your signature, then what’s the point? That’s not how digital signatures work. I have never seen or heard of any activity that can do this. I said that in my last reply. It can probably be done with some invasive code, but the whole concept violates the purpose and integrity of signatures. I don’t know of any way to accomplish what you’re trying to do. Why does the original user not just remove the signature himself? If he gets notified of rejection, how come he can’t remove his signature?

  78. kiran.g said

    how to hide or remove a remove link in a digital signature based user

  79. kiran.g said

    how to hide or remove a remove link in a digital signature based on user?

  80. Jony said

    I have a forms library that admin puts jobs (as InfoPath form in browser) once he submit the form, it appears on the home page as a web part showing the jobs, then users get in and click on the job name and view a browser enabled infopath form where a section appears to fill there data in and then a submit button that submits forms to another library called submitted jobs. My problem is that the form is browser form where I want anonymous users to use. But when anonymous users click the form name they have error that they don’t have access to the form template. What’s the best practice to make this job application thing using browser InfoPath.

    • Clayton Cobb said

      Jony, anonymous users are not allowed to interact with browser forms like that. Is this a 2010 environment? If so, then you would need to use InfoPath list forms instead of library forms so that anonymous users can work with them. Do you already have your anonymous user access working for the rest of the site?

      • Jony said

        Hi Clayton, Yes it is SharePoint 2010 Enterprise Environment, I have tried to use list forms, but when the user clicks on the list item name in the web part, it will display the DisplayForm.aspx, I want the user to view the InfoPath form instead and start editing right a way instead of viewing the displayform.aspx then clicking edit item. And even after the user has clicked edit item, when editing the form and submitting it tells him that he doesn’t have access to the submitted library. Is there an anonymous policy or something to allow any user to sumbit data?

        Thanks so much Clayton

      • Clayton Cobb said

        Anonymous users cannot submit documents. They can only submit items, so if you had an InfoPath-based list form, then there is no library to submit to…it submits to the list. This requires proper anonymous user settings for users to submit/edit list items. Anonymous can only submit/edit list items, not documents. This definitely works, and I have built solutions to prove the concept. Going to the edit form instead of the display form is a menial issue – that’s not important at all relative to the grander schema, in my opinion. There are other tricks we can do for that, so I wouldn’t consider that an issue.

      • Jony said

        So how can I redirect the user to the InfoPath form itself in edit mode instead of the usual displayform?

      • Clayton Cobb said

        In the list view web part, change the view to show the Edit column, and then hide the Name (linked to edit menu) column and instead show the plain Name column (not hyperlinked). This way, people click the edit button and go straight into the edit form. I don’t know how nice of a solution this is nor why anonymous users would be editing existing forms, but it’s a direct answer to your question.

      • Jony said

        It’s for a situation where online jobs are submitted for people to apply for and I want them to open the item, inside the item I have a button to submit their application to another list called submitted applications, what’s the best practice in case of job applications online using browser enabled infopath forms?

      • Clayton Cobb said

        That’s not going to work. What you should be doing is creating a custom list where you convert the list to InfoPath forms, then build the whole thing in InfoPath. Then, you have another list of job requisitions that have the name of the job plus lots of fields that explain the details. In the job submission list (the first list I mentioned), you would have a dropdown connected to a data connection that receives from the job req list so that anonymous users can choose from the available job reqs. Upon selecting a job req, the rest of the job req details would populate read-only fields. When the user finally selects the job req they want to apply for, they would then fill out the personal information fields and submit to the job submission list, which is the list form they would get sent to initially from a link on your site named “submit for job” or something like this. The way you’re doing it is a little backwards and won’t work with a list form.

      • Jony said

        You are the best 🙂

      • Jony said

        Hello, it’s me jony again, I want to ask you about the the task am doing, I made it as you told me, I made the job application form, but I have something to do, i need to give the user 2 repeating tables, one for past experiences, and the other for certifications, he needs to enter these data as repeating tables. and I can’t add them to list form. How can I solve this issue in list form infopath?

      • Clayton Cobb said

        Sorry, you didn’t mention needing repeating values before. List forms can’t have repeating fields. Even if it’s a form library template, the repeating fields aren’t very usable within SharePoint. It’s best not to use repeating fields if you can avoid it, because then that data is not going to be very useful. It’s always best to keep the data in separate list items so that the data can be used for sorting, filtering, grouping, and reporting.

      • Jony said

        So how can i make the write multiple certifications in my jobs site? how can i achieve this?

      • Clayton Cobb said

        Jony, that’s not a simple question. I’ve given a lot of information freely, but at this point you’re asking how to build a solution – that’s beyond what I can offer freely through my blog, sorry.

      • Jony said

        i dont want build a solution, i want the idea to start making it myself! thank you for your help

      • Clayton Cobb said

        Jony, I’ve given you lots of ideas to do it yourself, but the problem is you have to have a broad understanding of everything I’m talking about, not just take what I say and go do it. It’s good that you’re trying to learn, but this is brand new technology, and the techniques are complicated. It’s taken years to get to where I know enough to even give this advice ad hoc. It’s not reasonable to expect to just learn it all right away, so keep that in mind and remind whoever assigned this task to you.

  81. Michael K said

    I am using SP2010 workflow and was wondering if there is a way to save a draft of a task instead of submitting it. I am using the “Start Approval Process” action in the workflow. The approval form is pretty long so I want the user to be able to save (not submit) the form and come back to it later. How do I accomplish this?

    • Clayton Cobb said

      Michael, how is your approval task form so large? You have taken the OOTB task form, which isn’t large, and have added a lot of fields? I just wanted to make sure, since that is not typical. From SharePoint’s perspective, a Save is a Submit, so you can’t do one or the other, since they are the same. However, you can configure InfoPath forms to have multiple buttons (one named Save and one named Submit) that both submit but that also set a status field to something like “saved” or “submitted.” Then, the workflow reads this value and performs additional actions based on the value. I do this with full form solutions, but I’m not sure how well it will work with workflow task forms.

      • Michael K said

        You are right. I have taken the OOTB task form and added a LOT of fields. Is there an alternative for this that you can think of? I have done the “Save” and “Submit” functions in a full form solution but not with a “Task Form”. I tried adding additional button for the task outcome but when that button is clicked, it seems like the workflow still continues to do a “submit”.

  82. srishaila said

    I am getting alert message “Parts of this form are digitally signed and cannot be modified. To modify those parts of the form, remove the associated signatures. Click on the signature to view its details.”
    how to resolve this issue.

    • Clayton Cobb said

      There is nothing to resolve. The error is telling you what’s wrong. You cannot modify parts of the form that are signed. Why are you using digital signatures if you don’t want the form to be digitally signed? If you don’t truly want to lock the form, then don’t use digital signatures…just use electronic signatures.

  83. kiran.g said

    how to hide or remove a remove link in a digital signature based user?

    • Clayton Cobb said

      Kiran, you keep asking, but the answer is the same…I know of no such functionality. This is not how digital signatures are used. These features are not configurable with rules.

  84. srishaila said

    Thanks For the reply.but i don’t want to display that alert message.

  85. Roby M said

    An SSO entity needs to connect to a WCF Web Svc hosted in the same SP farm, which goes out to a SQL DB.

    I have configured the SSO. I see that the SSO Admin A/C created a DB and added the Ent. App Def with the Credentials specified in the DB. SO I believe the setup is right.

    However, when I use this in a UDCX file’s authentication node, to be consumed by an IP 2007 Form Template, I get “Error accessing the Data Source”.

    I am trying to deploy IP Form templates with Domain Security, rather than Full Trust (Admin Approved). And this template uses WCF Web Svc to receive and submit data to a SQL DB, whose credentials are specified in the conn string of the Web Svc.

    Here is the Auth Node, from the UDCX file:

    Am I missing something here.
    Any pointers would be very helpful and will be greatly appreciated.

  86. srishaila said

    Is it possible to sign the form using digital signatures from others system with my credentials?

    • Clayton Cobb said

      I’m not sure what you mean by “sign the form using digital signatures from other system.” A digital signature in InfoPath is PART of the form itself. It must be an actual digital signature in your InfoPath template backed by a digital certificate.

  87. dinesh said

    “InfoPath trusts self-signed certificates only on the computer that created the certificate, unless the private key is shared with other computers”.so,how can i share my private key with other computers to attach my digital certificate to form? and how to know my private key of self -signed certificate?

    • Clayton Cobb said

      I don’t know, Dinesh. You should be using REAL digital certificates. You have to go purchase them. I do not use self-signed certs…that is not a proper thing to do for an actual solution. That would only be for testing, and I’ve never done it.

  88. dinesh said

    can u tell me, how to use digital signatures in browser enabled infopath form? and what is the difference between signed and self signed certs?how to use self-signed certs properly in browser enabled infopath form?

    • Clayton Cobb said

      You have to purchase digital certificates from a signing authority like VeriSign, or you have to use your internal Certification Authority. I just told you before that I don’t use self-signed certs. Those are not real certs and are not proper for a corporate solution. They would be for testing purposes, but I don’t ever use them, so I don’t have any guidance.

  89. Ken Hines said

    Hello –

    I have a site where anonymous users can add contact information and questions via a “Contact Us” list. This works well but the owners do not want anonymous users to view the questions or comments others have added.

    Is it possible for setting permissions where anonymous users can add new contact us information but not see the other comments?

    Thanks in advance and appreciate your site!

    Ken Hines

    • Clayton Cobb said

      Ken, if you think about it, the question isn’t logical. How can you hide something from an anonymous user? Every anonymous user is ONE anonymous user to SharePoint, so there’s no way to know who submitted something…everyone is anonymous. So, since the anonymous user is ONE user, then everyone can see everything. You are going to have to build a custom coded solution that dynamically switches permissions on the item to not be anonymous after it’s submitted. When you do this, the original submitter will not see their own data.

  90. Clayton Cobb said

    Ken, I achieve it in which list? You mean here on WordPress? This isn’t SharePoint.

  91. Eric said

    Hi Clayton,

    I have a form built in InfoPath 2010 that has multiple check box fields, with rules, that set the value of a query field. Currently this works with 1 value at a time, but it needs to be able to query one field with multiple values at once (or something that looks like it is querying multiple values at once)


    I’d like to query for String 1 and String 2 against Field 1.

    My understanding of SQL is that it would simply be written as:

    WHERE Field_1 = 'String 1' OR Field_1 = 'String 2'

    Is there a way to reproduce this in a query field?

    I’ve tried S1 + S2, S1 %OR% S2, brackets, parens, single and double quotes. I must be missing something, right?

    If you need any additional information, please let me know. Thanks in advance!

    • Clayton Cobb said

      Unfortunately, InfoPath doesn’t have that ability when querying data connections. You can set multiple query fields with one value, but you can’t set one query field with multiple values.

      • Mauricio Marzol said

        Hi Clayton,

        IS there a way to use query field to filter records which has an empty string in a given field?

        What I want is filter like: WHERE Field_1 = ”

        I’ve tried to set query field value to ‘blank’ or ‘null’ but it didn’t work.

        Thank you!

      • Clayton Cobb said

        Can’t you just leave it blank? What kind of query field or functionality are you using? If you go to a list view and filter a column on empty items, the query string URL shows FilterValue1= with nothing after the equal sign.

  92. John said


    Opening a new, MOSS-published Infopath form (browser-based) causes an error – ‘some rules not run’. I’m looking for an efficient/effective way to find the offending rule(s) as the error message does not list any details about the rule(s).

    I’ve tried opening a new form through Infopath Preview, and changing the MOSS site to open the new form using Infopath instead of a browser. Neither way shows the error. I looked through Tools->Logic Inspector, where I found/fixed some other issues but that didn’t cure the ‘some rules not run’ error.

    Aside from adding a new field and concat the rule number of each rule that runs, to see which rule didn’t concat the string, is there a more direct way to find the offending rule(s)?

  93. Abby Tidke said

    Hi Clayton,

    Thanks for your contribution to understand the InfoPath.

    I have one question, actully I stuck some where @ decision point.

    I have one InfoPath form with Number of views deployed on SharePoint, actully we dont want to use SharePoint any more as of some issues, but wants to use existing InfoPath on ASP.NET site.

    My Question is Can it be possible? means ASP.NET site with InfoPath and Data will go in SQL server?

    Please give your suggestion.

    • Clayton Cobb said

      Hi, Abby, you’re going to go with a custom ASP.NET site due to “some issues” with SharePoint? What kind of issues? No ASP.NET site is going to be able to replicate the integration features of SharePoint with InfoPath. I think that would be a mistake to stop using SharePoint. You can send data to SQL server without SharePoint – it just requires publishing the form to a network location, and then all users go to this network location to open instances of the form. Then, the data would be submitted to SQL, but you won’t have anything like a form library where you can easily manage the XML forms.

  94. Michael K said

    Hi Clayton,

    Is there a way to have a file attachment control on InfoPath work flow task form (Start Approval Process)? One of the requirements is to have the approver be able to upload a file attachment.

    Could you please give me some suggestions?


    • Clayton Cobb said

      I saw your post on MSDN, and my recommendation is to not try to do it that way. Instead, just add the file attachment where it actually belongs, which is on the original form itself.

  95. Jony newman said

    Hell Clayton, how do i submit a list form built using infopath to another list, i made a submit dataconnection to another list, but when i press the submit button it gives error, it doesn’t submit unless i use the default dataconnection came with the form. any thoughts

    • Clayton Cobb said

      Jon, how did you add a submit data connection for a list? That should not be an available option, because InfoPath cannot submit to other lists. The only time InfoPath can submit to a list is when you convert a list to using InfoPath forms, and in that case, it creates the data connection for you…you cannot create it yourself. So, I’m curious to know how you “made a submit dataconnection to another list,” because that should not be possible. InfoPath can only submit to form libraries unless you use custom methods not native to InfoPath (CAML, code, or workflow).

  96. Derek said


    Any experience creating pop out window from within Infopath when using browser forms?
    Such as when a list form pops out in 2010. I would like that in an browser form for some generic data(table) the user will need. But is more than a control screentip can do.

    • Clayton Cobb said

      List forms “pop out” into modal dialog, but once in modal dialog, nothing pops out of the form itself. Browser forms do not support pop-ups.

      • Derek said

        Ok I figured as much. Is there a way to trigger a hyperlink from a buttom or a rule ?

        I have tried a few things but no luck.

      • Clayton Cobb said

        Not from a button or rule, but you can add a hyperlink directly to the canvas and dynamically populate it with data in the form. I do this all the time. You can dynamically define the URL and the display value.

      • Derek said

        Yeah I do that when needed. I t just seems like there should be more functionality to that.

        Here is another scenario – I have a text box the user will enter a number into. Is it possible to have a defined amount of rows called from the numeric vaule? Like a rule that would state “If txt1 = “3” then rptTable show 3 rows” ?

        I figure this is a stretch but wanted to ask if you had ever encountered something like this.

      • Clayton Cobb said

        No, there is not.

  97. Highly Frustrated Infopath User said

    Clayton can you tell me if it is posible to use a people/group picker with a database form template? and if not is there a work a round? I have a form that pulls quoting information from sql. A person puts in a quote number into the form and the rest of the form is filled out with the details of that quote. Works greate, but…

    I want the form to populate a field with the name of the person originating the form. This will then be used as part of the workflow, but I cannot seem to get the people picker to work inside a database form template.

    • Derek said

      Can’t you use the getusername with the usrprofile web service? Pulls the users name into the field. You can use a text box for this then just set the value to the getusername “value = preferredname”.

      I personally do not use people pickers. But Clayton may have a better idea.

      • Clayton Cobb said

        Derek, I answered this question on the forums. I also have an entire blog post on the suggestion you made, so please just point to my blog post when making suggestions on topics I’ve written.

        As an aside, anyone choosing not to use Contact Selectors in 2010 (where available) is shooting themselves in the foot…just my opinion.

      • Derek said

        Are you saying to use Contact selector in conjunction with GetUserByName.

        If so, are you filtering “Display Name” with “PreferredName” from the service.

      • Clayton Cobb said

        Derek, I’m not sure what you’re asking. Yes, I frequently combine the Contact Selector with the UserProfileService – in fact, I probably never use a Contact Selector without also retrieving profile data for that person (or persons). However, I wasn’t referring to this combo when responding to the database template question. I also am not sure what you mean by filtering Display Name with PreferredName. There is no filtering to be done on GetUserProfileByName, because it only accepts an accountName parameter and only returns one row, so there is nothing to filter.

      • Derek said

        I am confused then.

        I use the userprofile service to get the user of the form.
        1. I use a text box(txt1) as the control, set to read only.
        2. I create a data connection to the userprofileservice.asmx
        a) Select GetUserProfileByName
        3. Set the value of txt1 to-
        a) GetUserProfileName Data Connection
        1) Field = “Value”
        2) Filtered by “Name” (field) = “PreferredName” (value)

        As you know this returns the logged in users name into txt1.

        I guess I need a better explanation of how you use the Contact Selector in this case. And why would you use it? It cannot be set to read only, so that removes a level of security.


      • Clayton Cobb said

        Derek, I have no idea what you’re talking. These are 2 separate topics. I use the Contact Selector to select users…it’s not for the current user, although I sometimes DO auto-populate a Contact Selector with the current user’s info depending on the solution. A Contact Selector allows anyone who uses the form to select another user in the organization very easily just like when they use Outlook. It has an address book icon that pops open a search box that allows you to search on profile attributes (name, department, whatever). Then, the user is selected. You can allow one user, multiple users, people only, people and groups, people only from a specific group – it’s a very powerful control that requires no work.

        Then, I often take the user selected in the Contact Selector and query GetUserProfileByName to get THAT user’s profile info – this is a user other than the person who opened the form. This is something I do in almost every form. I don’t know what specifically you are confused about, though.

      • Clayton Cobb said

        I also don’t know why you want to set a Contact Selector to read-only. It’s whole purpose in life is to…select users.

        On Thu, Apr 7, 2011 at 1:04 PM, Clayton Cobb wrote:

        > Derek, I have no idea what you’re talking. These are 2 separate topics. I > use the Contact Selector to select users…it’s not for the current user, > although I sometimes DO auto-populate a Contact Selector with the current > user’s info depending on the solution. A Contact Selector allows anyone who > uses the form to select another user in the organization very easily just > like when they use Outlook. It has an address book icon that pops open a > search box that allows you to search on profile attributes (name, > department, whatever). Then, the user is selected. You can allow one user, > multiple users, people only, people and groups, people only from a specific > group – it’s a very powerful control that requires no work. > > Then, I often take the user selected in the Contact Selector and query > GetUserProfileByName to get THAT user’s profile info – this is a user other > than the person who opened the form. This is something I do in almost every > form. I don’t know what specifically you are confused about, though.

      • Derek said

        I was under the impression from the way you stated your replies you were using it as the current user. Thats where I was confused.

        I totaly get the concept of wich you just explained. In my organization I have not needed that as a solution yet, but totally understand it.

        Sorry for the mix up.

        Some times thougts in text are not conveyed well…

      • Derek said

        I wouldn’t set it to read only….

        But if it was querying the current user I would want it secure. Hence a text box > read only

  98. whall said

    Hey Clayton –

    I just wanted to say WOW. I just got through reading through all these comments and your knowledgeable replies, patience and assistance. I definitely see why you were granted the MVP title. Back in my day (Sharepoint MVP from 2002-2004… there were only 18 of us worldwide!), we just had newsgroups and a few forums to help define us as MVPs.

    You’re doing a great job and a fantastic service to the user community.

  99. Kaneo said

    Hi Clayton,
    Would you be able to help me out again by any chance. I have created a data connection (not cached) returning the users SharePoint group and a rule to compare it to a column on another list (group does not contain list_column) so if it is a part of the list of groups that the user is a member of then that field will be hidden. But instead of hide the field it shows it, I have checked all the groups just incase they are named similar, but this seems not to be the case. My question is would you know any reason why this won’t hide the fields in the correct manner? Any help would be greatly appreciated.

    • Clayton Cobb said

      Kane, this most likely comes down to logic errors. InfoPath is only going to do what you tell it to do. If you say to hide on a condition, and it doesn’t hide, then the condition is not met. Even if you think you have matching values, you probably don’t…OR the logic is backwards. I would have to see it to know for sure, but I can assure you that in all the forms I’ve built, whenever something like this happened, it was just a logic error. I assume you’re using the GetUserMemberships method to determine a user’s AD groups, and then you have a list that stores this group for each person? How exactly is this built? I can’t quite follow the logic.

      • Kaneo said

        Sorry Clayton you were correct it was a logic error. this issue was mainly caused by not enough and too much coffee, but that aside. The way I am trying to construct it is so the items in the other list are used like a guest-list. so if the user isn’t in a specific group then they can’t see specific fields. The main part is getting the data connection to return which SharePoint groups the current user is a member of. But when creating the GetGroupCollectionFromUser data connection and not setting the value of the parameter I get an error 5566. Does that clarify it a little? If not just let me know and I will elaborate more.

        Thank you for the help, and if you can help me again it would be very much appreciated

      • Clayton Cobb said

        Oh, so you’re using UserGroup.asmx. You have to follow the requirements of that web service for it to work. I only use GetUserMemberships in UserProfileService.asmx for retrieving AD groups. What you’re doing is for SharePoint groups.

      • Kaneo said

        Sorry I forgot to say I was using UserGroup.asmx and SharePoint groups are the ones I want returned according to the current users group memberships. Is this possible using this method if I follow the requirements or should I look else where?

      • Clayton Cobb said

        That should work, yes. We use that in our solutions.

      • Kaneo said

        Also would you mind elaborating on what you mean by requirements of the web service?

        I have seen your answers on many forums suggesting in some threads it maybe permissions based. So I checked and the form list inherits permissions from the site and I am a member of the site owners group with full control permissions, so I am unsure this is the cause of the error. I have also disabled the loopback check as suggested by another thread that I read, but error 5566 still appears?

        help or just advise me with regards to this matter it would be greatly appreciated

      • Clayton Cobb said

        Permissions to the web service are not related to permissions on the site. The web service doesn’t call to the site – it calls to the User Profile Service, which comes from the SSP in 2007 and from the User Profile Service Application in 2010. Nonetheless, you don’t want to guess on this error. Each time you get the error, it logs the exact details in the ULS logs and usually in the Application log of the Event Viewer. You have to find these and get the exact error in order to fix whatever the problem is.

      • Kaneo said

        Hi Clayton,

        I have checked the event logs and found the error message below:


        The remote server returned an error: (500) Internal Server Error. Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ was thrown. The parameter name cannot be empty or bigger than 255 characters.0x80131600 The remote server returned an error: (500) Internal Server Error.

        I have have a look around and it is indicated that the call being made to the web service is failing. I have followed this by entering the URL of the web service to see if I can logon to it directly, which I can. But apart from that I have ran though the solutions suggested at the URL below, which didn’t work.

        Is there anything else I am missing of possibly could have done wrong?
        Any help would be appreciated

      • Clayton Cobb said

        Kane, I’m not sure at this point. I’d have to dig into it directly to figure it out, because I haven’t seen that issue before.

      • Kaneo said

        Hi Clayton Thank you for the help, but in the end I used used SharePoint Designer 2010, created new NewForm.aspx, EditForm.aspx and DispForm.aspx. Then set formating condition, Show Content, IfHasRights(16) so only users with the approver permissions can see the fields.

  100. Scorpion said

    Hi Clayton,

    I am designing a browser enabled infopath form with several sections on it. Each section has the User Name and Submit button. Each section is filled out by different group of people. I am using GetUserProfileByName to retrieve user name(Value=[Name=”PreferredName”]) and displaying it in the User Name field on each section. The issue is the same name is getting displayed on each section. What it needs to happen is if User A filled out section 1 then his name used to display it and when User B filled out section 2 then his name used to display and so on. Can you suggest how can I achieve this functionality?

    Thanks for your help in advance.

    • Clayton Cobb said

      Scorpion, what logic did you add to the form that would tell it to set those fields to different users at different times?

      • Scorpion said

        Hi Clayton,

        For each User Name field on each section of the form I am setting its default value to Value[Name = “PreferredName”]. Just FYI..only one section is editable at a time.

      • Clayton Cobb said

        Scorpion, ok, so look at what you’ve done. You’ve set all those fields to the same value, right? Where is your logic that tells each field to only take the value of each individual at the right time? You noted that only one section is editable at a time, right? So, how did you tie that fact in with the logic that tells the form how to populate the User Name field? I’m walking you down the logic path here instead of giving the answer directly, because the questions I’m asking are questions you should be asking yourself every time you build any sort of logic-based solution.

  101. Debi said

    Morning Clayton,
    I am having a problem trying to figure out a seemingly easy thing. I have two lists one has a workflow on it that “writes to a log” and then “creates an items in a list” so every time there is a status change on a form – it creates an item on a list that I am using as an audit log.
    So what I have at the end is a list called ‘Log’ that has, for each form, a number of items like “workflow started”, “approved by whomever” etc..
    What I am trying to do now is to have that information pulled into the original form so when the compliance group prints the form, they can see that “audit log” for only the items related to that particular form.
    I have tried adding the repeating table from the log list and as you can imagine I get back all items on the list – I need to somehow filter it but I am at a loss as to how.
    Thanks in advance,

    • Clayton Cobb said

      You should be querying only the items in the 2nd list that are associated with the first list, not the entire thing. When your first list creates an item in the Log list, you should be saving the ID of the original list item in a field in the Log item so that they can be associated. Then, in the original list form, you should set the query parameter of the field that stores this ID to the value of the current item’s ID, then run your query. That way, it will only retrieve the related items. Do not retrieve all items and then filter, because that’s poor practice and will lead to poor performance. THis also means you need to set your data connection NOT to automatically retrieve, and instead you will use Form Load rules to set the query parameter then query.

      • Debi said

        Thanks Clayton,
        I do have the ID in the from the first list saving into the 2nd list so go there. I understand what you are saying about the query – I am wondering how to display this information on to the first form.
        I tried adding the repeating table – shoudl I still be doign that – I need all the items for the particular ID to show up and i am not sure how to display multiple items on the form in a readable way.

      • Clayton Cobb said

        Yeah, the repeating table was fine – I thought your issue was showing only the correct rows. What’s wrong with the repeating table? Why is it not readable? Doesn’t it show one row at a time with the text you want to display? It should look similar to the workflow history of an individual workflow except in a tabular format.

  102. Debi said

    The format is just fine, I just was not sure that was what I needed to do – so I have taken the repeating field of the secondary list and I have dragged it onto the form. I have set the data connection to not auto retrieve but I am having some trouble figuring out the query. I am creating it under form load – I see the ID that is in my second list but I am not sure what to do after that. I do not see where I would conpare it to the current list item id (or where I would even find that).

    • Clayton Cobb said

      You have to SET the query parameter. Your rule should use “set a field’s value” and should set the query parameter for that ID field to the ID of the current item. You’re basically saying, “Go to that list and find all items whose copied ID equals my ID.” The key, though, is that the Log list has its own ID field, and that’s not the one you care about. You care about whatever field you created that is storing the ID of your original item. This is how queries work. You set the query parameter, then you run the query…

      • Debi said

        Ok so I have set up a new ID field on the log list that is the ID of the form. Now I am setting up the rule to “set a field’s” value – still missing what two values I am using. I am setting what fields value to what ?
        Sorry I am being dense this morning.

      • Clayton Cobb said

        Debi, you need to step back, think about this logically, and follow the steps that make sense. I have laid it out in pretty good detail, so there’s a point where you need to understand the big picture of what you’re doing and then execute accordingly. You’re doing this for a living now, so you have to know what you’re doing.

      • Debi said

        Ok- thanks for getting me this far. I will keep looking for the answer.

  103. Scorpion said

    Thanks for the prompt reply Clayton. I am aware of the fact that there is no logic associated with the field at this point. I was under impression that every time user would fill out the section and submit the form then their name would get captured. One solution I thought of is to store the user name value into a variable when the form is opened and in the code behind assign it to the value of User Name field for the section that is active. I am not sure if this would work.

    • Clayton Cobb said

      Whoa, no, you definitely don’t need any code. I’m trying to get you to see that you haven’t told the form to do anything other than what it’s doing. My assumption is that you are querying on form load, so the form is retrieving profile data for the current user and writing it into each field, right? That’s not what you want to do, though. You want to ONLY retrieve it for the current user and ONLY populate the proper field at the proper time. You need to tell the form when and how to do this, and it absolutely does not require any code. YOu should not be using default values, but rather rules that SET field values, and these rules should only set certain fields at certain times. It definitely shouldn’t be querying on Form Load but rather when the person performing the work commits an action that tells the form this is the person who needs to be in that field. That could be with whatever submit button you’re using or on the change event of some field in the section that tells the form the current user is the owner of this section.

  104. Muneer said

    Dear Cobb ,

    i have an infopath form , by which the user can select the approvers from the form.

    the selected approvers will be save on a field called FormApprover

    after that i have associated the infopath form with a approval workflow that will start the approval process on the form with FormApprover as the Participants.

    on the workflow , i have checked the
    start workflow automatically when an item is created
    start workflow automatically when an item is changed

    i opened a new form and have selected the approvers , saved the form, and the workflow has started with the selected approvers,

    My problem is : when i opened the form using the first approver account , and in side the form i have changed the order of the approvers and added a new approver.

    the workflow did not restart.

    does the option “start workflow automatically when an item is changed” related to this case.
    in fact i did change the form.

    Your help is appreciated.

    • Clayton Cobb said

      Isn’t your original workflow still active? The same workflow can’t have 2 instances, and if your workflow assigns tasks, then it pauses until those tasks are completed. Is that not what you’re doing?

  105. scott said

    I know you would know how to do this if anyone..
    Infopath 2010 connected to a Sharepoint List
    I need to make a field required based on the answer of another field.
    If answer to question 1 is Yes, then question 1a is required
    Not too difficult I thought, but I am not finding the answer and hope it doesn’t require coding 🙂

    • Clayton Cobb said

      Hi, Scott, the key here is that you need to use Validation rules. Go to field Question1a and add a Rule of Validation type. Set the condition to say, “If Question1 is equal to Yes AND Question1a is blank, then show error” This will make Question1a only required when Question1’s answer is Yes.

  106. Scott said

    You were so helpful the with the last question I have another.

    I have a tabbed IP2010 form with a continue button at the bottom. Is there a way to force all required fields to be filled out before going to next form? I see the Validation rule is not an option for buttons. What about a Hide Control Formatting rule until all required fields are answered??

    • Clayton Cobb said

      That is exactly what i do on all my forms. I disable the submit button until all required fields have data, and i use formatting rules on the button itself. I also add a red italicized message under the button that only shows up while the button is disabled. I put the text in a section and add a formatting rule to hide it when all required fields are good.

      • Scott said

        Thanks Clayton,
        Can you provide the mix of conditions to validate that a required field is filled out before the button is unhid? I guess my mind just can’t get wrapped around the If/Then conditions..

      • Clayton Cobb said

        If Field1 is blank or If Field2 is blank or If Field3 is blank or If Field4 is blank or If Field5 is blank

        then Disable this Control.

        You can only do 5 at a time in the regular wizard, but you can add many more if you use expressions. However, since these are ORs, you can add however many individual rules you want until you have covered all the required fields. If we were using AND, then it would require the trick I referenced, which I don’t want to get into if we don’t have to.

      • Scott said

        Thanks! Your a lifesaver!

      • Clayton Cobb said

        Rossie, that tells me it’s a number data type when it should be “single line of text.” I know you said it’s a text box, but if it’s a number data type, then that should be changed. If it’s truly a text field, then check to see if the text box is somehow formatted as a number.

  107. Rossie Trujillo said


    I am having an issue with a Zip Code field in my InfoPath 2010 form. It is a text field with a validation rule Field does not match pattern of Zip Code. The issue that I am having is the in the form itself the Zip Code is displaying as a number (81002 is looking like 81,002). It displays find in the SharePoint List. But if you edit the item it displays with the comma.

    Any help will be greatly appreciated.


    • Rossie Trujillo said

      It was originally a number field so something must have stuck in the settings. It is working correctly now. Thanks for your help.

  108. Scott said

    Clayton! I’mmmm back 🙂
    Need your help in figuring how to create a button at end of the form to submit data to SP (easy enough) AND open a new form (the new form is connected to a different list).

    Thanks again!

    • Clayton Cobb said

      Scott, buttons can’t invoke other forms or links. Instead, set the Source parameter in your URL to point to the URL of that other form so that when the submit button is clicked, your first form closes, and your browser is redirected to the other form. The key here is that your user must be sent to the first form from a hyperlink that you set somewhere. The user can’t just click “new” or “add document,” because you need to set the Source parameter yourself. The New button sets the Source parameter to the same location from where it was click, but you need the Source to point to the other form. That’s the best I got with some other special customization (code, etc).

      • Clayton,

        Where do I cange the “source parameter” for this solution?
        You mention in the url, but I am unfamiliar with this, obviously. Is this in the form template xml?

      • Clayton Cobb said

        Derek, it has nothing to do with the form. It’s just in the URL…look in the address bar of your browser when opening a browser form. SharePoint puts query parameters in the URL all the time for just about everything. InfoPath browser forms are no different in this regard. When clicking New in a form library or when clicking on an existing form, SharePoint appends a Source query parameter to the URL that tells the browser where to go upon closing the form. It defaults to the exact location from where the item was clicked. To give the URL a custom Source parameter, you have to generate the full Forms Services URL with your own Source value and give it to the user as a link. I do this in workflow emails when I want to control where my user goes after clicking on the form link.

      • I may be doing something similar. I will take the address of the form I want the user to navigate to, dissect it in 3 parts, where the actual form name.xsn is a dynamic piece(if needed) of the string(in the middle of the url) then concat it all back together. This gives a “Blue” hyper link they can click, but I have had no luck(if even possible) to use a button to navigate to the link.

        I do use this method in forms and WF emails. But like I said , I am clueless on getting it to work with a button control. All 2010 products.

        http:////_layouts/FormServer.aspx?XsnLocation=http:////<Form Template Location(SCT)/

        .xsn — >>> I will change this as needed or use a text field and some rules and filters to grab this from a specific place


        I concat it all back together and then use the hyperlink for the user.

        But how to do this in a button, I have no clue ?????

      • Clayton Cobb said

        Yeah, it wouldn’t be on a button – you would use a hyperlink. Buttons don’t invoke hyperlinks.

      • So I am on the right track then.

        FYI this blog is really taking a long time to load. Using Chrome and it takes near 1 minute.

      • Clayton Cobb said

        Yeah, I think something is wrong with the main page, because it has been taking a while. It may be all the comments, but I’m not sure yet – I have to dig into it.

  109. Kaneo said

    Hi clayton,
    I have a quick question I have been looking for the answer to but not found yet, I am looking for option to “Send email when ownership is changed” per a custom list item in SharePoint 2010, as I have seen this option in the “List options, Advanced options” of lists in previous versions of SharePoint and in task lists in SP 2010, but I wanted to know if it is possible to use this feature in a custom list?

    • Clayton Cobb said

      Kane, that option is only in tasks lists. There is no ownership in a custom list even if you make a field called Assigned To. It was not an option in anything except task lists in the past.

  110. Derek said

    “Data connection to a database”

    I am designing a list that needs to capture data from a database(SQL 2008 Express) for one of the fields in the Infopath List form.

    I created the connection in the form template and it pulls the data when I preview the form. I publish the form back to the list
    and the data connection is refused when I open a form to fill out the information.

    On the list form there is no setting for trust level, I have tried to open the form with user credentials and domain admin/DB owner credentials and it just wont retrieve the data.

    I could probably get this to work in a form library but this really should be a list.

    Any Suggestions?

    • Clayton Cobb said

      Derek, you have to find out what the problem is, then go from there. I can’t tell based on what you said. I can guess that maybe you didn’t convert the data connection to a UDC stored in a Data Connection Library. This is required for data connections that go to another server. You also need to set up a Secure Store group target app for authenticating to it seamlessly and safely. I do not recommend making direct DB connections, though, because it should be done with a web service.

  111. Mohamed Khairy said

    Hi Clayton,

    I’ve watched your vedio posted on yotube “InfoPath Competiton – Leave request form” and want to implement it on my test environment.

    I am new to Sharepoint 2010 and really want to test this scenario so could yopu please send me a step by step docs?


    Mohamed Khairy

    • Clayton Cobb said

      Mohamed, I went through the trouble of building and recording the solution while also doing a 1hr presentation video and a PowerPoint, but it would be a ton of work to document it all step-by-step for free. It is too much to document, so all I can offer are the other files on the main page of my Blog site (all with the same title).

  112. srishaila said

    I have designed seqential approval form in infopath 2007.In that i’m having requirement like this.
    Requester should select an approver who is having nearest value of approval amount for his/her CAPEX.
    Step 1: Approver A’s approval limit is` 1, 00,000
    Step 2:Approver B’s approval limit is ` 5, 00,000
    Step 3: If requester wants to raise a CAPEX for` 80, 000 then he/she should select approver “A” only.
    Step 4: If requester wants to raise a CAPEX for more than` 1, 00,000 then he/she should select approver “B”.
    Please tell me how to solve this using infopath rules not coding?

    • Clayton Cobb said

      The user should not select anything. You should take the dollar value and automatically assign the approver based off their approval limits. No reason for the user to manually choose that.

  113. sahik said

    hi clayton, i need a tip, i want to design web parts and make really fancy things in SharePoint without using any code, are there any resources to read or books?

    • Clayton Cobb said

      Other than data view web parts, you can only create and deploy custom web parts with code. What types of fancy things are you trying to do? I don’t know of a catch-all book for “fancy” stuff, but there are some SharePoint Designer, BI, and InfoPath books out there that I can point to.

  114. sahik said

    i mean by fancy things, big solutions that can be done by SharePoint alone, things like custom development but surprise you how it’s done in SP alone. what do you suggest?

    • Clayton Cobb said

      That’s too vague. There are books about specific products that can be used to build solutions, but a whole book about random fancy solutions is something I haven’t seen. I would suggest looking for topics on SharePoint Designer 2010, InfoPath 2010, Visio 2010, jQuery + SPServices, and BI (PerformancePoint, Excel Services, SSRS, SSIS, SSAS).

      • sahik said

        You are right, ok what do you suggest about Jquery, SPservices and BI? Thank you for your efforts.

      • Clayton Cobb said

        Sahik, here are some: – I’ll start by plugging my own book (I’m the tech editor, not the author), which is SharePoint Designer 2010 Unleashed: – Pro SharePoint 2010 Business Intelligence Solutions: – InfoPath with SharePoint 2010 How-To by Steven Mann: – Enterprise Application Development in SharePoint 2010 – Creating an End-to-End Application without Code by Ira Fuchs: – Microsoft® SharePoint® Designer 2010 Step by Step by Penelope Coventry:

        That’s a start, and I know all the 3 authors mentioned.

      • Clayton Cobb said

        Sorry, here is the link for SPD2010 Unleashed:

        And I of course know the author, Kathy Hughes, SharePoint MVP. =D

      • Renaad said

        Hi Clayton, This is an exciting topic but what are SSIS, SSAS? Is there a SharePoint designer 2010 book specific to designing webparts not like the beginning SharePoint 2010 book that gets you bored while it explains how to click the home tab and insert tab! a book in which takes you deep into SharePoint? A lot of guys talking about out of the box development and no code solutions this is why people wonder about what it is. There is a book called building solutions in SharePoint 2010 by Shane perran, but it’s more like an end user book and little administration but far from DEVELOPMENT.

      • Clayton Cobb said

        SQL Server Integration Services and Analysis Services. I don’t know of an SPD2010 book that is for designing web parts, because that’s not what SPD is for. You CAN modify some web parts, but it’s not for creating web parts. That requires Visual Studio. I am the tech editor on SharePoint Designer 2010 Unleashed, which is almost done, and it’s huge. We cover tons of topics and try to go fairly deep on some things, but there’s so much to cover that it’s impossible to go deep in all areas. That’s the same for any SP2010 book. If you’re not only interested in custom web parts, then there are other books that talk about building solutions in InfoPath and SPD. I’ll be responding to sahik with some book names.

        If you want DEVELOPMENT, then you’re talking about the wrong topics anyway. No-code solutions are not really “development.” They border that line, but DEVELOPMENT would mean all custom code. Everything I build is without code, but I don’t call myself a developer.

  115. sahik said

    Hi Clayton, isn’t the Pro SharePoint 2010 Business Intelligence Solutions a Coding book, i had taken a look at this one before?

  116. Reenad said

    Clayton as to your previous post, you dont have to write code to be named as you develop for sharepoint, you DEVELOP which means you make new things on sharepoint, you dont have to write code to be named you are making a developing. another question is about sahi question, do u have resources about the swiss army knife, Data View Web Part ?

    • Clayton Cobb said

      I know this, Reenad, because it’s what I do every day. However, in the SharePoint community, “develop” means writing code. It has a specific meaning in this community even though the generic meaning can include anything. I do create solutions, which could be considered “development,” but in the SharePoint world, “development” stands for writing code. We really haven’t come up with a good catchphrase for this, but I have been using “codeless programming” for a while now. I have to give credit to Alec Pojidaev who used that on his blog before I ever used it.

      No, I don’t have a known resource to point you to for DVWPs. We will have a chapter dedicated to it in SPD2010 Unleashed, but you could probably write a whole book on it. Someone may have already done that, but I haven’t seen it myself.

  117. Reenad said

    Clayton, want to ask you, how do you respond to people telling you that Microsoft’s Sharepoint designer and Infopath are not useful and the code they generate is slow, and custom coding is faster than them? and that what we do (me and you) and the no programming development is useless? it’s just annoying how some people think about what we do.

    • Clayton Cobb said

      Reenad, here are a few things I say or would say: – How are they not useful? SharePoint is about using the right tool for the job. Sometimes, SPD and/or InfoPath are the right tools for the job. Writing custom code to build what Microsoft has already spent countless hours to build for you is just a wastes of time, money, and resources. It is not wise and does not provide a good service to your clients. On the flipside, sometimes things are better done in code, and it’s important for US not to force it into SPD or InfoPath, because that also does a disservice to our clients. – The code they generate is slow? That’s just a developer being an elitist. You can’t just say that in a vacuum without qualifying it, and you can’t brush a broad stroke across every solution ever built with those tools. – If what we do is useless, then how do I have so many clients that I have to turn them away and refuse to bid on proposals, because I can’t enough SKILLED people to do work that requires these tools? I have client after client who does NOT want to write custom code, but they still want solutions. What do you do then? What if the client wants to maintain the solution and/or enhance it? They can’t be expected to hire and maintain a .NET development team when there are tons of solutions they can build and maintain using the tools Microsoft gives us. That’s how I operate, and it doesn’t matter if a developer doesn’t understand.

      • Guangming said

        You just said what I’d like to say. I actually like to go a little further. To my understanding, the purpose of SharePoint is to not write code if possible so that the end users can have solutions right away: think about how long you can have a web site set up and in production before this SharePoint or similar ideas (eg DNN)? Now just couple of clicks.

        My conclusion would be that for any business questions, the last resort should be to write code for event handlers, web parts, etc. in VS. If codes, you should try to add a SPD action/condition first.

        However developers do not need to get threatened, thinking of job security. From my personal experience, without a lot of development knowledge and experience, it is difficult to do a good job in SP and SPD and InfoPath. Some time, just impossible.

        I list the orders to find solutions for any business questions I think we should use and I tried so far:

        1, SharePoint Built-in
        2, SPD / InfoPath dependending on cases
        3, Open-source solutions
        (3.5 – not sure if I should list this one which is against MS best practise guideline and I start to use more often – Hacking the content DB, most time just querying)
        4, Commercial packages
        5, Develop SPD/InfoPath enhancement codes
        6, Develop own solutions in Powershell, often for utilities
        7, Develop own solutions in VS, eg, web parts, event handlers, web services, timer jobs, which can be deployed as part of SP; utilities
        8, Develop own solutions in VS deployed/working independently

  118. Ian Hawkins said

    When I click on your “Building Codeless Solutions with SharePoint and Office 2010 (full, one-hour video)” link at the top of this page I get a “The webpage cannot be found” error – is this video still available to watch?

    • Clayton Cobb said

      Sorry, Ian, I just migrated the COSPUG site to another hosting provider, but the large videos did not come over. I’ll remove that link now.

      • Ian Hawkins said

        That’s a shame – I’ve watched your 5 minute demo and what you have done on there is almost exactly what I’m trying to do; I just wanted some more detail on how to set-up some of the parts of the process. I think I have bluffed my way through it now though, but it would have been nice to see how it should be done properly! 🙂

        Great site and info though

  119. Andreas said

    Clayton a quick question, i have infopath 2010 and people picker field which i want to publish to a forms library and want this field to be people picker, but it only lets me to view the column text only, how do i achieve this

    • Andreas said

      clayton any idea about this?

      • Clayton Cobb said

        I thought I answered you on the MSDN forums. Was that a different person who asked the exact same question? You can’t publish form library fields to a Person/Group field in SharePoint. It can only be done with InfoPath list forms, because they are bound to the schema of the list.

        What I do is promote the AccountId field, create a separate Person/Group field in the form library, then use a workflow that sets the Person/Group field to the value of the AccountId field. This only works when the Contact Selector in InfoPath has one name selected. I have no solution for multiple names.

      • Andreas said

        no that wasnt me 🙂 ok i will search for another approach thanx

      • Clayton Cobb said

        The approach I gave wasn’t sufficient? It’s the only one I’ve ever seen, and I use it all the time. Does it not work for you?

  120. AK234 said

    hi clayton, i am having trouble with sharepoint designer. i click on the list in lists and libraries section, it opens the administration page for the list. i choose the check box to hide from the browser, so it will not appear in the all site content page. now when i return to sharepoint designer to edit the page, it doesn’t appear in the lists and libraries. it only appears under all files category. and when opening the list, it doesnt open the administration page, it opens the list of forms for that list. how do u solve it?

  121. mj said

    Hi Clayton,
    I have published a plain infopath form to a form library. Now, when i want to create a new form or open an existing from, i receive “system.outofmemoryexception”.
    Do you have any idea to solve this and do you know what is the reason?

    • Clayton Cobb said

      MJ, I haven’t seen that before. It doesn’t seem to make sense for a plain form. Is it a browser form? If so, please go check the ULS logs in the 12 hive (2007) or 14 hive (2010). I need to know the full error details. If this is 2010, and if it’s a browser form, then make sure you have the State Service application created.

  122. srishaila said


    when i clicked on the link Mysite on right corner of the site,got an error like below:
    Server Error in ‘/’ Application.

    The resource cannot be found.
    Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

    Requested URL: /MySite/_layouts/MySite.aspx

    • Clayton Cobb said

      Sounds like there is no MySite Host configured, or at least not at the URL you went to when clicking that link.

  123. shane said

    Hi clayton,
    how can i add a link to personalize the page of sharepoint, the link in the drop down is not shown, isnt there a way to personalize it? or show it

    • Clayton Cobb said

      Shane, I can’t understand what you’re asking. Please clarify. What dropdown are you talking about? Personalize Page shows up in the dropdown of the Welcome User message.

      • shane said

        yes, is it shown on page layouts in publishing pages?

      • Clayton Cobb said

        Shane, for me, it shows up on any page – it’s not really part of the page but rather the master page.

      • shane said

        i am using the V4 master page. but only show on web part pages, on any page layout its not shown.

  124. Derek said


    How well versed are you on Digital signatures in 2010 Browser forms.

    If I am using a Filler form the person can create thier own self signed certificate, but in browserr forms it seems to be giving me a problem. I have some users that have certificates available and some that don’t.

    I have 1 form that requires several people(>5) and they are unable to sign the browser form due to no certificate available. However the person who submitted the form has a certificate available, as do a few other individuals I tested with but they are not in the chain of Signers that need to be active on this form.

    Can I create a certificate in the domain, and if so how does the form service( or the user find it)?
    Pretty much a severe novice with CA.


    • Clayton Cobb said

      Derek, what do you mean when you say some people have a certificate? You should not use self-signed certificates. Digital Signatures in browser forms should be done with real digital certificates from a Certification Authority like VeriSign. If you have your own CA in-house, then personal certs need to be issued to everyone if you plan to use this feature. Self-signed certs only work for the person who created them.

      • Derek said

        I have had zero experience with digital signature and certificates until recently.
        When I stated that some have certificates – There is a certificate available when the are going through the signing processes. Not everyone has a certificate to select when propmted.

        Is setting up the Cert Store tricky? You mentioned issuing a cert to everyone if it is created inhouse. Do I need to create a cert for every user?

      • Clayton Cobb said

        No, this is not done by a developer. This is a major enterprise decision to become a CA. Talk to your infrastructure team to find out.

      • Derek said

        “Talk to your infrastructure team to find out.”

        This made me chuckle a bit since there are only 2 of us and we are resposible for “Everything” in the network.

      • Clayton Cobb said

        Then hopefully the other guy is the company’s Windows administrator?

  125. Derek said

    Team work!It’s all about team work.
    But yes he is.

    We have been discussing it(CA) but we are unsure if it will interfere with some other stuff on the network! We have some pretty unique things going on here, and those are more critical at this point.

  126. I am trying to create an InfoPath form that submits several rows of data in a SharePoint List or Library. e.g. I would like to allow a person to submit a request for up to 5 apartments. Each request would be entered in as a distinct row. My form might have several fields that are the same for each row of data (Name, current address, current phone) while it may allow the requestor to add up to 5 distinct requests. Is it possible to do this with InfoPath 2010 and SharePoint 2010?

    • Clayton Cobb said

      Yes, if you use create a new list form and during the initial creation of the form, be sure to check the box for allowing multiple inserts. This sets the main data group as a repeating group and gives you a repeating section instead of a non-repeating section for all your fields. Then, change the settings of that section to allow users to insert new sections so that they can submit more than one item. What this does is give your user the ability to submit one or many items of the same type to the same list, but all the fields and the layout of each item will be the same (each section will be identical, but each section represents a unique item). Then, on one click, each item is submitted as an individual list item. THis works very well and is easy, but it can’t be used for UPDATING multiple items.

      If this isn’t what you meant, then submitting multiple items to a list is not an available option (submit to list is not an available data connection) and requires custom code or the CAML method. SYM has 5 methods for this on her blog:

      • Stephen Pomaski said

        I’m happy to stumble across this, but I have a question. Is there a way to do this, but have a few fields not repeat every time? i.e. I have my core data entry fields (for project reporting) but don’t want to repeat the month, employee name and a few other fields. When doing this, with every insert, I duplicate those fields. And of course, no matter where you drag to the form, they’re repeating tables.

        Thanks in advance…always love the blog

      • Clayton Cobb said

        Hi, Stephen, you commented on my main Blog Listing page, so I’m not sure which blog you’re referring to. Please clarify.

      • Stephen Pomaski said

        Sorry. In regards to Marcel Meth’s post for creating an InfoPath form that submits several rows of data in a SharePoint List or Library. However, I think I just figured out the solution. Creating an additional field that will autonumber (count(preceding-sibling::*) + 1) and hiding the fields I want if not = to 1.

      • Clayton Cobb said

        Will that work for you? Each item is an independent item in the list, so each item will include those fields – it must include them. This is not a method for a parent/child submit – this is physically submitting multiple, individual list items to a list, and all those list items will contain the same fields. They SHOULD contain all that data, because they are separate rows in the table.

      • Stephen Pomaski said

        Well, I see what you mean. So with that said, is there any way you know of to “trick” those fields, i.e. populate with data populated from another entry?

      • Clayton Cobb said

        Trick them how? You mean to auto-populate the fields with the same data in each individual item…specifically the fields that you want people to only fill out once?

  127. Thea Rasins said

    I am a Business Analyst seeking to understand Sharepoint. Unfortunately I do not have access to a program so I have to learn online. Specifically, I want to find best practices for effectively tracking migrating data. Do you have any suggestions?
    Thanks for your great contribution to all of us!
    Thea Rasins
    Kansas City

    • Clayton Cobb said

      Thea, you absolutely must get your own environment to learn from – you can’t do it “remotely” without any hands-on. There are no best practices for tracking data (what is migrating data?) – there are so many ways to do things in SharePoint that you have to fully understand all of its capabilities, gather all the requirements, and then choose the right combination of tools and techniques to meet that goal in the most cost-effective manner.

  128. srishaila said

    In mysite i’am using approval -2010 workflow .But after docuemnt got approval then only it should be visible for all the user’ to do this in sharepoint 2010?

    • Clayton Cobb said

      Please be more clear with your question, srishaila. You’re building this on a My Site? I don’t recommend that. Also, what you described is built-in functionality if you turn on content approval, so is that what you’re missing?

  129. Laura said

    Hi clayton, I need to ask you smthin quick, i have an InfoPath form that has data published to sharepoint forms library as columns, i need to show graphical summary of these columns, these columns are like voting, which user enters a vote for each column, and i need to show how many users voted 1 for this column, and how many users voted 2 for the other column, how can i create a chart or graphical summary report on infopath form?

    • Clayton Cobb said

      Laura, the easiest and simplest thing to do is to modify your view settings in SharePoint so that those columns are set to “Sum” in the Totals section. That way, you’ll immediately see the total # of votes for a given column without any extra work or development. If you want it to be graphical, then you should click Actions > Export to Spreadsheet, and when Excel opens, tell it to create a Pivot Chart & Pivot Table. This will allow you to slice and dice the data into nice graphs/charts, and you can save that Excel file back into a SharePoint doc lib. You can also expose the graphs/charts via Excel Services if you’re using the Enterprise edition of SharePoint. The data connection is live, so each time you open that same doc, the new data is downloaded, and the graphs/charts update dynamically (as long as you allow the data refresh). You can also export the data to Access to do nifty reports.

  130. Sebastian said

    hi clayton, i have this question and i dont know what to do about it, i made infopath form and published it to sharepoint form library directly, not as a content type, and i put it on a page as a form webpart, the form has fields that the admin submits, once submitted other fields are shown and admin fields are disabled so that users can comment and submit there comments. i want to list these forms submitted by the admin in a list view web part and when the user clicks edit, it takes him to the page where i put the form webpart so they would add their comments, how can i do this? i want the user when he clicks the edit icon, it redirects him to the page of the form webpart.

    • Clayton Cobb said

      Sebastian, I am pretty sure we can get your exact request done by modifying the list view web part so that there is a link for the user to click that sends them straight to the custom page with the form web part, although you’d need to add a query filter web part to the page so that it can accept the incoming ID parameter.
      However, I’m not sure this is actually the best approach. You don’t manage this type of thing with custom pages, but rather by using Form Load rules AND conditional formatting in the form. Your users should be able to edit a list item from ANYWHERE and be sent to a view of the form that only shows them what they’re supposed to see based on who they are. This does not require any custom pages – it just requires custom logic in the form on certain fields and potentially in the Form Load rules for switching the view, if necessary. Why do you want to send them to that custom page – what does that give you? What are you using that page for anyway? I know you added the InfoPath form web part, but why? That all works out of the box without adding any custom pages.

  131. Derek said


    I am trying to setup a workflow that will email a list(Names of submitted forms) that is older than a specific date. I set the variables and conditions, but I am unable to get the items in the library to populate the email.
    I would like the email to show all items that were created > 60 days. Even if the workflow is run only on 1 specific item in the library.

    Here is what I have
    Set Variable1 to [Today]
    then Add -60 days to Variable1 (output: Variable2)

    if CurrentItem: Created is less than Variable2
    email user
    —- in the email LookUp —- Find data to retieve (Data Source: Current List, Field from Source: Created); Find the list Item (Field: Created, Value: Workflow Variable: Variable2

    I do not seem to get any data returned back in the email body.
    I tried it a few different ways. and still nothing.

    Is this even possible?

    • Clayton Cobb said

      The email lookup part doesn’t make sense. You already used your logic in the conditional statement, so if the condition is met, then you know you want to send the details of the current item, so you just insert the current item. It doesn’t make sense to try to “find” the item you’re currently working on when you already are working on that item in the current workflow.

  132. Derek said

    No thats not what I am trying to do, not just current item.

    I want to get a list in the email body of all items in the library that meet the condition “older than 60 days”

    • Clayton Cobb said

      SPD can’t do that – it can’t loop through items and grab a bunch of rows of data – it can only grab one piece of data at a time from one row. You have to run this individually on each item one at a time.

      • Derek said

        Can a single workflow change a common field in “all” items in the library.
        Basically use that as a trigger to kick off “when item changes workflow” instead of opening each item?

      • Clayton Cobb said

        No, it cannot – SPD cannot loop through items. You would need the workflow to trigger on all items individually, and then each workflow would update the current item. SPD cannot trigger all those workflows itself, though.

        The only way to iterate through items with SPD is if you build a custom workflow activity in Visual Studio that does it in code.

  133. Derek said

    I figured as much, thanks for the help!

  134. Derek said


    I am trying to move an SPD(2010) workflow from one list to another in the same site.
    I read a post that said to change the ListId in the %Workflow%.xoml.wfconfig.xml file.
    I did that. (Did not work as of yet)
    It also said to change the ListID in the %Workflow%.xoml file
    There seems to be an issue here, ListId{GUID}is non existant in this file,

    What could I be missing or is there a better way?

    This is a huge WF and I am not looking forward to recreating it.

    • Clayton Cobb said

      You normally create a new, empty workflow, which creates the relevant files, and then you copy over the XOML and RULES files without touching the config.xml. It’s the config.xml that has all the GUID references that you need.

      • Derek said

        Okay, so I do this and when I publish, it wipes out the xoml file back to original state(working file is 68kb, original is 2kb). It does not seem to save the data.

        The RULES file is still in tact. But the workflow structer is non existent.

      • Clayton Cobb said

        Then open the XOML files and copy/paste the internal XML.

  135. Derek said

    Did that too.

    • Clayton Cobb said

      Not sure what to say – I’ve done it many, many times. I’ll have to play with it later at home where my 2010 test environment is.

      • Derek said

        I will try a few other things here as well and will post if I resolve it.

      • Derek said

        I never got this to work, I tries it in a few different sites. Did you have any success in your test environment?

      • Clayton Cobb said

        Hasn’t been a priority, so I haven’t messed with it yet.

      • Derek said

        Funny, it is not a priority for me either… I junked it. Just wondered if you had tried it.

  136. Joe said

    My case is to have dropdown fields for date selection in a SharePoint 2010 List form and I would prefer to have only one date field in SharePoint. Now when I create the year dropdown the same field gets added to the SharePoint list as columns which I do not want. (instead I would like the year field to only be there for assistance, auto-populating when the list loads and making year selection faster).

    Question 1: Is there a way to have fields in InfoPath List Forms without saving the fields to the SharePoint list as columns?
    Another question: Is it possible to store temporary values in InfoPath List Forms without creating additional columns in the SharePoint list?

    • Clayton Cobb said

      Joe, a list form is bound to the list, so the schemas are the same. Any field in the form is automatically in the list and vice versa. Only library forms can have fields that are not part of the list (form lib) schema.

      I don’t know what you mean by temporary values, but as I said above, any FIELD in your list form will be a column in the list.

      • Joe said

        For example, setting a value of a SharePoint lookup field from a value of another lookup field (do I need 2 new fields to store the temporary lookup ids while querying the SP web services?)

        Or, is there any way to quickly select a year for a date field with only one field (in SharePoint)?

      • Clayton Cobb said

        Joe, the answer is still the same. In library form templates, you can do all of this. In a list form, every field will also be in the list. All controls in InfoPath are bound to a field (column in a list form).

  137. Laura said

    Hiiii Clayton, how are you? I have a question and want your advice 🙂 i am assigned to a project where i have to create lists and workflows on form libraries, and create groups and other lists for lookup in my forms, how do I give all this solution as a package so other people can deploy it in another site which is already running? i have about 3 lists and 2 form libraries, and 3 workflows on these libraries. is there a way? whats the best practice?

    • Clayton Cobb said

      No, there isn’t a way unless you build it all in Visual Studio. Otherwise, you’ll need to use a 3rd-party migration tool from a company like AvePoint, Qwest, Metavis, etc. You can save the site as a template and create a new site from that template with everything still there, but the URLs in the forms, and the GUIDs of the lists will all be different, so you’d have to go in and manually change those everywhere. If it were a whole site collection, then you could do a backup/restore, and everything would remain in tact.

  138. srishaila.a said

    I have designed infopath browser enabled form.In that ,it is having some check boxes, i had selected some check boxes. but when ever taking print out of the form all the boxes displaying with black coolour,it is not showing checked boxes with right mark.Is there printer settings required for this?

    • Clayton Cobb said

      I am not familiar with such a problem. Please create a new, blank form with one check box, publish it as a browser form to a new form library, and see how it prints.

  139. srishaila.a said

    thanks for the replly.
    I am displaying my infopath form link browser .but through search result , when i clicked on the link it is opening in to open the form in browser through search result also?

    • Clayton Cobb said

      That’s just how it works – the browser function only works with the Forms Services link or when clicking from within the browser. I don’t know of a way to force this from search results without customizing search results to included ?OpenIn=Browser at the end.

  140. srishaila.a said

    In infopath form is it possible to skip or hide some controls while taking the print out?

    • Clayton Cobb said

      If you can provide logic that tells the controls to show or hide themselves and put it in conditional formatting rules on those controls.

  141. Mark said

    Hi Clayton, I need to ask you a question that’s annoying me and can’t find a solution. I have a site, English, and Spanish, I need to make InfoPath form for making leave requests, the user can go to the english site and submit this leave request, the form should appear in the spanish library also, if the user submits in the spanish library, it should appear in the english library. How would this be done? I need to make approval workflow on these libraries (same workflow). Please advice me.

    • Clayton Cobb said

      Are you saying you have different sites for each language and different form libraries for each language but that you need to see the same docs in each one? This means you will have to duplicate the data every time, and if those doc libs are in different sites, you are going to have to use code. They can’t have the same workflow – they can have a copy of the same workflow on each side, but if you are duplicating the files on each site, then I have to say I don’t really understand what you’re doing here.

  142. Mark said

    Yes, that idea is to have an interface for each language, if you speak spanish you could go to the spanish site and submit your leave, but the people responsible for the solution want the same leave to appear in the english document library (synchronization purposes), what do you propose?

    • Clayton Cobb said

      I propose keeping them separate and using workflow to do the notifications independent of where the form was submitted. Then, you could easily create a custom page that aggregates data from both lists if they have a need to see everything in one place. This would require a Data Form Web Part with data sources for each form lib, or if the sites are in the same site collection, you could create new XSLT List Views in each form lib (in SPD2010), then export those to the site gallery, and then add them both to a custom page on whatever site your managers want to use. This way, they see the content of each form library in one place with all the standard ribbon features.

      • Mark said

        Thanks Clayton, so i dont copy any items? i just send emails like any other process, and make 2 pages one in spanish site and one in english site, these 2 pages are identical and show the 2 libraries or just 1 dataview webpart consolidate the 2 libraries. thanks.

  143. Mark said

    Hi clayton, thanks for your help with my variation case, i have a question, the english site is the root variation, and the spanish site is the other one, i made subsites under each one MANUALLY, i didnt use the timer job to create sites under english site to spanish site, so if i have a site with pages library under english site and create a page it will not be copied to the same site under spanish site’s pages library, is it because i haven’t run the variation timer job to create the sites? how can i fix it? they have the same urls, when i click the english label it moves to the english site and when clicking on spanish label it moves to spanish site (i made these labels using javascript). i did something wrong, right?

  144. Malineni said

    Clayton, I wish you could help me out here

    Here’s my situation.

    I have two groups of approvers, GroupA and GroupB

    (a) GroupA has 2 approvers and GroupB has 3 approvers.

    (b) In GroupB the 2nd and 3rd approvers are assigned, only if a condition is true (for example if amount is greater than 1000$ include approver 2 and 3 else skip).

    So I tried using two parallel steps (SP Designer steps) with one approval process and two approval process respectively.

    In Step2 the first approval process is for 1st user of GroupB and the other approval process starts on a condition.

    Since this approach has two or more parallel approval process I keep getting the message “Due to heavy load, the latest workflow operation has been queued. It will attempt to resume at a later time”. and the workflow sits there for ever.

    Am i on the right track or am I making things difficult. This is my first project on SPDesigner Wrkflow 😦

    Any help would be greatly appreciated.


    • Clayton Cobb said

      If it’s your first project using SPD, then you have gone wayyyyyyyyyyyy down to the deep end in a hurry without learning the tons of other things about how to use SPD first. If someone assigned this to you when you have no experience doing it, then that person should be aware of this and realize that this is not just a toy that you tell someone to go use and expect them to be able to move mountains with no experience. It’s more typical to use someone who already has deep experience with the tool unless this is not an important/billable project.

      That being said, I don’t know for sure if you are going the right way or not. Do you really need to full task processes running parallel? The error you are seeing is very common when trying to do this. I don’t have a simple solution for you, because I’d need to know the requirements in much more detail and that would be more than we can do over blog comments.

      Is there a reason why you didn’t just do them in sequence instead of parallel? You said step 2 has conditional approvals based off dollar amount. Can’t that occur after the 1st approval of that step instead of in parallel?

  145. srishaila.a said

    How to get the infopath 2007 search results to be opened in browser only,not in infopath form services?

    • Clayton Cobb said

      Opening in the browser IS InfoPath Forms Services. I already answered you on this question – you asked it previously. Search results do not open in the browser, because they are a direct link to the file, and that opens the file in the client. There is no setting or feature for this. You would have to do your own customization to the search results web part.

  146. Joe said

    Thanks for a good blog!
    However, the main page starts scrolling up automatically when reading the blog.

    • Clayton,

      Concerning this Blog, is there a way to break out all the initial comments into a more searchable pattern, possibly by pages or directories?
      I am sure you are working on some of the issues this page has, I just wish it was easier to find things here.

      Is there a possibility of going to a SharePoint 2010 site and using the OOB Blog site? Then items could be tagged by the person commenting, making it easier to find information for others.

      • Clayton Cobb said

        Derek, I don’t know of anything that does what you’ve mentioned. What is it that is hard to find? I have a direct, bulletized listing of all my blog posts right there on the front page, everything is tagged with metadata, the metadata selector is visible, and the tag cloud is visible all on the main page. WordPress is one of the best platforms for blogging – better than SharePoint in most ways – and it’s free. I don’t do this for a business – it’s just my free time, and I have done a lot of work to get it to where it is, but it’s definitely not very high on the priority list. I just try to keep up with the comments without making people wait too long…that’s about all I can promise. If there is a good way to do what you’re suggesting, then I’m open to ideas, but I don’t know of such a thing, but I also need to know what it is you’re trying to find and how you’re trying to find it.

        I’m pretty sure the tagging feature of SharePoint 2010 requires the Server version, which I definitely could not afford to license for Internet usage.

      • I totally agree that free is better.
        I have used the tag cloud in the past, but maybe what I was looking for was never posted.

        Don’t get me wrong, I think you are doing a wonderful service here, and it is greatly appreciated.


    • Clayton Cobb said

      Joe, can you explain the behavior in more detail? I do not experience this behavior in IE9. What browser are you using, and when does it scroll up? Is it only on the home page, which just has some links with comments, or is it on every individual blog post? What happens if you use a different browser or machine?

      • Joe said

        I have IE9 (32-bit) on a 64-bit win7.
        when going at the end of the page the page starts scrolling (at the speed of maybe 5 seconds per screen), and the scrolling cannot be stopped.
        after a couple of minutes the scrolling stops.
        I haven’t run into this behavior with this laptop anywhere else.

      • Clayton Cobb said

        Have you tried it on another browser or computer? I asked that before, because I cannot reproduce the issue you’re describing, and I have the same combination as you (Win7 64-bit + IE9 32-bit).

  147. Joe said

    Is it possible to localize InfoPath list forms or are there add-ons or 3rd party commercial tools available? It should be very easy to define localized terms (ie click field, click to localize)

  148. Guangming said

    What is the best practise of designing the forms for printing?

    I have text boxes showing within the left edge and the right edge. However, in print preview, it goes out of the right side of the page.

    Seems the form does not go with the rule What You see is What you get?

    Some general rules to ease the layout of controls on forms would be cool!



    • Clayton Cobb said

      I don’t have any issues like that, so I don’t have any best practices to give you related to that issue. What I do for Print Views is remove buttons, switch dropdowns to text boxes, remove background colors on fields, remove borders, and organize it so that it’s best for printing. My results are typically WYSIWYG.

  149. Guangming said

    I have a data connection (Pointing to a URL which returns XML), used by a dropdown list control. On the form, the dropdown list control is repeatable for a row in a table.

    I would like to change the parameter of the data connection for each instance of the dropdown list control dynamically. So I have another dropdown list with a static set of options. When users select a different option, I have C# code to set the Data Connection’s parameter and call the Execute method to retrieve. However, the return data will be applied to every instance of the first dropdown list control.

    Any ideas to handle this situation? does each dropdow list control have its own copy of data connection, which I can access in the C# code?



  150. srishaila.a said


    How to hide the text box control when taking the print out of the form,after that it has to visible as usual.

  151. Joe said

    Is it possible to render checkboxes for viewers as text (while as checkboxes for editors)?

    • Clayton Cobb said

      Only if you have a way to identity the current user as a “viewer” so that you can put conditional formatting on the text box and check box (hide check box if viewer; hide text box if editor). You just need a way to identity the user upon form load.

  152. Karen said

    Clayton, I have a SharePoint 2007 site. The top navigation tabs are used to display certain key pages within the site. However, when a user clicks on a tab, the tab doesn’t highlight like it does when the tab is linked to a sub-site. Is there a way to make tab highlight (change color) when its page is displayed? Thanks in advance for you help!

  153. Ian Hawkins said

    I’m simply trying to use the standard SharePoint 2010 Content Query web part to show the 10 most recently updated wiki pages on a site. On the CQWP properties I’ve picked “List Type” as “Wiki Page Library”, “Content Type” as “Wiki Page” and set my Grouping & Sorting. The web part is displaying the pages I want, but it’s annoying including the “.aspx” file extension for each item in the list.

    How do I stop the .aspx file extension being displayed within the CQWP?


  154. srishaila.a said


    RPC server unavailable in windows 2008 when installing digital certificate

  155. Joe said

    I thought of creating a custom wizard of a couple of pages for managing a single SharePoint list item, one of which with an InfoPath form and another concentrated on managed metadata and other special functionality. Do you think this would be a reasonable solution?
    In general, what approach would you recommend for using both InfoPath list forms AND managed metadata for a specific list?

    • Clayton Cobb said

      Joe, I don’t even really know what you mean – I definitely don’t have a recommended approach for what you’re saying, because I’m not understanding it so far.

      • Joe said

        InfoPath does not support managed metadata so we cannot add managed metadata fields directly to InfoPath list forms. Are there some pretty workarounds? (perhaps one way would be having a two-page form where the first page would be an InfoPath list form and the second page a SharePoint form with managed metadata. But here we’d have to play with content types etc).

  156. Sebastian said

    I want to ask a question, how do we display excel sheet as a web part on webpart page? i have a requirement to display excel sheet with its sheets i mean the tabs below, in a webpart how?

    • heguangm said

      There is a built-in web part called Excel Web Access. You can just add it to your web part page and configure the web part accordingly.

  157. I got a weird issue in a browser-enabled form:

    I have a table A with one column so that end user can add a list of values.
    I have a table B with two columns. Column C is a dropdown list with options from Table A.

    In the design mode, it seems working: you can add rows to Table B and select a value for Column C without affecting the previous added rows.

    However, in browser mode, anytime when I added a new row, Column C in all previous added rows were changed to the first option from Table A after a post request (“Sending data to the server”) was made.

    Note that Table B is in a Repeating section, and Table A is outside of the section. When a new repeating section is inserted, a set of rules are applied to copy certain values from previous section to the new section. I also have another dropdown list in the section where I have C# codes to handle selection change event.

    Not sure how the things got messed up. Any other repeating tables I have on the form did not trigger the post request… when that happened it also cleared up some values the rules copied.

    I feel it is somehow related to use the repeating table in the form as drowdown list option source. Anyone has such experience?

  158. I found a way to set a control never to post back – Control Properties – Browser Forms.

  159. Joe said

    I have an sql table S with 2 columns: Id and Title. S is joined to another table T by its Id.
    What is the easiest/best way to update rows in T using SharePoint 2010 external lists and InfoPath list forms so that users would see S/Title instead of S/Id?

  160. srishaila said

    How to get publishing image column ( Image with formatting and constraints for publishing)
    in infoath form 2007 data connections?

  161. Jim Rac said


    First, thank you for all of the info you have provided to the community. I am a SharePoint novice, currently focused on learning workflows + InfoPath, and in my daily net searches on these topics, your blog articles, presentations, and MSDN answers keep popping up, providing the insights that I needed to keep moving forward on my projects. So: a big THANKS!

    One of the revelations that I’ve had recently was studying your Leave Form example. Up to that point it was my assumption that best practice for handing out work assignments to people during a workflow was to assign a task. After seeing how well your Leave Form functions without using tasks, I realized that how to handle work assignments seems to be more of a design choice than a set in stone best practice.

    This leads to my novice question: in designing a workflow, what are the tradeoffs you’ve found between handling work assignments by assigning tasks vs. not assigning tasks (the approach you take in your leave form)? It seems to me this is a fundamental workflow design decision but in my reading (many books and blogs!) I have never seen this topic explicitly discussed.

    With my limited experience, here are my initial thoughts re: some possible considerations of each approach:

    – Interface with users from multiple places (main form and tasks)
    – One iteration – workflow pauses and waits for tasks to complete
    – Supports sequential and parallel work assignments
    – Inherently more complex

    – Interface with users from one place (main form only)
    – Multiple iterations – workflow runs to completion for each work assignment.
    – Only supports sequential work assignments
    – Inherently simpler

    I am curious, what would you change/add to the list above? What is your thought process when deciding how to handle work assignments, and is there a key factor for you in determining whether to go with tasks or not?

    Any thoughts you have are greatly appreciated. Thanks again Clayton!


  162. Joe said

    Is there any way to show long texts in single line of text fields in infopath forms without scrolling.

    • Clayton Cobb said

      Joe, what do you mean without scrolling? You mean you want the text box to auto-expand? If so, then set the text box height to Auto, and it will expand. However, it will not be able to put all that data into SharePoint (only the first 255 characters), and I don’t think it will expand in print view.

  163. walid said

    can show me
    1. User chooses to create a new leave request.
    2. Once the request form link is clicked, leave request form has been automatically opened for the employee to fill, this form must show the employee available leave balance from the backend.
    3. The form should show additional information like the employee name,
    department and approvers (in some case more than one approvers For ex: Team leaders may vary for each employee).
    4. Employee fills in leave duration, leave reason etc.
    5. The user submits the form. While clicking the submit button, the leave details will be created as a new list item with approval status ‘pending’.
    6. Also send the leave request to the approvers specified (Team leaders, head of department) for approval.
    7. If the approvers approved the leave request, then the leave request will be forwarded to HR department for final approval.
    8. If the approvers rejected the leave request, then the request will not be forwarded to HR department and the requests send to the respected employee.
    9. If the leave request has been approved by HR, then the leave request list item approval status will be changed as ‘Approved’.

    • Clayton Cobb said

      Walid, I have almost all of that in my video and PowerPoint presentation right there on the front page of my blog. It’s a large undertaking, but it can be done, and I built almost that exact scenario. The only thing I don’t have in mine is an HR approval layer, but I could easily add that and any other approval layer.

  164. Bill Lacy said


    Thank You your time during SPSTC. I enjoyed both of your classes. ANd I look forward to learning more about Infopath and SharePoint Thank You Clayton.

    • Clayton Cobb said

      Bill, you’re very welcome, and thank you for being such a great attendee. Folks like yourself make it worth doing all the work. I hope you have a chance to use the book, and please send Ira Fuchs (the author) a note thanking him for so willingly donating his books for events like this.

  165. Kedrick said

    Hi Clayton,

    Thanks for the stockpile of information on SharePoint and related products… well done!

    I’ve check thru the questions and blogs and don’t see a question or comment that address an issue I’ve been facing for a couple of weeks with InfoPath 2010. I have a Full Trust form (cuz I need it to pass parameters) that I’ve publish to SharePoint and activated to a site collection. However, I don’t see those forms in the dropdown list to select list or libraries in the InfoPath Form Web Part configuration!

    When I create a sandbox form that doesn’t require approval and load it to a form library, I can select it and display it in the Form Web Part. However, I can’t get it to work with administrator-approved forms.

    Is this by design? Is there something special I need to do with administrator-approved forms to get it to display in an InfoPath Form Web Part?

    • Clayton Cobb said

      When you activate the admin-approved form to your site collection, you still have to create a form library and add it as a content type. Then, the form web part will show that form library in the dropdown of available forms. Form web parts don’t connect to forms – they connect to form libraries and lists.

      Why do you need it to be admin-approved? I don’t understand why passing parameters requires admin-approval, so please clarify if you care to discuss.

      • Kedrick said

        Thanks for the prompt feedback…

        To answer your question, I ended up using an admin-approved form template cuz when publishing the form (as a sandbox solution) with In/Out parameters, I got a message that sandbox solutions cannot have In parameters…

        In the future, I’d like to create forms with managed code that’ll connect to web services and the file system so I just decided to go along and test this option since I’ve already been able to publish forms as sandbox solutions and load those into an InfoPath Form Web Part.

        As far as enabling my admin-approved form template I have a form library… here’s what I did to get it into a library:
        1. After uploading and activating the form to my site collection, I created the a form library.
        2. I clicked on my form template name in the site collections’ “Form Templates” library and selected ‘Send To’ -> ‘Other Location’ then input the link to the form library I created.
        3. I was able to view the form template in my form library.

        I assumed this was all I had to do but I still can’t select the form in the Form Web Part configuration… am I missing something?

  166. Kedrick said

    Hey Clayton

    I found a blog that described how to add my form template as a content type by enabling “Allow management of content types?” under the Form Library Settings option of the form library. Once enabled, I was able to add my form template as a content type which, as you said, made the form template available to select when configuring the InfoPath Form Web Part…

    Thanks for you help…

    On another note, have you noticed that IE9 is very memory intensive when running SharePoint? I didn’t notice such memory consumption while using IE8 but since upgrading IE9 x86, memory usage keeps rising until I restart. Could be cuz I’m running in debug mode but…

  167. Tom Barron said

    Clayton, I’m hoping you might have a ‘no code’ solution for a requirement for validation on a SharePoint 2010 list column. To keep it simple I’ll narrow down my example to two columns – Description and Status. Description is a text field and Status is a drop down. Status contains three possible options: New, Active, Completed). There is no validation on the first two Status options (New, Active). However, I have a requirement that in order for the user to change the value of Status to the third option, “Completed”, the value of “Description” column must NOT be blank. I tried using the validation formula option for the column but it keeps giving the error that I can’t reference another column. I do have full Enterprise and have the option of customizing the input form if that helps. Developers are happy to jump in with some C# but I’m curious if I could do this without it. Thanks!

  168. Kivuos said

    Hi Clayton,

    I have a Info Path 2010 form published to a SharePoint Library. Now users can click on Add a document / New to add a new document to the library having the same info path form template. But the problem is that when users click on Upload Button, they can upload any document of any template type. But in that case my workflow (which is based on values of the fields in info path form) fails, since the document is of a completely different type. How can I disable users from uploading a document to a Info path Form Library?

    How can I disable New button in the Task List?


    • Clayton Cobb said

      Hi, Kivuos, this is just standard operating procedure for SharePoint. A form library is just a document library and like any doc lib, people can click New/Add or just Upload. There is not a setting for disallowing this. Same for tasks lists. The only way to keep people from creating new tasks is to change permissions so that they can’t add items.

      Hiding the Add and Upload buttons from the ribbon can be done with some roundabout methods using jQuery and such, but those are not true security measures. I suggest training the users primarily.

      • Kivuos said

        Hi Clayton,

        Thanks for the reply.
        In that case apart from training the users, I will put an extra check in my Document Library Workflow to check the value of a column (if that column is null, i will know that it is a uploaded file) and depending on that, I can trigger a mail to the uploader citing reason as to why upload is not possible and then delete the document and stop the workflow.


  169. Alen Austin said

    Hi Clayton
    Thank you for your help
    i have been using your slides for making a code less solution
    now i did it with a better solution it was all made with your guidance and it worked very well but after sometimes i had an issue.
    now i am having a major issue with the UPS
    as i updated the server machine which is a standalone machine(SQL server R2,MOSS 2010 ) installed in the same machine also i have put the SP1 and the June CU
    but now i am not able to synchronize the User Profile plz help me as sometime i am getting unexpected error
    yesterday i got the same error (an unexpected error when trying to access the port 80 site) and i checked the ULS log
    i then deleted the user profile service and also disabled the synchronization service using the power shell command
    and then i was able to get my port 80 site
    could you guide me as i am not able to start the USP

    • Clayton Cobb said

      Alen, that would require some pretty significant architectural analysis/support. I don’t know what to tell you off the top of my head, but I can say that I installed SP1 and June CU in my environment and did have to change several things related to my InfoPath techniques regarding UPS. However, I had no trouble with my User Profile Service Application. It never stopped and didn’t have to be fixed.

  170. Joe said

    What is the easiest way to add an attachment to a list item using an InfoPath form if the attachment is a document in SharePoint and contains empty spaces in its file name?

    • Clayton Cobb said

      JOe, why would you attach something that is already in a SharePoint doc lib? That duplicates the document and removes the duplicate from any document management features.

      • Joe said

        Guess I’ll guide users with older browsers just to copy the docs locally and attach from there..

        in many scenarios linking would work better.. in our case some pdfs need to be brought together into a simple permission structure while preserving them in the original sources.

        Seems like IE9 works fine. Older browsers replace empty space with %20 in the ‘Browse…’ dialog and InfoPath does not seems to cope with that..

      • Clayton Cobb said

        Doing an attachment isn’t linking – it’s making a copy of the document in the list. Also, filenames should really never have spaces, though that can be tough to manage when regular users are setting the filenames.

        I still don’t understand the situation, though. Why do you want to make a 2nd copy of the same file when it’s already in SharePoint? I didn’t follow the permissions structure vs original source comment. Despite the browser situation, you still are copying that file to another place, which doesn’t seem beneficial.

      • Joe said

        yea it’s hard to get rid of spaces in existing documents unfortunately… maybe for future docs but not for existing ones…

        yea, as you said attaching docs already in sp is often not needed, and generally it would be better to preserve a single version of truth by linking, instead of copying info to two different places.
        (but attaching might work better sometimes, for example if some info needs to be collected, processed and exported from docs in sp)

  171. srishaila.a said

    I have devloped custom master page for sharepoint 2010 site through designer.Master page successfully applied to the site with the system account credentials.but when we logged in as other user it is shoeing “file not found error”.

    • Clayton Cobb said

      Did you check in the master page, publish, and approve it? The Master Page Gallery has content approval on by default, so every new file or changed file must go through the full publishing process for others to see it.

  172. Hi Clayton,

    I have a question that I am hoping you can help me with. We are rolling out forms for things like travel approval, POs, and check requests. We are running SPP 2007, SPD 2007, and InfoPath 2010. The forms and workflows work great as along as the approver is in the building and on the network. The email from the workflow contains a link to the form on our SP server and the they just click on the appropriate dropdown to approve or reject..

    Our issue is traveling staff that need to approve requests. We would like to create an input on the email from SPD to allow them to click right in the email and not have to open the form from their mobile device. I have tried using the html tags, but that isn’t working in the email. Is this possible? Is my question clear?

    • Clayton Cobb said

      Shelly, your company needs to build a mobile solution for everything so that your users can interact with your SharePoint/InfoPath/Workflow solutions. what I mean by this is they either need to have a wireless network internally that people connect to that automatically puts them on the network and/or there needs to be some sort of Edge technology that allows people to reach SharePoint after logging in through a gateway like Threat Management Gateway or Unified Access Gateway (both Microsoft products). If this isn’t done, then there is no way for people to connect to SharePoint for completing the workflow. You definitely can’t just do custom HTML in the SPD workflow.

      What is it you want people to be able to do when they receive the workflow email? What you wrote was, “create an input on the email from SPD to allow them to click right in the email.” Click right in the email and do what? Don’t they need to see the form? Don’t they need to interact directly with SharePoint?

      • Actually, they don’t need to interact directly. The email gives them the pertinent information – who, what, how much – they just need to be able to say yes or no.

        We are a very small group, so the mobile solution is a ways off for us. We really just want them to be able to send back the response.

      • Clayton Cobb said

        Shelly, ok, then they need to just reply to the email, or you can create two dynamic email links in the body of the workflow email. Name one “Approve” and the other “Reject,” and set the email hyperlink so that each one is pre-formatted with the ID/Name of the item plus body text for approve and reject. Here is an example:

        Approve –[Current Item: Title] has been Approved&Body=[Current Item: Title] has been Approved. Reject –[Current Item: Title] has been Rejected&Body=[Current Item: Title] has been Rejected.

        I can’t do rich text through the blog reply here, so I’ve typed it all out above. You would hyperlink the words “Approve” and “Reject” with the code/text written to the right. Then, whoever receives that email would go do the official approve or reject on the item. I don’t know of a way to make it dynamic based off a button click on the email on the mobile device without being connected to the network.

  173. marcelmeth said

    Composites: Master/Detail Web Part page using Web Part Connections

    I am trying to create a Master / Detail page using two web parts:

    web part 1) A view of a Library that has numerous InfoPath forms in it

    web part 2) A form web part that is showing the contents of one of the entries in web part #1.

    So, I know how to do just about everything here: The key issue that I am having is: When the user clicks on a particular item in web part #1, I want web part #2 to display the details of that entry. I can pass the ID of the form from web part 1 to web part 2, but how can I force the InfoPath web part to load the data of that particular item?

    • Clayton Cobb said

      Marcel, I believe you’re not connecting the web parts properly. If you pass the ID, then it just sends the ID as a parameter to the new form. If you want the actual associated form to show, then you use a different type of web part connection – the one named “send form data to.” When using that, it takes the selected form and “sends” it to the other web part. What you’re doing now is just sending one value (ID) to the blank form, so nothing is really happening.

      • marcelmeth said

        Thank you. You were correct! It was trivial, once I reconnected the web parts.

        I have a corollary question. I am using a very simple form with a drop down that contains compound names for chemists. When the user picks a compound ion the list and then hits a button, that I have named “pick” it causes a list of assay requests to be filtered to show only requests for the compound. The question I have is, how can I have the list not filtered at all, when the drop down is empty? Thus the initial condition, when the page is first visited, has no selection in the drop down. The list of assay requests is currently filtered by the compound that appears in the drop down. Since there is no compound that appears, the list shows up as empty.

      • Clayton Cobb said

        Marcel, what is assay?

        If you don’t want the questions to be filtered when there is no selection, then change your filter condition. I don’t know how you’ve built that solution, so I can’t tell you the exact button clicks. I would need to know how you’re currently filtering and where those questions are coming from. Are they from a data connection?

        Clayton Cobb 202-413-3036

      • marcel meth said


        Thanks and I understand what you are saying. I didn;t use the standard out of the box Filter control. The reason is that I have a long list of compounds that the user can pick from and the standard filter for lists has a less than optimal UI to pick from a large list of coumpoiund names. Instead I built a simple InfoPath form. This form has a dropdown, which allows the user to pick a compound, and a button that allows the user to indicate that the selected compound in the drop down should be communicated to the list and thus the list should be filtered to show items that have only the selected compound. The communication between the simple InfoPath form and the list is through a Web Part Connection.

        This all works extremely well. The only thing that is missing is that the client wants the page to open with a list that is populated. The problem is that the simple InfoPath drop down comes up empty, by design. Thus the list comes up empty. My client would like the list to come up unfiltered by default.

        I hope that this is clear.

        By-the-way, an “Assay”, is a procedure in molecular biology for testing or measuring the activity of a drug or biochemical in an organism or organic sample

  174. shreyas said

    Hi Clayton, I have an infopath form where I used sharepoint designer 2010 to send an email to a group. once a particular user submits the form then an email should be triggered to a group along with the active view of the infopath form should appear in the body of the email message. so how to display the infopath form in the body of the email message through sharepoint designer 2010 ?

    • Clayton Cobb said

      SharePoint Designer doesn’t have that ability. If you want to send the InfoPath form via email, then you must use a “Submit to Email” data connection in the form, and sending the “active view” is one of the options. I do not recommend this, though, because it duplicates data through your mail system and does not give the user a link to the real form to see live data. I prefer sending a link to the form so that users click the link and always see the current version of the form. If it’s in an email, then that data is immediately stale. If you must do it, though, then it must be done through an InfoPath data connection.

      • shreyas said

        Thanks alot Clayton,
        Instead of sharepoint designer if i use infopath designer email option then i am facing the below mentioned problem :

        In my Infopath form 2010, I am using a data connection called Email submit (which is an ‘To Email’ option in data connection). I have a people picker field in my form template which is used to select a “manager” from my local database.

        The problem is the user (who enters data in the form) can select any manager from database and after he clicks the submit button then an email should be sent to that specific manager with the active view of my infopath form mentioned in the body of the email.

        The problem is I don’t know how to send an email to that particular manager because in Email submit data connection we can see only ‘To’, bcc fields which asks us to enter manager email, which we don’t know since we cannot expect which manager does the user selects from the database while he fills the form.

        so is there any possibility to send an email to that manager ?

      • Clayton Cobb said

        Are you not able to choose a field in the form for sending the email? That field would be the email of the selected manager, which you can retrieve using the User Profile Service.

  175. shreyas said

    Thank you very much Clayton

  176. shreyas said

    Hi Clayton,
    as per your advice, I used a webservice (which is used to catch the manager’s email Id as soon as an user enters the managers field while filling the form) but the problem is Instead of getting the managers id the webservice is displaying the user id and sending mail to user rather than sending to manager.

  177. shreyas said

    Hi clayton, I have an Infopath form and there is a button called ‘print’ on that form and when the ‘print’ button is pressed it should print the Infopath form. so do you have any suggestions to implement print functionality with out code ?

  178. Shreyas said

    Hi Clayton,
    I published an Infopath 2007 form with custom code(which have no errors) on central admin like one day back and till now it shows its status as “upgrading” on central admin.
    1. I don’t know like why it’s taking so long time ?
    2. Although its status is Upgrading on central admin but I found that form on production site but when you open it, its giving some error like
    There has been an error while processing the form.
    Click Continue to resume filling out the form. You may want to check your form data for errors.
    Click Start Over to load a new copy of the form.
    Error Details :
    “An entry has been added to the Windows event log of the server. Log ID:5337 ”

    when I enter into the Event log on that server I was not able to find an event with id 5337.
    can you please suggest me what to do to remove the error .

    • Clayton Cobb said

      Shreyas, I’m not sure. I don’t add code to forms and don’t publish them to Central Admin. There is apparently something wrong with the template, and SharePoint is unable to update the feature. You’ll have to check the logs and do more testing. Sorry that I cannot be more helpful.

  179. Shreyas said

    Hi Clayton,
    In Infopath designer 2007, where do I find “Form Load” Options (like the one which is present in Data connections in infopath designer 2010). please Indicate the location.

  180. shreyas said

    Hi Clayton,
    I was using a data connection called GetProfile to get some users data. From yesterday I am getting a below error
    “The settings for one or more data connections in your form are defined in a data connection library on a microsoft sharepoint server to retrieve this settings the form must be published to the server that contains the data connection library and form must be opened from the published location”

    The GetProfile webservice is not displaying any user information on the form. what is the solution for this ? please suggest

  181. shreyas said

    hi Clayton,
    I have created an alert called Alert in a library in a sharepoint site and when ever i create a new form or modify an existing one, a message will be sent to two email id’s , now the problem is one email id is getting the alerts but other email id is not getting the alerts although it gets an initial message telling you have subscibed for alerts “Alert” and no other further alert will be received. so where is the problem ?

  182. Hi Clayton,

    I have a People Selector control on a 2007 browser form. If I enter an incorrect user name and hit ‘Check name’ the page hangs over 5 minutes, then the control shows the “user not found” message. Is it possible to set some kind of time out to display the “user not found” message quicker?
    Appreciate your help my project is overdue already.
    Thank you

  183. Shreyas said

    Hi Clayton,
    I was trying to use my powershell code to access one of my service’s outlook Inbox, manually when I was running the powershell code the service’s outlook ask’s me whether to allow the access for outlook or not if so how long (like 1 min to 10 min’s). The problem is I need to run the powershell code automatically using task scheduler, while running automatically the outlook is not giving Inbox access to my code which is running through task scheduler. so how can I give my powershell code full access to my service’s Inbox ? please suggest me.


  184. Juli Reid said

    Hi Clayton, I have an IP2010 form that has several sections that are hidden until certain selections are made and/or unless the person accessing the form is the initiator, manager or I.T. person. Thanks to several of your posts, I have done some nifty things here. I am hoping that you will have a positive answer to this question.

    This is a ‘Mobile Device Request form’. The initiator enters basic information in the beginning. They can choose new device/service or upgrade and select what device they want from the list. If they select ‘upgrade’ a new section appears asking for information such as Phone number and model of their current device.

    Is there anyway to require the ‘Phone Number’ and ‘Current Model’ fields to not be blank ONLY if ‘Upgrade’ was selected in the main portion of the form?

    I have played around some with the validation rules but they don’t seem to accomplish this.

    • Kivuos said

      Hi Juli, in IP2010, you can put multiple conditions on a particular field while validating. In your case the conditions will be:
      If PhoneNumber is Blank & ServiceType is “Upgrade”,
      then throw a validation message

  185. Kivuos said

    Hi Clayton, I have a requirement regarding task delegation in SharePoint 2010. I have SPD workflow tasks for different modules.
    Requirement Summary: When a user U1 goes on leave, they want to delegate all their existing tasks as well as new tasks (which might be assigned to them during this time) to some other user U2. U2 can approve / reject any task. When the delegation period is over all the pending tasks (which were delegated to U2 and still pending approval) should get delegated back to him.
    Any ideas as to how this can be achieved. Any 3rd party solution is also acceptable.
    Thanks a ton in advance.

  186. Clayton,

    I have an issue with permissions that I have been living with for a long time, and I am wondering if there is a way around this that I do not know. It seems like there are two worlds of permissions in the InfoPath vs SharePoint world. I often have the requirement that some people should be able to see certain objects in a form, but not the entire form, while other people can see other objects, or possibly all objects. In the same way, I often have a requirement that some people should be able to see WebParts, thus I can use Audiences that reference SharePoint groups, but *NOT* SharePoint lists of people.

    I know that I can use SharePoint groups to implement this distinction in InfoPath permissions. BUT the only way I have seen to do this is to take an InfoPath form and write it out as source code and then to hand craft the connection information. Then I need to recompile these source files back in to the xsn file.

    Now I hate this! It causes issues in the future for people who have to come back and work on the form and it is cumbersome to document what I have done. Instead, I have found a technique where I can keep a regular SharePoint list of peoples’ IDs and the InfoPath form can easily access this list and thereby provide users with visibility to Form Objects according to these SharePoint list entries.

    So…. I don’t love this solution, because when I try to hide and show things in SharePoint (Non-Infopath pages) I can’t seem to find a way to show or hide things based on a list of peoples’ IDs.

    Thus I am stuck with two distinct ways of controlling visibility: 1) SharePoint Groups and 2) SharePoint lists.

    Is there a better way?

    • Clayton Cobb said

      I use SharePoint Groups and AD Security Groups via web services for restricting SharePoint permissions and for hiding/showing form controls/switching views (per my blog), but I’m not sure why you’re having to go through that much trouble to do it unless I’m misunderstanding the specifics of your dilemma.

      The idea of lists is something I also have blogged (contact lists), but it is the lowest denominator solution, so I don’t usually use that, though it is very simple/quick when it’s a fit.

      Clayton Cobb 202-413-3036

      • Clayton,

        I read your post carefully and I got a semblance of what I want to work. A couple of follow-on questions, and maybe I should post these here:

        1) I am currently consulting to an enormous company that does not allow me to create AD groups, instead I have to create SharePoint groups.
        So,…. Am I able to figure out whether the current user belongs to a specific SharePoint group?

        2) I did put the Display Name into a drop down list, but I couldn’t quite figure out why I was showing up.
        For example, last week I created a new site called “ARM” and indeed I was getting ARM in my drop down. By-and-large it seems that the sites that I have created appear in the drop down, but how can I get my clients to show up in these?

      • Clayton Cobb said

        1) Yes, for using SharePoint groups, you use the UserGroup.asmx method. The problem with this is that SharePoint Groups are scoped at the site collection level, so you have to duplicate and manage those groups in every site collection. Not allowing AD groups is quite debilitating from a SharePoint perspective unless everything resides in one site collection.

        2) I don’t understand this question/problem. If you’re talking about the “Site Membership” attribute from UserProfileService.asmx, then that only shows sites where you are a member of the default members group for a given site. That cannot be relied upon.

        Clayton Cobb 202-413-3036

      • 1) For my purposes, I don;t mind the limitation for SharePoint groups which live in a single site collection. Yes I get that! The article you refer me to ( ) outlines the method that I do not like, since it means exploding the xsn file into the component xml files, handcrafting the code in the data connection, then recompiling those files back into the xsn file. (Am I missing something?)

        2) In terms of the second question, I guess I am not sure what constitutes Site Membership? For example in the system that I am using, I clearly show up as belonging to ARM. Now I added a colleague to the site explicitly as well as to one of the SharePoint groups that has full access to the site. In neither case did ARM show up in the dropdown list that I created on the form.

      • Clayton Cobb said

        1) I didn’t know that’s what you were referring to. That is the only way to determine SharePoint Group membership that I know of.

        2) I’m referring to my blog about using the GetUserMembership method of the UserProfileService.asmx. It returns Distribution Groups (AD DLs and SGs) and Site Memberships (only when added to the default Members group of a site). That’s what I’m referring to – I’m not sure exactly how you’re doing it nor why you don’t see anything in the dropdown.

        Clayton Cobb 202-413-3036

  187. sooboth said

    Hi Clayton,
    I have an issue with infopath form. I have created one choice column (name: update status) with 5 choices inside the form library in sharepoint 2007. In Infopath 2007, in dropdrop list box (list box entries) I entered “Look up values from an external data source”. Data Source > Add > Receive data > SharePoint Library or List > Inserted Form library name > checked on “update status”
    Entries: Select a Field or Group > Selected “update status”.
    I enabled the form to open in browser (display as a web page). I published the form in form library in sharepoint.

    Now, the problem is the the drop down list in the form shows only one option (It does not show all 5 choices). I need your suggestion.


    • Clayton Cobb said

      Sooboth, that is not how dropdowns and data connections work. The dropdown options in SharePoint will not show up in InfoPath. When you create a data connection, that’s for retrieving _data_ from the list/library, not for retrieving column details. Your data connection is going to return the rows of data in that form library, not the settings of the columns within the form library. So, what you’re going to see in your InfoPath dropdown is a list of all the data in that column based on what items exist in that form library.

  188. Shreyas said

    Hi Clayton,
    I have a SharePoint 2010 Infopath List form. In this form I have a people picker field and a Date picker field. Now I need to make people picker field Mandatory only when Date picker field is not blank. How can I do this as Action, validation are not available for People Picker and we cannot use custom code for an Infopath List form ? Please suggest.

    • By creating another field (name it PersonValidator or something) and setting its default value to the AccountId field of the Contact Selector, then add a section control below/above/beside the Contact Selector that is hidden UNLESS the PersonValidator field is populated when the Date field is populated. This section control should have red/bold/italicized text in it stating that the Contact Selector may not be blank. Also, make the PersonValidator field conditionally required by using a Validation rule that says, “If DateField is not blank and PersonValidator IS blank.” This is an indirect method for making a Contact Selector conditionally required.

  189. Shreyas said

    Hi Clayton,
    but the problem is people picker field should become mandatory only when date picker is not blank and remaining time it should not be mandatory.

  190. Shreyas said

    I created a section but not able to add any rules to it for hiding it (may be as it is List form).

  191. Clayton,

    Have you had the chance to play with InfoPath in SP 2013? ANy pearls of wisdom you care to share?

    • I have been playing with it for a while, but there were unfortunately no investments made, so nothing to report other than the new design, which really isn’t of value (imo). The one issue with retrieving AD Security Groups via UserProfileService.asmx is fixed, but that wasn’t directly related to InfoPath. The real hotness is with the workflow investments in SPD.

  192. Shreyas said

    Hi Clayton,
    My content database is growing too large day by day and I heard that if content database size is greater than 100gb then I may get performance issues with SharePoint 2010, so as a solution I thought to limit mdf file to a particular size say 80 gb and create a new mdf file
    for further content. so my question is are there any concerns/issues I may face during taking backups from that server as my content db will have multiple mdf files ?

  193. Shreyas said

    Hi Clayton,
    were can I find my Business Intelligence centre page(for creating Dashboards) ? after Performance Point services got installed on my central admin

  194. Juli Reid said

    Happy New Year! I have 2 questions for you.

    1. I know you can link SharePoint lists with lookup fields etc. What I would like to know is if it is possible to link 2 lists, so when an item is created in one, it creates a duplicate items in the other and then when the first item is updated it automatically updates the other list. I know it’s crazy but it’s a permissions issue. I have a situation where I need to be able to display the status of selected projects to the owners or other respective persons but I can’t give them access (even read) to the main projects list. So rather than having to update lists in 2 places or give individual rights to the items themselves (what a pain!) I thought this might be a possibility.

    2. What do you think of using an actual form library as the main data source for a form and creating all the columns in the library and then adding them to the form that way?

Leave a Reply to Clayton Cobb Cancel reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s