SAP Knowledge Base Article - Public

2594883 - Item Connector Error: could not add CustomColumnRefVals

Symptom

When running the Item Connector, some items present the following Fatal Error:

com.plateausystems.connector.api.ConnectorException: could not add CustomColumnRefVals

               at com.plateausystems.connector.consumer.component.impl.ItemEntityServiceImpl.addCustomColumnReferenceValues(ItemEntityServiceImpl.java:670)

               at sun.reflect.GeneratedMethodAccessor3234.invoke(Unknown Source)

               at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

               at java.lang.reflect.Method.invoke(Method.java:606)

               at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

               at com.plateausystems.elms.framework.perfmonitor.impl.ServicePerformanceMonitorInterceptor.invoke(ServicePerformanceMonitorInterceptor.java:41)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.usagestatistics.impl.UsageStatisticsInterceptor.invoke(UsageStatisticsInterceptor.java:66)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.authorization.impl.ServiceAuthorizationInterceptor.invoke(ServiceAuthorizationInterceptor.java:127)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.localization.DataLocalizationInterceptor.invoke(DataLocalizationInterceptor.java:72)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

               at com.sun.proxy.$Proxy1793.addCustomColumnReferenceValues(Unknown Source)

               at com.plateausystems.connector.consumer.component.impl.ItemConsumerServiceImpl.createCustomColumnValue(ItemConsumerServiceImpl.java:832)

               at sun.reflect.GeneratedMethodAccessor3233.invoke(Unknown Source)

               at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

               at java.lang.reflect.Method.invoke(Method.java:606)

               at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

               at com.plateausystems.elms.framework.perfmonitor.impl.ServicePerformanceMonitorInterceptor.invoke(ServicePerformanceMonitorInterceptor.java:41)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.usagestatistics.impl.UsageStatisticsInterceptor.invoke(UsageStatisticsInterceptor.java:66)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.authorization.impl.ServiceAuthorizationInterceptor.invoke(ServiceAuthorizationInterceptor.java:127)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.localization.DataLocalizationInterceptor.invoke(DataLocalizationInterceptor.java:72)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

               at com.sun.proxy.$Proxy1796.createCustomColumnValue(Unknown Source)

               at com.plateausystems.connector.consumer.component.rules.impl.ComponentCustomRuleProcessorImpl.doCreateRefEntityId(ComponentCustomRuleProcessorImpl.java:139)

               at com.plateausystems.connector.consumer.component.rules.impl.ComponentCustomRuleProcessorImpl.createAction(ComponentCustomRuleProcessorImpl.java:156)

               at com.plateausystems.connector.rules.impl.BaseRuleProcessorImpl.getValue(BaseRuleProcessorImpl.java:152)

               at com.plateausystems.connector.consumer.impl.BaseConnectorServiceImpl.applyRules(BaseConnectorServiceImpl.java:337)

               at com.plateausystems.connector.consumer.component.impl.ItemConnectorServiceImpl.processData(ItemConnectorServiceImpl.java:150)

               at com.plateausystems.connector.consumer.impl.BaseConnectorServiceImpl.processPlateauInterfaceEntity(BaseConnectorServiceImpl.java:893)

               at sun.reflect.GeneratedMethodAccessor2149.invoke(Unknown Source)

               at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

               at java.lang.reflect.Method.invoke(Method.java:606)

               at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

               at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.perfmonitor.impl.ServicePerformanceMonitorInterceptor.invoke(ServicePerformanceMonitorInterceptor.java:41)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.usagestatistics.impl.UsageStatisticsInterceptor.invoke(UsageStatisticsInterceptor.java:66)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.authorization.impl.ServiceAuthorizationInterceptor.invoke(ServiceAuthorizationInterceptor.java:127)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.localization.DataLocalizationInterceptor.invoke(DataLocalizationInterceptor.java:72)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

               at com.sun.proxy.$Proxy1313.processPlateauInterfaceEntity(Unknown Source)

               at com.plateausystems.connector.consumer.impl.BaseConsumerControllerServiceImpl.invokeConnector(BaseConsumerControllerServiceImpl.java:510)

               at com.plateausystems.connector.consumer.impl.EntityTypesConsumerControllerServiceImpl.invokeConnector(EntityTypesConsumerControllerServiceImpl.java:493)

               at com.plateausystems.connector.consumer.impl.EntityTypesConsumerControllerServiceImpl.processWithSegmentsSequential(EntityTypesConsumerControllerServiceImpl.java:366)

               at com.plateausystems.connector.consumer.impl.EntityTypesConsumerControllerServiceImpl.processData(EntityTypesConsumerControllerServiceImpl.java:422)

               at com.plateausystems.connector.consumer.impl.EntityTypesConsumerControllerServiceImpl.invokeMainWorkflow(EntityTypesConsumerControllerServiceImpl.java:149)

               at com.plateausystems.connector.consumer.impl.BaseConsumerControllerServiceImpl.invokeMainWorkflow(BaseConsumerControllerServiceImpl.java:163)

               at com.plateausystems.connector.consumer.impl.BaseConsumerControllerServiceImpl.processSequencedInputFiles(BaseConsumerControllerServiceImpl.java:1275)

               at com.plateausystems.connector.consumer.impl.BaseConsumerControllerServiceImpl.invoke(BaseConsumerControllerServiceImpl.java:152)

               at sun.reflect.GeneratedMethodAccessor824.invoke(Unknown Source)

               at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

               at java.lang.reflect.Method.invoke(Method.java:606)

               at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

               at com.plateausystems.elms.framework.perfmonitor.impl.ServicePerformanceMonitorInterceptor.invoke(ServicePerformanceMonitorInterceptor.java:41)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.usagestatistics.impl.UsageStatisticsInterceptor.invoke(UsageStatisticsInterceptor.java:66)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.authorization.impl.ServiceAuthorizationInterceptor.invoke(ServiceAuthorizationInterceptor.java:127)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.localization.DataLocalizationInterceptor.invoke(DataLocalizationInterceptor.java:72)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

               at com.sun.proxy.$Proxy1323.invoke(Unknown Source)

               at com.plateausystems.connector.api.ConnectorApmJob.execute(ConnectorApmJob.java:80)

               at com.plateau.common.jobscheduling.impl.simple.SimpleJobRunnable.run(SimpleJobRunnable.java:95)

               at com.plateau.foundation.jobscheduling.TenantAwareJobRunnable.run(TenantAwareJobRunnable.java)

               at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

               at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

               at java.lang.Thread.run(Thread.java:807)

