ODFB & “Office Home & Business 2016” Issue!

I’ve been working with a client on an issue they had. A user had upgraded his Office suite to Office Home & Business 2016, after the upgrade, something with OneDrive For Business didn’t seem right. Documents stopped syncing, and stuff weren’t working as expected.

When checking OneDrive For Business, it was gone off the computer, so by following this KB article, you need to download OneDrive for business again and do the installation. You do this by following the points in the article, and having the .txt file in place for installation. Everything would seem to work fine, but you may encounter that it would stay for too long with no result. What you might want to do is change the .txt file, so replace the attribute Level=”None” to Level=”Full”. This way, if the command encounters any issue, it would really show that exact error or warnings.

For me what happened, is it shown incompatibility with what I was trying to install, and the system type. The default value in the .txt file for system type is “32” as shown in the “OfficeClientEdition” attribute, whereas the user was using 64-bit system. So change this value to “64” and you should be good to go.

 

Hide Upload Button + CSS Tip!

At times, you want to hide something that’s rendered by default in SharePoint, for example some of the ribbon’s controls rendered right away with the page. I’ve seen some people going with the way of hiding the whole “New” group in a document library in order to prevent user from using the upload or new folder options.

For the new folder, everyone knows it can be easily disabled from the library’s settings, but for the Upload button in the ribbon, you can use pure CSS to do so, but you will need to find the right selector, and use it right. We all know how to use developer tools to pick the right css classes, so as can be seen below:

UploadDoc

So you might be tempted to do something like this:

And.. that won’t work, you might be tempted as well to add !important to the end to force it to apply, but again.. it won’t work. It’s because CSS considers the dot character as part of the css itself to identify a class, and it won’t understand it’s part of the ID. In this case, you need to use escaping characters in CSS which is the backslash!

So your code should look like this:

Now you should end up with something similar to this:

Upload3

Hope this will quickly help someone out there!

Why can’t you hide web part on a wiki page?

I saw this post on the MSDN where the user can’t hide the web part when he adds it on a wiki page. I thought he might done something wrong.. so I tried the same thing, and yes, you can’t hide the web part on a wiki page, then I tried to hide the web part on a web part page, and yes, it’s hidden, so what’s the problem here?

The point is that you can’t hide web parts unless you turn on the publishing feature, so when you turn on the publishing feature on the site collection, hiding web parts on any page will be possible.!

Getting started with troubleshooting Nintex Workflows!

Currently I have been helping a friend of mine fixing some Nintex Workflow 2010 issues, one of the issues he had was an error appearing in the workflow stating that:

The workflow could not update the item, possibly because one or more columns for the item require a different type of information”.

OK…! As can be seen; this error (along with other SharePoint generic errors) doesn’t give us much detail about the problem, you can’t start investigating this kind of problems without copying this error message and pasting it in Google and start Googling.

The purpose of this article is to know how to troubleshoot a workflow without needing to search on Google, and for sure to tell you what caused this error.

Nintex workflow is like any other workflow tool (ex: SharePoint Designer), it will provide you with a set of actions that you can use to construct the logic of the workflow and achieve what it is intended to do. Let’s take the scenario of an approval workflow, where the submitted document goes to the manager along with a custom notification email, upon approval or rejection, the document will be sent to the next manager, or to the initiator to tell him the reasons of the rejection, if the workflow consists of only one approval step, it would be easy to troubleshoot, because the scope of the problem is limited to only these few actions, but what if you have a workflow that consists of: Switch statements, foreach, state machine, long approval process (more than 5 approvers)? If you get an error in these steps, it will be tough to figure it out.

Here comes the need for something to trace the workflow and to know where the workflow actually went wrong, one way (easy way) is to use the workflow history diagram, you can get to this diagram from the item’s options menu, view the figure below:

1

When clicking this option, you will be redirected to a page with all workflows that are running on the current item, as can be seen, there are 3 categories where the workflow on the current item can be categorized:

2

As you can see, our workflow instance is classified as an erroed workflow, if you click on the workflow name, you will see where the workflow really stopped:

3

The yellow background means that the workflow stopped here, if the workflow passed the action, it will be colored green, but in our case it’s yellow, which means that the workflow has stopped at this action. If you click on the “Click here to show detailed view”, you will be transferred to a page detailing the workflow error, in our case, we didn’t configure the outgoing email settings in Central Administration, so the workflow errored on sending email action:

