Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in NYC Sept 4th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
spr654
Creator
Creator

How to output multiple rows using a tJava/tJavaRow/tJavaFlex component in Open Studio 7.1?

Hi,

 

I am trying to use a java class that works perfectly outside Talend. the class opens a bucket, reads the contents, and sets the output variables.

 

this is the code that I use in a tJava component, and it only outputs 1 row:

 

CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder()
.connectTimeout(10000)
.build();
Cluster cluster = CouchbaseCluster.create(env,"10.0.0.0");
Bucket bucket = cluster.openBucket("myBucket","password");
N1qlQueryResult result = bucket.query(N1qlQuery.simple("SELECT * FROM mybucket" ));
Iterator<N1qlQueryRow> rowIterator = result.rows();

while (rowIterator.hasNext()) {
N1qlQueryRow row = rowIterator.next();
// Return results
String content = row.toString();
JsonObject obj = (JsonObject) row.value().get("mybucket");

String _class = obj.get("_class").toString();
if (_class.equalsIgnoreCase("record.type.one") ){
//transaction id
String createdByTransactionId = obj.get("createdByTransactionId").toString();

//addresses is an optional field
JsonArray address_obj = null;
if (obj.get("addresses") != null) {
address_obj = (JsonArray) obj.get("addresses");
}}
row1.createdByTransactionId = createdByTransactionId;

}}
bucket.close();
env.shutdown();

 

When I use the same code in a tJavaRow, in output I get 0 rows in output.

When I use a tJavaFlex component, I get 0 rows in output.

 

What am I doing wrong?

 

Any help is welcome.

 

Labels (4)
1 Solution

Accepted Solutions
akumar2301
Specialist II
Specialist II

you need to use tjavaflex , Ideally 

 

Begin part should have 

 

CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder()
.connectTimeout(10000)
.build();
Cluster cluster = CouchbaseCluster.create(env,"10.0.0.0");
Bucket bucket = cluster.openBucket("myBucket","password");
N1qlQueryResult result = bucket.query(N1qlQuery.simple("SELECT * FROM mybucket" ));
Iterator<N1qlQueryRow> rowIterator = result.rows();

while (rowIterator.hasNext()) {

 

Main Part 

 

N1qlQueryRow row = rowIterator.next();
// Return results
String content = row.toString();
JsonObject obj = (JsonObject) row.value().get("mybucket");

String _class = obj.get("_class").toString();
if (_class.equalsIgnoreCase("record.type.one") ){
//transaction id
String createdByTransactionId = obj.get("createdByTransactionId").toString();

//addresses is an optional field
JsonArray address_obj = null;
if (obj.get("addresses") != null) {
address_obj = (JsonArray) obj.get("addresses");
}}
row1.createdByTransactionId = createdByTransactionId;

}

 

 

End Part 

 

}
bucket.close();
env.shutdown();

 

Please try and let us know if doesnot work.

View solution in original post

2 Replies
akumar2301
Specialist II
Specialist II

you need to use tjavaflex , Ideally 

 

Begin part should have 

 

CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder()
.connectTimeout(10000)
.build();
Cluster cluster = CouchbaseCluster.create(env,"10.0.0.0");
Bucket bucket = cluster.openBucket("myBucket","password");
N1qlQueryResult result = bucket.query(N1qlQuery.simple("SELECT * FROM mybucket" ));
Iterator<N1qlQueryRow> rowIterator = result.rows();

while (rowIterator.hasNext()) {

 

Main Part 

 

N1qlQueryRow row = rowIterator.next();
// Return results
String content = row.toString();
JsonObject obj = (JsonObject) row.value().get("mybucket");

String _class = obj.get("_class").toString();
if (_class.equalsIgnoreCase("record.type.one") ){
//transaction id
String createdByTransactionId = obj.get("createdByTransactionId").toString();

//addresses is an optional field
JsonArray address_obj = null;
if (obj.get("addresses") != null) {
address_obj = (JsonArray) obj.get("addresses");
}}
row1.createdByTransactionId = createdByTransactionId;

}

 

 

End Part 

 

}
bucket.close();
env.shutdown();

 

Please try and let us know if doesnot work.

spr654
Creator
Creator
Author

Thank you very much, Akumar.

I didn't get right the main part (I included the while there).

Now works perfectly.