Xardas, естественно, salesLine.datasource() нужен не в приведённом месте, а на уровне класса, вызванного из класса, куда salesLine был передан в качестве параметра

И тащить туда лишнюю переменную не хочется.
Меня скорее смущает сочетание
salesLine.isFormDatasource() == true
salesLine.datasource() == null
Хочется понять смысл. Если датасорса нет, то почему "the data source is a form"