May 29, 20178 yr Hi I have a strange error when I try to sync from my iPad to my Server if I create a new record in a specific table 'Echanges' at the next sync I got this error... "Field ES_Echanges is missing. FileMaker Error Code 102..." The thing is ES_Echanges, is the name of the relationship in the easysync context, none of my fields are named close to that... I have triple checked my fields and the relationships - no clues Any idea ?
May 29, 20178 yr Are you sure you don't have a field with that name in the Server file? Which script throws the error?
May 29, 20178 yr Author Hi.. off course I'm sure I don't have this field... I have triple checked everything ;-) It's not my first Easy Sync implementation, I keep the 5 ES_fields for the process, EXCL_fileds for exclusion, and regular one I want to process... the script that returns the error is "Process Payload from Client" on the Host - looks like I have an error when it tries to write the new record on the EasySync_Payload_Details table in the EasySync_Payloads layout... I have several other tables working fines...
May 29, 20178 yr I figured it was the Process Payload from Client. Check the relationship in the EasySync TOG on the server. Maybe you forget the allow create?
May 29, 20178 yr Author it's not that / I have checked it's correct when I turn off the PSoS in settings, and run the debugger, around line 265, on Process Payload from Client I have set field by name [$table_name & "::" & $field_name;$field_value] and in the data viewer I have : $table_name = ES_Echanges that's good $field_name = ES_Echanges that's wrong this field doesn't even exists The payload sent from the iPad is propably wrong... and I still don't understand... Edited May 29, 20178 yr by yliqueur
May 29, 20178 yr Author I try to debug in the Process Payload from Client script - around line 230 "We skip the first value because it is really the table name that the record is from." and a variable $f set to a value 2... this $f variable is deleted between L264 and L267 when the script is running so at line 304 [$f = $f+1] , $f = 1 again and look for the first value in the list ... the name of the table ES_Echange...
May 29, 20178 yr Author when I run the script, in my data viewer, between 264 -267 $f deseapear... second guess, same script around 196 "assume we are going to update a record" seems to treat the record as an update and not a new record... seems like that in line 206 $ES_UTC_Time_Host : Evaluation ( $table_name & "::ES_UTC_Time" ) returns nothing, so $update_record = 1 the new record is treated as an update
May 29, 20178 yr 102 is the field missing error. It is being triggered. If your table_name is ES_Echanges then look at it. Print out the field list for both ES_Echanges tables and compare them.
May 29, 20178 yr Author both the host and the client have the exactly same fields list, same attribute (text=text, number=number...)... problem is not there, apparently a new record in this table is look like an update because the script can't evaluate the UTC time for the same table on the host
May 29, 20178 yr Author I fixed the problem for now - need more test - by replacing the $f variable by a $$f variable between lines 231 and the end of the loop line 312 in the Process Payload from Client script Edited May 29, 20178 yr by yliqueur
May 29, 20178 yr I think that you should step through the script (don't use PSOS) and check out the payload sent. I would assume that there is nothing wrong with the Tim's script (we all use it as shipped and have not had issues). So, imho, it's a data issue and since $table is needed, perhaps that's why the UTC isn't evaluating. It's mind-numbing, but with proper break points, you can see what's broken.
Create an account or sign in to comment