IBM Support

'Cannot Resolve Variable' error when dynamically configure a property belonging to services configuration.

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;&#x
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.

[{"Product":{"code":"SS6PEW","label":"IBM Sterling Order Management"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

NFX4672

Product Synonym

[<p><b>]Severity[</b><p>];Normal;[<p><b>]Type[</b><p>];NormalFix

Document Information

Modified date:
16 June 2018

UID

swg21557419