<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.infopathdev.com:443/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SharePoint Integration</title><link>https://www.infopathdev.com:443/forums/46.aspx</link><description> For questions concerning issues in the integration of SharePoint and Microsoft InfoPath.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP3 (Build: 31118.962)</generator><item><title>Re: Repeating Table Rows - CAML to SharePoint List - Multiple entries at once?</title><link>https://www.infopathdev.com:443/forums/thread/116286.aspx</link><pubDate>Fri, 12 May 2017 19:55:08 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:116286</guid><dc:creator>Hilary Stoupa</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/116286.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=46&amp;PostID=116286</wfw:commentRss><description>You can mix them! So yes, you can have some &amp;quot;new&amp;quot; and some &amp;quot;updated&amp;quot;, just have to set the attribute to the correct value when you create the new node.</description></item><item><title>Re: Repeating Table Rows - CAML to SharePoint List - Multiple entries at once?</title><link>https://www.infopathdev.com:443/forums/thread/116284.aspx</link><pubDate>Fri, 12 May 2017 18:03:52 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:116284</guid><dc:creator>meissen</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/116284.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=46&amp;PostID=116284</wfw:commentRss><description>Thanks Hilary - that blog post got me in the right direction. 

One last question - do you know if you can mix New and Update method nodes, or do they all have to be one or the other?

