Troubleshooting
Problem
'Cannot Resolve Variable' error when dynamically configure a property belonging to services configuration.
Symptom
We have been trying out the Dynamic Configuration Using Variables for example alerts.email.server in the Service Definition Framework, and have encountered an error. This variable was defined in customer_overrides.properties
Error Message
<Errors>
<Error ErrorCode="YCP75_00014"
<Attribute Name="ErrorCode" Value="YCP75_00014"/>
<Attribute
Name="ErrorDescription" Value="Cannot Resolve Variable."/>
<Error
ErrorCode="com.yantra.yfs.japi.YFSException"
<Errors>
<E
<Attribute Name="ErrorCode"
Value="YCP75_00014"/>
<Attribute Name="ErrorDescription" Value
<Attribute Name="ErrorRelatedMoreInfo"
Value=""/>
<Attr
<Stack>com.yantra.yfc.util.YFCException
at
com.yantra.yfc.util.YFCVariableResolver.getResolvedString(YFCVariableResolver.ja
va:61)
at com.yantra.yfc.util.YFCVariableRes
olver.getResolvedString(YFCVariableResolver.java:38)
at
com.yantra.yfc.util.YFCVariableResolver.getResolvedString(YFCVariableRe
solver.java:35)
at
com.yantra.interop.services.flowcomponents.SendMailFlowComponent.setHost(SendMai
lFlowComponent.java:89)&
#xd;
at
com.yantra.interop.services.flowcomponents.FlowComponentFactory.getMailComponent
Details(FlowComponentFactory.java:381)
&
#xa; at
com.yantra.interop.services.flowcomponents.FlowComponentFactory.getFlowComponent
Details(FlowComponentFactory.java:162)
&
#x9;at
com.yantra.integration.adapter.CORBuilder.buildCORTree(CORBuilder.java:54)
&
#xa; at com.yantra.integration.adapter.CORBuilder.
buildCORTree(CORBuilder.java:84)
at
com.yantra.integration.adapter.CORBuilder.buildCORTree(CORBuilder.java:84)
&
#xa;
9;at
com.yantra.integration.adapter.CORBuilder.buildCORTree(CORBuilder.java:84)
&
#xa; at com.yantra.integration.adapter.CORBuilder.bu
ildCOR(CORBuilder.java:42)
at
com.yantra.integration.adapter.SynchronousIntegrationFlow.<init>(SynchronousInte
gra
tionFlow.java:121)
at
com.yantra.integration.adapter.IntegrationFlowFactoryImpl$IntegrationFlowLoader.
load(IntegrationFlowFacto
ryImpl.java:68)
at
com.yantra.yfc.cache.YFCGenericCacheLoader.load(YFCGenericCacheLoader.java:43)
xd;
at com.ster
lingcommerce.woodstock.util.frame.cache.CacheManager.get(CacheManager.java:271)&
#xd;
at com.yantra.yfc.cache.YFCGenericCacheLoader.g
etFromCache(YFCGenericCacheLoader.java:68)
at
com.yantra.integration.adapter.IntegrationFlowFactoryImpl.getIntegrationFlow(Int
e
grationFlowFactoryImpl.java:56)
at
com.yantra.interop.services.api.ApiRequestDispatcher.executeFlow(ApiRequestDispa
tcher.java:8
9)
at
com.yantra.yfs.core.YFSEventManager.execFlow(YFSEventManager.java:1200)
; at com.yantra.yfs.core.YFSEvent
Manager.execAction(YFSEventManager.java:467)
at
com.yantra.yfs.core.YFSEventManager.doAction(YFSEventManager.java:379)
at
com.yantra.ycp.business.YFSExceptionMonitor.monitorInBox(YFSExceptionMonitor.jav
a:104)
at com.yantra.ycp.agent.ser
ver.YCPExceptionMonitorAgent.executeJob(YCPExceptionMonitorAgent.java:60)
xa; at com.yantra.ycp.agent.server.YCPAbstractAgent.execu
teOneJob(YCPAbstractAgent.java:300)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.processMessage(YCPAbstractAgent.jav
a:261)&a
mp;#xd;
at
com.yantra.ycp.agent.server.YCPAbstractAgent.run(YCPAbstractAgent.java:137)
at sun.reflect.GeneratedMethodA
ccessor50.invoke(Unknown
Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
xd;
at
java.lang.reflect.Method.invoke(Method.java:585)
at
com.yantra.interop.services.api.ApiHelper.invoke(ApiHelper.
java:326)
at
com.yantra.interop.services.flowcomponents.ApiFlowComponent.execute(ApiFlowCompo
nent.java:179)
a
t
com.yantra.interop.services.flowcomponents.ApiFlowComponent.send(ApiFlowComponen
t.java:248)
at com.yantra.integration.adapter
.FlowExecutor.execute(FlowExecutor.java:174)
at
com.yantra.integration.adapter.IntegrationAdapter.onMessage(IntegrationAdapter.
java:342)
at
com.yantra.interop.services.jms.JMSContextMediator.processMessage(JMSContextMedi
ator.java:75)
at
com.yantra.interop.services.jms.JMSConsumer.onMessage(JMSConsumer.java:157)
at com.yantra.interop.services.jms.JMSConsumer.run
(JMSConsumer.java:302)
at
java.lang.Thread.run(Thread.java:595)
</Stack>
</Error>
</Errors>
xa;">
<Stack>com.yantra.yfs.japi.YFSException:
<Errors>
<Error ErrorCode="YCP75_00014"
<Attribute Name="ErrorCode" Value="YCP75_00014"/>
<Attribute
Name="ErrorDescription" Value="Cannot Resolve Variable."/>
<Attribute
Name="ErrorRelatedMoreInfo" Value=""/>
<Attribute Name="Variable"
Value="alerts.email.server"/>
<Stack>com.yantra.yfc.util.YFCException
at
com.yantra.yfc.util.YFCVariableResolver.getResolvedString(YFCVariableResolver.ja
va:61)
at
com.yantra.yfc.util.YFCVariableResolver.getResolvedString(YFCVariableResolver.ja
va:38)
at
com.yantra.yfc.util.YFCVariableResolver.getResolvedString(YFCVariableResolver.ja
va:35)
at
com.yantra.interop.services.flowcomponents.SendMailFlowComponent.setHost(SendMai
lFlowComponent.java:89)
at
com.yantra.interop.services.flowcomponents.FlowComponentFactory.getMailComponent
Details(FlowComponentFactory.java:381)
at
com.yantra.interop.services.flowcomponents.FlowComponentFactory.getFlowComponent
Details(FlowComponentFactory.java:162)
at
com.yantra.integration.adapter.CORBuilder.buildCORTree(CORBuilder.java:54)
at
com.yantra.integration.adapter.CORBuilder.buildCORTree(CORBuilder.java:84)
at
com.yantra.integration.adapter.CORBuilder.buildCORTree(CORBuilder.java:84)
at
com.yantra.integration.adapter.CORBuilder.buildCORTree(CORBuilder.java:84)
at
com.yantra.integration.adapter.CORBuilder.buildCOR(CORBuilder.java:42)
at
com.yantra.integration.adapter.SynchronousIntegrationFlow.<init>(SynchronousInte
grationFlow.java:121)
at
com.yantra.integration.adapter.IntegrationFlowFactoryImpl$IntegrationFlowLoader.
load(IntegrationFlowFactoryImpl.java:68)
at
com.yantra.yfc.cache.YFCGenericCacheLoader.load(YFCGenericCacheLoader.java:43)
xd;
at
com.sterlingcommerce.woodstock.util.frame.cache.CacheManager.get(CacheManager.ja
va:271)
at
com.yantra.yfc.cache.YFCGenericCacheLoader.getFromCache(YFCGenericCacheLoader.ja
va:68)
at
com.yantra.integration.adapter.IntegrationFlowFactoryImpl.getIntegrationFlow(Int
egrationFlowFactoryImpl.java:56)
at
com.yantra.interop.services.api.ApiRequestDispatcher.executeFlow(ApiRequestDispa
tcher.java:89)
at
com.yantra.yfs.core.YFSEventManager.execFlow(YFSEventManager.java:1200)
at
com.yantra.yfs.core.YFSEventManager.execAction(YFSEventManager.java:467)
at
com.yantra.yfs.core.YFSEventManager.doAction(YFSEventManager.java:379)
at
com.yantra.ycp.business.YFSExceptionMonitor.monitorInBox(YFSExceptionMonitor.jav
a:104)
at
com.yantra.ycp.agent.server.YCPExceptionMonitorAgent.executeJob(YCPExceptionMoni
torAgent.java:60)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.executeOneJob(YCPAbstractAgent.java
:300)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.processMessage(YCPAbstractAgent.jav
a:261)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.run(YCPAbstractAgent.java:137)
at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.yantra.interop.services.api.ApiHelper.invoke(ApiHelper.java:326)
at
com.yantra.interop.services.flowcomponents.ApiFlowComponent.execute(ApiFlowCompo
nent.java:179)
at
com.yantra.interop.services.flowcomponents.ApiFlowComponent.send(ApiFlowComponen
t.java:248)
at
com.yantra.integration.adapter.FlowExecutor.execute(FlowExecutor.java:174)
at
com.yantra.integration.adapter.IntegrationAdapter.onMessage(IntegrationAdapter.j
ava:342)
at
com.yantra.interop.services.jms.JMSContextMediator.processMessage(JMSContextMedi
ator.java:75)
at
com.yantra.interop.services.jms.JMSConsumer.onMessage(JMSConsumer.java:157)
at
com.yantra.interop.services.jms.JMSConsumer.run(JMSConsumer.java:302)
at java.lang.Thread.run(Thread.java:595)
</Stack>
</Error>
</Errors>
at
com.yantra.interop.services.api.ApiRequestDispatcher.executeFlow(ApiRequestDispa
tcher.java:92)
at
com.yantra.yfs.core.YFSEventManager.execFlow(YFSEventManager.java:1200)
at
com.yantra.yfs.core.YFSEventManager.execAction(YFSEventManager.java:467)
at
com.yantra.yfs.core.YFSEventManager.doAction(YFSEventManager.java:379)
at
com.yantra.ycp.business.YFSExceptionMonitor.monitorInBox(YFSExceptionMonitor.jav
a:104)
at
com.yantra.ycp.agent.server.YCPExceptionMonitorAgent.executeJob(YCPExceptionMoni
torAgent.java:60)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.executeOneJob(YCPAbstractAgent.java
:300)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.processMessage(YCPAbstractAgent.jav
a:261)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.run(YCPAbstractAgent.java:137)
at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.yantra.interop.services.api.ApiHelper.invoke(ApiHelper.java:326)
at
com.yantra.interop.services.flowcomponents.ApiFlowComponent.execute(ApiFlowCompo
nent.java:179)
at
com.yantra.interop.services.flowcomponents.ApiFlowComponent.send(ApiFlowComponen
t.java:248)
at
com.yantra.integration.adapter.FlowExecutor.execute(FlowExecutor.java:174)
at
com.yantra.integration.adapter.IntegrationAdapter.onMessage(IntegrationAdapter.j
ava:342)
at
com.yantra.interop.services.jms.JMSContextMediator.processMessage(JMSContextMedi
ator.java:75)
at
com.yantra.interop.services.jms.JMSConsumer.onMessage(JMSConsumer.java:157)
at
com.yantra.interop.services.jms.JMSConsumer.run(JMSConsumer.java:302)
at java.lang.Thread.run(Thread.java:595)
</Stack>
</Error>
<Stack>com.yantra.yfc.util.YFCException
at
com.yantra.yfs.core.YFSEventManager.execFlow(YFSEventManager.java:1208)
at
com.yantra.yfs.core.YFSEventManager.execAction(YFSEventManager.java:467)
at
com.yantra.yfs.core.YFSEventManager.doAction(YFSEventManager.java:379)
at
com.yantra.ycp.business.YFSExceptionMonitor.monitorInBox(YFSExceptionMonitor.jav
a:104)
at
com.yantra.ycp.agent.server.YCPExceptionMonitorAgent.executeJob(YCPExceptionMoni
torAgent.java:60)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.executeOneJob(YCPAbstractAgent.java
:300)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.processMessage(YCPAbstractAgent.jav
a:261)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.run(YCPAbstractAgent.java:137)
at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.yantra.interop.services.api.ApiHelper.invoke(ApiHelper.java:326)
at
com.yantra.interop.services.flowcomponents.ApiFlowComponent.execute(ApiFlowCompo
nent.java:179)
at
com.yantra.interop.services.flowcomponents.ApiFlowComponent.send(ApiFlowComponen
t.java:248)
at
com.yantra.integration.adapter.FlowExecutor.execute(FlowExecutor.java:174)
at
com.yantra.integration.adapter.IntegrationAdapter.onMessage(IntegrationAdapter.j
ava:342)
at
com.yantra.interop.services.jms.JMSContextMediator.processMessage(JMSContextMedi
ator.java:75)
at
com.yantra.interop.services.jms.JMSConsumer.onMessage(JMSConsumer.java:157)
at
com.yantra.interop.services.jms.JMSConsumer.run(JMSConsumer.java:302)
at java.lang.Thread.run(Thread.java:595)
</Stack>
</Error>
<Error ErrorCode="YFS10088"
<Attribute
Name="ErrorCode" Value="YFS10088"/>
<Attribute Name="ErrorDescription"
Value="YFS:EM Actioncode Not Setup"/>
<Attribute Name="AdditionalInfo"
Value="SupplierCode=&ParentInboxKey=20081128131317635611&ShipNode=&ItemID=&Order
No=&
<Attribute Name="TransID" Value="EXCEPTION_MONITOR"/>
<Attribute
Name="ShipNode" Value=""/>
<Attribute Name="ActionKey"
Value="20081125165541564042"/>
<Stack>com.yantra.yfc.util.YFCException
at
com.yantra.yfs.core.YFSEventManager.doAction(YFSEventManager.java:384)
at
com.yantra.ycp.business.YFSExceptionMonitor.monitorInBox(YFSExceptionMonitor.jav
a:104)
at
com.yantra.ycp.agent.server.YCPExceptionMonitorAgent.executeJob(YCPExceptionMoni
torAgent.java:60)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.executeOneJob(YCPAbstractAgent.java
:300)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.processMessage(YCPAbstractAgent.jav
a:261)
at
com.yantra.ycp.agent.server.YCPAbstractAgent.run(YCPAbstractAgent.java:137)
at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.yantra.interop.services.api.ApiHelper.invoke(ApiHelper.java:326)
at
com.yantra.interop.services.flowcomponents.ApiFlowComponent.execute(ApiFlowCompo
nent.java:179)
at
com.yantra.interop.services.flowcomponents.ApiFlowComponent.send(ApiFlowComponen
t.java:248)
at
com.yantra.integration.adapter.FlowExecutor.execute(FlowExecutor.java:174)
at
com.yantra.integration.adapter.IntegrationAdapter.onMessage(IntegrationAdapter.j
ava:342)
at
com.yantra.interop.services.jms.JMSContextMediator.processMessage(JMSContextMedi
ator.java:75)
at
com.yantra.interop.services.jms.JMSConsumer.onMessage(JMSConsumer.java:157)
at
com.yantra.interop.services.jms.JMSConsumer.run(JMSConsumer.java:302)
at java.lang.Thread.run(Thread.java:595)
</Stack>
</Error>
</Errors>
Resolving The Problem
When define alerts.email.server in customer_overrides.properties, prefix "yfs" need to be added. For example, yfs.alerts.email.server = xxx. This was normally defined in yfs.properties in Sterling MCF version pre 8.0. This is not clearly documented in MCF 8.0 customization guide. But when you use this variable in configurator, you only need to specify it as alerts.email.server.
Historical Number
NFX4672
Product Synonym
[<p><b>]Severity[</b><p>];Normal;[<p><b>]Type[</b><p>];NormalFix
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg21557419