Создание приложения Netsuite, возвращающего ошибку 410

#c# #wsdl #netsuite #suitetalk

#c# #wsdl #netsuite #suitetalk

Вопрос:

Предыстория: в настоящее время я являюсь администратором Netsuite (не разработчиком), имею опыт программирования на PHP и MySQL и разработки интерфейса WordPress. Я работал с некоторыми из Apache Freemarker в расширенных шаблонах HTML / PDF и изучал основы C #, Java и т. Д. В свободное время. В настоящее время я работаю графическим дизайнером / дизайнером веб-сайтов / администратором Netsuite с длинным списком других задач, связанных с ИТ. Теперь мне было поручено либо выяснить, как создать это приложение, либо найти кого-то другого, кто это сделает.

Я работаю над попыткой создания приложения между Netsuite и servizi_xchange (программное обеспечение ICON).

Мне была предоставлена информация о WSDL как для Netsuite, так и для Servizi. Насколько я понимаю, это должна быть простая интеграция, учитывая объем предоставленной мне информации. Я загрузил оба WSDL в Visual Studio 2019 и начал кодирование на C #.

Я создал экземпляр службы NetSuite, включил управление файлами cookie и создал действительный сеанс, заполнив объект Passport.

К сожалению, теперь я получаю исключение System.Net.WebException: «Запрос не выполнен со статусом HTTP 410: пропал».

 using System.Threading.Tasks;
using Netsuite_Test.com.netsuite.webservices;

namespace Netsuite
{
    class Console
    {
        static void Main(string[] args)
        {
            // Create NetSuiteService instance 
            NetSuiteService _service = new NetSuiteService(); // Create CookieContainer for keeping session information 
            _service.CookieContainer = new System.Net.CookieContainer(); 
            // Create Passport 
            Passport passport = new Passport(); 
            passport.account = ""; //removed for privacy
            passport.email = ""; //removed for privacy
            passport.password = ""; //removed for privacy
            // Log in 
            SessionResponse response_login = _service.login(passport); 
            if (response_login.status.isSuccess) { 
                // Create an example reference to Customer ID 100 
                RecordRef recref = new RecordRef(); 
                recref.type = RecordType.customer; 
                recref.typeSpecified = true; 
                recref.internalId = "100"; // Fetch Customer record 
                ReadResponse response_get = _service.get(recref); 
                // Log out 
                _service.logout(); }else { 
                // Authentication failed 
            }
        }
    }
}
 

Компания, которая должна помогать внедрять программное обеспечение, сообщила мне, что они никогда не интегрировались с Netsuite, и теперь сказали мне, что я сам должен разобраться в этом.

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

Я прочитал документацию Netsuite в отношении веб-служб SOAP и попытался загрузить SOAP.Примеры Net и понятия не имею, как их открыть (это msi-файл, который просто устанавливается и ничего не делает, чтобы мне помочь).

Ответ №1:

Вероятно, вам нужно установить URL-адрес для службы в качестве URL-адреса, специфичного для вашей учетной записи. Вот пример, в котором при каждом входе в систему используются учетные данные паспорта, а не метод входа в систему:

 var ns = new NetSuiteService()
{
    Url = "https://<ACCOUNTID>.suitetalk.api.netsuite.com/services/NetSuitePort_2019_2",
    passport = new Passport()
    {
        account = "<ACCOUNTID>",
        email = "<EMAIL>",
        password = "<PASSWORD>",
        role = new RecordRef() {internalId = "3"},
    },
    applicationInfo = new ApplicationInfo() {applicationId = "<APPLICATIONID>"},
};

var customerRef = new RecordRef()
{
    type = RecordType.customer,
    typeSpecified = true,
    internalId = "100"
};

var response = ns.get(customerRef);
if (response.status.isSuccess)
{
    var customer = response.record as Customer;
    Console.WriteLine(customer.companyName);
}
 

Идентификатор приложения можно настроить в NetSuite в разделе Настройка> Интеграция> Управление интеграциями> Создать