anchor.diff:    data.ToArray()
     |> Array.map(fun d ->
       match d.__class with
  +    | StartsWith "PageStep" ()
       | StartsWith "StageStep" () 
       | StartsWith "StepStep" ()  -> analyzeEntity d.steps.list fields
       | StartsWith "ControlStep" () -> 
  -      ( d.controlId, 
  -        d.dataFieldName, 
  -        getControlClass d.controlId d.classId,
  -        None) :: fields
  +      match box d.controlId with
  +      | null -> fields
  +      | _ ->
  +        let controlClass = getControlClass d.controlId d.classId
  +        ( d.controlId, 
  +          d.dataFieldName, 
  +          controlClass,
  +          match box d.entity, controlClass with
  +          | e, Lookup when e <> null -> Some (sprintf "\"%s\"" d.entity.entityName)
  +          | _, _ -> None
  +        ) :: fields
       | _ -> fields
     ) |> List.concat
   
  
positive.code:     x |> Array.map snd 
      |> List.concat 
      |> List.distinctBy (fun (id,_,_,_) -> id)
      |> List.map (fun (id, datafieldname, controlClass, _) -> 
        sprintf "header_process_%s" id, datafieldname, controlClass, None))
    |> Map.ofArray
negative.code: open Microsoft.Xrm.Sdk
  open System.Runtime.Serialization
  open System.Collections.Generic
  open System
  
  // Part of the JSON data model for the "clientdata" attribute on BPF workflows.
  // Used to retrieve which fields on which entities are in the BPF forms
  