InfoPath – Using CONCAT

The term concatenate means to put pieces together to make a whole. In the case of InfoPath, the CONCAT function allows you to put any combination of the following elements of your InfoPath form together into one element:

  1. Field
  2. Function
  3. Text

Syntax

concat(fieldname, "text", function)
  • Fieldname – The name of a field from your form.
  • Text – Any text you enter must be enclosed in quotes.
  • Function – Any of InfoPath’s built-in functions.

Example:

Use the CONCAT function to give a form a name when submitting to a Sharepoint list.

concat(FullName, "-", today) would result in the form being named DebbieSilbert-11/10/06.xml.

InfoPath – Submitting to Two Data Connections

Many workflows could be enhanced if a form could be sent to more than one location, like to a main repository and to a user who  via email.

In this topic, I’ll show you how to create a form that is sent to two locations.

The first step in the process is to create two data connections. For this example, we’ll create one for a Sharepoint forms library and one for email.

Create A Data Connection to Submit to a Sharepoint Form Library

  1. Click ToolsData Connections. The Data Connections dialog opens.
  2. Click the Add button. The Data Connection wizard opens.
  3. Since we’re creating a “submit” data connection, accept the default option of Submit data.
  4. Click the Next button.
  5. Select the To a Sharepoint form library option. In the Sharepoint form library field, enter the UNC path to the Sharepoint forms library.

Note: It’s easiest to navigate to the forms library and copy the URL from the Address field of your browser, then paste it in this field. After you do that, delete this from the end of the URL: Forms/AllItems.aspx

  1. The File Name field can be a bit tricky if you want something other than just “Form” as a name for each form submitted. The See “Using the Concat Function” function (don’t let that word scare you) is the trick. Use the CONCAT function to establish a form naming convention.

Example:

concat(FullName, "-",now()) would result in: Debbie Silbert-10-03-2005.xml as a filename.
  1. If you would like the form to allow save and replace, click the Allow overwrite if file exists checkbox.
  2. Click the Next button.

Create a Data Connection to Submit via Email

  1. Click Tools…Data Connections. The Data Connections dialog opens.
  2. Click the Add button. The Data Connection wizard opens.
  3. Since we’re creating a “submit” data connection, accept the default option of Submit data.
  4. Click the Next button.
  5. Select the As an e-mail message option.

InfoPath – Display Dialog Box on Load

The first part of the code checks to see if there are any required fields that have no value. If there are, the text displayed in teal is presented to the user and control returns to InfoPath. If no errors are found, the Submit is attempted. If an error of another sort is found, the error message is displayed.

/======= // 
The following function handler is created by Microsoft Office InfoPath. 
// Do not modify the name of the function, or the name and number of arguments.
//======= 
function XDocument::OnLoad(eventObj)
{ 
// Write your code here (Put in Tools…Programming…On Load) 
var clicked
clicked = XDocument.UI.Confirm("This form is for offices with six or fewer employees. Do you wish to continue?", 1);
if (clicked == 1) 
{ 
XDocument.UI.Alert("You clicked OK."); 
} 
else if (clicked == 2) 
{ 
XDocument.UI.Alert("You clicked cancel."); 
} 
}

Be sure to enable Submit in the Submittng Forms dialog.

  1. Tools … Submitting Forms.

InfoPath – Confirm and Close

One glaring shortcoming of InfoPath is an option that allows you to tell InfoPath to close after a form is submitted. There is the option to close the form, but not close the application. So, here’s the code to make it happen.

Put this in the Code of a Submit button.

Note: Be sure to leave the function CTRL19_5::OnClick(eventObj) (your CTRL number will be different) line alone and place the following between the two {}:

if (XDocument.Errors.Count > 0) 
{
XDocument.UI.Alert("Required information is missing as indicated by the red asterisk(s).") ; 
return; 
} 
try 
{ XDocument.Submit() Application.ActiveWindow.Close(true); } 
catch(e) 
{ XDocument.UI.Alert(e.description); }

The first part of the code checks to see if there are any required fields that have no value. If there are, the text displayed in teal is presented to the user and control returns to InfoPath. If no errors are found, the Submit is attempted. If an error or another kinds is found, the error message is displayed. Be sure to turn on Submit options in the Forms Options dialog.

InfoPath – Introduction

The most amazing tool in the Microsoft Office 2003 suite, in my humble opinion. InfoPath is a tool to use to create cool automated forms.

I’m not a developer. I don’t know .NET, Javascript, or any other programming language. I’m just a process junkie who likes to put these tools to work to help me do my job more efficiently and economically.

InfoPath, in its 2003 incarnation, made great strides in giving forms authors flexibility and control.

  1. Design a form. Use all sorts of cool buttons, controls, and other UI elements.
  2. Define data connections. Data connections are the conduits through which the data in your forms gets submitted to someone or something. You can connect to Sharepoint forms libraries, Web services, or other databases. I don’t work much with Web services because, like I said, I’m not a developer and haven’t had access to the administrator console.
  3. Provide Submit buttons to allow users to send forms to:
  • Users via email (one or many)
  • Sharepoint lists so you can keep track of the forms, requests, or whatever animal you create.

The Help system in InfoPath is abysmal at best. The InfoPath Microsoft Newsgroup is very helpful.