[TUTORIAL] SAP Scripting: Integrar, personalizar y ejecutar nuestro Script en Excel

Поділитися
Вставка
  • Опубліковано 15 вер 2024
  • En este vídeo aprenderás como integrar, personalizar y ejecutar tus scripts desde Microsoft Excel. Adicionalmente, también estaremos viendo como poder reconocer los objetos de SAP para hacer uso y manipularlos desde nuestro código.
    💻 Github - Descarga el archivo con el código fuente
    github.com/ale...
    🔹 Personal webpage:
    www.alejandrof...
    🔹 LinkedIn:
    / alejandrofranzonig
    🔹 Twitter:
    / alefranzonidgk
    🔹 Instagram:
    / alefranzoni
    ☕ ¿Estás disfrutando de este contenido? ¡Podés ayudarme mucho a seguir creando este tipo de contenido invitándome un cafecito! Si residís fuera de la Argentina, también podés apoyarme mediante PayPal.
    cafecito.app/a...
    www.paypal.com...

КОМЕНТАРІ • 120

  • @JulianaSantos-ob8re
    @JulianaSantos-ob8re 2 роки тому +1

    Hola Ale, felicidades por los videos y gracias por compartir tus conocimientos.

    • @alefranzoni
      @alefranzoni  2 роки тому

      Hola Juli, es un placer compartir este contenido con ustedes y que puedan disfrutarlo. ¡Muchas gracias por tu comentario!

  • @felipetroncosoch
    @felipetroncosoch 2 роки тому

    Muchas Gracias!!!!! te felicito por tu contenido!!!!
    lo mejor del 2022 !!!!!!!

    • @alefranzoni
      @alefranzoni  2 роки тому

      ¡Muchas gracias por tu comentario Felipe! Me alegro que te esté gustando el contenido, próximamente se viene mucho más. 🙌🏻

  • @Aldrannt
    @Aldrannt 8 місяців тому

    muy bueno, yo tengo un curso de scripting en udemy, pero está explicado a grandes rasgos, me gustó tu vídeo, está my bien explicado, me parece genial

    • @alefranzoni
      @alefranzoni  8 місяців тому

      Me alegro de que te haya gustado y gracias por tus comentarios!

  • @maximilianopuebla8276
    @maximilianopuebla8276 Рік тому

    Hola Ale, muchísimas gracias! Me sirve bastante! Eternamente agradecido por tu aporte! Slds

    • @alefranzoni
      @alefranzoni  Рік тому

      Hola Maxi, muchísimas gracias a vos por tu comentario, se aprecia mucho. Desde acá encantado y un gusto poder compartir estos temas con ustedes.
      Saludos.

  • @feraldi8145
    @feraldi8145 Рік тому +1

    Espectacular Ale, por trabajo estoy muy interesado en el SAP Scripting y me cuesta mucho encontrar recursos de calidad por la web, por suerte, con tus videos, estoy aprendiendo muchísimo. Muchas gracias.

    • @alefranzoni
      @alefranzoni  Рік тому +1

      Hola Feraldi, me alegro mucho de lo que me comentas. Tal cual, hay muy poca información sobre estos temas, así que desde mi lugar un gusto aportar mi granito de arena. Pronto ya vendrá mucho más contenido super interesante. Saludos.

    • @feraldi8145
      @feraldi8145 Рік тому +1

      @@alefranzoni Grandísimas noticias Ale, mil gracias.

    • @rojolocura7661
      @rojolocura7661 8 місяців тому

      Es un Maestro !! 👏👏👏

  • @charlyfu76
    @charlyfu76 Рік тому

    Excelente video y excelente explicación, muchas gracias Ale... saludos!

    • @alefranzoni
      @alefranzoni  Рік тому

      Muchas gracias por tu comentario Charlyfu!

  • @CarlosAguilar-v7x
    @CarlosAguilar-v7x 10 місяців тому

    Que capo! saludos desde Perú!

  • @marcocervantes9340
    @marcocervantes9340 Рік тому

    Hola Ale, me apunto para tu canal , me ha servido mucho para módulo PM , estamos atentos Gracias 🙏

    • @alefranzoni
      @alefranzoni  Рік тому +1

      Muchas gracias Marco por tu comentario y por apoyarme, es lo que me motiva a seguir creando contenido para ustedes y me alegro que les pueda ser de ayuda. Nuevamente gracias y si, atentos porque próximamente se viene mucho más contenido!

  • @Zubelzo
    @Zubelzo 2 роки тому +1

    Show, mais um video top de muito aprendizado!

  • @tomassukanec5895
    @tomassukanec5895 Рік тому

    Muy completo. Excelente

  • @zanguinetti8612
    @zanguinetti8612 11 місяців тому

    Hola Ale, me ha conmovido que respondas tan bien cada uno de los comentarios, no cualquiera hace eso, estoy agradecido por ello, además soy nuevo suscriptor. Tengo una consulta, *¿Sabes si existe alguna restricción por parte de SAP en el uso de esta herramienta?**¿Existe documentación de SAP que especifíque que se puede utilizar el script en una Macro?* Me sería muy útil tu respuesta porque tengo ya muchas automatizaciones pero quiero estar seguro de que todo irá bien y sin problemas antes de desplegarlas.

    • @alefranzoni
      @alefranzoni  11 місяців тому +1

      Muchas gracias por tu comentario y por suscribirte, me ayuda muchísimo. La verdad que trato en la medida de lo posible y cuando tengo un ratito libre de ir contestándoles a todos y tratando de ayudarles.
      Ahora sí, en cuanto a tu consulta; no hay ningún tipo de restricción de parte de SAP por utilizar esta herramienta, dado que es una función *legacy* de SAP, es decir, que ya viene incluida por la misma empresa. Por lo tanto, no te preocupes que no vas a tener ningún inconveniente. En cuanto a la documentación, no hay una que diga específicamente "se puede usar con tal o cual cosa" pero sí hay una oficial, la cual siguen teniendo y manteniendo actualizada a día de hoy, donde ellos explican el uso de cada uno de los objetos y demás, con lo cual respalda su uso. Te dejo el link: bit.ly/ScriptingDocumentation.
      Cualquier consulta estoy a disposición, a seguir automatizando!
      Saludos.

  • @lucaschiqui
    @lucaschiqui 10 місяців тому

    Al fin un tuto en Argentino jaja me re sirvió, pero en mi caso mi rango de datos de excel va de A2 hasta B30, y esos valores tengo que copiarlos y pegarlos en SAP. Cómo accederías al valor de cada columna dentro del For?

    • @alefranzoni
      @alefranzoni  10 місяців тому +1

      jaja, muchas gracias por tu comentario y me alegro mucho que te haya servido 🙌🏻. Para hacer lo que comentas es bastante sencillo, tendrías que recorrer tu rango en Excel y para cada uno de los valores, saber en qué posición del contenedor en SAP ir insertandolos. Lo que es un poco más complejo quizá es saber en qué índice arrancarías a pegar el contenido de Excel en sap, pero para eso tengo varios videos en mi canal sobre recorrer contenedores y podrías apoyarte en los mismos para resolver esa parte.
      Dicho esto, supongamos que tenés una tabla en sap y el índice donde vas a empezar a pegar los valores es el 5 y tu rango en Excel es A1:A10, entonces, tendrías que hacer algo así:
      private sub Example()
      Dim r as range, c as range
      Dim i as Integer
      ' Indice donde comenzaremos a insertar los datos en sap
      ' En este caso, como es un ejemplo, lo pongo a mano, pero tendrás que obtenerlo con algún método
      i = 5
      ' Seteamos el rango de Excel a recorrer
      Set r = Sheets(1).Range("A1:A10")
      ' Recorremos y vamos insertando valores en sap
      For Each c in r
      session.findById("wnd[0]/containerExample/txtControlExample[" & CInt(i) & ",1]").Text = c.Value
      ' Vamos subiendo el indice objetivo de SAP
      i = i + 1
      Next c
      end sub
      Es un ejemplo y claramente lo tendrás que adaptar a lo que necesites.
      Saludos.

    • @lucaschiqui
      @lucaschiqui 10 місяців тому

      @@alefranzoni mil gracias, voy a probar el método que decis, si bien algo similar había podido hacer (salvo lo que mencionas de Clint para el iterador), solo se me pega el primer valor y luego no avanza. Quizás tenga que ver con lo que mencionas de líndice.

    • @alefranzoni
      @alefranzoni  10 місяців тому

      Seguramente sea por eso o también la conversión explícita a entero del índice (función CInt) ya que SAP muchas veces pide esa conversión, por más que ya le estemos pasando una variable de ese tipo. Éxitos Lucas!

  • @ejhonathanchuil1329
    @ejhonathanchuil1329 Рік тому

    Excelente video!! ya me inscribi!! mucho exito!!

  • @alancharles7804
    @alancharles7804 2 роки тому

    esto es oro! 🌋

  • @riccil5355
    @riccil5355 Рік тому

    Sos un genio.

  • @user-uf5zq1lu1y
    @user-uf5zq1lu1y Рік тому

    Hola Ale! Muchas gracias por tu aporte, es excelente. Actualmente estoy necesitando copiar la info con la que lleno los campos de la transacción MB1B a un excel con columnas. Cómo puedo hacer? Tenés algún tutorial? OTRA VEZ GRACIAS!

    • @alefranzoni
      @alefranzoni  Рік тому

      Muchas gracias por tu comentario. En cuanto a tu consulta, vos los que querés hacer es:
      *1.* Llenar la transacción con datos desde tu Excel
      *2.* Llenar tu Excel con los datos que ya completaste en la tx
      Comentame así te puedo dar una mano,
      Saludos.

  • @user-yg7tv9le9t
    @user-yg7tv9le9t 2 роки тому

    Increíble el contenido y la calidad de la explicación.
    Pregunta técnica:
    Si al trabajar dentro de una transacción tengo una tabla con muchas filas, ¿Cómo se programaría para indicar que seleccione una fila particular, la cual no siempre estaría en la misma posición?

    • @alefranzoni
      @alefranzoni  2 роки тому +3

      ¡Muchas gracias por tu comentario!
      Sobre tu consulta, lo mejor que podrías hacer es recorrer tu tabla/contenedor (por lo general son objetos GuiGridView) e ir comprobando por cada iteración algún valor de referencia (por ejemplo, un texto que contenga la fila) para poder saber cuando estás parado sobre la fila deseada y, así, poder seleccionarla y realizar las acciones que necesites.
      Si no sabes como hacer esto o tenés alguna duda, no te preocupes, porque el próximo video (que voy a estar publicando en estos días) trata exactamente sobre eso; como recorrer y obtener los valores de un listado o contenedor.
      Saludos!

  • @danter399
    @danter399 Рік тому

    Capo, excelente

    • @alefranzoni
      @alefranzoni  Рік тому

      Muchas gracias por tu comentario Dante! Saludos.

  • @LuisSanchez-fy4he
    @LuisSanchez-fy4he 2 роки тому

    excelente video

  • @giulianotf89
    @giulianotf89 Рік тому

    Muchisimas gracias por la Info. Muy buenos los videos. Tengo una consulta puntual : ¿ Explicas en alguno de ellos como hacer para modificar antes de cada ejecucion del script las fechas de inicio y final que desee utilizar como filtro?

    • @alefranzoni
      @alefranzoni  Рік тому +1

      Muchas gracias por tu comentario Giuliano. No, no tengo un video explicando exactamente esa variante, pero es muy sencillo. Deberías grabar el/los campos que querés cambiar y luego, en el script, adecuarlos al valor que vos desees según tus necesidades. Saludos.

    • @juanruzchamorro4196
      @juanruzchamorro4196 10 місяців тому

      @@alefranzoni Ale, con respecto a la consulta del colega, hay alguna forma de automatizar el año presente con fecha de hoy y dos meses atrás?. Saludos desde Valparaíso en Chile.

    • @alefranzoni
      @alefranzoni  10 місяців тому +1

      @@juanruzchamorro4196 Juan, que tal? Si, es muy sencillo de hacer eso en VBA, simplemente tenés que utilizar el siguiente código en lugar de la fecha que desees:
      Format(DateAdd("m", -2, Now), "dd.MM.yyyy")
      De esta manera, le pasamos Now (que es la fecha actual) a la función DateAdd y le indicamos con los parámetros "m" y -2 que le reste dos meses a la fecha actual. Y con Format lo que finalmente hace es, a esta fecha resultante pasarla a formato SAP (fecha con puntos de separador).
      Con eso ya estaría todo,
      Saludos.

  • @melinajacob7176
    @melinajacob7176 Рік тому

    Hola Ale! Mucho gusto! Muy interesante tus videos! Gracias por compartir tanta info! Quisiera preguntarte si hay posibilidad de programar un script para que se ejecute diariamente cada 10 minutos por ejemplo. Es un script sencillo, que no se vincula a Excel ni nada por el estilo. Solo entra a una transacción, ejecuta un par de pasos y listo. Quedo atenta a tus comentarios. Desde ya muchas gracias!

    • @alefranzoni
      @alefranzoni  Рік тому

      Hola Melina, muchas gracias por tu comentario, un gusto compartir esta info con ustedes. En cuanto a tu consulta, si, es posible. Si solo es un script sencillo, podés guardar el archivo *.vbs y mediante el Programador de tareas de Windows, programar para que se ejecute con la frecuencia que desees y listo, es muy sencillo. Cualquier consulta, me avisas.
      Saludos.

  • @Camilo-rq6xp
    @Camilo-rq6xp 5 місяців тому

    Hola Ale, muchas gracias por este excelente video. Quiero preguntarte, ¿cuántas filas es posible copiar y pegar en Excel utilizando este método?, ya que estoy intentado copiar cerca de 1000 filas de la transacción MB51 pero el script solo trae 121 filas.

    • @alefranzoni
      @alefranzoni  5 місяців тому

      Hola Camilo, ¿cómo estás? Puedes traer tantas filas como desees, no hay ningún tipo de restricción. Pero, por lo que me comentas, lo que debe estar pasando es que al ser una lista tan larga, vas a necesitar hacer scroll e ir iterando entre el listado para poder traer todos y no solo los 121, que seguramente sean los primeros visibles y por eso “solo te está trayendo estos”. Saludos.

  • @cristianpizarro9893
    @cristianpizarro9893 Рік тому

    Alejandro eso que haces declarar variable tipo objeto para que serviria, perdon la pregunta pero voy entiendo de a poco. Saludos y gracias

    • @alefranzoni
      @alefranzoni  Рік тому

      La declaración de variables, en el caso que me consultas, de tipo Object, sirven para luego poder inicializar y guardar una referencia a un objeto en la misma y poder utilizarla en la ejecución del código para realizar las diversas tareas que necesitemos.
      Saludos.

  • @juanruzchamorro4196
    @juanruzchamorro4196 11 місяців тому

    Hola, yo también soy nuevo en tu canal, muy claras y prolijas tus explicaciones. Me asombra lo fácil de aprender de tu método. Mi consulta es como hacer una captura de pantalla de la ventana sap activa ya que se requiere para respaldo. Si ya lo respondiste te agradecería si fueses tan amable de redirijirme a la respuesta. Un abrazo desde Valparaíso en Chile.

    • @alefranzoni
      @alefranzoni  10 місяців тому +1

      Hola Juan Cruz, muchas gracias por tu comentario, me alegra mucho saber que les están sirviendo los videos y que se entiende lo que quiero trasmitirles. En cuanto a tu consulta, no tengo ningún video sobre ese tema, pero es relativamente sencillo hacerlo y justamente estoy preparando un tutorial. Estate atento al canal que en breve se viene dicho video. Saludos hacía Chile!

    • @juanruzchamorro4196
      @juanruzchamorro4196 10 місяців тому

      @@alefranzoni gracias por todo lo que entregas, pero soy Juan Ruz. Saludos y abrazos desde Valparaíso en Chile.

    • @alefranzoni
      @alefranzoni  10 місяців тому

      Jaja perdón Juan, leí rápido y me equivoqué 😅. Saludos.

  • @alvaromorales9403
    @alvaromorales9403 4 місяці тому

    Hola buenas tardes muy buen video una consulta en el sap mm se puede hacer ordenes de compras de manera masiva jalando solpeds y otros datos de una tabla excel? Porque en donde trabajo son varias solped y es dificil trabajarlas una por una? Porfavor le estaria muy agradecido si me responde

    • @alefranzoni
      @alefranzoni  4 місяці тому

      Hola Alvaro, ¿cómo estás? Desconozco de la operatoria que me estás comentando, pero asumo que sí puedes hacerlo sin ningún problema. Tendrías que tener los datos a ingresar en la transacción en cuestión en un Excel y luego desde el script, manipularlos para colocarlos donde los desees. Puedes personalizar las ejecuciones a tu gusto para adaptarlas a tus requisitos.
      Saludos.

  • @guillermoaponte5527
    @guillermoaponte5527 Місяць тому

    muy bueno! oye bro como modifico el scrip para que cada vez que lo ejecute actualice la fecha del dia que bajo el reporte

    • @alefranzoni
      @alefranzoni  29 днів тому

      Hola Guillermo, cómo estás? Muy fácil, fíjate que hay una línea en donde la fecha la ponemos manualmente, bueno reemplaza ese código por el necesario para obtener la fecha del día y listo.
      Si estás en *Excel* sería: Format(Now, "dd.MM.yyyy")
      Si estás en *VBS* sería: Day(Now) & "." & Month(Now) & "." & Year(Now)
      Saludos.

  • @ivangomez3835
    @ivangomez3835 8 місяців тому

    espectacular, una duda, cómo hago para que desde excel me abra la aplicacion de sap?

    • @alefranzoni
      @alefranzoni  8 місяців тому

      Lo explico en otro de mis videos, te lo dejo por acá: ua-cam.com/video/cvDxz05Og6E/v-deo.htmlsi=Xtnrxd0Sq-zso0r1

  • @davidleonardosuescuntibana4781
    @davidleonardosuescuntibana4781 2 роки тому

    guau muchas gracias...

  • @juanruzchamorro4196
    @juanruzchamorro4196 11 місяців тому

    Disculpa me faltó algo, la captura de pantalla es a través de sap y poder guardarla en un excel, que es el archivo que recoge los datos desde Sap. Gracias por tu ayuda.

    • @alefranzoni
      @alefranzoni  10 місяців тому +2

      Ya se viene el tutorial sobre este tema 🙌🏻

    • @fernandoriosnavarro1722
      @fernandoriosnavarro1722 7 місяців тому

      @@alefranzonimuchas gracias por el contenido, realizaste este video? Es muy interesante lo que pregunta juan

  • @davidnatera8923
    @davidnatera8923 Рік тому

    Hola Ale, buenas tardes, este vídeo me a sido de mucha utilidad, sin embargo, debo llevarlo al siguiente nivel y no se como hacerlo, me puedes ayudar???... Te explico lo que quiero hacer: Yo exporte un reporte de la CR05 (Los puestos de trabajos en los centros de trabajo), entonces voy recorriendo cada puesto de trabajo pero cuando debo de cambiar el valor del centro no se como hacerlo, es decir, el valor for each debe incluir el valor del puesto de trabajo + el centro donde esta ese puesto de trabajo y por ultimo y no menos importante en este video dices que el rango puede ser dinámico, como se puede hacer en ese caso. Gracias por tus aportes

    • @alefranzoni
      @alefranzoni  Рік тому +1

      Hola David, cómo estás?
      Te hago una consulta para ver si entendí bien, ¿el valor del centro que necesitas también está en el reporte (CR05) que exportas? ¿Necesitas ingresarlo, luego, dentro de SAP?
      Por otro lado, para hacer un rango dinámico y no dejarlo “fijo” o “hardcodeado” tienes varias maneras de hacerlo, pero la más cómoda es adaptar el rango desde el principio hasta la última fila con valor. Para que lo entiendas mejor, te lo voy a explicar con un ejemplo.
      Supongamos que vos querés hacer un rango dinámico de la columna A (o columna 1), es decir, desde el primer valor hasta el último de dicha columna. Entonces setearias el objeto rango de la siguiente manera:
      Dim r as Range
      Set r = Sheets("Hoja1").Range("A1:A" & Sheets("Hoja1").Cells(Rows.Count, 1).End(XlUp).Row)
      Donde *_Sheets("Hoja1").Cells(Rows.Count, 1).End(XlUp).Row_* es la parte del código que te devuelve la última fila con valor de la columna 1 o A. (También recordá cambiar _Hoja1_ por el nombre de tu hoja)
      Cualquier cosa no dudes en consultarme,
      Saludos.

    • @davidnatera8923
      @davidnatera8923 Рік тому

      @@alefranzoni Hola Ale, gracias por responder y apoyarme. Con respecto a tu pregunta: SI, del reporte de la CR05, necesito luego ir a la CA80, para poder introducir el puesto de trabajo y el centro asociado. Yo lo puedo hacer por parte es decir, una corrida por centro pero quiero saber SÍ es posible hacerlo colocando ambos datos en el bucle "for each"; con respecto al rango dinámico voy a escribirlo y probar👍

    • @alefranzoni
      @alefranzoni  Рік тому

      ​@@davidnatera8923 Hola David, cómo estás? No estoy seguro de entender al 100% el flujo que querés lograr y sumado a no conocer las transacciones que me nombras se me complica un poco más imaginármelo. Pero bien, si del reporte CR05 ya obtenés todos los datos que necesitas tranquilamente, lo podés hacer.
      Solo tendrías a la vez que vas recorriendo el rango para los puestos, copiar también el centro de trabajo (que asumo por lo que me comentas que está presente en cada fila que estás recorriendo, pero en otra columna) y pasárselo a la transacción de ser necesario. Con hacer eso para cada iteración dentro del bucle *For Each* ya estaría.
      Sí es así, para obtener otro dato de la misma fila que estás iterando dentro del bucle For Each, podés utilizar la propiedad *Next* del objeto Range. Es decir, supongamos que en la fila A1 tenés el puesto, en la B1 otro dato y en la C1 el centro, entonces para obtener B o C sería así:
      For Each cell in Range
      'Obtener el valor de cell e imprimirlo en ventana de inmediato
      Debug.Print(cell)
      'Obtener el valor de B1 e imprimirlo en ventana de inmediato
      Debug.Print(cell.Next(1,1))
      'Obtener el valor de C1 e imprimirlo en ventana de inmediato
      Debug.Print(cell.Next(1,2))
      Next cell
      Obviamente en el ejemplo de arriba puse B1 y C1, pero seria B y C de la fila que el bucle esté iterando. Esto también siempre y cuando estes iterando sobre los datos en Excel (ya exportados), si lo que queres hacer es obtener el valor del centro directamente del listado de SAP vas a tener que llamar a la columna correspondiente y hacer lo que tengas que hacer.
      Cualquier consulta avisame,
      Saludos.

  • @lycanprosociety790
    @lycanprosociety790 Рік тому

    Hola, muchas gracias por compartir tu conocimiento, muy valioso en verdad.
    Queria preguntarte algo referente a este código, vi que declaraste las variables "r" y "c" de tipo rango, pero solo fue seteada la "r".
    Por que no seteaste la "c" y como es que te funciono sin setearla?
    De atemano gracias.
    Prospero 2023!

    • @alefranzoni
      @alefranzoni  Рік тому +2

      Hola, muchas gracias por tu comentario. En cuanto a lo que me consultas, te explico. Si te fijas, la variable *c* la estamos usando en el bucle *For Each* para recorrer la colección r, que en este caso, es un listado de rangos.
      Si observamos la sintaxis de dicho bucle es:
      *For Each* _element_ *In* _group_
      Donde _element_ es una variable se utiliza para recorrer los elementos de la colección dada, como te comente, en este caso, es un grupo de rangos, por lo tanto, para recorrer cada valor necesitamos que la variable sea de este tipo. En consecuencia, en cada iteración lo que va haciendo internamente es asignar el valor actual del rango que está siendo recorrido a la variable *c* para que podamos manipularlo de la forma deseada. Es por esto que funciona sin "declarar o inicializar" la variable *c* previamente.
      Espero que se haya entendido un poco mejor y cualquier inquietud no dudes en preguntar,
      Saludos y feliz año.

    • @lycanprosociety790
      @lycanprosociety790 Рік тому +1

      @@alefranzoni muchisimas gracias, te entendi perfectamente.
      Tienes algun sitio web o brindas asesorias personalizadas. Creo que valdria mucho la pena pagar alguna asesoria o clases por tu conocimiento.
      Saludos

    • @alefranzoni
      @alefranzoni  Рік тому +1

      @@lycanprosociety790 Excelente, me alegro 🙌. Mira, no tengo nada formal por el momento, pero si estás interesado en alguna clase/asesoría personalizada podemos charlar por correo o LinkedIn, lo que te quede más cómodo, y coordinar para armar algo sin problemas. Mi correo y redes los podés encontrar en mi web o en la descripción de cualquier video de mi canal.
      Saludos.

    • @lycanprosociety790
      @lycanprosociety790 Рік тому

      @@alefranzoni 🌟🌟🌟🌟🌟

  • @DavidArias-q6n
    @DavidArias-q6n 10 місяців тому

    Que pasa si quiero tomar dos variables para la busqueda ejemplo numero de orde y la localidad

    • @alefranzoni
      @alefranzoni  9 місяців тому

      No hay problema, sencillamente reemplazas la variable en el campo donde desees que se coloque y listo. Saludos.

  • @LuisSanchez-fy4he
    @LuisSanchez-fy4he 2 роки тому +1

    Ale podrias hacer un video de como exportar un reporte de sap desde excel

    • @alefranzoni
      @alefranzoni  2 роки тому +1

      Hola Luis, como estas? Vos te referís a procesar una transacción y luego, una vez finalizado el proceso, guardar/exportar el reporte generado en alguno de los formatos opcionales?
      Saludos!

    • @LuisSanchez-fy4he
      @LuisSanchez-fy4he 2 роки тому +1

      @@alefranzoni si así es

    • @alefranzoni
      @alefranzoni  2 роки тому +3

      @@LuisSanchez-fy4he Perfecto. Te comento que en breve estaré publicando un video sobre como realizar esto mismo. Saludos!

    • @dianagamboa7587
      @dianagamboa7587 2 роки тому +1

      @@alefranzoni quedaré atenta ..también estoy super interesada en este tema

  • @dariosantoscba
    @dariosantoscba Рік тому

    Excelente video Ale, te hago una consulta, cuando copio el scrip de SAP en la macro de excel y lo ejecuto, me da el error en la linea dos que dice Set Application = SapGuiAuto.GetScriptingEngine, el error que me arroja es "error de compilacion: el uso de la propiedad no es valido" sabes como puedo solucionarlo para correr el script de manera exitosa?

    • @alefranzoni
      @alefranzoni  Рік тому +1

      Gracias Dario por tu comentario. En cuanto a tu consulta, sí, es porque como podrás observar en el video para llevar un script a Excel hay que hacer unos pequeños cambios. Uno de ellos es que no podés usar ni setear una variable con el nombre Application, porque es una palabra reservada dentro del entorno de VBA. Cambia dicho nombre por app, por ejemplo, o cualquiera de tu gusto y en los lugares donde estés haciendo referencia a la misma, también coloca el nuevo nombre app (o el que hayas elegido colocarle). Saludos.

  • @joseandresgalvanfajardo7202

    Duda mi script si me abre la pantalla para grabar, y cuando lo detengo se crea el script, pero al momento de iniciar la grabación no me deja manipular sap, como puedo solucionarlo?

    • @alefranzoni
      @alefranzoni  Рік тому

      Hola Jose, ¿cómo estás? Que raro lo que me comentas, nunca me paso lo que me estas diciendo. ¿Qué versión de SAP GUI tenes? ¿Probaste reiniciando y conectándote a diferentes entornos? Saludos.

  • @joandelacruz2764
    @joandelacruz2764 11 місяців тому

    Hola, soy nuevo en el canal. Sap tiene la transaacion ME80FN, desde donde se saca la OT (Orden de Traslado) y OC (Orden de Compra), lo busco colocando el centro en 2 lugares distintos, uno para OT y otro pa OC, mas el rango de fecha que quiero. Se puede extraer esa data con este tipo de scrip y guardarlo sea en formato TXT o EXCEL?

    • @alefranzoni
      @alefranzoni  11 місяців тому

      Hola Joan, bienvenido al canal! Sí, seguramente se pueda. Si la transacción te devuelve un listado con la OT/OC, vas a poder guardarlo. Te invito a que mires este video que te puede ser de mucha ayuda para tu caso: ua-cam.com/video/86HYlK_r4R8/v-deo.html. De lo contrario, avisame que podría mirar en cuanto pueda la transacción y ver que se puede hacer.
      Saludos.

  • @thyagovasquez6389
    @thyagovasquez6389 2 роки тому +1

    El libro de excel de ser libro habilitado para macros

    • @alefranzoni
      @alefranzoni  2 роки тому

      Si, exactamente Thyago. El libro de Excel que utilices debe estar habilitados para macros, es decir, con extención *.xlsm. Saludos.

  • @modestogonzalezchavez5038
    @modestogonzalezchavez5038 Рік тому

    Hola Ale, me surgió un comentario que estoy tratando de replicar, ya que deseo copiar el nombre de un cliente en un pedido en va03 pero no obtengo el script para copiar el nombre, me podrías apoyar con esta duda por favor

    • @alefranzoni
      @alefranzoni  Рік тому

      Hola Modesto, cómo estás? Te voy a pedir que me envíes un correo (lo podés encontrar en la sección de información de mi canal o en mi sitio web) con una captura de lo que estás viendo en dicha transacción para poder ayudarte, ya que en mi entorno de pruebas no cuento con datos para poder visualizarlo hoy en día. Saludos.

  • @cristiancofre7645
    @cristiancofre7645 Рік тому

    tengo creado mi script en sap pero al compartirlo con un colega que tiene cuenta sap no fucniona

    • @alefranzoni
      @alefranzoni  Рік тому

      Pueden ser diversas las causas por las que podría estar fallando. Por lo tanto, para poder ayudarte necesitaría más información, por ejemplo, que tipo de error le tira, si se llega a ejecutar parte del script o no, si tiene la misma versión de SAP GUI que tú, si estás seguro que su servidor tiene activado SAP Scripting, etc. Saludos.

  • @241pedro
    @241pedro Рік тому

    Ayuda, necesito un script pata copiar una columna de datos que esta en sap y pegarlo en excel

    • @alefranzoni
      @alefranzoni  Рік тому

      Hola Pedro, te recomiendo que mires los demás videos del canal sobre SAP Scripting, hay varios que te pueden llegar a servir para lo que estás necesitando. Saludos.

  • @ramirocareaga6692
    @ramirocareaga6692 Рік тому

    estimado una consulta, como puedo exporta una hoja de excel y guardarlo automaticamente, tengo la transacción mcp6 que al exportar me abre una hoja de excel pero se debe guardar manualmente o si no se borra, gracias.

    • @alefranzoni
      @alefranzoni  Рік тому

      Hola Ramiro, cómo estás? Te comento que tengo un video en el canal en el cual explico en detalle como hacer lo que me estas consultando. Te dejo el link acá: ua-cam.com/video/86HYlK_r4R8/v-deo.html
      Cualquier cosa no dudes en consultarme. Saludos!

    • @ramirocareaga6692
      @ramirocareaga6692 Рік тому

      @@alefranzoni estimado el problema que tengo es cuando exporto y se me abre una tabla en Excel de nombre HOJA DE CALCULO EN BASIS (1), esa es la que necesito por que el método que explicaste es para guardar como fichero y yo necesito exportar. Gracias estimado amigo.

    • @alefranzoni
      @alefranzoni  Рік тому

      @@ramirocareaga6692 Perfecto, entonces si ninguna de las funciones de guardado te sirven, lo que puedes hacer es automatizar el proceso hasta que presionas el botón de exportar. Este script llevarlo a un Excel para poder ejecutarlo desde el mismo y luego de eso, cuando finalice la exportación automática, desde código VBA puedes buscar por el libro en cuestión abierto y guardarlo en el lugar y con el nombre que quieras 😉.

  • @pabloarturo3155
    @pabloarturo3155 Рік тому

    Buen día Ale, disculpa, hay posibilidad de ejecutar un script si SAP, lo tengo en otro servidor, Citrix Workplace?

    • @pabloarturo3155
      @pabloarturo3155 Рік тому

      Es decir, que no esté descargado SAP, sino que lo tengo que abrir por medio de otro servidor en la lap

    • @alefranzoni
      @alefranzoni  Рік тому

      Hola Pablo, cómo estás? Te comento que lamentablemente la única posibilidad que tenés de poder hacerlo, es si lo que haces es conectarte a una máquina virtual (donde corres sap) y podes grabar y ejecutar el script desde la misma. Si no, desde tu máquina local no vas a poder.

  • @shayurilizanoborrero6345
    @shayurilizanoborrero6345 Рік тому

    Hola !
    Y como puedo traer un rango de filas de Excel a sap ?

    • @alefranzoni
      @alefranzoni  Рік тому

      Hola Shayuri, cómo estás? A que te referís específicamente con _"traer un rango de filas de Excel a SAP"_ ? Poneme un poco en contexto así te puedo dar una mejor respuesta. Saludos.

  • @barbaraacunasiviero9908
    @barbaraacunasiviero9908 Рік тому

    Hola Ale. Muchas gracias por tu video.
    Tengo una consulta para hacerte si podes ayudarme..
    Quiero realizar un script con una transacción de SAP para ver documentos posteados (fb03). Según el tipo de documento posteado, la transacción me permite utilizar un layout para visualizar los datos del documento. Es decir, entro con un documento y puedo elegir un layout, entro con otro distinto y ni siquiera aparece la opción en la barra. Cómo podría hacer para que logre que elija un layout determinado para aquellos documentos que permiten la opción?
    Yo quiero algo como “si tal session find by id está disponible en sap, hacé esto y si no está.. seguí con esto otro”. Como se hace para decir que un session by id blabla no está disponible? Me ayudaría mucho tu guía. Muchas gracias

    • @alefranzoni
      @alefranzoni  Рік тому +1

      Hola Bárbara, como estas? Para realizar lo que me comentas es muy sencillo, primero tenes que identificar el nombre del botón que querés chequear (lo podes hacer muy fácil con una grabación), luego tenes que comprobar la existencia del mismo con *session.FindById(objeto, False) Is Nothing* que te va a devolver True si no existe y por el contrario, False si esta disponible y con eso ya podrías hacer lo que consultas.
      Pará darte un ejemplo y que quede bien claro, supongamos que el botón se identifica como *btn[1]* entonces la lógica para presionarlo, solo si existe, sería:
      If Not session.FindById("wnd[0]/btn[1] ", False) Is Nothing Then session.FindById("wnd[0]/btn[1] ").press
      Listo! Espero que te sirva y cualquier duda me consultas.
      Saludos.

    • @barbaraacunasiviero9908
      @barbaraacunasiviero9908 Рік тому

      @@alefranzoni que genio Ale, muchas gracias por responder!!!
      El nombre del botón es este: session.findById("wnd[0]/tbar[1]/btn[33]"
      Intenté replicar lo que me mostraste de la siguiente forma:
      If Not session.findById("wnd[0]/tbar[1]/btn[33]", False) Is Nothing Then
      session.findById("wnd[0]/tbar[1]/btn[33]").press
      session.findById("wnd[1]/tbar[0]/btn[71]").press
      session.findById("wnd[2]/usr/txtGS_SEARCH-VALUE").Text = "/PINKSENVE"
      session.findById("wnd[2]/tbar[0]/btn[0]").press
      session.findById("wnd[2]/tbar[0]/btn[12]").press
      session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").selectedRows = "1020"
      session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").clickCurrentCell
      Else

      Funciona con los documentos en los cuales está la opción, pero no con los documentos donde no está. En esos casos a mi me gustaría que lea la primera sentencia y se dé cuenta que como no aplica, vaya al Else. Pero no estaría sucediendo.
      Sabes por qué puede ser y como puedo solucionarlo?

    • @alefranzoni
      @alefranzoni  Рік тому

      @@barbaraacunasiviero9908 Bien, seguramente este pasando eso porque la línea que comprueba por la existencia del botón da siempre “que existe” porque cuando no está el botón en cuestión, otro debe tomar la posición [33]. Por lo tanto, lo primero que te aconsejo hacer es verificar si esto es así, para eso podes simplemente imprimir un mensaje y ver que te arroja en ambos casos (tanto cuando está el correcto, como cuando no).
      result = Not session.findById("wnd[0]/tbar[1]/btn[33]", False) Is Nothing
      MsgBox result
      Si con lo anterior observas que siempre te arroja el mismo resultado es que está sucediendo lo que te comentaba. Para solucionarlo, deberías hacer alguna comprobación más. Lo que se me ocurre rápidamente es que podrías revisar el Tooltip del botón para corroborar que sea exactamente el que vos deseas. El _tooltip_ es el mensaje que aparece cuando posicionas el cursor por encima del botón, por lo tanto, fíjate que es lo que dice y puedes hacer lo siguiente:
      ❗Suponiendo que el Tooltip sobre el botón dice _«Cambiar layout»_
      Dim result As Boolean, tooltip As String
      result = Not session.findById("wnd[0]/tbar[1]/btn[33]", False) Is Nothing
      If result Then
      tooltip = session.findById("wnd[0]/tbar[1]/btn[33]").Tooltip
      If tooltip Like "Cambiar layout*" Then
      doSomeActionWhenButtonIsCorrect
      session.findById("wnd[0]/tbar[1]/btn[33]").press
      ...
      Else
      doSomeActionWhenButtonIsIncorrect
      End If
      Else
      'No se encontro el botón
      doSomeActionWhenButtonIsIncorrect
      End If
      Con esto ya deberías tener tu problema resuelto, confírmame si es así.
      Saludos.

    • @barbaraacunasiviero9908
      @barbaraacunasiviero9908 Рік тому

      @@alefranzoni buenas noches Ale. Aprecio mucho que me ayudes con esto. Tenías razón, en ambos casos el botón parece estar disponible ya que en ambos me dio como True el msgbox.
      Intenté replicar tu código para corregirlo con el tooltip del botón (select different display variant*) y me sale el siguiente error:
      Sub or function not defined
      Y me selecciona la línea de dosomeactionwhenbuttoniscorrect
      Puede ser que falta definir aparte los pasos para esa función? No quiero cagar el código.
      Bueno muchas gracias de nuevo.
      Saludos

    • @alefranzoni
      @alefranzoni  Рік тому +1

      @@barbaraacunasiviero9908 Claro, exactamente es eso. Está funcionando bien pero te está indicando que ese procedimiento no está definido. Podes borrar los _doSomeActionWhen..._ y reemplazarlos por lo que quieras hacer, tanto cuando lo encuentra, cómo cuando no.
      Cualquier cosa si tenés dudas de algo, avísame que te ayudo a resolverlo, pero ya ahora con colocar lo que desees hacer en cada caso debería funcionar bien.
      Saludos.

  • @derickmendivelso7173
    @derickmendivelso7173 Рік тому

    Hola amigo como vas, gracias por la info me sirvio mucho, pero quisiera saber como iniciar y logerame en SAP desde codigo VBA en excel, como se explica en este tutorial tuyo ua-cam.com/video/cvDxz05Og6E/v-deo.html en realidad me seria de gran ayuda, debido a que en otros tutoriales explicar como ejecutar el script mas no como abrir y logerse desde el codigo en VBA, te agradezco la atencion, saludos desde Colombia.

    • @alefranzoni
      @alefranzoni  Рік тому

      Hola Derick, cómo estás? No hay problema, fijate que en este video que te voy a dejar a continuación ya está integrado en Excel la parte de loguearse: ua-cam.com/video/YQq8wnDB2HU/v-deo.html. En el mismo vas a poder bajarte el archivo, ver como lo hice e integrarlo a tus proyectos.
      Saludos.

  • @aetcheverre
    @aetcheverre Рік тому

    buenisimo, estoy tratando de usarlo con la trasaccion "zufsodvta005", pero no me toma la fecha
    session.findById("wnd[0]/usr/tabsPARAMETROS/tabpPARAMETROS_FC1/ssubPARAMETROS_SCA:ZSOD_SD00_R_TOTALVTAAMPL:0103/ctxtSO_FKDAT-LOW").Text = Worksheets("Hoja1").Range("A" & indice).Value
    session.findById("wnd[0]/usr/tabsPARAMETROS/tabpPARAMETROS_FC1/ssubPARAMETROS_SCA:ZSOD_SD00_R_TOTALVTAAMPL:0103/ctxtSO_FKDAT-HIGH").Text = Worksheets("Hoja1").Range("B" & indice).Value
    que estaria haciendo mal?

    • @alefranzoni
      @alefranzoni  Рік тому

      Hola Alexis, ¿cómo estás? Podrías fijarte, en primer lugar, poniendo los valores a mano, por ejemplo:
      session.findById("wnd[0]/usr/tabsPARAMETROS/tabpPARAMETROS_FC1/ssubPARAMETROS_SCA:ZSOD_SD00_R_TOTALVTAAMPL:0103/ctxtSO_FKDAT-LOW").Text = "01.03.22"
      session.findById("wnd[0]/usr/tabsPARAMETROS/tabpPARAMETROS_FC1/ssubPARAMETROS_SCA:ZSOD_SD00_R_TOTALVTAAMPL:0103/ctxtSO_FKDAT-HIGH").Text = "03.03.22"
      Con esto vas a estar validando si está funcionando bien el script y si lo que falla es el valor que le estás pasando. Si esto funciona, podés probar que el índice que le pasas sea correcto y además, el formato de la fecha, ya que SAP a veces molesta con el formato. Intenta usando la función *Replace* y reemplazando las “/” con puntos (.) en la fecha, así:
      session.findById("wnd[0]/usr/tabsPARAMETROS/tabpPARAMETROS_FC1/ssubPARAMETROS_SCA:ZSOD_SD00_R_TOTALVTAAMPL:0103/ctxtSO_FKDAT-LOW").Text = Replace(Worksheets("Hoja1").Range("A" & indice).Value, "/", ".")
      Saludos.