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

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
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.