NetBasic API Reference


NDS:Add:AFPServer

Module:NDS.NLM
Purpose:Add an AFP Server object.
Syntax:<lSuccess> = NDS:Add:AFPserver(<sServerName>)
Description:Adds an object of the AFP Server type with the common name <sServerName> to the current context.
Outputs:Logical
Note:The AFP Server class identifies objects that are classified to provide AFP services. AFP Server is an effective object class.
See Also:**
Example:Success = NDS:Add:AfpServer("CN=AFPServer1")
If (!Success)
Print("Error adding AFP Server")
Endif

Go to Table of Contents

NDS:Add:Alias

Module:NDS.NLM
Purpose:Adds an Alias object.
Syntax:<lSuccess> = NDS:Add:Alias(<sAlias>,<sObject>)
Description:Adds the object <sAlias> of the Alias type for the object <sObject> to the current context.
Outputs:Logical
Note:An alias is a name containing at least one RDN that is an alias entry. Aliases permit Directory entries to have multiple immediate superiors and consequently provide a basis for alternative names.
Just as the distinguished name of an object expresses the object's relationship to some hierarchy of objects, an alias typically expresses an alternative relationship to a different hierarchy of objects.
An object in the Directory tree may have zero or more aliases. It follows that several alias entries may point to the same object entry. Only object entries can have aliases. Aliases of aliases are not permitted.
An object entry does not have to be a leaf entry to have an alias. Alias entries, however, cannot have subordinates and are always leaf entries.
The Directory uses the Aliased Object Name attribute in an alias entry to identify and to find the corresponding object entry.
The object class Alias does not specify naming attributes for alias entries, nor does the class define where in the Directory tree alias entries may be contained. The Directory enforces the naming and containment rules mandated by the base class of the object to which the alias points.
See Also:NDS:Alias
Example:Success = NDS:Add:Alias("Bob","Robert")
If (!Success)
Print("Error adding Alias")
Endif

Go to Table of Contents

NDS:Add:BinderyObject

Module:NDS.NLM
Purpose:Adds a bindery object.
Syntax:<lSuccess> = NDS:Add:BinderyObject (<sObjectName>,<iRestriction>,<sBinderyType>)
Description:Adds the object <sObjectName> of the Bindery Object type <sBinderyType> with the restrictions <iRestriction> to the current context.
Outputs:Logical
Note:This function is generally used by NDS to mutate a bindery object to a NDS object. For more detailed information on the restrictions call Novell at 1-800-REDWORD.
See Also:**
Example:Success = NDS:Add:BinderyObject("Tim",Restriction,BinderyType)
If (!Success)
Print("Error adding Bindery Object")
Endif

Go to Table of Contents

NDS:Add:BinderyQueue

Module:NDS.NLM
Purpose:Adds a Bindery Queue Object.
Syntax:<lSuccess> = NDS:Add:BinderyQueue (<sCommonName>,<sBinderyType>,<sQueueDirPath>)
Description:Adds the object <sObjectName> of the Bindery Queue type <sBinderyType> and in the directory <sQueueDirPath> to the current context. The following is a list of bindery types:
ValueType
3PRINT QUEUE
8ARCHIVE QUEUE
10JOB QUEUE
Outputs:Logical
Note:Bindery Queue - Represents an object that has been created by the Bindery Emulator to emulate a user-defined queue object.
See Also:**
Example:Success = NDS:Add:BinderyQueue("CN=Que1","3","SYS:\Que1")
If (!Success)
Print("Error adding Bindery Object")
Endif

Go to Table of Contents

NDS:Add:Computer

Module:NDS.NLM
Purpose:Adds a Computer object.
Syntax:<lSuccess> = NDS:Add:Computer(<sComputerName>)
Description:Adds the object <sComputerName> of the Computer type to the current context.
Outputs:Logical
Note:Computer - Represents both computers that host NetWare servers and computers used as client workstations.
See Also:**
Example:Success = NDS:Add:Computer("CN=Server1")
If (!Success)
Print("Error adding Server Object")
Endif

Go to Table of Contents

NDS:Add:Country

Module:NDS.NLM
Purpose:Adds a Country object.
Syntax:<lSuccess> = NDS:Add:Country(<sCountryName>)
Description:Adds the object <sCountryName> of the Country type to the current context.
Outputs:Logical
Note:The Country class is used to define country entries in the Directory tree. Countries usually appear as immediate subordinates of the root. Country is an effective class. The names are specified in ISO3166.
See Also:**
Example:Success = NDS:Add:Country("C=US")
If (!Success)
Print("Error adding Server Object")
Endif

Go to Table of Contents

NDS:Add:DirectoryMap

Module:NDS.NLM
Purpose:Adds a Directory Map object.
Syntax:<lSuccess> = NDS:Add:Directorymap (<sMapName>,<sHostServer>)
Description:Adds a Directory Map object <sMapName> to the current context and sets the server name for the path to <sHostServer>.
Outputs:Logical
Note:Directory Map - Represents the physical name of a file system directory path.
See Also:**
Example:Success = NDS:Add:Directorymap("CN=ToDos","Server1")
If (!Success)
Print("Error adding Directory Map Object")
Endif

Go to Table of Contents

NDS:Add:ExtEntity

Module:NDS.NLM
Purpose:Adds a External Entity object.
Syntax:<lSuccess> = NDS:Add:Extentity(<sEntityName>)
Description:Adds an object <sEntityName> of the External Entity type to the current context.
Outputs:Logical
Note:External Entity - Represents a non-native NDS object. This object can be used by services that need to store information about entities outside of the Directory. For example, a messaging service that can send messages to E-mail users outside of the Directory needs to store address information about those E-mail users.
See Also:**
Example:Success = NDS:Add:Extentity("CN=MailBox")
If (!Success)
Print("Error adding External Entity Object")
Endif

Go to Table of Contents

NDS:Add:Group

Module:NDS.NLM
Purpose:Adds a Group object.
Syntax:<lSuccess> = NDS:Add:Group(<sGroupName>)
Description:Adds a Group type object <sGroupName> to the current context.
Outputs:Logical
Note:Group - Defines values representing an unordered set of names. The names themselves can represent individual objects or other groups of names.
See Also:**
Example:Success = NDS:add:Group("CN=NewGroup")
If (!Success)
Print("Error adding Group Object")
Endif

Go to Table of Contents

NDS:Add:List

Module:NDS.NLM
Purpose:Adds a List object.
Syntax:<lSuccess> = NDS:Add:List(<sListName>)
Description:Adds the object <sListName> of the List type to the current context.
Outputs:Logical
Note:List - Represents an unordered set of names.
See Also:**
Example:Success = NDS:Add:List("CN=Cars")
If (!Success)
Print("Error adding List Object")
Endif

