!7 concept Entry { S line, category, answer; } module LineToCategory > DynCRUD { *() { super(Entry); } start { onConceptsChangeAndNow(r { setModuleName("Line To Category (" + conceptCount() + ")") }); } // API void setAnswer(S line, S category, S answer) { Entry e = uniq_sync(Entry, +line, +category); if (e.answer != null && neq(e.answer, answer)) programLogStructure(litorderedmap( action := "Overwritten", +line, +category, oldAnswer := e.answer, +answer)); cset(e, +answer); } }