2016-03-22 10 views
0

Ich versuche, sowohl einen Entitätswert als auch einen Namen in zwei separate Variablen zu speichern (wenn möglich), aber ich kann dies nicht so einfach tun. Ich habe zur Zeit eine Einheit ähnlich wie diese ...Watson Dialog Speichern und Zugriff auf Name und Wert der Entität

<entities> 
    <entity name="Employee"> 
     <value name="chat test" value="84"/> 
     <value name="Bill Bu" value="85"/> 
     <value name="Tim Roberts" value="86"/> 
    </entity> 
<entities> 

Ich versuche, sowohl die Werte zu sparen und die Namen zu einem zwei verschiedenen Variablen zu tun, dass ich tue dies

<input> 
    <grammar> 
     <item>Who is (Employee)={employeename}</item> 
    </grammar> 
    <action operator="SET_TO" varName="employeename">{employeename.value:name}</action> 
    <action operator="SET_TO" varName="employeeid">{employeename.value:main}</action> 
    <goto ref="employeeData_whois"/> 
</input> 

und hier ist, wo ich die Variablen eingerichtet ....

<variables> 
     <var_folder name="Home"> 
      <var description="The current employee being inquired on" name="employeename" type="TEXT"/> 
      <var description="The current ID of employee being inquired on" name="employeeid" type="NUMBER"/> 
     </var_folder> 
    </variables> 

Aus irgendeinem Grund, wenn ich versuche die EmployeeName alles zugreifen funktioniert gut, aber ich kann nicht die Employeeid zugreifen scheinen (ich möchte eine externe referenzieren sy Stamm-ID). Irgendein Rat?

Dank!

Antwort

1

Der Hauptpunkt des Festlegens eines Variablentyps auf eine Zahl ist für die Operatoren, die Sie anlegen können: inkrementieren um, größer als usw. Ohne zu viel Debugging zu machen, halte ich die einfachste Lösung für Sie wäre, den Mitarbeiter-ID-Typ einfach als Text festzulegen, und er sollte ordnungsgemäß funktionieren. Sie können eine Nummer im Text haben.

Wenn ich raten müsste, würde ich darauf wetten, dass es das Array von Ihrer Entity aus betrachtet und nicht in der Lage ist, es zu setzen, wenn es nur die Nummer aus dem Array zu packen versucht.

Wenn Sie es als eine Zahl behalten möchten, könnten Sie versuchen, eine dritte Variable zu erstellen, die Text ist, um es zunächst nur auf das Element number des Arrays zu setzen, und dann legt man die Einstellung employeeID fest, aber das scheint so Overkill.