/AWS1/IF_LOC=>VERIFYDEVICEPOSITION()¶
About VerifyDevicePosition¶
Verifies the integrity of the device's position by determining if it was reported behind a proxy, and by comparing it to an inferred position estimated based on the device's state.
The Location Integrity SDK provides enhanced features related to device verification, and it is available for use by request. To get access to the SDK, contact Sales Support.
Method Signature¶
METHODS /AWS1/IF_LOC~VERIFYDEVICEPOSITION
IMPORTING
!IV_TRACKERNAME TYPE /AWS1/LOCRESOURCENAME OPTIONAL
!IO_DEVICESTATE TYPE REF TO /AWS1/CL_LOCDEVICESTATE OPTIONAL
!IV_DISTANCEUNIT TYPE /AWS1/LOCDISTANCEUNIT OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_locverifydevpositio01
RAISING
/AWS1/CX_LOCACCESSDENIEDEX
/AWS1/CX_LOCINTERNALSERVEREX
/AWS1/CX_LOCRESOURCENOTFOUNDEX
/AWS1/CX_LOCTHROTTLINGEX
/AWS1/CX_LOCVALIDATIONEX
/AWS1/CX_LOCCLIENTEXC
/AWS1/CX_LOCSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
iv_trackername TYPE /AWS1/LOCRESOURCENAME /AWS1/LOCRESOURCENAME¶
The name of the tracker resource to be associated with verification request.
io_devicestate TYPE REF TO /AWS1/CL_LOCDEVICESTATE /AWS1/CL_LOCDEVICESTATE¶
The device's state, including position, IP address, cell signals and Wi-Fi access points.
Optional arguments:¶
iv_distanceunit TYPE /AWS1/LOCDISTANCEUNIT /AWS1/LOCDISTANCEUNIT¶
The distance unit for the verification request.
Default Value:
Kilometers
RETURNING¶
oo_output TYPE REF TO /aws1/cl_locverifydevpositio01 /AWS1/CL_LOCVERIFYDEVPOSITIO01¶
Domain /AWS1/RT_ACCOUNT_ID Primitive Type NUMC
Examples¶
Syntax Example¶
This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.
DATA(lo_result) = lo_client->verifydeviceposition(
io_devicestate = new /aws1/cl_locdevicestate(
io_accuracy = new /aws1/cl_locpositionalaccuracy( '0.1' )
io_cellsignals = new /aws1/cl_loccellsignals(
it_ltecelldetails = VALUE /aws1/cl_locltecelldetails=>tt_ltecelldetailslist(
(
new /aws1/cl_locltecelldetails(
io_localid = new /aws1/cl_locltelocalid(
iv_earfcn = 123
iv_pci = 123
)
it_networkmeasurements = VALUE /aws1/cl_locltenetworkmeasur00=>tt_ltenetworkmeasurementslist(
(
new /aws1/cl_locltenetworkmeasur00(
iv_cellid = 123
iv_earfcn = 123
iv_pci = 123
iv_rsrp = 123
iv_rsrq = '0.1'
)
)
)
iv_cellid = 123
iv_mcc = 123
iv_mnc = 123
iv_nrcapable = ABAP_TRUE
iv_rsrp = 123
iv_rsrq = '0.1'
iv_tac = 123
iv_timingadvance = 123
)
)
)
)
it_position = VALUE /aws1/cl_locposition_w=>tt_position(
( new /aws1/cl_locposition_w( |0.1| ) )
)
it_wifiaccesspoints = VALUE /aws1/cl_locwifiaccesspoint=>tt_wifiaccesspointlist(
(
new /aws1/cl_locwifiaccesspoint(
iv_macaddress = |string|
iv_rss = 123
)
)
)
iv_deviceid = |string|
iv_ipv4address = |string|
iv_sampletime = '20150101000000.0000000'
)
iv_distanceunit = |string|
iv_trackername = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lo_inferredstate = lo_result->get_inferredstate( ).
IF lo_inferredstate IS NOT INITIAL.
LOOP AT lo_inferredstate->get_position( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lv_double = lo_row_1->get_value( ).
ENDIF.
ENDLOOP.
lo_positionalaccuracy = lo_inferredstate->get_accuracy( ).
IF lo_positionalaccuracy IS NOT INITIAL.
lv_sensitivedouble = lo_positionalaccuracy->get_horizontal( ).
ENDIF.
lv_double = lo_inferredstate->get_deviationdistance( ).
lv_boolean = lo_inferredstate->get_proxydetected( ).
ENDIF.
lv_id = lo_result->get_deviceid( ).
lv_timestamp = lo_result->get_sampletime( ).
lv_timestamp = lo_result->get_receivedtime( ).
lv_distanceunit = lo_result->get_distanceunit( ).
ENDIF.