Join Gini von Courter for an in-depth discussion in this video Customize a library, part of SharePoint Online Essential Training.
- [Voiceover] We've just seen a fistful of different ways to bring List Apps into SharePoint and there are a lot of different List Apps. Our site includes links, and announcements, and contacts, but there are also calendars and tasks, issue tracking. We've worked with the custom list and the custom list in datasheet view. There are a lot of lists, there are not as many types of Libraries. First, we have picture libraries, which are a place to upload pictures.
We have asset libraries, which are used for rich media which can include pictures, but also includes audio and video files. We have Wiki page libraries, and you can use Wiki pages to create an interactive system, like a Help system, a knowledge base of your own. This is a great way to be able to collect information from people engineering in the field, or folks who are writing about their lived experience and best practices dealing with customers.
Data connection libraries are where you store files that contain information about data you're connecting to outside of your SharePoint site. We also have form libraries, and form libraries are created normally using Microsoft InfoPath, you would create a form and publish it, and publishing it creates the library for those forms. We also have report libraries, which are used for business intelligence and metrics and so on. And so we have a number of different types of libraries, but most of the libraries you create will be document libraries.
Document libraries are used not just to store information and to be able to collaborate on it, but these are libraries that you can synchronize. These are libraries where you can easily share documents with people, where you have versioning settings that you can work with, and so document libraries are a type apart from the others, because they are more powerful, they have more features. But they're also the most generic in a way, they're not specific to business intelligence or to forms, they're not specific to images or to rich media.
So document libraries are this nice, generic, but incredibly powerful type of library to create. You will create them over and over again and almost every time you create a document library you will ultimately want to customize it based on your team or your group's use cases. Your specific organizational needs. For example, we're going to create a document library that requires some additional columns. Our use case is that the document library is for documents that are used as resources, by our team.
Therefore, we'll want to know what type of a resource it is. So the first column that I'll want to add will allow our users who upload or create documents to choose a kind of document. In the second column will be what department owns the document, for example, if I have a document that is a presentation, it might be owned by the Public Relations department. It might be owned by the Sales department. This kind of information, data about documents, data about data, is called metadata.
And metadata is something that sets SharePoint apart from Windows. If I wanted to have this kind of information in a Windows environment, I'd either need to include something about the document type and the department in the file name, or I'd need to start creating folders to label the information. So I might have a folder for all the documents owned by IT, all the documents owned by HR. But I don't need to do that in SharePoint, in SharePoint, I can attach metadata, data about a document, to the document itself without creating a folder.
So how a file is stored, and how it is described, are two different functions in SharePoint, including in OneDrive. Let's slide over to SharePoint and create this document library for resources and customize it by adding a couple of columns. I've created a new document library called ResLib for Resource Library. Let's pop it open and customize it. As soon as it loads, I'm going to click the Library tab.
Library Settings, change the list name and description, and navigation as well. That's it's URL, but we're going to call this Resource Library, we are going to display it on the QuickLaunch, so there's our navigation change, and for our description, these are resources for the event planning and sales team and other members of Team Landon SF.
Like that, save it. We'll get a much nice title now when we go back. Better than ResLib, but if you always use L-I-B to mean Library it makes your URLs easier to read as you're working your way through things. Consistency is nice in SharePoint, particularly in terms of naming. Now, there are two specific things that I want to do here. We are going to modify this library, so that we have a document type, and we are going to add the Owner column.
Let's do those two items. First, back to our Library, Library Settings, I didn't have to come out first, I just wanted to show you how that library page was going to look. We could have done these items one after another while we stayed right here, scroll down the page to Columns and choose Create Column and our first column is going to be a column where we simply choose a kind of document. We need a name for this, now, if I call it Type, type is actually already used, you can see that right here, Name and Type.
As a matter of fact, Type, Kind, Category, all of those types of words tend to be used over and over again. So we might want to call this DocType, or it's a resource so we could call it Resource Type, that's a fairly wide column heading, but some of our choices are relatively long, like the word Presentation. This is going to be Choice. Now, two possibilities, if we're going to simply enter our choices here, and we're only using this type of a list, these choices in one place in the site, we don't expect them to change much, then this is a great way to do this.
On the other hand, if we expect it to change a lot, we would use Look Up and we're going to see that next so that you can contrast the two. And we're going to say that this is for Type of document based on use. Require that this column contains information. If we say no, then users can upload documents and not bother to tell us what type they think they are. If we want a system that is going to assign a doc type to each document or resource type, we have to require this.
Enforce unique values, means exactly what it sounds like. If I enforce unique values, then a value can only occur once in this column. This would be for Key Columns. In a list of employees, this might be employee numbers. In a list for a financial institution this might be account numbers. We're going to enter the same choices over and over again, so we actually do not want to enforce unique values. My choices here, in alphabetical order, are App, or Application, Brochure, Document, Form, Presentation.
Now, it's possible that someone would upload a document that is of a type that we have not yet imagined. If we are requiring that the column contain information, and we don't give them the choice they need, they will have to choose something, and we will be miscategorizing information. Therefore, if we can imagine that there might be document types that we don't yet know about, we would be wise to add one more choice to our list, which would be Other.
Now we're asked how we would like to display these choices. So we can say Drop-Down Menu, Checkboxes, or Radio Buttons. A drop-down menu is normally a choice of one item, radio buttons when you choose one item, another choice is unchosen, the other name for these is option buttons. And then if you want to allow multiple selections, well it's a document, but a brochure, then you could use checkboxes. You have to decide whether your list is mutually exclusive or not.
If you want users to be able to choose multiple items, then choose checkboxes. Will we allow users to fill in some other choice? And we can monitor the use and if we see other being chosen a lot, then we need to drill down and see what that means, and add some more items to our list. Do we want do have a default value? If not, we delete this. It's simply choosing the item that's first on the list, that makes it easy for people simply to skip past this. So if you need to know that someone chose something, don't leave a default value.
And I would like this column added to the default view, one more thing before we leave here. I have the ability to add a formula for validation, including the ability to add a user message if data is invalid. I don't need to validate these particular choices because no one's entering anything, they're actually making choices from a drop down list. Let's click OK. To add this custom column to our library and here's our new column and notice that it is required.
We're going to create one more column, and we're going to create it from our list of department names, and that is to determine who owns this particular resource. Our name for our column is Owned By and I'm going to do a lookup based on information that's already on this site. This is very different than any other kind of custom column we've added, and I can't add the lookup until I've actually created the app that holds for the information.
So I had to create my departments app first. Require that this column contain information, yes. Enforce unique values, no. Get information from, and it's going to list our Apps, and we want Departments, and we would like the title. Do we allow multiple values? No. Do we allow unlimited length in document libraries? No. And, if someone chooses a department, do I want to show another field? In this case, I don't, but you might imagine for example that someone's choosing a customer name and then we also want to show the customer number.
Or they're choosing a city out of an address, and we want to pull up the corresponding state. So if someone has chosen a value, we can then return another piece of information, provided that the column that they're choosing to begin with is a column that is a key column, or is unique. Now, because I am using data from another app, I'm actually creating a relationship between these two lists. When I use a lookup column, I then need to specify how I would like to manage that relationship.
One thing I can do is simply ignore the relationship, and if I do that, then these two lists have no real ongoing relationship to each other. If, for example, someone deletes some departments out of the departments list that are used here, it doesn't matter. If a user then goes to use that department again, they won't be able to because it won't be on the list, but a user would be allowed, currently, to delete, for example, the accounting department even though the accounting department was used here.
If I don't want that to happen, then what I can do is I can enforce relationship behavior. There are two possibilities. The first is Restrict Delete. What that means is if we've entered any record here, that uses the accounting department, that restricts the ability to delete that department name, that entry, from the departments app. If no one's used accounting, and it's deleted, that's fine. But if it's in use in our Resource Library, it can't be deleted from the departments list, and there are many times that's exactly what we want.
We want to say anything in use in the library, needs to stay in the lookup table. The second behavior, Cascade delete, is very different than that. Cascade delete is really focused on the lookup table, and what cascade delete says is that if I delete accounting from the lookup table, every item in the resource library that has accounting as it's owner, will also be deleted. Let me say that again, cause it's really sweeping. Someone deletes the accounting department from the lookup table, this department exists no longer.
Therefore, any of the documents that were owned by that department are automatically deleted. Well, in our example, that's not at all helpful, because those documents will still be useful to someone. We don't want to simply delete them. But there are times that that's exactly what you want to do, when an option has been eliminated, we want to make sure that anything that relied on that option is also deleted. So imagine that you have a relationship between courses and instructors, and an instructor leaves.
Then the courses that instructor taught that were their specialty, might then be removed, because that instructor is no longer with us. There's another possibility which is, that the courses exist independently of the instructors, and in that case, we would probably not choose cascade delete. The reason that you want to enforce relationship behavior is to ensure that if an option has been used, from a drop-down list, that item needs to stay in the list.
If you don't care, you can choose not to enforce relationship behavior. But that really means that these two lists, these two apps have no relationship to each other. So I'm going to enforce relationship behavior, Restrict Delete, says this column must be indexed, in other words it has to be numbered, and we're going to say yes. Every item then will get an ID and there will be an index created for this column. Let's now return to the Resource Library, which has our two new custom columns that we created.
Resource Type, and Owned By. If I then were to create a new document, for example in Microsoft Word, We're simply going to create a sample document, throw a little bit of text at it so that we can save it. And we'll say that this is an expense form instructions, and it's owned by accounting. Those are just our notes, okay? They wouldn't necessarily say this. Just so we're clear what they are.
And it's being saved right now. I'm going to go back to Team Landon SF. And this is called document, and it is still checked out to me. Let's do a couple of things here. I would like to view the properties for this document. We can give this a new name, and this is Expenseforminstructions Title, Filling Out Your Expense Form.
And notice, here are two customizations, Resource Type, Other. Type of document based on use, that was the description and here is where it will show up at. And it's in the accounting area, that works for me, and I'm going to click Save, notice that Name, Resource Type, and Owned By are all required, and here is our expenseforminstructions, a few seconds ago, Owned By Accounting, and the Resource Type is Other. This is a hyperlink because it comes from a lookup, so I can find this record elsewhere on this site.
The only thing that will be in there is Accounting but if this were for example, a table that had other information, whose the head of this department, what's the address for the department and so on, I would have the ability to access all that information by following this hyperlink into the related table. One more distinction, if we go back to the library, and I switch into Quick Edit Mode, or any other mode, remember that Resource Type list, is only modifiable if I go in and type new values in here or delete values.
So this is very much part of this library only. However, if anyone modifies our list of departments, that information is all, automatically available here to this Resource Library in SharePoint. It's easy to customize a library in so many different ways, to add columns of data that allow us to sort our library, to filter our library, to find information more easily.
And it's far more useful to us in SharePoint, than it is if we were simply throwing a folder into a network share. This is the power of library customization.
- What is SharePoint?
- Understanding SharePoint roles
- Searching SharePoint sites
- Editing, saving, and sharing documents
- Using OneDrive for file storage
- Working with libraries and list apps
- Creating custom and dynamic views
- Changing file, item, and list settings
- Using the SharePoint social features, including your newsfeed and Delve
- Building site collections
- Working with app parts and web parts
- Displaying images and media
- Integrating SharePoint 2016, Office 2016, and Office 365
- Customizing search in SharePoint
- Adjusting SharePoint permissions
- Creating content types and document sets