Stima di valori in un form utilizzando i modelli di Machine Learning e la primitiva QWml.Prediction

  ' In questo esempio viene effettuata la stima della tipologia di un reclamo a partire da codice e descrizione del prodotto/servizio oggetto del reclamo, e dal testo della segnalazione
' Il modello alla base della stima è stato precedentemente "addestrato" utilizzando una query che contiene come predittori i 3 campi CODART,DESCART e DESCRECL di SEGNRECL e come valore stimato la causale della tipologia di reclamo contenuta nel campo CAUSRECL
Dim c As QWWebControls.QWWebPushbutton = CType(this.page, QWWebControls.QWWebPage).FindControl2("CUSTOM_4")
Dim form As SEGNRECLFORM = this.page

c.ToolTip = "Effettua la stima della tipologia di reclamo a partire dal codice articolo, dalla descrizione del prodotto e dal testo della segnalazione"

AddHandler c.Click,
Sub(sender As Object, arg As String)
   if empty(ctype(form.findcontrol("CODART"),object).value) or empty(ctype(form.findcontrol("DESCRIZION"),object).value) or empty(ctype(form.findcontrol("DESCRECL"),object).value)
      form.alert("Per effetture la stima è necessario inserire sia il testo della segnalazione che codice e descrizione del prodotto o servizio oggetto della segnalazione")
      return
   end if
   
   dim values as new assocarray
   values("CODART")=ctype(form.findcontrol("CODART"),object).value
   values("DESCRIZION")=ctype(form.findcontrol("DESCRIZION"),object).value
   values("DESCRECL")=ctype(form.findcontrol("DESCRECL"),object).value
   
   dim pred as string
   dim errmsg as string
   pred=QWml.Prediction(form.GetSession(), "00001", Values, errmsg) 
   
   if not empty(errmsg)
      form.alert(errmsg)
   else
      form.alert("La tipologia di reclamo è stata assegnata in base alla previsione")
      ctype(form.findcontrol("CAUSRECL"),object).setvalue(pred)
  End If
   
End Sub