Difference between revisions of "Reasoners"

From AMTech WikiDocs
Jump to: navigation, search
(Reasoner Absence of things)
(Reasoner proximity Area)
Line 833: Line 833:
 
User can do this several ways
 
User can do this several ways
  
-User just selects the entity from the list
+
* User just selects the entity from the list
 
+
* User does a binding where user selects the proximity area that was selected on the observer
-User does a binding where user selects the proximity area that was selected on the observer
+
* Using Javascript he can do the two previous options
 
+
-Using Javascript he can do the two previous options
+
  
 
example :   
 
example :   

Revision as of 10:55, 22 April 2016

Reasoner by property

ReasonerByProperty.png


Reasoner For Each

ReasonerForEachCreate.png

Create

Reasoner For each create by property :

For each entity that was returned by observer the system will create a new entity with the settings assigned

1-MainMenu/Activities/Reasoner

2-Click create

3-Select For each

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

ReasonerForEachCreateContfailureUpdateIfExist.png

ReasonerForeachCreateFillingFields.png

12-Run the reasoner

13-Select observation from where user wants to get the info for the binding etc

Update

Reasoner for Each Update by property:

For each entity that was returned by observer the system will update the entities with the new values

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

Delete

Reasoner For each Delete by property

The system will delete all the entities returned by observer on the specified Tenant

Same steps as create just

-Select Action Delete

-Enter a name for the action Delete

-Click Run to run reasoner

- Select observation

Send Notifications

Reasoner for each Send Notifications by properties

The system will send the notification to the specified tenant according to the setting on media

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

Send Observations

Reasoner For each Send Observations by properties

For each entity that was returned the system will send a new observation with the information entered on new observation fields

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

Schedule Observations

Reasoner For each Send Schedule Observations by properties

For each entity that was returned the system will schedule to send a new observation with the information entered on the settings


ReasonerForEachScheduleObs.png


-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 :

ReasonerForEachScheduleSEndObs.png

 Identifier To ID this task inside the system
StartDate it is the time and date to start sending the scheduled observation
 seconds definition to the level of seconds to send the observation
 Minutes  definition to the level of minutes to send the observation
 hours   definition to the level of Hours to send the observation
 days
  months

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. An example if observer return two entities or things and start time is 10:22 am occurrence is 2 and frequency is 2 mins. the system will send 2 observations at 10:22 am and will send another 2 observations at 10:24 am
 Years
 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

Reasoner At Least One

Create

ReasonerAtLeastOneCreate.png

Reasoner At least One Create by property:

If observer return at least one entity the system will create a new entity with the settings assigned

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

Send Notifications

Reasoner At Least One Send Notifications

If observer return at least one entity The system will send the notification to the specified tenant according to the setting on media

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

Send Observations

Reasoner At Least One SEnd Observations

If observer return at least one entity The system will send a new observation with the information entered on new observation fields

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

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

ReasonerByResource.png

Reasoner For each

ReasonerForEachByResourceCreate.png

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 Increment, Decrement, Set

First this only works for numeric fields like integer or double when user set a supported property that is double or integer of a type of entity he has to check the check box for atomic updates Then this only works for reasoner for each by property action updates

on the right side user will be able to select from set, increment or decrement then there is an entry box to enter a numeric value on how much you want decrement or increment or set is just to set a fix value

for example Field to update is Temp max that initially was 2 then user select increment then enter 2 then user runs reasoner on temp max the result will be 4

ScreenShotDecIncSet2016-03-11.png

Reasoner proximity Area

Proximity area option will allow the user to set an entity to the proximity area field to a new entity created by the reasoner

User can do this several ways

  • User just selects the entity from the list
  • User does a binding where user selects the proximity area that was selected on the observer
  • Using Javascript he can do the two previous options

example :

proximityarea = observation.proximityarea;

proximityarea = "/amtech/things/entities/TempEntity/TempNewPort";


ReasonerProximityArea.png

Note:In case Entity does not exist results windows wont alert user