Advanced InfoPath Development
            InfoPath / SharePoint 2010
Prepared By: Suzanne George
Suzanne.George@perficient.com
Sr. Architect
Perficient - Microsoft West Region
About Perficient




Perficient is a leading information technology consulting firm serving clients
throughout North America.



We help clients implement business-driven technology solutions that integrate
business processes, improve worker productivity, increase customer loyalty and
create a more agile enterprise to better respond to new business opportunities.
Agenda



• InfoPath – Getting started
• Designing foundations
• What you need to know
• Debugging InfoPath
• Creating a Vacation Request Form




                                          3
InfoPath – Love it or Hate it!?!


The Promise of InfoPath
                          Where is the developer??




                                Why Me??


 The Developer
        Dream




                                                         4
InfoPath - Start with the basics!

• To use or not to use InfoPath? Just because you
  can doesn’t mean you should!
   – Pros:
      •Easy to use interface, integration with SharePoint Lists
       and Form Web Parts, Office Integration.
      •Power Users can do simple stuff.
      •Lookups and repeating tables are easy to do.
   – Cons:
      •Advanced developers find it frustrating
      •Can’t publish people picker fields
      •Publishing columns / changes to column names
      •No CSS type support (expand/collapse regions)
• evaluate the requirements and prioritization of
  features over simplicity and maintainability                         5
Designing Your InfoPath Form for Success

• Design first!
   – Where is the data? Database, List or Library, in the
     form?
   – Where does the business logic belong – Workflow,
     Code-Behind, or InfoPath Rules? Where will
     approval happen?
   – Form Views – how many views will you need, when
     will they show, and who has access to update?
   – Form Controls – what types of controls are needed
     for the data, which controls will be exported, etc.
   – Styles – how will the form look and does it make
     sense to the user?


                                                                   6
The InfoPath Need to Know List

• Deployment – Central Admin vs. Publish (Form
  Options)
       Add-PSSnapin microsoft.SharePoint.PowerShell
       $web = Get-SPWeb http://crzo-test77/BASS
•   Know = $web.Lists["ApplicationSupport"]
       $list how to retrieve your InfoPath Form
    w/Powershell
       $field = $list.Fields["SR Assigned To"]
       $field.AllowDeletion = “true”
     – Export-SPInfoPathAdministrationFiles -path
       $field.Sealed = “false”
       d:Tempfile.cab
       $field.Delete()
       $list.Update()
• Know how to export source files before checking in to
  TFS. (Also Select-Object InternalName FormName.xsn to
     $list.Fields | possible to rename
  FormName.cab to view/extract contents)
     $web.Dispose()

• When removing exported columns, the are not
  removed from a list! Here is how to fix it…

                                                                  7
Debugging an InfoPath Form

• Debugging Essentials
    – Check form with Design Checker
    – Set debug mode
         • click the Build tab and then, at the bottom, click Advanced. In the
           Advanced Build Settings dialog box, click the Debug Info list and then
           click full
         • In the Options dialog box, in the area to the left, expand Debugging and then click
           General.
         • Clear the Enable Just My Code (Managed only) check box.
         • Select the Suppress JIT optimization on module load (Managed only) check box.
         • Build/Deploy

    – Set Central Administration Logging for InfoPath
         • Use ULS Viewer for log information




• Urls: http://ybbest.wordpress.com/2011/01/09/how-to-debug-infopath2010-using-
  vs2010/
• http://msdn.microsoft.com/en-us/library/gg271285.aspx#IP14_Debugging

                                                                                                 8
An example… Vacation Form

• The requirements
  – User to input form
  – All data stays inside form, certain fields are
    exported to list
  – Version History
  – After approval start SharePoint workflow
  – SharePoint list views need to have People “is [Me]”
    functionality




                                                             9
Form User Input

– Demo




                      10
Conclusion


   • Design first, code once!
   • InfoPath can be powerful and leverage both PowerUsers
     and developers capabilities
   • More things you can do with InfoPath
      •   Automatically check-in / out forms
      •   Populate dynamic approvers in form based upon information in the
          form
      •   Dynamically hide and show data
      •   Mash-ups
      •   Read/Write to database tables

• Questions?




                                                                             11
Suzanne George



For further information, please contact:



Suzanne George
Suzanne.George@perficient.com
Sr. Technical Architect
Perficient - Microsoft West Region
Twitter: spgenie

