Salesforce 无法使用Ant迁移工具部署平台事件

Salesforce 无法使用Ant迁移工具部署平台事件,salesforce,Salesforce,我在通过ant迁移工具将元数据上载到Salesforce管理的应用程序构建组织时遇到问题。最初的问题出现在一个相当大的应用程序中,但我已经能够将其缩减为2个文件,这说明了问题:一个平台事件和一个发布它的Apex类web服务 对象/设备更新事件: <?xml version="1.0" encoding="UTF-8"?> <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> <deplo

我在通过ant迁移工具将元数据上载到Salesforce管理的应用程序构建组织时遇到问题。最初的问题出现在一个相当大的应用程序中,但我已经能够将其缩减为2个文件,这说明了问题:一个平台事件和一个发布它的Apex类web服务

对象/设备更新事件:

<?xml version="1.0" encoding="UTF-8"?>
<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
    <deploymentStatus>Deployed</deploymentStatus>
    <description>Event raised by AVS when the CTI user updates their outbound device.</description>
    <eventType>StandardVolume</eventType>
    <fields>
        <fullName>NewCtiDevice__c</fullName>
        <externalId>false</externalId>
        <isFilteringDisabled>false</isFilteringDisabled>
        <isNameField>false</isNameField>
        <isSortingDisabled>false</isSortingDisabled>
        <label>NewCtiDevice</label>
        <length>64</length>
        <required>true</required>
        <type>Text</type>
        <unique>false</unique>
    </fields>
    <fields>
        <fullName>UserId__c</fullName>
        <externalId>false</externalId>
        <isFilteringDisabled>false</isFilteringDisabled>
        <isNameField>false</isNameField>
        <isSortingDisabled>false</isSortingDisabled>
        <label>UserId</label>
        <precision>18</precision>
        <required>true</required>
        <scale>0</scale>
        <type>Number</type>
        <unique>false</unique>
    </fields>
    <label>CTI Device Update Event</label>
    <pluralLabel>CTI Device Update Events</pluralLabel>
</CustomObject>
类CtiDeviceUpdateWebService.cls

global with sharing class CtiDeviceUpdateWebService {

    webservice static void ctiDeviceUpdate(Integer natterboxUserId, String newCtiDeviceRaw) {

        List<CTIDeviceUpdateEvent__e> evlist = new List<CTIDeviceUpdateEvent__e> { new CTIDeviceUpdateEvent__e(UserId__c = 1, NewCTIDevice__c = '2001') } ;

        // Call method to publish events
        List<Database.SaveResult> results = EventBus.publish(evlist);

        // Inspect publishing result for each event
        for (Database.SaveResult sr : results) {
            if (sr.isSuccess()) {
                System.debug('Successfully published event.');
            } else {
                for(Database.Error err : sr.getErrors()) {
                    System.debug('Error returned: ' +
                            err.getStatusCode() +
                            ' - ' +
                            err.getMessage());
                }
            }
        }
    }
}
package.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>*</members>
        <name>CustomObject</name>
    </types>
    <types>
        <members>*</members>
        <name>ApexClass</name>
    </types>
    <version>41.0</version>
</Package>
部署元数据API时,我从元数据API获得以下结果:

[sf:deploy] Request for a deploy submitted successfully.
[sf:deploy] Request ID for the current deploy task: 0Af1n00001VmcmHCAR
[sf:deploy] Waiting for server to finish processing the request...
[sf:deploy] Request Status: InProgress
[sf:deploy] Request Status: Failed

BUILD FAILED
/Users/jim.page/Documents/salesforce_ant_43.0/nbavs/build.xml:31: 
*********** DEPLOYMENT FAILED ***********
Request ID: 0Af1n00001VmcmHCAR

All Component Failures:
1.  classes/CtiDeviceUpdateWebService.cls -- Error: Method does not exist or incorrect signature: void publish(List<CTIDeviceUpdateEvent__e>) from the type EventBus (line 12, column 54)
2.  classes/CtiDeviceUpdateWebService.cls -- Error: Invalid type: CTIDeviceUpdateEvent__e (line 9, column 9)

*********** DEPLOYMENT FAILED ***********
我尝试了不同的API版本,在各种事件元数据中使用了不同的设置,使用了我的托管包的名称空间,google和我都没有主意了

注意-当我仅单独部署平台事件时,部署工作正常,我可以在构建组织中的Setup | platform Events下看到它。但是,当web服务添加到混合中时,部署失败。从web服务访问自定义对象没有问题


还要注意,这段代码在开发组织中运行良好。

好的-当我发布这个问题时,我的一位同事给了我答案。当平台事件投入生产时,类元数据文件的版本号为41.0之前