Project 5 — Advanced

SAP Data Entry Bot

SAP me vendor master, purchase orders, invoice entry — sab manually. Ek batch entry me 40 minute. Is project me bot banayenge jo Excel se data leke SAP GUI me transactions post kare — element IDs se, error status bar se alert ke saath.

⏱ 30 min• Advanced• UiPath Studio (Community)

Project kya karega?

WHAT

Bot Excel file padhega (vendor details ya PO data), SAP Logon kholkar session attach karega, transaction code run karega (jaise XK01 vendor creation), har field me data type karega, post karega, aur status bar check karega — success ya error, dono log honge. Errors wali rows ek error report me jayengi.

WHEN

SAP ERP wali koi bhi company — manufacturing, pharma, FMCG, automobiles. SAP data entry repetitive hai aur costly (SAP consultant time = expensive). RPA + SAP = India me sabse high-paying automation niche.

WHERE

Enterprise shared services (TCS, Infosys, Wipro ke SAP automation teams), Fortune 500 ke in-house CoEs. "SAP automation UiPath" job listings me salary 30-50% zyada hoti hai plain RPA se.

Prerequisite: SAP GUI scripting ON hona chahiye (SAP Options → Accessibility & Scripting → "Enable scripting"). Client-side scripting policy admin control karta hai — enterprise me ye IT team enable karti hai. Practice ke liye SAP sandboxes ya training environments use karo.

Step-by-step build

Main.xaml (Sequence)
 |
 +-- Try Catch
 |    +-- SAP Logon  (system: in_System)  ->  session
 |    +-- Assign: session.findById("wnd[0]/tbar[0]/okcd").Text = "XK01"
 |    +-- Assign: session.findById("wnd[0]").SendVKey 4        (Enter)
 |    +-- Read Excel  in_File  ->  dtVendors
 |    +-- For Each  row in dtVendors
 |         +-- Try Catch (per row - ek row fail ho to batch na ruke)
 |              +-- Assign: session.findById("wnd[0]/usr/ctxtLFA1-LIFNR").Text = row("VendorCode")
 |              +-- Assign: session.findById("wnd[0]/usr/txtLFA1-NAME1").Text  = row("VendorName")
 |              +-- Assign: session.findById("wnd[0]/usr/ctxtLFA1-STCD1").Text = row("GSTIN")
 |              +-- Assign: session.findById("wnd[0]").SendVKey 0   (Validate/Enter)
 |              +-- Assign: strStatus = session.findById("wnd[0]/sbar").Text
 |              +-- If  strStatus.Contains("Error") OR strStatus.Contains("exists")
 |              |    +-- Write Row: [row, strStatus, "FAILED"]
 |              |    +-- session.findById("wnd[0]/tbar[0]/btn[3]").Press()   (Back - cancel)
 |              +-- Else
 |              |    +-- session.findById("wnd[0]/tbar[0]/btn[11]").Press()  (Save)
 |              |    +-- Write Row: [row, "Posted", "OK"]
 |         +-- Catch (Exception)
 |              +-- Log Message  LogLevel.Error  ex.Message
 |              +-- Write Row: [row, ex.Message, "EXCEPTION"]
 |    +-- Write Range dtResult "C:\Output\SAP_Result_" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx"

SAP selectors = Element IDs

SAP GUI me web jaise CSS selectors nahi hote — Element ID hote hain. Inko UI Explorer se nikalte ho:

# Field element IDs (SAP scripting):
wnd[0]/tbar[0]/okcd                 - Transaction code box
wnd[0]/usr/ctxtLFA1-LIFNR           - Vendor code field (ctxt = dropdown field)
wnd[0]/usr/txtLFA1-NAME1            - Vendor name (txt = text field)
wnd[0]/usr/ctxtLFA1-LAND1           - Country dropdown
wnd[0]/sbar                         - Status bar (success/error message)
wnd[0]/tbar[0]/btn[11]              - Save button
wnd[0]/tbar[0]/btn[3]               - Back/Cancel

# UI Explorer se exact ID nikalo - naad manual type karo na guess
# Tab order: SendVKey 0 = Enter (field validate + next screen)

Error handling — status bar is truth

Enterprise tips

Interview question: "SAP me selector kaise handle karte ho?" — SAP GUI scripting element IDs se (wnd[0]/usr/...), UI Explorer se nikalte hain. Aur "SAP bot parallel kyun nahi chal sakta?" — SAP dialog user ek hi transaction session handle karta hai, concurrency 1 per account. Orchestrator me isliye robot concurrency limit hoti hai.

Exercise

Question: SAP status bar (success/error message padhne wale) ka element ID path? (Format: wnd[0]/... )

Question: SAP me Save (post) karne wale button ka element ID? (Format: btn[...])

Common mistakes

Lesson complete?

Project ban gaya? Ab next project pe chalte hain — REST API + JSON + Database Bot.

Popular courses: Data Science Course in Lucknow · AI Course in Lucknow · Python Course in Lucknow · Power BI Course · Data Analytics Course