values in the configuration information passed to APEX
engines.
+ .. container:: paragraph
+
+ The *taskParameters* field is specified under *engineParameters*
+ in the ApexConfig. It can contain one or more task parameters, where each
+ item can contain the parameter key, value as well as the taskId to which it is associated.
+ If the taskId is not specified, then the parameters are added to all tasks.
+
Concept: Logic
##############
| :number-lines: | :number-lines: |
| | |
| >c: | # cd /usr/local/src/apex-pdp |
- | >cd \dev\apex | # mvn clean install -DskipTest |
+ | >cd \dev\apex | # mvn clean install -DskipTests |
| >mvn clean install -DskipTests | |
+-------------------------------------------------------+--------------------------------------------------------+
| | | | .getOutFieldSchemaHelper("authorised") |
| | | | .createNewInstance("false"); |
+------------+-------------+--------------------------------+-------------------------------------------------------------------------------------+
+| parameters | Fields | java.util.Map <String,String> | .. container:: paragraph |
+| | | | |
+| | | | All parameters in the current task. This is implemented as a standard Java Map. |
+| | | | |
+| | | | .. container:: |
+| | | | |
+| | | | .. container:: content |
+| | | | |
+| | | | .. container:: paragraph |
+| | | | |
+| | | | **Example:** |
+| | | | |
+| | | | .. code:: javascript |
+| | | | |
+| | | | executor.parameters.get("ParameterKey1")) |
++------------+-------------+--------------------------------+-------------------------------------------------------------------------------------+
| ContextAlbum getContextAlbum(String ctxtAlbumName ) | .. container:: paragraph |
| | |
| | A utility method to retrieve a ``ContextAlbum`` for use in the task. |
Examples given here use Javascript (if not stated otherwise),
other execution environments will be similar.
-Add Nashorn
-###########
-
- .. container:: paragraph
-
- First line in the logic use this import.
-
- .. container:: listingblock
-
- .. container:: title
-
- JS Nashorn
-
- .. container:: content
-
- .. code:: javascript
-
- load("nashorn:mozilla_compat.js");
-
Finish Logic with Success or Error
##################################
.. container:: paragraph
To finish logic, i.e. return to APEX, with success use the
- following lines close to the end of the logic.
+ following line close to the end of the logic.
.. container:: listingblock
.. code:: javascript
- var returnValueType = Java.type("java.lang.Boolean");
- var returnValue = new returnValueType(true);
+ true;
.. container:: paragraph
.. code:: javascript
- var returnValueType = Java.type("java.lang.Boolean");
- var returnValue = new returnValueType(false);
+ false;
Logic Logging
#############
rootLogger.error("Serious error in logic detected: " + executor.subject.id);
+Accessing TaskParameters
+########################
+
+ .. container:: paragraph
+
+ TaskParameters available in a Task can be accessed in the logic.
+ The parameters in each task are made available at the executor level.
+ This example assumes a parameter with key ``ParameterKey1``.
+
+ .. container:: listingblock
+
+ .. container:: title
+
+ JS TaskParameter value
+
+ .. container:: content
+
+ .. code:: javascript
+
+ executor.parameters.get("ParameterKey1"))
+
+ .. container:: paragraph
+
+ Alternatively, the task parameters can also be accessed from the task object.
+
+ .. container:: listingblock
+
+ .. container:: title
+
+ JS TaskParameter value using task object
+
+ .. container:: content
+
+ .. code:: javascript
+
+ executor.subject.task.getTaskParameters.get("ParameterKey1").getTaskParameterValue()
+
Local Variable for Infields
###########################
importClass(java.util.ArrayList);
var myList = new ArrayList();
-Policy Examples
-^^^^^^^^^^^^^^^
-
-My First Policy
----------------
-
- .. container:: paragraph
-
- A good starting point is the ``My First Policy`` example. It
- describes a sales problem, to which policy can be applied.
- The example details the policy background, shows how to use
- the REST Editor to create a policy, and provides details for
- running the policies. The documentation can be found:
-
- .. container:: ulist
-
- - `My-First-Policy on the APEX
- site <https://ericsson.github.io/apex-docs/modules/examples/examples-myfirstpolicy/MyFirstPolicyHowto.html>`__
-
- - `Stand-alone
- HTML <https://ericsson.github.io/apex-docs/docs-apex/html/HowTo-MyFirstPolicy.html>`__
-
- - `Stand-alone
- PDF <https://ericsson.github.io/apex-docs/docs-apex/pdf/HowTo-MyFirstPolicy.pdf>`__
-
-VPN SLA
--------
-
- .. container:: paragraph
-
- The domain Policy-controlled Video Streaming (PCVS) contains
- a policy for controlling video streams with different
- strategies. It also provides details for installing an
- actual testbed with off-the-shelve software (Mininet,
- Floodlight, Kafka, Zookeeper). The policy model here
- demonstrates virtually all APEX features: local context and
- policies controlling it, task selection logic and multiple
- tasks in a single state, AVRO schemas for context, AVOR
- schemas for events (trigger and local), and a CLI editor
- specification of the policy. The documentation can be found:
-
- .. container:: ulist
-
- - `VPN SLA Policy on the APEX
- site <https://ericsson.github.io/apex-docs/modules/examples/examples-pcvs/vpnsla/policy.html>`__
-
-Decision Maker
---------------
-
- .. container:: paragraph
-
- The domain Decision Maker shows a very simple policy for
- decisions. Interesting here is that the it creates a Docker
- image to run the policy and that it uses the APEX REST
- applications to update the policy on the-fly. It also has
- local context to remember past decisions, and shows how to
- use that to no make the same decision twice in a row. The
- documentation can be found:
-
- .. container:: ulist
-
- - `Decision Maker on APEX
- site <https://ericsson.github.io/apex-docs/modules/examples/examples-decisionmaker/index.html>`__
.. container::
:name: footer
.. container::
:name: footer-text
- 2.0.0-SNAPSHOT
- Last updated 2018-09-04 16:04:24 IST
+ 2.3.0-SNAPSHOT
+ Last updated 2020-03-16 16:04:24 GMT
.. |APEX Policy Matrix| image:: images/apex-intro/ApexPolicyMatrix.png
.. |APEX Policy Model for Execution| image:: images/apex-policy-model/UmlPolicyModels.png