将XML元素设置为XML Post的变量值



我使用XML Import填充电子表格,以便从云中提取事务。导入数据后,我需要将状态更新为"6"以表示已同步,并将其发送回服务。每个事务都有一个唯一的ID,我试图填充它,所以当我发布时,它选择正确的记录。

响应显示没有发送ID。"找不到要用id:None更新的对象。"硬编码字段似乎工作正常。当我在调试中运行时,SndID的值设置正确。

我尝试使用"+ SndID +",这是我在XMLImport上使用的变量日期范围(参见下面的代码设置该变量),但得到相同的响应。

L2LConnect = "https://mycompany.clousdservice.com/api/1.0/spares/
 auth=password&issued__gte=" + cYesterday +  
"&issued__lt=" + cToday + "&limit=1000&format=xml&site=1"

关于如何将SndID的值设置为该行的ID,有什么想法吗?我也试过在设置后发送StrData。

  StrData = "&format=xml&site=1&id=" + SndID +  
 "&status=6&closed=True&LastUpdatedBy=L2LSynch"

返回相同的错误。ID =无。

' RunUpdate Macro
'
    Dim myTable As Range
    Dim rng1 As Range
    Dim URL As String
    Dim objHTTP As Object
    Dim strResponse As String
    Dim StrData As String
    Dim SndID As String

Sheets("XML Import").Select
Set myTable = Sheets("XML Import").Range("Table2")
For Each rng1 In myTable.Columns(11).Cells
    SndID = rng1.Value  
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "https://mycompany.cloudservice.com/api/1.0/spares/
    auth=mypassword&format=xml&site=1"
objHTTP.Open "POST", URL, False
objHTTP.send 
"&format=xml&site=1&id=SndID&status=6
&closed=True&LastUpdatedBy=L2LSynch"
strResponse = objHTTP.responsetext
MsgBox strResponse
 Next rng1

End Sub

谢谢!

Try

objHTTP.send "format=xml&site=1&id=" & SndID & "&status=6" & _
             "&closed=True&LastUpdatedBy=L2LSynch"

使用&而不是+来连接字符串是很好的做法。

我联系了提供者,ID(唯一键)需要作为URL的一部分传递,而不是查询字符串:

For Each rng1 In myTable.Columns(11).Cells
 SndID = rng1.Value
 StrData = "status=6&closed=True"
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 **URL = "https://mycompany.provider.com/api/1.0/spares/synchronize/
 " & SndID & "/?auth=password&site=1&format=xml"**
objHTTP.Open "POST", URL, True
objHTTP.send StrData
 Next rng1

结束子

最新更新