Caused by: com.plateausystems.elms.util.helper.ElmsCreateException: could not add CustomColumnRefVals

               at com.plateausystems.elms.bo.customcolumn.impl.CustomColumnServiceImpl.addCustomColumnRefVals(CustomColumnServiceImpl.java:197)

               at sun.reflect.GeneratedMethodAccessor2566.invoke(Unknown Source)

               at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

               at java.lang.reflect.Method.invoke(Method.java:606)

               at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

               at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.perfmonitor.impl.ServicePerformanceMonitorInterceptor.invoke(ServicePerformanceMonitorInterceptor.java:41)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.usagestatistics.impl.UsageStatisticsInterceptor.invoke(UsageStatisticsInterceptor.java:66)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.authorization.impl.ServiceAuthorizationInterceptor.invoke(ServiceAuthorizationInterceptor.java:127)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.util.helper.LastUpdateUserInterceptor.invoke(LastUpdateUserInterceptor.java:49)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at com.plateausystems.elms.framework.localization.DataLocalizationInterceptor.invoke(DataLocalizationInterceptor.java:72)

               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

               at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

               at com.sun.proxy.$Proxy655.addCustomColumnRefVals(Unknown Source)

               at com.plateausystems.connector.consumer.component.impl.ItemEntityServiceImpl.addCustomColumnReferenceValues(ItemEntityServiceImpl.java:668)

               ... 87 more

Caused by: com.plateausystems.elms.util.helper.ElmsDuplicateKeyException: Record already Exists

               at com.plateausystems.elms.bo.customcolumn.helper.ComponentCustomColumnCommandImpl.addCustomColumnRefVals(ComponentCustomColumnCommandImpl.java:213)

               at com.plateausystems.elms.bo.customcolumn.impl.CustomColumnServiceImpl.addCustomColumnRefVals(CustomColumnServiceImpl.java:195)

               ... 108 more

Environment

SuccessFactors Learning Management System (LMS)

Cause

The Engineering team identified that a code fix was needed for the situation when using Referenced Custom Columns beyond the five default ones.

Resolution

According to the Engineering team, the problem is fixed in version b1805,

As a workaround for previous version, for some cases it is possible to make the Custom Columns a free text one, not making it a referenced one. To achieve this behavior follow the below steps:

  1. Go to System Admin->Custom Columns->Item;
  2. Search for the Custom Columns and edit it;
  3. Uncheck the Referenced checkbox;
  4. Apply Changes.

See Also

2326051 - How to configure mapping additional custom columns to connector files in LMS

Keywords

Item Connector, item_data, CustomColumnRefVals, error, com.plateausystems.connector.api.ConnectorException: could not add CustomColumnRefVals , KBA , LOD-SF-LMS-CON , Connectors , Problem

Product

SAP SuccessFactors Learning 1711 ; SAP SuccessFactors Learning 1802