override public void preAction()
        {
            args.courseLoadRecordByCourseId.PreActionAndExecuteImp();
            id                 = args.wsResultRecord.bbId;
            batch_uid          = args.wsResultRecord.batchUid;
            args.wsInputRecord = args.wsResultRecord;

            args.SetFieldsExtended();
            args.SetStandardUnsetabbleFieldsToMissFieldTag();
            args.wsInputRecord.bbId     = args.param.missFieldTag;
            args.wsInputRecord.batchUid = args.wsInputRecord.batchUid + args.currentTestKeySuffix;
            args.wsInputRecord.courseId = args.wsInputRecord.courseId + args.currentTestKeySuffix;
            //??Sometimes, could reproduce only with args.wsInputRecord.isAvailable = "false", occurs (Bb rel. 9.0.440.0):
            //blackboard.persist.PersistenceException: blackboard.persist.PersistenceException: Process failure. NESTED EXCEPTION: blackboard.persist.PersistenceException: Process failure.
            //Root Cause:
            //com.inet.tds.be: Msg 547, Level 16, State 0, Procedure course_users_exact_cp, Line 37, Sqlstate 23000
            //[W2KS\SQL2K5]The INSERT statement conflicted with the FOREIGN KEY constraint "course_users_fk2". The conflict occurred in database "bb_bb60", table "dbo.course_main", column 'pk1'.

            //args.wsInputRecord.isAvailable = "true"; //!!
            target_course = args.wsInputRecord;
            args.ClearInputs();
            args.ClearResults();
            args.wsInputRecord.bbId = id;
        }
 public courseDetails courseDeleteRecordByBatchUid(bbWsParams @params, courseDetails inputRecord)
 {
     return(base.CourseDeleteRecordByBatchUid(@params, inputRecord));
 }
 public courseDetails courseCopyRecordByBatchUid(bbWsParams @params, courseDetails inputRecord, courseDetails inputTargetCourseRecord)
 {
     return(base.CourseCopyRecordByBatchUid(@params, inputRecord, inputTargetCourseRecord));
 }
 public courseDetails coursePersistRecordById(bbWsParams @params, courseDetails inputRecord)
 {
     return(base.CoursePersistRecordById(@params, inputRecord));
 }
 public courseDetails[] courseLoadListByTemplate(bbWsParams @params, courseDetails inputRecord)
 {
     return(base.CourseLoadListByTemplate(@params, inputRecord));
 }
 public courseDetails courseLoadRecordByCourseId(bbWsParams @params, courseDetails inputRecord)
 {
     return(base.CourseLoadRecordByCourseId(@params, inputRecord));
 }
 public userDetails[] userLoadListAvailableObserversByCourseId(bbWsParams @params, userDetails inputRecord, courseDetails inputCourseRecord)
 {
     return(base.UserLoadListAvailableObserversByCourseId(@params, inputRecord, inputCourseRecord));
 }