SapQuery Component
Properties Methods Events Configuration Settings Errors
The SapQuery provides an easy way to execute queries on a remote R/3 (NetWeaver) system.
Syntax
TibiSapQuery
Remarks
The purpose of this component is to make executing a query on a SAP server extremely simple.
There are just a few steps you need to make before you can begin executing a query: first you set your connection credentials and connect to the SAP system (see Setting Up a Connection with a SAP System for details). Next set the QueryName as well as the UserGroup and WorkSpace and then call GetQueryInfo to populate the QueryFields and Selection Parameters. Once populated, you can then set the Selection Parameters and QueryFields you want and then call ExecuteQuery. This will populate the Query Result Rows, and the QueryResultRowIndex and QueryResultColumns can be used to access the results.
The following example shows how to execute a query on the SAP system. First we provide login credentials and connect.
SapClient1.SapConnectionConnectionType = ctNetWeaver SapClient1.SapConnectionClient = "000" SapClient1.SapConnectionDestination = "" SapClient1.SapConnectionHost = "localhost" SapClient1.SapConnectionUser = "BCUSER" SapClient1.SapConnectionPassword = "minisap" SapClient1.SapConnectionSystemNumber = 0 SapClient1.OpenConnection()Note that the credentials above are for connecting to a trial NetWeaver installation. You will need to provide your own credentials when connecting to your own SAP installation.
Now we need to specify the query we want to execute and get the information about the query from the SAP system using
the method GetQueryInfo.
SapQuery1.UserGroup = "/SAPQUERY/QD"; SapQuery1.QueryName = "CONNECTIONS_02"; SapQuery1.WorkSpace = SapqueryWorkSpaces.wsGlobalArea; SapQuery1.GetQueryInfo();Now that you have retrieved the structure of the query, you may set the Selection Parameters as you see fit and then call ExecuteQuery.
SapQuery1.MaxRows = 100; SapQuery1.SelectionParameterIndex = 0; SapQuery1.SelectionParameterRanges.Add(new QueryRange("NW", "AC", RangeOptions.roBetween, Signs.snInclude)); SapQuery1.ExecuteQuery();The results of executing the query "CONNECTIONS_02" are now contained in the Query Result Rows starting at QueryResultRowIndex 0, and may be accessed like this:
for (int i = 0; i < query.QueryResultRowCount; ++i) { SapQuery1.QueryResultRowIndex = i; foreach (SapColumn col in SapQuery1.QueryResultColumns) { Console.Write("{0}\t", col.Value); } Console.WriteLine(); }The above code will output something very similar to this:
Dependency Notes
If the component is not configured to use the SOAP interface, it will use the sapnwrfc.dll, librfc32.dll, librfc32u.dll, or the Java Connector (JCo) to connect to the SAP system. Although the Java Connector is only available when programming in Java on Windows.
The NetWeaver RFC SDK (sapnwrfc.dll) offers both a 32 bit and 64 bit version. Likewise, the SAP RFC SDK offers as 32 bit and 64 bit version of both a unicode (librfc32u.dll) and non-unicode (librfc32.dll) library.
The NetWeaver RFC SDK will be used if the SapConnectionType is set to ctNetWeaver (0). The following libraries from the NetWeaver RFC SDK must be available at runtime:
- sapnwrfc.dll
- icudt30.dll
- icuin30.dll
- icuuc30.dll
- libicudecnumber.dll
- libsapucum.dll
The non-unicode library will be used if the SapConnectionType is set to ctClassic (1). This simply requires that the librfc32.dll be placed in a location that is accessible at runtime. (0).
The unicode library will be used if the SapConnectionType is set to ctClassicUnicode (2). The following libraries from the SAP RFC SDK must be available at runtime:
- librfc32u.dll
- icudt30.dll
- icuin30.dll
- icuuc30.dll
The Java Connector (JCo) will be used if the SapConnectionType is set to ctJavaConnector (4). In order to use this, you must first add the sapjco3.jar file to your project.
The 32 bit and 64 bit versions do not require any special settings within the components. The only requirement is that your application target the same platform as the DLL.
Property List
The following is the full list of the properties of the component with short descriptions. Click on the links for further details.
Connected | Indicates whether or not the component is connected to the SAP system. |
MaxRows | Max number of rows in the query result. |
QueryFieldCount | The number of records in the QueryField arrays. |
QueryFieldDecimals | The decimal value of query result property. |
QueryFieldDescription | The description of query result property. |
QueryFieldLength | The length of the data in the query result property. |
QueryFieldName | The name of query result property. |
QueryFieldType | The ABAP type of query result property. |
QueryMetaDataCount | The number of records in the QueryMetaData arrays. |
QueryMetaDataQueryName | The name of query retrieved from the SAP server. |
QueryMetaDataUserGroup | The user group retrieved from the SAP server. |
QueryMetaDataVariant | The variant value of the query retrieved from the SAP server. |
QueryName | The name of the query. |
QueryResultColumnCount | The number of records in the QueryResultColumn arrays. |
QueryResultColumnType | The type of the column. |
QueryResultColumnLength | The maximum length of the data stored in Value . |
QueryResultColumnName | The name of the column. |
QueryResultColumnTableIndex | This should be set if the ColumnType is set to ctTable. |
QueryResultColumnValue | This is the actual data contained in the column. |
QueryResultRowCount | The number of rows returned. |
QueryResultRowData | The raw binary data of the current row. |
QueryResultRowIndex | The index of the current row in the query results. |
QueryUserGroups | The user groups for the query. |
SapAttributeApplicationName | The name of the calling program. |
SapAttributeClient | The client authenticating to the SAP system. |
SapAttributeDestination | Destination that you are currently connected to. |
SapAttributeKernelVersion | The release version of the kernel. |
SapAttributeLanguage | One character code indicating the language of the system. |
SapAttributeLanguageCode | Two-character ISO 639-1 code indicating the language of the system. |
SapAttributeOwnCodePage | The code page of your system. |
SapAttributeOwnHost | The name of the host you're connected to. |
SapAttributeOwnType | The type of your own system. |
SapAttributeOwnVersion | The release version of your system. |
SapAttributePartnerCharSize | The length of a character on the partner's system. |
SapAttributePartnerCodePage | The code page of your partner's system. |
SapAttributePartnerHost | Partner host name. |
SapAttributePartnerType | The type of the partner's system. |
SapAttributePartnerVersion | The release version of the partner's system. |
SapAttributePasswordState | The state of the password. |
SapAttributeReserved | This property may contain an additional 160 bytes of data which is reserved for future new attributes returned by the R/3 server. |
SapAttributeRole | Indicates whether you're connected as a client or server application. |
SapAttributeSystemName | The name or id of the R/3 system you're currently connected to. |
SapAttributeSystemNumber | The system number of the R/3 server you're connected to. |
SapAttributeTraceOn | Indicates whether debug tracing is active or not. |
SapAttributeUser | The login credential which was used to connect to the R/3 server. |
SapConnectionClient | The client authenticating to the SAP system. |
SapConnectionType | Specifies how the connection is made to the SAP server. |
SapConnectionDestination | Reference to an existing destination that is specified in a local saprfc. |
SapConnectionGatewayHost | The gateway host you wish to connect to. |
SapConnectionGatewayService | The gateway service you wish to connect to. |
SapConnectionHost | Host name of the target system. |
SapConnectionLanguage | The language value to be used when connecting SAP system. |
SapConnectionPassword | The password used to authenticate to the SAP system. |
SapConnectionSoapURL | The URL of the SOAP service on the SAP system. |
SapConnectionSystemNumber | The number by which the target system is defined. |
SapConnectionUser | The user that is authenticating to the SAP system. |
SelectionParameterCount | The number of the selection parameters. |
SelectionParameterDataType | The data type of the current selection parameter. |
SelectionParameterDescription | The description of the current selection parameter. |
SelectionParameterFieldName | The field name of the current selection parameter. |
SelectionParameterIndex | The index of the current selection parameter. |
SelectionParameterLength | The length of the current selection parameter. |
SelectionParameterName | The name of the current selection parameter. |
SelectionParameterRangeCount | The number of records in the SelectionParameterRange arrays. |
SelectionParameterRangeHighValue | The high value of the query range. |
SelectionParameterRangeLowValue | The low value of the query range. |
SelectionParameterRangeOption | The valid range options are as follows: roEquals (0)\011\011\011\011\011\011\011\011 Equal to roNotEquals (1)\011\011\011\011\011\011\011 Not equal to roGreaterThan (2)\011\011\011\011\011\011 Greater than roLessThan (2)\011\011\011\011\011\011\011 Less than roGreaterThanOrEqualTo (4) \011 Greater than or equal to roLessThanOrEqualTo (5)\011\011\011 Less than or equal to roBetween (6)\011\011\011\011\011\011\011\011 Between roNotBetween (7)\011\011\011\011\011\011 Not between roMatchesPattern (8)\011\011\011\011 Matches pattern roNotMatchesPattern (9)\011\011\011 Does not match pattern . |
SelectionParameterRangeSign | The sign of query range. |
SelectionParameterType | The kind of the current selection parameter. |
SSLAcceptServerCertEncoded | The certificate (PEM/base64 encoded). |
SSLCertEncoded | The certificate (PEM/base64 encoded). |
SSLCertStore | The name of the certificate store for the client certificate. |
SSLCertStorePassword | If the certificate store is of a type that requires a password, this property is used to specify that password in order to open the certificate store. |
SSLCertStoreType | The type of certificate store for this certificate. |
SSLCertSubject | The subject of the certificate used for client authentication. |
SSLServerCertEncoded | The certificate (PEM/base64 encoded). |
Timeout | Length of time in seconds the component waits for a response from the SAP system. |
UserGroup | The name of the user group. |
Variant | Variant value of the Query. |
WorkSpace | Work Area of the Query. |
Method List
The following is the full list of the methods of the component with short descriptions. Click on the links for further details.
AbortConnection | Used to terminate a connection to the SAP system. |
CloseConnection | Closes a connection to the SAP system. |
Config | Sets or retrieves a configuration setting . |
DoEvents | Processes events from the internal message queue. |
ExecuteQuery | Execute the query. |
GetAttributes | Retrieves attributes about the SAP system you're currently connected to. |
GetQueryInfo | Get Query information. |
Interrupt | Interrupt the current method. |
OpenConnection | Opens a connection to the SAP system. |
Reset | Resets the component to its initial state. |
RetrieveQueries | Retrieves queries from the user group. |
RetrieveUserGroups | Retrieves user groups. |
Event List
The following is the full list of the events fired by the component with short descriptions. Click on the links for further details.
Error | Information about errors during data delivery. |
SSLServerAuthentication | Fired after the server presents its certificate to the client. |
SSLStatus | Shows the progress of the secure connection. |
Status | Detailed status messages for debugging purposes. |
Configuration Settings
The following is a list of configuration settings for the component with short descriptions. Click on the links for further details.
LogPerformanceData | Logs the performance information when a function is called. |
LogRawData | Logs the raw data being sent and received. |
ParseTables | Indicates whether to parse tables into rows and columns. |
ResponseParamText[i] | The value of the PARAMTEXT for the specified reponse parameter. |
RequestParamText[i] | The value of the PARAMTEXT for the specified request parameter. |
Group | The logon group. |
MessageServer | Service name of load balancer service. |
SncLibPath | The external security product's library. |
SncMode | The SNC activation indicator. |
SncName | The Initiator's SNC name. |
SncPartnerName | The communication partner's SNC name. |
SncQop | The quality of protection level. |
SystemID | The system ID of the SAP system. |
LocalHost | The IP address of the local interface. |
ProxyAutoDetect | Whether or not to automatically detect and use proxy system settings, if available. |
ProxyAuthorization | The authorization string to be sent to the proxy server. |
ProxyAuthScheme | The authorization scheme to be used for the proxy. |
ProxyPassword | A password if authentication is to be used for the proxy. |
ProxyPort | Port for the proxy server (default 80). |
ProxyServer | Name or IP address of a proxy server (optional). |
ProxyUser | A user name if authentication is to be used for the proxy. |
FirewallAutoDetect | Tells the component whether or not to automatically detect and use firewall system settings, if available. |
FirewallHost | Name or IP address of firewall (optional). |
FirewallPassword | Password to be used if authentication is to be used when connecting through the firewall. |
FirewallPort | The TCP port for the FirewallHost;. |
FirewallUser | A user name if authentication is to be used connecting through a firewall. |
FirewallType | Determines the type of firewall to connect through. |
CodePage | The system code page used for Unicode to Multibyte translations. |