4

The problem with this kind of troubleshooting is that this diagram is not always accurate, it might be freezed on specific actions although the workflow has passed these actions. The better way to troubleshoot the workflow is to add your own tracing values, suppose that the outgoing email settings are configured in Central Administration, but you may also get an error in the workflow for some reason (your mission is to know what’s that reason), or the workflow ran without any issues but the logic that the workflow executed is just wrong!

In this case we can use the awesome “Log in history list” action, this action is useful if you are making some calculations in the workflow and you want to make sure that the result of these calculations are right, or if you are having an error in the workflow, but the workflow history diagram just got stuck (which sometimes happen), in this case it would be best to log to the history list before any major action that you think would cause an issue, like sending emails, assigning tasks, granting and revoking permissions, etc..

When the workflow is running or stopped, you can just navigate to the workflow history, by clicking on the workflow’s status column in the list view, and if you have logged for example: “Next action: Sending an email to Marketing Manager”, and it was the last log that was written before an error is occurred, you will know directly that the action responsible for sending an email to the marketing manager is making the trouble for you. This way you will guarantee you will know what the exact error is regardless the fact that the workflow history diagram may work or not.

Back to the error stated in the beginning of the article:

The workflow could not update the item, possibly because one or more columns for the item require a different type of information”. The workflow history diagram was stuck on an action, but in fact the workflow wasn’t really stuck, so don’t always trust the workflow history diagram. Placing a log to history action before main workflow actions, I could know what was causing the error, it turns out that the cause is done by “Set item permissions” action, in this case the action was misconfigured to break the inheritance from the library, AND remove all users permissions was checked, so on the next item edit, the workflow will throw an error, see the figure below:

5

As can be seen, the item was breaking the permission inheritance from the parent library, and it also removed the permissions that already existed on the current item, which will prevent the modification of the item.

After testing the workflow thoroughly; make sure to remove/disable the log to history actions because each action inserts a new item in the history list in SharePoint, which you should not do in order to avoid filling the list with arbitrary testing values.

Conclusion:  You can get away with a short process workflow without doing the extra effort of adding log to history list action, you can use the workflow history diagram but you can’t always trust it because it can get stuck sometimes and not show you the real progress of the workflow.

External Sharing Report In SharePoint Online

Hello readers! This is a short blog post to share with you a PowerShell script that would be helpful for Office 365 admins in order to know who shared content in SharePoint Online. This script will create a .csv file with a list for each site collection that has content shared outside of the organization, as well as the name of the person with access to your environment, his email, the date when he accessed your environment the first time as well as who invited him to your environment.

Here’s a link to the script on codeplex. Hope this helps someone out there when he’s asked to do a such a report!

Root Site Collection Features Missing in SharePoint Online

When working with SharePoint online, you may think that the features and the way SharePoint is administered is similar to the way it’s administered on-premises, but there are some cases that may be tricky. One of these cases is once you create get your SharePoint online site up and running, you open the root site collection at the Url: http://DomainName.sharepoint.com and you do some work, then you’d like to save your team site as a template.. but the option is not there.

You may even face this problem when trying to:

  • Change themes.
  • Add content editor web part,
  • Deploy Sandbox solutions
  • Use SharePoint designer to style that site collection!

These are some major functionalities that you would want to use in your Office 365, but you can’t, and then you’ll start being frustrated about how SharePoint Online is limiting you from doing the work you’re supposed to do and you’ll start to embrace the on-premises way again!

But, it’s not a problem with Office 365, it’s actually a security feature in Office 365 for custom scripts, which means that it helps the global administrator for Office 365 to secure his sites from scripts being used here and there.

The scripting functionality is disabled in the root site collection by default, that’s why when you create another site collection under a managed path, scripting will be enabled and you’ll be able to use SharePoint Designer and other functionalities with no differences from the on-premises part, while the scripting is disabled, you’ll get this message when opening SharePoint Designer for the root site collection:

5-12-01

Then..

5-12-03

To enable scripting in Office 365, you should go to SharePoint administration center > Settings > Custom Script, as shown below:

5-12-02

 

To enable scripting for the root site collection, you should enable it for self-service created sites.

Hope this helps someone out there!

Creating Dynamic List Menu For SharePoint Foundation 2013 Navigation

