Sharing anonimously a site in Sharepoint online 2013
Hi,
I have created a subsite under the url https://mydomain.sharepoint.com/sites/mysite. It is a blog.
I want to allow anonymous users (sending them a link) to access the site but I can't figure out the way to do that.
I can do that with a document (sending an anonymous link) but not with a site. Is it possible that Microsoft do not permit that?
I don't want to ask users to registrate a Microsoft account.
Any help welcome. Thanks in advance.
It is not possible to provide anonymous access to a SharePoint site in SharePoint Online. Instead you need to create the "Public Site" which has very limited functionality, but is anonymous accessible.
The only option is to share with "external users", as you stated, using a Microsoft Account.
Trevor Seward
Follow or contact me at...
  
This post is my own opinion and does not necessarily reflect the opinion or view of Microsoft, its employees, or other MVPs.
Similar Messages
-
How to add a form to a public site with sharepoint online 2013 (plan2)
We need to add a form to a public site: in particular a form where candidates can apply submitting some info and sending a file (cv).
What would you recommend to use?
Thank you,
ERNo, our Sharepoint is not bundled in any of office 365 subscriptions.
It's a simple SPO Plan 2 subscription.
I don't know if it makes any difference though. -
Can't open Sharepoint Online site in Sharepoint Designer 2013
Hello!
I am trying to open a Sharepoint Online secure site in Sharepoint Designer 2013 (v15). When I try to open the site in Sharepoint Designer i get an error stating:
"Server error: The version of Microsoft SharePoint Foundation running on the server is more recent than the version of SharePoint Designer that you are using. You need a more recent version of SharePoint
Designer."
I used to have the preview version installed, but I uninstalled it and got the latest version I could find (version 15?). I checked the SharePoint version on the server (/_vti_pvt/service.cnf) and it says:
vti_encoding:SR|utf8-nl
vti_extenderversion:SR|16.0.0.1706The public site I have has the same version and it opens just fine in SharePoint Designer 2013. Are there any new versions of SharePoint Designer 2013 available that I have missed? My SharePoint Designer is up to date via Windows Update.I am running the designer on Windows 7 Ultimate x86.I had the same issue today. Here what I have found.
I was using different credentials for my different SharePoint site in SPD 2013. When I try to access my new SharePoint online site (Which has different Account) the SharePoint Designer directly show me
"Server error: The version of Microsoft SharePoint Foundation running on the server is more recent than the version of SharePoint Designer that you are using. You need a more recent version of SharePoint Designer."
then I changed my Account Credentials by
Open SPD 2013
1)click File
2) Click Account
3) Log out from current user name
4) sign in by using the same credential as your new SharePoint Site.
DONE!
I think this error is not useful as it (this error) is not about which version of SharePoint you are using but more about Account credentials.(At least for me) Hope that helps. -
when a new personal site is created on the sharepoint online 2013, then the administrator of this personal site will be himself. we can add another person to the "site collection administrators", then this person have full control of this personal
site.
but my request is : add this personal to the personal site when the personal site is creating, but not after the personal site has created ?
Is anybody know how to do that?Hi,
According to your post, my understanding is that you want to add a special user to the "site collection administrators" of the personal site on sharepoint online when the personal site is creating.
Per my knowledge,
there is no out of the box way to accomplish this with SharePoint.
This is a forum which is supported for SharePoint On-Premise.
Regarding SharePoint Online, for quick and accurate answers to your questions, it is recommended that you initial a new thread in Office 365 forum.
Office 365 forum
http://community.office365.com/en-us/forums/default.aspx
Thanks,
Linda Li
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
[email protected]
Linda Li
TechNet Community Support -
Hi All,
We are migrating from on-premise SharPoint 2010 to SharePoint online 2013.
I have few questions below:
What are the possibilities and limitations of using Out of the box content search webpart?
Also, how the cross site publishing will work in SharePoint online something with managed navigations and product catalog apporach? if it is not supported, then what are the alternatives to acheive the same?
Appriciate any commnets/clarifications.Thanks in advance.
Thanks,
Dhananjay.Here are the possibilities of Content search webparts
http://office.microsoft.com/en-in/office365-sharepoint-online-enterprise-help/configure-a-content-search-web-part-in-sharepoint-HA104119042.aspx
http://office.microsoft.com/en-in/office365-sharepoint-online-enterprise-help/when-to-use-the-content-query-web-part-or-the-content-search-web-part-in-sharepoint-HA104206662.aspx
Compare the strengths and limitations of the Web Parts
It’s important that you understand the strengths and limitations of the two Web Parts because if you choose the wrong one, your site could run into performance problems. You can use both Web Parts to show content that is based on a query. In a simplified
world, here’s how you can decide between the two:
Use the CQWP when you have a limited amount of content, your query is simple, and you don’t expect your content to grow much in the future.
Use the CSWP in all other scenarios when you want to show content that is based on a query.
The table below gives a comparison of the two Web Parts:
Web Part behavior
Content Query Web Part
Content Search Web Part
Query configuration
Easy
You’ll need to know about certain search features such as
managed properties.
Query across large amounts of content
Limited
Yes
Handle complex queries
Limited
Yes
Scale to handle future content growth
Limited
Yes
Display content from other site collections
No
Yes (see
section below)
Design of query results can be customized
Yes, by using XSLT.
Yes, by using HTML.
Maintenance cost in a complex site architecture
High
Small (see
section below)
Narrow down the query results that are displayed in the Web Part
No
Yes, in combination with the
Refinement Web Part.
It was not there previously but then it was added to Office 365
http://blogs.office.com/2013/10/29/search-innovations-for-site-and-portal-design-in-sharepoint-online/
If this helped you resolve your issue, please mark it Answered -
SharePoint Online 2013 Workflows for one List stopped working after 07/08/2014
Our client host application in Office 365 SharePoint Online 2013, and we just found that all workflows for one list stopped working after 7, Aug 2014. It kept displaying pop-up message "Something went wrong. To try again, reload the page and then start
the workflow." when manually start a workflow for this List.
Tested workflow for other list, there's no problem.
Could anyone can help on this issue?Our client host application in Office 365 SharePoint Online 2013, and we just found that all workflows for one list stopped working after 7, Aug 2014. It kept displaying pop-up message "Something went wrong. To try again, reload the page and then start
the workflow." when manually start a workflow for this List.
Tested workflow for other list, there's no problem.
Could anyone can help on this issue? -
I want to know What are the different tools and techniques available to track analytics in SharePoint online 2013. Please provide your suggestions/ inputs. Thanks in advance.
you can Use the Web Analytics Integration app to
connect your SharePoint Online public website to third-party web analytics services, such as Webtrends, Google Analytics, Adobe, and so on.
Google Analytics
Webtrends for SharePoint
CARDIOLOG ANALYTICS
Please remember to mark your question as answered &Vote helpful,if this solves/helps your problem. ****************************************************************************************** Thanks -WS MCITP(SharePoint 2010, 2013) Blog: http://wscheema.com/blog -
Visio Web Access Refresh in SharePoint Online 2013
I'm trying to pull in SharePoint Online 2013 List data into a Visio Pro 2013 diagram and then serve the diagram into a SharePoint Online Page under a Visio Data Access Web Part.
I have no working knowledge of Visio, but made a data connection and presented SPO list data on my diagram. But the data appears to be static when deployed to the Visio Access Web Part - even when I manually refesh. I think, I'm not correctly
adding list fields to my document.
I've set refresh rates on both the document and the web part, but neither help.
For a demo I want to show a single list field - nothing fancy.
Possible to have dynamic data from an SPO List hosted in SPO?
Any way to filter which row is sent from through a URL Query string?
How?Hi ,
Per the following article, the data sources will be disconnected and can't be refreshed after the Visio is published to SharePoint.
"You can publish PivotDiagrams or Timeline diagrams to SharePoint, but they are disconnected from the data sources and can’t be refreshed."
http://office.microsoft.com/en-001/visio-help/save-diagrams-to-sharepoint-HA102749359.aspx
And also I would suggest you post in Office365 SharePoint online forum for a better assistance regarding this issue through the following link.
http://community.office365.com/en-us/f/154.aspx
Thanks,
Daniel Yang
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact [email protected]
Daniel Yang
TechNet Community Support -
How to create a site template with subsites on SharePoint Online (2013, wave 15)
I need to create a site template of a site that contains 4 subsites.
I have tried saving the parent site as a "site template", but when i create a new site based on this template, I don't get any of the subsites created.
Anyone knows why the subsites are not included in the template?
Thank you!
JoséThat is by design. Site templates are a template for a specific site within a site collection and never include sub-sites. In an On-premises environment you could create a Portal Site Template, but this won't work in SharePoint Online. To
build something equivalent in SharePoint online you would either need to use a Sandbox solution or custom client side code.
Paul Stork SharePoint Server MVP
Principal Architect: Blue Chip Consulting Group
Blog: http://dontpapanic.com/blog
Twitter: Follow @pstork
Please remember to mark your question as "answered" if this solves your problem. -
SharePoint online 2013 event receiver error
I am currently working on a SharePoint online project. My code generates 6 documents in 6 different document libraries along with other metadata. When I save data to a List, the event receiver fires and creates all the 6 documents. But sometimes it stops creating
the 6 documents and left with 1 or 2 documents. Sometimes documents has been created but without any metadata.
The same code is working fine in my on-premises environment, but it sometimes breaks in the Office 365 environment. I also created a log list to track the issue as we cannot debug in Office 365. In the log list I found a error message saying "Thread was
being aborted." Below is my code. please help it is happening only in Office 365 environment.
namespace ExcelGen.ExcelGenReceiver
using System;
using Microsoft.SharePoint;
/// <summary>
/// List Item Events
/// </summary>
public class ExcelGenReceiver : SPItemEventReceiver
/// <summary>
/// The template URL
/// </summary>
private const string TemplateUrl = "/Quotation Analysis Electrical/Forms/Quotation Analysis Sheet ELEC_Blank.xlsm";
/// <summary>
/// The template url1
/// </summary>
private const string TemplateUrl1 = "/Quotation Analysis Mechanical/Forms/Quotation Analysis Sheet MECH_Blank.xlsm";
/// <summary>
/// The template url2
/// </summary>
private const string TemplateUrl2 = "/TenderSummaryLib/Forms/TenderSummaryBlankMaster1.xlsm";
/// <summary>
/// The RFI template URL
/// </summary>
private const string RfiTemplateUrl = "/EstimatingRFI/Forms/RFI Schedule MASTER.docx";
/// <summary>
/// The drawing template URL
/// </summary>
private const string DrawingTemplateUrl = "/Tender and Drawing Schedule/Forms/Tender Document Drawing Schedule.docx";
/// <summary>
/// The tender return template URL
/// </summary>
private const string TenderReturnTemplateUrl = "/Est_Tender_Pricing_Document/Forms/Tender Pricing Document blank.xlsm";
/// <summary>
/// The project number
/// </summary>
private string projectNumber = string.Empty;
/// <summary>
/// The project name
/// </summary>
private string projectName = string.Empty;
/// <summary>
/// The no bid
/// </summary>
private string noBid;
/// <summary>
/// The team
/// </summary>
private string team;
/// <summary>
/// The description
/// </summary>
private string description;
/// <summary>
/// The status
/// </summary>
private string status;
/// <summary>
/// The electrical
/// </summary>
private SPUser electrical;
/// <summary>
/// The mechanical
/// </summary>
private SPUser mechanical;
/// <summary>
/// The document date
/// </summary>
private DateTime? docDate;
/// <summary>
/// The tender received
/// </summary>
private DateTime? tenderReceived;
/// <summary>
/// The tender return
/// </summary>
private DateTime? tenderReturn;
/// <summary>
/// The pre construction program start date
/// </summary>
private DateTime? preConstructionProgramStart;
/// <summary>
/// The pre construction program end date
/// </summary>
private DateTime? preConstructionProgramEnd;
/// <summary>
/// The sector
/// </summary>
private string sector;
/// <summary>
/// The design build
/// </summary>
private string designBuild;
/// <summary>
/// The build type
/// </summary>
private string buildType;
/// <summary>
/// The service program start date
/// </summary>
private DateTime? serviceProgramStart;
/// <summary>
/// The service program completion date
/// </summary>
private DateTime? serviceProgramCompletion;
/// <summary>
/// The client1
/// </summary>
private string client1;
/// <summary>
/// The client2
/// </summary>
private string client2;
/// <summary>
/// The client3
/// </summary>
private string client3;
/// <summary>
/// The client4
/// </summary>
private string client4;
/// <summary>
/// The consultant
/// </summary>
private string consultant;
/// <summary>
/// An item is being added.
/// </summary>
/// <param name="properties">The Item Event properties</param>
public override void ItemAdded(SPItemEventProperties properties)
//this.EventFiringEnabled = false;
var web = properties.Web;
var listItem = properties.ListItem;
try
LogIssue(web, null, "Item Added", "List Item Id {0}", listItem.ID);
if (!this.AttemptCopyProcess(listItem))
LogIssue(web, null, "List Id : " + listItem.ID, "AttemptCopyProcess failed.");
catch (Exception ex)
LogIssue(web, ex, "List Id : " + listItem.ID, "AttemptCopyProcess failed.");
finally
//this.EventFiringEnabled = true;
LogIssue(web, null, "List Id : " + listItem.ID, "Event Receiver completed sucessfully.");
/// <summary>
/// Logs any issues found
/// </summary>
/// <param name="webContext">The web context.</param>
/// <param name="exception">The exception, if null not exception details are written</param>
/// <param name="contextId">The context identifier, a unique identifier that allows us to know where the call originated, i.e. a List and ListItem Id, or a Page Url</param>
/// <param name="comment">The comment.</param>
/// <param name="args">The arguments.</param>
private static void LogIssue(SPWeb webContext, Exception exception, string contextId, string comment, params object[] args)
//// if (webContext.AllProperties.ContainsKey("EnableLogging"))
var list = webContext.Lists.TryGetList("ErrorIssues");
if (list != null)
var item = list.AddItem();
item["Title"] = contextId;
if (exception != null)
item["Message"] = exception.Message;
item["InnerException"] = exception.InnerException ?? (object)string.Empty;
item["StackTrace"] = exception.StackTrace;
if (!string.IsNullOrEmpty(comment))
item["Comment"] = string.Format(comment, args);
item.Update();
/// <summary>
/// Assigns the field.
/// </summary>
/// <param name="listItem">The list item.</param>
/// <param name="fieldName">Name of the field.</param>
/// <param name="contextId">The context identifier.</param>
/// <returns>The fields string value if present, otherwise string.empty.</returns>
private static string AssignField(SPListItem listItem, string fieldName, string contextId)
var fieldValue = string.Empty;
if (listItem.Fields.ContainsField(fieldName) && listItem[fieldName] != null)
fieldValue = listItem[fieldName].ToString();
else
LogIssue(listItem.Web, null, contextId, string.Format("Field not available : {0}", fieldName));
return fieldValue;
/// <summary>
/// Assigns the field as a DateTime
/// </summary>
/// <param name="listItem">The list item.</param>
/// <param name="fieldName">Name of the field.</param>
/// <param name="contextId">The context identifier.</param>
/// <returns>Returns the date if found, otherwise returns DateTime.MinValue</returns>
private static DateTime? AssignDateField(SPListItem listItem, string fieldName, string contextId)
DateTime? fieldValue = null;
if (listItem.Fields.ContainsField(fieldName) && listItem[fieldName] != null)
fieldValue = Convert.ToDateTime(listItem[fieldName].ToString());
else
LogIssue(listItem.Web, null, contextId, string.Format("Field not available : {0}", fieldName));
return fieldValue;
/// <summary>
/// Creates the folder.
/// </summary>
/// <param name="listdoc">The list.</param>
/// <param name="folderName">Name of the folder.</param>
private static void CreateFolder(SPList listdoc, string folderName)
LogIssue(listdoc.ParentWeb, null, "List Id : " + listdoc.ID, "Creating folder {0} in {1}", folderName, listdoc.RootFolder.ServerRelativeUrl);
// Updated by Indusnet
SPListItem folder1 = listdoc.Items.Add(listdoc.RootFolder.ServerRelativeUrl, SPFileSystemObjectType.Folder);
folder1["Name"] = folderName;
folder1.Update();
listdoc.Update();
// End Updated
/// <summary>
/// Assigns the user field.
/// </summary>
/// <param name="listItem">The list item.</param>
/// <param name="fieldName">Name of the field.</param>
/// <param name="contextId">The context identifier.</param>
/// <returns>Returns the user if found, otherwise null.</returns>
private static SPUser AssignUserField(SPListItem listItem, string fieldName, string contextId)
SPUser user = null;
if (listItem.Fields.ContainsField(fieldName) && listItem[fieldName] != null)
var userField = (SPFieldUser)listItem.Fields.GetField(fieldName);
var fieldValue = (SPFieldUserValue)userField.GetFieldValue(listItem["electrical_proj_manager"].ToString());
user = fieldValue.User;
else
LogIssue(listItem.Web, null, contextId, string.Format("Field not available : {0}", fieldName));
return user;
/// <summary>
/// Attempts the copy process.
/// </summary>
/// <param name="listItem">The list item.</param>
/// <returns>True if it successfully processed, false otherwise.</returns>
private bool AttemptCopyProcess(SPListItem listItem)
if (listItem.ParentList.Title != "Enquiry_Template")
LogIssue(listItem.Web, null, "List Id : " + listItem.ID, "ListItem titles is not Enquiry_Template, aborting.");
return false;
var finalNum = "15-" + new Random().Next(0, 9999).ToString("D4");
this.Initialize(listItem, finalNum);
if (this.noBid != "Yes")
LogIssue(listItem.Web, null, "List Id : " + listItem.ID, "The noBid field does not equal Yes, aborting.");
return false;
this.CopyFiles(listItem.Web, finalNum);
this.CreateFolders(listItem.Web);
return true;
/// <summary>
/// Copies the files.
/// </summary>
/// <param name="web">The web.</param>
/// <param name="finalNum">The final number.</param>
private void CopyFiles(SPWeb web, string finalNum)
LogIssue(web, null, "Web Id : " + web.ID, "Setting the copying of files ...");
var mechanicalQuoteList = web.Lists["Quotation Analysis Mechanical"];
var electricalQuoteList = web.Lists["Quotation Analysis Electrical"];
var tenderSummarList = web.Lists["TenderSummaryLib"];
var estimatingList = web.Lists["EstimatingRFI"];
var tenderSheduleList = web.Lists["Tender and Drawing Schedule"];
var tenderPricingList = web.Lists["Est_Tender_Pricing_Document"];
var url1 = mechanicalQuoteList.RootFolder.ServerRelativeUrl;
var url = electricalQuoteList.RootFolder.ServerRelativeUrl;
var url2 = tenderSummarList.RootFolder.ServerRelativeUrl;
var urlA = estimatingList.RootFolder.ServerRelativeUrl;
var urlB = tenderSheduleList.RootFolder.ServerRelativeUrl;
var urlC = tenderPricingList.RootFolder.ServerRelativeUrl;
var foldername1 = string.Empty;
var foldername = string.Empty;
var foldername2 = string.Empty;
var foldernameA = string.Empty;
var foldernameB = string.Empty;
var foldernameC = string.Empty;
var folder1 = web.Folders[url1 + "/" + foldername1];
var folder = web.Folders[url + "/" + foldername];
var folder2 = web.Folders[url2 + "/" + foldername2];
var folderA = web.Folders[urlA + "/" + foldernameA];
var folderB = web.Folders[urlB + "/" + foldernameB];
var folderC = web.Folders[urlC + "/" + foldernameC];
if (!folder1.Exists && !folder.Exists && !folder2.Exists && !folderA.Exists && !folderB.Exists && !folderC.Exists)
var folders1 = web.GetFolder(url1).SubFolders;
var folders = web.GetFolder(url).SubFolders;
var folders2 = web.GetFolder(url2).SubFolders;
var foldersA = web.GetFolder(urlA).SubFolders;
var foldersB = web.GetFolder(urlB).SubFolders;
var foldersC = web.GetFolder(urlC).SubFolders;
folders1.Add(foldername1);
folders.Add(foldername);
folders2.Add(foldername2);
foldersA.Add(foldernameA);
foldersB.Add(foldernameB);
foldersC.Add(foldernameC);
var file1 = web.GetFile(web.Site.Url + TemplateUrl1);
var file = web.GetFile(web.Site.Url + TemplateUrl);
var file2 = web.GetFile(web.Site.Url + TemplateUrl2);
var fileA = web.GetFile(web.Site.Url + RfiTemplateUrl);
var fileB = web.GetFile(web.Site.Url + DrawingTemplateUrl);
var fileC = web.GetFile(web.Site.Url + TenderReturnTemplateUrl);
if (file1 != null && file != null && file2 != null && fileA != null && fileB != null && fileC != null)
var fileName = string.Format("{0}/{1}{2}", folder1.ServerRelativeUrl, this.projectName, ".xlsm");
LogIssue(web, null, "Web Id : " + web.ID, "Copying file 1 {0} to {1}...", file1.Name, fileName);
var byteArray1 = file1.OpenBinary();
var uploadedFile1 = folder1.Files.Add(fileName, byteArray1, true);
LogIssue(web, null, "Web Id : " + web.ID, "File 1 Uploaded with new ID of {0}", uploadedFile1.Item.ID);
this.EventFiringEnabled = false;
var listitem1 = uploadedFile1.Item;
listitem1["Name"] = this.projectName;
listitem1["EnquiryNo"] = finalNum;
listitem1["Project_Name"] = this.projectName;
listitem1["Tender_Received"] = this.tenderReceived;
listitem1["Tender_Return"] = this.tenderReturn;
listitem1["Quotation_Analysis_Mech_Url"] = "https://my site url/Quotation%20Analysis%20Mechanical/Forms/DispForm.aspx?ID=" + listitem1.ID;
listitem1.SystemUpdate(false);
this.EventFiringEnabled = true;
LogIssue(web, null, "Web Id : " + web.ID, "Copied file 1.");
fileName = string.Format("{0}/{1}{2}", folder.ServerRelativeUrl, this.projectName, ".xlsm");
LogIssue(web, null, "Web Id : " + web.ID, "Copying file 2 {0} to {1}...", file.Name, fileName);
var byteArray = file.OpenBinary();
var uploadedFile = folder.Files.Add(fileName, byteArray, true);
LogIssue(web, null, "Web Id : " + web.ID, "File 2 Uploaded with new ID of {0}", uploadedFile.Item.ID);
this.EventFiringEnabled = false;
var listitem = uploadedFile.Item;
listitem["Name"] = this.projectName;
listitem["EnquiryNo"] = finalNum;
listitem["Project_Name"] = this.projectName;
listitem["Tender_Received"] = this.tenderReceived;
listitem["Tender_Return"] = this.tenderReturn;
listitem["Quotation_Analysis_Elec_Url"] = "https://my site url/Quotation%20Analysis%20Electrical/Forms/DispForm.aspx?ID=" + listitem.ID;
listitem.SystemUpdate(false);
this.EventFiringEnabled = true;
LogIssue(web, null, "Web Id : " + web.ID, "Copied file 2.");
fileName = string.Format("{0}/{1}{2}", folderA.ServerRelativeUrl, this.projectName, ".docx");
LogIssue(web, null, "Web Id : " + web.ID, "Copying file 3 {0} to {1}...", fileA.Name, fileName);
var byteArrayA = fileA.OpenBinary();
var uploadedFileA = folderA.Files.Add(fileName, byteArrayA, true);
LogIssue(web, null, "Web Id : " + web.ID, "File 3 Uploaded with new ID of {0}", uploadedFileA.Item.ID);
this.EventFiringEnabled = false;
var listitemA = uploadedFileA.Item;
listitemA["Name"] = this.projectName;
listitemA["EnquiryNo"] = finalNum;
listitemA["Project_Name"] = this.projectName;
listitemA["Date"] = this.docDate;
listitemA["Description"] = this.description;
listitemA["ProjectNo"] = this.projectNumber;
listitemA["RFIUrl"] = "https://my site url/EstimatingRFI/Forms/DispForm.aspx?ID=" + listitemA.ID;
listitemA.SystemUpdate(false);
this.EventFiringEnabled = true;
LogIssue(web, null, "Web Id : " + web.ID, "Copied file 3.");
fileName = string.Format("{0}/{1}{2}", folderB.ServerRelativeUrl, this.projectName, ".docx");
LogIssue(web, null, "Web Id : " + web.ID, "Copying file 4 {0} to {1}...", fileB.Name, fileName);
var byteArrayB = fileB.OpenBinary();
var uploadedFileB = folderB.Files.Add(fileName, byteArrayB, true);
LogIssue(web, null, "Web Id : " + web.ID, "File 4 Uploaded with new ID of {0}", uploadedFileB.Item.ID);
this.EventFiringEnabled = false;
var listitemB = uploadedFileB.Item;
listitemB["Name"] = this.projectName;
listitemB["EnquiryNo"] = finalNum;
listitemB["Project_Name"] = this.projectName;
listitemB["Date"] = this.docDate;
listitemB["Description"] = this.description;
listitemB["ProjectNo"] = this.projectNumber;
listitemB["DrawingURL"] = "https://my site url/Tender%20and%20Drawing%20Schedule/Forms/DispForm.aspx?ID=" + listitemB.ID;
listitemB.SystemUpdate(false);
this.EventFiringEnabled = true;
LogIssue(web, null, "Web Id : " + web.ID, "Copied file 4.");
fileName = string.Format("{0}/{1}{2}", folderC.ServerRelativeUrl, this.projectName, ".xlsm");
LogIssue(web, null, "Web Id : " + web.ID, "Copying file 5 {0} to {1}...", fileC.Name, fileName);
var byteArrayC = fileC.OpenBinary();
var uploadedFileC = folderC.Files.Add(fileName, byteArrayC, true);
LogIssue(web, null, "Web Id : " + web.ID, "File 5 Uploaded with new ID of {0}", uploadedFileC.Item.ID);
this.EventFiringEnabled = false;
var listitemC = uploadedFileC.Item;
listitemC["Name"] = this.projectName;
listitemC["EnquiryNo"] = finalNum;
listitemC["Project_Name"] = this.projectName;
listitemC["Date"] = this.docDate;
listitemC["Description"] = this.description;
listitemC["ProjectNo"] = this.projectNumber;
listitemC["PricingURL"] = "https://my site url/Est_Tender_Pricing_Document/Forms/DispForm.aspx?ID=" + listitemC.ID;
listitemC.SystemUpdate(false);
this.EventFiringEnabled = true;
LogIssue(web, null, "Web Id : " + web.ID, "Copied file 5.");
fileName = string.Format("{0}/{1}{2}", folder2.ServerRelativeUrl, this.projectName, ".xlsm");
LogIssue(web, null, "Web Id : " + web.ID, "Copying file 5 {0} to {1}...", file2.Name, fileName);
var byteArray2 = file2.OpenBinary();
var uploadedFile2 = folder2.Files.Add(fileName, byteArray2, true);
LogIssue(web, null, "Web Id : " + web.ID, "File 6 Uploaded with new ID of {0}", uploadedFile2.Item.ID);
this.EventFiringEnabled = false;
var listitem2 = uploadedFile2.Item;
listitem2["Name"] = this.projectName;
listitem2["EnquiryNo"] = finalNum;
listitem2["Project_Name"] = this.projectName;
listitem2["Date"] = this.docDate;
listitem2["Team"] = this.team;
listitem2["Estimator_Electrical"] = this.electrical;
listitem2["Estimator_Mechanical"] = this.mechanical;
listitem2["Status"] = this.status;
listitem2["Tender_Received"] = this.tenderReceived;
listitem2["Tender_Return"] = this.tenderReturn;
listitem2["Sector"] = this.sector;
listitem2["Design_Build"] = this.designBuild;
listitem2["Build_Type"] = this.buildType;
listitem2["Service_Prog_Start"] = this.serviceProgramStart;
listitem2["Service_Prog_Completion"] = this.serviceProgramCompletion;
listitem2["Client_1"] = this.client1;
listitem2["Client_2"] = this.client2;
listitem2["Client_3"] = this.client3;
listitem2["Client_4"] = this.client4;
listitem2["Consultant"] = this.consultant;
listitem2["Pre-construction_Prog_Start"] = this.preConstructionProgramStart;
listitem2["Pre-construction_Prog_End"] = this.preConstructionProgramEnd;
listitem2["Tender_Summary_Url"] = "https://my site url/TenderSummaryLib/Forms/DispForm.aspx?ID=" + listitem2.ID;
listitem2.SystemUpdate(false);
this.EventFiringEnabled = true;
LogIssue(web, null, "Web Id : " + web.ID, "Copied file 6.");
/// <summary>
/// Creates the folders.
/// </summary>
/// <param name="web">The web.</param>
private void CreateFolders(SPWeb web)
var projectListId = web.Lists.Add(this.projectName.Replace(' ', '_'), string.Empty, SPListTemplateType.DocumentLibrary);
var projectList = web.Lists[projectListId];
projectList.OnQuickLaunch = true; // The document library will appear in Quick Launch bar.
CreateFolder(projectList, "1.Tender Documents");
CreateFolder(projectList, "2. Electrical");
CreateFolder(projectList, "3. Mechanical");
CreateFolder(projectList, "4. Correspondance");
CreateFolder(projectList, "5. Settlement Meeting Docs");
CreateFolder(projectList, "6. Tender Return Docs");
CreateFolder(projectList, "7. Tender Handover");
projectList.Update();
/// <summary>
/// Initializes the specified list item.
/// </summary>
/// <param name="listItem">The list item.</param>
/// <param name="finalNum">The final number.</param>
private void Initialize(SPListItem listItem, string finalNum)
var contextId = string.Format("List:{0}, Id:{1}", listItem.ParentList.Title, listItem.ID);
this.noBid = AssignField(listItem, "Bid", contextId);
this.projectName = AssignField(listItem, "Project_Name", contextId);
var teamlookup = AssignField(listItem, "Team", contextId);
var lookupParts = teamlookup.Split(new[] { ";#" }, StringSplitOptions.None);
this.team = lookupParts[1];
this.description = AssignField(listItem, "Description", contextId);
this.status = AssignField(listItem, "enquiry_status", contextId);
this.electrical = AssignUserField(listItem, "electrical_proj_manager", contextId);
this.mechanical = AssignUserField(listItem, "mechanical_proj_manager", contextId);
this.docDate = AssignDateField(listItem, "Date", contextId);
this.tenderReceived = AssignDateField(listItem, "Tender_Received", contextId);
this.tenderReturn = AssignDateField(listItem, "Tender_Return", contextId);
this.preConstructionProgramStart = AssignDateField(listItem, "Pre-construction_Prog_Start", contextId);
this.preConstructionProgramEnd = AssignDateField(listItem, "Pre-construction_Prog_End", contextId);
this.sector = AssignField(listItem, "Sector", contextId);
this.designBuild = AssignField(listItem, "Design_Build", contextId);
this.buildType = AssignField(listItem, "Build_Type", contextId);
this.serviceProgramStart = AssignDateField(listItem, "Service_Prog_Start", contextId);
this.serviceProgramCompletion = AssignDateField(listItem, "Service_Prog_Completion", contextId);
this.client1 = AssignField(listItem, "Client_1", contextId);
this.client2 = AssignField(listItem, "Client_2", contextId);
this.client3 = AssignField(listItem, "Client_3", contextId);
this.client4 = AssignField(listItem, "Client_4", contextId);
this.consultant = AssignField(listItem, "Consultant", contextId);
if (this.status == "Won")
this.projectNumber = string.Format("15-{0}-{1}", this.team, new Random().Next(0, 9999).ToString("D4"));
if (this.status == "Active" || this.status == "Closed")
this.projectNumber = "No Project No";
listItem["ProjectNo"] = this.projectNumber;
listItem["EnquiryNo"] = finalNum;
listItem.Web.AllowUnsafeUpdates = true;
listItem.SystemUpdate(false);Hi,
In this forum we mainly discuss questions and feedbacks about Office client products, as your question is about SharePoint 2013, I suggest you post this thread in SharePoint forum:
https://social.technet.microsoft.com/Forums/office/en-US/home?category=sharepoint
The reason why we recommend posting appropriately is you will get the most qualified pool of respondents, and other partners who read the forums regularly can either share their knowledge or learn from your interaction with us. Thank you for your understanding.
Regards,
Melon Chen
TechNet Community Support
It's recommended to download and install
Configuration Analyzer Tool (OffCAT), which is developed by Microsoft Support teams. Once the tool is installed, you can run it at any time to scan for hundreds of known issues in Office
programs. Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
[email protected] -
Site collections, or sub-sites, in SharePoint Online?
We have an established SharePoint 2010 intranet portal, which has many and various team sub-sites. These sub-sites are created on request - sometimes it's because one of our locations wants their own little area to share documents, or it might be for
a company-wide project or initiative.
We are now slowly moving over to SharePoint Online. Mainly, it's to replace Box and Dropbox (which some teams use), and allow our staff to share files externally if needed. Nothing special, just a document library. More often than not,
each site will have its own unique permissions.
Now, our SharePoint 2010 site is one large site collection (wasn't my idea). As an administrator, that makes my life quite easy as it's one content database, one set of content types, etc. But, with SharePoint Online, I don't need to think about
content databases, and won't be using custom content types with these sites.
So, I'm a bit stuck. My options, as I see it, are:
One large site collection (pretty much a no-go as these shared files might get quite large)
One site collection for each request, no questions asked (which might lead to hundreds of site collections)
Create a site collection for each office location, and then a sub-site for each team in that location (as requested) - and also create a site collection for each company-wide function, and create a sub-site for each project within that function
Can anyone give any pointers towards the "best" option to use here?it always depends on different things.
One of the key elements I always use to decide site vs site collection is security boundary.
If the target site has a high level of confidentional information, I prefer a dedicated Site collection.
If it is just a smaller team (or broader team) to share info with you can easy use sub sites.
Looking at the boundary & limits is also wise to do. (like the 5000 item treshold in a view on a document library)
A document library should in practice not really be used for multiple teams, however it is possible. A lot of dl's within a site is also not that intuitive for a lot of end-users.
A office location can be use, however, a lot of work is done across office locations. (now or in the future)
One site collection per each request is not by definition a bad thiing... however please be in control (governance) of the owners. For example let a site collection owner every x months acknowledge that he/she still needs that site collection or that it
can be removed.
One Large site collection is asking for trouble in the end. however for a publishing intranet only it can be good.
Good luck with your choice for your environment!
You can also contact me if you want to discuss more on this topic.
Michiel Hamers www.SharePointman.nl Don't hesitate to contact me for a SharePoint/O365 question. -
How to convert word documents to html page in sharepoint online 2013
Hi,
I am new SharePoint and still learning it.
I have been tasked to do the following on office 365 E3 SharePoint 2013 Online edition.
1) I have to create a Web page in asp.net
2) This page needs to show document from a given SharePoint folder and bind them in a grid or dropdown on the asp .net web page
3) On selecting the document from the drop down or gird (on asp .net webpage), I need to show the SharePoint word document as HTML on the webpage (something like word to html) Note: These SharePoint word document may contain Images, bullets, tables etc.
What I have been able to do till now
1) I have been able to connect to SharePoint from ASP .net application.
2) I have been able to retrieve document from a specific SharePoint folder.
3) Read the document from SharePoint folder and bind them to a drop down on the asp .net page.
What is missing?
I am not aware about any API that SharePoint Online provides to convert Word document to HTML. Any code sample or reference on how to will be much appreciated.
I am not also not sure what is the best way of achieving the functionality this?
Thanks
KrishnaIf this was SharePoint server then it would be easy however in O365 You need to create a app which will use the word automation service and below is powershell which you can use for the conversion:-
# This script will convert Docx to PDF using word automation and similarly it can be used to convert to HTML
$wordFile="http://contoso/kick.docx"
$pdfFile="http://contoso/kick.pdf"
$wasp = Get-SPServiceApplicationProxy | where { $_.TypeName -eq "Word Automation Services Proxy" }
$site = Get-SPSite "http://contoso"
$ConvertJob = New-Object Microsoft.Office.Word.Server.Conversions.SyncConverter($wasp)
$ConvertJob.UserToken = $site.UserToken
$ConvertJob.Settings.UpdateFields = $false
$ConvertJob.Settings.OutputFormat = "PDF"
$ConvertJob.Convert($wordFile, $pdfFile) -
Can I configure incoming email to a Calendar in SharePoint Online 2013?
I'd like to send invitations from my Outlook Calendar to my SharePoint Calendar inSharePoint Online 2013. Is there a way to do this? I've searched and see that I need to change the Incoming Mail Settings, but that doesn't appear under
Communications in SharePoint Online. I'm not sure how to configure the Incoming Mail Settings to appear under Communications in SharePoint Online.Hi Kathy..
http://technet.microsoft.com/en-us/sharepoint/Video/ff679958
http://technet.microsoft.com/en-us/library/cc262947.aspx
http://sharepointgeorge.com/2010/configuring-incoming-email-sharepoint-2010/
And this site has a pretty good description of what you'll need to do with the calendar list to configure it:http://www.ehow.com/how_5916432_use-sharepoint-calendar-list-email.html
http://office.microsoft.com/en-in/outlook-help/view-and-update-a-sharepoint-calendar-HA010081987.aspx -
Can't open SharePoint site in SharePoint Designer 2013 32Bit but can open Office 365.
Hello. I am running Windows 8.1 SharePoint Designer 2013 32Bit (15.0.4615.1000).
I am unable to open any sites from our SharePoint 2013 OnPremise farm. I can however open sites from our Office 365 environment.
I get the following error.
"An error occurred accessing your Microsoft SharePoint Foundation site files. Authors - if authoring against a Web server, please contact the Webmaster for this servers's Web site. WebMasters - please see the server's application event log
for more details."
I have looked in the event log but can't see anything relative.
I have cleared all caches, uninstalled and reinstalled and followed recommendations in this post.
http://community.office365.com/en-us/f/154/t/149314.aspx?PageIndex=2
My colleague with the same setup also has this issue but another doesn't and is able to access the site. I have a Windows 7 Hyper-V VM on my machine and this can open the OnPremise sites.
I really don't know what else to try short of rebuilding my machine which I would rather not do at the moment.
Any help would be greatly appreciated.
Thanks.
Steev.Try changing security token service application pool password if its expired.
Security token service application pool should be up and running to fix this issue.
Please check :
http://social.msdn.microsoft.com/Forums/en-US/7cf7ae15-1f58-402b-a93b-7f6a6d583169/sharepoint-designer-throwing-error-while-open-my-sharepoint-web-applicaiton?forum=sharepointcustomizationprevious
http://www.fmsinc.com/free/NewTips/Office/frontpage.asp -
Workflow in SharePoint Online 2013
Is is possible to have dynamic workflow in Sharepoint?
I want to create a workflow using visual studio or designer and the levels of approval in workflow will be controlled by a list. If the list contains 5 levels of approvers, workflow should be able to build 5 levels at runtime. If possible then, whether possible
in SharePoint online.
I am little new to Visual Studio workflow and office 365.
Please help.Hi Arun,
Thanks for posting your query, Kindly browse the below mentioned URL to achieve multiple level workflow, it uses Recall function to call workflow multiple times
http://blogs.msdn.com/b/sharepointdesigner/archive/2012/08/16/a-sample-approval-workflow-which-can-be-recalled-by-initiator.aspx
Also,
check out below mentioned URLs
http://sharepointwf.codeplex.com/
http://amalhashim.wordpress.com/2013/03/14/sharepoint-custom-approval-workflow-with-dynamic-approvers-using-sharepoint-designer/
I hope this is helpful to you, mark it as Helpful.
If this works, Please mark it as Answered.
Regards,
Dharmendra Singh (MCPD-EA | MCTS)
Blog : http://sharepoint-community.net/profile/DharmendraSingh
Maybe you are looking for
-
Goods recipient field not available when creating a service purchase req
We are trying to create a release strategy for purchase requisitions with acount assignments K, F and P. The release strategy would use the requisitioner and goods recipient fields to determine the release group. The issue is when creating a purcha
-
Firefox 4.0.1 keeps opening my new tab as Yahoo, can I change it?
It opens fine, right to my homepage, but after that when I try to open a new tab it opens as "Yahoo! Search - Web Search". I want it to open as a blank page but I don't know how to change it, I tried NewTabURL 2.2.2 but even that didn't work. Does an
-
Will iOS 6 Siri be on the iPad 2 (wifi only?)
I'm asking this because I don't have a cellular connection iPad so I wanted to know if siri was going to work as well.
-
Accumulating Rolling Total on a column
I need to display a list of records and I'd like to create an accumulating field based on a set of records. I need to fill in amount balances that accumulates on every record. For instance, if I have these records: Quantity 2 3 1 5 10 My aggregated c
-
How to set auto backup as like quark express
Hi, I want to know how to set auto backup opening files in InDesign 6 as like quark express