Extraer datos de la interfaz de usuario de la GUI de SAP con Power Automate
Cuando crea o actualiza registros en SAP, genera información de estado que incluye los id. de registro recién generados. SAP muestra esta información de estado en la parte inferior de la interfaz de usuario de SAP.
Aquí hay un mensaje de estado de muestra que SAP muestra después de crear una notificación de PM de SAP.
Esta información de estado puede resultar útil para los pasos del proceso de automatización posteriores. Por lo tanto, debe extraer y asignar estos datos de estado a variables para el procesamiento de datos posterior.
Tenemos varias formas de lograr esto, dependiendo de su enfoque de desarrollo. Los dos enfoques son las técnicas de poco código o procódigo.
Enfoque procódigo
El enfoque procódigo utiliza comandos VBScript para extraer información de los elementos de la interfaz de usuario de SAP.
Para extraer datos de estado de SAP, como solicitudes de compra recién creadas o números de notificación de mantenimiento de planta, necesita acceder al elemento de la interfaz de usuario de la barra de estado.
Así es como puede acceder al elemento de la interfaz de usuario de la barra de estado.
session.findById("wnd\[0\]/sbar/pane\[0\]").Text
Repasemos la experiencia de principio a fin. Registraremos cómo crear una notificación PM de SAP y modificaremos el código que se genera para devolver el id. recién creado a Power Automate Desktop.
En el caso de que nunca haya oído hablar de la notificación de PM de SAP o no tenga acceso a ella, no se preocupe, aún podrá comprender los pasos necesarios para extraer dichos datos para su propio escenario.
Estos son los pasos que se deben seguir:
Confirme que todas las Configuraciones de secuencias de comandos de GUI de SAP estén hechas.
Abra Inicio de sesión de SAP y seleccione el sistema SAP en el que desea iniciar sesión.
Seleccione Personalizar el diseño local (Alt+F12) y luego seleccione Grabación y reproducción de scripts....
Seleccione Más.
En Guardar en, proporcione la ruta del archivo y el nombre del archivo donde desea almacenar las interacciones de usuario capturadas.
Seleccione el botón Grabar script para iniciar el proceso de captura de pantalla. Cada interacción que hace ahora en SAP se captura como comandos VBScript repetibles.
Nota
Si registró los pasos y los guardó en este archivo antes, deberá confirmar si desea sobrescribir el archivo.
Introduzca el código de transacción IW21 y luego seleccione Entrar.
Proporcione el Tipo de notificación y luego seleccione Entrar.
Introduzca un Texto corto, Grupo de planificadores, WorkCtr principal y cualquier otro campo que necesite.
Seleccione Guardar (Ctrl+S) en la barra de herramientas.
De vuelta al formulario Crear notificación de PM inicial, verá un nuevo mensaje de estado en la barra de estado, en la esquina inferior izquierda de la interfaz de usuario.
Seleccione Salida (Mayús+F3) en la barra de herramientas y luego detener la grabación.
Opcionalmente, cierre la sesión de SAP y cierre todas las ventanas de SAP.
Examinemos el código VBScript generado:
Captura de pantalla de VBScript generada durante la creación de la notificación SAP If Not IsObject application Then Set SapGuiAuto GetObject quot SAPGUI quot Set application SapGuiAuto GetScriptingEngine End If If Not IsObject connection Then Set connection application Children 0 End If If Not IsObject session Then Set session connection Children 0 End If If IsObject WScript Then WScript ConnectObject session quot on quot WScript ConnectObject application quot on quot End If session findById quot wnd 0 quot maximize session findById quot wnd 0 tbar 0 okcd quot text quot IW21 quot session findById quot wnd 0 quot sendVKey 0 session findById quot wnd 0 usr ctxtRIWO00 QMART quot text quot M2 quot session findById quot wnd 0 usr ctxtRIWO00 QMART quot caretPosition 2 session findById quot wnd 0 quot sendVKey 0 session findById quot wnd 0 usr subSCREE shortened command quot text quot My Notification Short Text quot session findById quot wnd 0 usr tabsTAB_ shortened command quot text quot 010 quot session findById quot wnd 0 usr tabsTAB_ shortened command quot text quot 0001 quot session findById quot wnd 0 usr tabsTAB_ shortened command quot text quot MAIN quot session findById quot wnd 0 usr tabsTAB_ shortened command quot setFocus session findById quot wnd 0 usr tabsTAB_ shortened command quot caretPosition 4 session findById quot wnd 0 tbar 0 btn 11 quot press session findById quot wnd 0 tbar 0 btn 15 quot press.
Ahora, ajustemos el código generado para incluir un paso que extrae, recorta y luego devuelve el nuevo id. de notificación a la acción Ejecutar VBScript.
Captura de pantalla de VBScript ajustado que devuelve la notificación de SAP a Power Automate Desktop via a variable 39 This is the Save button session findById quot wnd 0 tbar 0 btn 11 quot press 39 This is the full Status Bar text that contain the data to be extracted statusBarMessage session findById quot wnd 0 sbar pane 0 quot text 39 Trimming and removing any text surrounding our new notification Id notificationID Trim Replace Replace statusBarMessage quot Notification quot quot quot quot saved quot quot quot 39 This is the Exit button session findById quot wnd 0 tbar 0 btn 15 quot press 39 Esto escribe la recién creada Id. en la variable de salida Run VBS en Power Automate Desktop WScript Echo notificationID.
Esto establece la variable VBScriptOutput de la acción Ejecutar VBScript al id. de notificación recién creado.
Si desea ver el contenido de VBScriptOutput, puede usar una acción de mensaje de visualización, similar a la salida en las siguientes imágenes.
Enfoque de poco código
El enfoque de poco código utiliza acciones y selectores personalizados para extraer los id. de registro recién generados u otros mensajes de estado que son importantes para el procesamiento del flujo descendente.
Los siguientes pasos no entrarán en detalles sobre cómo registrar o usar el diseño de acción manual para crear un nuevo registro de notificación de PM de SAP. Revise Código bajo o RPA sin código con GUI de SAP en Power Automate de escritorio si necesita un repaso sobre cómo hacerlo.
Siga estos pasos para un enfoque de poco código:
Utilice la grabadora de escritorio o el diseño de acción manual para capturar todos los controles que necesita para el proceso de notificación de PM de SAP.
Cree un registro de notificación y capture el texto de estado que aparece después de seleccionar Guardar en la barra de herramientas de la pantalla Crear notificación de PM.
Una vez guardado el elemento, se le redirigirá a la pantalla anterior, donde debería ver un nuevo número de notificación en el texto de la barra de estado.
Ahora, regrese a Power Automate Desktop, busque una acción llamada Obtener detalles de un elemento de la interfaz de usuario en la ventana y agréguelo a su lienzo de creación.
Seleccione el menú desplegable del elemento de UI y luego seleccione Agregar un nuevo elemento de interfaz de usuario.
Seleccione la ventana Acceso rápido a SAP y mantenga el cursor sobre la barra de estado hasta que aparezca un borde rojo etiquetado como Barra de estado de interfaz gráfica de usuario. Mientras el borde está activo, mantenga presionado Ctrl y luego haga clic para seleccionar la barra de estado.
Seleccione Guardar.
Busque la acción Reemplazar texto en el panel Acciones y arrástrelo al lienzo de diseño.
En Texto a buscar, introduzca Notificación. En Reemplazar con, introduzca una cadena en blanco introduciendo los siguientes caracteres: %''%
Agregue otra acción Reemplazar texto y cambie el nombre de Variables producidas a %NotificationId%. En Texto a buscar, introduzca guardar y, en Reemplazar con, introduzca una cadena en blanco (%''%).
Busque la acción Recortar texto en el panel Acciones, arrástrela al lienzo de diseño, seleccione %NotificationId% como valor de Texto a recortar y renombre Variables producidas como %TrimmedNotificationID%.
Busque la acción Mostrar mensaje en el panel Acciones y arrástrela al lienzo de diseño. Establezca el Título del cuadro de mensaje y el Mensaje a mostrar para satisfacer sus necesidades.
Ejecute la automatización que crea una nueva notificación de PM de SAP y extraiga su id. de notificación recién generado que se puede mostrar como aparece en la siguiente imagen.