SAPScript no Python - Como resolver o problema: 'class 'pywintypes.com_error'

 
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







#python #sapscript #sap #scriptSAP #trovato #mvp #mvpbr



Postagem Anterior Próxima Postagem