import * from dw::Runtime var directorDateIntervalSetFlag = p('default.director.date.interval.set.flag') as Boolean var defaultDateIntervalSetFlag = p('default.date.interval.set.flag') as Boolean var defaultDirectorValue = p('default.director.value') var processError = p('process.error') var invalidMessage = p('invalid.process.message') fun getLastUpdatedOnDate(errorTime, lastFlowStage, sourceSystem, lastSuccessfulTime, objectType) = if (lastFlowStage == processError and !isEmpty(lastSuccessfulTime) and errorTime != "") if ((!directorDateIntervalSetFlag and objectType == defaultDirectorValue) or (!defaultDateIntervalSetFlag)) lastSuccessfulTime as String { format: dateTimeFormat } else fail(invalidMessage) else if (objectType == p('default.director.value')) // default incase of Education Director getPreviousDate(defaultDirectorInterval) as String { format: dateTimeFormat } else // default based on Source System getActualStartDate(sourceSystem)