Hello Everyone, today’s article is going to have an intensive information about how to style the navigation menu for SharePoint Foundation 2013, in this case, we’ll have some common requirements, and we’ll go through how to achieve them to deliver a nice looking menu for the top navigation.

Problem:

The requirement that we have this time, is to create a menu which will include sub-items (dynamic items) that will appear when we hover over the static menu item.

We need all static menu items to have the following characteristics:

1- To be in uppercase format, meaning all letters in the sentence should be capitalized.

2- To have the white color, and a custom color: #f0b530 in case of anchor hover (Note that some of the static items maybe used only as containers for dynamic list items, and don’t act as hyperlinks).

The characteristics for the dynamic list that appears when we hover over a static item that contains sub-items:

1- To have the width of the maximum li that will appear inside the list, if you have a list item that will be 400px long, the ul should stretch to fit that size.

The characteristics for the dynamic items inside the list:

1- To have the “>” before each item

2- To have only the first letter in the sentence as capital letter, only the first letter in the sentence.. remember that!

3- On hover, to have a custom color, same one mentioned earlier: #f0b530

These are the requirements, so let’s get to the solution, shall we?!

 

Solution:

 

First things first, for my example, I use the following css to set the background color for my menu:

.ms-core-listMenu-horizontalBox {

background-color: rgb(163,160,143);

text-transform: uppercase;

}

Now we will need to style the static menu items that act as a container for my ul, to give them a white bold text, use the following css:

li.static span.dynamic-childrenspan {

color: white;

font-weight: bold;

}

As you see in the image below, the background color gave us a nearly grey background, and all letters in the static items are uppercase as required, note also that they are bold and white colored which what the second css snippet does.

nav1

Now, what if we hover over the “RESSOURCES HUMAINES” item, ul should be displayed with all items inside, and we should have the ul width to equal the longest item inside, also all items should have the first letter capitalized, and prefixed with > character, so use the following css for that:

li.dynamic {

height: 25px;

width: 100%;

white-space: nowrap;

}

The style above, gives a height for each item inside the list for 25px, and a maximum width it can get, which is 100%, also the white-space: nowrap, it prevents the item from breaking to a second line when it gets to a specific width, this is a MUST USE.

Now we’ll add > before each link as follows:

a.dynamic:before{

width: 100%;

content: ” > “;

}

In this case we are using a pseudo class for the anchor to prefix it using the content property.

We need the anchor tag to have the white color by default, not the blue color:

a.dynamic{

font-weight: bold;

color: white!important;

}

And when hovering, to have the custom color:

li.dynamic:hover a {

color: #f0b530!important;

}

But what about having it all in small letters, and the first letter in the sentence to be capital letter? You might think you would get a way with Text-Transform: Capitalize, but wait a minute, this property will capitalize the first letter of EACH WORD, remember we want only the first letter of the first word, we’ll use the following snippet:

li.dynamic span {

display: inline-block;

text-transform: lowercase;

}

li.dynamic span:first-letter {

text-transform: capitalize;

}

The first style, will change the display for the span to inline-block, this is because in the second style we want to use the :first-letter, and this pseudo selector works on block elements only (span by default is not block), and we also transform all text to lowercase, in the second style, we get the first letter of the span, and capitalize it, nice ha?

To the last part, to style the ul itself to make it stretch, convert the display to inline-table, and give it a large z-index so it’s always shown when hovering:

ul.dynamic{

display: inline-table;

z-index: 10000;

}

That’s it, now you should have something that will be similar to this:

na2

Enjoy your SharePoint designing now!

M . D

Error deploying ContentType with FieldRefs

Another Problem-Solution post, and this time it’s going to be quick on a problem you may face deploying a SharePoint feature in Visual Studio.

The error this time states: “Error occurred in deployment step ‘Activate Features’: Key cannot be null. Parameter name: key”.

Again, the error here is not descriptive and doesn’t give us a clue on what the problem is. What will help us is using the output window in Visual Studio to track where the problem occurred (I followed this technique and applied it to workflows in Nintex to troubleshoot problems there, view this post to know more about troubleshooting Workflows).

So the output in Visual Studio provides us with a step by step details on the deployment process, in my case the deployment errored on activating a feature that included only content types, so I know where to investigate now.

What I noticed in my xml that deploys the content type, is that there is a specific content type that references the fields this way:

