That's correct. But what's about the VarLength? And what is, if Lrecl is grater 255Bytes?
According to your example, you also can do this by an XC instruction.
XC record,record ...set all bytes of record to hex-zero
I think, best way for variable cleaning is to use a MVCL instruction.
S3L00 DS 0H Delete the InOutSentence
L R4,AS3SATZ ...Adress of Sentence
L R5,=A(30000) ...Max Length
LA R2,S3LHNULL ...Init Field Hex Zero
SR R3,R3 ...Clean Register 3
ICM R3,8,=X'00' ...DeleteCharacter is Hex Zero
MVCL R4,R2 ...Clear the whole Sentence 30.000 Bytes
In stead of "L R5,=A(30000)" you could load the actual length of the actual record into register 5. Use the LengthBytes of the record.