Go to Table of Contents

NDS:Add:Locality

Module:NDS.NLM
Purpose:Adds a Locality object.
Syntax:<lSuccess> = NDS:Add:Locality(<sLocalityName>,<iNameType>)
Adds the object <sLocalityName> of the Locality type <iNAmeType>. The values for <iNameType> are:
ValueType
0Locality
1State/Provence
Outputs:Logical
Note:Locality - Defines geographic locations in the Directory tree.
See Also:**
Example:Success = NDS:Add:Locality("L=Provo",0)
If (!Success)
Print("Error adding Locality Object")
Endif

Go to Table of Contents

NDS:Add:MessageRoutingGrp

Module:NDS.NLM
Purpose:Adds a Message Routing Group object.
Syntax:<lSuccess> = NDS:Add:Messageroutinggrp(<sMessGrpName>)
Description:Adds the object <sMessGrpName> of the Message Routing Group type.
Outputs:Logical
Note:Message Routing Group - Represents a group (or cluster) of messaging servers that have direct connectivity for transferring messages between any two of them.
See Also:**
Example:Success = NDS:Add: Messageroutinggrp("CN=MessGrp1")
If (!Success)
Print("Error adding Message routing group Object")
Endif

Go to Table of Contents

NDS:Add:MessageServer

Module:NDS.NLM
Purpose:Adds a Message Server object.
Syntax:<lSuccess> = NDS:Add:MessageServer(sServerName>)
Description:Adds the object <sServerName> of the Messaging Server type.
Outputs:Logical
Note:Messaging Server - Represents messaging servers (such as NetWare MHS servers)
See Also:**
Example:Success = NDS:Add:MessageServer("CN=MessServ1")
If (!Success)
Print("Error adding Bindery Object")
Endif

Go to Table of Contents

NDS:Add:NCPServer

Module:NDS.NLM
Purpose:Adds a NCP Server object.
Syntax:<lSuccess> = NDS:Add:NCPServer(<sServerName>)
Description:Adds a NCP Server type object <sServerName>.
Outputs:Logical
Note:NCP Server - Represents servers that provide NCP transport and session services.
See Also:**
Example:Success = NDS:Add: NCPServer("CN=NCPServ1")
If (!Success)
Print("Error adding NCP Server Object")
Endif

Go to Table of Contents

NDS:Add:Org

Module:NDS.NLM
Purpose:Adds a Organization object.
Syntax:<lSuccess> = NDS:Add:Org(<sOrgName>)
Description:Adds the object <sOrgName> of the Organization type.
Outputs:Logical
Note:Organization - Defines organization objects in the Directory tree.
See Also:**
Example:Success = NDS:Add:Org("O=Org1")
If (!Success)
Print("Error adding Organization Object")
Endif

Go to Table of Contents

NDS:Add:OrgRole

Module:NDS.NLM
Purpose:Adds a Organizational Role object.
Syntax:<lSuccess> = NDS:Add:OrgRole(<sOrgRoleName>)
Description:Adds the object <sOrgRoleName> of the Organizational Role type.
Note:Organizational Role - Defines a position or role within an organization.
Outputs:Logical
See Also:**
Example:Success = NDS:Add:OrgRole("CN=OrgRole1")
If (!Success)
Print("Error adding Organization Role Object")
Endif

Go to Table of Contents

NDS:Add:OrgUnit

Module:NDS.NLM
Purpose:Adds a Organizational Unit object.
Syntax:<lSuccess> = NDS:Add:OrgUnit(<sOrgUnitName>)
Description:Adds the object <sOrgUnitName> of the Organizational Unit type.
Outputs:Logical
Note:Organizational Unit - Defines objects representing subdivisions of organizations.
See Also:**
Example:Success = NDS:Add:OrgUnit("OU=OrgUnit1")
If (!Success)
Print("Error adding Organization Unit Object")
Endif

Go to Table of Contents

NDS:Add:PrintServer

Module:NDS.NLM
Purpose:Adds a Print Server object.
Syntax:<lSuccess> = NDS:Add:PrintServer(<sServerName>)
Description:Adds the object <sServerName> of the Print Server type.
Outputs:Logical
Note:Print Server - Represents NetWare print servers.
See Also:**
Example:Success = NDS:Add:PrintServer("CN=Pserver1")
If (!Success)
Print("Error adding Organization Object")
Endif

Go to Table of Contents

NDS:Add:Printer

Module:NDS.NLM
Purpose:Adds a Printer object.
Syntax:<lSuccess> = NDS:Add:Printer(<sPrinterName>)
Description:Adds the object <sPrinterName> of the Printer type.
Outputs:Logical
Note:Printer - Represents printers in the Directory tree. A printer object points to the queues to which it is attached.
See Also:**
Example:Success = NDS:Add:Printer("CN=LJ3")
If (!Success)
Print("Error adding Printer Object")
Endif

Go to Table of Contents

NDS:Add:Profile

Module:NDS.NLM
Purpose:Adds a Profile object.
Syntax:<lSuccess> = NDS:Add:Profile(<sProfileName>,<sLoginScript>)
Description:Adds a Profile type object <sProfileName> with the login script <sLoginScript>.
Outputs:Logical
Note:Profile - Specifies a shared login configuration.
See Also:**
Example:Script = "map f:=sys:user"+Data:Chr(13)+Data:Char(10)
Script = Script + "map n:=sys:nml"+Data:Chr(13)+Data:Char(10)
Success = NDS:Add:Profile("CN=Profile1",Script)
If (!Success)
Print("Error adding Profile Object")
Endif

Go to Table of Contents

NDS:Add:Queue

Module:NDS.NLM
Purpose:Adds a Queue object.
Syntax:<lSuccess> = NDS:Add:Queue (<sQueueName>,<sQueueDirPath>)
Description:Adds the object <sQueueName> of the Queue type with the directory path <sQueueDirPath>.
Outputs:Logical
Note:Queue - Represents batch processing queues available in the NetWare NCP environment.
See Also:**
Example:Success = NDS:Add:Queue("CN=LJ3 Queue","SYS:Queue")
If (!Success)
Print("Error adding Queue Object")
Endif

Go to Table of Contents

NDS:Add:User

Module:NDS.NLM
Purpose:Adds a User object.
Syntax:<lSuccess> = NDS:Add:User(<sCommonName>,<sSurname>)
Description:Adds the object <sUserName> of the User type with the surname <sSurname>.
Outputs:Logical
Note:User - Represents users of network services.
See Also:**
Example:Success = NDS:Add:User("Bob","Dobbs")
If (!Success)
Print("Error adding User Object")
Endif

Go to Table of Contents

NDS:Add:Volume

