OSI/MHS Gateway Programmatic Interface (GPI) Programming Guide
TAL Program Example
OSI/MHS Gateway Programmatic Interface (GPI) Programming Guide—424822-001
A-28
 .EXT desc_list(OM_descriptor)[0:MAX_DESCRIPTORS];
 -- This descriptorlist is used for the function call GPI_OM_EXAMINE.
 descriptor_list[0].type := MH_T_EXPLICIT_CONVERSION;
 descriptor_list[0].syntax := OM_S_ENUMERATION;
 descriptor_list[0].value.enumeration := MH_EC_NO_CONVERSION;
 descriptor_list[1].type := MH_T_MTA_REPORT_REQUEST;
 descriptor_list[1].syntax := OM_S_ENUMERATION;
 descriptor_list[1].value.enumeration := MH_RQ_ALWAYS ;
 descriptor_list[2].type := MH_T_MTA_RESPONSIBILITY;
 descriptor_list[2].syntax := OM_S_BOOLEAN;
 descriptor_list[2].value.boolean := OM_TRUE ;
 descriptor_list[3].type := MH_T_ORIGINATOR_REPORT_REQUEST;
 descriptor_list[3].syntax := OM_S_ENUMERATION;
 descriptor_list[3].value.enumeration := MH_RQ_ALWAYS ;
 descriptor_list[4].type := MH_T_RECIPIENT_NUMBER;
 descriptor_list[4].syntax := OM_S_INTEGER;
 descriptor_list[4].value.integer := 1D ;
 printf (" Create the object");
 local_rc := GPI_OM_CREATE_ ( MH_C_MESSAGE_RD,
 OM_FALSE, -- Without defined initial 
 -- values
 local_object,
 root_id, -- Root object identifier
 ); -- Session not necessary
 IF (( local_rc = OM_RC_SUCCESS ) OR ( local_rc = ZGPI_RC_WARNING )) THEN
 BEGIN
 IF ( local_rc = ZGPI_RC_WARNING ) THEN
 printfd (" WARNING! number: ", local_rc );
 printf (" Insert all required attributes ");
 local_rc := GPI_OM_INSERT_ ( local_object,
 IGNORED_FOR_SINGLE_VALUED_ATT,
 descriptor_list,
 descriptor_count);
 IF (( local_rc = OM_RC_SUCCESS ) OR (local_rc = ZGPI_RC_WARNING)) THEN
 BEGIN
 IF ( local_rc = ZGPI_RC_WARNING ) THEN
 printfd (" WARNING! number: ", local_rc );
 printf (" Object OR NAME");
 -- Build and insert the first rdorname_object
 local_rc := build_and_insert_rdorname_obj ( root_id,local_object,
 FIRST );
 IF (( local_rc = OM_RC_SUCCESS ) OR
 ( local_rc = ZGPI_RC_WARNING )) THEN
 BEGIN
 IF ( local_rc = ZGPI_RC_WARNING ) THEN
 printfd (" WARNING! number: ", local_rc );
 printf (" " &
 "Insert the object into the root object");
 descriptor_count := 1D;
 descriptor_list[0].type := MH_T_RECIPIENT_DESCRIPTORS;
 descriptor_list[0].syntax := OM_S_OBJECT;










