# -*- coding: utf-8 -*- import re import pyodbc CONN = ( "DRIVER={ODBC Driver 17 for SQL Server};" "SERVER=123.60.180.165,1433;DATABASE=dopdemorq;" "UID=dopsa;PWD=5h3n9)uN;TrustServerCertificate=yes" ) PROCS = [ "pr_SFM_SaveWorkOrdChooseByOpData", "pr_SFM_EndWorkOrdByOp", "pr_MES_CloseWorkOrders", "pr_WMS_SavePrepareMaterial", "pr_WMS_SaveWorkOrdMaterialIssue", "pr_SFM_InventoryMesCartonTransactionProcessingByOp", "pr_SFM_SaveEmployeeWorkStatus", "pr_SFM_LinePlanedStart", "pr_SFM_LinePlanedEnd", ] def main() -> None: conn = pyodbc.connect(CONN, timeout=60) cur = conn.cursor() for name in PROCS: cur.execute("SELECT OBJECT_DEFINITION(OBJECT_ID(?))", name) text = cur.fetchone()[0] or "" print("====", name) for m in re.finditer(r"(?i)Status\s*=\s*N?'([^']{1,20})'", text): i = m.start() ctx = re.sub(r"\s+", " ", text[max(0, i - 90) : i + 50]) if any( t in ctx for t in ( "WorkOrd", "Nbr", "Missed", "LineStatus", "Period", "Employee", "Routing", ) ): print(" ", ctx[-140:]) for m in re.finditer(r"(?i)WorkStatus\s*=\s*N?'([^']{1,30})'", text): i = m.start() ctx = re.sub(r"\s+", " ", text[max(0, i - 70) : i + 40]) print(" WS", ctx) conn.close() if __name__ == "__main__": main()