Module:NDS.NLM
Purpose:Adds a Volume object.
Syntax:<lSuccess> = NDS:Add:Volume (<sCommonName>,<sHostServer>)
Description:Adds a Volume type object <sVolumeName> Volume type on the server <sHostServer>.
Outputs:Logical
See Also:**
Example:Success = NDS:Add:Volume("Org1","Server1")
If (!Success)
Print("Error adding Volume Object")
Endif

Go to Table of Contents

NDS:Alias

Module:NDS.NLM
Purpose:Determines if a name is an alias.
Syntax:<lYesNo> = NDS:Alias
Description:This function checks to see if an object is an alais. The object must first be located using NDS:Locate, NDS:Container:Locate, or NDS:Search.Then the object has to be selected as the current object using NDS:First or NDS:Next. If the object is an alais for another object the function returns TRUE; otherwise FALSE is returned.
Outputs:Logical
See Also:NDS:Add:Alias, NDS:Container:Locate, NDS:First, NDS:Locate, NDS:Next, NDS:Search
Example:Count = NDS:Locate("[Root]")
Name = NDS:First
Counter = 1
Do While (Counter <= Count)
IF (NDS:Alias)
Print(Name," is an alais"); NewLine
Else
Print(Name," is not an alais"); NewLine
Endif
Name = NDS:Next
Counter = Counter + 1
EndDo

Go to Table of Contents

NDS:Attribute:First

Module:NDS.NLM
Purpose:Gets the First attribute name.
Syntax:<sAttrName> = NDS:Attribute:First
Description:Retrieve the first attribute for the object located by NDS:Attribute:Locate.
Outputs:String
See Also:NDS:Attribute:Locate, NDS:Attribute:Next
Example:See NDS:Attribute:Locate

Go to Table of Contents

NDS:Attribute:Info

Module:NDS.NLM
Purpose:Gets the attribute information.
Syntax:<sAttrInfo> = NDS:Attribute:Info
Description:Returns a string of characters indicating the constraints of the attribute retrieved by NDS:Attribute:First or NDS:Attribute:Next for the object found by NDS:Attribute:Locate.
CodeDescription
HHidden
I synchronized immediately following any change
Nnon-removable
P public
R read-only
S server readable only
Tstring type usable for naming
Vsingle-valued
W write managed
Yvalues not synchronized between replicas
Zsized
Outputs:String
See Also:**
Example:Count = NDS:Attribute:Locate("User1","Surname")
Info = NDS:Attribute:Info
AttrName = NDS:Attribute:First
Print(Info);Newline

Go to Table of Contents

NDS:Attribute:Locate

Module:NDS.NLM
Purpose:Locates an Object and its attributes.
Syntax:<iCount> = NDS:Attribute:Locate (<sObjName>[,<sAttrName>])
Description:Locates the object <sObjName> and the attributes requested. If the attribute name <sAttrName> is not specified then all attributes of the object are located and the count of them is returned. If an attribute name is specified then that attribute, if it exists, is located and a count of one (1) is returned.
Outputs:Integer
Note:Attributes may have more than one value assigned to them.
See Also:NDS:Attribute:First, NDS:Attribute:Next
Example:TgtObj = "TEST"
AttrCount = 0
ValCount = 0
CurrVal = 0
AttrCount = NDS:Attribute:Locate(TgtObj)
Error = Err
If Error = 0
AttrName = NDS:Attribute:First
Error = Err
CurrAttr = 1
Do While (CurrAttr <= AttrCount)
If Error = 0
ValCount = NDS:Attribute:value:count
Error = Err
If Error = 0
CurrVal = 0
Do While (CurrVal < ValCount)
Value = NDS:Attribute:value
Error = Err
If Error = 0
Print("Value ",Data:String(CurrVal)," : ",Value);Newline
Else
Win:Popup("Error: "+DATA:String(Error))
EndIf
CurrVal = CurrVal + 1
EndDo
Else
Win:popup("Error (" + DATA:String(Error) + ") reading value count")
EndIf
Else
WIN:Popup(CurrAttr + ":Error (" + DATA:String(Error) + ") reading attribute")
EndIf
AttrName = NDS:Attribute:Next
Error = Err
CurrAttr = CurrAttr + 1
EndDo
Else
WIN:Popup("ERROR: (" + DATA:String(Error) + ") getting attributes for " + TgtObj)
EndIf

Go to Table of Contents

NDS:Attribute:Next

Module:NDS.NLM
Purpose:Gets the next attribute name.
Syntax:<sAttrName> = NDS:Attribute:Next
Description:Retrieves the next attribute name from the object located with NDS:Attribute:Locate after NDS:Attribute:First has been used. If all the attributes have been accessed NULL is returned and Err is set.
Outputs:String
See Also:NDS:Attribute:First, NDS:Attribute:Locate
Example:See NDS:Attribute:Locate

Go to Table of Contents

NDS:Attribute:Size

Module:NDS.NLM
Purpose:Gets the size of an objects attribute.
Syntax:<iAttrSize> = NDS:Attribute:Size
Description:If the attribute is a string it returns the maximum allowed size of the string, Otherwise, it returns -1. Before using this function NDS:Attribute:Locate must be used to locate the object and NDS:Attribute:First or NDS:Attribute:Next must be used to locate the attribute.
Outputs:Integer
See Also:NDS:Attribute:First, NDS:Attribute:Locate, NDS:Attribute:Next
Example:Count = NDS:Attribute:Locate("User1","Surname")
AttrName = NDS:Attribute:First
Size = NDS:Attribute:Size
Print("The Surname can be ",Data:String(Size), "Long");Newline

Go to Table of Contents

NDS:Attribute:True:Type

Module:NDS.NLM
Purpose:Returns the NDS type of an attribute.
Syntax:<sAttrType> = NDS:Attribute:True:Type
Description:Returns the NDS syntax id (type) of the currently located object attribute. Before using this function NDS:Attribute:Locate must be used to locate the object and NDS:Attribute:First or NDS:Attribute:Next must be used to locate the attribute. The following table shows the meaning of each code returned by the NDS:Attribute:True:Type command.
CodeData Type
0UNKNOWN
1DISTINGUISHED NAME
2CASE EXACT STRING
3CASE IGNORE STRING
4PRINTABLE STRING
5NUMERIC STRING
6CASE IGNORE LIST
7BOOLEAN
8INTEGER
9OCTET STRING
10TELEPHONE NUMBER
11FACSIMILE TELEPHONE NUMBER
12NETADDRESS
13OCTET LIST
14EMAIL ADDRESS
15PATH
16REPLICA POINTER
17OBJECT ACL
18POSTAL ADDRESS
19TIMESTAMP
20CLASS NAME
21STREAM
22COUNTER
23BACK LINK
24TIME
25TYPED NAME
26HOLD
27INTERVAL
28SYNTAX COUNT
Outputs:String
See Also:NDS:Attribute:Type
Example:Count = NDS:Attribute:Locate("User1","Surname")
AttrName = NDS:Attribute:First
Type = NDS:Attribute:True:Type
Print("The NDS type of attr ",AttrName," is ",Type);Newline

