My function to insert records based on record in another table is inserting a record ID instead of a field value

My function to insert records based on record in another table is inserting a record ID instead of a field value

Hi,

I need to populate a table with new records based on another table. I have written this function to do this:

void createOrder()
{
insert into New_Order_Header
[
Added_User=zoho.loginuser
Supplier_ID=Suppliers[Supplier_ID = 3].ID
Supplier=Suppliers[Supplier_ID = 3].Supplier_Name
Order_Entry_Date=zoho.currentdate
]

When I view the result in the New_Order_Header table I see the correct value for Supplier_ID (which is a lookup field in that table), but instead of Supplier_Name I see a rather large number ( 3688571000000156011) that I presume is a record ID. I can't figure out why that is happening. If I just output the query to debug it looks fine:

for each  r in Suppliers
{
info r.Supplier_Name;
info r.Supplier_ID;
info r.ID;
info r.ABN;
}

Debug output:

SUPPLIER 1
1
3688571000000153181
46623863759
SUPPLIER 2
2
3688571000000156005
42139446389
SUPPLIER 3
3
3688571000000156015
90437763287

What am I doing wrong here?

Thanks in advance,

Steve