<FieldRef ID=”{9EDAB26E-CC44-4027-AB05-CB44EA3A6F72}Name=”EmployerName“/>

<FieldRef ID=”{8406B0D9-9302-4BCD-917A-404558F3C9A0}Name=”CustomerFullName” />

<FieldRef ID=”{395B72D8-90D8-4A68-ACDC-C423B205B276}”  Name=”CustomerFeedback” ></ FieldRef>

The way that the CustomerFeedback field was deployed was different than the others, as you can notice it has a separate tag as the ending tag, and the deployment process expects that something has to be inside this field reference, but there is nothing, so it throws the given error.

Conclusion: When referencing FieldRef inside ContentType project item, make sure you don’t have a separate closing tag for the FieldRef.

Hope this little quick tip would help someone out there!

Basic operations in SharePoint with Excel

 

End users are the core foundation of SharePoint usage, SharePoint was made to serve end users, developers do custom solutions to serve end users, and admins make sure the environment is working fine so end users can do their work easily. One of the features that SharePoint provides out of the box, is the ability for end users to use the tools they already know, and integrate it with SharePoint, and one of these tools is Excel. 

 

This blog post is targeted towards end users who are new to SharePoint and wondering how they can use Excel within SharePoint, so let's see some super easy steps on what you can do with SharePoint. 

 

Let's say you are working on an Excel document locally on your computer, for me for example, let's say am working on a document listing partners for my company, my Excel workbook looks like this: 

 

1 Title 
2 Fictional Company 1 
3 Fictional Company 2 
Address 
MTL 
MTL 
Number of Projects

 

 

Now I would like to have this in SharePoint as a list, so I can share it with others. When you want to import an Excel sheet do SharePoint, SharePoint will not import the whole document, it will ask you for a specific range that you may want to upload to it. For example, If you have an Excel workbook with columns A through J, you might want to upload the columns A to F only, so you don't have to create a new Excel sheet just for these columns. There are multiple ways to do so, but the easiest way is, to highlight the area that you want to upload to SharePoint 

 

Fictional Company 1 
Fictional Company 2 
Address 
MTL 
MTL 
Number of Projects 
2

 

 

And then click Formulas from the ribbon, and choose Define Name: 

 

Formulas 
Text Date & 
Time • 
Library 
-itle 
Data 
Lookup & 
Reference • 
Review 
Math & 
View 
More 
Power Pivot Tell me what you want to do 
—x @ Define Na me 
Use in Formu 
Na me 
Trace P re 
Trace Del 
Trig • Functions • 
Manager Create from Selection Remove 
Defined Names

 

 

Add a descriptive name: 

 

C:\Users\owner\AppData\Local\Temp\msohtmlclip1\02\clip_image004.png

 

 

And Save your document, and make sure to close it. 

 

What did we just do? We have our Excel sheet as it is, we just gave a name to the selected area that you want to upload to SharePoint, that's it, nothing major.

 

Now to upload your document to SharePoint, you have to forget about all other browsers, and use Internet Explorer, because the upload to SharePoint functionality requires a browser that supports ActiveX control, so you will have an error like this if you try to use Edge or Chrome: 

 

technifier.sharepoint.com says: 
This feature requires a browser that supports ActiveX controls.

 

 

So open Internet Explorer, and select the gear icon, then choose Add an app: 

 

Change theme 
Office 365 settings 
Add an app 
Site conte 
Change the look 
Site settings

In the search box, you can type: Excel, then you'll see "Import Spreadsheet" app, click it and give it a name, in my case I'll just name it: Our Partners, give it a description if you want, and click browse, then choose your document, and hit import. If you get an error that looks like this: 

 

Message from webpage 
The specfied file is not a valid spreadsheet or contains no data to 
import.

Then you need to add the current SharePoint site to the list of trusted sites in Internet Explorer, to do so, click on the gear icon in Internet Explorer on the far top right corner: 

 

Machine generated alternative text:
Print 
Zoom (100%) 
Saf ety 
Add site to Apps 
View downloads 
Manage add-ons 
F12 Developer Tools 
Go to pinned sites 
Compatibility View settings 
About Internet Explorer 
Ctrl+J

 

 

And choose Internet Options, Open Security tab, and click Trusted Sites, then click Sites button: 

 

 

