When applying rules from a rules file to an RPT test, you might find that some rules do not apply correctly -- the src value is set to ''. This can happen if the substitution name has characters that result in an invalid regular expression.
This is caused because RPT data correlation rules have a special regular expression for linking the value pointed to by either a reference or a substitution by using the reference or substitution name like "%< Reference or Substitution Name>%". For example, consider a scenario where the application has a dynamic key-value pair "myParam=foo". If RPT uses a reference parameter with name "myParam" and sets its regular expression to "myParam=(.*?)", in order to substitute it in all occurrences of the string foo in requests, a regular expression %myParam% can be used for the substitution site. Also note that though RPT uses a portion of the regular expression as the reference or substitution name by default, it can be modified using the rules editor or test editor.
When you create a new manual correlation, the substitution name matches the regular expression value. Thus, if a new manual correlation creates a substitution with a regular expression that includes characters used in regular expression syntax -- like % -- and you keep the default substitution name, when RPT tries to use the pattern %<SUBSTITUTION NAME>%, this name will generate an error because of the invalid regular expression (caused by the un-escaped "%" sign within the substitution name).
You can work around this issue by renaming the substitution name to not include characters that result in invalid regular expressions.