I think where I&amp;#39;m at is I&amp;#39;ll have one sub for AddMethodNode and then one for UpdateMethodNode respectively for &amp;quot;New&amp;quot; or &amp;quot;Update&amp;quot; method cmd. Theoretically, could I append a &amp;quot;New&amp;quot; to my XML and then the next node be &amp;quot;Update&amp;quot;?</description></item><item><title>Re: Repeating Table Rows - CAML to SharePoint List - Multiple entries at once?</title><link>https://www.infopathdev.com:443/forums/thread/116282.aspx</link><pubDate>Fri, 12 May 2017 15:11:22 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:116282</guid><dc:creator>Hilary Stoupa</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/116282.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=46&amp;PostID=116282</wfw:commentRss><description>&lt;p&gt;You need to start with a NodeIterator for your source data - that&amp;#39;s repeating right? What&amp;#39;s your repeating group? &lt;/p&gt;&lt;p&gt;Then use a foreach to go through&amp;nbsp;each node, using relative XPath to the fields - so if your NodeIterator is for my:myFields/my:group1/my:group2, to get data from each node in your foreach, you use&amp;nbsp;my:field1, my:field2 etc.&lt;/p&gt;&lt;p&gt;Create and append new method nodes to the batch&amp;nbsp;inside the loop. &lt;/p&gt;&lt;p&gt;Here&amp;#39;s a good blog post: &lt;br /&gt;&lt;a href="http://www.bizsupportonline.net/infopath2007/how-to-submit-items-rows-repeating-table-infopath-sharepoint-list.htm"&gt;http://www.bizsupportonline.net/infopath2007/how-to-submit-items-rows-repeating-table-infopath-sharepoint-list.htm&lt;/a&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Repeating Table Rows - CAML to SharePoint List - Multiple entries at once?</title><link>https://www.infopathdev.com:443/forums/thread/116279.aspx</link><pubDate>Fri, 12 May 2017 14:59:54 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:116279</guid><dc:creator>meissen</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/116279.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=46&amp;PostID=116279</wfw:commentRss><description>Hi Hilary -- that&amp;#39;s excellent news to hear! Could you help point me in the right direction to get started? Would I instead use NodeIterator to create new nodes that way?</description></item><item><title>Re: Repeating Table Rows - CAML to SharePoint List - Multiple entries at once?</title><link>https://www.infopathdev.com:443/forums/thread/116276.aspx</link><pubDate>Fri, 12 May 2017 14:56:49 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:116276</guid><dc:creator>Hilary Stoupa</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/116276.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=46&amp;PostID=116276</wfw:commentRss><description>Hi, meissen - oh if you are using code for this you do NOT need to submit a row at a time! Loop through your data source with the info you wish to submit, and create and append new Method nodes to your Batch. Give it a try, holler if you get stuck &amp;amp; need help w/ the code.</description></item><item><title>Repeating Table Rows - CAML to SharePoint List - Multiple entries at once?</title><link>https://www.infopathdev.com:443/forums/thread/116275.aspx</link><pubDate>Fri, 12 May 2017 14:08:13 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:116275</guid><dc:creator>meissen</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/116275.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=46&amp;PostID=116275</wfw:commentRss><description>Hi all,&lt;br /&gt;
&lt;br /&gt;
i&amp;#39;m pretty sure the answer is &amp;quot;no&amp;quot; but I&amp;#39;m trying to come up with a solution in which I can take a repeating table&amp;#39;s rows and insert/update a SharePoint list in one query. I&amp;#39;m currently using CAML approach but for some reason the script successfully gets so far through the repeating table and then stops/times out... Not to mention, the user is left sitting there as the script grabs the first row, updates Sharepoint, grabs the 2nd row, updates SharePoint, 3rd row, updates SharePoint, etc until it cycles through ~50 rows and this can be pretty time consuming while the InfoPath file establishes the connection over and over again.&lt;br /&gt;
&lt;br /&gt;
Thoughts? Is there any better way that I could accomplish this?&lt;br /&gt;
&lt;br /&gt;
I&amp;#39;m not sure how much the code is going to make sense, but hopefully those reading will be able to get the general idea of what I&amp;#39;m trying to accomplish.... &lt;br /&gt;
&lt;br /&gt;
Public Sub PostPQRRElementsByGroup(ByVal sGroup As String)&lt;br /&gt;
            Try&lt;br /&gt;
                &amp;#39;* Define variables&lt;br /&gt;
                Dim sElementNumber As String = &amp;quot;&amp;quot;&lt;br /&gt;
                Dim iElementID As Integer = 0&lt;br /&gt;
                Dim iFileID As Integer = 0&lt;br /&gt;
                Dim iRequirementID As Integer = 0&lt;br /&gt;
                Dim iRecordID As Integer = 0&lt;br /&gt;
                Dim iProgramID As Integer = 0&lt;br /&gt;
                Dim sUniqueID As String = &amp;quot;&amp;quot;&lt;br /&gt;
                Dim sFilename As String = &amp;quot;&amp;quot;&lt;br /&gt;
                Dim sComments As String = &amp;quot;&amp;quot;&lt;br /&gt;
                Dim sStatus As String = &amp;quot;&amp;quot;&lt;br /&gt;
                Dim sGroupXMLpath As String = &amp;quot;/my:myFields/my:&amp;quot; + sGroup&lt;br /&gt;
                Dim xnElements As XPathNavigator = Me.DataSources(&amp;quot;PQRR Element Repository&amp;quot;).CreateNavigator()&lt;br /&gt;
                Dim xnCAML As XPathNavigator = Me.DataSources(&amp;quot;Add List Item Template&amp;quot;).CreateNavigator()&lt;br /&gt;
                Dim xnMain As XPathNavigator = Me.MainDataSource.CreateNavigator()&lt;br /&gt;
                Dim dcElements As DataConnection = Me.DataConnections(&amp;quot;PQRR Element Repository&amp;quot;)&lt;br /&gt;
                Dim dfElements As XPathNodeIterator = xnElements.[Select](&amp;quot;/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW&amp;quot;, NamespaceManager)   &amp;#39;* I used df for data fields&lt;br /&gt;
                Dim dqElements As XPathNodeIterator = xnElements.[Select](&amp;quot;/dfs:myFields/dfs:queryFields/q:SharePointListItem_RW&amp;quot;, NamespaceManager)  &amp;#39;* I used dq for data query fields&lt;br /&gt;
                Dim xiPQRRElements As XPathNodeIterator = xnMain.[Select](sGroupXMLpath, NamespaceManager)&lt;br /&gt;
                Dim wsSubmit As WebServiceConnection = DirectCast(Me.DataConnections(&amp;quot;Web Service Submit&amp;quot;), WebServiceConnection)&lt;br /&gt;
                Dim iRecordCount As Integer = 1&lt;br /&gt;
