Good day all,
I have ItemType sm_ITA with a Relationship of sm_ITA_Assignment. sm_ITA_Assignment (Assignments) is not related to another ItemType. When an Assignment is added or deleted I need the sm_license_count property of the parent sm_ITA to be updated with the count of Assignments. I have read several posts that seemed to be similar to this, but can't get anything to work. I have methods that will change sm_license_count on a save if it doesn't match the Assignment count, but it will not allow me to add or delete Assignments. I have a method that will make the update, but the sm_ITA has to be saved twice. Thanks for any help that can be provided of what I am missing.
Will Update Value - sm_ITA Server Event onBeforeUpdate - Doesn't allow changes, additions, or deletions to Assignments Won't Update - sm_ITA Server Event onAfterUpdate |
this.fetchRelationships("sm_ITA_Assignment"); Item RelationshipsItem = this.getRelationships("sm_ITA_Assignment"); string count = "" + RelationshipsItem.getItemCount(); this.setProperty("sm_license_count", count); return this; |
Item ITA ("edit") - onBeforeUpdate & onAfterUpdate - Returns an error of "An item with the same key has already been added." Item ITA ("get") - onBeforeUpdate & onAfterUpdate - Does nothing var ITA ("edit") - onBeforeUpdate & onAfterUpdate - Returns an error of "An item with the same key has already been added." var ITA ("get") - onBeforeUpdate & onAfterUpdate - Does nothing |
Innovator inn = this.getInnovator(); int currentValue = Int32.Parse(this.getProperty("sm_license_count")); Item relItm = inn.newItem("sm_ITA_Assignment", "get"); relItm.setProperty("source_id", this.getID()); relItm = relItm.apply(); int totalCount = relItm.getItemCount(); // Number of entries in sm_ITA_Assignements string count = totalCount.ToString(); if(currentValue != totalCount) { Item ITA = inn.newItem ("sm_ITA", "edit"); // have tried with get ITA.setID (this.getID()); ITA.setProperty ("sm_license_count", count); ITA = ITA.apply(); } return this; |