Dudas parametros de conexión Con DI API

Buen día Comunidad espero me puedan ayudar.

Actualmente me encuentro aprendiendo a utlizar las DI API, e intentado conectarme con Sap con Vba de excel y con Windows Form utilizando Visual Studio 2017 con C# pero no ha sido posible.

He estado viendo varias publicaciones en este foro y en una de ellas comparten este código con el cual tengo varias dudas:

private void Form1_Load(object sender, EventArgs e)
        {
            SAPbobsCOM.Company ocompany = new SAPbobsCOM.Company();
            try
            {
                ocompany.Server = "IPServidor:30015";
                ocompany.LicenseServer = "IPServidor:40000";
                ocompany.CompanyDB = "Nombre de BD";
                ocompany.UserName = "Usuario SAP";
                ocompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_HANADB;
                ocompany.Password = "Contraseña Usuario SAP";
                ocompany.UseTrusted = true;
                ocompany.DbUserName = "SYSTEM";
                ocompany.DbPassword = "Contraseña SYSTEM";

                int ret = ocompany.Connect();
                string errMsg = ocompany.GetLastErrorDescription();
                int ErrNo = ocompany.GetLastErrorCode();
                if (ErrNo != 0)
                {
                    MessageBox.Show(errMsg);
                }
                else
                {
                   // MessageBox.Show("Conexión establecida");
                }

                

            }catch(Exception errMsg){
            }
        }
  1. Al instalar DI API me pide configuar el servidor a el cual me conecto por escritorio remoto con ip ejemplo 190.74.245.45:8888 y para ejecutar query en excel tenemos habilitado un puerto
    1403 (190.74.245.45,1403). Cual de estas dos ip debo configurar la :8888 o la del puerto ,1403 yo instale ,1403 no se si sea por eso que no me conecta.

  2. En este campo ocompany.Server = “IPServidor:30015”; se debe poner la IP o el nombre del servidor que seria este
    imagen

  3. En este campo ocompany.LicenseServer = “IPServidor:40000”; es con la IP o es dependiendo lo que diga el archivo b1-local-machine.xml el cualseria algo como localhost:5000

  4. ocompany.UseTrusted = true; este campo si no estoy mal es true autenticación por windows o si es false es autenticación por Sql Server

  5. ocompany.DbUserName = “SYSTEM”; ocompany.DbPassword = “Contraseña SYSTEM”; estos dos campo son el usuario y la clave de conexión a SQL Server?
    imagen
    nuestro proveedor solo nos dio usuarios de consulta para Sql Server.

Espero me puedan ayudar ya que solicite esta información a nuestro partner pero son muy celosos con la información.

Saludos

1 me gusta

Hola YesidG con respecto a tus dudas te las respondo en el mismo orden:

  1. Cuando instalas el DI API no solicita ninguna IP, la verdad no he visto como funciona en HANA, pero si la solicita seria la IP de tu servidor de SAP.
  2. Es mejor con la IP ya que evitas que genere conflictos por nombres.
  3. Colocas la IP de tu servidor en donde tienes el servidor de licencias de SAP con su respectivo puerto.
  4. ocompany.UseTrusted = true; es para validar la conexión con la base de datos
  5. Es correcto, es la conexión del SQL, se recomienda utilizar el SA de SQL.

Espero haya sido de ayuda mis respuestas.

Saludos

2 Me gusta

Hola @CJPG gracias por responder

Una duda con la dirección IP del servidor, supongamos que esta sea la ip del servidor
190.74.245.45. A este servidor me conecto por escritorio remoto con el puerto :8888 (190.74.245.45:8888) y tenemos un puerto habilitado para ejecutar consultas sql en excel suponagamos que es ,1403 (190.74.245.45,1403) cual de las 2 opciones utilizo para confirguara el DI API y utilizarla en este campo ocompany.Server la :8888 o la del puerto ,1403.

Solo dispongo del usuario SAP_CONSULTA no del SA, ojala funcione con ese.

Gracias de nuevo

Saludos

@YesidG si fuera necesario colocar un puerto, a mi criterio seria el 8888, ya que según entiendo con este puerto tienes acceso al servidor, y ahí necesitas el acceso al servidor.

Espero haberte ayudado.

Saludos.

1 me gusta

Gracias

Lo intentare y te cuento

Te comparto como se realiza realiza la conexion a HANADB via DI API:

Public Function ConectarSBO() As String
        Dim lRetCode, ErrorCode As Long
        Dim ErrorMessage As String = ""

        oCompany = New SAPbobsCOM.Company()
        oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_HANADB
        oCompany.language = SAPbobsCOM.BoSuppLangs.ln_Spanish
        oCompany.DbUserName = UsuarioHANA
        oCompany.DbPassword = PasswordHANA
        oCompany.Server = ServidorHANA & ":" & PuertoServidor
        oCompany.LicenseServer = ServidorLicencias & ":" & PuertoSL
        oCompany.CompanyDB = Schema
        oCompany.UserName = UsuarioSAP
        oCompany.Password = PasswordSAP
        oCompany.UseTrusted = False


        lRetCode = oCompany.Connect()


        If lRetCode <> 0 Then
            oCompany.GetLastError(ErrorCode, ErrorMessage)
            StatusError("No se puso conectar con SBO...[" & ErrorMessage & ": " & ErrorCode & "]")
            ConectarSBO = "Desconectado"
            MsgBox(ErrorMessage + ErrorCode.ToString)
        Else
            '  StatusSucess("Conectado a SBO éxitosamente...")
            ConectarSBO = "Conectado"
        End If

    End Function