Go to Table of Contents

NDS:Attribute:Type

Module:NDS.NLM
Purpose:Returns the NetBasic type of an attribute.
Syntax:<iAttrType> = NDS:Attribute:Type
Description:Returns the Mangeware type of the currently located object attribute. Before using this function NDS:Attribute:Locate must be used to locate the object and NDS:Attribute:First or NDS:Attribute:Next must be used to locate an attribute. The following table shows the meaning of each code returned by the NDS:Attribute:Type command.
CodeData Type
SString
RReal
IInteger, Handle
OObject
LLogical
UUnknown
Outputs:Integer
See Also:NDS:Attribute:True:Type
Example:Count = NDS:Attribute:Locate("User1","Surname")
AttrName = NDS:Attribute:First
Type = NDS:Attribute:Type
Print("The manageware type of attr ",AttrName," is ",Type);Newline

Go to Table of Contents

NDS:Attribute:Value

Module:NDS.NLM
Purpose:Gets the cuurrent value of an object attribute.
Syntax:AttrValue> = NDS:Attribute:Value
Description:Returns the value of the attribute located by NDS:Attribute:First or NDS:Attribute:Next after NDS:Attribute:Locate has been used to located an object. If the attribute is a multi-valued attribute use the NDS:Attribute:Value:Count function to determine the number of values, then successive calls to NDS:Attribute:Value to read some or all the values of a multi-valued attribute.
Outputs:Any
NDS:Attribute:Value:Add, NDS:Attribute:Value:Change, NDS:Attribute:Value:Count, NDS:Attribute:Value:Delete
See Also:**
Example:See NDS:Attribute:Locate

Go to Table of Contents

NDS:Attribute:Value:Add

Module:NDS.NLM
Purpose:Add new value to an object attribute.
Syntax:<lSuccess> = NDS:Attribute:Value:Add (<sObjName>,<sAttrName>,AttrValue>)
Description:Adds the value AttrValue> to an attribute <sAttrName> in the object <sObjName>. If the attribute is single value and it is already defined an error is set in the Err. If the attribute is a multi-valued attribute the value <xAttrValue> will be searched for if it does not exist it will be added, if it does an error will be returned.
Outputs:Logical
See Also:NDS:Attribute:Value, NDS:Attribute:Value:Change, NDS:Attribute:Value:Count, NDS:Attribute:Value:Delete
Example:Object = "User1"
Attribute = "Given Name"
Value = "Bob"
IF (NDS:Attribute:Value:Add(Object,Attribute,Value))
Print("Attribute Added");Newline
Else
Print("Attribute not Added");Newline
Endif

Go to Table of Contents

NDS:Attribute:Value:Change

Module:NDS.NLM
Purpose:Changes the value of an existing object attribute.
Syntax:<lSuccess> = NDS:Attribute:Value:Change (<sObjName>,<sAttrName>,NewValue>[,<xOldValue>])
Description:Changes the value of an attribute <sAttrName> for the object <sObjName> to the value in Value>. If an attribute is a single-valued attribute then the attribute's value is changed. If the attribute is multi-valued then <xOldValue> must be included if it is not Err is set.
Outputs:Logical
See Also:NDS:Attribute:Value, NDS:Attribute:Value:Add, NDS:Attribute:Value:Count, NDS:Attribute:Value:Delete
Example:IF (NDS:Attribute:Value:Change("User1","Surname","Smith"))
Print("Attribute Added");Newline
Else
Print("Attribute not Added");Newline
Endif

Go to Table of Contents

NDS:Attribute:Value:Count

Module:NDS.NLM
Purpose:Gets the number of values in an object attribute.
Syntax:<iCount> = NDS:Attribute:Value:Count
Description:Return the number of values associated with the object attribute that was located using NDS:Attribute:First or NDS:Attribute:Next.
Outputs:Integer
See Also:NDS:Attribute:Value, NDS:Attribute:Value:Add, NDS:Attribute:Value:Change, NDS:Attribute:Value:Delete
Example:See NDS:Attribute:Locate

Go to Table of Contents

NDS:Attribute:Value:Delete

Module:NDS.NLM
Purpose:Deletes a value from object attribute.
Syntax:<lSuccess> = NDS:Attribute:Value:Delete (<sObjName>,<sAttrName>[,AttrValue>])
Description:If the attribute <sAttrName> is a single valued attribute the present value of the attribute will be deleted. If the attribute is a multi-valued attribute and the optional parameter is not passed all values for the attribute will be deleted. If the optional parameter is included and the attribute is a multi-valued attribute then the value will be searched for in attribute. If it is detected that value is deleted, if it is not Err is set.
Outputs:Logical
See Also:NDS:Attribute:Value, NDS:Attribute:Value:Add, NDS:Attribute:Value:Change, NDS:Attribute:Value:Delete
Example:IF (NDS:Attribute:Value:Delete("User1","Given Name"))
Print("Attribute Deleted");Newline
Else
Print("Attribute not Deleted");Newline
Endif

Go to Table of Contents

NDS:Base:Class

Module:NDS.NLM
Purpose:Gets the base class of an object.
Syntax:<sClassName> = NDS:Base:Class
Description:Returns a string containing the base class name of the object located by using NDS:First or NDS:Next.
Outputs:String
Note:A class used to create an object is referred to as the object's base class.
See Also:NDS:Container:Locate, NDS:First, NDS:Locate, NDS:Next, NDS:Search
Example:Count = NDS:Locate(".O=Org1")
ObjName = NDS:First
BaseClass = NDS:Base:Class
Print("The Base Class of ",ObjName," is ",BaseClass); NewLine

Go to Table of Contents

NDS:Child:Count

Module:NDS.NLM
Syntax:<iCount> = NDS:Child:Count
Description:Returns the number of subordinate objects for the object located using NDS:First or NDS:Next. Leaf nodes have 0 children.
Outputs:Integer
See Also:NDS:Container:Locate, NDS:First, NDS:Locate, NDS:Next, NDS:Search
Example:Count = NDS:Locate("[Root]")
ObjName = NDS:First
Cnt = NDS:Child:Count
Print("The Child Count of ",ObjName," is ",Cnt); NewLine

Go to Table of Contents

NDS:Container

