In the last episode, we talked about working with the most important part of the global context, metadata object managers. Now, let's get through the rest of it. But first, let me swap these guys for now, just like this. Next up are the system objects. They live in global context properties, mixed with all the metadata object managers from the last episode. Let's take this client application object for example, and these are its methods we can use to control some and user application properties. We can check out and set the font size, the caption, etc. You might remember how we used this object back in the day to change the main window caption in one of the module 2 episodes. Here we are calling this object ask [inaudible] set caption method and paste in this function to return value as a parameter, and this is where the function lives. It reads and returns the company name constant value, and boom, whatever we save to this constant ends up being our replication caption. Next up, the general purpose methods: numerous and versatile. They are grouped into these folders according to their purposes. There is no way on earth we could get through all of them in a reasonable time for they are plentiful, so I suggest you browse through them on your own. But there is one example of us using some of these methods recently. Let's open this day type functions folder, and here are the beg of the month and the end of the month functions. This is how we use this function in the source code. When we post to the sales document, we check the monthly turnover on the current loyalty cart using this piece of code right here. This is the document's actual date, and these are our general purpose friends from the global context. Debugging this code, we can see the date of the document, which is October the 4th, beg of month returns October the 1st, and end of month returns October the 31st, so we pass the entire month to these turnovers method of the register and to the last part of the global context, the system enumerations and value sets. The system enumerations live here, and they are nothing but value types with fixed lists of possible values. For example, this accumulation record type is a value type allowing either expense or receipt value. This type is used for the accumulation registers record type standard attribute. Remember this one? Let me show you, I'm opening the inventory accumulation register, and here is our record type standard attribute. This is how we assign the accumulation record type enumeration value to the record type attribute, when posting a sales document. We create a new register record and tell the platform that this record should subtract from the balance. As for the value sets, they sit in this folder and unlike the system enumerations, are not types but rather collections of various values the platform keeps for our convenience. For example, we can use this Chars value set to add invisible symbols, like tap or line feed to a string, but it doesn't prevent us from using any other symbols, including other invisibles that are not in this value set. This is how we used this value set in our source code. If there are not enough products for a sales document we are posting, we prepare message for user using the line feed invisible symbol to split the message into several lines like this. This is how it looks like when we try to sell more than we have. This is our message split by this invisible line feed symbols from the Chars value set. This was the global context and how we can use it and the source code. Of course, we didn't cover each and every global context feature, not even close, but this should be enough for you to start digging in and discovering other parts of the global context when you need them.