Symptom
Environment
- Employee Central
Resolution
- In this case there existed a duplicate “vfld” name (or variable fields) in two data fields within a background element in the data model.
- To correct the problem the background element XML code in the data model needed to be modified to ensure all “vfld” names within the data fields of the affected background element had unique names. In this case two vfld names matched, “vfld5”. Please note that “dfld” (date fields) names must also be unique.
Additional Information:
- In this case, “vfld5” was duplicated in both the “jobRole” and “consultingBonusAllocation” data fields of a background element. (Please see complete modified background element code below). Original and modified XML for the effected background element appears below.
Original Code:
<data-field id="consultingBonusAllocation" field-name="vfld5" max-length="25" max-file-size-KB="15">
Modified Code:
<data-field id="consultingBonusAllocation" field-name="vfld7" max-length="25" max-file-size-KB="15">
"Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental."
Complete Modified Background Element Code from Data Model:
<background-element id="expatComp1" type-id="18">
<label>Additional Compensation - Section 1 (**Confidential Section**)</label>
<data-field id="specialComp1EffectiveDate" field-name="dfld1" max-length="999" max-file-size-KB="100">
<label>Effective Date</label>
</data-field>
<data-field id="employeeType" field-name="vfld1" max-length="25" max-file-size-KB="15">
<label>Employee Type</label>
</data-field>
<data-field id="jobRole" field-name="vfld5" max-length="25" max-file-size-KB="15">
<label>Job Role</label>
</data-field>
<data-field id="jobFunction" field-name="vfld6" max-length="25" max-file-size-KB="15">
<label>Job Function</label>
</data-field>
<data-field id="comXL" field-name="vfld2" max-length="25" max-file-size-KB="15">
<label>CompXL</label>
</data-field>
<data-field id="deferredBonusEligible" field-name="vfld3" max-length="25" max-file-size-KB="15">
<label>Deferred Bonus Eligible</label>
</data-field>
<data-field id="bonusAllocation" field-name="vfld4" max-length="25" max-file-size-KB="15">
<label>Bonus Allocation</label>
</data-field>
<data-field id="consultingBonusAllocation" field-name="vfld7" max-length="25" max-file-size-KB="15">
<label>Consulting Bonus Allocation</label>
</data-field>
</background-element>
Example Background Data Import E-mail Notification
From: System System <SystemMessage@successfactors.com>
To: <Admin@somecompany.com>
Date: 07/17/2012 11:06 AM
Subject: SomeCompany - Live Profile Import Process Status (Background Information) 7/17/12.
________________________________________
Company Name: SomeCompany
Duration: 1 seconds.
Live Profile Import process started at 7/17/12.
Overwrite option is selected. All existing entries in section expatComp1 have been deleted.
Internal system error. Please contact your representative. Not able to call the EJB to import the data. com.successfactors.sm.service.SuccessionEJBException: failed to save section (expatComp1). Failed to execute a batched prepared statement. ORA-00957: duplicate column name
com.successfactors.sm.service.SuccessionEJBException: failed to save section (expatComp1). Failed to execute a batched prepared statement. ORA-00957: duplicate column name
at com.successfactors.sm.service.ejb.SuccessionEJB.importBgData(SuccessionEJB.java:2941)
at sun.reflect.GeneratedMethodAccessor676.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
at org.jboss.ejb.Container.invoke(Container.java:960)
at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118)
at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:209)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:195)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
at $Proxy191.importBgData(Unknown Source)
at com.successfactors.liveprofile.util.LiveProfileBgAndRatingImportEvent.processRequest(LiveProfileBgAndRatingImportEvent.java:390)
at com.successfactors.platform.service.MailConsumerMDB.onMessage(MailConsumerMDB.java:105)
at sun.reflect.GeneratedMethodAccessor159.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:492)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:116)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:315)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:109)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138)
at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:399)
at org.jboss.ejb.Container.invoke(Container.java:960)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:1139)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1452)
at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:266)
at org.jboss.jms.client.container.ClientConsumer.callOnMessageStatic(ClientConsumer.java:160)
at org.jboss.jms.client.container.SessionAspect.handleRun(SessionAspect.java:831)
at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect14.invoke(SessionAspect14.java)
at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:172)
at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
at org.jboss.jms.client.delegate.ClientSessionDelegate.run(ClientSessionDelegate.java)
at org.jboss.jms.client.JBossSession.run(JBossSession.java:199)
at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:756)
at java.lang.Thread.run(Thread.java:619)
Keywords
KBA , sf employee central , LOD-SF-EC-BCI , Manage Business Configuration (BCUI) & Data Models (XML) , Problem