Machine generated alternative text:
Genere!o Security Privacy Content Connections Programs 
Select a zone to Vien or change security settings. 
Internet Local Intranet Restricted 
sites 
T rusted sites 
This zone contains vvebsites that pu 
trust not to damage your computer or 
Advanced

 

 

 

Make sure to add the current SharePoint site URL, and click Add, then Close. Then try to import the document again. If it gave you the same error, then try restarting Internet Explorer, and repeat the steps before to Import from Excel sheet. 

 

Now, once you click on Import, your Excel document will open and you'll see a popup that looks like this: 

 

Import to Windows SharePoint Services list 
Range Iype : 
Table Range 
Range of Cells 
Table Ran e 
Named Ranae

 

 

Choose Named Range, and choose the Name you specified earlier, and hit Import. Wait for the SharePoint magic to take place, and you'll see your Excel sheet uploaded to SharePoint:

 

Our Partners 
@ new item or edit this list 
All Items 
Title 
Find an item 
p 
Address Number of Projects 
Fictional Company 1 
Fictional Company 2

 

 

If you check the columns for this list, you'll see that SharePoint is smart enough to infer the types of columns, and it will create a Number column for our "Number of Projects" column: 

 

Columns 
A column stores information about each item in the list The following columns are currently available in this list 
Column (click to edit) 
Title 
Address 
Number of Projects 
Modified 
Created 
Created By 
Modified By 
Type 
Single line of text 
Single line of text 
Number 
Date and Time 
Date and Time 
Person or Group 
Person or Group

 

 

 

 

You successfully uploaded a Range in your Excel workbook to SharePoint and created a list out of it! That's all good, and it's all basic stuff. Now let's try it backwards! Let's say you have a SharePoint list, that's called Our Partners, and you want to be able to view it in Excel locally, without opening the site. What can you do in this case? Remember that the Import process is just one time push from Excel to SharePoint, and it won't make any kind of connection between the document on your computer and the list. 

 

Click on the List tab, and choose "Export to Excel"

 

Ccnnect to Export t 
Outlook Excel 
Open with Access 
Open with Project 
& Export 
Form Web Parts 
Edit List 
Customize in 
New Quick Step 
Customize List

 

 

 this will open a dialog asking you to either save it or open it, note this will not save or open an Excel file, it will open/save a .iqy file, which is a Web Query file, it will not contain any data, but it will hold a connection reference to your SharePoint list. You can choose to open it, and it will open in Excel, and Excel will ask you if you trust this source, for sure we trust it because it's coming from SharePoint, so click on Enable: 

 

Microsoft Excel Security Notice 
Microsoft Office has identified a potential security concern. 
File Path: 
Data connections have been blocked. If you choose to enable data 
connections, your computer may no longer be secure. Do not enable 
this content unless you trust the source of this file. 
Enable 
Disable

 

 

Now you'll see the data coming in Excel and it looks like this: 

 

Title 
2 Fictional Company 1 
3 Fictional Company 2 
Address Number of Projects Item Type Path 
MTL 
MTL 
5 Item 
2 Item 
sites/HaitiSchoolproject/Lists/Our Partners 
sites/HaitiSchoolproject/Lists/Our Partners

 

 

REMINDER: This is a .iqy file, it doesn't hold the actual data, it just gets the data from SharePoint and shows it to you, if you're offline, it will not be able to display your data. So what to do? We can save it as an Excel sheet now, click Control + S and save it somewhere on your computer. 

 

Now we have our Excel sheet with the data locally, so we don't have to be connected to the internet to see the data .. But .. How can we get the latest data from SharePoint? Suppose that I am collaborating with other people, and they add data to this list, and I have this Excel file on my computer and am too lazy to open the browser and check the updates, I can click on the "Data" tab, and hit Refresh: 

 

Page Layout 
her Existing 
Formulas 
Review 
Show Queries 
From Table 
View Power Pivot 
Connections A 
Properties 
Query • Recent Sources 
Connections 
Refresh 
Edit Links 
All 
Connections 
Get & Transform 
Title 
dress Number of Projects Item Type Path 
5 Item 
2 Item 
sites/HaitiSchoolproj 
sites/HaitiSchoolproj

 

 

But.. Yes, another but.. What if I am too lazy to keep clicking Refresh to refresh my data? I can click on Connections - Just beside the Refresh button, and choose Properties: 

 

 

