locked
I need a definitive answer to a SharePoint 2007 Question about importing list items RRS feed

  • Question

  • We have been researching this issue for 3 months without a definitive solution. CAN YOU IMPORT LIST ROWS to a NEW LIST WITHOUT CHANGING the CREATED BY FIELD???

    We have a list with a workflow that depends on the Created by field. We need to import fiscal 2013 list items into a new list. Every thing we have tried changes the Created by field to the person who did the import. We have tried data sheet view. The Created by and Created fields are read only and wont copy. We have tried Site Actions>Manage Content and Structure to no avail. We hav tried exporting the list to an Excel Spread sheet and then creating a new list. The Created by field is changed to a text field. When you change the view to show the true Created by field again it's the person who did the import. We have tried a third party solution that promised to maintain the metadeta but it did not work. We have even tried PowerShell commands but could not get them to work. I am begining to suspect it is impossible import list items and maintain the Created by field with the original user. Can anyone confirm that this is true or has someone found a way around this issue???

    Wednesday, July 24, 2013 3:28 PM

Answers

  • Your definitive answer is No

    1. Importing a spreadsheet will result in the importing user account and the time of the import being used
    2. Editing via datasheet will result in the same thing
    3. Using the Manage Content & Structure results in the same thing

    What third party tool did you use?  I've successfully managed to do this via the Metalogix Content Manager, a utility that uses the ShaePoint API to move this data across with the original timestamps and authors


    Cheers,

    Steven Andrews

    SharePoint Business Analyst

    Blog: Steve's SharePoint Space  Twitter:   LinkedIn:   Facebook:

    Note: Posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.

    Thursday, July 25, 2013 12:02 PM
    Answerer
  • hi

    yes, you can do it programmatically. Solution consists from several steps:

    1. create console program or script which will iterate through all list items and store value of Created By field e.g. in text file in the following format:

    {some_id}#{created by}

    (separate line for each item). First field is some identifier of the item which will be the same on the source and target sites (SPListItem.ID or SPListItem.UniqueId may or may not be suitable for this. E.g. when you export content with SPExport API with retain object identity = true, guids remain the same on target an source, and you may use SPListItem.UniqueId for that). You also may use some custom field value for identifying list items if they contain unique values.

    2. import list items to the target list. Created By field will be changed, but you may change them programmatically from the text file from step 1, e.g. like shown here: Can we update the values of "Created By", "Modified By" columns in SharePoint lists.


    Blog - http://sadomovalex.blogspot.com
    Dynamic CAML queries via C# - http://camlex.codeplex.com

    Thursday, July 25, 2013 12:28 PM

All replies

  • Your definitive answer is No

    1. Importing a spreadsheet will result in the importing user account and the time of the import being used
    2. Editing via datasheet will result in the same thing
    3. Using the Manage Content & Structure results in the same thing

    What third party tool did you use?  I've successfully managed to do this via the Metalogix Content Manager, a utility that uses the ShaePoint API to move this data across with the original timestamps and authors


    Cheers,

    Steven Andrews

    SharePoint Business Analyst

    Blog: Steve's SharePoint Space  Twitter:   LinkedIn:   Facebook:

    Note: Posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.

    Thursday, July 25, 2013 12:02 PM
    Answerer
  • hi

    yes, you can do it programmatically. Solution consists from several steps:

    1. create console program or script which will iterate through all list items and store value of Created By field e.g. in text file in the following format:

    {some_id}#{created by}

    (separate line for each item). First field is some identifier of the item which will be the same on the source and target sites (SPListItem.ID or SPListItem.UniqueId may or may not be suitable for this. E.g. when you export content with SPExport API with retain object identity = true, guids remain the same on target an source, and you may use SPListItem.UniqueId for that). You also may use some custom field value for identifying list items if they contain unique values.

    2. import list items to the target list. Created By field will be changed, but you may change them programmatically from the text file from step 1, e.g. like shown here: Can we update the values of "Created By", "Modified By" columns in SharePoint lists.


    Blog - http://sadomovalex.blogspot.com
    Dynamic CAML queries via C# - http://camlex.codeplex.com

    Thursday, July 25, 2013 12:28 PM