{"id":2006,"date":"2018-07-18T13:56:21","date_gmt":"2018-07-18T13:56:21","guid":{"rendered":"http:\/\/elbsolutions.com\/projects\/?p=2006"},"modified":"2022-02-03T11:24:28","modified_gmt":"2022-02-03T17:24:28","slug":"sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives","status":"publish","type":"post","link":"https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/","title":{"rendered":"Sharepoint &#8211; add doc entry as placeholder long before real unknown-type arrives"},"content":{"rendered":"<p>So &#8220;we must use Sharepoint &#8211; it is our corporate answer for everything&#8221; &#8230; Ok, but it is the wrong tool for &#8230; never mind &#8211; lets just get a solution and in doing so a lot of learning results &#8230; and ALOT did. Lets state that<\/p>\n<ul>\n<li>SharePoint assumes you have the document and its type (eg. pdf, xlsx etc.) BEFOREHAND &#8211; this is not our case<\/li>\n<li>a lot of programmatic ways of getting info into SharePoint have their nuances, advantages and disadvantages. Some are being phased out or already are<\/li>\n<\/ul>\n<p>In our example we do NOT have the document before hand NOR do we know what the document from our vendors might be. It might a pdf, might be excel or might be word. We have a Document Library and the admin staff will be editing various dates (columns) long before the docs come in all the way. To start, this SharePoint placeholder list is auto-generated from an excel spreadsheet that states project, placeholder name,\u00a0 code and how many of that item we should make in SharePoint .<!--more--><\/p>\n<h1>Steps (links at bottom)<\/h1>\n<ul>\n<li>SOAP: we start off with making a blank item with no doc using a SOAP web request using VBA in Excel\n<ul>\n<li>this creates a HIDDEN FILE in the windows explorer called 15_.000 (no you can&#8217;t EVER see it &#8211; but try to copy a file over-top of it and Explorer knows it is there. In SharePoint it is an unknown file type called 15_. This assumes that\u00a0 your ID of your item is 15.<\/li>\n<\/ul>\n<\/li>\n<li>You CANNOT rename a file to another type &#8211; so you can&#8217;t drag 15_.xls over-top of it &#8211; that makes a new item. You CANNOT rename the extension by hand. You CANNOT (easily) rename it in the explorer as username\/password is required.\n<ul>\n<li>REST: Ahhhh &#8211; you can do a &#8220;move&#8221; using rest to rename<\/li>\n<\/ul>\n<\/li>\n<li>Auto-rename. Make a web page where the user can drag the new file onto a target. The app at the far end can a) rename the file and then upload it over top of the renamed file.<a href=\"https:\/\/www.lynda.com\/SharePoint-tutorials\/Create-link-document-document-library\/576696\/615918-4.html\"> To do this we must make a web-link (calculation column)<\/a> . Oddly enough to make a web link &#8211; change the type to numeric &#8211; then it is clickable\n<ul>\n<li>in my case I<a href=\"https:\/\/sharepoint.stackexchange.com\/questions\/200019\/best-approach-to-have-a-pop-up-window-when-user-click-on-a-left-side-link\"> made a popup window by adding some JavaScript<\/a> that responds when the link is clicked. Add a &#8220;Script&#8221; webpart with &lt;Script&gt;&#8230;&lt;\/script&gt; nodes<\/li>\n<\/ul>\n<\/li>\n<li>Now that we have SharePoint &#8211; we use it as a data source in Excel and we can do some stats to see the progress of the documents vs. the schedule (what docs have arrived, have they arrived on time, how many are past their deadline etc. )<\/li>\n<\/ul>\n<h1>Resources implicitly used above<\/h1>\n<ul>\n<li><a href=\"https:\/\/abstractspaces.wordpress.com\/2008\/05\/07\/sharepoint-column-names-internal-name-mappings-for-non-alphabet\/\">characters to escape in SharePoint field name<\/a><\/li>\n<li>Xpath w. SharePoint return xml and VBA (MSXML)\n<ul>\n<li>Using the debug mode &#8211; go the hard way and dig for your node &#8211; find out its namespace. Then follow the <a href=\"https:\/\/support.microsoft.com\/en-ca\/help\/294797\/how-to-specify-namespace-when-querying-the-dom-with-xpath\">example in this article<\/a> and use xpath=\/\/a:myNode &#8211; magic!<\/li>\n<\/ul>\n<\/li>\n<li>REST\n<ul>\n<li><a href=\"https:\/\/social.technet.microsoft.com\/Forums\/Lync\/en-US\/bc445ec5-6514-4da3-9101-7ef1a3c3fbd6\/how-to-do-crud-operations-using-rest-api-from-excel-vba-?forum=sharepointdevelopment\">CRUD with VBA<\/a> (<a href=\"https:\/\/www.codeproject.com\/articles\/990131\/crud-operation-to-list-using-sharepoint-rest-api\">another<\/a>, )\u00a0 , <a href=\"https:\/\/github.com\/VBA-tools\/VBA-Web\/issues\/63\">POST example<\/a>, <a href=\"https:\/\/stackoverflow.com\/questions\/19553476\/how-to-make-rest-call-with-vba-in-excel\">getting REST reference in VBA<\/a>, <a href=\"https:\/\/www.codeproject.com\/articles\/990131\/crud-operation-to-list-using-sharepoint-rest-api\">link I used in VBA<\/a><\/li>\n<li><a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/office\/dn450841.aspx#bk_FileMoveTo\">Files\/Folders REST for Sharepoint<\/a>,<\/li>\n<li><a href=\"https:\/\/social.msdn.microsoft.com\/Forums\/lync\/en-US\/537be03e-d9ac-4073-b000-d56aab963a16\/sharepoint-2013-moveto-rest-call-to-move-a-file-from-one-library-to-anther?forum=sharepointdevelopment\">Filerename\/MoveTo example<\/a>, <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/office\/dn450841.aspx#bk_FileMoveTo\">another link &#8211; one I used<\/a><\/li>\n<li><a href=\"https:\/\/social.technet.microsoft.com\/Forums\/Lync\/en-US\/bc445ec5-6514-4da3-9101-7ef1a3c3fbd6\/how-to-do-crud-operations-using-rest-api-from-excel-vba-?forum=sharepointdevelopment\">Get List Item<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/stackoverflow.com\/questions\/25037423\/text-format-value-for-sharepoint-date-and-time-column\">Sharepoint DateFormat<\/a> in VBA (<a href=\"https:\/\/stackoverflow.com\/questions\/20375233\/excel-vba-convert-text-to-date\">convert date format<\/a>)<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/PnP-JS-Core\/issues\/638\">Getting xml content OUT of your SharePoint Doc Library<\/a> and into a file and load it into Excel. Don&#8217;t do this. There are other ways in Excel to do this. Excel messes up the XML import if you just &#8220;File-&gt;Open&#8221; the xml from a sharepoint file. Under Excel&#8217;s data ribbon &#8211; there are data import tools. Record a macro to learn the VBA\n<ul>\n<li>Other links\n<ul>\n<li><a href=\"https:\/\/rayamondo.wordpress.com\/2013\/05\/23\/sharepoint-2010-retrieve-sharepoint-listlibrary-as-xml\/\">retreive sharepoint list library as xml<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.stackexchange.com\/questions\/135936\/how-to-get-all-items-in-a-view-using-rest-api\">how to get al items in a view using rest-api<\/a><\/li>\n<li><a href=\"https:\/\/social.msdn.microsoft.com\/Forums\/sharepoint\/en-US\/1dde27c4-b649-4c4b-bb7f-4b50452ac5ce\/a-caml-query-to-return-all-items-in-a-list?forum=sharepointdevelopmentlegacy\">caml query for REST<\/a><\/li>\n<li><a href=\"https:\/\/jsonformatter.curiousconcept.com\/\">json formatter<\/a><\/li>\n<li><a href=\"https:\/\/stackoverflow.com\/questions\/13620011\/how-to-fetch-data-from-xml-file-to-excel-sheet-using-vba\">how to fetch data from xml file to excel using vba<\/a><\/li>\n<li><a href=\"https:\/\/www.techrepublic.com\/article\/pull-data-into-microsoft-excel-with-web-queries\/\">pull data into ms excel with web query<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>I never got this working but there are <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/advanced-rest-client\/hgmloofddffdnphfgcellkdfbfbjeloo?utm_source=chrome-app-launcher-info-dialog\">REST clients to test Sharepoint<\/a>. I found this a major pain and rolled my own in VBA<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So &#8220;we must use Sharepoint &#8211; it is our corporate answer for everything&#8221; &#8230; Ok, but it is the wrong tool for &#8230; never mind &#8211; lets just get a solution and in doing so a lot of learning results &#8230; and ALOT did. Lets state that SharePoint assumes you have the document and its [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,22],"tags":[],"class_list":["post-2006","post","type-post","status-publish","format-standard","hentry","category-general","category-sharepoint"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Sharepoint - add doc entry as placeholder long before real unknown-type arrives - ELB Solutions.com Inc.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sharepoint - add doc entry as placeholder long before real unknown-type arrives - ELB Solutions.com Inc.\" \/>\n<meta property=\"og:description\" content=\"So &#8220;we must use Sharepoint &#8211; it is our corporate answer for everything&#8221; &#8230; Ok, but it is the wrong tool for &#8230; never mind &#8211; lets just get a solution and in doing so a lot of learning results &#8230; and ALOT did. Lets state that SharePoint assumes you have the document and its [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/\" \/>\n<meta property=\"og:site_name\" content=\"ELB Solutions.com Inc.\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-18T13:56:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-03T17:24:28+00:00\" \/>\n<meta name=\"author\" content=\"Etienne Bley\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Etienne Bley\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\\\/\"},\"author\":{\"name\":\"Etienne Bley\",\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/#\\\/schema\\\/person\\\/51e717c68f4f5917c63baf88f0896c39\"},\"headline\":\"Sharepoint &#8211; add doc entry as placeholder long before real unknown-type arrives\",\"datePublished\":\"2018-07-18T13:56:21+00:00\",\"dateModified\":\"2022-02-03T17:24:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\\\/\"},\"wordCount\":691,\"articleSection\":[\"General\",\"Sharepoint\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\\\/\",\"url\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\\\/\",\"name\":\"Sharepoint - add doc entry as placeholder long before real unknown-type arrives - ELB Solutions.com Inc.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/#website\"},\"datePublished\":\"2018-07-18T13:56:21+00:00\",\"dateModified\":\"2022-02-03T17:24:28+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/#\\\/schema\\\/person\\\/51e717c68f4f5917c63baf88f0896c39\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sharepoint &#8211; add doc entry as placeholder long before real unknown-type arrives\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/#website\",\"url\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/\",\"name\":\"ELB Solutions.com Inc.\",\"description\":\"Bringing all your IT Pieces together\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/#\\\/schema\\\/person\\\/51e717c68f4f5917c63baf88f0896c39\",\"name\":\"Etienne Bley\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f8971dfb65b25b768415568f83247df4057f15d037137e386928a804e2c997b9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f8971dfb65b25b768415568f83247df4057f15d037137e386928a804e2c997b9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f8971dfb65b25b768415568f83247df4057f15d037137e386928a804e2c997b9?s=96&d=mm&r=g\",\"caption\":\"Etienne Bley\"},\"url\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/author\\\/etienne-bley\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Sharepoint - add doc entry as placeholder long before real unknown-type arrives - ELB Solutions.com Inc.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/","og_locale":"en_US","og_type":"article","og_title":"Sharepoint - add doc entry as placeholder long before real unknown-type arrives - ELB Solutions.com Inc.","og_description":"So &#8220;we must use Sharepoint &#8211; it is our corporate answer for everything&#8221; &#8230; Ok, but it is the wrong tool for &#8230; never mind &#8211; lets just get a solution and in doing so a lot of learning results &#8230; and ALOT did. Lets state that SharePoint assumes you have the document and its [&hellip;]","og_url":"https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/","og_site_name":"ELB Solutions.com Inc.","article_published_time":"2018-07-18T13:56:21+00:00","article_modified_time":"2022-02-03T17:24:28+00:00","author":"Etienne Bley","twitter_misc":{"Written by":"Etienne Bley","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/#article","isPartOf":{"@id":"https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/"},"author":{"name":"Etienne Bley","@id":"https:\/\/elbsolutions.com\/projects\/#\/schema\/person\/51e717c68f4f5917c63baf88f0896c39"},"headline":"Sharepoint &#8211; add doc entry as placeholder long before real unknown-type arrives","datePublished":"2018-07-18T13:56:21+00:00","dateModified":"2022-02-03T17:24:28+00:00","mainEntityOfPage":{"@id":"https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/"},"wordCount":691,"articleSection":["General","Sharepoint"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/","url":"https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/","name":"Sharepoint - add doc entry as placeholder long before real unknown-type arrives - ELB Solutions.com Inc.","isPartOf":{"@id":"https:\/\/elbsolutions.com\/projects\/#website"},"datePublished":"2018-07-18T13:56:21+00:00","dateModified":"2022-02-03T17:24:28+00:00","author":{"@id":"https:\/\/elbsolutions.com\/projects\/#\/schema\/person\/51e717c68f4f5917c63baf88f0896c39"},"breadcrumb":{"@id":"https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/elbsolutions.com\/projects\/sharepoint-add-doc-entry-as-placeholder-long-before-real-unknown-type-arrives\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/elbsolutions.com\/projects\/"},{"@type":"ListItem","position":2,"name":"Sharepoint &#8211; add doc entry as placeholder long before real unknown-type arrives"}]},{"@type":"WebSite","@id":"https:\/\/elbsolutions.com\/projects\/#website","url":"https:\/\/elbsolutions.com\/projects\/","name":"ELB Solutions.com Inc.","description":"Bringing all your IT Pieces together","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/elbsolutions.com\/projects\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/elbsolutions.com\/projects\/#\/schema\/person\/51e717c68f4f5917c63baf88f0896c39","name":"Etienne Bley","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f8971dfb65b25b768415568f83247df4057f15d037137e386928a804e2c997b9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f8971dfb65b25b768415568f83247df4057f15d037137e386928a804e2c997b9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f8971dfb65b25b768415568f83247df4057f15d037137e386928a804e2c997b9?s=96&d=mm&r=g","caption":"Etienne Bley"},"url":"https:\/\/elbsolutions.com\/projects\/author\/etienne-bley\/"}]}},"_links":{"self":[{"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/posts\/2006","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/comments?post=2006"}],"version-history":[{"count":6,"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/posts\/2006\/revisions"}],"predecessor-version":[{"id":2012,"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/posts\/2006\/revisions\/2012"}],"wp:attachment":[{"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/media?parent=2006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/categories?post=2006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/tags?post=2006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}