From 39d0cc2865733e9f7706f9be2d8de41e43d366e7 Mon Sep 17 00:00:00 2001 From: Happy Mahlangu Date: Tue, 11 Aug 2026 12:24:35 +0200 Subject: [PATCH] test(sap): add complex sales order audit --- crates/flowproof-adapters/src/sap_com.rs | 156 ++++++++++++++++++++- examples/sap/audit-sales-order.flow.yaml | 91 ++++++++++++ examples/sap/audit-sales-order.trace.jsonl | 82 +++++++++++ 3 files changed, 327 insertions(+), 2 deletions(-) create mode 100644 examples/sap/audit-sales-order.flow.yaml create mode 100644 examples/sap/audit-sales-order.trace.jsonl diff --git a/crates/flowproof-adapters/src/sap_com.rs b/crates/flowproof-adapters/src/sap_com.rs index 0c466660..7d2f0a03 100644 --- a/crates/flowproof-adapters/src/sap_com.rs +++ b/crates/flowproof-adapters/src/sap_com.rs @@ -182,6 +182,21 @@ const INTERACTABLE_KINDS: &[&str] = &[ "GuiOkCodeField", ]; +/// SAP keeps the main window in the session tree while a modal is open. Only +/// the highest numbered `wnd[n]` is the active surface; including background +/// windows lets assertions pass on text the user cannot currently act on. +fn window_index(id: &str) -> Option { + let rest = id.strip_prefix("wnd[")?; + rest.split_once(']')?.0.parse().ok() +} + +fn active_window(elements: &[SapElement]) -> Option { + elements + .iter() + .filter_map(|element| window_index(&element.id)) + .max() +} + /// `AppDriver` over a [`SapEngine`]. `E` is the COM bridge in production, /// a fake in tests. pub struct SapAppDriver { @@ -336,8 +351,19 @@ impl AppDriver for SapAppDriver { // The desktop reading of "the surface": every visible text and // tooltip in the session tree, top-down — same contract as UIA // and the browser page text. + let elements = self.engine.walk()?; + let active_window = active_window(&elements); let mut parts: Vec = Vec::new(); - for element in self.engine.walk()? { + for element in elements { + if active_window.is_some_and(|active| window_index(&element.id) != Some(active)) { + continue; + } + // SAP exposes the complete menu hierarchy even while every menu + // is closed. Those labels are not visible page text and must not + // satisfy a `page shows` assertion. + if element.kind == "GuiMenu" { + continue; + } if !element.text.trim().is_empty() { parts.push(element.text.trim().to_string()); } @@ -399,8 +425,19 @@ impl AppDriver for SapAppDriver { fn scene(&mut self) -> Result, DriverError> { // The grounding set for LLM authoring: interactable elements with // their `id:` TARGET TOKENS — same neutral contract as web/UIA. + // SAP exposes the entire menu hierarchy in the session tree even + // while those menus are closed. On a normal Easy Access window that + // hierarchy can exhaust the scene cap before the first field is + // reached. Preserve tree order within each group, but ground the + // ordinary screen controls before background menu items. + let mut elements = self.engine.walk()?; + let active_window = active_window(&elements); + if let Some(active) = active_window { + elements.retain(|element| window_index(&element.id) == Some(active)); + } + elements.sort_by_key(|element| element.kind == "GuiMenu"); let mut entries: Vec = Vec::new(); - for element in self.engine.walk()? { + for element in elements { if entries.len() >= 100 { break; } @@ -1499,4 +1536,119 @@ mod tests { // The status bar is not interactable — grounding must not offer it. assert!(!scene.contains("sbar")); } + + #[test] + fn scene_prioritizes_screen_controls_over_the_closed_menu_hierarchy() { + let mut elements = Vec::new(); + for index in 0..100 { + elements.push(SapElement { + id: format!("wnd[0]/mbar/menu[{index}]"), + kind: "GuiMenu".into(), + name: format!("menu[{index}]"), + text: format!("Menu {index}"), + ..Default::default() + }); + } + elements.push(SapElement { + id: "wnd[0]/usr/ctxtVBAK-VBELN".into(), + kind: "GuiCTextField".into(), + name: "VBAK-VBELN".into(), + tooltip: "Order".into(), + changeable: true, + ..Default::default() + }); + let mut d = SapAppDriver::with_engine(FakeEngine::with_elements(elements)); + + let scene = d.scene().expect("scene").expect("json"); + + assert!( + scene.contains("id:wnd[0]/usr/ctxtVBAK-VBELN"), + "a screen control must not be crowded out by closed menu items: {scene}" + ); + } + + #[test] + fn surface_text_excludes_labels_from_closed_menus() { + let mut d = SapAppDriver::with_engine(FakeEngine::with_elements(vec![ + SapElement { + id: "wnd[0]".into(), + kind: "GuiMainWindow".into(), + text: "SAP Easy Access".into(), + ..Default::default() + }, + SapElement { + id: "wnd[0]/mbar/menu[4]/menu[2]/menu[3]".into(), + kind: "GuiMenu".into(), + text: "User Profile".into(), + tooltip: "User Profile".into(), + ..Default::default() + }, + ])); + + let surface = d.surface_text().expect("surface"); + + assert!(surface.contains("SAP Easy Access")); + assert!( + !surface.contains("User Profile"), + "a closed menu label is not visible page text: {surface}" + ); + } + + #[test] + fn surface_text_reads_the_modal_instead_of_the_background_window() { + let mut d = SapAppDriver::with_engine(FakeEngine::with_elements(vec![ + SapElement { + id: "wnd[0]".into(), + kind: "GuiMainWindow".into(), + text: "SAP Easy Access".into(), + ..Default::default() + }, + SapElement { + id: "wnd[1]".into(), + kind: "GuiModalWindow".into(), + text: "Information".into(), + ..Default::default() + }, + SapElement { + id: "wnd[1]/usr/txtMESSTXT1".into(), + kind: "GuiTextField".into(), + text: "Cannot start transaction SMEN".into(), + ..Default::default() + }, + ])); + + let surface = d.surface_text().expect("surface"); + + assert!(surface.contains("Cannot start transaction SMEN")); + assert!( + !surface.contains("SAP Easy Access"), + "background text must not satisfy an assertion while a modal is active: {surface}" + ); + } + + #[test] + fn scene_offers_modal_controls_instead_of_background_controls() { + let mut d = SapAppDriver::with_engine(FakeEngine::with_elements(vec![ + SapElement { + id: "wnd[0]/tbar[0]/btn[11]".into(), + kind: "GuiButton".into(), + text: "Save".into(), + ..Default::default() + }, + SapElement { + id: "wnd[1]/tbar[0]/btn[0]".into(), + kind: "GuiButton".into(), + text: "Continue".into(), + ..Default::default() + }, + ])); + + let scene = d.scene().expect("scene").expect("json"); + + assert!(scene.contains("id:wnd[1]/tbar[0]/btn[0]")); + assert!( + !scene.contains("id:wnd[0]/tbar[0]/btn[11]"), + "background controls must not be actionable through an active modal: {scene}" + ); + } } diff --git a/examples/sap/audit-sales-order.flow.yaml b/examples/sap/audit-sales-order.flow.yaml new file mode 100644 index 00000000..6257136e --- /dev/null +++ b/examples/sap/audit-sales-order.flow.yaml @@ -0,0 +1,91 @@ +# A deliberately long, read-only SAP GUI scenario for the reference TS3 +# system. Order 314 is the same sample order used by view-order.flow.yaml. +# +# Safety boundary: VA03 display screens only. The flow enters an order number +# on the selection screen, opens Display Document Flow and Status Overview, +# selects read-only overview tabs, and returns to Easy Access. It never invokes +# Change, Create, Delete, Save, configuration, profile, or administration UI. +name: Audit sales order lifecycle +app: sap +steps: + - Go to /nVA03 + - Type 314 into the "id:wnd[0]/usr/ctxtVBAK-VBELN" field + - Press Enter + - assert: "page shows Display Standard Order 314: Overview" + - assert: the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/ctxtVBAK-VBELN field contains 314 + - assert: the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/txtVBAK-NETWR field contains 2,200.00 + - assert: the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/ctxtVBAK-WAERK field contains USD + - assert: the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/txtVBKD-BSTKD field contains 4500055022 + - assert: page shows Sold-to Party + - assert: page shows Ship-to Party + - assert: the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/subPART-SUB:SAPMV45A:4701/ctxtKUAGV-KUNNR field contains USCU_S11 + - assert: the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/subPART-SUB:SAPMV45A:4701/txtKUAGV-TXTPA field contains Company Bike World + - assert: the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/subPART-SUB:SAPMV45A:4701/ctxtKUWEV-KUNNR field contains USCU_S11 + - assert: page shows Net Due in 30 Days + - assert: page shows Cost & Freight + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/ctxtRV45A-KETDAT field contains 03/12/2018 + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/txtRV45A-BTGEW field contains 75 + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/txtRV45A-GEWEI field contains KG + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/ctxtVBKD-ZTERM field contains NT30 + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/ctxtVBKD-INCO1 field contains CFR + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/ctxtVBAK-VKORG field contains 1710 + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtVBAP-POSNR[0,0] field contains 10 + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/ctxtRV45A-MABNR[1,0] field contains MZ-FG-C900 + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtRV45A-KWMENG[3,0] field contains 5 + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/ctxtVBAP-VRKME[4,0] field contains PC + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtVBAP-ARKTX[6,0] field contains C900 BIKE + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtKOMV-KBETR[15,0] field contains 440.00 + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/ctxtVBAP-PRCTR[23,0] field contains US10_PLC + - assert: the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtVBSTT-GBSTA_BEZ[24,0] field contains Completed + - Press the "id:wnd[0]/tbar[1]/btn[5]" button + - assert: page shows Document Flow + - assert: page shows Display Document + - assert: page shows Service Documents + - Press F3 + - assert: "page shows Display Standard Order 314: Overview" + - Press the "id:wnd[0]/tbar[1]/btn[36]" button + - assert: "page shows Sales order: Status Overview" + - assert: page shows Standard Order + - assert: page shows 314 + - assert: page shows USCU_S11 + - assert: page shows Bike World + - assert: page shows Current Hdr Status + - assert: page shows Current Item Status + - assert: page shows Completed + - assert: page shows Nothing Rejected + - Press F3 + - assert: "page shows Display Standard Order 314: Overview" + - Click "id:wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02" + - assert: page shows Requested Deliv.Date + - assert: page shows Delivering Plant + - assert: page shows MZ-FG-C900 + - assert: page shows C900 BIKE + - assert: page shows 440.00 + - assert: page shows US10_PLC + - assert: page shows Completed + - Click "id:wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\06" + - assert: page shows Overall Status + - assert: page shows Delivery Status + - assert: page shows Fully Delivered + - assert: page shows Not Blocked + - assert: page shows Total Weight + - assert: page shows 75 + - assert: page shows KG + - Click "id:wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\08" + - assert: page shows Reason for rejection + - assert: page shows Order Reason + - assert: page shows MZ-FG-C900 + - assert: page shows C900 BIKE + - assert: page shows 2,200.00 + - Click "id:wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01" + - assert: page shows Pyt Terms + - assert: page shows Net Due in 30 Days + - assert: page shows Incoterms + - assert: page shows CFR + - assert: page shows Cost & Freight + - assert: page shows Dom. Sales Org US, Direct Sales, Product Division 00 + - Press F3 + - assert: page shows Display Sales Documents + - assert: the wnd[0]/usr/ctxtVBAK-VBELN field contains 314 + - Press F3 + - assert: page shows SAP Easy Access diff --git a/examples/sap/audit-sales-order.trace.jsonl b/examples/sap/audit-sales-order.trace.jsonl new file mode 100644 index 00000000..8d5a07de --- /dev/null +++ b/examples/sap/audit-sales-order.trace.jsonl @@ -0,0 +1,82 @@ +{"format":"flowproof-trace","version":1,"trace_id":"2fdeacb6-406d-4229-842a-d531b4433d3e","recorded_at":"2026-08-11T09:34:25Z","spec":{"name":"Audit sales order lifecycle"},"app":{"name":"sap","adapter":"sap-com","window_title":"SAP"},"env":{"os":"windows","resolution":[1920,1080]},"recording":{"format":"filmstrip/1","dir":".flowproof/recordings/2fdeacb6-406d-4229-842a-d531b4433d3e/recording"}} +{"id":"s0001","intent":"Go to /nVA03","action":{"type":"launch","params":{"url":"/nVA03"}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":5,"end_ms":10803}}} +{"id":"s0002","intent":"Type 314 into the \"id:wnd[0]/usr/ctxtVBAK-VBELN\" field","action":{"type":"type_text","params":{"text":"314"}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/ctxtVBAK-VBELN"}}],"sync":{"pre":[{"kind":"element_exists","timeout_ms":5000}],"post":[]},"artifacts":{"recording":{"start_ms":10817,"end_ms":19475}}} +{"id":"s0003","intent":"Press Enter","action":{"type":"press_key","params":{"key":"Enter"}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":19479,"end_ms":31504}}} +{"id":"s0004","intent":"page shows Display Standard Order 314: Overview","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Display Standard Order 314: Overview"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":31506,"end_ms":48133}}} +{"id":"s0005","intent":"the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/ctxtVBAK-VBELN field contains 314","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"314"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/ctxtVBAK-VBELN"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":48139,"end_ms":61272}}} +{"id":"s0006","intent":"the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/txtVBAK-NETWR field contains 2,200.00","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"2,200.00"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/txtVBAK-NETWR"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":61272,"end_ms":74847}}} +{"id":"s0007","intent":"the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/ctxtVBAK-WAERK field contains USD","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"USD"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/ctxtVBAK-WAERK"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":74847,"end_ms":87904}}} +{"id":"s0008","intent":"the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/txtVBKD-BSTKD field contains 4500055022","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"4500055022"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/txtVBKD-BSTKD"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":87904,"end_ms":100817}}} +{"id":"s0009","intent":"page shows Sold-to Party","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Sold-to Party"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":100817,"end_ms":117378}}} +{"id":"s0010","intent":"page shows Ship-to Party","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Ship-to Party"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":117378,"end_ms":133995}}} +{"id":"s0011","intent":"the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/subPART-SUB:SAPMV45A:4701/ctxtKUAGV-KUNNR field contains USCU_S11","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"USCU_S11"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/subPART-SUB:SAPMV45A:4701/ctxtKUAGV-KUNNR"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":133996,"end_ms":147122}}} +{"id":"s0012","intent":"the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/subPART-SUB:SAPMV45A:4701/txtKUAGV-TXTPA field contains Company Bike World","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"Company Bike World"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/subPART-SUB:SAPMV45A:4701/txtKUAGV-TXTPA"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":147122,"end_ms":159988}}} +{"id":"s0013","intent":"the wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/subPART-SUB:SAPMV45A:4701/ctxtKUWEV-KUNNR field contains USCU_S11","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"USCU_S11"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/subPART-SUB:SAPMV45A:4701/ctxtKUWEV-KUNNR"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":159988,"end_ms":172887}}} +{"id":"s0014","intent":"page shows Net Due in 30 Days","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Net Due in 30 Days"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":172888,"end_ms":189608}}} +{"id":"s0015","intent":"page shows Cost & Freight","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Cost & Freight"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":189608,"end_ms":206068}}} +{"id":"s0016","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/ctxtRV45A-KETDAT field contains 03/12/2018","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"03/12/2018"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/ctxtRV45A-KETDAT"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":206068,"end_ms":219360}}} +{"id":"s0017","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/txtRV45A-BTGEW field contains 75","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"75"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/txtRV45A-BTGEW"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":219361,"end_ms":232252}}} +{"id":"s0018","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/txtRV45A-GEWEI field contains KG","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"KG"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/txtRV45A-GEWEI"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":232252,"end_ms":245649}}} +{"id":"s0019","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/ctxtVBKD-ZTERM field contains NT30","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"NT30"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/ctxtVBKD-ZTERM"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":245651,"end_ms":258970}}} +{"id":"s0020","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/ctxtVBKD-INCO1 field contains CFR","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"CFR"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/ctxtVBKD-INCO1"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":258971,"end_ms":271997}}} +{"id":"s0021","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/ctxtVBAK-VKORG field contains 1710","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"1710"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/ssubHEADER_FRAME:SAPMV45A:4440/ctxtVBAK-VKORG"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":271997,"end_ms":285257}}} +{"id":"s0022","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtVBAP-POSNR[0,0] field contains 10","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"10"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtVBAP-POSNR[0,0]"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":285257,"end_ms":298239}}} +{"id":"s0023","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/ctxtRV45A-MABNR[1,0] field contains MZ-FG-C900","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"MZ-FG-C900"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/ctxtRV45A-MABNR[1,0]"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":298239,"end_ms":311423}}} +{"id":"s0024","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtRV45A-KWMENG[3,0] field contains 5","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"5"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtRV45A-KWMENG[3,0]"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":311424,"end_ms":324345}}} +{"id":"s0025","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/ctxtVBAP-VRKME[4,0] field contains PC","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"PC"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/ctxtVBAP-VRKME[4,0]"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":324345,"end_ms":337501}}} +{"id":"s0026","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtVBAP-ARKTX[6,0] field contains C900 BIKE","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"C900 BIKE"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtVBAP-ARKTX[6,0]"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":337501,"end_ms":350849}}} +{"id":"s0027","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtKOMV-KBETR[15,0] field contains 440.00","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"440.00"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtKOMV-KBETR[15,0]"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":350850,"end_ms":364775}}} +{"id":"s0028","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/ctxtVBAP-PRCTR[23,0] field contains US10_PLC","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"US10_PLC"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/ctxtVBAP-PRCTR[23,0]"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":364775,"end_ms":378112}}} +{"id":"s0029","intent":"the wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtVBSTT-GBSTA_BEZ[24,0] field contains Completed","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"Completed"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtVBSTT-GBSTA_BEZ[24,0]"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":378112,"end_ms":391270}}} +{"id":"s0030","intent":"Press the \"id:wnd[0]/tbar[1]/btn[5]\" button","action":{"type":"click","params":{}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/tbar[1]/btn[5]"}}],"sync":{"pre":[{"kind":"element_exists","timeout_ms":5000}],"post":[]},"artifacts":{"recording":{"start_ms":391272,"end_ms":404363}}} +{"id":"s0031","intent":"page shows Document Flow","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Document Flow"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":404364,"end_ms":414095}}} +{"id":"s0032","intent":"page shows Display Document","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Display Document"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":414095,"end_ms":424269}}} +{"id":"s0033","intent":"page shows Service Documents","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Service Documents"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":424269,"end_ms":433977}}} +{"id":"s0034","intent":"Press F3","action":{"type":"press_key","params":{"key":"F3"}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":433978,"end_ms":445768}}} +{"id":"s0035","intent":"page shows Display Standard Order 314: Overview","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Display Standard Order 314: Overview"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":445768,"end_ms":462356}}} +{"id":"s0036","intent":"Press the \"id:wnd[0]/tbar[1]/btn[36]\" button","action":{"type":"click","params":{}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/tbar[1]/btn[36]"}}],"sync":{"pre":[{"kind":"element_exists","timeout_ms":5000}],"post":[]},"artifacts":{"recording":{"start_ms":462357,"end_ms":473869}}} +{"id":"s0037","intent":"page shows Sales order: Status Overview","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Sales order: Status Overview"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":473869,"end_ms":484831}}} +{"id":"s0038","intent":"page shows Standard Order","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Standard Order"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":484831,"end_ms":495944}}} +{"id":"s0039","intent":"page shows 314","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"314"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":495944,"end_ms":506950}}} +{"id":"s0040","intent":"page shows USCU_S11","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"USCU_S11"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":506951,"end_ms":517650}}} +{"id":"s0041","intent":"page shows Bike World","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Bike World"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":517650,"end_ms":528526}}} +{"id":"s0042","intent":"page shows Current Hdr Status","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Current Hdr Status"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":528526,"end_ms":539315}}} +{"id":"s0043","intent":"page shows Current Item Status","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Current Item Status"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":539315,"end_ms":550060}}} +{"id":"s0044","intent":"page shows Completed","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Completed"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":550060,"end_ms":560991}}} +{"id":"s0045","intent":"page shows Nothing Rejected","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Nothing Rejected"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":560991,"end_ms":573225}}} +{"id":"s0046","intent":"Press F3","action":{"type":"press_key","params":{"key":"F3"}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":573225,"end_ms":586248}}} +{"id":"s0047","intent":"page shows Display Standard Order 314: Overview","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Display Standard Order 314: Overview"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":586248,"end_ms":602995}}} +{"id":"s0048","intent":"Click \"id:wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\02\"","action":{"type":"click","params":{}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\02"}}],"sync":{"pre":[{"kind":"element_exists","timeout_ms":5000}],"post":[]},"artifacts":{"recording":{"start_ms":602997,"end_ms":616355}}} +{"id":"s0049","intent":"page shows Requested Deliv.Date","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Requested Deliv.Date"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":616356,"end_ms":631735}}} +{"id":"s0050","intent":"page shows Delivering Plant","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Delivering Plant"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":631736,"end_ms":647282}}} +{"id":"s0051","intent":"page shows MZ-FG-C900","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"MZ-FG-C900"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":647283,"end_ms":662532}}} +{"id":"s0052","intent":"page shows C900 BIKE","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"C900 BIKE"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":662532,"end_ms":677710}}} +{"id":"s0053","intent":"page shows 440.00","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"440.00"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":677710,"end_ms":692661}}} +{"id":"s0054","intent":"page shows US10_PLC","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"US10_PLC"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":692661,"end_ms":708490}}} +{"id":"s0055","intent":"page shows Completed","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Completed"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":708491,"end_ms":724234}}} +{"id":"s0056","intent":"Click \"id:wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\06\"","action":{"type":"click","params":{}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\06"}}],"sync":{"pre":[{"kind":"element_exists","timeout_ms":5000}],"post":[]},"artifacts":{"recording":{"start_ms":724235,"end_ms":737346}}} +{"id":"s0057","intent":"page shows Overall Status","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Overall Status"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":737346,"end_ms":752861}}} +{"id":"s0058","intent":"page shows Delivery Status","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Delivery Status"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":752861,"end_ms":768698}}} +{"id":"s0059","intent":"page shows Fully Delivered","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Fully Delivered"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":768698,"end_ms":784997}}} +{"id":"s0060","intent":"page shows Not Blocked","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Not Blocked"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":784997,"end_ms":800349}}} +{"id":"s0061","intent":"page shows Total Weight","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Total Weight"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":800349,"end_ms":815632}}} +{"id":"s0062","intent":"page shows 75","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"75"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":815632,"end_ms":830945}}} +{"id":"s0063","intent":"page shows KG","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"KG"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":830945,"end_ms":846820}}} +{"id":"s0064","intent":"Click \"id:wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\08\"","action":{"type":"click","params":{}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\08"}}],"sync":{"pre":[{"kind":"element_exists","timeout_ms":5000}],"post":[]},"artifacts":{"recording":{"start_ms":846820,"end_ms":859709}}} +{"id":"s0065","intent":"page shows Reason for rejection","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Reason for rejection"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":859709,"end_ms":874884}}} +{"id":"s0066","intent":"page shows Order Reason","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Order Reason"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":874885,"end_ms":890544}}} +{"id":"s0067","intent":"page shows MZ-FG-C900","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"MZ-FG-C900"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":890545,"end_ms":905797}}} +{"id":"s0068","intent":"page shows C900 BIKE","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"C900 BIKE"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":905797,"end_ms":921983}}} +{"id":"s0069","intent":"page shows 2,200.00","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"2,200.00"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":921983,"end_ms":936400}}} +{"id":"s0070","intent":"Click \"id:wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01\"","action":{"type":"click","params":{}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\\01"}}],"sync":{"pre":[{"kind":"element_exists","timeout_ms":5000}],"post":[]},"artifacts":{"recording":{"start_ms":936401,"end_ms":949561}}} +{"id":"s0071","intent":"page shows Pyt Terms","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Pyt Terms"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":949561,"end_ms":966775}}} +{"id":"s0072","intent":"page shows Net Due in 30 Days","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Net Due in 30 Days"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":966775,"end_ms":985005}}} +{"id":"s0073","intent":"page shows Incoterms","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Incoterms"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":985005,"end_ms":1006024}}} +{"id":"s0074","intent":"page shows CFR","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"CFR"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":1006025,"end_ms":1023894}}} +{"id":"s0075","intent":"page shows Cost & Freight","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Cost & Freight"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":1023894,"end_ms":1040581}}} +{"id":"s0076","intent":"page shows Dom. Sales Org US, Direct Sales, Product Division 00","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Dom. Sales Org US, Direct Sales, Product Division 00"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":1040582,"end_ms":1057159}}} +{"id":"s0077","intent":"Press F3","action":{"type":"press_key","params":{"key":"F3"}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":1057159,"end_ms":1069277}}} +{"id":"s0078","intent":"page shows Display Sales Documents","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"Display Sales Documents"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":1069277,"end_ms":1079144}}} +{"id":"s0079","intent":"the wnd[0]/usr/ctxtVBAK-VBELN field contains 314","action":{"type":"assert","params":{"kind":"element_state","expect":{"timeout_ms":10000,"value_contains":"314"},"selector_ref":0}},"selectors":[{"tier":"native_id","provenance":"sap-com","confidence":1.0,"payload":{"id":"wnd[0]/usr/ctxtVBAK-VBELN"}}],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":1079144,"end_ms":1088247}}} +{"id":"s0080","intent":"Press F3","action":{"type":"press_key","params":{"key":"F3"}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":1088248,"end_ms":1097965}}} +{"id":"s0081","intent":"page shows SAP Easy Access","action":{"type":"assert","params":{"kind":"element_state","expect":{"scope":"surface","timeout_ms":10000,"value_contains":"SAP Easy Access"}}},"selectors":[],"sync":{"pre":[],"post":[]},"artifacts":{"recording":{"start_ms":1097966,"end_ms":1108584}}}