Review 
View 
Power Pivot 
Connections Al 
Design Tell me what you want to do 
Show Queries 
From Table 
Recent Sources 
Transform 
Properties 
Refresh 
Edit Links 
All 
Connections 
Clear 
Reapply 
Sort 
Filter 
Text to 
Flash Remove Data Consolidate Relationships Manage 
Advanced Columns 
Fill Duplicates Validation • 
Data Tools 
Data Model 
Add. 
Remove 
pr erties... 
Refresh 
Manage Sets... 
Close 
What-I f 
Analysis 
Sort & Filter 
acts Item Type Path 
5 Item 
2 Item 
sites/HaitiSchoolproject/Lists/Our Partners 
sites/HaitiSchoolproject/Lists/Our Partners 
Workbook Connections 
Name 
Description 
Last Refreshed 
Locations where connections are used in this workbook 
Click here to see where the selected connections are used

 

 

Then I can choose: Enable background refresh, and specify that I want to refresh data when the file is opened: 

 

Usage Definition 
Refresh control — 
Last Refreshed: 
Z] Enable background refresh 
Refresh every 60 
IV minutes 
Z] Refresh data when opening the file 
Remove data from the external data range before saving the workbook 
Z] Refresh this connection on Refresh All

 

Click OK and close the Excel sheet. Let's try it out, add a new entry in the SharePoint list: 

 

 

Address 
Fictional Company 3 
Fictional Address 
Number of Projects 51

 

 

Then open your document again, it might ask you to Enable External Connections if it's the first time you open it after the previous configuration, so click Enable Content: 

 

SECURITY WARNING External Data Connections have been disabled 
Enable Content

 

 

Then the records added in SharePoint will appear in this document: 

 

 

Title 
Address 
Number of Projects Item Type Path 
2 
4 
Fictional Company 1 MTL 
Fictional Company 2 MTL 
Fictional Company 3 Fictional Address 
5 Item 
2 Item 
5 Item 
sites/HaitiSchoolproject/Lists/Our Partners 
sites/HaitiSchoolproject/Lists/Our Partners 
sites/HaitiSchoolproject/Lists/Our Partners

 

 

 

Now we don't need to see the last 2 columns, am going to highlight them and right-click then click Hide

 

 

 

Number of Projects Item TYE . 
5 Item 
2 Item 
5 tem 
Cut 
Copy 
Paste Options: 
Paste Special... 
Insert 
Delete 
Clear Contents 
Format Cells... 
Column Width... 
Unhide 
ject/Lists/Our Partners 
oject/Lists/Our Partners 
ject/Lists/Our Partners

 

 

 

Then save your document. That's it, now every time you open this Excel document, it will auto refresh from SharePoint and show you only the data that you need. 

 

We learned in this post, how to get data from Excel into SharePoint as a list, how to give an Excel sheet a Named Range. We learned that Importing Data from Excel will require Internet Explorer as the importing process will require a browser that supports ActiveX controls. We learned how to pull data from SharePoint as a Web Query file (.iqy), which is a file that just connects to SharePoint and doesn't hold any real data, and if you want to save the data, you can save this file as an Excel Document (.xlsx), and we learned how to get the latest data from SharePoint without having to manually asking for it. 

 

Set the Title column to be required in document libraries (Programmatically)

This is a quick post, that may sound like a straightforward task at the beginning, but may take a long time to figure it out.

If you have ever tried to change the Title column to be required in SharePoint list, you know that all what you needed to do is to get reference to the title column, and set it to required, then update, it may look something like this:

SPField titleField=list.Fields[“Title“];

titleField.Required= true;

titleField.update();

But it won’t be that straightforward in document libraries, after all, if you try to make it in the user interface, it won’t be straight forward also.

To make it clear, for example, try to create a document library, and try to create a custom list; in the custom list you will have the option of making the title either mandatory or not, but in the document library you will need to access the content type first, then making the title mandatory in that instance, but the purpose of the article this time is to how to do that programmatically. So here it is:

SPField titleField = list.Fields[“Title“];

SPContentType docCtType = list.ContentTypes[“Document“];

SPFieldLink fieldlink = docCtType.FieldLinks[titleField.Id];

fieldlink.Required =true;

docCtType.Update();

This way you will update the properties for the title column inside the document library.

Hope that helps.

M . D