&lt;br /&gt;
                iProgramID = xnMain.SelectSingleNode(&amp;quot;/my:myFields/my:HiddenFields/my:ProgramID&amp;quot;, NamespaceManager).ValueAsInt&lt;br /&gt;
&lt;br /&gt;
                &amp;#39;* Check if there&amp;#39;s any elements&lt;br /&gt;
                If xiPQRRElements.Count &amp;gt; 0 Then&lt;br /&gt;
                    &amp;#39;* Loop through all of the elements&lt;br /&gt;
                    While xiPQRRElements.MoveNext()&lt;br /&gt;
                        &amp;#39;* Set the values in the Add List Item Template XML file using the values in the new row.&lt;br /&gt;
                        sElementNumber = xiPQRRElements.Current.SelectSingleNode((&amp;quot;my:&amp;quot; + sGroup + &amp;quot;ElementNumber&amp;quot;), NamespaceManager).ToString&lt;br /&gt;
                        sFilename = xiPQRRElements.Current.SelectSingleNode(&amp;quot;../my:HiddenFields/my:FileName&amp;quot;, NamespaceManager).ToString&lt;br /&gt;
                        sComments = xiPQRRElements.Current.SelectSingleNode((&amp;quot;my:&amp;quot; + sGroup + &amp;quot;Comments&amp;quot;), NamespaceManager).ToString&lt;br /&gt;
                        sStatus = xiPQRRElements.Current.SelectSingleNode((&amp;quot;my:&amp;quot; + sGroup + &amp;quot;Status&amp;quot;), NamespaceManager).ToString&lt;br /&gt;
                        iElementID = xiPQRRElements.Current.SelectSingleNode((&amp;quot;my:&amp;quot; + sGroup + &amp;quot;ElementID&amp;quot;), NamespaceManager).ValueAsInt&lt;br /&gt;
                        sUniqueID = xiPQRRElements.Current.SelectSingleNode((&amp;quot;my:&amp;quot; + sGroup + &amp;quot;UniqueID&amp;quot;), NamespaceManager).ToString&lt;br /&gt;
                        iFileID = xiPQRRElements.Current.SelectSingleNode(&amp;quot;../my:HiddenFields/my:FileID&amp;quot;, NamespaceManager).ValueAsInt&lt;br /&gt;
                        iRequirementID = xiPQRRElements.Current.SelectSingleNode((&amp;quot;my:&amp;quot; + sGroup + &amp;quot;RequirementID&amp;quot;), NamespaceManager).ValueAsInt&lt;br /&gt;
                        iRecordID = xiPQRRElements.Current.SelectSingleNode((&amp;quot;my:&amp;quot; + sGroup + &amp;quot;ID&amp;quot;), NamespaceManager).ValueAsInt&lt;br /&gt;
