In Service Desk Manager 17.3 REST API, some fields are INT instead of STRING
search cancel

In Service Desk Manager 17.3 REST API, some fields are INT instead of STRING

book

Article ID: 232041

calendar_today

Updated On:

Products

CA Service Management - Service Desk Manager CA Service Desk Manager

Issue/Introduction

In Service Desk Manager (SDM) 17.3 REST API, some fields are now INT instead of STRING like they were in SDM 17.2.

For example:

rest_access in SDM 17.2 (look at @COMMON_NAME or @REL_ATTR):

rest_access in SDM 17.3 (look at @COMMON_NAME or @REL_ATTR):

Environment

Service Desk Manager 17.3

REST API Web Services

All Supported Operating Systems

Cause

The reason for the differences between REST API in SDM 17.2 and 17.3 is because REST API in 17.2 used CXF 2.7.12 and as part of SDM 17.3, CXF was updated to 3.2.13 as part of security vulnerabilities.

Resolution

CXF 3.2.13 has some changes with respect to how the annotations behave.

For the factory 'rest_access', bop_sinfo output shows:

Rel Attr = id
Common Name = access_key
Schema Name = usp_rest_access

Attributes:
id                   INTEGER
access_key           INTEGER REQUIRED DISPLAY_NAME "Access Key" WRITE_NEW

For the annotations like "@id", "@REL_ATTR", "@COMMON_NAME", in case of rest_access:

@id refers to id which is an INTEGER field in the database and CXF 3.2.13 treats this strictly and shows up as an INTEGER
@REL_ATTR refers to id which is an INTEGER field in the database and CXF 3.2.13 treats this strictly and shows up as an INTEGER
@COMMON_NAME refers to access_key which is an INTEGER field in the database and CXF 3.2.13 treats this strictly and shows up as an INTEGER

For the factory 'in', bop_sinfo output shows:

Rel Attr = persistent_id
Common Name = ref_num
Schema Name = Call_Req
   
Attributes:
id                   INTEGER
persistent_id        STRING(30)
ref_num              STRING(30) REQUIRED DISPLAY_NAME "Request #" UI_INFO "+AUDITLOG()" WRITE_NEW

For the annotations like "@id", "@REL_ATTR", "@COMMON_NAME", in case of Incident:

@id refers to id which is an INTEGER field in the database and CXF 3.2.13 treats this strictly and shows up as an INTEGER
@REL_ATTR refers to persistent_id which is a STRING field in the database and CXF 3.2.13 treats this strictly and shows up as a STRING
@COMMON_NAME refers to ref_num which is a STRING field in the database and CXF 3.2.13 treats this strictly and shows up as a STRING

This is a change in behavior with the new CXF and is the correct behavior from the REST standards to show the attribute data type properly.

This means that changes will need to be made to the previous web services code to convert the integer also to string when using the fields.

Attachments