/**
* Check ||| Collect unique information from ParentFormID
* @param object --> process form table name
* @param field --> field that should be unique
* @param value --> that need to be checked
* @param orckey --> process Instace Key
* @return
* @throws Exception
*/
public boolean checkParentID(String object, String field, String value,long orckey) throws Exception {
tcResultSet parentFormDef;
List list = new ArrayList();
try {
logger.info("Part1:Running CHECKPARENtID Object:"+object+" FIELD:"+field+" VALUE:"+value+" ORCKEY:"+orckey);
f = Platform.getService(tcFormInstanceOperationsIntf.class);
poIntf = Platform.getService(tcProvisioningOperationsIntf.class);
logger.info( "Part1:BOOLEAN VALUE:"+list.contains(value));
String orgKey = getOrgKey(Constants.ORG_ENTS);
logger.info("|||================BEFORE NEW SEARCH CRITERIA=================|||");
Map<String, String> searchCriteria = new HashMap<String, String>();
logger.info( "Part1:"+searchCriteria);
searchCriteria.put("Process Instance.Descriptive Data", "*");
logger.info("Part1:"+searchCriteria+" X="+orgKey+" OrgKey:"+orgKey);
tcResultSet rsltSet = poIntf.findObjects("Revoke", new String[] { orgKey }, "O", searchCriteria);
logger.info("Part1:"+searchCriteria+" ResultSet: "+rsltSet);
System.out.println("TOTAL VALUE NEW RESULTSET:"+rsltSet.getTotalRowCount());
for (int i=0; i<rsltSet.getRowCount(); i++){
rsltSet.goToRow(i);
logger.info("Part1:"+i);
logger.info("Part1:Process Instance.Descriptive Data:"+rsltSet.getStringValue("Process Instance.Descriptive Data"));
logger.info("Part1:Objects.Name:"+rsltSet.getStringValue("Objects.Name"));
logger.info("Part1:Process Instance.Key:"+rsltSet.getStringValue("Process Instance.Key"));
if(checkIfFormExists(rsltSet.getLongValue("Process Instance.Key"))){
parentFormDef = f.getProcessFormData(rsltSet.getLongValue("Process Instance.Key"));
logger.info( "Part2:COUNT TOTAL:"+parentFormDef.getTotalRowCount());
parentFormDef.goToRow (0);
list.add(parentFormDef.getStringValue(field));
logger.info("Part2:VALUE ADDED INTO LIST(Collections):"+parentFormDef.getStringValue(field));
}
}
parentFormDef = f.getProcessFormData(orckey);
logger.info("===============================================================================================");
logger.info("============COLUMNS===============");
String columns[]= parentFormDef.getColumnNames();
logger.info("============CHILD DATA FORM===============");
for( String column : columns ) {
logger.info( "COLUMN NAME:"+column );
}
logger.info("===============================================================================================");
if(list.contains(value))
uniqueCheck=true;
logger.info("HAVE MORE RECORDS:"+uniqueCheck);
logger.info("END");
}catch (Exception e) {
e.printStackTrace();
System.out.println("XX:ERROR E:"+e);
}finally {
f.close();
}
return uniqueCheck;
}
/**
* Check if FormData exists
* @param prInstanceKey --> process instance key
* @return true of false
* @throws Thor.API.Exceptions.tcFormNotFoundException || Exception
*/
public boolean checkIfFormExists(long prInstanceKey){
tcResultSet dataFormDef;
f = Platform.getService(tcFormInstanceOperationsIntf.class);
try{
dataFormDef = f.getProcessFormData(prInstanceKey);
}catch(Thor.API.Exceptions.tcFormNotFoundException s){
return false;
}catch(Exception e){
e.printStackTrace();
System.out.println("XX:ERROR E:"+e);
return false;
}
return true;
}
/**
* Contigence plan if first method using APIS did not work properly
* Check ||| Collect information from ParentID or childID
* @param object --> process form table name
* @param field --> field that should be unique
* @param value --> that need to be checked
* @return
* @throws Exception
*/
public boolean checkUniqueValue(String object, String field, String value) throws Exception {
try {
logger.info( "Running checkUniqueValue Object:"+object+" FIELD:"+field+" VALUE:"+value);
String SQL_CHECK_IF_VALUE_EXISTS =
"select count("+field+
") as count from "+object+
" where "+field+
"='"+value+"'";
tcDataSet dataSet = new tcDataSet();
System.out.println("CHECK count SQL:"+SQL_CHECK_IF_VALUE_EXISTS);
System.out.println("tcDataProvider:"+tcDataProviderObj);
logger.debug(" Sql Query is : "+SQL_CHECK_IF_VALUE_EXISTS);
dataSet.setQuery(tcDataProviderObj, SQL_CHECK_IF_VALUE_EXISTS);
System.out.println("1:SETQUERY");
dataSet.executeQuery();
System.out.println("2:EXECUTEQUERY");
dataSet.next();
System.out.println("3:GETTING COUNT VALUE");
countValue = dataSet.getInt("count");
System.out.println("4:COLUMN VALUE count SQL:"+countValue);
if(countValue>=1){
uniqueCheck=true;
System.out.println("NOT UNIQUE VALUE ||| RAISE AN EXCEPTION");
throw new Exception(OIMConstants.ENT_ASSINGMENT_ERROR);
}
}catch (Exception e) {
e.printStackTrace();
System.out.println("XX:ERROR E:"+e);
}finally {
f.close();
}
return uniqueCheck;
}