You could try to perform multiple find actions. First find on attribute 1, this will result in a list. Check if the result is not empty, if so continue with the check on the second attribute in the new list. Check if the second find returns results, if so continue checking other attributes. Repeating this for all the attributes that need to be checked will deliver the result you want.
For example the list contains 3 objects already: A,B,C B,C,C A,C,C The object you are creating will be A,B,C The check on attribute 1 will result in the list: A,B,C A,C,C Checking the second attribute will result in the list A,B,C (1 object) Checking the third attribute will result in the non empty list containing: A,B,C So now you know the new object is not unique, as A,B,C was already in the list to be committed. Checking for a new object A,B,D will follow the same pattern and will result in check 1 list: A,B,C A,C,C The second attribute check will result in A,B,C The third attribute check will result in an empty list, this is the indication that the new object should be added to the list.
Hope this helps you in finding a solution.
Just to make sure I am understanding the question.......
You are using a MF that has an iterating LOOP to create several objects in the same (batch) process ??
OK... as you are creating multiple records, what source are you working off? Because when you are generating them in the MF your generation-process should be modeled to avoid creating duplicate composite-keys.
What is the base/input for the iterating LOOP ?
Not sure if I have understand your question clearly, but is a retieve from Database with Xpath contraints not sufficiënt for this issue?