My organization uses a third-party relational replication tool to sync data between Salesforce and a SQL Server database. The replication software is written in Java and uses the Salesforce API for its CRUD operations. Each object, both standard and custom, is represented in the database as a table that, in addition to all object fields, contains additional fields that are used for replication purposes.
When trying to insert a record into Salesforce via MSSQL, I get this error: "Contact failed to create: Required fields are missing: [LastName]"
but the LastName field is positively not empty or null. Today is the first time receiving this error on the Contact – I've successfully created Contact records this way in the past. To start, I've checked on this with the vendor and was told it has something to do with permissions of the user account under which the replication is running. I've checked everything I can think of related to the running user's permissions on the Contact record, but before throwing it back at the vendor I want to make sure there isn't anything obvious I'm missing.
Here is what I've checked so far:
- Role: Admin
- Profile: System Administrator
- Profile has all object permissions enabled
- Read and Edit permissions on the Name field are both set
- Field-level security on the Name field is set to visible (read-only not selected)
- No Contact triggers changing the value of LastName
- No validation rules set on the LastName field
- No workflow rules set on the LastName field
- Confirmed I can create the identical record through the GUI under the running user
Is there anything else I should check? Is it fair to think it could be related to vendor replication code?
FirstName
,LastName
permissions,Name
on Contact is a readonly field. Have you added any workflows or triggers recently that might be "sanitizing" the names, looking for duplicates and whatnot? Might be something in your code that eventually wipes the value. What happens if you take "this user" and attempt to create Contact with same data from GUI?