Fehlerverarbeitung initial
This commit is contained in:
@@ -64,6 +64,23 @@ dcl-s MD_DeviceAllocateMinimum int(10) inz(2) const;
|
||||
dcl-s MD_SaveFormatAuto int(10) inz(-2) const;
|
||||
dcl-s MD_SaveFormatSerial int(10) inz(-1) const;
|
||||
dcl-s MD_SaveFormatParallel int(10) inz(0) const;
|
||||
|
||||
|
||||
//=====================================================================
|
||||
// Error Information
|
||||
//
|
||||
// Returned by all public MEDDFN procedures.
|
||||
//=====================================================================
|
||||
|
||||
dcl-ds MD_Error_T qualified template;
|
||||
|
||||
HasError ind;
|
||||
MessageID char(7);
|
||||
MessageData char(128);
|
||||
|
||||
end-ds;
|
||||
|
||||
|
||||
dcl-s MD_VOLUME_ID_LENGTH int(5) inz(6) const;
|
||||
|
||||
//=====================================================================
|
||||
|
||||
+18
-7
@@ -14,18 +14,29 @@ dcl-pr MD_CreateMediaDefinition;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pr;
|
||||
|
||||
|
||||
dcl-pr MD_DeleteMediaDefinition;
|
||||
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
end-pr;
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
dcl-pr MD_RetrieveMediaDefinition;
|
||||
end-pr;
|
||||
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T);
|
||||
|
||||
end-pr;
|
||||
dcl-pr MD_RetrieveMediaDefinition;
|
||||
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T);
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pr;
|
||||
|
||||
+264
-65
@@ -81,6 +81,9 @@ dcl-pr MD_CreateMediaDefinition ;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pr;
|
||||
|
||||
|
||||
@@ -89,6 +92,9 @@ dcl-pr MD_DeleteMediaDefinition ;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pr;
|
||||
|
||||
|
||||
@@ -97,6 +103,9 @@ dcl-pr MD_RetrieveMediaDefinition ;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T);
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pr;
|
||||
|
||||
|
||||
@@ -106,11 +115,28 @@ end-pr;
|
||||
//
|
||||
//=====================================================================
|
||||
|
||||
dcl-pr MD_SetError;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
MessageID
|
||||
char(7) const;
|
||||
|
||||
MessageData
|
||||
char(128) const;
|
||||
|
||||
end-pr;
|
||||
|
||||
|
||||
dcl-pr MD_ValidateCreate;
|
||||
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pr;
|
||||
|
||||
|
||||
@@ -119,6 +145,9 @@ dcl-pr MD_ValidateDelete;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pr;
|
||||
|
||||
|
||||
@@ -127,6 +156,9 @@ dcl-pr MD_ValidateRetrieve;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pr;
|
||||
|
||||
|
||||
@@ -135,6 +167,9 @@ dcl-pr MD_CheckApiError;
|
||||
ApiError
|
||||
likeds(MD_APIError_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pr;
|
||||
|
||||
dcl-pr MD_SendMessage;
|
||||
@@ -181,6 +216,9 @@ dcl-pr MD_CheckDuplicateDevices;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pr;
|
||||
|
||||
|
||||
@@ -189,6 +227,9 @@ dcl-pr MD_CheckDuplicateSequences;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pr;
|
||||
|
||||
|
||||
@@ -207,6 +248,9 @@ dcl-proc MD_CreateMediaDefinition export;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pi;
|
||||
|
||||
|
||||
@@ -232,7 +276,21 @@ dcl-proc MD_CreateMediaDefinition export;
|
||||
// Validate
|
||||
//--------------------------------------------------------------
|
||||
|
||||
MD_ValidateCreate(MediaDefinition);
|
||||
clear Error;
|
||||
|
||||
MD_ValidateCreate(
|
||||
MediaDefinition :
|
||||
Error);
|
||||
|
||||
if Error.HasError;
|
||||
|
||||
MD_SendEscape(
|
||||
Error.MessageID :
|
||||
Error.MessageData);
|
||||
|
||||
return;
|
||||
|
||||
endif;
|
||||
|
||||
|
||||
//--------------------------------------------------------------
|
||||
@@ -303,7 +361,19 @@ dcl-proc MD_CreateMediaDefinition export;
|
||||
|
||||
// dump(a);
|
||||
|
||||
MD_CheckApiError(ApiError);
|
||||
MD_CheckApiError(
|
||||
ApiError :
|
||||
Error);
|
||||
|
||||
if Error.HasError;
|
||||
|
||||
MD_SendEscape(
|
||||
Error.MessageID :
|
||||
Error.MessageData);
|
||||
|
||||
return;
|
||||
|
||||
endif;
|
||||
|
||||
end-proc;
|
||||
|
||||
@@ -321,6 +391,9 @@ dcl-proc MD_DeleteMediaDefinition export;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pi;
|
||||
|
||||
|
||||
@@ -334,7 +407,21 @@ dcl-proc MD_DeleteMediaDefinition export;
|
||||
|
||||
|
||||
|
||||
MD_ValidateDelete(MediaDefinition);
|
||||
clear Error;
|
||||
|
||||
MD_ValidateDelete(
|
||||
MediaDefinition :
|
||||
Error);
|
||||
|
||||
if Error.HasError;
|
||||
|
||||
MD_SendEscape(
|
||||
Error.MessageID :
|
||||
Error.MessageData);
|
||||
|
||||
return;
|
||||
|
||||
endif;
|
||||
|
||||
|
||||
QualifiedObject.ObjectName =
|
||||
@@ -355,7 +442,19 @@ dcl-proc MD_DeleteMediaDefinition export;
|
||||
ApiError);
|
||||
|
||||
|
||||
MD_CheckApiError(ApiError);
|
||||
MD_CheckApiError(
|
||||
ApiError :
|
||||
Error);
|
||||
|
||||
if Error.HasError;
|
||||
|
||||
MD_SendEscape(
|
||||
Error.MessageID :
|
||||
Error.MessageData);
|
||||
|
||||
return;
|
||||
|
||||
endif;
|
||||
|
||||
end-proc;
|
||||
|
||||
@@ -373,6 +472,9 @@ dcl-proc MD_RetrieveMediaDefinition export;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T);
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pi;
|
||||
|
||||
|
||||
@@ -392,7 +494,21 @@ dcl-proc MD_RetrieveMediaDefinition export;
|
||||
dcl-s ApiReceiverLength int(10);
|
||||
|
||||
|
||||
MD_ValidateRetrieve(MediaDefinition);
|
||||
clear Error;
|
||||
|
||||
MD_ValidateRetrieve(
|
||||
MediaDefinition :
|
||||
Error);
|
||||
|
||||
if Error.HasError;
|
||||
|
||||
MD_SendEscape(
|
||||
Error.MessageID :
|
||||
Error.MessageData);
|
||||
|
||||
return;
|
||||
|
||||
endif;
|
||||
|
||||
|
||||
QualifiedObject.ObjectName =
|
||||
@@ -422,19 +538,60 @@ dcl-proc MD_RetrieveMediaDefinition export;
|
||||
ApiError);
|
||||
|
||||
|
||||
MD_CheckApiError(ApiError);
|
||||
MD_CheckApiError(
|
||||
ApiError :
|
||||
Error);
|
||||
|
||||
// TODO:
|
||||
// Parser folgt mit MEDDFNPRS
|
||||
if Error.HasError;
|
||||
|
||||
// MD_ParseRetrieveBuffer(
|
||||
MD_SendEscape(
|
||||
Error.MessageID :
|
||||
Error.MessageData);
|
||||
|
||||
// Receiver.Data :
|
||||
return;
|
||||
|
||||
// MediaDefinition);
|
||||
endif;
|
||||
|
||||
MD_ParseRetrieveBuffer(
|
||||
Receiver.Data :
|
||||
MediaDefinition);
|
||||
|
||||
end-proc;
|
||||
|
||||
//=====================================================================
|
||||
//
|
||||
// MD_SetError
|
||||
//
|
||||
// Stores the first error for the public procedure.
|
||||
//
|
||||
//=====================================================================
|
||||
|
||||
dcl-proc MD_SetError;
|
||||
|
||||
dcl-pi *n;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
MessageID
|
||||
char(7) const;
|
||||
|
||||
MessageData
|
||||
char(128) const;
|
||||
|
||||
end-pi;
|
||||
|
||||
|
||||
if not Error.HasError;
|
||||
|
||||
Error.HasError = *on;
|
||||
Error.MessageID = MessageID;
|
||||
Error.MessageData = MessageData;
|
||||
endif;
|
||||
|
||||
end-proc;
|
||||
|
||||
|
||||
//=====================================================================
|
||||
//
|
||||
// MD_ValidateCreate
|
||||
@@ -448,6 +605,9 @@ dcl-proc MD_ValidateCreate;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pi;
|
||||
|
||||
|
||||
@@ -462,9 +622,10 @@ dcl-proc MD_ValidateCreate;
|
||||
|
||||
if %trim(MediaDefinition.MediaDefinitionName) = '';
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0001' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0001' :
|
||||
*blanks);
|
||||
|
||||
endif;
|
||||
|
||||
@@ -475,9 +636,10 @@ dcl-proc MD_ValidateCreate;
|
||||
|
||||
if %trim(MediaDefinition.LibraryName) = '';
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0002' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0002' :
|
||||
*blanks);
|
||||
|
||||
endif;
|
||||
|
||||
@@ -490,9 +652,10 @@ dcl-proc MD_ValidateCreate;
|
||||
or MediaDefinition.NumberOfDevices >
|
||||
MD_MaxDeviceDefinitions;
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0003' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0003' :
|
||||
*blanks);
|
||||
|
||||
endif;
|
||||
|
||||
@@ -514,9 +677,10 @@ dcl-proc MD_ValidateCreate;
|
||||
|
||||
other;
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0004' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0004' :
|
||||
*blanks);
|
||||
|
||||
endsl;
|
||||
|
||||
@@ -538,9 +702,10 @@ dcl-proc MD_ValidateCreate;
|
||||
|
||||
other;
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0005' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0005' :
|
||||
*blanks);
|
||||
|
||||
endsl;
|
||||
|
||||
@@ -551,18 +716,20 @@ dcl-proc MD_ValidateCreate;
|
||||
|
||||
if MediaDefinition.MaximumParallelResources < 0;
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0012' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0012' :
|
||||
*blanks);
|
||||
|
||||
endif;
|
||||
|
||||
|
||||
if MediaDefinition.MinimumParallelResources < 0;
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0013' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0013' :
|
||||
*blanks);
|
||||
|
||||
endif;
|
||||
|
||||
@@ -570,9 +737,10 @@ dcl-proc MD_ValidateCreate;
|
||||
if MediaDefinition.MinimumParallelResources >
|
||||
MediaDefinition.MaximumParallelResources;
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0014' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0014' :
|
||||
*blanks);
|
||||
|
||||
endif;
|
||||
|
||||
@@ -587,9 +755,10 @@ dcl-proc MD_ValidateCreate;
|
||||
if %trim(
|
||||
MediaDefinition.Device(DeviceIndex).DeviceName) = '';
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0006' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0006' :
|
||||
*blanks);
|
||||
|
||||
endif;
|
||||
|
||||
@@ -597,9 +766,10 @@ dcl-proc MD_ValidateCreate;
|
||||
if MediaDefinition.Device(DeviceIndex)
|
||||
.NumberOfMediaFiles < 1;
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0017' :
|
||||
MediaDefinition.Device(DeviceIndex).DeviceName);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0017' :
|
||||
MediaDefinition.Device(DeviceIndex).DeviceName);
|
||||
|
||||
endif;
|
||||
|
||||
@@ -616,7 +786,8 @@ dcl-proc MD_ValidateCreate;
|
||||
.MediaFile(MediaFileIndex)
|
||||
.SequenceNumber <= 0;
|
||||
|
||||
MD_SendEscape(
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0009' :
|
||||
*blanks);
|
||||
|
||||
@@ -631,7 +802,8 @@ dcl-proc MD_ValidateCreate;
|
||||
.NumberOfVolumeIdentifiers >
|
||||
MD_MaxVolumeIdentifiers;
|
||||
|
||||
MD_SendEscape(
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0010' :
|
||||
*blanks);
|
||||
|
||||
@@ -653,9 +825,10 @@ dcl-proc MD_ValidateCreate;
|
||||
.VolumeIdentifier(VolumeIndex)
|
||||
.VolumeIdentifier) = '';
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0011' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0011' :
|
||||
*blanks);
|
||||
|
||||
endif;
|
||||
|
||||
@@ -669,9 +842,13 @@ dcl-proc MD_ValidateCreate;
|
||||
// Duplicate Checks
|
||||
//--------------------------------------------------------------
|
||||
|
||||
MD_CheckDuplicateDevices(MediaDefinition);
|
||||
MD_CheckDuplicateDevices(
|
||||
MediaDefinition :
|
||||
Error);
|
||||
|
||||
MD_CheckDuplicateSequences(MediaDefinition);
|
||||
MD_CheckDuplicateSequences(
|
||||
MediaDefinition :
|
||||
Error);
|
||||
|
||||
|
||||
end-proc;
|
||||
@@ -690,23 +867,28 @@ dcl-proc MD_ValidateDelete;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pi;
|
||||
|
||||
|
||||
if %trim(MediaDefinition.MediaDefinitionName) = '';
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0001' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0001' :
|
||||
*blanks);
|
||||
|
||||
endif;
|
||||
|
||||
|
||||
if %trim(MediaDefinition.LibraryName) = '';
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0002' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0002' :
|
||||
*blanks);
|
||||
|
||||
endif;
|
||||
|
||||
@@ -726,23 +908,28 @@ dcl-proc MD_ValidateRetrieve;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pi;
|
||||
|
||||
|
||||
if %trim(MediaDefinition.MediaDefinitionName) = '';
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0001' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0001' :
|
||||
*blanks);
|
||||
|
||||
endif;
|
||||
|
||||
|
||||
if %trim(MediaDefinition.LibraryName) = '';
|
||||
|
||||
MD_SendEscape(
|
||||
'MDF0002' :
|
||||
*blanks);
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0002' :
|
||||
*blanks);
|
||||
|
||||
endif;
|
||||
|
||||
@@ -763,6 +950,9 @@ dcl-proc MD_CheckApiError;
|
||||
ApiError
|
||||
likeds(MD_APIError_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pi;
|
||||
|
||||
|
||||
@@ -779,9 +969,10 @@ dcl-proc MD_CheckApiError;
|
||||
// Forward IBM message
|
||||
//---------------------------------------------------------------
|
||||
|
||||
MD_SendEscape(
|
||||
ApiError.MessageId :
|
||||
'');
|
||||
MD_SetError(
|
||||
Error :
|
||||
ApiError.MessageId :
|
||||
'');
|
||||
|
||||
end-proc;
|
||||
|
||||
@@ -908,6 +1099,9 @@ dcl-proc MD_CheckDuplicateDevices;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pi;
|
||||
|
||||
|
||||
@@ -927,7 +1121,8 @@ dcl-proc MD_CheckDuplicateDevices;
|
||||
%trim(
|
||||
MediaDefinition.Device(DeviceIndex2).DeviceName);
|
||||
|
||||
MD_SendEscape(
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0007' :
|
||||
MediaDefinition.Device(DeviceIndex1).DeviceName);
|
||||
|
||||
@@ -952,6 +1147,9 @@ dcl-proc MD_CheckDuplicateSequences;
|
||||
MediaDefinition
|
||||
likeds(MD_MediaDefinition_T) const;
|
||||
|
||||
Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
end-pi;
|
||||
|
||||
|
||||
@@ -981,7 +1179,8 @@ dcl-proc MD_CheckDuplicateSequences;
|
||||
.MediaFile(MediaFileIndex2)
|
||||
.SequenceNumber;
|
||||
|
||||
MD_SendEscape(
|
||||
MD_SetError(
|
||||
Error :
|
||||
'MDF0019' :
|
||||
%char(
|
||||
MediaDefinition.Device(DeviceIndex)
|
||||
|
||||
+15
-3
@@ -43,6 +43,9 @@ dcl-ds MediaDefinition
|
||||
dcl-ds OriginalDefinition
|
||||
likeds(MD_MediaDefinition_T);
|
||||
|
||||
dcl-ds Error
|
||||
likeds(MD_Error_T);
|
||||
|
||||
dcl-s DeviceIndex int(10);
|
||||
dcl-s MediaIndex int(10);
|
||||
dcl-s VolumeIndex int(10);
|
||||
@@ -79,8 +82,11 @@ dsply 'Deleting existing MEDDFN...';
|
||||
|
||||
monitor;
|
||||
|
||||
clear Error;
|
||||
|
||||
MD_DeleteMediaDefinition(
|
||||
MediaDefinition);
|
||||
MediaDefinition :
|
||||
Error);
|
||||
|
||||
dsply 'Delete completed';
|
||||
|
||||
@@ -97,8 +103,11 @@ endmon;
|
||||
|
||||
dsply 'Creating MEDDFN...';
|
||||
|
||||
clear Error;
|
||||
|
||||
MD_CreateMediaDefinition(
|
||||
MediaDefinition);
|
||||
MediaDefinition :
|
||||
Error);
|
||||
|
||||
dsply 'Create completed';
|
||||
|
||||
@@ -116,8 +125,11 @@ OriginalDefinition = MediaDefinition;
|
||||
|
||||
dsply 'Retrieving MEDDFN...';
|
||||
|
||||
clear Error;
|
||||
|
||||
MD_RetrieveMediaDefinition(
|
||||
MediaDefinition);
|
||||
MediaDefinition :
|
||||
Error);
|
||||
|
||||
dsply 'Retrieve completed';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user