Soap Salesforce如何返回自定义错误对象

Soap Salesforce如何返回自定义错误对象,soap,salesforce,Soap,Salesforce,我已经编写了以下Apex类作为定制Web服务套件的一部分。所有人都有相同的问题,但这是最简单的例子;如果我能解决这个问题,我就能解决其他Web服务的问题 global class WebServiceA4S { global class returngetEnquiries { public String status {get;set;} public String error {get;set;} public List<Enq

我已经编写了以下Apex类作为定制Web服务套件的一部分。所有人都有相同的问题,但这是最简单的例子;如果我能解决这个问题,我就能解决其他Web服务的问题

global class WebServiceA4S {
     global class returngetEnquiries {
        public String status {get;set;}
        public String error {get;set;}
        public List<Enquiry__c> results {get;set;}
    }

    Webservice static returngetEnquiries  getEnquiries() { 
        returngetEnquiries rtnError = new returngetEnquiries();
        rtnError.status='success';
        rtnError.error = '';
        rtnError.results = new List<Enquiry__c>();
        // id en name
        try {
            list<Enquiry__c> tmp = [Select id,name From Enquiry__c];
            rtnError.results = tmp;
        } 
         catch(Exception e) {
             rtnError.status='error';
             rtnError.error = String.valueof(e);

         }


     return rtnError;
        }
}
全局类WebServiceA4S{
全球课程查询{
公共字符串状态{get;set;}
公共字符串错误{get;set;}
公共列表结果{get;set;}
}
Webservice静态ReturnGetInquiries GetInquiries(){
ReturnGetInquiries RTN=新的ReturnGetInquiries();
rtn.status='success';
rtnError='';
rtnError.results=新列表();
//姓名
试一试{
列表tmp=[从查询中选择id、名称];
rtnError.results=tmp;
} 
捕获(例外e){
rtn.status='error';
rtnError=String.valueof(e);
}
返回RTN错误;
}
}
现在,如果我调试返回的RTN错误,就在“返回RTN错误”之前,它确实会显示查询列表,以便代码正常工作。 问题是,如果我调用Webservice(通过PHP或SOAPUI),结果是空的。 当然,我使用salesforce创建的类中的wsdl

我还研究了wsdl,它看起来是这样的:

...
<xsd:complexType name="returngetEnquiries">
    <xsd:sequence/>
</xsd:complexType>
<xsd:element name="getEnquiries">
    <xsd:complexType>
      <xsd:sequence/>
    </xsd:complexType>
</xsd:element>
<xsd:element name="getEnquiriesResponse">
 <xsd:complexType>
  <xsd:sequence>
   <xsd:element name="result" type="tns:returngetEnquiries" nillable="true"/>
  </xsd:sequence>
 </xsd:complexType>
</xsd:element>
...
。。。
...

似乎还没有定义ReturnGetInquiries。我试图编辑它并添加类中定义的字段,但没有帮助。

经过调查,我找到了解决方案。它在教室里。参数应为webservice而不是public:

global class returngetEnquiries {
    webservice String status {get;set;}
    webservice String error {get;set;}
    webservice List<Enquiry__c> results {get;set;}
}
global class ReturnGetQuery{
webservice字符串状态{get;set;}
webservice字符串错误{get;set;}
webservice列表结果{get;set;}
}

我看不出有什么东西会立即出现错误。。。但是您真的必须捕获这样的错误吗(不管SELECT很少抛出任何错误)?如果您将离开simple
return[选择…],抛出的异常将冒泡并返回给您XML响应,您这边的SOAP库也应该在PHP中解释并引发异常。。。就像你们抛出错误的结果是绝对正确的。然而,这样做是为了在其中构建更多的逻辑。但是首先我想得到一些结果。很酷,很高兴知道:)你介意接受你自己的答案吗,这样它就“脱离雷达”?