You can set the value of an argument/variable to any C# expression, which means you can access other tables within it. As an example, where “custID” in this expression is a directive variable (but could be anything else):
(int?)(from row in Db.Customer where row.Company == callContextClient.CurrentCompany && row.CustID == custID select row.CustNum).FirstOrDefault() ?? 0
This, in one of our BPMs, is used to set a custNum variable for use elsewhere.
Is that what you mean?