San Francisco

There is undoubtedly a different vibe here.  First time in the city and astounded by the geography, temperature, and climate.  The  streets are steep, it’s 50 at night and 70 during the day, and the wind blows like crazy!

Portrero Hill Community Garden


Thanks to airbnb found a reasonably priced (as reasonable as San Fran gets) place for 5 days. Were lucky to have it right across the street from this beautiful view.









Left feeling like I had been on the leg press machine all week.    Streets were so steep steps are needed and cars are required to be parked with the front wheels angled toward the sidewalk in case of ER brake failure.  Strollers and walkers discouraged.


Grateful for the addition of Tazza Kitchen as a local eatery.  The environment is warm and inviting with a roaring fireplace, the food sourced locally, and the preparation fantastic.  Here is their Kale salad, and it’s not easy to make Kale taste good!

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


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.


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.


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).") ; 
{ XDocument.Submit() Application.ActiveWindow.Close(true); } 
{ 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.

Madcap Flare – Providing a URL to a Specific Topic

Sometimes you may need to allow users to link to a specific topic within your Flare system from an external source. This can be done using two elements required by a context-sensitive help system known as a Header and an Alias file. You don’ t need to know a lot about them, just follow the instructions below.

Create the Header and Alias Files

From the Project Organizer, expand the Advanced folder. If there is a header and an alias file, skip to step 9; otherwise, begin here:

  1. Click Project…Advanced.
  2. Select Add Header File.
  3. In the File name field enter the word header.
  4. Click the Add button.
  5. Click Project…Advanced.
  6. Select Add Alias File.
  7. In the File name field enter the word alias.
  8. Click the Add button.

Create an Alias for each Topic

Each topic you would like to provide a link for will need an Alias.

  1. From the Project Organizer, expand the Advanced folder.
  2. Double-click the alias file. The Alias editor opens.
  3. Under the Identifier column click CHANGE_THIS.
  4. Enter the name for the Alias. This is the name that will become part of the URL. It can be anything, but its a good idea to keep it short and sweet.
  5. From the Topics pane on the right, select the topic you’re creating the alias for.
  6. Click the Assign button. Notice the path of the topic appeared in the Topic column.
  7. Repeat steps 1 thru 6 for each topic for which you need a URL by clicking the New Identifier button in place of step 3 above.

And the URL is . . .


Replace yourprojectpath with the path to your project. Replace aliasname with the name of the alias from step 4 above.

The key is that you’re launching default_csh.html rather than default.html, which is the normal file to load a Flare project. The _csh string indicates Context Sensitive Help — remember that from the beginning of the lesson? You may want to learn about context sensitive help if you’re not already familiar with it, but you don’t need to know a thing about it for this exercise.

The other key thing to note is the # between the filename and the aliasname. That’s important.

Also, you could add a | symbol to have the topic launched in a different skin. Using the same example: