Subject Description

Code example:

import SCC_FILE_PARSER:UTIL:FieldCalculationAbstract;
import SCC_FILE_PARSER:MODEL:Results:ResultsField;
import SCC_FILE_PARSER:MODEL:Results:ResultsRecord;
import SCC_FILE_PARSER:MODEL:Results:ResultsCollection;
import SCC_FILE_PARSER:UTIL:Exception:FileParserException;

/**
  *  class FetchSubjectDescr
  *
  *  @version 1.0
  *  @author Campus Solutions	
  *
  *  Module: Recruiting and Admissions / Common App.
  *  Description: 
  */
class FetchSubjectDescr extends SCC_FILE_PARSER:UTIL:FieldCalculationAbstract
   /* public methods */
   method FetchSubjectDescr();
   method calculateValue(&ResultsFieldIn As 
SCC_FILE_PARSER:MODEL:Results:ResultsField, &ResultsCollectionIn 
As SCC_FILE_PARSER:MODEL:Results:ResultsCollection) Returns any;
private
   method GetFileData();
   method GetFieldReferences();
   instance string &SubjectArea;
   instance string &SubjectAreaDescrOut;
   instance SCC_FILE_PARSER:MODEL:Results:ResultsField &ResultsField;
   instance SCC_FILE_PARSER:MODEL:Results:ResultsCollection &ResultsCollection;
   instance SCC_FILE_PARSER:MODEL:Results:ResultsField &SubjectAreaField;
end-class;
method FetchSubjectDescr
   %Super = create SCC_FILE_PARSER:UTIL:FieldCalculationAbstract();
end-method;
method calculateValue
   /+ &ResultsFieldIn as SCC_FILE_PARSER:MODEL:Results:ResultsField, +/
   /+ &ResultsCollectionIn as SCC_FILE_PARSER:MODEL:Results:ResultsCollection +/
   /+ Returns Any +/
   /+ Extends/implements 
SCC_FILE_PARSER:UTIL:FieldCalculationAbstract.CalculateValue +/
   &ResultsCollection = &ResultsCollectionIn;
   &ResultsField = &ResultsFieldIn;
   %This.GetFileData();
   Return &SubjectAreaDescrOut;
end-method;
method GetFileData
   Local string &SubjectAreaDescr;
   If &SubjectAreaField = Null Then
      %This.GetFieldReferences();
   End-If;
   &SubjectArea = "";
   If &SubjectAreaField <> Null Then
      &SubjectArea = &SubjectAreaField.FieldValue;
      SQLExec("SELECT A.DESCR FROM PS_EXT_SUBJECT_TBL A 
WHERE A.EXT_SUBJECT_AREA =:1 AND A.EFF_STATUS = 'A' 
AND A.EFFDT = (SELECT MAX(A1.EFFDT) FROM PS_EXT_SUBJECT_TBL A1 
WHERE A1.EXT_SUBJECT_AREA = A.EXT_SUBJECT_AREA AND 
A1.EFFDT <= %DateIn(:2))", &SubjectArea, %Date, &SubjectAreaDescr);
      If &SubjectAreaDescr = "" Then
         &SubjectAreaDescrOut = "NOT FOUND";
      Else
         &SubjectAreaDescrOut = &SubjectAreaDescr;
      End-If;
   End-If;
end-method;
method GetFieldReferences
   Local integer &SegmentNbr;
   Local integer &RecordRow;
   Local SCC_FILE_PARSER:MODEL:Results:ResultsRecord &obj_SCC_STG_ADMINT;
   &SegmentNbr = &ResultsField.ResultsRecord.SegmentNbr;
   &RecordRow = &ResultsField.ResultsRecord.RecordRow;
   &obj_SCC_STG_ADMINT = &ResultsCollection.GetResultsRecord(&SegmentNbr, 
"SCC_STG_ADMINT", &RecordRow);
   If &obj_SCC_STG_ADMINT <> Null Then
      &SubjectAreaField = &obj_SCC_STG_ADMINT.GetResultsField("EXT_SUBJECT_AREA");
   End-If;
end-method;