Acknowledging Alarm with SAP Maintenance Plan results in error "...CONVERSION_NO_NUMBER' "


 Product(s):APM Implementation and Performance Management
 Version(s):7
 Environment:N/A
 Area:N/A
 Subarea:N/A

Problem Description

In an APM environment running with "CMMS Interoperability" (SAP Gateway), user was receiving an exception type "type 'CX_SY_CONVERSION_NO_NUMBER". The acknowledgement errors but the maintenance order is still created in SAP resulting in the Indicator remaining in alarm.

Full error reads as follows:

2020-08-27 19:22:33.2857Z Warn DOMAIN\USERNAME AssetManagement.Events.SAPEvents.SAPWorkDocumentInfo_Internal [11] Failed to create manual call in SAP.

2020-08-27 19:22:33.2857Z Warn DOMAIN\USERNAME AssetManagement.Events.SAPEvents.SAPWorkDocumentInfo_Internal [11] Short error message: An exception of type 'CX_SY_CONVERSION_NO_NUMBER' occurred, that was not caught anywhere in the call hierarchy. It was not handled locally or declared using a RAISING clause.

2020-08-27 19:22:33.2857Z Warn DOMAIN\USERNAME AssetManagement.Events.SAPEvents.SAPWorkDocumentInfo_Internal [11] Full error message: Ivara.EXPLink.IVSTAGE.ApmToSapWebRequestException: <?xml version="1.0" encoding="utf-8"?><error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><code>/IWBEP/CM_MGW_RT/022</code><message xml:lang="en">An exception of type 'CX_SY_CONVERSION_NO_NUMBER' occurred, that was not caught anywhere in the call hierarchy. It was not handled locally or declared using a RAISING clause.</message><innererror><application><component_id/><service_namespace>/SAP/</service_namespace><service_id>zapmexternaldata</service_id><service_version>0001</service_version></application><transactionid>5BBDB42F9D8E00A0E005F437E70EFA79</transactionid><timestamp/><Error_Resolution><SAP_Transaction/><SAP_Note>See SAP Note 1797736 for error analysis (https://service.sap.com/sap/support/notes/1797736)</SAP_Note></Error_Resolution><errordetails><errordetail><code>/IWBEP/CX_MGW_BUSI_EXCEPTION</code><message>An exception of type 'CX_SY_CONVERSION_NO_NUMBER' occurred, that was not caught anywhere in the call hierarchy. It was not handled locally or declared using a RAISING clause.</message><propertyref/><severity>error</severity><target/><transition>false</transition></errordetail></errordetails></innererror></error>

Solution

The SAP function module for this call is "Z_APMEXT_CREATE_MANUAL_CALL ". The call anticipates the "CALL Number" field to be comma delimited, ie 90,000,001 and has coding to strip the commas. But in the users case it was delimited with a period instead of a comma, ie 90.000.001. Extra code was added to remove the period, ".", from the CALL NUMBER field also:

"strip commas from CALL_NUMBER and copy string to integer

REPLACE ALL OCCURRENCES OF ',' IN CALL_NUMBER WITH ''.

REPLACE ALL OCCURRENCES OF '.' IN CALL_NUMBER WITH ''.

ABNUM = CALL_NUMBER.

PASSED = ABAP_TRUE."

See also

SR 7001120151