> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superoffice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# NSMDOAgent

> MDO Lists, reading, searching, and item lookup.

MDO Lists, reading, searching, and item lookup.

## Constructors

### NSMDOAgent()

```crmscript theme={null}
NSMDOAgent
```

MDO Lists, reading, searching, and item lookup.

## Methods

## GetList(String,Bool,String,Bool)

Gets an MDO list.

```crmscript theme={null}
NSMDOListItem[] GetList(String name, Bool forceFlatList, String additionalInfo, Bool onlyHistory)
```

**Returns:** [CRMScript.NetServer.NSMDOListItem](CRMScript.NetServer.NSMDOListItem)\[]

**Example:**

```crmscript theme={null}
NSMDOAgent agent;
String name;
Bool forceFlatList;
String additionalInfo;
Bool onlyHistory;
NSMDOListItem[] res = agent.GetList(name, forceFlatList, additionalInfo, onlyHistory);
```

## GetListIdByListName(String)

Retrieves the UdListDefinition ID of a list, by its name.

```crmscript theme={null}
Integer GetListIdByListName(String name)
```

**Returns:** [CRMScript.Global.Integer](CRMScript.Global.Integer)

<Note>
  Not all lists have such an ID, but those that are based on tables do (the list name is then the same as the table name)
</Note>

**Example:**

```crmscript theme={null}
NSMDOAgent agent;
String name;
Integer res = agent.GetListIdByListName(name);
```

## GetListItem(String,Integer)

Returns a single list item

```crmscript theme={null}
NSMDOListItem GetListItem(String listName, Integer id)
```

**Returns:** [CRMScript.NetServer.NSMDOListItem](CRMScript.NetServer.NSMDOListItem)

**Example:**

```crmscript theme={null}
NSMDOAgent agent;
String listName;
Integer id;
NSMDOListItem res = agent.GetListItem(listName, id);
```

## GetListNames()

Returns a list of all MDO List names.

```crmscript theme={null}
String[] GetListNames()
```

**Returns:** [CRMScript.Global.String](CRMScript.Global.String)\[]

<Note>
  These names can also be used with the Archive agent as ProviderNames.
</Note>

**Example:**

```crmscript theme={null}
NSMDOAgent agent;
String[] res = agent.GetListNames();
```

## GetListWithHistory(String,Bool,String,Integer\[],Bool)

Get an MDO list with own history list.

```crmscript theme={null}
NSMDOListItem[] GetListWithHistory(String name, Bool forceFlatList, String additionalInfo, Integer[] historyItems, Bool onlyHistory)
```

**Returns:** [CRMScript.NetServer.NSMDOListItem](CRMScript.NetServer.NSMDOListItem)\[]

**Example:**

```crmscript theme={null}
NSMDOAgent agent;
String name;
Bool forceFlatList;
String additionalInfo;
Integer[] historyItems;
Bool onlyHistory;
NSMDOListItem[] res = agent.GetListWithHistory(name, forceFlatList, additionalInfo, historyItems, onlyHistory);
```

## GetListWithRestriction(String,String,String)

Gets an MDO list with restrictions.

```crmscript theme={null}
NSMDOListItem[] GetListWithRestriction(String name, String additionalInfo, String searchValue)
```

**Returns:** [CRMScript.NetServer.NSMDOListItem](CRMScript.NetServer.NSMDOListItem)\[]

**Example:**

```crmscript theme={null}
NSMDOAgent agent;
String name;
String additionalInfo;
String searchValue;
NSMDOListItem[] res = agent.GetListWithRestriction(name, additionalInfo, searchValue);
```

## GetSelectableList(String,Bool,String,Bool)

Gets a Selectable MDO list.

```crmscript theme={null}
NSSelectableMDOListItem[] GetSelectableList(String name, Bool forceFlatList, String additionalInfo, Bool onlyHistory)
```

**Returns:** [CRMScript.NetServer.NSSelectableMDOListItem](CRMScript.NetServer.NSSelectableMDOListItem)\[]

**Example:**

