Acessar transação n...
 
Notifications
Clear all

Acessar transação no SAP via macro

9 Posts
2 Usuários
0 Reactions
5,032 Visualizações
(@flanraelb)
Posts: 0
New Member
Topic starter
 

Bom dia à todos!

No meu trabalho utilizo o Excel para montar cargas de EXPORTAÇÃO, a qual preciso que meu estoque esteja o mais atualizado possível, esta informação eu consigo através da transação CO09 no SAP.

Existe alguma macro onde eu coloco o código do item na coluna A e a macro automaticamente vai acessar a transação CO09 no SAP usar o código do item informado coluna A para pesquisar o estoque do material e na coluna B me retorne com a quantidade atualizada.

Atualmente eu fico a cada 1h puxando um relatório no SAP com o estoque atualizado devido ser um volume alto de itens, algumas vezes demora um pouco e acontece de que quando o relatório está pronto algumas peças já foram vendidas e o estoque alterou.

 
Postado : 06/11/2017 11:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Porque não gravar o Script do SAP para fazer isso?

Qual versão do sap você usa?
Veja:
https://blogs.sap.com/2014/08/04/script ... r-dummies/
https://www.uipath.com/kb-articles/how- ... uick-guide

Att

 
Postado : 06/11/2017 1:06 pm
(@flanraelb)
Posts: 0
New Member
Topic starter
 

O SAP que estou usando é o GUI 730 Final Release.

Já encontrei alguns site falando sobre o script, tentei fazer mas não sei como fazer para assim que entrar na transação e verificar o estoque, copiar o estoque atualizado e colocar na coluna B da planilha do Excel.

 
Postado : 06/11/2017 5:50 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Não tem mistério, é como se fosse uma macro do SAP.

Att

 
Postado : 07/11/2017 5:13 am
(@flanraelb)
Posts: 0
New Member
Topic starter
 

Alexandre eu fiz esta parte, mas estou errando na hora de pegar a quantidade livre e colar na coluna do excel.
Isso que não estou conseguindo fazer.

 
Postado : 07/11/2017 8:59 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Você está dizendo que com um arquivo do excel aberto e enquanto grava o script, pretende copiar e colar do SAP no excel?

Eu não entendi...

Att

 
Postado : 07/11/2017 9:52 am
(@flanraelb)
Posts: 0
New Member
Topic starter
 

Isso mesmo, preciso que o valor do estoque disponível seja informado na planilha. Então eu colocaria o código do item e na célula da frente me retornaria o estoque disponível.

 
Postado : 07/11/2017 10:34 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Eu não vou conseguir te ajudar, pois eu não tenho como testar, pois eu não tenho usuário SAP.

Vamos ver se mais alguém pode ajudar.

Att

 
Postado : 07/11/2017 10:37 am
(@flanraelb)
Posts: 0
New Member
Topic starter
 

Pesquisando na internet, cheguei na macro abaixo, mas está dando erro.

Sub Teste()

If Not IsObject(Application) Then
Set SapGuiAuto = GetObject("SAPGUI")
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, "on"
WScript.ConnectObject Application, "on"
End If
session.findById("wnd[0]").maximize

Rem ADDED BY EXCEL **********************************

Dim objExcel
Dim objSheet, intRow, i
Set objExcel = GetObject(, ”Excel.Application”)
Set objSheet = objExcel.ActiveWorkbook.ActiveSheet

For i = 2 To objSheet.UsedRange.Rows.Count
COL1 = Trim(CStr(objSheet.Cells(i, 1).Value)) ‘Column1
COL2 = Trim(CStr(objSheet.Cells(i, 2).Value)) ‘Column2

Rem ADDED BY EXCEL **********************************

session.findById("wnd[0]/tbar[0]/okcd").Text = "CO09"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtCAUFVD-MATNR").Text = "column 2"
session.findById("wnd[0]/usr/ctxtCAUFVD-WERKS").Text = "column 1"
session.findById("wnd[0]/usr/ctxtCAUFVD-WERKS").SetFocus
session.findById("wnd[0]/usr/ctxtCAUFVD-WERKS").caretPosition = 4
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/tblSAPLATP4CTR_400/txtMDEZ-MNG04[5,0]").SetFocus
session.findById("wnd[0]/usr/tblSAPLATP4CTR_400/txtMDEZ-MNG04[5,0]").caretPosition = 17
ActiveSheet.Paste Destination:=Worksheets("Sheet1").Range("column 3")

End Sub

 
Postado : 09/11/2017 5:45 am