Connector for SAP Business Suite - Developer's Manual - Appendix
API functions simpleRFC
Method |
Comments |
---|---|
Functions for SAP connections | |
boolean simpleRfcConnect(String p_instance, String p_loginmode) |
Establish connection to the SAP system |
boolean simpleRfcClose() |
Close connection to the SAP system |
Functions for BAPI/RFC functions | |
boolean simpleRfcFunctionLoad(String p_function) |
Load BAPI/RFC function |
boolean simpleRfcFunctionExecute(boolean p_commit) |
Execute BAPI/RFC function |
boolean simpleRfcFunctionClose(boolean p_commit) |
End BAPI/RFC function |
Functions for accessing function module parameters | |
boolean simpleRfcSetFocusImportParameter(String p_parameter) |
Focus on import parameter |
boolean simpleRfcSetFocusImportStructure(String p_structure) |
Focus on import parameter |
boolean simpleRfcSetFocusImportTable(String p_table) |
Focus on import table |
boolean simpleRfcSetFocusExportParameter(String p_parameter) |
Focus on export parameter |
boolean simpleRfcSetFocusExportStructure(String p_structure) |
Focus on export structure |
boolean simpleRfcSetFocusExportTable(String p_table) |
Focus on export table |
boolean simpleRfcSetFocusTable(String p_table) |
Focus on table from table parameter |
Functions for accessing tables and structures | |
boolean simpleRfcSetFocusStructureField(String p_fieldname) |
Focus on field from the current structure |
boolean simpleRfcSetFocusTableField(String p_fieldname) |
Focus on field from the current table (rows) |
int simpleRfcTableGetCount() |
Get number of table rows in the current table |
Vector simpleRfcTableGetEntries() |
All table rows in the current table as a quantity |
boolean simpleRfcTableSetLine(Integer p_index) |
Focus on a row in the current table |
boolean simpleRfcTableAddLine() |
Add a row to the current table |
Access to parameters/single values | |
boolean simpleRfcSetParameterValue(String p_value) |
Set the value of the current parameter/field as a string |
boolean simpleRfcSetParameterValue(double p_value) |
Set the value of the current parameter/field as a double |
String simpleRfcGetParameterValue() |
Get the value of the current parameter as a string |
Misc. functions | |
void simpleRfcErrorReset() |
Reset error messages |
String simpleRfcErrorGet() |
Get last error message as a string |
String simpleRfcTrigger(String p_instance, String p_loginmode, String p_function, String p_parameter) |
Call a special RFC module that receives the value of "p_parameter" in the parameter "INPUT". If a parameter "RESULT" is found, a result will be returned. |
API functions for SAP SSO scenarios
Method |
Comments |
---|---|
Functions for SAP connections | |
boolean SAPConnectionCheck(String p_instance, String p_loginmode, boolean p_connect) |
Checks an existing connection to the SAP system "p_instance" in the login mode "p_loginmode". If "p_connect = true" you are not connected yet, a connection will be established. |
boolean SAPConnectionSystemClose(String p_instance) |
Close a connection to the SAP system "p_instance" |
boolean SAPConnectionUserClose(String p_instance) |
Close a connection to the SAP system "p_instance" of the user |
boolean SAPConnectionSystemConnect(String p_instance) |
Create a connection to the SAP system "p_instance" |
boolean SAPConnectWithUserPassword(String p_instance, String p_user,String p_password) |
Create a user connection to the SAP system "p_instance" with username and password |
Functions for personalization functions | |
void SAPUserLoginSetToken(String p_instance, String p_user, String p_token, String p_method) |
Set the credentials via a token for a SAP system manually. The token (e.g. SSO ticket) contains the parameter "p_token". Depending on the type of token, the parameter "p_method" must be set (e.g. "MYSAPSSO2" for SSO ticket) |
void SAPUserLoginSetUserPassword(String p_instance, String p_user, String p_password) |
Set the credentials username/password for a user from the current sessions manually |
boolean SAPUserLoginDelete(String p_instance) |
Reset the credentials for a user (e.g. SSO ticket information, for user switch) |
String ssoPrepare(String p_instance, String p_loginmode, ServerBridgeRequest p_request, boolean p_mapurl) |
Integrating this function in Velocity enables you to use the SAP interface of the utilizing page. SSO initializations are performed and SSO JavaScript functions are made available, for example. The parameter "p_request" expects the transfer of the Velocity $Request object. The mapping of SAP URLS is controlled using the flag "p_mapurl" |
public String ssoIncludeURL(String p_url, String p_width, String p_height, boolean p_mapurl) |
Using this function in Velocity integrates an SAP web interface as an iFrame. The call requires the function "ssoPrepare" on the same page to be able to use the necessary JavaScript functions (e.g. set SAP ticket, initialize URL mapping). The URL mapping is activated via the active flag "p_mapurl". |
public String ssoIXLoginUserPasswordSession(Session p_session, String p_user, String p_password, String p_domain, String p_method) |
This function enables you to log in to the Intrexx portal via an Intrexx page (anonymously). Once the login is successful, a session ID will be returned. |
public void ssoMapUrlDeleteCache() |
Deletes the cache of URL mappings (requires administrative changes) |
JavaScript functions for SAP SSO scenarios
Method |
Comments |
---|---|
function biasap_start_transaction_url(p_instance, p_loginmode, p_transaction, p_extra, p_skip, p_url) |
Starts the SAPGUI for the specified SAP data source as a transaction in the given login mode (usually "user"). Additional parameters (e.g. fields to be populated) are defined in "p_extra". The start screen can be skipped with "p_skip = "true"". The flag "p_url" controls whether the portal URL needs to be evaluated (e.g. different SAP router strings). To do this, the page needs to have been initiated with "ssoPrepare" in Velocity. |
function biasap_start_transaction(p_instance, p_loginmode, p_transaction, p_extra, p_skip) |
Like the function "biasap_start_transaction_url" but without URL evaluation |
function biasap_start_report_url(p_instance, p_loginmode, p_report, p_variant, p_url) |
Starts a report in the specified SAP system with or without variants. The flag "p_url" controls the adjusting of the path to the SAP system via the portal URL. |
function biasap_start_report(p_instance, p_loginmode, p_report, p_variant) |
Like the function "biasap_start_report_url" but without URL evaluation |
function biasap_set_cookie( name, value, expires, path, domain, secure ) |
Set a cookie (e.g. for SSO) |
function biasap_get_cookie( name ) |
Get a cookie |
function biasap_delete_cookie( name, path, domain ) |
Delete a cookie |
function biasap_set_ticket(p_message, p_cancel_on_error) |
Set the SSO ticket for SAP web interfaces. If identifying a valid SSO token is not possible and an error message is available via "p_message", this error message will be displayed. The parameter "p_cancel_on_error" controls whether a defective ticket should cancel the processing of the script and also subsequent scripts (e.g. for buttons). This means the SAP web interface will not be displayed of the ticket is erroneous. |
function biasap_call_sapurl(p_button, p_url) |
Calls an SAP web interface from its button and can be used in button events (e.g. onclick). "p_button" contains a reference to the button. The URL to the SAP site may already have been defined as an external link destination. "p_url" would overwrite this destination. Placeholders (e.g. "<sapserver>"), which were triggered by a previous "ssoPrepare()" can be used in the URL. |
API functions for the SAP OCI interface
Method |
Comments |
---|---|
boolean ociInit(Session p_session, ServerBridgeRequest p_request, String p_loginmethod) |
This method initializes the SAP OCI functions of the Connector for SAP Business Suite. This method is intended for integration on a view page (Velocity). The current session and the request are transferred. The third parameter defines which authentication method should be used. Default is "PlainAuth" which has to be configured in the portal. A login to the portal is performed with the transferred parameters and the received parameters are checked for validity for SAP OCI. The result is boolean. If the value is "true", then the login was successful. If the value was "false", then either the login was incorrect or the transferred parameters are not valid for SAP OCI. |
boolean ociCheck() |
This function checks whether a valid SAP OCI session is active. Use this function to, for example, adjust link destinations in the application if the application is not used for SAP OCI scenarios. |
String ociStatus() |
This function returns an HTML text that contains the current OCI information. The function can be used to present technical OCI information quickly. |
String ociGetInfo(String p_info) |
With this function, a specific value can be identified from the OCI data. With "$!GSAP.ociGetInfo("vendor")" for example, the vendor number can be read and used as a suggested value for edit fields. Possible values for "p_info" are:
|
String ociCheckout(String p_instance) |
This function is required for the last page where the basket needs to be compiled and sent to the SAP system. Using this, specific functions for the SAP OCI interface are provided automatically (e.g. JavaScripts, initializations). A configured SAP data source is expected as the parameter. In systems without a linked SAP system, "sapoci" should be entered here. |
The API function "ociCheckout()" provides additional JavaScript functions:
Method |
Comments |
---|---|
sapoci_set_returnurl(p_button) |
Sets the return address after sending. A button is expected to be transferred. A button is expected to be transferred. |
sapoci_addItemMain(row, quantity, unit, articleid, description) |
Generates the most important transfer data for a basket item (of the line "row") |
sapoci_addItemField(row, name, value) |
Generates more data for a basket item. In "name", the technical name of the OCI specification is expected (e.g. "VENDORMAT") |
sapoci_addLongText(row, value) |
Generates a longtext at the position |
sapoci_addFormField(name, value) |
Generates a another transfer field stating the technical name |
sapoci_send() |
Send the data packet to the caller. It is possible to intercept errors with try...catch |
Available resources for the Connector for SAP Business Suite
Category |
Technical name |
Use |
---|---|---|
Velocity script* |
biasap_shortcut.vm |
To initialize the SAPGUI from the portal |
JavaScript** |
sap_utils |
Diverse JavaScripts with utility functions |
sapsso |
Diverse JavaScript functions for SSO with SAP |
* is automatically intalled in the portal directory via the SAP Connector API method "install(boolean p_check, boolean p_full_log)".
** can be integrated via the SAP API method "getJavascriptInclude(String)".
Expert attributes for SAP external data groups
The following expert attributes are to some extent automatically set by selecting the datahandler and can be adjusted later. Some of the parameters are optional and cause specific behaviors.
Attributes |
Data type |
Level* |
Use |
---|---|---|---|
bia-timezone |
String |
DQ, DG |
Adjust the timezone for time stamp fields. SAP systems often run in the CET timezone, Intrexx in UTC on the server. This causes displacements when times are being displayed. However, it is better to define the timezone in the configuration of the data source (attribute in the file sap.cfg). |
bia-loginuser |
String |
DG |
Login mode for the SAP access (<system>|<user>|<mixed>) |
bia-handler |
String |
DG |
Handler for SAP access (e.g. "GENERIC_VIEW", "DEVELOPER_API") |
bia-variant |
String |
DG |
Variant of the SAP handler (e.g. "DEFAULT"). Can be used for a divergent identification of the SAP datahandler |
bia-param1...bia-param5 |
String |
DG |
Option to transfer controlling parameters to the SAP handler. The values are available in the CONTROL structure in the SAP datahandler. |
bia-abapdebug |
String |
DG |
Option to activate the debugging for the pertaining external data group only. "true" activates the debugging. SAP debugging is only possible if the portal is on your own computer and SAPGUI is installed. |
bia-forcefilter |
Boolean |
DG |
When accessing tables, you can define that data should only be identified if a filter is not active with this parameter (active = "true"). This prevents hidden tables from being accessed in the SAP system in conjunction with dynamic filters. |
bia-trace |
Boolean |
DG |
Activates the trace for this data group. Extended messages for this will be provided in the logfile in doing so. |
bia-requiredbl |
Boolean |
DG |
Contains a specification of which version of the business logic is required to avoid errors in advance (use of new features). |
bia-simplekey |
Boolean |
DG |
bia-simplekeyBooleanDG For SAP data groups with complex keys (e.g. VBAP), only a count from 1...n is used as the key for simplification reasons. A link to a details page is not possible here. However, this option can simplify access to cells within a free layout table. |
bia-usecache |
Boolean |
DG |
If this option is acitvated, the data will be cached on the server. If the data in the SAP system is changed, the old data will still be displayed in the portal. The option is especially well-suited for customizing tables that are used as references (performance). The server-side cache can be reset by closing the connection to SAP. |
bia-newrec_getdetail |
Boolean |
DG |
This option is only relevant in the datahandlers for the Developer API. The SAP API method "Get_Detail" is not usually requested for new data records. However, this can be forced with this option to preallocate values from SAP. |
bia-newrec_delrecid |
Boolean |
DG |
This option is also only relevant within the Developer API. New data records are generally given the ID -1 by Intrexx. With this option, this default key is deleted. In SAP it would then be requestable with "if iv_key eq space". |
bia-nolangtab |
Boolean |
DG |
As an alternative to the corresponding bia-variant, this option activates that the text table is not determined automatically in SAP. This allows problem cases such as the table MARA to be displayed in the portal with reasonable effort. |
bia-htmloutput |
Boolean |
DG |
This option activates that specific data is transferred as HTML code instead of normal text. This option is, for example, used in the datahandler "Generic Report" to transfer an SAP report in the SAP-typical colors. |
bia-singleline |
Boolean |
DG |
This option activates the transfer of longer texts as longtext instead of multiple lines. This option is used in the datahandler "Generic Report". The report is therefore not transferred in lines and needs to be presented as a free layout table. A string field contains the entire report with this option. |
bia-numkeylen |
Integer |
DG, DF |
This option activates an automatic mapping of SAP-typical numberical keys. Via the defined length, the logic of the Connector for SAP Business Suite knows that this field needs to be completed with leading zeroes when transferrring to SAP (alphanumerical keys are an exception). These fields are presented without the leading zeroes in the portal. If this option is implemented at the data group level, the key is automaticall treated as a numerical SAP ID. |
bia-timefield |
String |
DF |
This option tries to solve the problem that time stamps usually are not used in SAP but separate fields for date and time instead. Whereas Intrexx uses time stamps and additionally can present these as "date only" or "time only". Using this option, the data field from the SAP system is informed as to which SAP field contains the corresponding time. The SAP date field becomes the time stamp in doing so and can be used as such (e.g. in calendar controls). When presenting times, the time is often displaced (e.g. 2h). This is because the SAP server and the portal run in different timezones (CET vs UTC). That is way, the SAP timezone can be configured in the data source or via bia-timezone. This function should also work the other way round (writing time stamps to two separate SAP fields). The field for the SAP date is key here as well. The corresponding time field may need to be available on the pages (hidden), however. |
bia-mapcodefield |
Boolean |
DF |
Encodings are often used in SAP systems (typical characters 1...6 fields; e.g. VBAK-VBTYP). These are transferred as text - meaning as SAP code - and cannot be used by the user therefore. There is of course the option to connect the corresponding customizing table in a language-dependent manner as a reference. However, this can be very complex in some circumstances. A simple option is available: the datahandler "Generic View" tries to identify suitable texts from the configured search help or other SAP mechanisms. This approach cannot be used everywhere (e.g. in more complex search helps with multiple keys). |
bia-mapurl |
Boolean |
DF |
With this option, URLS can be mapped whilst taking the portal URL into account. This is required for hiding the real URL on the SAP systems (calling archived documents), for example. An internal access can be mapped from "sapsystem.internesicht.net" to "archiv.externesicht.com" as soon as the user uses the exernal access to the Intrexx portal. |
bia-maptouppercase |
Boolean |
DF |
Makes the value upper-case. Useful in SAP matchcode fields. |
bia-maptolowercase |
Boolean |
DF |
Makes the value lower-case. |
* DS – Data source, DG – Data group, DF - Data field
Important SAP transactions
The following table contains an overview of the most important transactions in conjunction with the Intrexx portal. These transactions are not available to all users in some cases (insufficient permissions).
Category |
Transaction code |
Use |
---|---|---|
Tables/Views |
SE16 |
Data browser: Display table contents |
SE11 |
Dictionary: Display technical information about dictionary objects (e.g. tables, views) |
|
SAP configuration |
SPRO |
Implementation guide: Central SAP customizing |
SM30 |
Table maintenance of configuration tables |
|
SM59 |
Maintain RFC destinations: Configure access to external systems |
|
SICF |
Internet connectivity: Released services |
|
Debugging |
ST22 |
Dump analysis: Debugging after cancellations |
SM21 |
System log: Debugging for system problems |
|
SLG1 |
Application log: Protocols for many applications |
|
SMQ1, SMQ2, SM58 |
Data exchange with external systems with qRFC and tRFC |
|
Users and permissions |
SU01 |
User maintenance |
SU21 |
Maintenance of permission objects: Generate with the function "SAP_ALL" among others |
|
PFCG |
Roles and permissions |
|
ST01 |
Permissions trace |
|
SM04 |
Users online |
|
SMGW |
Logged-in remote systems |
|
Development |
SE80 |
ABAP Workbench: Central development transaction |
SE38, SA38 |
ABAP reports: Development and start |
|
SE37 |
Function modules/BAPI: Develop, test |
|
BAPI |
BAPI browser |
|
SWO1 |
SAP BusinessObjects |
More information
SAP Trust Manager SSO configuration
API description Part 1 - Overview
API description Part 2 - SAP Portal Plugin
API description Part 3 - Implementing custom processing modules
API description Part 4 - Sample coding
Developer's Manual Part 2 - Integration scenario, SAP external data group
Developer's Manual Part 3 - Scripting integration scenario
Developer's Manual Part 4 - Personalized SAP Access / Single Sign On (SSO)