课程章节介绍
同学们,我们来看这页内容。
在Apex里写Web服务方法时,有一个重要的限制:参数和返回值不能用Maps、Sets,也不能用Pattern对象、Matcher对象,还有Exception这类的异常对象。为什么?因为SOAP协议里没有和它们对应的数据类型,就好像找不到匹配的“肥皂”(其实就是SOAP啦),所以传不了。
那需要这些数据时怎么办?可以把它们设计成类的成员变量,并用webservice关键字修饰这个类,这样成员变量就会暴露在服务定义文件里,也就是常说的WSDL。注意,这些成员变量一定要是实例变量,不要设成静态的,因为每次调用Web服务都是用的实例状态。
说到这,Salesforce提供了一个很好的示例:SpecialAccounts类。这个类里有一个专门用作Web服务成员变量的类,叫AccountInfo;还有一个DeliverCal方法会用到它;另外还有DeliverAccounts方法,厉害的是,这个方法可以在一次调用里就创建出父子记录和孙辈记录,效率很高。当然,它还包含了对应的测试类,用来验证整个创建逻辑是不是正确。
这样,通过类的实例成员变量,我们就绕开了SOAP不支持复杂类型的问题。好了,这部分内容就先到这里。
关键词
Apex
Salesforce
Developer Guide