conectar excel 2007 con sap

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • amgela
    Junior Member
    • may
    • 3

    #1

    conectar excel 2007 con sap

    Tengo una hoja en excel 2007 , que la importo de SAP , hasta ahora no tenia mucho inconveniente ya que copiaba y pegaba los nuevos datos de la transacción, pero a ahora esa información se actualiza varias veces al día y quisiera poder crear un vinculo , conexión o lo que sea para poder tener de manera automatica esos datos actualizados en mi hoja de Excel.

    He probado hacer la conexion a traves de SAP BW OLE DB PROVIDER ,pero sin exito, solo decir que soy usuaria de Sap NO, programadora.

    Cualquier ayuda es bien venida.

    Un Saludo

    Amgeles
    Responder Citando
  • calanis
    Senior Member
    • oct
    • 147

    #2
    Hola

    Como desconozco la problemática de la transacción que te brinda los datos por ejemplo:
    A-Cuando mencionas "ya que copiaba y pegaba los nuevos datos de la transacción"
    Que tipos de datos copias y pegas a tú Excel?
    ya que los datos podrían ser:
    ->Datos extraídos de un ALV
    --> Una línea completa de un ALV o solo algunas columnas.(considero que este es tú caso)
    ->Datos extraídos de una pantalla(dynpro)
    --> Algunos campos individuales de una Dynpro
    --> Algunos campos individuales de 1 o más Dynpro's
    Sin hablar las posibles combinaciones de estos elementos.

    Bueno la conexión es simple, pero de igual manera te sera de utilidad tener a alguien que conozca de programación ya que puedes refinar esto mejor.

    De paso te recomiendo leas este doc y junto a este te saques algunas dudas.

    De Igual manera el primer camino que tomaste no esta mal, existen n escenarios, todo tiene sus pros y sus contras.

    Por Ejemplo:
    Como haber optado por el camino de hacer una Función RFC que te retorne los valores esperados de SAP y los consumas mediante una macro de Excel.

    Bueno el código que deberías implementar en la macro es para Office 2007, en donde despues de haber creado un form creas un botón llamado button1
    Bueno, deja esta parte para el programador que te ayude y seria algo como esto:
    Public Const CNT_STR_USR As String = "ABAP"
    Public Const CNT_STR_PWD As String = "******"
    Public Const CNT_STR_APPLN_SRVR As String = "***.***.**.**"
    Public Const CNT_STR_SYSTEM As String = "R3P"
    Public Const CNT_STR_SYS_NUM As String = "00"
    Public Const CNT_STR_CLIENT As String = "800"
    Public Const CNT_STR_LOGON_LANG As String = "ES"
    Public Const CNT_STR_ROUTER As String = "/H/***.***.***.***/H/"
    Public Const CNT_STR_LOG_FILE As String = "C:\Log_Excel.txt"
    Public Const CNT_INT_LOG_LEVEL As Integer = 9

    Sub button1_click()
    Dim objCompanyCodes As Object

    Set obSAPFnCntrl = CreateObject("SAP.Functions")
    Set obSAPConn = obSAPFnCntrl.Connection

    ' Destino para Log de Actividad
    obSAPFnCntrl.LogLevel = CNT_INT_LOG_LEVEL
    obSAPFnCntrl.LogFileName = CNT_STR_LOG_FILE


    'Setear las propiedades para la conexión

    With obSAPConn

    .ApplicationServer = CNT_STR_APPLN_SRVR
    .SystemNumber = CNT_STR_SYS_NUM
    .Destination = "R3D"
    .User = CNT_STR_USR
    .Password = CNT_STR_PWD
    .Language = CNT_STR_LOGON_LANG
    .HostName = CNT_STR_APPLN_SRVR
    .Client = CNT_STR_CLIENT
    '.SAPRouter = CNT_STR_ROUTER

    End With

    'Logeo a SAP
    If obSAPConn.Logon(0, True) = False Then
    MsgBox "Fallo la Conexión a SAP"
    Exit Sub
    else
    call llamado_mi_RFC
    End If
    Espero que la data te sea de utilidad.

    Saludos
    Carlos Alanis
    Editado por última vez por calanis; 16/05/2010, 16:20:34.
    Carlos D. Alanis
    <=<< Compartir conocimiento es una manera de innovar >>=>

    Comentario

    • amgela
      Junior Member
      • may
      • 3

      #3
      Grcaias Carlos

      Hola Carlos voy a probar, ya que no puedo pedir ayuda al programador de la empresa , es un trabajo que me han encargado con muy mala leche para demostrar que no soy capaz de resolver este problema , pero soy muy cabezona.

      Muchas gracias Carlos por tú tiempo y tus notas.

      Angeles

      Comentario

      • Helena
        Junior Member
        • sep
        • 11

        #4
        Ayuda

        Hola!

        Yo también tengo un problema parecido. Yo necesito bajar con la se16 regularmente datos del maestro de artículos e integrarlos en una base de datos de access. Me gustaría que el usuario de la base de datos pudiese iniciar el proceso desde la propia base de datos.

        Espero vuestra ayuda!!!

        Muchas gracias!

        Helena

        Comentario

        • joel04_19
          Junior Member
          • abr
          • 5

          #5
          Gente de antemano gracias por al ayuda y disculpen si lo que consulto es una pavada (les confieso que busque bastante hasta llegar aqui).

          Recibí un archivo en mi trabajo (de una persona que dejó la compañia) el cual se actualiza a partir de una macro que se conecta con SAP BW.
          Me encomendaron actualizar varios de éstos archivos y mi idea es, dejarlo actualizando para realizar otras tareas, pero siempre necesito estar en la computadora para completar mi usuario y contraseña cada vez que la macro lo requiere.

          Ubique la parte de la macro donde se conecta con BW y me pide completar con mi user y pass, podran decirme que codigo (y donde) lo debo incluir para que se loguee automaticamente con mi user joel04 y pass 12345:

          Function dialIn() As Boolean

          If isConnected Then
          dialIn = True
          Else
          dialIn = False
          If dialInPaused Then Exit Function
          If prepareConnection Then
          With p_connectionObj
          Do
          Application.Visible = True
          If .Logon(GetActiveWindow(), False) Then
          Application.Visible = True
          If initConnection Then dialIn = True Else .Logoff
          Exit Function ' dialIn = True iff .logon and initConnection were successful
          Else
          trace True, "no Connect"
          If .isConnected = 2 Then ' user pressed Cancel button
          trace False, "cancelled"
          dialInPause ' suppress further logon dialogs for 2 secs
          Exit Function
          End If
          End If
          Loop
          End With
          End If
          End If

          End Function




          Gracias

          Comentario

          Trabajando...