Como resolver o problema <class ‘pywintypes.com_error’> no Python
O problema class ‘pywintypes.com_error’ está relacionado com a forma que o script precisa ser configurado para ser executado no Python.
Fazendo um parelelo com o VBA (Visual Basic for Application), o script gerado pelo SAP pode ser utilizado na forma com que foi gravado mas, no Python é necessária algumas adaptações.
Observe a instrução abaixo:
Original: session.findById(“wnd[1]/usr/btnBUTTON_3”).press
Adaptada para Python: session.findById(“wnd[1]/usr/btnBUTTON_3”).press()
Para ser executada sem erros, é necessário adicionar os parenteses no final do método press.
Outros ajustes que são necessários:
Método sendVKey
Original: session.findById(“wnd[0]”).sendVKey 0
Corrigido: session.findById(“wnd[0]”).sendVKey(0)
Método setFocus
Original: session.findById(“wnd[0]/usr/…/cmbBUS_JOEL_MAIN-PARTNER_ROLE”).setFocus
Corrigido: session.findById(“wnd[0]/usr/…/cmbBUS_JOEL_MAIN-PARTNER_ROLE”).setFocus()
Método maximize
Original: session.findById(“wnd[0]”).maximize
Corrigido: session.findById(“wnd[0]”).maximize()
Valores booleanos (True e False)
Original: session.findById(“wnd[0]/usr/chkDY_MAB”).selected = true
Corrigido: session.findById(“wnd[0]/usr/chkDY_MAB”).selected = True
No caso dos valores booleanos deverá ser alterada a caixa do caractere de minúsculo para maiúsculo.
Se você utiliza o try:/except: para capturar os erros no script, em documentação encontrada na WEB é recomendado que você utilize a seguinte sintaxe:
try:
… instruções
except:
print(sys.exc_info()[0])
Recomendo que você remova o [0] do comando para ver detalhes do problema.
Apesar do erro indicar que um controle não pode ser mapeado, o problema está maqueado pois o verdadeiro motivo para não ser executado está na forma de escrever os métodos de seleção e cliques do SAPScript.
As bibliotecas que estou utilizando para a criação do script são: sys, win32com.client e a time.
Espero que te ajude com o problema que me tirou horas de sono 8-).
Até o próximo artigo.
Alessandro Trovato
Office Script | TypeScript – Método reduce para array (dica)
#python #sapscript #sap #scriptSAP #trovato #mvp #mvpbr