Module:NDS.NLM
Purpose:Deterrmine if an object is a container.
Syntax:<lYesNo> = NDS:Container
Description:This function checks to see if an object is an container. The object must first be located using NDS:Locate, NDS:Container:Locate, or NDS:Search.Then the object has to be selected as the current object using NDS:First or NDS:Next. If the object is a container the function returns TRUE; otherwise FALSE is returned.
Outputs:Logical
Note:Objects can be organized so that they can contain or group other objects. The grouping objects are called container objects.
See Also:NDS:Container:Locate, NDS:First, NDS:Locate, NDS:Next, NDS:Search
Example:Count = NDS:Locate("[Root]")
ObjName = NDS:First
If (NDS:Container)
Print("Object ",ObjName," is a container"); NewLine
Endif

Go to Table of Contents

NDS:Container:Locate

Module:NDS.NLM
Syntax:<iCount> = NDS:Container:Locate(<sRootObj>)
Description:Locates the names of the container objects that are immediately subordinate to the specified object and returns the number found. The names are accessed with the NDS:First and NDS:Next functions.
Outputs:Integer
See Also:NDS:First, NDS:Next
Example:Count = NDS:Container:Locate("[Root]")
Print(NDS:First); NewLine
Do While (Count > 0)
Print(NDS:Next); NewLine
EndDo

Go to Table of Contents

NDS:Context:Path

Module:NDS.NLM
Purpose:Gets the current context path.
Syntax:<sPathName> = NDS:Context:Path
Description:Returns the context path name for the current session.
Outputs:String
See Also:NDS:Context:Path:Change
Example:Print("Current context = ",NDS:Context:Path); NewLine

Go to Table of Contents

NDS:Context:Path:Change

Module:NDS.NLM
Purpose:Change current context.
Syntax:<sOldPath> = NDS:Context:Path:Change(<sNewPath>)
Description:Changes the context path from <sOldPath> to <sNewPath> for the current session.This function returns the old context path.
Outputs:String
See Also:NDS:Context:Path
Example:NDS:Context:Path:Change("[Root]")
Print("Current context = ",NDS:Context:Path); NewLine

Go to Table of Contents

NDS:Context:DSServer

Module:NDS.NLM
Purpose:Gets the last server name that processed the NDS call.
Syntax:<sCurrServer> = NDS:Context:DSServer
Description:Returns the distinguished name of the last server to process a call to directory services.
Outputs:String
See Also:**
Example:CurrServer = NDS:Context:DSServer()

Go to Table of Contents

NDS:Date:Modified

Module:NDS.NLM
Purpose:Gets the date of the last time an object was modified.
Syntax:<iModTime> = NDS:Date:Modified
Description:Returns the last modified date of an object in UTF format. The object must first be located using NDS:Locate, NDS:Container:Locate, or NDS:Search.Then the object has to be selected as the current object using NDS:First or NDS:Next.
Outputs:Integer
See Also:NDS:Container:Locate, NDS:First, NDS:Locate, NDS:Next, NDS:Search
Example:Count = NDS:Container:Locate("[Root]")
ObjName = NDS:First
Dateobj = Date:Object(NDS:Date:Modified)
Print("Object ",ObjName," was last modified on ")
Print(DateObj.Date," ",DateObj.Time);Newline

Go to Table of Contents

NDS:Delete

Module:NDS.NLM
Purpose:Deletes an object.
Syntax:<lSuccess> = NDS:Delete(<sObjName>)
Description:Deletes the object <sObjName> of any type. If the Deletion was successful TRUE is returned, otherwise FALSE is returned.
Outputs:Logical
See Also:**
Example:If (NDS:Delete("Test4"))
Print("Object deleted"); NewLine
Else
Print("Object not deleted"); NewLine
EndIf

Go to Table of Contents

NDS:First

Module:NDS.NLM
Purpose:Locates the first object.
Syntax:<sObjName> = NDS:First
Description:Retrieve the first object name from objects located by NDS:Locate, NDS:Containers:Get or NDS:Search and make it the current object.
Outputs:String
See Also:NDS:Container:Locate, NDS:Locate, NDS:Next, NDS:Search
Example:See NDS:Locate

Go to Table of Contents

NDS:Locate

Module:NDS.NLM
Purpose:Locates the subordinate objects.
Syntax:<iCount> = NDS:Locate(<sRootObj>)
Description:Locates the objects that are immediately subordinate to the <sRootObj> and returns the number found. The names are accessed with the NDS:First and NDS:Next functions.
Outputs:Integer
See Also:NDS:Container:Locate, NDS:First, NDS:Next, NDS:Search
Example:Count = NDS:Locate("[Root]")
IF (Count > 0)
Print(NDS:First);Newline
Counter = 1
Do While (Counter < Count)
Print(NDS:Next);Newline
Counter = Counter + 1
Enddo
Endif

Go to Table of Contents

NDS:Map:ID

Module:NDS.NLM
Purpose:Maps a Directory Services object ID to the object name.
Syntax:<sObjectName> = NDS:Map:Id(<iObjectID>)
Description:This function will map a directory object ID to the object name to which it refers.
Outputs:String
See Also:NDS:Map:Name
Example:sName = NDS:Map:Id(iObject)

Go to Table of Contents

NDS:Map:Name

Module:NDS.NLM
Purpose:Maps a Directory Services object name to the object ID.
Syntax:<iObjectID> = NDS:Map:Name(<sObjectName>)
Description:The function will map a directory object name to the local directory ID to which it refers. This is useful for obtaining an ID for use in adding file system trustees, when all you have is the object name.
Outputs:Integer
See Also:NDS:Map:Id
Example:iObject = NDS:Map:Name("Admin")

Go to Table of Contents

NDS:Move

Module:NDS.NLM
Purpose:Moves an object.
Syntax:<lSuccess> = NDS:Move (<sOldName>,<sNewParentDN>,<sNewRDN>)
Description:Moves the object <sOldName> to a new postion in the tree. The <sOldName> must be a complete name. The object's Relative Distinguished Name may be changed by specifying a different Relative Distinguished Name as the new Relative Distinguished Name. The new Relative Distinguished Name is not effected by the current context's path value, but the old object name and the new (destination) parent's name are effected. TRUE is returned if the function is successful, FALSE otherwise.
Outputs:Logical
Note:This function only works for leaf objects.
See Also:**
Example:OldName = ".CN=User0.OU=Unit2.O=Testorg1"
NewParent = ".O=Testorg1"
NewRDN = "CN=User0"
Success = NDS:Move (OldName,NewParent,NewRDN)

Go to Table of Contents

NDS:Name

