Interpreting error messages regarding NULL values when using TIBCO Scribe® Online

Interpreting error messages regarding NULL values when using TIBCO Scribe® Online

book

Article ID: KB0076185

calendar_today

Updated On:

Products Versions
TIBCO Cloud Integration - Connect ( Scribe ) -

Description

When integrating data into a target system, records with null values may be rejected by the target system. Depending on the target system, some fields may be listed as allowing nulls but do not actually accept nulls. What we report in the application for field information is what the API of the target system tells our application.

When running maps you may get error messages like the examples below.

Operation failed. Label: Update [BLOCKNAME], Name: [BLOCKNAME], Message: -2147220891:Value cannot be null. Parameter name: Project task end date is required. : Value cannot be null. Parameter name: Project task end date is required. : Error in calling Operation Update Server stack trace: at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at Microsoft.Xrm.Sdk.IOrganizationService.Update(Entity entity) at Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.UpdateCore(Entity entity) at Scribe.Adapter.Crm.Services.Crm2011Service.Update(Entity entity, Boolean retry) at Scribe.Adapter.Crm.DataAccess.Crm2011DataAccess.ExecuteSingleUpdate(QueryExpression queryExpression, Dictionary`2 entityData, IList`1 filterFieldNames)

RECORD FAILURE DETAILS
===============================
Run started at Tue Sep 19 2017
Solution Instance Name:  *********
Map Name:                *********
Source Entity:         ***********
Error title:             Error in calling Operation Create
Error description:       Operation failed.  Label: Create [ENTITYNAME] Name: [ENTITYNAME]Create, Message: Unable to format the data '' for [ENTITYNAME].[FIELDNAME].: Error in calling Operation Create System.FormatException: Unable to format the data '' for [ENTITYNAME].[FIELDNAME]. ---> System.FormatException: Input string was not in a correct format.
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at System.String.System.IConvertible.ToInt32(IFormatProvider provider)
   at Scribe.Connector.MarketoRest.DataAccess.ConvertDataField.ToMarketoValue(String fieldName, Object fieldValue)
   --- End of inner exception stack trace ---
   at Scribe.Connector.MarketoRest.DataAccess.ConvertDataField.ToMarketoValue(String fieldName, Object fieldValue)
   at Scribe.Connector.MarketoRest.DataAccess.DataAccess.ConvertToMarketoObject(InputItem inputItem, Boolean useBulkFieldRetrieval)
   at Scribe.Connector.Common.Operation.ExecutionFlow.ProcessInputConversions[TIn](Func`2 inputConverter, IList`1 indexedInputItems, IList`1& indexedErrorResultItems)________________________________
 

Issue/Introduction

Sometime when running maps you may have a record that fails regarding null values. This article gives some tips on how to interpret those errors.

Resolution

When you see these types of error messages, especially the top error message, take a look at the data. Accompanying the errors will be information regarding the source data that was picked up that spawned this error message. Take a look at the mappings and see where the null values are being input. Try putting in a formula such as IF(ISNULLOREMPTY(MyEntity.FIELDNAME), "[VALIDVALUE]", MyEntity.FIELDNAME) to see if the error message goes away when reprocessing a failed record. 

Using the Debug feature of TIBCO Scribe Online is also valuable as you can see exactly what data is being used at the point of the operation that is failing. This formula of course will hard code a value into the field and may not be most ideal for all situations. But it could help you test that inputting a non-null value works.