&lt;br /&gt;
                        xnCAML.SelectSingleNode(&amp;quot;/Batch/Method/Field[@Name=&amp;#39;Title&amp;#39;]&amp;quot;, NamespaceManager).SetValue(sElementNumber)&lt;br /&gt;
                        xnCAML.SelectSingleNode(&amp;quot;/Batch/Method/Field[@Name=&amp;#39;Filename&amp;#39;]&amp;quot;, NamespaceManager).SetValue(sFilename)&lt;br /&gt;
                        xnCAML.SelectSingleNode(&amp;quot;/Batch/Method/Field[@Name=&amp;#39;Comments&amp;#39;]&amp;quot;, NamespaceManager).SetValue(sComments)&lt;br /&gt;
                        xnCAML.SelectSingleNode(&amp;quot;/Batch/Method/Field[@Name=&amp;#39;Status&amp;#39;]&amp;quot;, NamespaceManager).SetValue(sStatus)&lt;br /&gt;
                        xnCAML.SelectSingleNode(&amp;quot;/Batch/Method/Field[@Name=&amp;#39;ElementLookup&amp;#39;]&amp;quot;, NamespaceManager).SetValue(iElementID)&lt;br /&gt;
                        xnCAML.SelectSingleNode(&amp;quot;/Batch/Method/Field[@Name=&amp;#39;UniqueID0&amp;#39;]&amp;quot;, NamespaceManager).SetValue(sUniqueID)&lt;br /&gt;
                        xnCAML.SelectSingleNode(&amp;quot;/Batch/Method/Field[@Name=&amp;#39;Associated_x0020_PQRR&amp;#39;]&amp;quot;, NamespaceManager).SetValue(iFileID)&lt;br /&gt;
                        xnCAML.SelectSingleNode(&amp;quot;/Batch/Method/Field[@Name=&amp;#39;Requirement_x0020_ID&amp;#39;]&amp;quot;, NamespaceManager).SetValue(iRequirementID)&lt;br /&gt;
                        xnCAML.SelectSingleNode(&amp;quot;/Batch/Method/Field[@Name=&amp;#39;ProgramCode&amp;#39;]&amp;quot;, NamespaceManager).SetValue(iProgramID)&lt;br /&gt;
&lt;br /&gt;
                        &amp;#39;* Check if the PQRR Element has been posted already. If true, then set to update and set the ID field to iRecordID&lt;br /&gt;
                        If iRecordID &amp;gt; 0 Then&lt;br /&gt;
                            xnCAML.SelectSingleNode(&amp;quot;/Batch/Method/@Cmd&amp;quot;, NamespaceManager).SetValue(&amp;quot;Update&amp;quot;)&lt;br /&gt;
                            xnCAML.SelectSingleNode(&amp;quot;/Batch/Method/Field[@Name=&amp;#39;ID&amp;#39;]&amp;quot;, NamespaceManager).SetValue(iRecordID)&lt;br /&gt;
                        Else&lt;br /&gt;
                            &amp;#39;* iRecordID is not &amp;gt; 0 so this is a new record&lt;br /&gt;
                            xnCAML.SelectSingleNode(&amp;quot;/Batch/Method/@Cmd&amp;quot;, NamespaceManager).SetValue(&amp;quot;New&amp;quot;)&lt;br /&gt;
                        End If&lt;br /&gt;
&lt;br /&gt;
                        &amp;#39;* Submit the batch XML file&lt;br /&gt;
                        wsSubmit.Execute()&lt;br /&gt;
&lt;br /&gt;
                        &amp;#39;* Refresh the Elements data connection&lt;br /&gt;
                        dcElements.Execute()&lt;br /&gt;
&lt;br /&gt;
                        &amp;#39;* Now that it&amp;#39;s submitted, let&amp;#39;s get the record ID for the submitted Element&lt;br /&gt;
                        dfElements = xnElements.[Select](&amp;quot;/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW[d:UniqueID0 = &amp;quot;&amp;quot;&amp;quot; + CStr(sUniqueID) + &amp;quot;&amp;quot;&amp;quot;]&amp;quot;, NamespaceManager)&lt;br /&gt;
&lt;br /&gt;
                        &amp;#39;* Check if there&amp;#39;s a match (there should be) and if so, update the form row&amp;#39;s Record ID with the ID from SharePoint&lt;br /&gt;
                        If dfElements.Count &amp;gt; 0 Then&lt;br /&gt;
                            dfElements.MoveNext()&lt;br /&gt;
                            iRecordID = dfElements.Current.SelectSingleNode(&amp;quot;d:ID&amp;quot;, NamespaceManager).ValueAsInt&lt;br /&gt;
                            xiPQRRElements.Current.SelectSingleNode((&amp;quot;my:&amp;quot; + sGroup + &amp;quot;ID&amp;quot;), NamespaceManager).SetValue(iRecordID)&lt;br /&gt;
                        End If&lt;br /&gt;
                    End While&lt;br /&gt;
                End If&lt;br /&gt;
&lt;br /&gt;
            Catch ex As Exception&lt;br /&gt;
                ErrorLogging(&amp;quot;PostPQRRElements&amp;quot;, ex)&lt;br /&gt;
            End Try&lt;br /&gt;
        End Sub&lt;br /&gt;</description></item></channel></rss>