API_NOTIFY_APS_INTEGRATION FAILED NOTIFICATION URL HAS EXTRA / (Doc ID 2088243.1)

Last updated on MARCH 08, 2017

Applies to:

Oracle Demantra Demand Management - Version 12.2.4 and later
Information in this document applies to any platform.

Symptoms

The API_NOTIFY_APS_INTEGRATION and the db_exception_log shows the following error

10/13/2015 21:07 API_NOTIFY_APS_INTEGRATION URL "http://xxxxx.xxxx.xxxxx:0000/demantra//NotificationServlet?NotificationType=8&UAK=D3DC8DA5BC29C291E093C27088341772BFA36C24&Action=modify&TransferId=497&ProfileId=461&ProfileType=1
10/13/2015 21:07 API_NOTIFY_APS_INTEGRATION Status                         : FAILED
10/13/2015 21:07 API_NOTIFY_APS_INTEGRATION Result                         :
10/13/2015 21:07 API_NOTIFY_APS_INTEGRATION Server                         : http://xxxxx.xxxx.xxxxx:0000/demantra
10/13/2015 21:07 API_NOTIFY_APS_INTEGRATION Parameter                      : AppServerIntegrationServlet
10/13/2015 21:07 API_NOTIFY_APS_INTEGRATION Integration Error : AppServ Notification for Profile ID [461] Failed. Return value []
10/13/2015 21:07 API_NOTIFY_APS_INTEGRATION URL                            : http://xxxxx.xxxx.xxxxx:0000/demantra//NotificationServlet?NotificationType=8&UAK=D3DC8DA5BC29C291E093C27088341772BFA36C24&Action=modify&TransferId=497&ProfileId=461&ProfileType=1
10/13/2015 21:07 API_NOTIFY_APS_INTEGRATION -29273 ORA-29273: HTTP request failed
10/13/2015 21:07 API_NOTIFY_APS_INTEGRATION Status                         : FAILED
10/13/2015 21:07 API_NOTIFY_APS_INTEGRATION Result                         : NULL

It fails because demantra standard package generates wrong URL which contains '//' character


http://xxxxx.xxxx.xxxxx:0000/demantra//NotificationServlet?NotificationType=8&UAK=D3DC8DA5BC29C291E093C27088341772BFA36C24&Action=modify&TransferId=497&ProfileId=461&ProfileType=1


The above notification URL has an extra / as below

http://xxxxx.xxxx.xxxxx:0000/demantra//NotificationServle

The issue is in following logic in notify procedure in Demantra schema.
The notify procedure adds a '/' in front of servlet string. If servlet
includes '/', then URL will has '//' which causes error.
------------------------------------------------------------------------------


           IF INSTR( vs_servlet , 'UAK=' ) > 0 THEN

            
/*****************************************************************************/
              /* Notification type with UAK
            
/*****************************************************************************/
              vs_url  := vs_server ||'/'|| vs_servlet || vs_uak ||
is_content;

           ELSE
            
/*****************************************************************************/
              /* Notification type without UAK
              /* eg
              /*    Start WF where contents contains the WF name user name
@ and encrypted password
              /*
            
/*****************************************************************************/
              vs_url  := vs_server ||'/'|| vs_servlet || is_content;

           END IF;




If we modify the notify procedure to not to add extra '/' in the http URL the after HTTP URL is in  correct format.

Before change:
http://xxx.xxxx.xxxx:0000/demantra//NotificationServlet?NotificationType=17&UAK=D3DC8DA5BC29C291E093C27088341772BFA36C24&LevelID=362&LUD=11-04-2015-08-11-15.

After change:
http://xxx.xxxx.xxxx:0000/demantra/NotificationServlet?NotificationType=17&UAK=D3DC8DA5BC29C291E093C27088341772BFA36C24&LevelID=362&LUD=11-04-2015-08-11-15

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms