Difference between revisions of "Reasoners"

From AMTech WikiDocs
Jump to: navigation, search
(Schedule Send Observations)
 
(72 intermediate revisions by 4 users not shown)
Line 1: Line 1:
=Reasoner by property=
+
# [[Reasoner workflow]]
==Reasoner For Each ==
+
# [[Reasoner by property]]
 
+
# [[Reasoner by Resource]]
=== Create===
+
# [[Reasoner Increment, Decrement, Set]]
1-MainMenu/Activities/Reasoner
+
# [[Reasoner proximity Area]]
 
+
# [[Observation transformation]]
2-Click create
+
# [[Debug & check a reasoner]]
 
+
# [[Actions]]
3-Select For each
+
# [[Binding|Binding properties]]
 
+
# [[Execution_engine#Extension_module|Available extensions for bindings]]
3-Enter a Name
+
 
+
4-Once The Reasoner editor is open
+
 
+
5-Enter Description
+
 
+
6-Select the observer
+
 
+
7-Select Topics from where you are getting the observation
+
 
+
8-Select Action Create
+
 
+
9-Dialog Box for create will be open
+
 
+
10-Select type of entity you want to create
+
 
+
11-Enter a label to identify the action
+
 
+
12-On action on the right side select The Action label for Create  inside will be a list of fields :
+
 
+
+
'''Continue on failure'''  is a boolean true or false. User can said if he wants to continue even if there is failure.
+
 
+
'''Update if exist'''  is a boolean or or false. If true user can update any fields
+
 
+
'''New Entity'''  fieldsUser will fill all the required fields to Create the new Entity
+
 
+
12-Run the reasoner
+
 
+
13-Select observation from where user wants to get the info for the binding etc
+
 
+
 
+
Expected Results
+
 
+
For each entity that was returned by observer the system will create a new entity with the settings assigned
+
 
+
=== Update===
+
 
+
Same steps as created but Action will be Update
+
 
+
'''Entity fields''' User will fill all the required fields to Update the Entity
+
 
+
-Run the reasoner
+
 
+
-Select observation from where user wants to get the info
+
 
+
Expected results
+
 
+
For each entity that was returned by observer the system will update the entities with the new values
+
 
+
=== Delete===
+
 
+
Same steps as create just
+
 
+
-Select Action Delete
+
 
+
-Enter a name for the action Delete
+
 
+
-Click Run to run reasoner
+
 
+
- Select observation
+
 
+
Expected results
+
 
+
The system will delete all the entities returned by observer on the specified Tenant
+
 
+
=== Send Notifications===
+
 
+
Same steps as Create
+
 
+
-On  Action, Select Send Notification. The dialog box to configure the action Send Notification will be open.
+
 
+
-Enter a name for the action Send Notification, Select the Notification template, Select by property
+
 
+
-On action on the right side select the Send Notification action inside user will see
+
 
+
Action Send Notification Fields
+
 
+
'''Destinatario''' where user can specify the email address of the person to receive the notification
+
 
+
Media
+
 
+
”dap” to display the notification on the screen of tenant only
+
 
+
”mail” notification by mail only
+
 
+
”dap,mail”by mail and screen both
+
 
+
'''Continue on failure''' is a boolean true or false. User can said if he wants to continue even if there is failure
+
 
+
'''Notification Fields''' User will assign values to the place holders of the notification templates
+
note: If the notification template does not have placeholder there will not be notification fields
+
+
 
+
-Click Run to run reasoner
+
 
+
- Select observation
+
 
+
Expected results
+
 
+
The system will send the notification to the specified tenant according to the setting on media
+
 
+
=== Send Observations===
+
 
+
Same steps as Create
+
 
+
-On on Action and Select Send Observation action
+
 
+
-Dialog box for the settings for the action will be open, select the type of observation, select by property and Enter a name for the Observation to be send
+
 
+
-On action on the right side select the Send Observation  inside will be a list of fields :
+
 
+
Action Send Observation Fields
+
 
+
  '''Tenant Binding''' where user will specify in which Tenant he wants to send the Observation
+
 
+
  '''Continue on failure''' is a boolean true or false. User can said if he wants to continue even if there is failure
+
 
+
    '''New Observation fields''' User will fill all the required fields to send that observation
+
 
+
-Run the reasoner
+
 
+
-Select observation from where user wants to get the info
+
 
+
Expected Results
+
For each entity that was returned the system will send a new observation with the information entered on new observation fields
+
 
+
===Reasoner For Each Schedule Observations===
+
 
