我使用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
结束子