sap_connect 0.1.0 sap_connect: ^0.1.0 copied to clipboard
provides connection to the SAP server, making requests to the SAP server, receiving and processing data from the SAP server in response to requests
sap_connect - the package is designed to establish a connection and then execute queries to the SAP system #
Visually represents a screen for setting up a connection and logging to SAP system
Connection settings are saved on the device
Provides connection and work in the language chosen by the user (internationalization)
After the connection is established, it allows you to perform queries to the SAP server
To make this package work, you must install to the SAP server package YDK_WEBS.
The package comes with a simple but fully working example, see the folder example\sap_flights_simplest_demo
To simplify the creation of the application and all the necessary settings, you can use the class SapApplication
The main settings of the application are stored in the class SapStartParams
Application debugging can be performed without the SAP server, but with simulating server interaction, see global variable [kFakeHandler] in sap_connect.dart
Use the methods to execute server requests: SapConnect().fetchPostWS(...) or SapConnect().fetchPost(...).
Difference between SapConnect().fetchPostWS(...) and SapConnect().fetchPost(...) methods:
- SapConnect().fetchPostWS(...) Making a request to the server with a blocking screen output, the WaitScreen obscures the program screen during the execution and processing of the request. During execution of the processing of query results, additional requests to the server can be executed using fetchPost.
- SapConnect().fetchPost(...) Just executes a request to the server, returns Future on the result of execution
general development approach:
on the SAP server, create the class inherited from class YDK_CL_WEBS_ACTION
and make a class-method in it class:
ABAP
CLASS <name of class> DEFINITION inheriting from YDK_CL_WEBS_ACTION....
PUBLIC SECTION.
CLASS-METHODS <name of method>
IMPORTING
!action_data TYPE string " incaming query, usually a string JSON
EXPORTING
!return_status TYPE string " return status of processing result
!return_data TYPE string. " returned data, most often a string JSON
ENDCLASS.
CLASS <name of class> IMPLEMENTATION.
METHOD <name of method>.
* In order to make it easier to work with request data, load the request into the variable with a structure corresponding to the request structure (query)
from_json( EXPORTING json = action_data CHANGING data = query ).
* Process the request, fill in the structure for returning data (ret_data)
* Return the processing result (ret_data)
get_json( EXPORTING data = ret_data IMPORTING return_status = return_status return_data = return_data ).
ENDMETHOD.
ENDCLASS.
Call the created method from the mobile application:
Dart
SapConnect().fetchPostWS(
handlerType : HandlerType.Method,
handlerID : <name of class>,
action : <name of method>,
actionData : query, // usually a string JSON
context : context,
postCallback : (Post post) {
if (post.returnStatus != PostStatus.OK) return;
setState(() {
// processing query results saved in post.returnData
});
},
);
the status returned by the SAP server (return_status) is a string, two values are reserved
- "OK" - in dart constant PostStatus.OK; in abap constant YDK_CL_WEBS_ACTION=>STATUS_OK - request processing was successful
- "ERR" - in dart constant PostStatus.Error; in abap constant YDK_CL_WEBS_ACTION=>STATUS_ERR - the processing was NOT successful, in this case the description of the error is in post.returnData, simple string not JSON
any other values can be used by the programmer as he pleases