Estrarre dati dall'interfaccia utente della GUI SAP con Power Automate
Quando crei o aggiorni record in SAP, vengono generate informazioni sullo stato che includono gli ID record appena generati. SAP visualizza queste informazioni sullo stato nella parte inferiore dell'interfaccia utente SAP.
Di seguito è riportato un messaggio di stato di esempio che SAP visualizza dopo la creazione di una notifica PM SAP.
Queste informazioni sullo stato potrebbero essere utili per i passaggi successivi del processo di automazione. Pertanto devi estrarre questi dati sullo stato e assegnarli alle variabili per l'elaborazione dati downstream.
È possibile eseguire queste operazioni in vari modi, a seconda dell'approccio allo sviluppo. I due approcci sono tecniche con uso limitato di codice o con uso intensivo di codice.
Approccio con uso intensivo di codice
L'approccio con uso intensivo di codice utilizza i comandi VBScript per estrarre informazioni dagli elementi dell'interfaccia utente SAP.
Per estrarre i dati sullo stato SAP, come richieste di acquisto appena create o numeri di notifica di manutenzione dell'impianto, devi accedere all'elemento dell'interfaccia utente della barra di stato.
Il modo di accedere all'elemento dell'interfaccia utente della barra di stato è descritto di seguito.
session.findById("wnd\[0\]/sbar/pane\[0\]").Text
Esaminiamo l'esperienza end-to-end. Registreremo come creare una notifica PM SAP e modificheremo il codice generato per restituire l'ID appena creato a Power Automate Desktop.
Nel caso in cui non hai mai sentito parlare della notifica PM SAP o se non hai accesso alla stessa, non preoccuparti; sarai comunque in grado di comprendere i passaggi necessari per estrarre tali dati per il tuo scenario.
I passaggi sono:
Conferma che tutto le configurazioni di script della GUI SAP siano state eseguite.
Apri SAP Logon e seleziona il sistema SAP a cui intendi accedere.
Seleziona Personalizza layout locale (Alt+F12), quindi seleziona Registrazione e riproduzione di script....
Seleziona Altro.
Sotto Salva in, specifica il percorso e il nome di file in cui intendi memorizzare le interazioni dell'utente acquisite.
Seleziona il pulsante Registra script per avviare il processo di acquisizione della schermata. Ogni interazione in SAP viene acquisita come comandi VBScript ripetibili.
Nota
Se hai registrato i passaggi e li hai salvati in questo file in precedenza, dovrai confermare se desideri sovrascrivere il file.
Inserisci il codice transazione IW21, quindi seleziona INVIO.
Specifica il Tipo di notifica, quindi seleziona INVIO.
Specifica i campi Testo breve, Gruppo di Planner, WorkCtr principale e qualsiasi altro campo necessario.
Seleziona Salva (CTRL+S) nella barra degli strumenti.
Ritorna al modulo inizialeCrea notifica PM. Noterai un nuovo messaggio nella barra di stato nell'angolo in basso a sinistra dell'interfaccia utente.
Seleziona Esci (MAIUSC+F3) nella barra degli strumenti, quindi interrompi la registrazione.
Eventualmente, disconnettiti da SAP e chiudi tutte le finestre SAP.
Esaminiamo il codice VBScript generato:
Screenshot di VBScript generato durante la creazione della notifica 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.
Ora modifichiamo il codice generato per includere un passaggio che estrae, taglia e quindi restituisce il nuovo ID notifica all'azione Esegui VBScript.
Screenshot del codice VBScript modificato che restituisce la notifica SAP a Power Automate Desktop tramite una variabile 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 This writes the newly created Id to the Run VBScript output variable in Power Automate Desktop WScript Echo notificationID.
La variabile VBScriptOutput dell'azione Esegui VBScript viene impostata sull'ID notifica appena creato.
Se intendi visualizzare il contenuto di VBScriptOutput, puoi utilizzare un'azione Visualizza messaggio, simile all'output nelle immagini seguenti.
Approccio con uso limitato di codice
L'approccio con uso limitato di codice utilizza azioni e selettori personalizzati per estrarre gli ID record appena generati o altri messaggi di stato importanti per l'elaborazione del flusso downstream.
I passaggi seguenti non descrivono in modo dettagliato il modo in cui registrare o utilizzare la progettazione di azioni manuale per creare un nuovo record Notifica PM SAP. Vedi Basso uso di codice o RPA senza codice con GUI SAP in Power Automate Desktop per informazioni su come eseguire tale operazione.
Segui questi passaggi per un approccio con uso limitato di codice:
Utilizza il registratore desktop o la progettazione di azioni manuale per acquisire tutti i controlli necessari per il processo di notifica PM SAP.
Crea un record di notifica e acquisisci il testo dello stato che appare dopo aver selezionato Salva nella barra degli strumenti della schermata Crea notifica PM.
Dopo che l'elemento è stato salvato, verrai reindirizzato alla schermata precedente dove dovresti vedere un nuovo numero di notifica nel testo della barra di stato.
Ora torna a Power Automate Desktop, cerca un'azione denominata Recupera dettagli da un elemento dell'interfaccia utente nella finestra e aggiungila al canvas di creazione.
Seleziona il menu a discesa dell'elemento dell'interfaccia utente, quindi seleziona il pulsante Aggiungi un nuovo elemento dell'interfaccia utente.
Seleziona la finestra SAP Easy Access e passa il mouse sopra la barra di stato fino a quando non viene visualizzato un bordo rosso etichettato Gui Statusbar. Mentre il bordo è attivo, tieni premuto CTRL, quindi fai clic per selezionare la barra di stato.
Seleziona Salva.
Cerca l'azione Sostituisci testo nel riquadro Azioni e trascinalo nel canvas di progettazione.
In Testo da trovare, immetti Notifica. In Sostituisci con, immetti una stringa vuota immettendo i seguenti caratteri: %''%
Aggiungi un'altra azione Sostituisci testo e rinomina Variabili prodotte in %NotificationId%. In Testo da trovare, immetti Salva e sotto Sostituisci con, immetti una stringa vuota (%''%).
Cerca l'azione Taglia testo nel riquadro Azioni, trascinalo nel canvas di progettazione, seleziona %NotificationId% come valore Testo da tagliare e rinomina Variabili prodotte in %TrimmedNotificationID%.
Cerca l'azione Visualizza messaggio nel riquadro Azioni e trascinala nel canvas di progettazione. Imposta Titolo finestra di messaggio e Messaggio da visualizzare come necessario.
Esegui l'automazione che crea una nuova notifica PM SAP ed estrae il relativo ID notifica appena generato che può essere visualizzato come mostrato nell'immagine seguente.