I've just tried that, and it doesn't seem to be working. Here's a code snippet that I've got (with correct variables and all), it's Java syntax, but not tough to follow:
private static final String[ METHOD_TABLE_A_FIELDS_TO_WRITE =
{"Company", "Email", "NameFirst", "NameLast", "NameFull", "Notes"};
private static final String[ METHOD_TABLE_B_FIELDS_TO_WRITE = {"NameFirst", "NameLast", "NameFull", "email"};
private static String[ methodTableAValuesToWrite = {"Slappy, Inc.", "slappy@mcgee.net", "AAAA", "AAAA", "AAAA AAAA", "This is a test item"};
private static String[ methodTableBValuesToWrite = {"AAAA", "AAAA", "AAAA AAAA", "slappy@mcgee.net"};
...
String response = service.methodAPIInsertV2(METHOD_COMPANY_NAME, METHOD_USER_NAME, METHOD_USER_PASSWORD, "", METHOD_TABLE_A_NAME, METHOD_TABLE_A_FIELDS_TO_WRITE, methodTableAValuesToWrite );
System.out.println(response);
response = service.methodAPIInsertV2(METHOD_COMPANY_NAME,METHOD_USER_NAME, METHOD_USER_PASSWORD, "", METHOD_TABLE_B_NAME, METHOD_TABLE_B_FIELDS_TO_WRITE, methodTableBValuesToWrite);
System.out.println(response);
My sysout calls show me:
<?xml version="1.0" encoding="windows-1252" ?><MethodAPI response = "Success" RecordID="2331" ></MethodAPI>
<?xml version="1.0" encoding="windows-1252" ?><MethodAPI response = "Cannot insert the value NULL into column 'TableARecordID', table 'xxx.dbo.TableB'; column does not allow nulls. INSERT fails.
The statement has been terminated." ></MethodAPI>
So it looks to me that the API is automatically inserting null into the linked field, and so my insert is failing. The field is required, and I can try removing that restriction if the field will be updated by a chron job or something at a later time. If not, there's still something missing in this operation. By the way, if I add a known good record ID from table A (I used 1) to the values array, I get a success message.