cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Learn all about the Community Ranking System, a fun gamification element of the PTC Community. X

Performance cost of deserialize BLOBs with query builder

rhart
16-Pearl

Performance cost of deserialize BLOBs with query builder

We're planning to use the deserialise method from wt.pds.ConversionHelper in some query builder reports to get the values of workflow variables. 

The report it seems a little slow, even though there's only 10 objects to deserialise in our dev system.

Has anyone used this method successfully on thousands of objects?

 

deserialise.png

 

addJavaMethod.png

ACCEPTED SOLUTION

Accepted Solutions

@rhart , hi

 

Looking at your images it looks like you are using nested "Java Method" functionality to get the values of variable M01 and M02.

Your custom method getValue uses the return value from Java Method that uses the deserialize method and a String, the variable's name.

 

For those reading this that are not familiar with Java Method functionality it's great feature in Query Builder. It allows you to do pretty much anything.

 

As for this specific issue, you still use "Java Method" functionality however you can the variables' values without using the wt.pds.ConversionHelper Class. And without needing nested Java Methods.

 

I created a class and added a method named getWorkItemVariableValue.

The method DOES NOT use the class wt.pds.ConversionHelper

I registered the class with Query Builder, restated Windchill and ran the report.

I pass the WorkItem and the name of the variable to my method and results are returned very quickly.

 

d_graham_0-1643637327684.png

 

d_graham_1-1643637545268.png

 

Seems to get the job done.

 

David

View solution in original post

1 REPLY 1

@rhart , hi

 

Looking at your images it looks like you are using nested "Java Method" functionality to get the values of variable M01 and M02.

Your custom method getValue uses the return value from Java Method that uses the deserialize method and a String, the variable's name.

 

For those reading this that are not familiar with Java Method functionality it's great feature in Query Builder. It allows you to do pretty much anything.

 

As for this specific issue, you still use "Java Method" functionality however you can the variables' values without using the wt.pds.ConversionHelper Class. And without needing nested Java Methods.

 

I created a class and added a method named getWorkItemVariableValue.

The method DOES NOT use the class wt.pds.ConversionHelper

I registered the class with Query Builder, restated Windchill and ran the report.

I pass the WorkItem and the name of the variable to my method and results are returned very quickly.

 

d_graham_0-1643637327684.png

 

d_graham_1-1643637545268.png

 

Seems to get the job done.

 

David

Announcements


Top Tags