Thanks Greg,
Before I saw your reply, I ended up adding a web reference to my web service, and then adding custom submit code that invokes the method on the web service directly instead of utilizing a data connection at all.
<Code Snippet>
public void FormEvents_Submit(object sender, SubmitEventArgs e)
{
XPathNavigator nav = MainDataSource.CreateNavigator();
XPathNavigator idNode = nav.SelectSingleNode("/XPath/Node/That/Stores/The/FormId", this.NamespaceManager);
// We need to capture the return value of the submit, so that we can update the FormId.
InfoPathService.IInfoPathForm IPService = new InfoPathService.IInfoPathForm();
XPathNavigator responseNode = nav.SelectSingleNode("/XPath/Node/That/Contains/The/Response", this.NamespaceManager);
Guid FormId = IPService.SubmitInfoPathForm(responseNode.InnerXml);
idNode.SetValue(FormId.ToString());
e.CancelableArgs.Cancel = false;
}
</Code Snippet>
This looks like it does what I need, so I'll run with that for now.
Thanks again!
Jason