我正在尝试通过添加更多在Salesforce上存在的字段来修改Salesforce API调用。我有一个wsdl文件,该文件的顶部是targetNamespace,最后是一块soap:address
targetNamespace="http://soap.sforce.com/schemas/class/MY_API_NAME"
soap:address location="https://MYPROJECT.my.salesforce.com/services/Soap/class/MY_API_NAME"
我可以使用这些链接来查找返回的数据吗?同样,这些链接可用于查看所有可用参数等吗?
我应该在更改WSDL以便将新字段添加到要提取的complexType上吗?
(作为参考,我正在使用python和zeep在此行中调用此api:
return client.service.XXXXXX(_soapheaders=self.soap_headers)
但是我没有通过阅读下面对我的回答充满信心的WSDL进行测试。
我不完全知道您在问有关调用Web服务的要求,但是您不需要重新生成WSDL,除非这些是自上次生成WSDL后添加到要返回的对象的全新字段。 。
例如,如果我有一个名为WebServiceFields__c的SOBJECT,其中包含以下字段
Field_C__c
webservice static WebServiceFields__c example(String Id) {
return [Select Id, Field_A__c, Field_B__c FROM WebServiceFields__c WHERE Id = :Id LIMIT 1];
}
如果我导出此WSDL,则将创建WebServiceFields__c的整个定义。 example的定义指出返回的是WebServiceFields__c
的复杂类型然后我需要将Web服务更改为:
webservice static WebServiceFields__c example(String Id) {
return [Select Id, Field_A__c, Field_B__c FROM WebServiceFields__c WHERE Id = :Id LIMIT 1];
}
这将不需要重新生成WSDL,因为WebServiceFields__c不变。
仅向对象添加新字段将需要重新生成WSDL。