Skip to main content

Writing data first time works well. If needed a new object is created in ArcGIS portal. But when try to insert the data (with or without a truncate) the next error i get. Can't find a similar problem on community.safe.com.

 

ArcGIS Portal Feature Service Writer: Writing features for layer/table 'DRD_O_SensordataWielwijk_FME3', with 91 inserts, 0 updates, and 0 deletes

Python Exception <Exception>: Second parameter to FMEException() must be a list of strings.

A fatal error has occurred. Check the logfile above for details

A fatal error has occurred. Check the logfile above for details

Translation FAILED with 2 error(s) and 0 warning(s) (91 feature(s) output)

Hi @dj_huisman​ 

It appears that you are running into an issue where the schema the writer is not matching the incoming attributes. Lets assume the writer schema is as below

Option 1 : Mis-match between attribute names

If you are using ArcGIS DataStore, it is possible that there is a mismatch between workspace(uppercase) and that on ArcGIS Portal(lowercase)

Resolution

In the workspace, Under the Writer drop-down menu, Click on Update FeatureTypes and connect to your existing feature service

In the workspace, right before the writer, add BulkAttributeRenamer

Option 2 : Use AttributeValidation to check schema validation

Background: When you run the workspace for the first time, the data is package in FileGeodatabase, and published to ArcGIS Portal. In this step, if there are any issues with schema, the server will handle and make exceptions. On subsequent runs, the data may fail as the requests are sent over to the server at run time.

Currently, there is an internal JIRA Issue, which should fix this problem.

Resolution:

Using AttributeValidator, you can confirm if all the data type on the writer are correct i.e.

If the Data type is Integer (Small or big)

If the Data type is a string(length), the incoming attributes are within the length.

If the process failed, you will need to use AttriubteManager to do the following

For Integer --

@Evaluate(@int64(@Value(north)))

@Evaluate(@int8(@Value(visiter_count)))

For Strings --

@Substring(@Value(notes),0,200)

@Substring(@Value(dog_park),0,1)


Reply