+
==Reasoner At Least One ==
+
 
+
===Create===
+
 
+
1-MainMenu/Activities/Reasoner
+
 
+
2-Click create
+
 
+
3-Select At least one entity
+
 
+
4-Enter a Name
+
 
+
5-Once The Reasoner editor is open
+
 
+
6-Enter Description
+
 
+
7-Select the observer
+
 
+
8-Select Topic from where you are getting the observation
+
 
+
9-Select Action Create
+
 
+
10-Dialog Box for create will be open
+
 
+
11-Select type of entity you want to create
+
 
+
12-Enter a label to identify the action
+
 
+
13-On action on the right side select The Action label for Create  inside will be a list of fields :
+
 
+
  Tenant Binding, where user will specify in which Tenant he wants to Create the Entity
+
 
+
  Continue on failure is a boolean true or false. User can said if he wants to continue even if there is failure
+
 
+
  New Entity fields User will fill all the required fields to Create the new Entity
+
 
+
14-Run the reasoner
+
 
+
15-Select observation from where user wants to get the info for the binding etc
+
 
+
expected results
+
 
+
If observer return at least one entity the system will create a new entity with the settings assigned
+
 
+
===Send Notifications===
+
Same steps as create just Select action Send Notification and select the template for the notification
+
 
+
On action on the right side select the Send Notification action inside user will see:
+
 
+
  Tenant Binding, where user will specify in which Tenant he wants to send the notification
+
 
+
    Destinatario, where user can specify the email address of the person to receive the notification
+
 
+
    Media has three options
+
 
+
      -”dap” to display the notification on the screen of tenant only
+
 
+
      -”mail” notification by mail only
+
 
+
      -”dap,mail” by mail and screen both
+
 
+
  Continue on failure is a boolean true or false. User can said if he wants to continue even if there is failure
+
 
+
Notification Fields User will assign values to the place holders of the notification templates
+
 
+
notes:If the notification template does not have placeholder there will not be notification fields
+
+
 
+
Click Run to run reasoner
+
 
+
Select observation
+
 
+
expected results
+
 
+
If observer return at least one entity The system will send the notification to the specified tenant according to the setting on media
+
 
+
===Send Observations===
+
 
+
Same as create just select Action send Observation, Then select the type of observation you want to send
+
Assign values on the right side to the observation fields
+
 
+
-Run the reasoner
+
 
+
-Select observation from where user wants to get the info
+
 
+
expected results
+
 
+
If observer return at least one entity The system will send a new observation with the information entered on new observation fields
+
 
+
===Schedule Observations===
+
 
+
The same as send observation on Action select schedule observations user just need to specify Initiation Date and time, occurrence and frequency
+
 
+
'''Note:'''
+
 
+
Occurrence 0 must enter frequency like; sec, mins, hours etc If user for example enters frequency days that means observation will be send every day forever Starting on the Start date and Time
+
 
+
Occurrence 1 frequency will be ignore. The system will send that schedule observation on the Start Date and Time only once
+
 
+
Occurrence 2 or more must enter frequency. The system will send the observation according to frequency and Start Date and Time
+
 
+
'''Expected'''
+
 
+
If Observer return at least one entity the system will Schedule to send a new Observation
+
 
+
==Reasoner Observation Only==
+
 
+
===Create===
+
 
+
1-MainMenu/Activities/Reasoner
+
 
+
2-Click create
+
 
+
3-Select Only Observation
+
 
+
4-Enter a Name
+
 
+
5-Once The Reasoner editor is open
+
 
+
6-Enter Description
+
 
+
7-Select the observer
+
 
+
8-Select Topic from where you are getting the observation
+
 
+
9-Select Action Create
+
 
+
10-Dialog Box for create will be open
+
 
+
11-Select type of entity you want to create
+
 
+
12-Enter a label to identify the action
+
 
+
13-On action on the right side select Enter Info for required fileds to Create the new Entity
+
 
+
14-Run the reasoner
+
 
+
15-Select observation from where user wants to get the info for the binding etc
+
 
+
expected results
+
 
+
If Observer results is positive The system will Create a new Entity with the information entered on the settings
+
 
+
===Send Notifications===
+
 
+
-Enter a name for the action Send Notification
+
 
+
Select the notification template
+
 
+
-On action on the right side select the Send Notification .Enter info 
+
 
+
-Click Run to run reasoner
+
 
+
- Select observation
+
 
+
expected results
+
 
+
If the run of observer is positive The system will send the notification to the specified tenant according to the setting on media
+
 
