Forum Discussion
Can you share your method ? Ideally on before Add, you can get the this.getID()
here is my code:
[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:af4d0077-d7d7-48b7-b30c-82b401df821a:type=text&text=System.Diagnostics.Debugger.Log%280%2C%22message%22%2C%20%22checking%20values%20...%22%29%3B%0D%0A%0D%0AInnovator%20inn%20%3D%20this.getInnovator%28%29%3B%0D%0A%0D%0AItem%20FCitemType%20%3D%20inn.newItem%28%22itemtype%22%2C%20%22get%22%29%3B%0D%0A%20%20%20%20FCitemType.setProperty%28%22name%22%2C%22ZFCcontrainteTemplate%22%29%3B%0D%0A%20%20%20%20%2F%2F%20FCitemType.setAttribute%28%22select%22%2C%20%22name%22%29%3B%0D%0A%20%20%20%20%2F%2F%20FCitemType.setAttribute%28%22where%22%2C%20%22%5BZFCcontrainteTemplate%5D.name%20like%20%27testTemplate%27%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Ffirst%20i%20get%20all%20props%20of%20my%20item%20type%20starting%20with%20z%0D%0A%20%20%20%20%0D%0A%20%20%20%20%0D%0A%20%20%20%20Item%20relproperty%20%3D%20FCitemType.createRelationship%28%22property%22%2C%20%22get%22%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20relproperty.setAttribute%28%22select%22%2C%20%22name%22%29%3B%0D%0A%20%20%20%20%2F%2F%20property.setPropertyCondition%28%22label%22%2C%20%22like%22%29%3B%0D%0A%20%20%20%20%2F%2F%20property.setProperty%28%22label%22%2C%20%22z%25%22%29%3B%0D%0A%20%20%20%20relproperty.setAttribute%28%22where%22%2C%20%22%5BProperty%5D.name%20like%20%27z%25%27%22%29%3B%0D%0A%20%20%20%20%2F%2F%20console.log%28%22ttoot%22%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%2F%2F%20console.log%28%22FCitemType%20before%20apply%3A%20%22%2BFCitemType.ToString%28%29%29%3B%0D%0A%20%20%20%20System.Diagnostics.Debugger.Log%280%2C%22message%22%2C%20%22%5CnFCitemType%20before%20apply%3A%20%22%2BFCitemType.ToString%28%29%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20FCitemType%20%3D%20FCitemType.apply%28%29%3B%0D%0A%20%20%20%20if%28FCitemType.isError%28%29%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20console.log%28%22FCitemType%20error%3A%22%2BFCitemType.getErrorDetail%28%29%29%3B%0D%0A%20%20%20%20%20%20%20%20return%20inn.newError%28FCitemType.getErrorDetail%28%29%29%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20System.Diagnostics.Debugger.Log%280%2C%22message%22%2C%20%22%5Cnitem%20Count%3A%20%22%2BFCitemType.getItemCount%28%29%29%3B%0D%0A%20%20%20%20%2F%2F%20console.log%28%22item%20Count%3A%20%22%2BFCitemType.getItemCount%28%29%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20Item%20FCrelItemTypeMyprops%20%3D%20FCitemType.getItemsByXPath%28%22%2F%2FItem%5B%40type%3D%27Property%27%5D%22%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20if%28FCrelItemTypeMyprops.isError%28%29%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20console.log%28%22FCitemType%20error%3A%22%2BFCrelItemTypeMyprops.getErrorDetail%28%29%29%3B%0D%0A%20%20%20%20%20%20%20%20return%20inn.newError%28FCrelItemTypeMyprops.getErrorDetail%28%29%29%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20System.Diagnostics.Debugger.Log%280%2C%22message%22%2C%20%22%5Cnrelitem%20Count%3A%20%22%2BFCrelItemTypeMyprops.getItemCount%28%29%29%3B%0D%0A%20%20%20%20%2F%2F%20console.log%28%22relitem%20Count%3A%20%22%2BFCrelItemTypeMyprops.getItemCount%28%29%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20for%28int%20i%3D0%3B%20i%3CFCrelItemTypeMyprops.getItemCount%28%29%3Bi%2B%3D3%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20Item%20template%20%3D%20%20inn.getItemById%28%22ZFCcontrainteTemplate%22%2C%20this.getID%28%29%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Fand%20then%20i%20want%20to%20check%20properties%20two%20by%20two%20%0D%0A%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20Item%20FCprop1%3DFCrelItemTypeMyprops.getItemByIndex%28i%2B1%29%3B%0D%0A%20%20%20%20%20%20%20%20string%20varFiltrPropName%3D%20FCprop1.getProperty%28%22name%22%29%3B%0D%0A%20%20%20%20%20%20%20%20string%20isEmpt1%20%3Dtemplate.getProperty%28varFiltrPropName%29%3B%0D%0A%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20if%20%28isEmpt1%3D%3Dnull%29%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20%7BisEmpt1%3D%22is%20null%22%3B%7D%0D%0A%20%20%20%20%20%20%20%20System.Diagnostics.Debugger.Log%280%2C%22message%22%2C%22%5Cn%22%2B%20varFiltrPropName%20%2B%20%22%20%3D%20%22%2B%20isEmpt1%29%3B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20console.log%28FCprop1.getProperty%28%22name%22%29%20%2B%20%22%20%3D%20%22%2B%20isEmpt1%29%3B%0D%0A%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20Item%20FCprop2%3DFCrelItemTypeMyprops.getItemByIndex%28i%2B2%29%3B%0D%0A%20%20%20%20%20%20%20%20string%20isEmpt2%20%3Dtemplate.getProperty%28FCprop2.getProperty%28%22name%22%29%29%3B%0D%0A%20%20%20%20%20%20%20%20string%20operatorPropName%3D%20FCprop2.getProperty%28%22name%22%29%3B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20if%20%28isEmpt2%3D%3Dnull%29%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20%7BisEmpt2%3D%22is%20null%22%3B%7D%0D%0A%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20System.Diagnostics.Debugger.Log%280%2C%22message%22%2C%22%5Cn%22%2B%20operatorPropName%20%2B%20%22%20%3D%20%22%2B%20isEmpt2%29%3B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20console.log%28FCprop2.getProperty%28%22name%22%29%20%2B%20%22%20%3D%20%22%2B%20isEmpt2%29%3B%0D%0A%20%20%20%20%20%20%20%20string%5B%5D%20FCprop1tab%20%3D%20varFiltrPropName.Split%28%27_%27%29%3B%0D%0A%20%20%20%20%20%20%20%20string%5B%5D%20FCprop2tab%20%3D%20operatorPropName.Split%28%27_%27%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20if%28FCprop1tab%5B0%5D%3D%3DFCprop2tab%5B0%5D%20%26%26%20FCprop1tab%5B1%5D%3D%3DFCprop2tab%5B1%5D%29%20%2F%2F%20checking%20that%20it%20compares%20the%20right%20props%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%28isEmpt1%20%3D%3D%20null%20%26%26%20isEmpt2%20%21%3D%20null%29%7C%7C%28isEmpt2%20%3D%3D%20null%20%26%26%20isEmpt1%20%21%3D%20null%20%29%20%29%20%20%20%20%20%20%20%2F%2F%20i%20need%20the%20two%20properties%20to%20be%20in%20same%20state%20%28if%20one%20is%20undefined%2Fnull%20the%20other%20one%20should%20be%20too%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20System.Diagnostics.Debugger.Log%280%2C%22message%22%2C%20%22%5Cnerreur%20au%20niveau%20de%20la%20valeur%20de%20filtrage%20et%20de%20l%27operateur%20de%20la%20propriete%20%22%2BFCprop1tab%5B1%5D%2B%22%20pour%20les%20%22%2BFCprop2tab%5B0%5D.Substring%281%29%2B%20%22.%5CnSi%20une%20valeur%20de%20filtrage%20est%20definie%20son%20operateur%20doit%20l%27etre%20aussi%22%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20inn.newError%28%22erreur%20au%20niveau%20de%20la%20valeur%20de%20filtrage%20et%20de%20l%27operateur%20de%20la%20propriete%20%22%2BFCprop1tab%5B1%5D%2B%22%20pour%20les%20%22%2BFCprop2tab%5B0%5D.Substring%281%29%2B%20%22.%5CnSi%20une%20valeur%20de%20filtrage%20est%20definie%20son%20operateur%20doit%20l%27etre%20aussi.%22%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20else%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20System.Diagnostics.Debugger.Log%280%2C%22message%22%2C%20%22erreur%20decallage%20dans%20les%20props%22%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20inn.newError%28%22erreur%20decallage%20dans%20les%20props%22%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20console.log%20return%20inn.newError%20%20alert%0D%0A%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20return%20this%3B%0D%0A%20%20%20%20System.Diagnostics.Debugger.Break%28%29%3B]