Learn then Send failure

Report any bugs you find.

Moderator: Staff

Learn then Send failure

Postby terryal » Wed Jan 26, 2005 6:21 pm

In an output instruction if one has a <learn ...>
tag followed by a <send ...> and the send is meant
to fire the rule created by the learn, it will
fail.

It appears that the <send ...> tag is executed
prior to <learn ...> or at least before it finishes
creating the new rule.

The order (learn first or send first) in the
output instruction doesn't seem to make any
difference. However the learn rule is created
okay, and later it will fire correctly.

Terry
terryal
ShyBot
ShyBot
 
Posts: 7
Joined: Sun May 02, 2004 7:30 pm
Location: Reunion Island

Postby Matt » Mon Jun 19, 2006 2:38 am

I've been going back through some of the unanswered posts, I'm sorry for not replying to this sooner, I don't know if this is still an issue, (I think it may be), but yes, I think your right the learn commands must all be stacked up before the send command can execute, I don't think it does that though, the learn command may still be processing when the send command fires, I'm not sure though, I'll have to check it out and test it.
Matt
OmnipotentBot
OmnipotentBot
 
Posts: 2079
Joined: Thu Feb 26, 2004 10:48 pm
Location: Calabasas, CA

Postby leseur sylvain » Sun Sep 10, 2006 2:44 pm

Hi Terryal, i have the same touble, I tried to avoid this using
<agent.pause XXXX> not really convincing...
Ex:
<learn bla bla>
<agent.pause XXXX>
<send blabla>

Friendly
Sylvain
leseur sylvain
OmnipotentBot
OmnipotentBot
 
Posts: 1677
Joined: Mon Nov 08, 2004 4:53 pm
Location: Suburb of Paris France

Couldn't make it work either.

Postby Randal » Mon Sep 11, 2006 1:43 am

I tried something like that a few months ago. It wasn't just the <learn> command. I had an agent.pause in so that I could space out the time I had an external program creating something and then Alexis to read it for me. She paused but the programs didn't. Then again, I figured it wasn't supposed to.

A pause could be created through C# I think although many people are not programmers so that may be too much and something like that might be possible as a command for the future.

Output: Really? Hmmm, let me think a minute. <pause 2> <send thinking>

Pause 2 could be two seconds for instance.

Randy
Randal
MightyBot
MightyBot
 
Posts: 171
Joined: Mon Oct 03, 2005 1:05 am
Location: Atlanta, GA

Postby Aaron » Mon Sep 11, 2006 6:04 pm

A warning about pausing in C#:
There is a timeout of 5 seconds that the engine waits for the code to complete. If your code takes longer than that it will be aborted.
Aaron
SupremeBot
SupremeBot
 
Posts: 1261
Joined: Thu Feb 26, 2004 11:13 pm

Postby leseur sylvain » Sat Sep 30, 2006 6:25 pm

Maybe an oher trouble with send command.
It seems send command doesn't short circuit
a Variable child rule.... EX
2 rules (using Verbot Script Tester.)

Rule Name: AAAA
Input Text: AAAA
Output Text: First time AAAA <mem.set AAAA_[AAAA] 5>
|Cond: vars["AAAA_" + vars["AAAA"]] != "5"
Output Text: Second time. I know AAAA true
<send bbbb>
|Cond: vars["AAAA_" + vars["AAAA"]] == "5"
Rule Name: [thing]
Input Text: [thing]
Output Text: it's thing, [thing]

Rule Name: BBBB
Input Text: BBBB
Output Text: aaaa true
|Cond: vars["AAAA_" + vars["AAAA"]] == "5"
Output Text: aaaa false
|Cond: vars["AAAA_" + vars["AAAA"]] != "5"

If i type
AAAA i get
"First time AAAA"
Ok correct, then i type anything else.
And i type again
AAAAA
Here i get
"Second time. I know AAAA true"
<send bbbb>
"It's thing, bbbb"
That means <send bbbb> don't short circuit the
child rule [thing]... normaly
"It's thing, bbbb" must doen't appear.
It's not "normal", ok i can put an input condition
but it's not a good solution
Friendly
Sylvain
leseur sylvain
OmnipotentBot
OmnipotentBot
 
Posts: 1677
Joined: Mon Nov 08, 2004 4:53 pm
Location: Suburb of Paris France


Return to Bugs

Who is online

Users browsing this forum: No registered users and 1 guest

cron