OSI/MHS Gateway Programmatic Interface (GPI) Programming Guide

TAL Program Example
OSI/MHS Gateway Programmatic Interface (GPI) Programming Guide424822-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;