Hi Adhik,
a trigger like this should do (see attachment)
....
/**
* creates the Command to Run the temporary Query
* @return Packages.com.mks.api.Command queryCommand
*/
function getRunQueryCommand()
{
var queryCommand = new Packages.com.mks.api.Command(Packages.com.mks.api.Command.IM, "issues");
queryCommand.addOption(new Packages.com.mks.api.Option("fields", "Type,ID"));
var queryBuf = new java.util.StringBuffer();
queryBuf.append('(');
queryBuf.append("field[");
queryBuf.append(singletonField);
queryBuf.append("]=");
queryBuf.append(currentValue);
queryBuf.append('"');
queryBuf.append(')');
queryCommand.addOption(new Packages.com.mks.api.Option("queryDefinition", queryBuf.toString()));
return queryCommand;
}
/**
* check whether the temp query finds at least one Item of the same value as the current Item
* @return true if successful; else always false
*/
function check4Singleton()
{
// Create an API Object to run IM Command Line commands
var api = environmentBean.createAPISessionBean();
// Execute the Query command
var runQueryOut = api.executeCmd(getRunQueryCommand());
if( createQueryOut.getExitCode() == 0 ){
logDebug("Successfully run temporary Query");
if( runQueryOut.getExitCode() == 0 ){
// analyse result
if (runQueryOut.getWorkItemListSize() == 0 ){
logDebug("no duplicate found, proceed");
return true;
}
else{
print("found "+runQueryOut.getWorkItemListSize()+" Item(s) of the exact same value for Field "+ singletonField );
logDebug("abort");
return false;
}
}
else
{
print("Failed to run temporary Query");
logDebug("leave check4Singleton()");
return false;
}
} // END if( createQueryOut.getExitCode() == 0 )
else{
print("Failed to create temporary Query");
}
return false;
}
....