Symptoms
The client renamed a column in SharePoint and noticed that his fields in his SharePoint integrated process was not getting updated. He then tried to rename the field on the "Process/Activity Data" tab, but noticed that it does not like the space and open and close brackets. IE: ( ).
Diagnoses
To better explain the issue, I have broken thing up into to different items.
- Renaming a column in SharePoint only changes its display name. (The system name still stays the same)
- "Special characters" are handled differently in the object browser and we have to "escape" these characters in order to work with them.
Resolution
Renaming a column in SharePoint only changes its display name. If you create a new process and integrate it with the same list, you will see that the column name in the XML field is still the same as what it was before you renamed it. In this case, if you create a new process and integrate with the same list (After you renamed the column) you will notice that "ColumnName" will still be "ColumnName".
If you want the XML fields to show the updated name, you will have to either delete the old "ColumnName" column and create a NEW "ColumnName (Changed)" column. To get that column to show up in your existing process, you will have to run through the SharePoint Workflow Integration Process Wizard (SP WFI PW) again, so that we can get the new schema. You should notice that your new field is on the "Metadata Mapping" page. Once you have run through the SP WFI PW again, you will have to refresh the "XML Fields" node under the "Process/Activity Date" tab in the K2 Object Browser.
2.) "Special characters" are handled differently in XML and the object browser. We have to "escape" these characters in order to work with them. If you create a column called "ColumnName" it does not contain any characters that needs to be "escaped" to be considered "Valid XML". It is just one string, with no spaces and is nice and clean. If you throw a space in there, then we have to "escape" that space for the XML to be valid.
As an example, lets say we create a column called "Column Name". (Notice the space.) For it to be considered "Valid XML", it has to be saved as "Column_x0020_Name". When you throw spaces AND brackets "()" in the mix, it becomes even more complicated. As per our scenario, if you create a column called "ColumnName (Changed)", for it to be considered "Valid XML" you will have to same it like this: "ColumnName_x0020__x0028_Changed_x0029_".