TransactionCurrencyId error on Callout-Collection of common programming errors

Hello,

I just upgraded to CRM 4.0 from version 3.0. After upgrading my Callout to use our new 4.0 web reference, everything works out fine. Then I noticed that there was an error on an entity with N-1 relationship, because there is a mapping in which the target field in entity A is a float, while source  field in entity B is money type. This was never a problem in CRM 3.0.

So I created a new money-type field in entity A and create a new mapping with this new field.

However now my callout breaks with the following error message about TransactionCurrencyId:

Event Type:    Error Event Source:    MSCRMCallout Event Category:    None Event ID:    16912 Date:        4/21/2010 Time:        3:25:54 PM User:        N/A Computer:    DEMETOR64 Description: Error: ISV code in organization: 0f3ee4f7-98b0-4f87-be32-b09327775e5a; threw exception: assembly: TimeEntry.dll; class: TimeEntry.TimeEntry; entity: new_timeentry, event: precreate, exception: Unhandled Exception: System.Web.Services.Protocols.SoapException: Server was unable to process request. Detail:   0x80040216

  transactionCurrencyId needs to be supplied to format a transaction money field.

  Platform    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)    at TimeEntry.CrmSdk.CrmService.RetrieveMultiple(QueryBase query)    at TimeEntry.TimeEntry.CheckInternalTeamMember()    at TimeEntry.TimeEntry.PreCreate(CalloutUserContext userContext, CalloutEntityContext entityContext, String& entityXml, String& errorMessage)    at Microsoft.Crm.Extensibility.V3CalloutProxyPlugin.PreCreateAdapter.InternalExecute(IPluginExecutionContext context, String& errorMessage)    at Microsoft.Crm.Extensibility.V3CalloutProxyPlugin.PreCalloutAdapterBase.Execute(IPluginExecutionContext context)

   at Microsoft.Crm.Extensibility.V3CalloutProxyPlugin.CalloutAdapterBase.ExecuteAdapter(IPluginExecutionContext context)

I read some blogs and forum, and I have added the field ‘Currency’ (transactioncurrencyid) to all the entity forms in question. However this is still not fixing this…

Is there a code line that I need to add to my callout for this?

Can someone please guide me in the right direction? Thanks in advanced,

Elizabeth K.