Running a procedure with a FarCall does not work, but the same procedure runs successfully when the database containing the procedure is the active database. The problem appears to be confusion when a variable is assigned the contents of a field. I suspect that the FarCall statement is looking for the field in the active database and not the foreign database.
That’s exactly what it is doing, and exactly what it is supposed to be doing. A FarCall is simply a way to store the code in a different database than the one in which it will run. Panorama always thinks a reference to a field is a reference to a field in the active database, regardless of where the code for that procedure is stored. To retrieve data from a field in another database besides the active one, use the fieldvalue(