I'm trying to use Process Builder in conjunction with a Flow to update records. My Org uses Person Accounts and I have a custom Junction Ojbect linking Contacts to another Custom Object. When a field on the Contact object is changed I need to get all the Junction Objects for that Contact, then get all the Custom Objects on the other side of the junction and update a field on those objects with the new value from the Contact.
I have the Process Builder setup on Account to run on Create and Edit, when it detects a change in the field value from the Contact (i.e. Contact_Custom_Field__pc) to run a Flow. The Process Builder passes the PersonContact record to the Flow by reference.
Judging by the logs this is working.
12:50:49:717 FLOW_VALUE_ASSIGNMENT 89806e79afd5a9e3936f3390efb1528427405b-3f49|BaseContact|{LastModifiedDate=2016-01-27 17:50:49, AccountId=001f000000o9lJhAAI, DoNotCall=false, Custom_Contact_Field__c=true, OwnerId=005C0000008cyo4IAA, CreatedById=005C0000008cyo4IAA, IsDeleted=false, IsEmailBounced=false, IsPersonAccount=true, FirstName=Test, HasOptedOutOfEmail=false, SystemModstamp=2016-01-27 17:50:49, RM_Name__c= , CreatedDate=2016-01-26 20:39:03, Id=003f000000pfGUCAA2, LastName=Test Record, LastModifiedById=005C0000008cyo4IAA}
Where BaseContact is an SObject Variable set as input only in my Flow.
I use the Id field on BaseContact with a Fast Lookup to get a SObject COllection of my Junction Objects. I then loop through the Junction Objects doing Fast Lookups to get my Custom Object. I loop through my Custom Objects and use an assignment to assign the BaseContact.Custom_Conact_Field__c
to the appropriate value on my Custom Object. In the same assignment I'm adding the Custom Object to a SObject Collection.
When all the Lookups and Loops are done I use fast update to update my Custom Objects. As best I can tell from the Logs my Custom Object is getting updated (it's going through Validation and Workflow rules), but the field I'm trying to assign is not updating in any way.