+
===Send Observations===
+
 
+
-Select Action Send Observation
+
 
+
-Enter a name for the Observation
+
 
+
-Select the type of Observation to be send
+
 
+
-On action on the right side select the Send Observation  inside will be a list of fields :
+
 
+
- Filelds are the same for all sendObservation
+
 
+
-Run the reasoner
+
 
+
-Select observation from where user wants to get the info
+
 
+
expected results
+
 
+
If the run of observer is positive The system will send a new observation with the information entered on new observation fields
+
 
+
===Schedule Observations===
+
 
+
function(newobservation,observation){
+
 
+
      newobservation._name = "ScheduleSendObserRecursoObsOnly";
+
      newobservation.topic = observation.topic; 
+
      newobservation.producer = observation.producer;
+
   
+
 
+
}
+
 
+
Expected
+
If the run of Observer is positive the system will Send the observation
+
according to the schedule
+
 
+
==Reasoner Absence of Things==
+
 
+
===Create===
+
 
+
1-MainMenu/Activities/Reasoner
+
 
+
2-Click create
+
 
+
3-Select Observer does not return Entity
+
 
+
4-Enter a Name
+
 
+
5-Once The Reasoner editor is open
+
 
+
6-Enter Description
+
 
+
7-Select the observer
+
 
+
8-Select Topic from where you are getting the observation
+
 
+
9-Select Action Create
+
 
+
10-Dialog Box for create will be open
+
 
+
11-Select type of entity you want to create
+
 
+
12-Enter a label to identify the action
+
 
+
13-On action on the right side select The Action label for Create  inside will be a list of fields :
+
 
+
Fields are the same for all create actions
+
 
+
14-Run the reasoner
+
 
+
15-Select observation from where user wants to get the info for the binding etc
+
 
+
expected results
+
 
+
If observer run is positive and does not return Entity  the system will create a new entity with the settings assigned
+
 
+
===Send Notifications===
+
 
+
Same steps as create just Select action Send Notification and select the template for the notification
+
 
+
On action on the right side select the Send Notification action inside user will see:
+
 
+
  Tenant Binding, where user will specify in which Tenant he wants to send the notification
+
 
+
    Destinatario, where user can specify the email address of the person to receive the notification
+
 
+
    Media has three options
+
 
+
      -”dap” to display the notification on the screen of tenant only
+
 
+
      -”mail” notification by mail only
+
 
+
      -”dap,mail” by mail and screen both
+
 
+
  Continue on failure is a boolean true or false. User can said if he wants to continue even if there is failure
+
 
+
Notification Fields User will assign values to the place holders of the notification templates
+
 
+
notes:If the notification template does not have placeholder there will not be notification fields
+
+
 
+
Click Run to run reasoner
+
 
+
Select observation
+
 
+
expected results
+
 
+
In absence of entities .The system will send the notification to the specified tenant according to the setting on media
+
 
+
===Send Observations===
+
 
+
Select Action Send Observation
+
 
+
-Enter a name for the Observation
+
 
+
-Select the type of Observation to be send
+
 
+
-On action on the right side select the Send Observation  inside will be a list of fields :
+
 
+
Enter values for those fields
+
 
+
-Run the reasoner
+
 
+
 
+
-Select observation from where user wants to get the info
+
 
+
expected results
+
 
+
If observer run is positive and does not return Entity  The system will send a new observation with the information entered on new observation fields
+
 
+
===Schedule Observations===
+
 
+
-Select Action Schedule Observation
+
 
+
-Enter a name for the Schedule
+
 
+
-Select the type of Observation to be send
+
 
+
-On action on the right side select the Schedule Observation  inside will be a list of fields :
+
 
+
user needs to specify Initiation Date and time, occurrence and frequency
+
 
+
'''Note:'''
+
 
+
Occurrence 0 must enter frequency like; sec, mins, hours etc If user for example enters frequency days that means observation will be send every day forever Starting on the Start date and Time
+
 
+
Occurrence 1 frequency will be ignore. The system will send that schedule observation on the Start Date and Time only once
+
 
+
Occurrence 2 or more must enter frequency. The system will send the observation according to frequency and Start Date and Time
+
 
+
-Run the reasoner
+
 
+
Select observation from where user wants to get the info
+
 
+
Expected results
+
 
+
If observer run is positive and does not return Entity .  The system will schedule to send a new observation with the information entered on the settings
+
 
+
=Reasoner by Resource=
+
 
+
===Reasoner For each ===
+
 
+
====Create====
+
 
