SapObject class

Wraps a COM object handle from the native SAP GUI Scripting bridge.

SapObject provides access to all SAP GUI Scripting properties and methods through typed Dart wrappers. Each instance holds a handle (integer pointer into the C++ g_objects map) and delegates calls to the native DLL via SapApi.

Memory management is automatic: when owned: true (default), a Finalizer calls Sap_Release when the object is garbage collected. Use owned: false when reusing a handle from another isolate (as in useSapSession).

Constructing

// Connect to SAP (returns a root SapObject)
final root = SapObject.connect(api);

// Wrap an existing handle (e.g. from another isolate)
final obj = SapObject(handle, api, owned: false);

Finding child objects

Properties like children, sessions, activeWindow return SapObject instances you can pass to typed wrappers:

final sessionObj = root.activeSession;
final session = GuiSession(sessionObj!);

See also:

Implemented types

Constructors

SapObject(int handle, ISapApi _api, {bool owned = true})

Properties

accDescription String
no setteroverride
accEnhancedTabChain bool
getter/setter pairoverride
accLabelCollection ISapObject?
no setteroverride
accSymbolReplacement bool
getter/setter pairoverride
accText String
no setteroverride
accTextOnRequest String
no setteroverride
accTooltip String
no setteroverride
activeSession ISapObject?
no setteroverride
activeWindow ISapObject?
no setteroverride
allowSystemMessages bool
getter/setter pairoverride
altText String
no setteroverride
annotationEnabled bool
getter/setter pairoverride
annotationMode int
getter/setter pairoverride
applicationServer String
no setteroverride
browserHandle Pointer<NativeType>?
no setteroverride
busy bool
no setteroverride
buttonbarVisible bool
getter/setter pairoverride
buttonCount int
no setteroverride
buttonTooltip String
no setteroverride
caretPosition int
getter/setter pairoverride
changeable bool
no setteroverride
charHeight int
no setteroverride
charLeft int
no setteroverride
chartCount int
no setteroverride
charTop int
no setteroverride
charWidth int
no setteroverride
children ISapObject?
no setteroverride
client String
no setteroverride
colorIndex int
no setteroverride
colorIntensified bool
no setteroverride
colorInverse bool
no setteroverride
colSelectMode int
no setteroverride
columnCount int
no setteroverride
columnOrder List<String>?
getter/setter pairoverride
columns → dynamic
no setteroverride
connectionErrorText String
no setteroverride
connections ISapObject?
no setteroverride
connectionString String
no setteroverride
containerType bool
no setteroverride
count int
no setteroverride
curListBoxEntry ISapObject?
no setteroverride
currentCellColumn String
getter/setter pairoverride
currentCellRow int
getter/setter pairoverride
currentCol int
no setteroverride
currentColumn int
no setteroverride
currentLine int
no setteroverride
currentRow int
no setteroverride
defaultTooltip String
no setteroverride
description String
no setteroverride
disabledByServer bool
no setteroverride
displayedText String
no setteroverride
displayMode String
no setteroverride
dockerIsVertical bool
no setteroverride
dockerPixelSize int
no setteroverride
document Pointer<NativeType>?
no setteroverride
documentComplete int
no setteroverride
dragDropSupported bool
no setteroverride
elementVisualizationMode bool
getter/setter pairoverride
emphasized bool
no setteroverride
entries ISapObject?
no setteroverride
errorList ISapObject?
no setteroverride
findButtonActivated bool
no setteroverride
firstVisibleColumn String
getter/setter pairoverride
firstVisibleLine int
getter/setter pairoverride
firstVisibleRow int
getter/setter pairoverride
fixed bool
no setteroverride
flushes int
no setteroverride
flushing bool
no setteroverride
focusedButton int
no setteroverride
focusedHorizontalSash int
no setteroverride
focusedVerticalSash int
no setteroverride
frozenColumnCount int
no setteroverride
gridColumnCount int
no setteroverride
gridRowCount int
no setteroverride
group String
no setteroverride
groupCount int
no setteroverride
groupMembers ISapObject?
no setteroverride
groupPos int
no setteroverride
guiCodepage int
no setteroverride
guiFocus ISapObject?
no setteroverride
handle int
final
hashCode int
The hash code for this object.
no setterinherited
height int
no setteroverride
helpButtonHelpText String
no setteroverride
helpButtonText String
no setteroverride
hierarchyHeaderWidth int
getter/setter pairoverride
highlighted bool
no setteroverride
historyCurEntryFromInputFieldControl String
no setteroverride
historyCurEntryProp String
no setteroverride
historyCurIndexFromInputFieldControl int
no setteroverride
historyCurIndexProp int
no setteroverride
historyEnabled bool
getter/setter pairoverride
historyIsActiveFromInputFieldControl bool
no setteroverride
historyIsActiveProp bool
no setteroverride
historyListProp List<String>?
no setteroverride
horizontalScrollbar SapObject?
no setteroverride
hostedApplication int
no setteroverride
icon String
no setteroverride
iconic bool
no setteroverride
iconName String
no setteroverride
id String
no setteroverride
info ISapObject?
no setteroverride
isActive bool
no setteroverride
isHotspot bool
no setteroverride
isInvalid bool
no setteroverride
isLeftLabel bool
no setteroverride
isListAdapter bool
no setteroverride
isListBoxActive bool
no setteroverride
isListElement bool
no setteroverride
isLowSpeedConnection bool
no setteroverride
isOField bool
no setteroverride
isOTFPreview bool
no setteroverride
isPopupDialog bool
getter/setter pairoverride
isRightLabel bool
no setteroverride
isStepLoop bool
no setteroverride
isStepLoopInTableStructure bool
no setteroverride
isSymbolFont bool
no setteroverride
isValid bool
no setteroverride
isVertical bool
no setteroverride
isVerticalInt int
no setteroverride
key String
getter/setter pairoverride
labelText String
no setteroverride
language String
no setteroverride
lastVisibleLine int
no setteroverride
left int
no setteroverride
leftLabel ISapObject?
no setteroverride
leftTab ISapObject?
no setteroverride
length int
no setteroverride
lineCount int
no setteroverride
linkCountProperty int
no setteroverride
listBoxCurrEntry int
no setteroverride
listBoxCurrEntryHeight int
no setteroverride
listBoxCurrEntryLeft int
no setteroverride
listBoxCurrEntryTop int
no setteroverride
listBoxCurrEntryWidth int
no setteroverride
listBoxEntries ISapObject?
no setteroverride
listBoxHeight int
no setteroverride
listBoxLeft int
no setteroverride
listBoxTop int
no setteroverride
listBoxWidth int
no setteroverride
loopColCount int
no setteroverride
loopCurrentCol int
no setteroverride
loopCurrentColCount int
no setteroverride
loopCurrentRow int
no setteroverride
loopRowCount int
no setteroverride
majorVersion int
no setteroverride
maximum int
no setteroverride
maxLength int
no setteroverride
messageAsPopup bool
no setteroverride
messageHasLongText int
no setteroverride
messageId String
no setteroverride
messageNumber String
no setteroverride
messageOptionOk int
no setteroverride
messageOptionOkCancel int
no setteroverride
messageParameter String
no setteroverride
messageServer String
no setteroverride
messageText String
no setteroverride
messageType int
no setteroverride
messageTypeRetunString String
no setteroverride
minimum int
no setteroverride
minorVersion int
no setteroverride
modified bool
getter/setter pairoverride
name String
no setteroverride
newVisualDesign bool
no setteroverride
nodeCount int
no setteroverride
numberOfUnprotectedTextParts int
no setteroverride
numerical bool
no setteroverride
ocxEvents ISapObject?
no setteroverride
okButtonText String
no setteroverride
opened bool
no setteroverride
owned bool
final
pageSize int
no setteroverride
parent ISapObject?
no setteroverride
parentFrame ISapObject?
no setteroverride
passport String
getter/setter pairoverride
passportPreSystemId String
getter/setter pairoverride
passportSystemId String
getter/setter pairoverride
passportTransactionId String
getter/setter pairoverride
patchlevel int
no setteroverride
popupDialog String
getter/setter pairoverride
pos int
no setteroverride
position int
getter/setter pairoverride
program String
no setteroverride
progressPercent int
no setteroverride
progressText String
no setteroverride
promptText String
no setteroverride
range int
no setteroverride
record bool
getter/setter pairoverride
recordFile String
getter/setter pairoverride
recording bool
getter/setter pairoverride
redliningStream String
getter/setter pairoverride
required bool
no setteroverride
responseTime int
no setteroverride
revision int
no setteroverride
rightLabel ISapObject?
no setteroverride
roundTrips int
no setteroverride
rowCount int
no setteroverride
rows ISapObject?
no setteroverride
rowSelectMode int
no setteroverride
rowText String
no setteroverride
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
sashPosition int
getter/setter pairoverride
saveAsUnicode bool
getter/setter pairoverride
screenLeft int
getter/setter pairoverride
screenNumber int
no setteroverride
screenTop int
getter/setter pairoverride
scriptingModeReadOnly bool
no setteroverride
selectable bool
no setteroverride
selected bool
getter/setter pairoverride
selectedCells List<String>?
getter/setter pairoverride
selectedColumns List<String>?
getter/setter pairoverride
selectedInComboBox String
getter/setter pairoverride
selectedNode String
getter/setter pairoverride
selectedRows String
getter/setter pairoverride
selectedTab ISapObject?
no setteroverride
selectedText String
no setteroverride
selectionEndColumn int
no setteroverride
selectionEndLine int
no setteroverride
selectionIndexEnd int
no setteroverride
selectionIndexStart int
no setteroverride
selectionMode String
no setteroverride
selectionStartColumn int
no setteroverride
selectionStartLine int
no setteroverride
sessionNumber int
no setteroverride
sessions ISapObject?
no setteroverride
shellHandle int
no setteroverride
showDropdownKeys bool
getter/setter pairoverride
showKey bool
no setteroverride
statusbarVisible bool
getter/setter pairoverride
subType String
no setteroverride
suppressBackendPopups bool
getter/setter pairoverride
systemFocus ISapObject?
no setteroverride
systemName String
no setteroverride
systemNumber int
no setteroverride
systemSessionId String
no setteroverride
tableFieldName String
no setteroverride
testToolMode int
getter/setter pairoverride
text String
getter/setter pairoverride
title String
no setteroverride
titlebarVisible bool
getter/setter pairoverride
toolbarButtonCount int
no setteroverride
toolbarVisible bool
getter/setter pairoverride
tooltip String
no setteroverride
top int
getter/setter pairoverride
topNode String
getter/setter pairoverride
transaction String
no setteroverride
type String
no setteroverride
typeAsNumber int
no setteroverride
uiGuideline String
no setteroverride
url String
no setteroverride
user String
no setteroverride
utils ISapObject?
no setteroverride
value String
getter/setter pairoverride
verticalScrollbar ISapObject?
no setteroverride
visible bool
no setteroverride
visibleRowCount int
no setteroverride
width int
no setteroverride
workingPaneHeight int
no setteroverride
workingPaneWidth int
no setteroverride

