Hi Everyone,
I've got a TBO which is creating a folder and set custom attribute during creation of the document.
When I'm trying to manually update attribute which was set during document creation TBO fires off. And I can't manually update the attribues.
How can make TBO not to fire off when I manually update attributes?
Below is my code:
public void doSave(boolean saveLock, String versionLabel, Object extendedArgs[]) throws DfException {
if (super.isCheckedOut() == false){
String newIFolderID = super.getString("i_folder_id");
IDfQuery querySScounter = new DfQuery();
IDfCollection collSScounter = null;
querySScounter.setDQL("Select counter from otp_support_counter");
collSScounter = querySScounter.execute(super.getSession(), DfQuery.READ_QUERY);
IDfQuery QueryORD = new DfQuery();
IDfCollection collORD = null;
QueryORD.setDQL("select order_number from otp_procurement_doc where any i_folder_id = " + "'"+newIFolderID+"'");
collORD = QueryORD.execute(super.getSession(), DfQuery.EXEC_QUERY);
if (collSScounter.next() && collORD.next()){
if(getTypeName().equals("otp_procurement_support_doc")){
Integer CounterSS = collSScounter.getInt("counter");
collSScounter.close();
String ORDnumber = collORD.getString("order_number");
collORD.close();
querySScounter.setDQL("Update otp_support_counter object set counter = " + (CounterSS + 1) + " WHERE counter = " + CounterSS);
collSScounter = querySScounter.execute(super.getSession(), DfQuery.EXEC_QUERY);
collSScounter.close();
super.setString("reference_no","SCM "+ (CounterSS + 1));
super.setString("order_number", ORDnumber);
}
}
else{
querySScounter.setDQL("create otp_support_counter OBJECTS SET counter = 1");
collSScounter = querySScounter.execute(super.getSession(), DfQuery.EXEC_QUERY);
collSScounter.close();
}
}
System.out.println("==================== Started Do Save=================");
super.setInt("savecount",super.getInt("savecount")+1);
System.out.println("savecount: " + super.getInt("savecount"));
System.out.println("1Thembani isnew:"+ isNew);
IDfSysObject sysObj = (IDfSysObject)getSession().getObject(getObjectId());
System.out.println("2Thembani isnew:"+ isNew);
if( sysObj == null ) {
System.out.println("Save Object can not be found.");
} else {
System.out.println("Executing On SAVE with " + sysObj.getObjectId().getId());
if (super.getInt("savecount") >= 2) {
linkToFolder(sysObj.getObjectId().getId());
System.out.println("************link executed *************");
}
super.doSave(saveLock,versionLabel,extendedArgs);
System.out.println("3Thembani isnew:"+ isNew);
for (int i = 0; i< super.getVersionLabelCount(); i++){
if (super.getRepeatingString("r_version_label",i).equals("_NEW_"))
isNew = true;
}
if (!isNew && super.getInt("savecount") == 3) {
System.out.println("---------- Calling afterSaveActions from doSave ----------");
}
}
System.out.println("Save Count================="+super.getInt("savecount"));
System.out.println("==================== End Do Save=================");
}//end save()
Can anyone tell me what can I change on my code.