+
1-MainMenu/Activities/Reasoner
+
 
+
2-Click create
+
 
+
3-Select For Each entity
+
 
+
4-Enter a Name
+
 
+
5-Once The Reasoner editor is open
+
 
+
6-Enter Description
+
 
+
7-Select the observer
+
 
+
8-Select Topic from where you are getting the observation
+
 
+
9-Select Action Create,
+
 
+
10-Dialog Box for create will be open Select by recurso
+
 
+
11-Select type of entity you want to create
+
 
+
12-Enter a label to identify the action
+
 
+
13-On right side click on action
+
 
+
14-Select on right side new fields and user can see he can write the info using javascript
+
 
+
example  :
+
 
+
function(newthing,observation,thing,summary){ 
+
 
+
          newthing._name ="Entity77"+ new Date().getTime().toString();
+
          newthing.DoubleData = observation.ObsDoubleData;
+
  newthing.description ="Testing Create by recurso";
+
         
+
}
+
Note: there are required fields if user does not enter them the reasoner wont run
+
 
+
15-Run reasoner
+
 
+
Expected
+
 
+
For each entity returned by observer system will create a new entity
+
 
+
====Update ====
+
 
+
Same steps as Create
+
 
+
function(updatething,observation,thing){ 
+
 
+
        updatedthing.description ="Bless be the ones who serve others. They are the ones who find heaven on earth.";
+
        updatedthing.CityPopulation = 123000123;
+
 
+
}
+
 
+
Expected
+
The system will update each entity returned by the observer
+
 
+
====Send Notification ====
+
 
+
same as for each send notification by properties
+
 
+
==== Delete ====
+
 
+
same as for each Delete by properties
+
 
+
====Send Observations ====
+
 
+
function(newobservation,observation,thing){ 
+
 
+
    newobservation._name = "SendObserRecurso"+ new Date().getTime().toString();
+
  newobservation.topic = observation.topic;  (Required field)
+
  newobservation.producer = observation.producer;  (Required field)
+
}
+
 
+
 
+
'''Note: there are required fields if user does not enter them the reasoner wont run'''
+
 
+
====Schedule Send Observation ====
+
 
+
The same as send observation user just need to specify Initiation Date and time, occurrence and frequency Note:
+
 
+
Occurrence 0 must enter frequency like; sec, mins, hours etc If user for example enters frequency days that means observation will be send every day forever Starting on the Start date and Time
+
 
+
Occurrence 1 frequency will be ignore. The system will send that schedule observation on the Start Date and Time only once
+
 
+
Occurrence 2 or more must enter frequency. The system will send the observation according to frequency and Start Date and Time
+
 
+
function(newobservation,observation,thing){ 
+
 
+
    newobservation._name = "SendObserRecurso"+ new Date().getTime().toString();
+
  newobservation.topic = observation.topic;  (Required field)
+
  newobservation.producer = observation.producer;  (Required field)
+
 
+
 
+
}
+
 
+
'''Note: there are required fields if user does not enter them the reasoner wont run'''
+
 
+
Expected
+
 
+
For each Entity returned by the observer the system will schedule to send a new observation
+
 
+
===Reasoner At Least One ===
+
 
+
====Create ====
+
 
+
1-MainMenu/Activities/Reasoner
+
 
+
2-Click create
+
 
+
3-Select At least one Entity
+
 
+
4-Enter a Name
+
 
+
5-Once The Reasoner editor is open
+
 
+
6-Enter Description
+
 
+
7-Select the observer
+
 
+
8-Select Topic from where you are getting the observation
+
 
+
9-Select Action Create,
+
 
+
10-Dialog Box for create will be open Select by recurso
+
 
+
11-Select type of entity you want to create
+
 
+
12-Enter a label to identify the action
+
 
+
13-On right side click on action
+
 
+
14-Select on right side new fields and user can see he can write the info using javascript
+
 
+
example  :
+
 
+
function(newthing,observation,thing){ 
+
    newthing._name ="Entity55";
+
    newthing.DoubleData = observation.ObsDoubleData;
+
    newthing.description ="Testing Reasoner At least One Create by recurso";
+
 
+
}
+
 
+
'''Note: there are required fields if user does not enter them the reasoner wont run'''
+
 
+
15-Run reasoner
+
 
+
Expected
+
If Observer return at least one Entity the system will create a new entity if observer does not return entity system won't create the new Entity
+
 
+
====Send Notifications ====
+
 
+
same as send Notification by properties
+
 
+
====Send Observations ====
+
 