Books co-authored:




                   Microsoft® SharePoint® 2010 Administrator's Companion




                   The SharePoint 2010 Handbook: A Collection of Short
                   Chapters for Delivering Successful SharePoint Projects

                                                                            12

Advanced SharePoint 2010 InfoPath Development

  • 1.
    Advanced InfoPath Development InfoPath / SharePoint 2010 Prepared By: Suzanne George Suzanne.George@perficient.com Sr. Architect Perficient - Microsoft West Region
  • 2.
    About Perficient Perficient isa leading information technology consulting firm serving clients throughout North America. We help clients implement business-driven technology solutions that integrate business processes, improve worker productivity, increase customer loyalty and create a more agile enterprise to better respond to new business opportunities.
  • 3.
    Agenda • InfoPath –Getting started • Designing foundations • What you need to know • Debugging InfoPath • Creating a Vacation Request Form 3
  • 4.
    InfoPath – Loveit or Hate it!?! The Promise of InfoPath Where is the developer?? Why Me?? The Developer Dream 4
  • 5.
    InfoPath - Startwith the basics! • To use or not to use InfoPath? Just because you can doesn’t mean you should! – Pros: •Easy to use interface, integration with SharePoint Lists and Form Web Parts, Office Integration. •Power Users can do simple stuff. •Lookups and repeating tables are easy to do. – Cons: •Advanced developers find it frustrating •Can’t publish people picker fields •Publishing columns / changes to column names •No CSS type support (expand/collapse regions) • evaluate the requirements and prioritization of features over simplicity and maintainability 5
  • 6.
    Designing Your InfoPathForm for Success • Design first! – Where is the data? Database, List or Library, in the form? – Where does the business logic belong – Workflow, Code-Behind, or InfoPath Rules? Where will approval happen? – Form Views – how many views will you need, when will they show, and who has access to update? – Form Controls – what types of controls are needed for the data, which controls will be exported, etc. – Styles – how will the form look and does it make sense to the user? 6
  • 7.
    The InfoPath Needto Know List • Deployment – Central Admin vs. Publish (Form Options) Add-PSSnapin microsoft.SharePoint.PowerShell $web = Get-SPWeb http://crzo-test77/BASS • Know = $web.Lists["ApplicationSupport"] $list how to retrieve your InfoPath Form w/Powershell $field = $list.Fields["SR Assigned To"] $field.AllowDeletion = “true” – Export-SPInfoPathAdministrationFiles -path $field.Sealed = “false” d:Tempfile.cab $field.Delete() $list.Update() • Know how to export source files before checking in to TFS. (Also Select-Object InternalName FormName.xsn to $list.Fields | possible to rename FormName.cab to view/extract contents) $web.Dispose() • When removing exported columns, the are not removed from a list! Here is how to fix it… 7
  • 8.
    Debugging an InfoPathForm • Debugging Essentials – Check form with Design Checker – Set debug mode • click the Build tab and then, at the bottom, click Advanced. In the Advanced Build Settings dialog box, click the Debug Info list and then click full • In the Options dialog box, in the area to the left, expand Debugging and then click General. • Clear the Enable Just My Code (Managed only) check box. • Select the Suppress JIT optimization on module load (Managed only) check box. • Build/Deploy – Set Central Administration Logging for InfoPath • Use ULS Viewer for log information • Urls: http://ybbest.wordpress.com/2011/01/09/how-to-debug-infopath2010-using- vs2010/ • http://msdn.microsoft.com/en-us/library/gg271285.aspx#IP14_Debugging 8
  • 9.
    An example… VacationForm • The requirements – User to input form – All data stays inside form, certain fields are exported to list – Version History – After approval start SharePoint workflow – SharePoint list views need to have People “is [Me]” functionality 9
  • 10.
  • 11.
    Conclusion • Design first, code once! • InfoPath can be powerful and leverage both PowerUsers and developers capabilities • More things you can do with InfoPath • Automatically check-in / out forms • Populate dynamic approvers in form based upon information in the form • Dynamically hide and show data • Mash-ups • Read/Write to database tables • Questions? 11
  • 12.
    Suzanne George For furtherinformation, please contact: Suzanne George Suzanne.George@perficient.com Sr. Technical Architect Perficient - Microsoft West Region Twitter: spgenie Books co-authored: Microsoft® SharePoint® 2010 Administrator's Companion The SharePoint 2010 Handbook: A Collection of Short Chapters for Delivering Successful SharePoint Projects 12