I have a form library in SP 2010 with a template. This allows users to submit a form and also to edit a submitted form. I have set it up to create a unique filename on first submission and to overwrite existing files. This works great if I am just using it without doing anything with the data or library in workflows. I have found that there is a profound difference between save and submit that seems to not be talked about as I really can't find a way around the problem. In essence, I have found that if I edit an existing form in the browser and click submit, the action is considered to be creating a new item regardless of it overwriting an existing item. It does in fact overwrite an existing item, but if you attach a workflow from Visual Studio or SharePoint Designer that runs when an item is edited, this does not execute because you are submitting a new item. The benefit of using submit though is that it will close the form and you can control the filename. However, if you edit a form and instead click the Save button, it will save the data and also fire an edit workflow. But in this case, the form does not close and the user has to click the close button to close it which is an ugly user experience.
So, is there a way to save and close the form without code? (Can't seem to find it!) Am I missing something? (Could be!)
UPDATE 1: 2:50 PM 9/18/2014 I have found that the majority of my real issue is that I want to move items between folders in the library. I DO NOT want to use item level permissions for each item even though I can. I am using folders for permissions and then moving items based on information in the form to the correct folder. If I save the item then the workflow runs and moves the item correctly, but I have to then click close. If I submit the item at this point, it creates a new item in the correct folder with the same file name!!
This is because the file does not exist in the root folder so it does not appear to be new. I still think folders are better here that full item level permissions so I am trying to resolve this.