Регистрация  |  Вход

ApexClass in MetadataAPI SOAP Request

Адепты Metadata API просвятите меня в такой мелочи. Всю голову сломал уже.

Хочу через Metadata API создать Email Service.

Вот запрос

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Header>
<SessionHeader xmlns="http://soap.sforce.com/2006/04/metadata">
<sessionId>ХХХХХХХХХХХХХХХХ</sessionId>
</SessionHeader>
</env:Header>
<env:Body>
<createMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
<metadata xsi:type="EmailServicesFunction">
<fullName>Doom3</fullName>
<apexClass>ErrorEmailHandler</apexClass>
<attachmentOption>0</attachmentOption>
<authenticationFailureAction>2</authenticationFailureAction>
<authorizationFailureAction>2</authorizationFailureAction>
<functionInactiveAction>2</functionInactiveAction>
<functionName>Doom3</functionName>
<isActive>true</isActive>
<isAuthenticationRequired>false</isAuthenticationRequired>
<isErrorRoutingEnabled>false</isErrorRoutingEnabled>
<isTextAttachmentsAsBinary>false</isTextAttachmentsAsBinary>
<isTlsRequired>false</isTlsRequired>
<overLimitAction>2</overLimitAction>
</metadata>
</createMetadata>
</env:Body>
</env:Envelope>

Он отрабатывает.

НО вот мне не дает покоя
<apexClass>ErrorEmailHandler</apexClass>

Тут надо указывать имя Apex класса. НО почему его можно только указать в виде имени? Дело в том что у меня пакет и предполагается что должен быть еще package prefix.

Пробую делать так:
- pprefix__ErrorEmailHandler
- pprefix.ErrorEmailHandler
- 01p6F00000BB1mUQAT (предполагаю что ApexClass ID тоже должен приниматься)

и нифуя!
ответ везде один
<message>An Apex Class must be specified when creating an Email Service.</message>

Кто знает как работать с пакетным префиксом? Как его правильно задать?

Адепты Metadata API просвятите меня в такой мелочи. Всю голову сломал уже.

Хочу через Metadata API создать Email Service.

Вот запрос

[code]
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <env:Header>
        <SessionHeader xmlns="http://soap.sforce.com/2006/04/metadata">
            <sessionId>ХХХХХХХХХХХХХХХХ</sessionId>
        </SessionHeader>
    </env:Header>
    <env:Body>
        <createMetadata xmlns="http://soap.sforce.com/2006/04/metadata">
            <metadata xsi:type="EmailServicesFunction">
            	<fullName>Doom3</fullName>
                <apexClass>ErrorEmailHandler</apexClass>
                <attachmentOption>0</attachmentOption>
                <authenticationFailureAction>2</authenticationFailureAction>
                <authorizationFailureAction>2</authorizationFailureAction>
                <functionInactiveAction>2</functionInactiveAction>
                <functionName>Doom3</functionName>
                <isActive>true</isActive>
                <isAuthenticationRequired>false</isAuthenticationRequired>
                <isErrorRoutingEnabled>false</isErrorRoutingEnabled>
                <isTextAttachmentsAsBinary>false</isTextAttachmentsAsBinary>
                <isTlsRequired>false</isTlsRequired>
                <overLimitAction>2</overLimitAction>
            </metadata>
        </createMetadata>
    </env:Body>
</env:Envelope>
[/code]

Он отрабатывает. 

НО вот мне не дает покоя
<apexClass>ErrorEmailHandler</apexClass>

Тут надо указывать имя Apex класса. НО почему его можно только указать в виде имени? Дело в том что у меня пакет и предполагается что должен быть еще package prefix.

Пробую делать так:
- pprefix__ErrorEmailHandler
- pprefix.ErrorEmailHandler
- 01p6F00000BB1mUQAT (предполагаю что ApexClass ID тоже должен приниматься)

и нифуя!
ответ везде один
<message>An Apex Class must be specified when creating an Email Service.</message>

Кто знает как работать с пакетным префиксом? Как его правильно задать?