258 lines
5.2 KiB
RPGLE
258 lines
5.2 KiB
RPGLE
**FREE
|
|
|
|
//=====================================================================
|
|
//
|
|
// Program......: MEDDFNTSTP
|
|
//
|
|
// Description..: MEDDFN Builder / Parser Test Program
|
|
//
|
|
// Erstellen mit:
|
|
//
|
|
// CRTPGM PGM(GOSCH1/MEDDFNTSTP)
|
|
// MODULE(GOSCH1/MEDDFNTSTP)
|
|
// BNDSRVPGM(GOSCH1/MEDDFNSRV)
|
|
// ACTGRP(*NEW)
|
|
// TGTRLS(*CURRENT)
|
|
//
|
|
//=====================================================================
|
|
|
|
ctl-opt
|
|
option(*srcstmt:*nodebugio);
|
|
|
|
|
|
/COPY './meddfn_h.rpgle'
|
|
/COPY './meddfnap_h.rpgle'
|
|
/COPY './meddfnpr.rpgle'
|
|
|
|
|
|
dcl-ds MediaDefinition
|
|
likeds(MD_MediaDefinition_T);
|
|
|
|
dcl-ds RetrievedDefinition
|
|
likeds(MD_MediaDefinition_T);
|
|
|
|
|
|
dcl-pr BuildTestDefinition;
|
|
end-pr;
|
|
|
|
|
|
//=====================================================================
|
|
//
|
|
// Main
|
|
//
|
|
//=====================================================================
|
|
|
|
BuildTestDefinition();
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
// Vorhandene Definition löschen
|
|
//---------------------------------------------------------------
|
|
|
|
monitor;
|
|
|
|
MD_DeleteMediaDefinition(
|
|
MediaDefinition);
|
|
|
|
on-error;
|
|
|
|
endmon;
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
// Definition erzeugen
|
|
//---------------------------------------------------------------
|
|
|
|
MD_CreateMediaDefinition(
|
|
MediaDefinition);
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
// Original sichern
|
|
//---------------------------------------------------------------
|
|
|
|
RetrievedDefinition = MediaDefinition;
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
// Definition wieder einlesen
|
|
//---------------------------------------------------------------
|
|
|
|
MD_RetrieveMediaDefinition(
|
|
MediaDefinition);
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
// Parser-Ergebnis prüfen
|
|
//---------------------------------------------------------------
|
|
|
|
if MediaDefinition.Device(1).DeviceName <>
|
|
RetrievedDefinition.Device(1).DeviceName;
|
|
|
|
dsply 'ERROR: Device 1 DeviceName';
|
|
|
|
endif;
|
|
|
|
|
|
if MediaDefinition.Device(1).NumberOfMediaFiles <>
|
|
RetrievedDefinition.Device(1).NumberOfMediaFiles;
|
|
|
|
dsply 'ERROR: Device 1 NumberOfMediaFiles';
|
|
|
|
endif;
|
|
|
|
|
|
if MediaDefinition.Device(1).MediaFile(1).SequenceNumber <>
|
|
RetrievedDefinition.Device(1).MediaFile(1).SequenceNumber;
|
|
|
|
dsply 'ERROR: Device 1 SequenceNumber';
|
|
|
|
endif;
|
|
|
|
|
|
if MediaDefinition.Device(1).MediaFile(1).NumberOfVolumeIdentifiers <>
|
|
RetrievedDefinition.Device(1).MediaFile(1).NumberOfVolumeIdentifiers;
|
|
|
|
dsply 'ERROR: Device 1 NumberOfVolumeIdentifiers';
|
|
|
|
endif;
|
|
|
|
|
|
if MediaDefinition.Device(1)
|
|
.MediaFile(1)
|
|
.VolumeIdentifier(1)
|
|
.VolumeIdentifier <>
|
|
RetrievedDefinition.Device(1)
|
|
.MediaFile(1)
|
|
.VolumeIdentifier(1)
|
|
.VolumeIdentifier;
|
|
|
|
dsply 'ERROR: Device 1 VolumeIdentifier';
|
|
|
|
endif;
|
|
|
|
|
|
*inlr = *on;
|
|
return;
|
|
|
|
|
|
//=====================================================================
|
|
//
|
|
// BuildTestDefinition
|
|
//
|
|
// Builds:
|
|
//
|
|
// 2 Devices
|
|
//
|
|
// Device 1
|
|
// 1 Media File
|
|
// DAK066
|
|
//
|
|
// Device 2
|
|
// 1 Media File
|
|
// DAK079
|
|
//
|
|
//=====================================================================
|
|
|
|
dcl-proc BuildTestDefinition;
|
|
|
|
dcl-pi *n;
|
|
end-pi;
|
|
|
|
|
|
clear MediaDefinition;
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
// General
|
|
//---------------------------------------------------------------
|
|
|
|
MediaDefinition.MediaDefinitionName =
|
|
'TEST0200X';
|
|
|
|
MediaDefinition.LibraryName =
|
|
'GOSCH1';
|
|
|
|
MediaDefinition.TextDescription =
|
|
'Test MEDDFN';
|
|
|
|
MediaDefinition.MaximumParallelResources =
|
|
2;
|
|
|
|
MediaDefinition.MinimumParallelResources =
|
|
2;
|
|
|
|
MediaDefinition.DeviceAllocation =
|
|
MD_DeviceAllocateAll;
|
|
|
|
MediaDefinition.SaveFormat =
|
|
MD_SaveFormatParallel;
|
|
|
|
MediaDefinition.NumberOfDevices =
|
|
2;
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
// Device 1 / Resource 1
|
|
//---------------------------------------------------------------
|
|
|
|
MediaDefinition.Device(1).DeviceName =
|
|
'TAPMLBBRMS';
|
|
|
|
MediaDefinition.Device(1).NumberOfMediaFiles =
|
|
1;
|
|
|
|
MediaDefinition.Device(1)
|
|
.MediaFile(1)
|
|
.SequenceNumber =
|
|
0;
|
|
|
|
MediaDefinition.Device(1)
|
|
.MediaFile(1)
|
|
.StartingPositionInFile =
|
|
*ALL'0';
|
|
|
|
MediaDefinition.Device(1)
|
|
.MediaFile(1)
|
|
.NumberOfVolumeIdentifiers =
|
|
1;
|
|
|
|
MediaDefinition.Device(1)
|
|
.MediaFile(1)
|
|
.VolumeIdentifier(1)
|
|
.VolumeIdentifier =
|
|
'DAK066';
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
// Device 2 / Resource 2
|
|
//---------------------------------------------------------------
|
|
|
|
MediaDefinition.Device(2).DeviceName =
|
|
'TAPMLBBRMS';
|
|
|
|
MediaDefinition.Device(2).NumberOfMediaFiles =
|
|
1;
|
|
|
|
MediaDefinition.Device(2)
|
|
.MediaFile(1)
|
|
.SequenceNumber =
|
|
0;
|
|
|
|
MediaDefinition.Device(2)
|
|
.MediaFile(1)
|
|
.StartingPositionInFile =
|
|
*ALL'0';
|
|
|
|
MediaDefinition.Device(2)
|
|
.MediaFile(1)
|
|
.NumberOfVolumeIdentifiers =
|
|
1;
|
|
|
|
MediaDefinition.Device(2)
|
|
.MediaFile(1)
|
|
.VolumeIdentifier(1)
|
|
.VolumeIdentifier =
|
|
'DAK079';
|
|
|
|
end-proc; |