/AWS1/IF_FNS=>CREATEKXCHANGESET()¶
About CreateKxChangeset¶
Creates a changeset for a kdb database. A changeset allows you to add and delete existing files by using an ordered list of change requests.
Method Signature¶
METHODS /AWS1/IF_FNS~CREATEKXCHANGESET
IMPORTING
!IV_ENVIRONMENTID TYPE /AWS1/FNSENVIRONMENTID OPTIONAL
!IV_DATABASENAME TYPE /AWS1/FNSDATABASENAME OPTIONAL
!IT_CHANGEREQUESTS TYPE /AWS1/CL_FNSCHANGEREQUEST=>TT_CHANGEREQUESTS OPTIONAL
!IV_CLIENTTOKEN TYPE /AWS1/FNSCLIENTTOKENSTRING OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_fnscrekxchangesetrsp
RAISING
/AWS1/CX_FNSACCESSDENIEDEX
/AWS1/CX_FNSCONFLICTEXCEPTION
/AWS1/CX_FNSINTERNALSERVEREX
/AWS1/CX_FNSLIMITEXCEEDEDEX
/AWS1/CX_FNSRESOURCENOTFOUNDEX
/AWS1/CX_FNSTHROTTLINGEX
/AWS1/CX_FNSVALIDATIONEX
/AWS1/CX_FNSCLIENTEXC
/AWS1/CX_FNSSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
iv_environmentid TYPE /AWS1/FNSENVIRONMENTID /AWS1/FNSENVIRONMENTID¶
A unique identifier of the kdb environment.
iv_databasename TYPE /AWS1/FNSDATABASENAME /AWS1/FNSDATABASENAME¶
The name of the kdb database.
it_changerequests TYPE /AWS1/CL_FNSCHANGEREQUEST=>TT_CHANGEREQUESTS TT_CHANGEREQUESTS¶
A list of change request objects that are run in order. A change request object consists of
changeType,s3Path, anddbPath. A changeType can have the following values:
PUT – Adds or updates files in a database.
DELETE – Deletes files in a database.
All the change requests require a mandatory
dbPathattribute that defines the path within the database directory. All database paths must start with a leading / and end with a trailing /. Thes3Pathattribute defines the s3 source file path and is required for a PUT change type. Thes3pathmust end with a trailing / if it is a directory and must end without a trailing / if it is a file.Here are few examples of how you can use the change request object:
This request adds a single sym file at database root location.
{ "changeType": "PUT", "s3Path":"s3://bucket/db/sym", "dbPath":"/"}This request adds files in the given
s3Pathunder the 2020.01.02 partition of the database.
{ "changeType": "PUT", "s3Path":"s3://bucket/db/2020.01.02/", "dbPath":"/2020.01.02/"}This request adds files in the given
s3Pathunder the taq table partition of the database.
[ { "changeType": "PUT", "s3Path":"s3://bucket/db/2020.01.02/taq/", "dbPath":"/2020.01.02/taq/"}]This request deletes the 2020.01.02 partition of the database.
[{ "changeType": "DELETE", "dbPath": "/2020.01.02/"} ]The DELETE request allows you to delete the existing files under the 2020.01.02 partition of the database, and the PUT request adds a new taq table under it.
[ {"changeType": "DELETE", "dbPath":"/2020.01.02/"}, {"changeType": "PUT", "s3Path":"s3://bucket/db/2020.01.02/taq/", "dbPath":"/2020.01.02/taq/"}]
iv_clienttoken TYPE /AWS1/FNSCLIENTTOKENSTRING /AWS1/FNSCLIENTTOKENSTRING¶
A token that ensures idempotency. This token expires in 10 minutes.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_fnscrekxchangesetrsp /AWS1/CL_FNSCREKXCHANGESETRSP¶
Domain /AWS1/RT_ACCOUNT_ID Primitive Type NUMC
Examples¶
Syntax Example¶
This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.
DATA(lo_result) = lo_client->createkxchangeset(
it_changerequests = VALUE /aws1/cl_fnschangerequest=>tt_changerequests(
(
new /aws1/cl_fnschangerequest(
iv_changetype = |string|
iv_dbpath = |string|
iv_s3path = |string|
)
)
)
iv_clienttoken = |string|
iv_databasename = |string|
iv_environmentid = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lv_changesetid = lo_result->get_changesetid( ).
lv_databasename = lo_result->get_databasename( ).
lv_environmentid = lo_result->get_environmentid( ).
LOOP AT lo_result->get_changerequests( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lv_changetype = lo_row_1->get_changetype( ).
lv_s3path = lo_row_1->get_s3path( ).
lv_dbpath = lo_row_1->get_dbpath( ).
ENDIF.
ENDLOOP.
lv_timestamp = lo_result->get_createdtimestamp( ).
lv_timestamp = lo_result->get_lastmodifiedtimestamp( ).
lv_changesetstatus = lo_result->get_status( ).
lo_errorinfo = lo_result->get_errorinfo( ).
IF lo_errorinfo IS NOT INITIAL.
lv_errormessage = lo_errorinfo->get_errormessage( ).
lv_errordetails = lo_errorinfo->get_errortype( ).
ENDIF.
ENDIF.