Methods

add(String item) → void
override
addHistoryEntry(String f, String v) bool
override
annotationTextRequest(String strText) → void
override
appendRow(String name, String row) → void
override
asStdNumberFormat(String number) String
override
barCount(int chartId) int
override
changeCheckbox(String k, String i, bool c) → void
override
changeSelection(int indexPosition) → void
override
clearErrorList() → void
override
clearSelection() → void
override
click(int r, String c) → void
override
clickControlArea(int x, int y) → void
override
clickCurrentCell() → void
override
clickInPicture() → void
override
override
clickPictureArea(int x, int y) → void
override
close() → void
override
closeConnection() → void
override
closeDocument(int cookie, bool everChanged, bool changedAfterSave) → void
override
closeFile(int file) → void
override
closeSession(String id) → void
override
collapseNode(String k) → void
override
compBitmap(String filename1, String filename2) int
override
configureLayout() → void
override
contextMenu() → void
override
contextMenuCalendar(int ctxMenuId, int ctxMenuCellRow, int ctxMenuCellCol, String dateBegin, String dateEnd) → void
override
contextMenuInPicture(int x, int y) → void
override
contextMenuInStage(String strId) → void
override
createGuiCollection() ISapObject?
override
createSession() → void
override
createSupportMessageClick() → void
override
currentCellMoved() → void
override
customEvent(int cookie, String eventName, int paramCount, [String? p1, String? p2, String? p3, String? p4, String? p5, String? p6, String? p7, String? p8, String? p9, String? p10, String? p11, String? p12]) → void
override
defaultContextMenu() → void
override
deleteRows(String r) → void
override
deselectAllColumns() → void
override
deselectColumn(String c) → void
override
dispose() → void
doubleClick(int r, String c) → void
override
doubleClickControlArea(int x, int y) → void
override
doubleClickCurrentCell() → void
override
doubleClickInPicture() → void
override
doubleClickInStage(String strId) → void
override
doubleClickItem(String k, String i) → void
override
doubleClickNoArgs() → void
override
doubleClickNode(String k) → void
override
doubleClickPictureArea(int x, int y) → void
override
dropHistory() bool
override
dumpState(String obj) ISapObject?
override
duplicateRows(String r) → void
override
elementAt(int index) ISapObject?
override
enableJawsEvents() → void
override
endTransaction() → void
override
ensureVisibleHorizontalItem(String k, String i) → void
override
expandNode(String k) → void
override
findAllByName(String n, String t) ISapObject?
override
findAllByNameEx(String n, int t) ISapObject?
override
findById(String id) ISapObject?
override
findByLabel(String text, String type) ISapObject?
override
findByName(String n, String t) ISapObject?
override
findByNameEx(String n, int t) ISapObject?
override
findByPosition(int x, int y, {bool raise = true}) List<String>?
override
fireSelected() → void
override
getAbsoluteRow(int index) ISapObject?
override
getAllNodeKeys() List<String>?
override
getBarContent(int chartId, int barId, int textId) String
override
getBrowerControlType() int
override
getButtonChecked(int buttonPos) bool
override
getButtonEnabled(int buttonPos) bool
override
getButtonIcon(int buttonPos) String
override
getButtonId(int buttonPos) String
override
getButtonText(int buttonPos) String
override
getButtonTooltip(int buttonPos) String
override
getButtonType(int buttonPos) String
override
getCell(int r, int c) ISapObject?
override
getCellChangeable(int r, String c) bool
override
getCellCheckBoxChecked(int r, String c) bool
override
getCellColor(int r, String c) int
override
getCellHeight(int r, String c) int
override
getCellHotspotType(int r, String c) String
override
getCellIcon(int r, String c) String
override
getCellLeft(int r, String c) int
override
getCellListBoxCount(int r, String c) int
override
getCellListBoxCurIndex(int row, String column) String
override
getCellMaxLength(int r, String c) int
override
getCellState(int r, String c) String
override
getCellTooltip(int r, String c) String
override
getCellTop(int r, String c) int
override
getCellType(int r, String c) String
override
getCellValue(int r, String c) String
override
getCellWidth(int r, String c) int
override
getCheckBoxState(String k, String i) bool
override
getColorInfo(int color) String
override
getColSize(int id) int
override
getColumnDataType(String c) String
override
getColumnHeaders() List<String>?
override
getColumnNames() List<String>?
override
getColumnOperationType(String column) String
override
getColumnPosition(String c) int
override
getColumnSortType(String column) String
override
getColumnTitles(String column) List<String>?
override
getColumnTooltip(String c) String
override
getColumnTotalType(String column) String
override
getDisplayedColumnTitle(String c) String
override
getGridLineContent(int chartId, int gridlineId, int lineId) String
override
getIconResourceName(String iconText) String
override
getItemText(String k, String n) String
override
getLineText(int nLine) String
override
getLinkContent(int linkId, int textId) String
override
getListProperty(String p) String
override
getListPropertyNonRec(String p) String
override
getMenuItemIdFromPosition(int pos) String
override
getNodeContent(int nodeId, int textId) String
override
getNodeTextByKey(String k) String
override
getNodeTextByPath(String p) String
override
getObjectTree(String id, {List<String> properties = const []}) String
Returns the SAP object tree in JSON format. id can be "wnd0" for a specific window, or empty "" for the entire session. properties is a list of properties you want to extract (e.g., "Id", "Text", "Type").
override
getRowSize(int id) int
override
getRowTotalLevel(int row) int
override
getSelectedNodes() List<String>?
override
getSymbolInfo(String symbol) String
override
getToolbarButtonChecked(int buttonPos) bool
override
getToolbarButtonEnabled(int p) bool
override
getToolbarButtonIcon(int buttonPos) String
override
getToolbarButtonId(int p) String
override
getToolbarButtonText(int p) String
override
getToolbarButtonTooltip(int buttonPos) String
override
getToolbarButtonType(int buttonPos) String
override
getToolbarFocusButton() int
override
getTreeType() int
override
getUnprotectedTextPart(int part) String
override
getVKeyDescription(int vkey) String
override
gridCount(int chartId) int
override
hardCopy(String filename) String
override
hardCopyToMemory() Uint8List
override
hasCellF4Help(int r, String c) bool
override
headerContextMenu(String n) → void
override
historyCurEntry(int row, String column) String
override
historyCurIndex(int row, String column) int
override
historyIsActive(int row, String column) bool
override
historyList(int row, String column) ISapObject?
override
iconify() → void
override
ignore(int h) → void
override
insertRows(String r) → void
override
invokeValueChange(int series, int point, String xValue, String yValue, bool dataChange, String id, String zValue, int changeFlag) → void
isBreakpointLine(int nLine) bool
override
isCellHotspot(int r, String c) bool
override
isCellSymbol(int r, String c) bool
override
isCellTotalExpander(int r, String c) bool
override
isColumnFiltered(String c) bool
override
isColumnKey(String c) bool
override
isCommentLine(int nLine) bool
override
isFolder(String k) bool
override
isFolderExpandable(String k) bool
override
isFolderExpanded(String k) bool
override
isHighlightedLine(int nLine) bool
override
isProtectedLine(int nLine) bool
override
isSelectedLine(int nLine) bool
override
isTotalRowExpanded(int row) bool
override
isVKeyAllowed(int vKey) bool
override
item(int index) ISapObject?
override
itemContextMenu(String k, String i) → void
override
jumpBackward() → void
override
jumpForward() → void
override
linkCount(int chartId) int
override
listNavigate(String navType) → void
override
lockSessionUI() → void
override
maximize() → void
override
modifiedStatusChanged(bool status) → void
override
modifyCell(int r, String c, String v) → void
override
modifyCheckBox(int r, String c, bool v) → void
override
moveRows(int f, int t, int d) → void
override
multipleFilesDropped() → void
override
nodeContextMenu(String k) → void
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
openConnection(String desc, {bool sync = true, bool raise = true}) ISapObject?
override
openConnectionByConnectionString(String conn, {bool sync = true, bool raise = true}) ISapObject?
override
openFile(String filename) int
override
press() → void
override
pressButton(String k, String i) → void
override
pressButtonCurrentCell() → void
override
pressButtonInGrid(int r, String c) → void
override
pressButtonToolBarControl(String id) → void
override
pressColumnHeader(String c) → void
override
pressContextButton(String id) → void
override
pressEnter() → void
override
pressF1() → void
override
pressF4() → void
override
pressKey(String k) → void
override
pressToolbarButton(String id) → void
override
pressToolbarContextButton(String id) → void
override
pressTotalRow(int r, String c) → void
override
pressTotalRowCurrentCell() → void
override
registerROT() bool
override
release() → void
override
removeContent(String name) → void
override
reorderTable(String permutation) → void
override
resizeWorkingPane(int w, int h, bool f) → void
override
resizeWorkingPaneEx(int w, int h, bool f) → void
override
restore() → void
override
revokeROT() → void
override
sapEvent(String frameName, String postData, String url) → void
override
saveDocument(int cookie, bool changed) → void
override
scrollToLeft() → void
override
select() → void
override
selectAll() → void
override
selectAllColumns() → void
override
selectColumn(String c) → void
override
selectContextMenuItem(String f) → void
override
selectContextMenuItemByPosition(String p) → void
override
selectContextMenuItemByText(String t) → void
override
selectionChanged() → void
override
selectItem(String k, String i) → void
override
selectItemsInStage(String strItems) → void
override
selectMenuItem(String id) → void
override
selectMenuItemByText(String text) → void
override
selectNode(String k) → void
override
selectToolbarMenuItem(String id) → void
override
sendCommand(String command) → void
override
sendCommandAsync(String command) → void
override
sendData(String data) → void
override
sendVKey(int vkey) → void
override
serviceRequestClick() → void
override
setColSize(int id, int size) → void
override
setColumnWidth(String c, int w) → void
override
setCurrentCell(int r, String c) → void
override
setDocument(int index, String document) → void
override
setFocus() → void
override
setKeySpace() → void
override
setRowSize(int id, int size) → void
override
setSelectionIndexes(int start, int end) → void
override
setUnprotectedTextPart(int part, String text) bool
override
showMessageBox(String title, String text, int msgIcon, int msgType) int
override
singleFileDropped(String filename) → void
override
startTransaction(String t) → void
override
submit() → void
override
tabBackward() → void
override
tabForward() → void
override
toString() String
A string representation of this object.
inherited
triggerModified() → void
override
unlockSessionUI() → void
override
unselectAll() → void
override
unselectNode(String k) → void
override
valueChange(int series, int point, String xValue, String yValue, bool dataChange, String id, String zValue, int changeFlag) → void
override
visualize(bool on, String obj) int
override
write(int file, String text) → void
override
writeLine(int file, String text) → void
override

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

connect(ISapApi api) SapObject?