OSI/MHS Management Programming Manual
Examples
OSI/MHS Management Programming Manual—424824-001
C-16
SPI Example in TAL
 CALL Reset^SpiBuf;
 -- Count number of response records in the reply.
 Token^Id := zSpi^Tkn^DataList;
 SSErr := SSGetTkn( Spi^Buffer,
 zSpi^Tkn^Count,
 Token^Id,
 1,
 DataList^Count );
 IF (SSErr <> zSpi^Err^OK) THEN
 BEGIN
 Write^Term^With^Num ( "SSGetTkn failed", SSErr );
 CALL Abend;
 END;
 FOR DataList^Index := 1 TO DataList^Count DO
 BEGIN
 -- Open the first response list.
 SSErr := SSGetTkn( Spi^Buffer,
 zSpi^Tkn^DataList,
 DataList^Index );
 IF (SSErr <> zSpi^Err^OK) THEN
 BEGIN
 Write^Term^With^Num ( "SSGetTkn failed", SSErr );
 CALL Abend;
 END;
 -- Get zCom^Tkn^Objtype.
 SSErr := SSGetTkn( Spi^Buffer,
 zCom^Tkn^Objtype,
 Object^type );
 IF (SSErr <> zSpi^Err^OK) THEN
 BEGIN
 Write^Term^With^Num ( "SSGetTkn failed", SSErr );
 CALL Abend;
 END;
 Write^Term^Blank;
 CASE Object^Type OF
 BEGIN
 zCom^Obj^MON ->
 CALL Write( Term^Fn,
 Objectnm1 [1],
 Objectnm1 [0] );
 zCom^Obj^SUBSYS ->
 CALL Write( Term^Fn,
 Objectnm2 [1],
 Objectnm2 [0] );
 zCom^Obj^CLASS ->
 CALL Write( Term^Fn,
 Objectnm3 [1],
 Objectnm3 [0] );
 zCom^Obj^GROUP ->
 CALL Write( Term^Fn,
 Objectnm4 [1],
 Objectnm4 [0] );
 zCom^Obj^PROCESS ->
 CALL Write( Term^Fn,
 Objectnm5 [1],
 Objectnm5 [0] );
 zCom^Obj^MTA ->
 CALL Write( Term^Fn,
 Objectnm6 [1],
 Objectnm6 [0] );
 zCom^Obj^ROUTE ->
 CALL Write( Term^Fn,










