After update from ARA V5 to v12.1 line feed in dynamic properties fails

Document ID : KB000084749
Last Modified Date : 14/04/2018
Show Technical Document Details
Issue:
Error Message :
N/A

After update from ARA V5 line feed in dynamic properties did't work in ARA V12.1

We have an application deployment workflow, which depends upon the environment. The environment is sourced into the dynamic properties at the component level with the expression like 
{@environment/system/name}

0EM0N000001iBXd.png

2018-03-26 14:08:34 - U0020206 Variable '&ENVIRONMENT#' was stored with value 'TEST'. 2018-03-26 14:08:34 - 0020206 Variable '&LOGIN#' was stored with value 'RM_ADMIN.15950'.

In 12.1, the environment dynamic property has a line feed at the end, which causes the deployment command to error out.

0EM0N000001iBXi.png

2018-03-26 11:41:32 - U00020206 Variable '&ENVIRONMENT#' was stored with value 'TEST '.
2018-03-26 11:41:32 - U00020206 Variable '&LOGIN#' was stored with value 'RM.ADMIN.15950'.

 

Cause:
Cause type:
By design
Root Cause: ARA v5 allows CR LF at the end of single-line variables; ARA v6++ does not
CR LF or \r\n will be trimmed when user enter value via UI/REST/SOAP.
AE V12 respect line ending and does not trim it
Resolution:
  • Execute SELECT statement to find all affected dynamic properties
  • Use SOAP API to export, remove line ending then import again
  • Execute SELECT statement to check if all properties are fixed


Fix Status: No Fix

Additional Information:
Workaround :

With this query the problematic data in the ARA-database can be listed:

SELECT DP.Name, DP.Type, DPV.ExpressionValue, left( DPV.ExpressionValue, len(DPV.ExpressionValue)-1) FROM DynPropVal as DPV, DynProp as DP where DP.Id = DPV.PropId AND DP.type = 0 and ((RIGHT( DPV.ExpressionValue, 1) = CHAR(13)) OR (RIGHT( DPV.ExpressionValue, 1) = CHAR(10))); 

By executing this statement several times until the messages 0 rows processed the CR LF should be removed from Single Line properties:

UPDATE DynPropVal  SET ExpressionValue = LEFT( ExpressionValue, LEN(ExpressionValue)-1)  FROM DynPropVal DPV  INNER JOIN DynProp DP	ON DP.Id = DPV.PropId  where	DP.Type = 0 AND	((RIGHT( DPV.ExpressionValue, 1) = CHAR(13)) OR (RIGHT( DPV.ExpressionValue, 1) = CHAR(10)))