+
function(newobservation,observation,thing){
+
  newobservation._name = "SendObserRecurso333"; (Mandatory Field)
+
  newobservation.topic = observation.topic;  (Mandatory Field)
+
  newobservation.producer = observation.producer;  (Mandatory Field)
+
 
+
}
+
 
+
====Schedule Send Observations ====
+
The same as send observation user just need to specify Initiation Date and time, occurrence and frequency
+
Note:
+
 
+
Occurrence 0 must enter frequency like; sec, mins, hours etc If user for example enters frequency days that means observation will be send every day forever Starting on the Start date and Time
+
 
+
Occurrence 1 frequency will be ignore. The system will send that schedule observation on the Start Date and Time only once
+
 
+
Occurrence 2 or more must enter frequency. The system will send the observation according to frequency and Start Date and Time
+
 
+
  function(newobservation,observation){
+
      newobservation.producer = "Copertino";
+
+
}
+
 
+
 
+
Expected
+
 
+
If Observer return at least one entity the system will Schedule to send a new Observation
+
 
+
===Reasoner Only Observations ===
+
 
+
==== Create ====
+
 
+
function(newthing,observation){
+
        newthing._name ="EntityObsOnlyRecurso";
+
      newthing.DoubleData = observation.ObsDoubleData;
+
      newthing.description ="Testing Reasoner Obs Only Create by recurso";
+
     
+
 
+
}
+
 
+
Expected
+
 
+
If the run of Observer is positive the system will Create a New Entity
+
 
+
====Send Notifications ====
+
 
+
 
+
same as send notification by properties
+
 
+
====Send Observations ====
+
 
+
function(newobservation,observation){
+
      newobservation._name = "SendObserRecursoObsOnly";
+
      newobservation.topic = observation.topic;  (Mandatory field)
+
      newobservation.producer = observation.producer;  (Mandatory field)
+
   
+
}
+
 
+
Expected
+
 
+
If the run of Observer is positive the system will Send the observation
+
 
+
====Schedule Send Observations ====
+
 
+
The same as send observation on Action select schedule observations user just need to specify Initiation Date and time, occurrence and frequency
+
 
+
'''Note:'''
+
 
+
Occurrence 0 must enter frequency like; sec, mins, hours etc If user for example enters frequency days that means observation will be send every day forever Starting on the Start date and Time
+
 
+
Occurrence 1 frequency will be ignore. The system will send that schedule observation on the Start Date and Time only once
+
 
+
Occurrence 2 or more must enter frequency. The system will send the observation according to frequency and Start Date and Time
+
 
+
function(newobservation,observation){
+
 
+
      newobservation._name = "ScheduleSendObserRecursoObsOnly";
+
      newobservation.topic = observation.topic; 
+
      newobservation.producer = observation.producer;
+
   
+
 
+
}
+
 
+
Expected
+
 
+
If the run of Observer is positive the system will Send the observation
+
according to the schedule
+
 
+
===Reasoner Absence of things ===
+
 
+
====Create ====
+
 
+
function(newthing,observation){
+
      newthing._name ="EntityDoNotReturnRecurso111";
+
      newthing.DoubleData = observation.ObsDoubleData;
+
      newthing.description ="Testing Reasoner Do not return entity Create by recurso";
+
   
+
 
+
}
+
Expected
+
 
+
If Observer do not return an entity the system will create a new entity
+
 
+
====Send Notifications ====
+
 
+
====Send Observations ====
+
 
+
function(newobservation,observation){
+
      newobservation._name = "SendObserRecursoNoEntity";
+
      newobservation.topic = observation.topic; 
+
      newobservation.producer = observation.producer;
+
     
+
}
+
 
+
Expected
+
 
+
If Observer do not return an entity the system will Send Observation
+
 
+
====Schedule Send Observations ====
+
 
+
 
+
function(newobservation,observation){
+
      newobservation._name = "ScheduleSendObserRecursoNoEntity";
+
      newobservation.topic = observation.topic; 
+
      newobservation.producer = observation.producer;
+
     
+
}
+
 
+
Expected
+
 
+
If Observer do not return an entity the system will Schedule and send observation according to schedule
+
 
+
=Reasoner Security =
+

Latest revision as of 14:17, 14 October 2016

  1. Reasoner workflow
  2. Reasoner by property
  3. Reasoner by Resource
  4. Reasoner Increment, Decrement, Set
  5. Reasoner proximity Area
  6. Observation transformation
  7. Debug & check a reasoner
  8. Actions
  9. Binding properties
  10. Available extensions for bindings