在VBA/SOAP中将数据类型varchar转换为数字时出错
问题描述:
我有要求从Excel/VBA创建SOAP请求。原谅我的一些术语,因为我对这个过程相当陌生。在VBA/SOAP中将数据类型varchar转换为数字时出错
在SOAP请求的标题中有2个“节”。 UserAuth和CallBackAuth。然后在肥皂身体下有检索。
在VBA中创建信封字符串的构造并发送之后,我最初收到的错误是明显的验证错误。一旦我使用了正确的名称和密码,那些错误就消失了,所以我知道我正处在正确的轨道上,直到进程的设置。
现在我无法越过错误“Error conversion data type varchar to numeric。”如何解决这个错误?这似乎是一个标准错误,你会在SQL中看到我很熟悉的东西,但是由于我的知识有限,所以它没有任何意义。
我已经尝试了所有可以为这些占位符想到的组合,但无济于事。
从信封构造中添加片段,我相信问题是?
sEnv = sEnv & "<UserAuth xmlns=""http://targetsite.com/webservices"">"
sEnv = sEnv & "<UserName>TEST</UserName>" '***Need String
sEnv = sEnv & "<Password>TEST1234</Password>" '***Need String
sEnv = sEnv & "<SID>1234567</SID>" '***Need INT
sEnv = sEnv & "<PID>1234566</PID>" '***Need INT
sEnv = sEnv & "<IUser></IUser>" '***Need String
sEnv = sEnv & "</UserAuth>"
sEnv = sEnv & "<CallBackAuth xmlns=""http://realpage.com/webservices"">"
sEnv = sEnv & "<App></App>" '***Need String
sEnv = sEnv & "<SID>""111""</SID>" '***Need String
sEnv = sEnv & "<SID>4242423</SID>" '***Need INT
sEnv = sEnv & "<PID>4242422</PID>" '***Need INT
sEnv = sEnv & "<EncryptionKey>""TESTID""</EncryptionKey>" '***Need String
sEnv = sEnv & "</CallBackAuthInfo>"
sEnv = sEnv & "</soap:Header>"
sEnv = sEnv & "<soap:Body>"
sEnv = sEnv & "<RetrieveData xmlns=""http://targetsite.com/webservices"">"
sEnv = sEnv & "<after>""30""</after>" '***Need String
sEnv = sEnv & "<balance>""0.00""</balance>" '***Need String
sEnv = sEnv & "<sID>""ALL""</sID>" '***Need String
sEnv = sEnv & "<Fextract>""1/1/1900""</Fextract>" '***Need String
sEnv = sEnv & "<Textract>""10/01/2017""</TextractTo>" '***Need String
sEnv = sEnv & "<ErroronData>true</ErroronData>" '***Need BOOLEAN
sEnv = sEnv & "</RetrieveData>"
sEnv = sEnv & "</soap:Body>"
sEnv = sEnv & "</soap:Envelope>"
答
我不认为你需要围绕字符串值引号。
另外 - 你有两个SID标签,一个数字和其他文本 - 这似乎很奇怪,因为没有什么区别一个。
在你的问题中没有什么具体的东西(没有代码,没有示例XML,也没有关于SOAP服务后端的信息),所以几乎不可能猜出问题所在。 “varchar”听起来可能与数据库相关,但就是这样。 –
我不确定哪些信息可以使其更具描述性。让我编辑一些需要占位符的代码。这些似乎是我的问题源于 – CoSpringsGuy
的问题寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者无益。见[mcve]。 –