Module:NDS.NLM
Purpose:Gets the distinguished name an object.
Syntax:<sObjName> = NDS:Name([<iSession>])
Description:Retrieves the distinguished name of the object that is logged in on the specified session number. If <iSession> is specified the logged in object name for the specified session id returned. If not specified then the current session number is assumed. When a session is created the distinguished name of the object is stored in the client session structure. This distinguished name has no relationship to the name context that is stored in the session's directory context.
Outputs:String
See Also:NDS:Name:Change, NDS:Name:Long, NDS:Name:Short, NDS:Name:Type:Remove
Example:Context = NDS:Context:Path
Print("Current context = ",NDS:Name(Context) ); NewLine

Go to Table of Contents

NDS:Name:Change

Module:NDS.NLM
Purpose:Renames an object.
Syntax:<lSuccess> = NDS:Name:Change(<sOldName>,<sNewName>)
Description:Renames the object <sOldName> to <sNewName>. To move an object to a different location in the tree use NDS:Move. TRUE is returned if the function is successful, False otherwise.
Outputs:Logical
Note:Only leaf objects can be renamed and only the Relative Distinguished Name can be changed.
See Also:NDS:Name, NDS:Name:Long, NDS:Name:Short, NDS:Name:Type:Remove
Example:If !(NDS:Name:Change("CN=User0","CN=Pete"))
Print("Unable to change name"); NewLine
EndIf

Go to Table of Contents

NDS:Name:Long

Module:NDS.NLM
Purpose:Convert a Relative Distinguished Name to a Distinguished Name.
Syntax:<sLongName> = NDS:Name:Long(<sShortName>)
Description:Converts an Relative Distinguished Name and a context into a Distinguished Name.
Outputs:String
See Also:NDS:Name, NDS:Name:Change, NDS:Name:Short, NDS:Name:Type:Remove
Example:Context = NDS:Context:Path
Print("Current context = ",NDS:Name:Long(Context) ); NewLine

Go to Table of Contents

NDS:Name:Short

Module:NDS.NLM
Purpose:Convert a Distinguished Name to its shortest size.
Syntax:<sShortName> = NDS:Name:Short(<sLongName>)
Description:Returns the shortest possible version of a complete Distinguished Name relative to the current context. If the context flags are set to use typeless names then the name that is returned is typless; otherwise it is completely typed.
Outputs:String
See Also:NDS:Name, NDS:Name:Change, NDS:Name:Long, NDS:Name:Type:Remove
Example:Context = NDS:Context:Path
Print("Current context = ",NDS:Name:Short(Context) ); NewLine

Go to Table of Contents

NDS:Name:Type:Remove

Module:NDS.NLM
Purpose:Remove the type from a Distinguished Name.
Syntax:<sTypelessName> = NDS:Name:Types:Remove(<sObjName>)
Description:Returns a string containing the typless version of the name <sObjName> and its context.
Outputs:String
See Also:NDS:Name, NDS:Name:Change, NDS:Name:Long, NDS:Name:Short
Example:Context = NDS:Context:Path
Print("Current context = ",NDS:Name:Types:Remove(Context) ); NewLine

Go to Table of Contents

NDS:Next

Module:NDS.NLM
Purpose:Locates the next object.
Syntax:<sObjName> = NDS:Next
Description:Retrieve the next object name from objects located by NDS:Locate, NDS:Containers:Get or NDS:Search and make it the current object. "" is returned and Err is set if all the objects have been read.
Outputs:String
See Also:NDS:Container:Locate, NDS:First, NDS:Locate, NDS:Search
Example:See NDS:Locate

Go to Table of Contents

NDS:Partition:First

Module:NDS.NLM
Purpose:Locates the first partition.
Syntax:<sPartName> = NDS:Partition:First
Description:Locates the first partition name from the partitions located using NDS:Partition:Locate and makes it the current partition.
Outputs:String
See Also:NDS:Partition:Locate, NDS:Partition:Next
Example:See NDS:Partition:Locate

Go to Table of Contents

NDS:Partition:Join

Module:NDS.NLM
Purpose:Joins partitions together.
Syntax:<lSuccess> = NDS:Partition:Join(<sNodeName>)
Description:Joins a subordinate partition with the root node <sNodeName> to its parent .
Outputs:Logical
See Also:NDS:Partition:Split
Example:Success = NDS:Partition:Join(".OU=Unit3.O=Org1")
Error = Err
Print("Error = ",Error); NewLine

Go to Table of Contents

NDS:Partition:Locate

Module:NDS.NLM
Purpose:Locates all partitions.
Syntax:<iCount> = NDS:Partition:Locate(<sServerName>)
Description:Locates all the partitions that are resident on the server <sServerName>. The names are accessed with the NDS:Partition:First and NDS:Partition:Next functions. The number of partitions found is returned.
Outputs:Integer
See Also:NDS:Partition:First, NDS:Partition:Next
Example:Count = NDS:Partition:Locate("Hitecsoft5")
Error = Err
If (Count > 0)
Print("There are ",DATA:String(Count)," Partitions");NewLine
Partition = NDS:Partition:First
Counter = 1
Do While (Counter <= count)
Print("Partition ",Str:trim:all(Data:String(Counter))," : ",Partition); NewLine
Type = PartType(NDS:Partition:Type)
Print("Partition type : ",Type);Newline
Partition = NDS:Partition:Next
Counter = Counter + 1
EndDo
EndIf

Go to Table of Contents

NDS:Partition:Next

Module:NDS.NLM
Purpose:Locates the first partition.
Syntax:<sPartName> = NDS:Partition:Next
Description:Locates the next partition name and info from the partitions found using NDS:Partition:Locate after NDS:Partition:First has been called. An empty string "" is returned and Err is set if there are no more partitions to be located.
Outputs:String
See Also:NDS:Partition:First, NDS:Partition:Locate
Example:See NDS:Partition:Locate

Go to Table of Contents

NDS:Partition:Root

Module:NDS.NLM
Purpose:Determine if an object is a partition root.
Syntax:<lRoot> = NDS:Partition:Root
Description:If the current object, found using NDS:First or NDS:Next, is a partitions root node object the function returns TRUE; otherwise FALSE is returned.
Outputs:Logical
See Also:NDS:Container:Locate, NDS:First, NDS:Locate, NDS:Next, NDS:Search
Example:IsRoot = NDS:Partition:Root
IF (IsRoot)
Print("Root found");Newline
Endif

Go to Table of Contents

NDS:Partition:Root:Get

Module:NDS.NLM
Purpose:Gets the partition root node of an object.
Syntax:<sRootName> = NDS:Partition:Root:Get(<sObjName>)
Description:Returns a string containing the name of the root node (object) of the partition in which the object <sObjName> is contained.
Outputs:String
See Also:**
Example:RootName = NDS:Partition:Root:Get("User1")
Print(RootName);Newline

Go to Table of Contents

NDS:Partition:Split

