PI Op - Send & Receive
Overview
The PI operation represents the sending of an NCC Provisioning Interface (PI) request, and the receipt and processing of the associated response. The NCC PI interface is sent via the MML protocol. The SOAP variant of the PI protocol is not currently supported.
- Direction: OUTBOUND/INBOUND
- From: IN Tester (PI Client)
- To: SCP (PI Server)
Note that in order to use this operation, the following pre-requisite configuration is required:
- At least one
PIApp
Application Instance must be configured within the N2SVCD Service Daemon. - The
ExecuteTest
JSON-RPC method request must specify thepi
top-level attribute as the name of a configuredPIApp
Application Instance.
Refer to the IN Tester Technical Guide for information on configuring PIApp
Application Instances,
and on using the ExecuteTest
JSON-RPC method.
Note that the test instance processing will be terminated if a network error or MML parsing error occurs during the request/response process.
Attributes
The operation attributes are as follows.
Attribute | Type | Description |
---|---|---|
type
|
String |
ocncc.pi.Request
|
label
|
String |
An optional label for this node if it is to be the target of a branch operation.
|
arguments
|
Object |
[Required] Details of the PI request to perform and the expected response to validate. Expressions may be supplied within this structure. |
tests
|
Array of Object |
An array of anonymous Objects. Each Object represents a check to be performed. The associated
Pass/Fail entries will be generated in the test instance check_log . Refer to
the Operation Tests documentation for more information on the
syntext for Operation tests .
|
Example
This is an example entry within the operations
array:
{
"type": "ocncc.pi.Request",
"label": "Check That Subscriber 1 is deleted",
"arguments": {
"status": "NACK",
"command": "CCSCD1=QRY",
"info": "{ '88-' . $v->{MSISDN} . ' DOES NOT EXIST' }",
"parameters": {
"MSISDN": "{ $v->{MSISDN} }"
}
},
"tests": [
{
"kpath": "info",
"type": "string",
"value": "11-MSISDN 99999900001 does not exist"
}
]
}
Arguments (Request)
The following request/outbound arguments are supported.
Argument | Type | Notes |
---|---|---|
command
|
String |
[Required] This is the PI command to execute. It must be a supported PI command,
and is normally of the format {6-char-command}={3-char-sub-command} .
|
parameters
|
Object | This object defines all of the outbound user parameters to place into the PI request. These parameters should all be string scalars. Structured parameters are not supported. |
Arguments (Response)
The following response/inbound arguments are supported.
Argument | Type | Notes |
---|---|---|
status
|
String |
ACK or NACK . If this argument is specified, then the returned ACK/NACK
indicated *must* match this value. If it does not match, the test instance
will be aborted.
|
info
|
String |
The information string provided by the far end. This will be an error message
in the case of NACK , or a comma-separated list of values in the ACK case.
|
KPath Test Paths
For PI tests
the following top-level elements are available via the KPath:
returned
- All the returned PI parameters as an Object.status
- EitherACK
orNACK
.info
- The PI result string (excluding timestamp,ACK
/NACK
and terminating semicolon).
Use the top-level status
argument if you wish the test instance to abort if the ACK/NACK
value is not as expected. If you wish to only generate a Fail check then add a test for
the KPath status
to the tests
array.
The returned
object will contain attributes to match any {key}={value}
pairs returned in
the PI info result string. If any {key}
value occurs more than once, then the corresponding
value in the returned
object will be an Array/ARRAY listing all of the returned values for
that key.