In the Runtime .NET API, I found a method named ImportGeodatabaseDeltaAsync.
Unfortunately, there is no documentation how to use this method in a full workflow. So I have to try many things.
The first parameter is
geodatabaseFileName
Type: System.String
The path and filename of geodatabase where delta is applied to.
It seems that it has to be a Runtime geodatabase. I could use my Runtime geodatabase anyway, which I have created with my Runtime client against an sync enabled ArcGIS Server (FeatureServer) service. So, this is no problem, as I could create it with the Runtime SDK method GenerateGeodatabase.
The second parameter is
deltaGeodatabaseFileName
Type: System.String
The path and filename of geodatabase where to import the delta from
This one could not be a normal Runtime geodatabase file, because you will get an exception in that case:
Esri.ArcGISRuntime.ArcGISRuntimeException: 'SQL error or missing database: no such table: GDB_DataChangesDatasets'
Obiviously the geodatase has a different structure.
I could not find any SDK functionality for creating a delta package, so I tried to create one directly from the REST API:
We created a replica first, added a new feature in the service and then called the synchronizeReplica operation. The result was a geodatabase file, which now has different schema as there exists some additional tables in it.
When using this geodatabase for the deltaGeodatabaseFileName Parameter, the ImportGeodatabaseDeltaAsync works.
My question now is:
- Is there a way to create the delta geodatabase file with Runtime SDK?
- As the synchronizeReplica REST operation is also used SyncGeodatabase SDK method, do I have to use some special parameters to generate it? But how?
- Could I also generate the delta geodatabase with a desktop/python tool?
- As first parameter (geodatabaseFileName), could I also use a desktop generated geodatabase (ArcGIS runtime content)?
And maybe adding a documentation for this workflow would be helpful, as I could not find anything about it.