Anuncio

Colapsar
No hay anuncio todavía.

Error -4009 en la conexión al SLD

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Error -4009 en la conexión al SLD

    Desde que hemos empezado a trabajar con SAP10, nos ha surgido un problema con los servicios que hemos desarrollado y que se comunican a través del DI API. Habitualmente dan el error “-4009 - Failed to connect SLD, make sure SLD server is correct and available”. Lo curioso es que si reiniciamos el servidor, al final, en uno de los reinicios el servicio conecta.




    SAP esta trabajando con SQL Server y la forma en la que nos conectamos al DI API es la siguiente:




    int hr;

    SAPbobsCOM::ICompanyPtr m_cmp;



    hr = m_cmp.CreateInstance("SAPbobsCOM.Company");




    if (FAILED(hr))

    {

    return res;

    }

    m_cmp->PutLicenseServer(m_sSrvLicencias.c_str()); //Aqui añadimos el puerto 30000 a la dirección

    m_cmp->PutDbUserName(m_sUserBD.c_str());

    m_cmp->PutDbPassword(m_sContrasenaBD.c_str());

    m_cmp->PutServer(m_sServidor.c_str());

    m_cmp->PutUserName(m_sUsuarioSAP.c_str());

    m_cmp->PutPassword(m_sContrasenaSAP.c_str());

    m_cmp->PutCompanyDB(m_sNomBD.c_str());

    m_cmp->PutUseTrusted(VARIANT_FALSE);

    m_cmp->Putlanguage(SAPbobsCOM::ln_English);

    m_cmp->PutDbServerType(SAPbobsCOM::dst_MSSQL2019);




    if (m_cmp->Connect())

    {

    ...

    }

    else

    {

    ...

    }




    Hemos revisado el fichero “C:\Program Files\SAP\SAP Business One DI API\Conf\b1-local-machine.xml” prabando mil combinaciones con la IP del servidor IP, con el nombre del servidor, directamente con la IP, anteponiendo “https://” delante de la dirección ...







    <leaf kind="single" name="SLDAddress" type="String">

    <value>***.***.***.***:40000</value>

    </leaf>










    ¿Alguien sabe como se puede solucionar este problema?

  • #2
    Ya pude resolver el problema. Al abrir la nota no comente que también pasamos de VS2010 a VS2019 y no se si eso ha influido en el fallo de conexión. La cuestión he que he modificado la forma de crear el objeto Company. En lugar de

    int hr;

    SAPbobsCOM::ICompanyPtr m_cmp;

    hr = m_cmp.CreateInstance(“SAPbobsCOM.Company”);

    if (FAILED(hr))
    {
    return res;
    }

    creo el campo de la siguiente manera:


    SAPbobsCOM::ICompanyPtr m_cmp;

    m_cmp.CreateInstance("SAPbobsCOM.Company");
    if (!m_cmp)
    return res;

    de esta manera, se conecta al DI API sin problemas.​

    Comentario


    • #3
      Hola! gracias por compartir con la comunidad.

      Comentario

      Trabajando...
      X