Module:NDS.NLM
Purpose:Divide a partition.
Syntax:<lSuccess> = NDS:Partition:Split(<sNodeName>)
Description:Splits off a partition from the parent partition at the object <sNodeName> and makes <sNodeName> into the new partition's root node. A replica of the new partition is created everywhere the parent partition had a replica. If the split is unsuccessful the Err is set.
Outputs:Logical
See Also:**
Example:Success = NDS:Partition:Split(".OU=UNIT3.O=Org1")
Error = Err
Print("Error = ",Error); NewLine

Go to Table of Contents

NDS:Partition:Sync

Module:NDS.NLM
Purpose:Schedule a synchronization.
Syntax:<lSuccess> = NDS:Partition:Sync(<sPartName>,<sServerName>)
Description:Tells the network to schedule the partition <sPartName> on server <sServerName> for synchronization.
Outputs:Logical
Note:The Server name is Directory Services server name not a bindery name.
See Also:NDS:Partition:Sync:Time
Example:NDS:Partition:Sync("O=Org1","HITECSOFT6")

Go to Table of Contents

NDS:Partition:Sync:Time

Module:NDS.NLM
Purpose:Gets the last time a partition was synchronized.
Syntax:<iTime> = NDS:Partition:Sync:Time(<sNodeName>)
Description:Returns the last time the partition with a root node (object) <sNodeName> was synchronized.
Outputs:Integer
See Also:NDS:Partition:Sync
Example:Print( NDS:Partition:Sync:Time("O=Org1") );Newline

Go to Table of Contents

NDS:Partition:Type

Module:NDS.NLM
Purpose:Get the type of a partition.
Syntax:<iRepType> = NDS:Partition:Type
Description:Returns the partition (replica) type of the partition currently selected using NDS:Partition:First or NDS:Partition:Next. The types of partitions are:
TypeValueMaster0Replica1Subordinate3
Outputs:Integer
See Also:NDS:Partition:First, NDS:Partition:Locate, NDS:Partition:Next
Example:See NDS:Partition:Locate

Go to Table of Contents

NDS:Password:Change

Module:NDS.NLM
Purpose:Changes an objects password.
Syntax:<iSuccess> = NDS:Password:Change (<sObjName>,<sOldPass>,<sNewPass>)
Description:Changes the password for the object <sObjName> from <sOldPass> to <sNewPass>.
Outputs:Logical
See Also:NDS:Password:Verify
Example:Print( NDS:Password:Verify("CN=User1","oldpass","newpass") );Newline

Go to Table of Contents

NDS:Password:Verify

Module:NDS.NLM
Purpose:Verifies an objects password.
Syntax:<lSuccess> = NDS:Password:Verify(<sObjName>,<sPassword>)
Description:Verifies that the object <sObjName> has the password <sPassword>.
Outputs:Logical
See Also:NDS:Password:Change
Example:Print( NDS:Password:Verify("CN = User1","password") );Newline

Go to Table of Contents

NDS:Replica:Add

Module:NDS.NLM
Purpose:Adds a Partition replica.
Syntax:<lSuccess> = NDS:Replica:Add (<sTargetServer>,<sRootName>,<iRepType>)
Description:Adds a replica of a partition with the root <sRootName> to the server <sTargetServer> of the type <iRepType>.
Outputs:Logical
Note:The function must be running on the server where the master replica exists and a replica cannot exist on the target server.
See Also:NDS:Replica:Delete
Example:Server = "CN=Server6.OU=DEV1.O=Org1"
Root = "O=ORG1"
Type = 1
NDS:Replica:Add(Server,Root,Type)
Error = Err
Print("Error = ",Error); NewLine

Go to Table of Contents

NDS:Replica:Delete

Module:NDS.NLM
Purpose:Delete a partition replica.
Syntax:<lSuccess> = NDS:Replica:Delete (<sTargetServer>,<sRootName>)
Description:Deletes a replica of a partition whose root node is <sRootName> on the server <sTargetServer>.
Outputs:Logical
Note:A replica name is the name of server where the replica resides. The last copy of a replica (the master) must be deleted using NDS:Delete:Partition.
See Also:NDS:Replica:Add
Example:Server = ".CN=Server2.O=Org1"
Success = NDS:Replica:Delete(Server,".OU=Unit1.O=Org1")
Error = Err
Print("Error = ",Error); NewLine

Go to Table of Contents

NDS:Replica:First

Module:NDS.NLM
Purpose:Gets the first server name.
Syntax:<sServerName> = NDS:Replica:First
Description:Retrieves the first server name for the partition replicas located in NDS:Replica:Locate.
Outputs:String
See Also:NDS:Replica:Locate, NDS:Replica:Next
Example:See NDS:Replica:Locate

Go to Table of Contents

NDS:Replica:Locate

Module:NDS.NLM
Purpose:Locates all replicas of a partition.
Syntax:<iCount> = NDS:Replica:Locate(<sPartition>)
Description:Locates all of the replicas of the partition <sPartition> an returns the number found. If there is an error Err is set and a count of zero is returned.
Outputs:Integer
See Also:NDS:Replica:First, NDS:Replica:Next
Example:Partition = "[Root]"
Print("Partition : ",Partition);Newline
Count = NDS:Replica:Locate(Partition)
Error = Err
Print("Get Error = ",DATA:String(Error)); NewLine
Print("Count = ",Count); NewLine
RName = NDS:Replica:First
Counter = 0
Do While (Counter < Count)
type = NDS:Replica:Type
Print("Server : ",RName); NewLine
Print("Replica Type : ",Type);Newline
RName = NDS:Replica:Next
Counter = Counter + 1
EndDo

Go to Table of Contents

NDS:Replica:Next

Module:NDS.NLM
Purpose:Gets the next server name.
Syntax:<sServerName> = NDS:Replica:Next
Description:Retrieves the next server name for the partition replicas located in NDS:Replica:Locate after NDS:Replica:First is called. If all the server names have been accessed NULL is returned and Err is set.
Outputs:String
See Also:NDS:Replica:First, NDS:Replica:Locate
Example:See NDS:Replica:Locate

Go to Table of Contents

NDS:Replica:Type

Module:NDS.NLM
Purpose:Returns the type of a replica.
Syntax:<iRepType> = NDS:Replica:Type
Description:Returns the type of a replica located with NDS:Replica:First or NDS:Replica:Next after NDS:Replica:Locate was called. The Types of replicas are:
Type Value
Master0
Read/Write1
Read only2
Outputs:Integer
See Also:NDS:Replica:Type:Change
Example:See NDS:Replica:Locate

Go to Table of Contents

NDS:Replica:Type:Change

