首页 > 其他分享 >SAP login self

SAP login self

时间:2023-08-24 11:55:05浏览次数:28  
标签:findById None wnd self session win32gui import login SAP

import sys
import win32com.client
import win32api
import win32gui
import win32con
# import win32ui
import time
import os
import subprocess


def Login():
    sap_app = r"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe"
    subprocess.Popen(sap_app)
    time.sleep(1)
    flt = 0
    while flt == 0:
        try:
            hwnd = win32gui.FindWindow(None, "SAP Logon 770")
            flt = win32gui.FindWindowEx(hwnd, None, "Edit", None)
        except:
            time.sleep(0.5)
    win32gui.SendMessage(flt, win32con.WM_SETTEXT, None, "BOT_LOGIN")
    win32gui.SendMessage(flt, win32con.WM_KEYDOWN, win32con.VK_RIGHT, 0)
    win32gui.SendMessage(flt, win32con.WM_KEYUP, win32con.VK_RIGHT, 0)
    time.sleep(0.1)

    dlg = win32gui.FindWindowEx(hwnd, None, "Button", None)  # 登陆(0)
    win32gui.SendMessage(dlg, win32con.WM_LBUTTONDOWN, 0)
    win32gui.SendMessage(dlg, win32con.WM_LBUTTONUP, 0)

    SapGuiAuto = win32com.client.GetObject("SAPGUI")
    if not type(SapGuiAuto) == win32com.client.CDispatch:
        return

    application = SapGuiAuto.GetScriptingEngine
    if not type(application) == win32com.client.CDispatch:
        SapGuiAuto = None
        return

    connection = application.Children(0)
    if not type(connection) == win32com.client.CDispatch:
        application = None
        SapGuiAuto = None
        return
    time.sleep(2)

    flag = 0
    while flag == 0:
        try:
            session = connection.Children(0)
            flag = 1
        except:
            time.sleep(0.5)

    if not type(session) == win32com.client.CDispatch:
        connection = None
        application = None
        SapGuiAuto = None
        return

  # SSO no need # session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "username" #此次放入您的SAP登陆用户名 # session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "password" #此次放入您的SAP登陆密码 session.findById("wnd[0]").sendVKey(0) return session def actions(session): """下面演示了使用mm03查看物料1000000000000的状态后再退回sap首页的过程""" session.findById("wnd[0]/tbar[0]/okcd").text = "mm03" session.findById("wnd[0]").sendVKey(0) session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").text = "1000000000000" session.findById("wnd[0]").sendVKey(0) session.findById("wnd[1]").sendVKey(0) session.findById("wnd[0]/tbar[0]/okcd").text = "/n" session.findById("wnd[0]").sendVKey(0) # >Insert your SAP GUI Scripting code here< if __name__ == "__main__": session = Login() actions(session)

  

标签:findById,None,wnd,self,session,win32gui,import,login,SAP
From: https://www.cnblogs.com/pythonClub/p/17653813.html

相关文章

  • CSAPP Notes ML Programming
    CSAPPNotes:MLProgrammingComputerSystem-Notes:MLProgramming本课程主要使用x86指令;CISC(复杂指令集);ARM属于RISC(精简指令集);g++和gccg++和gcc都是GNUCompilerCollection(GNU编译器集合)中的工具,用于编译源代码并生成可执行文件。然而,它们之间有一些区......
  • 2、[FATAL] Error while cataloging RMAN Backups
    [FATAL]ErrorwhilecatalogingRMANBackups1、利用oracle小工具sysresvIPCResourcesforORACLE_SID"ifrsdev":Maximumsharedmemorysegmentsize(shmmax):4398046511104bytesTotalsystemsharedmemory(shmall):4398046511104bytesTotalsystems......
  • SAP ABAP 模式(Pattern)、模板的创建与调用
    1.代码模板2.模式(Pattern) 调用3.标准模式,一些内置固定格式代码的填充  ......
  • CSAPP Notes: Types
    CSAPPNotes,类型随手写的,可能会有错误();类型数据类型大小char1bool1shortint(short)2int4longint(long)4或8(取决于平台)longlongint8float4double8longdouble8或16(取决于平台)wchar_t2或4(取决于平台)size......
  • 什么是 SAP UI5 的 BaseObject
    SAPUI5是一种用于构建现代Web应用程序的JavaScript框架,它提供了丰富的UI控件、数据绑定和模型驱动的开发模式,用于创建用户友好、功能强大的企业级应用。在SAPUI5框架中,BaseObject是一个重要的基类,Object.js是其中的一个文件,用于实现BaseObject类。本文将详细解释BaseObject的作......
  • 什么是 SAP S/4HANA 的 Virtual Data Model(VDM)
    VDM的具体实现技术是ABAPCDSview.什么是VirtualDataModel(VDM)?VirtualDataModel(VDM)是在SAPS/4HANA中引入的一个重要概念,用于帮助组织更好地理解和操作企业数据。它是一种逻辑数据模型,用于表示和组织企业数据的各个方面,以支持不同层次的分析、报告和查询需求。VDM旨在......
  • 什么是 SAP S/4HANA 的 VDM Layering Architecture 的 VDM Basic View
    在SAPS/4HANA的VDMLayeringArchitecture中,VDMBasicView是体系结构的最底层。它是构建数据模型的基础,提供了直接从底层数据表获取原始数据的能力。VDMBasicView旨在将操作性数据从底层系统中抽取出来,为上层的数据整合和分析提供原始数据的基础。VDMBasicView的关......
  • 什么是 SAP CDS view 的 supplementary filter
    SAPCDS视图是一种建模工具,用于在SAPS/4HANA系统中定义数据模型和视图,以便更轻松地访问和处理数据。"Supplementaryfilter"是CDS视图的一个重要概念,它允许您在CDS视图上应用额外的过滤条件,以动态地限制视图返回的数据。本文将详细介绍"supplementaryfilter"的背景、用途和示例......
  • 关于 SAP UI5 预定义的 CSS Margin class
    与padding不同,margin是透明的,不是控件可单击区域的一部分,并且它们与相邻边距折叠在一起,这意味着它们不会相互添加。例如,有两个相邻的32像素margin,则结果是仅显示一个32像素边距,而不是64像素的空间。SAPUI5中预定义的所有边距都支持从右到左(RTL)语言:当向左侧添加边......
  • 通过一个实际的 Fiori Elements 扩展开发需求,介绍什么是 SAP Fiori Extension API 试
    本教程前一篇文章,介绍了如何在SAPFioriElementsListReport应用的Table区域里创建自定义Action,并且在该Action对应按钮的点击事件处理函数里,使用JavaScript代码打印出当前选中的表格行项目的业务数据。效果如下图所示:前一篇教程的解决方案,根据按钮的press事件点......