Beruflich Dokumente
Kultur Dokumente
Table of Contents
1
4.1
4.2
4.3
9.1
9.2
9.3
cmdScheduleJob. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.4
cmdGetQueueStatistics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
9.5
cmdSetQueueTimedOut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.6
cmdGetQueueSchedules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
9.7
cmdKillJobSchedules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
9.8
cmdUpdateNodeLanguage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
9.9
cmdGetUser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
9.10
cmdGetSystemInformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
9.11
cmdCommands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
10
Security Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
10.1
Authorizations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
10.2
Roles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
10.3
Authentication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
10.4
10.5
Users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
11
Best Practices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
This document describes the concept and the steps an application programmer has to follow to load binary
files into SAP HANA with the file loader functionality. Afterwards, it is possible to run services like search on
this content.
Note
Right after reading this document we advise you to read through the Enabling Search section in the SAP
HANA Developer Guide. This section provides you with information about how to build SQL search queries
to perform searches on the loaded file contents.
The file loader is a set of HTTP services that you can use to develop your own applications to search in file
contents. The file loader package also contains a basic example application with monitoring and statistical
information about the current file loader schedule.
Note
The file loader supports the loading of file contents for search. To also enable properties and metadata of
files for search, you can extend the node table with additional columns and follow the steps described in the
Enabling Search section in the SAP HANA Developer Guide.
Note
The file loader does not support the loading of files that are only accessible using HTTPS or that require
HTTP authentication.
Related Information
SAP HANA Developer Guide This guide explains how to build applications using SAP HANA, including how to
model data, how to write procedures, and how to build application logic in SAP HANA Extended Application
Services (SAP HANA XS).
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
The file loader is used to load the text representation of files that are stored on HTTP servers into the SAP
HANA database.
The following diagram shows the architecture of the file loader component in SAP HANA.
Technically, the file loader is an SAP HANA XS application that is shipped as a delivery unit.
The binary file content from the HTTP server is converted and stored as a textual representation in the node
table in the SAP HANA database. The loading can be asynchronous and in parallel. The queue table is used to
track the file loading process.
The file loader exposes an HTTP service API in REST format that can be accessed from any HTTP client.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
To use the file loader within your own application, you need to work through the following process.
Prerequisites
You have enabled the job scheduling in SAP HANA XS.
Procedure
1.
2.
3.
4.
5.
6.
7.
Related Information
Tutorial: Setting up the File Loader Example Application [page 7]
This tutorial teaches you how to set up the file loader component to be used in an example application.
The Node Table [page 15]
The application uses a database table that stores the text content of the processed files.
The Queue Table [page 16]
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
The queue table is used to track the file loading process of an entry in the node table.
The Root Service [page 18]
The root service is used to obtain the CSRF token.
List of Available Commands [page 19]
The file loader API supports various commands using HTTP GET or POST.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Context
Before you can use the file loader example application, you have to install and configure the component and
set up the user management with minimal authorizations. Then, based on this configuration, you can try out
the example UI that comes with the file loader component.
Note
To perform the set-up steps, you need a user with system administrator permissions and access to the SAP
HANA XS Administration Tool.
Procedure
1.
sap
bc
ina
fileloader
job
package.
The installation creates a new schema called SAP_INA_FILELOADER with the tables
sap.bc.ina.fileloader.db::INA_FILELOADER_JOB_SCHEDULES_T6 and
sap.bc.ina.fileloader.db::INA_FILELOADER_JOB_SCHEDULES_V1.
2.
Note
Job scheduling in the SAP HANA XS is not enabled by default. It has to be enabled by the system
administrator.
For information about how to enable job scheduling in SAP HANA XS, see the SAP HANA
documentation.
Once job scheduling is enabled, create a new section, scheduler, in the xsengine.ini file. Add a new
property named enabled and set the value to true.
3.
Note
Our example uses users with minimal authorizations.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
In the SAP HANA studio, execute the example setup SQL script to set up users, authorizations, and
example database tables. For more information, see the Related Information section.
The script creates the following users and data:
The access user (INA_FL_TEST_ACCESS), who calls the HTTP services to schedule the file loading
process.
The job access user with minimal authorizations (INA_FL_TEST_JOB_ACCESS) who is used in the
The job admin user (INA_FL_TEST_JOB_ADMIN) who is used in the SQL connection (xssqlcc).
Example tables.
background job.
4.
Note
For this step, you need a user with the sap.bc.ina.fileloader.roles::Access role.
Start the SAP HANA XS Administration Tool and activate the file loader job in the Application Objects tree
under
sap
bc
ina
fileloader
job
job01.xsjob
package=sap.bc.ina.fileloader.job&object_name=job01&object_type=xsjob).
To activate the job, mark it as <Active> and enter the job access user (INA_FL_TEST_JOB_ACCESS) in
the <User> field. Save the changes.
5.
Note
For this step, you need a user with the sap.bc.ina.fileloader.roles::Access and
sap.hana.xs.admin.roles::JobAdministrator roles.
You are still in the SAP HANA XS Administration Tool. In the Application Objects tree, navigate to the file
loader SQL connection located under sap bc ina fileloader job ileloader.xssqlcc
http(s)://<SAP HANA host>:<SAP HANA port>/sap/hana/xs/admin/?
(direct link:
package=sap.bc.ina.fileloader.job&object_name=fileloader&object_type=xssqlcc) and
enter the job admin user (INA_FL_TEST_JOB_ADMIN) in the <User> field. Save the changes.
6.
7.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
The following example SELECT statement shows how to search in the file content of the example node
table. The SELECT statement returns the URL, snippets, and highlighted content.
SELECT URL, SNIPPETS("CONTENT"), HIGHLIGHTED("CONTENT") FROM
SAP_INA_FILELOADER_EA_NODE WHERE CONTAINS("CONTENT",'search term')
8.
When you have finished running your tests with this tutorial, you should clean up your system.
Run the example clean-up SQL script to remove all tutorial data and users generated in the previous steps
and to return to your previous system state.
Related Information
Using the File Loader Example Application [page 11]
The file loader component contains a small browser-based demo UI to show what you can develop and how
you can use the file loader's capabilities.
The Setup SQL Script for the Example Application [page 9]
The setup SQL script creates the users and the example database tables for the file loader example
application tutorial.
The Clean-Up SQL Script for the Example Application [page 11]
The clean-up SQL script removes the users and tables from the file loader example application tutorial,
connects with the access user, and deletes the tables.
4.1
The setup SQL script creates the users and the example database tables for the file loader example application
tutorial.
-- Set up the users with minimal authorizations for the file loader
-- tutorial
-- The following users are created:
-- 1) The access user calls the HTTP services to schedule the file loading
-process. This user also owns the example node and queue table in the user's
-schema. [INA_FL_TEST_ACCESS]
-- 2) The job access user is used within the background job. This user requires
-the same object authorizations as all other access users that are using
-the file loader. [INA_FL_TEST_JOB_ACCESS]
-- 3) The job admin user is used in an SQLconnection (xssqlcc) that is used for
-scheduling a job dynamically in the HTTP service.
-This user requires only one application authorization.
-[INA_FL_TEST_JOB_ADMIN]
-- Execute this script in the SAP HANA studio as a system administrator.
-- After executing this script, go the HANA XS administrator UI and configure
-- the SQL connection and job
-- Execute the teardown script to delete the users and tables
CONNECT <system administrator user> PASSWORD <password of system administrator>;
;
-- Create the file loader access user, this is the end user to be used
-- in the example
DROP USER INA_FL_TEST_ACCESS CASCADE;
CREATE USER INA_FL_TEST_ACCESS PASSWORD <password of access user>;
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
10
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
4.2
The clean-up SQL script removes the users and tables from the file loader example application tutorial,
connects with the access user, and deletes the tables.
-- Clean up the users and tables of the fileloader tutorial
-- Connect with the access user and delete the tables
CONNECT INA_FL_TEST_ACCESS PASSWORD <password of access user>;
DROP TABLE SAP_INA_FILELOADER_EA_NODE CASCADE;
DROP TABLE SAP_INA_FILELOADER_EA_QUEUE CASCADE;
-- Connect with the system administrator and delete the users
CONNECT <system administrator user> PASSWORD <system administrator password>;
-- Delete the fileloader access user, this is the end user to be used
-- in the example
DROP USER INA_FL_TEST_ACCESS CASCADE;
-- Delete the user that is used in the job schedule
DROP USER INA_FL_TEST_JOB_ACCESS CASCADE;
-- Delete the job admin user that is used in the sql connection of
-- the job sap.bc.ina.fileloader.job.xssqlcc
DROP USER INA_FL_TEST_JOB_ADMIN CASCADE;
4.3
The file loader component contains a small browser-based demo UI to show what you can develop and how
you can use the file loader's capabilities.
Context
The file loader example application is an implementation of the file loader functionality using JavaScript with a
web frontend. You can enter a number of URLs for documents that you want to upload into SAP HANA with the
file loader. You can then search for content inside the uploaded documents.
Procedure
1.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
11
Open your browser and start the file loader example application by entering the following
address: /sap/bc/ina/fileloader/app/example/webfileloader.html.
Log in with the access user INA_FL_TEST_ACCESS. On the initial screen, there is a text field containing
URLs. Use copy and paste to replace these URLs with the URLs for your own documents.
Note
Only HTTP URLs without authentication and proxy are supported.
2.
Description
Number of Packages
Number of Schedules
Schedule Timeout
Queue Table
<Schema_Name>.<Table_Name>
The default for the schema is the current user, but
you can manipulate this to upload data for another
user.
Node Table
<Schema_Name>.<Table_Name>
Te default for the schema is the current user, but
you can manipulate this to upload data for another
user.
3.
Note
If you use the delivered example URLs, one URL will fail and show an error message instead. This is
intended.
12
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
The file loading process involves three steps: scheduling the job, getting the file, and converting the file
content.
The file loading process is ready to start as soon as the node table and the queue table are available and
populated with data.
After the files have been processed, the application can use the extracted and converted content of the node
table. The queue table can be used by the application for cleanup processes if errors occur.
The file loader provides HTTP services to retrieve the current status of the data processing to determine the
process status for long-running processes.
1.
2.
3.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
13
NEW
FILE_LOADING_IN_PROCESS
FILE_LOADING_FAILED
FILE_LOADING_SUCCESSFUL
TEXT_CONVERSION_IN_PROGRESS
NODE_TABLE_UPDATE_FAILED
TEXT_CONVERSION_FAILED
SUCCESS
TIMED_OUT_WHILE_INDEXING
14
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
The application uses a database table that stores the text content of the processed files.
The file loader supports any structure for the table, but needs one column for the text content.
Note
The content column must have the data type BINTEXT.
The node table can have a language column (NVARCHAR(2)). This column can be used to store the language of
the file.
Example
CREATE COLUMN TABLE "INA_FL_TEST_ACCESS"."SAP_INA_FILELOADER_EA_NODE" (
"ID" NVARCHAR(32),
"LANGUAGE" NVARCHAR(2),
"URL" NVARCHAR(5000),
"CONTENT" BINTEXT SYNC LANGUAGE DETECTION ('EN','DE','FR')
PHRASE INDEX RATIO 0.000000 FUZZY SEARCH INDEX OFF
SEARCH ONLY OFF FAST PREPROCESS OFF TEXT MINING OFF
TEXT ANALYSIS OFF TOKEN SEPARATORS '/;,.:-_()[]<>!?*@+{}="&',
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE
Related Information
The Queue Table [page 16]
The queue table is used to track the file loading process of an entry in the node table.
cmdUpdateNodeLanguage [page 25]
Use this command when you want to store the file's language in the node table.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
15
The queue table is used to track the file loading process of an entry in the node table.
The table shows the progress of the file loading so that you can take action if data loading problems occur.
Every entry in the node table has a corresponding entry in the queue table. The node table controls the data
loading process and is used by the file loader jobs. The primary keys of the queue table are identical to those of
the node table. All other columns are determined by the file loader.
Example
The primary keys must be identical to the primary keys of the node table.
In this example, the column ID is the primary key. All other columns /1ES/_* must have the structure
described.
CREATE COLUMN TABLE "MYSCHEMA"."MY_QUEUETABLE"
("ID" NVARCHAR(32),
"/1ES/_ALTERNATIVE_KEY" NVARCHAR(32),
"/1ES/_URL" NVARCHAR(5000),
"/1ES/_XS_JOB_NAME" NVARCHAR(500),
"/1ES/_FL_JOB_SCHEDULE_ID" NVARCHAR(32),
"/1ES/_PACKAGE_ID" NVARCHAR(32),
"/1ES/_STATUS" NVARCHAR(50),
"/1ES/_HTTP_STATUS_CODE" INTEGER CS_INT,
"/1ES/_HTTP_STATUS_TEXT" NVARCHAR(5000),
"/1ES/_TABLE_UPDATE_ERR_TEXT" NVARCHAR(5000),
"/1ES/_TEXT_CONV_ERR_CODE" INTEGER CS_INT,
"/1ES/_TEXT_CONV_ERR_TEXT" NVARCHAR(5000),
"/1ES/_TS_STATUS_NEW" LONGDATE CS_LONGDATE,
"/1ES/_TS_STATUS_FILELOAD_START" LONGDATE CS_LONGDATE,
"/1ES/_TS_STATUS_FILELOAD_SUCC" LONGDATE CS_LONGDATE,
"/1ES/_TS_STATUS_FILELOAD_FAIL" LONGDATE CS_LONGDATE,
"/1ES/_TS_STATUS_NODE_T_UP_FAIL" LONGDATE CS_LONGDATE,
"/1ES/_TS_STATUS_NODE_T_UP" LONGDATE CS_LONGDATE,
"/1ES/_TS_STATUS_TEXT_CONV_FAIL" LONGDATE CS_LONGDATE,
"/1ES/_TS_STATUS_TIMED_OUT" LONGDATE CS_LONGDATE,
"/1ES/_TS_STATUS_SUCCESS" LONGDATE CS_LONGDATE,
"/1ES/_ADDITIONAL_INFO" NVARCHAR(5000),
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE
To populate the queue table, you need to create an entry for every entry of the node table. Fill the required
fields of the queue table entry. All other fields are updated by the file loader during processing.
The following columns are required:
Primary Key: Use identical primary keys for the node table and the queue table.
URL: Provide an absolute HTTP URL that targets a file in the /1ES/_URL column.
Initial Status: To indicate that the entry has to be processed by the file loader, set the /1ES/_STATUS
column to the value "NEW".and set the time stamp column /1ES/_TS_STATUS_NEW to the current time
stamp.
16
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Related Information
The Node Table [page 15]
The application uses a database table that stores the text content of the processed files.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
17
The file loader API is exposed as an HTTP service that offers various commands.
The various operations that can be executed with this service are called commands. A command is described
as a JSON object.
Command JSON: The HTTP service API uses a JSON format to describe commands that should be executed.
{command:<command name>,parameter:{< parameter object>}}
The command must have a command property to provide a command name as a string (for example
cmdScheduleJob). The second property is the optional parameter property that describes the data that is
required by the command.
The service URL has the following structure:
http(s)://<host>:<port>/sap/bc/ina/fileloader/service.xsjs
HTTP GET: Services that provide information and do not change the state can be invoked using the HTTP GET
method. The file loader service supports the command parameter.
http(s)://<host>:<port>/sap/bc/ina/fileloader/service.xsjs?command=<command JSON>
HTTP POST: Services that change the state must be invoked using the HTTP POST method. Information is
passed in the HTTP POST body.
http(s)://<host>:<port>/sap/bc/ina/fileloader/service.xsjs
The HTTP body contains the command in JSON format: <command JSON>
If you use lowercase letters and/or special characters for queue, node table or attribute data, you do not need
to use quotation marks (). The file loader API behaves differently from the SAP HANA SQL interface in this
regard, to make it easier to use.
Related Information
List of Available Commands [page 19]
The file loader API supports various commands using HTTP GET or POST.
9.1
18
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
9.2
The file loader API supports various commands using HTTP GET or POST.
Table 1: List of available commands
Command Name
HTTP Method
Description
cmdScheduleJob
POST
cmdGetQueueStatistics
POST, GET
cmdSetQueueTimedOut
POST
cmdGetQueueSchedules
GET, POST
cmdKillJobSchedules
POST
cmdUpdateNodeLanguage
POST
cmdGetUser
GET, POST
cmdGetSystemInformation
GET, POST
cmdCommands
GET, POST
9.3
cmdScheduleJob
The schedule job command creates multiple schedules for the specified node tables and queue tables that
process the tables in parallel.
The maximum number of schedules limits the number of parallel executions and the timeout limits the
execution time of the complete process. The frequency specifies how long a schedule should run until the
schedule is restarted.
HTTP Method: POST
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
19
Command
{
"command": "cmdScheduleJob",
"parameter": {
"fileLoaderRequest": {
"table": {
"queueTable": {
"schema": "< Schema name of the queue table >",
"name": "< Name of the queue table >",
"packageId": "< optional unique id of a package >"
},
"nodeTable": {
"schema": "< Schema name of the node table >",
"name": "< Name of the queue table >",
"fileContentAttributeName": "< Content attribute name >"
}
},
"schedule": {
"frequencyMinutes": "< Minutes until the schedule restarts >",
"maxNumberOfSchedules": "< Maximum number of parallel job
schedules>",
"timeOutMinutes": "< Minutes to complete the loading process >"
}
}
}
}
Return
{
20
"statusCode": "<code>",
"message": {
"text": "<message text>",
"detailMessages":[
{"message": "<message text>","code": <code>}
]
},
"schedule": {
"jobName" : < id of the job>,
"numberOfSchedules" < number of schedules >,
"scheduleDetails": [
{
"fileloaderScheduleId": "<schedule id fileloader>",
"xsEngineScheduleId": "< schedule id XS >"
}
]
}
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
9.4
cmdGetQueueStatistics
This command returns statistical information about the current package of queue items.
If no package is specified, all data is used for the statistics. These statistics are used by the application to
decide on further processing or for monitoring.
HTTP Method: POST, GET
Command
{
"command": "cmdGetQueueStatistics",
"parameter": {
"fileLoaderRequest": {
"table": {
"queueTable": {
"schema": "< Schema name of the queue table >",
"name": "< Name of the queue table >",
"packageId": "< optional unique ID of a package >"
}
}
}
}
Return
The detailed status information is given for all individual statuses; the summaries are calculated as follows:
unprocessedCount
Unprocessed files
newCount
inProcessCount
fileloadingInProcessCount + text
ConversionInProcessCount + file
loadingSuccessfulCount
successCount
successCount
failCount
fileloadingFailedCount + nodeTa
bleUpdateFailedCount + textCon
versionFailedCount + timedOut
Count
totalCount
"statusCode": <code>,
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
21
9.5
"message": {
"text": "<message text>",
"detailMessages":[
{"message": "<message text>","code": <code>}
]
},
"queue":
{"statusDetail":
{ "newCount": "<count>" },
{ "successCount": "<count>" },
{ "timedOutCount": "<count>" },
{ "fileloadingInProcessCount": "<count>" },
{ "fileloadingFailedCount": "<count>" },
{ "fileloadingSuccessfulCount": "<count>" },
{ "nodeTableUpdateFailedCount": "<count>" },
{ "textConversionInProcessCount": "<count>" },
{ "textConversionFailedCount": "<count>" }
},
"statusSummary": {
{ "unprocessedCount": "<count>" },
{ "inProcessCount": "<count>" },
{ "successCount": "<count>" },
{ "failCount": "<count>" },
{ "totalCount": <count> },
}
cmdSetQueueTimedOut
Command
{
22
"command": "cmdSetQueueTimedOut",
"parameter": {
"fileLoaderRequest": {
"table": {
"queueTable": {
"schema": "< Schema name of the queue table >",
"name": "< Name of the queue table >",
"packageId": "< Optional unique ID of a package >"
}
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Return
9.6
"statusCode": "<code>",
"message": {
"text": "<message text>",
"detailMessages":[
{"message": "<message text>","code": <code>}
]
},
"table": {
numberOfUpdatedRecords : <Number of updated records>
}
cmdGetQueueSchedules
This command returns the number of schedules and the active schedules of the given queue. It is used for
monitoring purposes.
HTTP Method: GET, POST
Command
"command": "cmdGetQueueSchedules",
"parameter": {
"fileLoaderRequest": {
"table": {
"queueTable": {
"schema": "< Schema name of the queue table >",
"name": "< Name of the queue table >"
}
}
}
}
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
23
Return
9.7
"statusCode": "<code>",
"message": {
"text": "<message text>",
"detailMessages":[
{"message": "<message text>","code": <code>}
]
},
"schedule": {
"jobName" : < id of the job>,
"numberOfSchedules" < number of schedules >,
"scheduleDetails": [
{
"fileloaderScheduleId": "<schedule id fileloader>",
"xsEngineScheduleId": "< schedule id XS >"
}
]
}
cmdKillJobSchedules
This command stops the schedules for all packages and sets the status "timed out" for all unprocessed files.
Note
This command is reserved for use in error or emergency situations only, to stop the processing
immediately.
HTTP Method: POST
Command
24
"command": "cmdKillJobSchedules",
"parameter": {
"fileLoaderRequest": {
"table": {
"queueTable": {
"schema": "< Schema name of the queue table >",
"name": "< Name of the queue table >"
}
}
}
}
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Return
{
9.8
"statusCode": "<code>",
"message": {
"text": "<message text>",
"detailMessages":[
{"message": "<message text>","code": <code>}
]
},
"schedule": {
"jobName" : < id of the job>,
"numberOfSchedules" < number of schedules >,
"scheduleDetails": [
{
"fileloaderScheduleId": "<schedule id fileloader>",
"xsEngineScheduleId": "< schedule id XS >"
}
]
}
cmdUpdateNodeLanguage
Use this command when you want to store the file's language in the node table.
The text processor is able to determine the language of the file when it is converted to text. If the node table
has a language column, this command copies the determined language to the node table column.
This service processes a subset of all node table entries. To update all node table entries, call the service until
the number of updated records is 0.
HTTP Method: POST
Command
{
"command": "cmdUpdateNodeLanguage",
"parameter": {
"fileLoaderRequest": {
"table": {
"queueTable": {
"schema": "< Schema name of the queue table >",
"name": "< Name of the queue table >",
"packageId": "< optional unique id of a package >"
},
"nodeTable": {
"schema": "< Schema name of the node table >",
"name": "< Name of the queue table >",
"fileContentAttributeName": "< Content attribute name >",
"fileLanguageAttributeName": "< Language attribute name >",
"useAbapLanguageFormat": "<optional true/false(default) >
}
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
25
},
Return
If the returned number of updated records is 0, all columns are updated.
{
"statusCode": "<code>",
"message": {
"text": "<message text>",
"detailMessages":[
{"message": "<message text>","code": <code>}
]
},
"table": {
numberOfUpdatedRecords : <number of updated records>
}
9.9
cmdGetUser
This command returns the user name of the user being logged on.
HTTP Method: GET, POST
Command
{"command": "cmdGetUser"}
Return
If the returned number of updated records is 0, then all columns are updated.
{
26
"user": {
"name": "< user name >"
}
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
9.10 cmdGetSystemInformation
This command returns information about the current system.
HTTP Method: GET, POST
Command
{
"command": "cmdGetSystemInformation",
// optional parameter to restrict the output to the desired sections only
"parameter": [
"User", "Time", "XS"
]
Return
The command returns the following information about the current system.
{
"XS": { },
"Fileloader": { },
"Time": { },
"User": { },
"System": { },
"Services": { },
"Memory": { },
"CPU": { },
"Disk": { },
"Statistics": { }
9.11 cmdCommands
This command returns all supported commands of the file loader.
HTTP Method: GET, POST
Command
{
"command": "cmdGetCommands",
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
27
Return
[
28
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
10 Security Information
This sections contains security-related information like authorizations, users, and roles that are used by the
file loader component.
The file loader HTTP services can be used remotely by applications. The services ensure authentication and
authorization, and prevent cross-site request forgery (CSRF).
Note
Ensure that you assign minimal authorizations to users.
10.1 Authorizations
The file loader component defines the following application authorizations.
Type of Authorization
Description
Monitoring
The monitoring authorization allows users to access the HTTP service with
read-only access.
Access
The access authorization allows users to influence (start and stop) the file
loading process using the HTTP service.
JobAccess
This authorization defines the access to the file loader job script. It pre
vents non-authorized users from executing the job script.
10.2 Roles
The file loader roles define the minimum authorizations and access types that are required.
Type and Name of Role
Description
Monitoring
Use the monitoring role when a component uses file loader commands to
monitor the current status of the file loading process. The access rights
are limited to read-only access to the job schedules and the file loader
queues. The role includes the file loader monitoring authorization and ob
ject authorization to select on the job schedule table and framework ta
bles.
sap.bc.ina.fileloader.ro
les::Monitoring
Access
sap.bc.ina.fileloader.ro
les::Access
Use the access role when a file loader client component requires to sched
ule jobs or to stop jobs. This role also includes all of the access rights of
the monitoring role. The role inludes the file loader access application au
thorization and object authorization to select/update/insert/delete on the
job schedule table and select on framework tables.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
29
Description
JobAccess
This role is used by the technical user (XSSQLCC) that accesses the file
sap.bc.ina.fileloader.ro
les::JobAccess
10.3 Authentication
The file loader HTTP services support the authentication methods of SAP HANA XS.
Example
This example shows how to define two file loader users with application-specific roles that includes the file
loader roles.
CREATE ROLE MY_APP_ROLE;
GRANT SELECT ON MY_SCHEMA.MY_QUEUE_TABLE
GRANT UPDATE ON MY_SCHEMA.MY_QUEUE_TABLE
GRANT SELECT ON MY_SCHEMA.MY_NODE_TABLE
GRANT UPDATE ON MY_SCHEMA.MY_NODE_TABLE
TO
TO
TO
TO
MY_APP_ROLE;
MY_APP_ROLE;
MY_APP_ROLE;
MY_APP_ROLE;
30
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
10.5 Users
There are a number of users that require particular authorizations for the file loader.
User
Description
System Administrator
This user uses the file loader HTTP service. The user
needs to be assigned the file loader Monitoring or
Access role and requires application-specific object
authorizations.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
31
11
Best Practices
The requirements for optimal usage of the file loader component are listed below.
1.
The overall execution time of the file loading process should be as short as possible.
2.
The load on the SAP HANA system should be minimal while the file loading process is running.
3.
The loading time can be reduced by adding additional parallel schedules to the file loader job.
The number of parallel schedules reduces the overall execution time of the file loading process.
There should not be more parallel schedules than files to process. A high number of schedules can also
lead to locking overhead while updating the queue table.
The overall SAP HANA system load is also increased. The system administrator has to balance the file
loader load with the remaining load of the SAP HANA system.
As well as the load on the SAP HANA system, the load on the HTTP servers where the remote files are
located is increased. If the remote HTTP servers cannot handle the load, the response times might
increase, or the servers might not provide any response.
If new schedules are added to the file loading process, consider resizing the remote HTTP servers.
32
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Coding Samples
Any software coding and/or code lines / strings ("Code") included in this documentation are only examples and are not intended to be used in a productive system
environment. The Code is only intended to better explain and visualize the syntax and phrasing rules of certain coding. SAP does not warrant the correctness and
completeness of the Code given herein, and SAP shall not be liable for errors or damages caused by the usage of the Code, unless damages were caused by SAP
intentionally or by SAP's gross negligence.
Accessibility
The information contained in the SAP documentation represents SAP's current view of accessibility criteria as of the date of publication; it is in no way intended to be
a binding guideline on how to ensure accessibility of software products. SAP specifically disclaims any liability with respect to this document and no contractual
obligations or commitments are formed either directly or indirectly by this document.
Gender-Neutral Language
As far as possible, SAP documentation is gender neutral. Depending on the context, the reader is addressed directly with "you", or a gender-neutral noun (such as
"sales person" or "working days") is used. If when referring to members of both sexes, however, the third-person singular cannot be avoided or a gender-neutral noun
does not exist, SAP reserves the right to use the masculine form of the noun and pronoun. This is to ensure that the documentation remains comprehensible.
Internet Hyperlinks
The SAP documentation may contain hyperlinks to the Internet. These hyperlinks are intended to serve as a hint about where to find related information. SAP does
not warrant the availability and correctness of this related information or the ability of this information to serve a particular purpose. SAP shall not be liable for any
damages caused by the use of related information unless damages have been caused by SAP's gross negligence or willful misconduct. Regarding link classification,
see: http://help.sap.com/disclaimer.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
33
www.sap.com/contactsap