Previous Topic: Common Program Exit StructureNext Topic: Input XML Buffer Authentication Type


Program Exit Input Argument

Program exits have a single interface consisting of a single input argument, which is an XML buffer. All program exits are passed to the XML buffer with the following format:

<eTExitInvoke eTExitType={one of the exit types}>
   <{the objectclass of the object being processed}>
   <dn>{the full DN of the object}</dn>
   <name>{the name, that is, RDN value, of the object}</name>
   <{attribute type}>{attribute value}</{attribute type}>
   ...
   </{the objectclass of the object being processed}>
   <Authentication>
      <Type> </Type>
      <User> </User>
      <Password> </Password>
   </Authentication>
</eTExitInvoke>

For example:

<eTExitInvoke eTExitType=PRE_ADD_ACCOUNT>
   <eTSDKAccount>
      <dn>eTSDKAccountName=test1, eTSDKAccountContainerName=SDK Accounts,     
         eTSDKDirectoryName=Team1, dc=Dev</dn>
      <name>test1</name>
      <eTSDKCity>Renton</eTSDKCity>
   </eTSDKAccount>
   <Authentication>
      <Type>GLOBAL_USER</Type>
      <User>{the DN of the global user}</User>
      <Password>{the password of the global user}</Password}
   </Authentication>
</eTExitInvoke>

For modify operations, the modify mode is specific in each tag. The possible modify modes are ADD, DELETE, and REPLACE. For example:

<eTExitInvoke eTExitType=PRE_MOIDFY_ACCOUNT>
   <eTSDKAccount>
      <dn>eTSDKAccountName=test1, eTSDKAccountContainerName=SDK Accounts,    
         eTSDKDirectoryName=Team1, dc=Dev</dn>
      <name>test1</name>
      <eTSDKCity modify-mode=”replace”>Kirkland</eTSDKCity>
      <eTSDKDescription modify-mode=”delete”
         Old description</eTSDKDescription>
   </eTSDKAccount>
</eTExitInvoke>

The program exit parses this input argument to get the data it needs to perform its specific task.

If a program exit is defined to handle only a specific type of exit, it should check the eTExitType to make sure that it can handle that specific type. For example, if a program exit is designed to handle the exit type PRE_ADD_ACCOUNT, it should check eTExitType and should perform only its task, if the exit type is correct. If the exit type is not handled by the program exit, it should do nothing and should return a warning.