Module:NDS.NLM
Purpose:Changes the type of replica.
Syntax:<lSuccess> = NDS:Replica:Type:Change (<sServerName>,<sRootName>,<iNewType>)
Description:Changes the type of a replica from read-only to read/write, read/write to read-only, read/write to master or read-only to master. You cannot change a master replica to another type. Only directory services can redesignate a master to another type. When a user changes a replica type to a master directory services will effect the change of the previous master's type. The possible types are:
Type Value
Master0
Read/Write1
Read only2
Outputs:Logical
See Also:NDS:Replica:Type
Example:Success = NDS:Replica:Type:Change("Server2",".O=Org1","1")

Go to Table of Contents

NDS:Rights

Module:NDS.NLM
Purpose:Returns the rights of a subject.
Syntax:<sPrivileges> = NDS:Rights (<sSubjName>,<sObjName>,<sAttrName>)
Description:Returns a string in the form "[fff...]" where f is a specific privilege that the subject <sSubjName> has on the object <sObjName> or object attribute <sAttrName>.
Outputs:String
Note:If the rights for an object are need use NDS:Attribute:Locate and request [Entry Rights]
See Also:NDS:Attribute:Locate
Example:Priv=NDS:Rights("User1",".CN=User2.O=ORG1","Surname")
Error = Err
If (Error != 0)
Print("Rights Error = ",Data:String(Error));Newline
Endif
Print("Priv : ",Priv)

Go to Table of Contents

NDS:Search

Module:NDS.NLM
Purpose:Searchs for objects.
Syntax:<iCount> = NDS:Search (<sRootObj>,<iScope>,<lDerefAlias>,<sAttrName>,<sOperator>,AttrVal>)
Description:Searchs for the objects that match the criterion specified in the function parameters. The Object names are retrieved using NDS:First and NDS:Next.

The Scope parameter used in NDS:Search can have any of the following values:
ScopeValue
SEARCH ENTRY 0
SEARCH SUBORDINATES 1
SEARCH SUBTREE2

The <lDerefAlias> parameter is used to instruct the NDS:Search function to dereference aliases or not when searching. It is a boolean and may contain the values TRUE or FALSE.

The AttrName, Operator and AttrVal parameters are employed to allow the user to specifiy a filter expression for the search.

The AttrName parameter is a string containing any valid attribute name.
The <sOperator> parameter is a string containing any of the following values:
OperatorPurpose
=Test <sAttrName> for values equaling AtttrVal>
<=Test <sAttrName> for values less than or equal to AtttrVal>
>=Test <sAttrName> for values greater than or equal to AtttrVal>
EXISTSTest for existance of the attribute <sAttrName>

The AttrVal> parameter is an any type parameter that is used to specify the attribute value. AttrVal must be specified in the format that is appropriate for the attribute's syntax.
Outputs:Integer
See Also:NDS:Container:Locate, NDS:Locate
Example:AttrName = "Object Class"
Operator = "="
AttrVal = "User"
Count = NDS:Search("[Root]",2,True,AttrName,Operator,AttrVal)
If (Count > 0)
Print("Found it");Newline
Endif

Go to Table of Contents

NDS:Security:Add

Module:NDS.NLM
Purpose:Adds security rights to an object.
Syntax:<lSuccess> = NDS:Security:Add(<sObjName>,<sEqualToName>)
Description:Adds an entry to the object <sObjName> list of security equivalences.
Outputs:Logical
See Also:NDS:Security:Delete
Example:Success = NDS:Security:Add(".CN=USER2.O=ORG1",".OU=UNIT1.O=ORG1")
Error = Err
If !(Success)
Print("Error = ",DATA:String(Error)); NewLine
EndIf

Go to Table of Contents

NDS:Security:Delete

Module:NDS.NLM
Purpose:Deletes the security rights of an object.
Syntax:<lSuccess> = NDS:Security:Delete (<sObjName>,<sEqualToName>)
Description:Remove the object <sObjName> from the list of security equivalents for the subject.
Outputs:Logical
See Also:NDS:Security:Add
Example:Success = NDS:Security:Delete(".CN=USER2.O=ORG1",".OU=UNIT1.O=ORG1")
Error = Err
If !(Success)
Print("Error = ",DATA:String(Error)); NewLine
EndIf

Go to Table of Contents

NDS:Session:Current

Module:NDS.NLM
Purpose:Returns the session number for the currect session.
Syntax:<iSession> = NDS:Session:Current
Description:Returns the session number <iSession> of the currently selected session.
Outputs:Integer
See Also:NDS:Session:Login, NDS:Session:Logout, NDS:Session:Select
Example:CurrSess = NDS:Session:Current
Print("The current session is ",CurrSess);Newline

Go to Table of Contents

NDS:Session:Login

Module:NDS.NLM
Purpose:Logs in a new NDS session.
Syntax:<iSession> = NDS:Session:Login (<sClientName>,<sClientPass>)
Description:Creates a directory service context and logs in to directory services using the specified object name and password. If no more client sessions are available, the object name doesn't exist or if the password for the object is incorrect the call fails and Err is set.
Outputs:Integer
See Also:NDS:Session:Current, NDS:Session:Logout, NDS:Session:Select
Example:Buf = ".CN=User1.O=Org1"
Password = "Pass"
CurrSess = NDS:Session:Login(Buf,STR:Trim:All(Password))
Error = Err
If (CurrSess <= 0)
Print("Error ( ",Data:String(Error)," ) logging in as ",Buf)
Endif

Go to Table of Contents

NDS:Session:Logout

Module:NDS.NLM
Purpose:Logs the current NDS session out.
Syntax:<lSuccess> = NDS:Session:Logout
Description:Logs the current session's object out of the network, frees its context and deletes the current client session from the client session array. The 1st in use (logged in) client session becomes the current session. If there are no other client sessions (logged in objects) in the client session list then the default session 0 becomes the current session.
The default session (session 0) is not a logged in client session and therefore cannot be logged out.
A failure to log the client object out of the net or to free its context will cause the call to fail, set the Err, and will invalidate the client session in the session array until the library is re-loaded.
Outputs:Logical
See Also:NDS:Session:Current, NDS:Session:Login, NDS:Session:Select
Example:Out = NDS:Session:Logout()
Error = Err
If (Out = False)
Print("ERROR: (" + DATA:String(Error) + ") logging out "); NewLine
EndIf

Go to Table of Contents

NDS:Session:Select

Module:NDS.NLM
Purpose:Changes the current NDS session.
Syntax:<iOldSession> = NDS:Session:Select(<iNewSession>)
Description:Select an existing directory services session < iNewSession > to make the current directory services session.
Outputs:Integer
See Also:NDS:Session:Current, NDS:Session:Login, NDS:Session:Logout
Example:OldSession=NDS:Session:Select(NewSession)

Go to Table of Contents