Java Single Connection Example
Copy code
import lrapi.lr;
import lrapi.vts.Lrvtc;
import lrapi.vts.Constants;
public class Actions {
private static final String VtsServer = "my_vts_server.my_company.com";
private static final int nPort = 8890;
private static int rc = 0;
public int init() throws Throwable {
rc = Lrvtc.connect(VtsServer, nPort, Constants.VTOPT_KEEP_ALIVE);
lr.log_message("rc=" + rc + "\n");
return 0;
}// end of init
public int action() throws Throwable {
String Message = "";
lr.start_transaction("create_columns");
// ---create columns---
rc = Lrvtc.create_column("C_ID");
lr.log_message("create_column rc=" + rc + "\n");
rc = Lrvtc.create_column("P_ID");
lr.log_message("create_column rc=" + rc + "\n");
rc = Lrvtc.create_column("P_name");
lr.log_message("create_column rc=" + rc + "\n");
rc = Lrvtc.create_column("P_info");
lr.log_message("create_column rc=" + rc + "\n");
rc = Lrvtc.create_column("P_status");
lr.log_message("create_column rc=" + rc + "\n");
lr.end_transaction("create_columns", lr.AUTO);
lr.start_transaction("fill_data");
for (int i = 1; i <= 10; i++) {
Message = "product" + i + ";productname" + i + ";productinfo" + i
+ ";instock";
rc = Lrvtc.send_row1("P_ID;P_name;P_info;P_status", Message, ";",
Constants.VTSEND_SAME_ROW);
lr.log_message("send_row1 rc=" + rc + "\n");
}
lr.end_transaction("fill_data", lr.AUTO);
// -- API column_size
lr.start_transaction("get_colsize");
int colsize = 0;
colsize = Lrvtc.column_size("P_ID");
lr.log_message("size of column P_ID=" + colsize);
colsize = Lrvtc.column_size("P_name");
lr.log_message("size of column P_name=" + colsize);
colsize = Lrvtc.column_size("P_info");
lr.log_message("size of column P_info=" + colsize);
colsize = Lrvtc.column_size("P_status");
lr.log_message("size of column P_status=" + colsize);
// wrong column name
colsize = Lrvtc.column_size("P_ID1");
lr.log_message("size of column P_ID1=" + colsize);
lr.end_transaction("get_colsize", lr.AUTO);
// end of API column_size --
// -- API ensure_index
lr.start_transaction("create_index");
// empty column
rc = Lrvtc.ensure_index("C_ID");
lr.log_message("ensure index of empty column rc=" + rc + "\n");
// non-empty column
rc = Lrvtc.ensure_index("P_ID");
lr.log_message("ensure index of non-empty column rc=" + rc + "\n");
// wrong column name
rc = Lrvtc.ensure_index("P_ID1");
lr.log_message("ensure index of wrong column rc=" + rc + "\n");
lr.end_transaction("create_index", lr.AUTO);
// end API ensure_index --
// -- API drop_index
lr.start_transaction("drop_index");
// empty column
rc = Lrvtc.drop_index("C_ID");
lr.log_message("drop index of empty column rc=" + rc + "\n");
// non-empty column
rc = Lrvtc.drop_index("P_ID");
lr.log_message("drop index of non-empty column rc=" + rc + "\n");
// wrong column name
rc = Lrvtc.drop_index("P_ID1");
lr.log_message("drop index of wrong column rc=" + rc + "\n");
lr.end_transaction("drop_index", lr.AUTO);
// end API drop_index --
// -- API send_if_unique
lr.start_transaction("send_if_unique");
// insert unique
colsize = Lrvtc.column_size("P_ID");
rc = Lrvtc.send_if_unique("P_ID", "product-1234");
lr.log_message("send_if_unique rc=" + rc + "\n");
if (colsize == Lrvtc.column_size("P_ID") - 1) {
lr.log_message("send_if_unique (unique) succeed\n");
// insert duplicated
colsize = Lrvtc.column_size("P_ID");
rc = Lrvtc.send_if_unique("P_ID", "product-1234");
lr.log_message("send_if_unique rc=" + rc + "\n");
if (colsize == Lrvtc.column_size("P_ID")) {
lr.log_message("send_if_unique (duplicated) succeed\n");
// insert into wrong column
rc = Lrvtc.send_if_unique("P_ID1", "product-1234");
lr.log_message("send_if_unique (wrong col) rc=" + rc + "\n");
// --
lr.end_transaction("send_if_unique", lr.PASS);
} else {
lr.error_message("send_if_unique (duplicated) failed\n");
lr.end_transaction("send_if_unique", lr.FAIL);
}
} else {
lr.error_message("send_if_unique (unique) failed\n");
lr.end_transaction("send_if_unique", lr.FAIL);
}
// end of API send_if_unique --
// -- API clear_message
lr.start_transaction("clear_message");
colsize = Lrvtc.column_size("P_ID");
rc = Lrvtc.clear_message("P_ID", colsize);
lr.log_message("clear_message rc=" + rc + "\n");
// wrong column name
rc = Lrvtc.clear_message("P_ID11", 1);
lr.log_message("clear_message (wrong col name) rc=" + rc + "\n");
// wrong row number
rc = Lrvtc.clear_message("P_ID", colsize + 1);
lr.log_message("clear_message rc=" + rc + "\n");
lr.end_transaction("clear_message", lr.AUTO);
// end of API clear_message --
// -- API send_message
lr.start_transaction("send_message");
rc = Lrvtc.send_message("C_ID", "customer1");
lr.log_message("send_message rc=" + rc + "\n");
// wrong column name
rc = Lrvtc.send_message("C_ID1", "customer1");
lr.log_message("send_message (wrong col name) rc=" + rc + "\n");
lr.end_transaction("send_message", lr.AUTO);
// end of API send_message --
// -- API query_column
lr.start_transaction("query_column");
colsize = Lrvtc.column_size("P_ID");
for (int i = 1; i <= colsize; i++) {
rc = Lrvtc.query_column("P_ID", i);
lr.log_message("query_column rc=" + rc + "\n");
lr.log_message("P_ID[" + i + "]=" + lr.eval_string("{P_ID}\n"));
}
// wrong column name
rc = Lrvtc.query_column("P_ID12", 1);
lr.log_message("query_column (wrong name) rc=" + rc + "\n");
lr.log_message("P_ID12=" + lr.eval_string("{P_ID12}\n"));
// wrong row number
rc = Lrvtc.query_column("P_ID", Lrvtc.column_size("P_ID") + 1);
lr.log_message("query_column (wrong row num) rc=" + rc + "\n");
lr.log_message("P_ID=" + lr.eval_string("{P_ID}\n"));
lr.end_transaction("query_column", lr.AUTO);
// end of API query_column --
// -- API query_row
lr.start_transaction("query_row");
colsize = Lrvtc.column_size("P_ID");
for (int i = 1; i <= colsize; i++) {
rc = Lrvtc.query_row(i);
lr.log_message("query_row rc=" + rc + "\n");
lr.log_message("Row["
+ i
+ "]={"
+ lr.eval_string("{C_ID}; {P_ID}; {P_name}; {P_info}; {P_status}}\n"));
}
// wrong row number
rc = Lrvtc.query_row(Lrvtc.column_size("P_ID") + 1);
lr.log_message("query_row (wrong row num) rc=" + rc + "\n");
lr.log_message("Row={" + lr.eval_string("{C_ID}; {P_ID}; {P_name}; {P_info}; {P_status}}\n"));
lr.end_transaction("query_row", lr.AUTO);
// end of API query_row --
// -- API retrieve_message
lr.start_transaction("retrieve_message");
colsize = Lrvtc.column_size("P_status");
lr.log_message("size of P_status=" + colsize);
rc = Lrvtc.retrieve_message("P_status");
lr.log_message("retrieve_message rc=" + rc + "\n");
lr.log_message("P_status=" + lr.eval_string("{P_status}\n"));
colsize = Lrvtc.column_size("P_status");
lr.log_message("size of P_status=" + colsize);
// wrong column name
rc = Lrvtc.retrieve_message("P_status1");
lr.log_message("retrieve_message (wrong col name) rc=" + rc + "\n");
lr.log_message("P_status1=" + lr.eval_string("{P_status1}\n"));
lr.end_transaction("retrieve_message", lr.AUTO);
// end of API retrieve_message --
// -- API retrieve_messages1
lr.start_transaction("retrieve_messages1");
lr.log_message("size of P_ID=" + Lrvtc.column_size("P_ID"));
lr.log_message("size of P_name=" + Lrvtc.column_size("P_name"));
lr.log_message("size of P_info=" + Lrvtc.column_size("P_info"));
lr.log_message("size of P_status=" + Lrvtc.column_size("P_status"));
rc = Lrvtc.retrieve_messages1("P_ID;P_name;P_info;P_status", ";");
lr.log_message("retrieve_messages1 rc=" + rc + "\n");
lr.log_message("P_ID=" + lr.eval_string("{P_ID}\n"));
lr.log_message("P_name=" + lr.eval_string("{P_name}\n"));
lr.log_message("P_info=" + lr.eval_string("{P_info}\n"));
lr.log_message("P_status=" + lr.eval_string("{P_status}\n"));
lr.log_message("size of P_ID=" + Lrvtc.column_size("P_ID"));
lr.log_message("size of P_name=" + Lrvtc.column_size("P_name"));
lr.log_message("size of P_info=" + Lrvtc.column_size("P_info"));
lr.log_message("size of P_status=" + Lrvtc.column_size("P_status"));
// one wrong column
lr.log_message("size of P_ID=" + Lrvtc.column_size("P_ID"));
lr.log_message("size of P_name=" + Lrvtc.column_size("P_name"));
lr.log_message("size of P_info=" + Lrvtc.column_size("P_info"));
lr.log_message("size of P_status=" + Lrvtc.column_size("P_status"));
rc = Lrvtc.retrieve_messages1("P_ID;P_name;P_info;P_status;WR_col", ";");
lr.log_message("retrieve_messages1 (one wrong col) rc=" + rc + "\n");
lr.log_message("P_ID=" + lr.eval_string("{P_ID}\n"));
lr.log_message("P_name=" + lr.eval_string("{P_name}\n"));
lr.log_message("P_info=" + lr.eval_string("{P_info}\n"));
lr.log_message("P_status=" + lr.eval_string("{P_status}\n"));
lr.log_message("WR_col=" + lr.eval_string("{WR_col}\n"));
// all wrong columns
rc = Lrvtc.retrieve_messages1("P_ID1;P_name1;P_info1;P_status1", ";");
lr.log_message("retrieve_messages1 (all wrong cols) rc=" + rc + "\n");
lr.log_message("P_ID1=" + lr.eval_string("{P_ID1}\n"));
lr.log_message("P_name1=" + lr.eval_string("{P_name1}\n"));
lr.log_message("P_info1=" + lr.eval_string("{P_info1}\n"));
lr.log_message("P_status1=" + lr.eval_string("{P_status1}\n"));
lr.end_transaction("retrieve_messages1", lr.AUTO);
// end of API retrieve_messages1 --
// -- API retrieve_row
lr.start_transaction("retrieve_row");
lr.log_message("size of C_ID=" + Lrvtc.column_size("C_ID"));
lr.log_message("size of P_ID=" + Lrvtc.column_size("P_ID"));
lr.log_message("size of P_name=" + Lrvtc.column_size("P_name"));
lr.log_message("size of P_info=" + Lrvtc.column_size("P_info"));
lr.log_message("size of P_status=" + Lrvtc.column_size("P_status"));
rc = Lrvtc.retrieve_row();
lr.log_message("retrieve_row rc=" + rc + "\n");
lr.log_message("Row={"
+ lr.eval_string("{C_ID}; {P_ID}; {P_name}; {P_info}; {P_status}}\n"));
lr.log_message("size of C_ID=" + Lrvtc.column_size("C_ID"));
lr.log_message("size of P_ID=" + Lrvtc.column_size("P_ID"));
lr.log_message("size of P_name=" + Lrvtc.column_size("P_name"));
lr.log_message("size of P_info=" + Lrvtc.column_size("P_info"));
lr.log_message("size of P_status=" + Lrvtc.column_size("P_status"));
lr.end_transaction("retrieve_row", lr.AUTO);
// end of API retrieve_row --
// -- API update_message
lr.start_transaction("update_message");
rc = Lrvtc.query_column("P_name", 1);
lr.log_message("query_column rc=" + rc + "\n");
if (rc != 0) {
lr.end_transaction("update_message", lr.FAIL);
} else {
lr.log_message("P_name old value=" + lr.eval_string("{P_name}\n"));
rc = Lrvtc.update_message("P_name", 1,
lr.eval_string("{P_name}_new"));
lr.log_message("update_message rc=" + rc + "\n");
rc = Lrvtc.query_column("P_name", 1);
lr.log_message("P_name new value=" + lr.eval_string("{P_name}\n"));
}
// wrong column name
rc = Lrvtc.update_message("P_name2", 1, "P_name_new");
lr.log_message("update_message (wrong col) rc=" + rc + "\n");
// wrong row number
rc = Lrvtc.update_message("P_name", Lrvtc.column_size("P_name") + 10, "P_name_new");
lr.log_message("update_message (wrong row num) rc=" + rc + "\n");
lr.end_transaction("update_message", lr.AUTO);
// end of API update_message --
// -- API update_message_ifequals
lr.start_transaction("update_message_ifequals");
// update_message_ifequals if match
lr.start_sub_transaction("update_message_ifequals_match",
"update_message_ifequals");
rc = Lrvtc.query_column("P_name", 1);
lr.log_message("query_column rc=" + rc + "\n");
if (rc != 0) {
lr.end_sub_transaction("update_message_ifequals_match", lr.FAIL);
} else {
lr.log_message("P_name old value=" + lr.eval_string("{P_name}\n"));
rc = Lrvtc.update_message_ifequals("P_name", 1,
lr.eval_string("{P_name}_newestM"),
lr.eval_string("{P_name}"));
lr.log_message("update_message_ifequals rc=" + rc + "\n");
rc = Lrvtc.query_column("P_name", 1);
lr.log_message("P_name new value=" + lr.eval_string("{P_name}\n"));
lr.end_sub_transaction("update_message_ifequals_match", lr.PASS);
}
// update_message_ifequals if mismatch
lr.start_sub_transaction("update_message_ifequals_mismatch",
"update_message_ifequals");
rc = Lrvtc.query_column("P_name", 1);
lr.log_message("query_column rc=" + rc + "\n");
if (rc != 0) {
lr.end_sub_transaction("update_message_ifequals_mismatch", lr.FAIL);
} else {
lr.log_message("P_name old value=" + lr.eval_string("{P_name}\n"));
rc = Lrvtc.update_message_ifequals("P_name", 1,
lr.eval_string("{P_name}_newestNM"),
lr.eval_string("{P_name}_mismatch"));
lr.log_message("update_message_ifequals rc=" + rc + "\n");
rc = Lrvtc.query_column("P_name", 1);
lr.log_message("P_name new value=" + lr.eval_string("{P_name}\n"));
lr.end_sub_transaction("update_message_ifequals_mismatch", lr.PASS);
}
// update_message_ifequals if empty
lr.start_sub_transaction("update_message_ifequals_empty",
"update_message_ifequals");
rc = Lrvtc.clear_message("P_name", 1);
lr.log_message("query_column rc=" + rc + "\n");
if (rc != 0) {
lr.end_sub_transaction("update_message_ifequals_empty", lr.FAIL);
} else {
lr.log_message("P_name old value=" + lr.eval_string("{P_name}\n"));
rc = Lrvtc.update_message_ifequals("P_name", 1,
lr.eval_string("{P_name}_newestE"), "");
lr.log_message("update_message_ifequals rc=" + rc + "\n");
rc = Lrvtc.query_column("P_name", 1);
lr.log_message("P_name new value=" + lr.eval_string("{P_name}\n"));
lr.end_sub_transaction("update_message_ifequals_empty", lr.PASS);
}
// wrong column name
rc = Lrvtc.update_message_ifequals("P_name3", 1, "P_name_newestE", "");
lr.log_message("update_message_ifequals (wrong col) rc=" + rc + "\n");
// wrong row number
rc = Lrvtc.update_message_ifequals("P_name", Lrvtc.column_size("P_name") + 20, "P_name_newestE", "");
lr.log_message("update_message_ifequals (wrong row num) rc=" + rc + "\n");
lr.end_transaction("update_message_ifequals", lr.AUTO);
// end of API update_message_ifequals --
// -- API update_row1
lr.start_transaction("update_row1");
// query current values
rc = Lrvtc.query_row(1);
lr.log_message("query_row rc=" + rc + "\n");
lr.log_message("Row old={"
+ lr.eval_string("{C_ID}; {P_ID}; {P_name}; {P_info}; {P_status}}\n"));
// update row
rc = Lrvtc.update_row1(
"P_ID;P_name;P_info;P_status", 1,
"product1_newest1;productname1_newest1;productinfo1_newest1;instock", ";");
lr.log_message("update_row1 rc=" + rc + "\n");
// query new values
rc = Lrvtc.query_row(1);
lr.log_message("query_row rc=" + rc + "\n");
lr.log_message("Row new={"
+ lr.eval_string("{C_ID}; {P_ID}; {P_name}; {P_info}; {P_status}}\n"));
// one wrong column
rc = Lrvtc.update_row1(
"P_ID;P_name;P_info;P_status4", 1,
"product1_newest1;productname1_newest1;productinfo1_newest1;wrong_place", ";");
lr.log_message("update_row1 (one wrong col) rc=" + rc + "\n");
rc = Lrvtc.query_row(1);
lr.log_message("Row new={"
+ lr.eval_string("{C_ID}; {P_ID}; {P_name}; {P_info}; {P_status4}}\n"));
// all wrong columns
rc = Lrvtc.update_row1(
"P_ID5;P_name5;P_info5;P_status5", 1,
"product1_newest1;productname1_newest1;productinfo1_newest1;wrong_place", ";");
lr.log_message("update_row1 (all wrong cols) rc=" + rc + "\n");
rc = Lrvtc.query_row(1);
lr.log_message("Row new={"
+ lr.eval_string("{C_ID5}; {P_ID5}; {P_name5}; {P_info5}; {P_status5}}\n"));
// wrong row number
rc = Lrvtc.update_row1(
"P_ID;P_name;P_info;P_status", Lrvtc.column_size("P_ID") + 30,
"product1_newest1;productname1_newest1;productinfo1_newest1;instock", ";");
lr.log_message("update_row1 (wrong row num) rc=" + rc + "\n");
rc = Lrvtc.query_row(Lrvtc.column_size("P_ID"));
lr.log_message("Row new={"
+ lr.eval_string("{C_ID}; {P_ID}; {P_name}; {P_info}; {P_status}}\n"));
lr.end_transaction("update_row1", lr.AUTO);
// end of API update_row1 --
//-- API increment
lr.start_transaction("increment");
// init counter
rc = Lrvtc.increment("P_ID", 1, 10);
lr.log_message("increment init rc=" + rc + "\n");
// increment counter
rc = Lrvtc.increment("P_ID", 1, 15);
lr.log_message("increment new rc=" + rc + "\n");
// wrong column name
rc = Lrvtc.increment("P_ID6", 1, 10);
lr.log_message("increment (wrong col) rc=" + rc + "\n");
// wrong row number
rc = Lrvtc.increment("P_ID", Lrvtc.column_size("P_ID") + 30, 10);
lr.log_message("increment (wrong row num) rc=" + rc + "\n");
lr.end_transaction("increment", lr.AUTO);
// end of API increment --
//-- API clear_row
lr.start_transaction("clear_row");
rc = Lrvtc.clear_row(1);
lr.log_message("clear_row rc=" + rc + "\n");
// wrong row number
rc = Lrvtc.clear_row(Lrvtc.column_size("P_ID") + 1000);
lr.log_message("clear_row (wrong row num) rc=" + rc + "\n");
lr.end_transaction("clear_row", lr.AUTO);
// end of API clear_row --
//-- API clear_column
lr.start_transaction("clear_column");
rc = Lrvtc.clear_column("P_info");
lr.log_message("clear_column rc=" + rc + "\n");
// wrong column name
rc = Lrvtc.clear_column("P_info7");
lr.log_message("clear_column (wrong col) rc=" + rc + "\n");
lr.end_transaction("clear_column", lr.AUTO);
// end of API clear_column --
// remove all columns
rc = Lrvtc.clear_column("C_ID");
rc = Lrvtc.clear_column("P_ID");
rc = Lrvtc.clear_column("P_name");
rc = Lrvtc.clear_column("P_info");
rc = Lrvtc.clear_column("P_status");
return 0;
}// end of action
public int end() throws Throwable {
// -- API disconnect
Lrvtc.disconnect();
// end of API disconnect --
return 0;
}// end of end
}