```crmscript theme={null}
NSMDOAgent agent;
String name;
Bool forceFlatList;
String additionalInfo;
Bool onlyHistory;
NSSelectableMDOListItem[] res = agent.GetSelectableList(name, forceFlatList, additionalInfo, onlyHistory);
```

## GetSelectableListWithHistory(String,Bool,String,Integer\[],Bool)

Gets a Selectable MDO list with own history list.

```crmscript theme={null}
NSSelectableMDOListItem[] GetSelectableListWithHistory(String name, Bool forceFlatList, String additionalInfo, Integer[] historyItems, Bool onlyHistory)
```

**Returns:** [CRMScript.NetServer.NSSelectableMDOListItem](CRMScript.NetServer.NSSelectableMDOListItem)\[]

**Example:**

```crmscript theme={null}
NSMDOAgent agent;
String name;
Bool forceFlatList;
String additionalInfo;
Integer[] historyItems;
Bool onlyHistory;
NSSelectableMDOListItem[] res = agent.GetSelectableListWithHistory(name, forceFlatList, additionalInfo, historyItems, onlyHistory);
```

## GetSelectableListWithRestriction(String,String,String)

Gets a Selectable MDO list with restrictions.

```crmscript theme={null}
NSSelectableMDOListItem[] GetSelectableListWithRestriction(String name, String additionalInfo, String searchValue)
```

**Returns:** [CRMScript.NetServer.NSSelectableMDOListItem](CRMScript.NetServer.NSSelectableMDOListItem)\[]

**Example:**

```crmscript theme={null}
NSMDOAgent agent;
String name;
String additionalInfo;
String searchValue;
NSSelectableMDOListItem[] res = agent.GetSelectableListWithRestriction(name, additionalInfo, searchValue);
```

## GetSelectableSimpleList(String)

Returns a flat Selectable MDO List.

```crmscript theme={null}
NSSelectableMDOListItem[] GetSelectableSimpleList(String name)
```

**Returns:** [CRMScript.NetServer.NSSelectableMDOListItem](CRMScript.NetServer.NSSelectableMDOListItem)\[]

**Example:**

```crmscript theme={null}
NSMDOAgent agent;
String name;
NSSelectableMDOListItem[] res = agent.GetSelectableSimpleList(name);
```

## GetSimpleList(String)

Returns a simple flat MDO List.

```crmscript theme={null}
NSMDOListItem[] GetSimpleList(String name)
```

**Returns:** [CRMScript.NetServer.NSMDOListItem](CRMScript.NetServer.NSMDOListItem)\[]

**Example:**

```crmscript theme={null}
NSMDOAgent agent;
String name;
NSMDOListItem[] res = agent.GetSimpleList(name);
```

## SetSelected(String,String)

Saves the selected values as selected by their given list representation.

```crmscript theme={null}
NSSelectableMDOListItem[] SetSelected(String name, String additionalInfo, NSSelectableMDOListItem[] selectableMDOList)
```

**Returns:** [CRMScript.NetServer.NSSelectableMDOListItem](CRMScript.NetServer.NSSelectableMDOListItem)\[]

**Example:**

```crmscript theme={null}
NSMDOAgent agent;
String name;
String additionalInfo;
NSSelectableMDOListItem[] selectableMDOList;
NSSelectableMDOListItem[] res = agent.SetSelected(name, additionalInfo, selectableMDOList);
```


## Related topics

- [NSAIAgent](/en/automation/crmscript/reference/CRMScript.NetServer.NSAIAgent.md)
- [NSBLOBAgent](/en/automation/crmscript/reference/CRMScript.NetServer.NSBLOBAgent.md)
- [Archive agents](/en/api/search/iarchiveagent/index.md)
- [Archive agent](/en/automation/crmscript/netserver/crmscript-archiveagent.md)
- [NSSelectionAgent](/en/automation/crmscript/reference/CRMScript.NetServer.NSSelectionAgent.md)
- [NSChatAgent](/en/automation/crmscript/reference/CRMScript.NetServer.NSChatAgent.md)
