Серверу не удалось обработать исходящее сообщение SalesForce - PullRequest
1 голос
/ 18 марта 2019

Все, у меня есть веб-сервис в (ASMX) на сайте ac # asp.net, и я получаю исходящие сообщения от отдела продаж. У меня более одного типа уведомлений, один для учетных записей, другой - задачи, первая из которых работает. со всеми классовыми именами по умолчанию, когда я генерировал ProxyClass из файла WSDL, когда я делал это для задач и преобразовывал файл WSDL в ProxyClass, он показывал, что ошибки в именах конфликтуют друг с другом, поэтому я изменил имена в ProxyClass, например Имя по умолчанию для уведомлений уведомляющим задачам, NotificationReponce для уведомленийResponseTask, sObject для sObjectTask, поэтому, когда я запускал универсальный код для получения уведомлений и возвращал Ack=true по умолчанию, он работал без проблем, но когда я пробовал следующий код: т.е. пытался получить значения из сообщения, которое он прерывает, показывая, что Ошибка сервера не смогла обработать запрос. Мой код:

    class Tasks :INotificationBindingTasks
{
    //class MyNotificationListener : INotificationBinding

    public notificationsResponseTask notifications(notificationTasks notification2)
    {

        TaskNotification[] TaskNotification = notification2.Notification;


        notificationsResponseTask r = new notificationsResponseTask();
        r.Ack = true;
        return r;

    }


}

Что я здесь не так делаю?

Ответы [ 2 ]

2 голосов
/ 18 марта 2019

Так что, глядя на вашу проблему, я думаю, что у меня есть решение, с которым я столкнулся ранее, и его очень просто исправить, здесь уже есть вопрос по обмену стека здесь .

Способ работы исходящих сообщений заключается в том, что proxyCalss кодируется таким образом, что для возможности успешного получения и декодирования уведомления необходимо, чтобы оно было в особой форме, а имена были очень чувствительными, например, вы сказали, что изменилиname of notificationsResponse теперь, когда salesforce отправляет сообщение, ожидающее возвращаемые значения с именем notificationsResponse, которое вы изменили, поэтому изменение имен в Class вызовет только больше проблем.

Теперь, если вы прочитаете вопрос, который я добавил к этому ответу, он говорит, что вы можете легко поместить 2-е исходящее сообщение в NameSpace, которое является уникальным для этого одного класса, сделайте следующее, когда вы создаете прокси-класс, поместитевесь класс в одном пространстве имен, например:

   namespace Customnotification
{
 // The whole rest of the class comes here
}

Теперь ваше новое исходящее сообщение уникально и не будет конфликтовать с другим ProxyClass, теперь в вашем файле webservice.asmx.cs выполните следующее:

     namespace Customnotification
        {

            public class Tasks : INotificationBinding
            {

               // REST of the process goes here for the receiving data from outbound
              // Make sure you use the default notification names do not change them 
            }

Попробуйте, чтобы это работало.Спасибо!

0 голосов
/ 18 марта 2019

Измените свою конечную точку (исходящего сообщения) на конкретный веб-сервис для сопоставления;)

Спасибо, Ajay Dubedi

...