**FREE //======================================================================== // // Media Definition Parser // // // // // //========================================================================== ctl-opt option(*srcstmt:*nodebugio) nomain ; /COPY GOSCH1/MEDDFN,MEDDFN_H /COPY GOSCH1/MEDDFN,MEDDFNAP_H //===================================================================== // // MD_RetrieveMediaDefinition // // Retrieves a TAPE0200 media definition from IBM i. // //===================================================================== dcl-proc MD_RetrieveMediaDefinition export; dcl-pi *n; MediaDefinition likeds(MD_MediaDefinition_T); end-pi; dcl-ds QualifiedObject likeds(MD_QualifiedObjectName_T); dcl-ds Receiver likeds(MD_ApiReceiverBuffer_T); dcl-ds ApiError likeds(MD_APIError_T); dcl-s ReceiverLength int(10); //--------------------------------------------------------------- // Qualified media definition name //--------------------------------------------------------------- QualifiedObject.ObjectName = MediaDefinition.MediaDefinitionName; QualifiedObject.LibraryName = MediaDefinition.LibraryName; //--------------------------------------------------------------- // Initialize receiver buffer and error structure //--------------------------------------------------------------- clear Receiver; clear ApiError; ApiError.BytesProvided = %size(ApiError); ReceiverLength = %size(Receiver.Data); //--------------------------------------------------------------- // Retrieve TAPE0200 definition //--------------------------------------------------------------- QSRRTVMD( QualifiedObject : Receiver.Data : ReceiverLength : 'TAPE0200' : ApiError); //--------------------------------------------------------------- // Check API error //--------------------------------------------------------------- if ApiError.BytesAvailable > 0; // zun�chst nur Fehler zur�ckgeben/anzeigen endif; // MD_CheckApiError(ApiError); end-proc;