Espero te sea util.

2 Me gusta

Hola gracias por responder, realizare unas pruebas y te cuento.

Saludos

Aquí dejo el pantallazo del momento donde pide configurar el servidor cuando se instala DI API
que debo poner en el campo SLD Server Name solo la ip del servidor y el puerto dejo 40000 que es el que aparece por defecto?

Captura%20di%20api

Creo estas confundiendo muchas cosas al mismo tiempo. Algo que tienes que tener presente es que la configuración de los servicios de SAP son muy independientes de otros servicios que tengas configurados.

Por lo que entiendo tienes un SERVIDOR con MOTOR HANA. Para este escenario el SLD queda instalado en tu servidor SUSE de LINUX.

Ahora bien, si tu servidor LINUX tiene IP LOCAL 192.168.1.200 entonces esa es la dirección que debes señalar en la configuración que te pide con el puerto que señala. (ESTO ES PARA UN ESCENARIO CON SERVIDOR LOCAL)

Si tu servidor esta en CLOUD, ahí cambia la cosa.

Hola @juliancab

En ServidorHANA y en ServidorLicencias que pones el nombre del servidor o la ip para que el caso que no es local y el PuertoSL donde lo puede ver

Saludos

Hola @juliancab

Gracias por responder, la verdad si es estoy muy confundido.

El servidor Sap esta instalado en servidor en Windows Server 2012 no esta de manera local es CLOUD, la base de datos es en SQL Server 2012, la versión de Sap es la 9.2 pronto migraremos a la 9.3, para ingresar al escritorio del servidor lo hacemos por escritorio remoto con Ip ejemplo
192.168.1.200:9999, el proveedor del servicio nos habilito un puerto ej(2305) para realizar query en Excel, en Excel en parámetro servidor pongo esta dirección 192.168.1.200,2305

En resumen las dudas son

  1. teniendo esta dos ip 192.168.1.200:9999(Conexión escritorio remoto ) y la
    (192.168.1.200,2305 puerto habilitado para query) cual utilizo o el proveedor nos tendría que habilitar otro puerto o activar algo para que permita la conexión vía DI API.
  2. este parámetro ServidorLicencias donde lo puedo ver o ese dato lo dan los proveedores del servicio cloud
  3. Me funcionaria la conexión con usuarios de solo consulta de SQL o tendría que ser obligatorio el usuario SA
  4. Según la imagen de la instalación de DI API el puerto 40000 lo debo cambiar o ese el que se maneja por defecto por ejemplo funcionaria así:
    SLD Server Name 192.168.1.200 Port 9999
    Captura%20di%20api

De antemano gracias y disculpa las molestias con este tema tan tedioso

Feliz Noche.

Entonces no es HANA, es SQL en CLOUD. Si tu aplicación lo vas a correr localmente vas a toparte con varios detalles.

Necesitas solicitar a tu proveedor de servicios CLOUD que te ponga disponible el acceso a tu SQL EN CLOUD desde un equipo local, lo mismo para el servidor de licencias.

Sin esto tu aplicacion no va a poder conectarse con tu SAP.

Hola buen día al SQL tenemos acceso desde cualquier equipo para realizar query las ejecutamos en Excel para eso nos habiltaron un puerto te doy un ejemplo esta es la ip del servidor 192.168.1.200 y el puerto es ,2305 (192.168.1.200,2305).

Voy a contactar a nuestro proveedor para ver que falta.

Muchas gracias saludos.

te faltaría tener acceso al servicio de licencias, de lo contrario el DI API no te va conectar.

1 me gusta

Hola @juliancab de verdar muchas gracias, ya hable con el porveedor y nos va habilitar los puertos
una conuslta mas, este seria el servidor del licencias
imagen

pero me confundo por que en los archivos de b1-local-machine esta con esta configuración

<leaf kind="single" name="LicenseServer" type="String">
               <value>localhost:30000</value>
             </leaf>

y

<leaf kind="single" name="SLDAddress" type="String">
                <value>https://localhost:30010</value>
              </leaf>

estos archivos son los que estan en las carpetas config de sap b1 y sap b1 di api x64
en la carpeta de b1 di api x86 el SLDAddress si esta nombre del servidor con el puerto 40000 iqual que la imagen
imagen

hay el correcto seria el del puerto 40000?

Gracias y saludos

Puedes usar la del 3000, la 4000 te la muestra porque por medio del SLD puedes ir al servicio de licencias.

1 me gusta

Buenas tardes comparto un video muy util que responde a mis inquetudes

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.