Skip to main content

I have two sde databases representing different coordinate systems, both used for managing basemaps in a local coordinate system. I am trying to use a dynamic schema to merge those into a web mercator sde database. everything work fine except it adds what looks like the fme_type as a suffix to the featureclass name. Instead of Building I get Building_polygon.

Writer setttings:

Feature Class or Table Name: fme_feature_type

Geometry: From Schema Definition

Dynamic Properties box is checked.

Schema Sources: set to both source sde database readers

Schema Definition Name: Default from Feature Class or Table Name above

Clearly I am missing something... Please help. My only other alternative is a static schema process which I would rather not use. Is there any other information I should provide?

Aaron

Are you seeing other featureclasses created such as Building_polygon and another one (e.g Building_geom, building_line)? The reason I ask, is that if multiple geometry type are sent to an Esri database it creates these types of names, due the fact that featureclasses take only one type of geometry. Based on what you have said, it doesn't seem likely, but its worth ruling out.


As Todd says, it might be multiple geometry types. Each table only supports a single geometry type. If you have already created Building and inserted point features, then FME would automatically create Building_polygon if there were also polygons.

Can you put a GeometryFilter transformer in front and connect it up to see what geometries you have?


Is there any solution to this? I mean how to avoid writing fme_type suffixes in a Dynamic workflow.


Is there any solution to this? I mean how to avoid writing fme_type suffixes in a Dynamic workflow.

Hello @fikusas

As Mark suggested, this likely appears as a result of multiple geometries. Are you seeing multiple tables being created per geometry? For example: Table_polygon, Table_point etc.

 

Also, to confirm your source is two separate Geodatabases. Is that correct?

Hello @fikusas

As Mark suggested, this likely appears as a result of multiple geometries. Are you seeing multiple tables being created per geometry? For example: Table_polygon, Table_point etc.

 

Also, to confirm your source is two separate Geodatabases. Is that correct?

I'm reading three tables from SDE database (point, line and polygon). And yes, the output is table1_point, table2_line, table3_polygon.


I'm reading three tables from SDE database (point, line and polygon). And yes, the output is table1_point, table2_line, table3_polygon.

Hello @fikusas,

If you are reading 3 tables that have the geometry type appended to the name, then the output feature class is likely going to stay the same. If you want to change the fme_feature_type attribute(which contains the feature class name), you will likely have to perform some schema mapping. It is important to know, that each SDE Feature Class can only contain a single geometry type. As such if reading a point/line/polygon table, you will also have 3 output tables.

 

Are you able to share your workspace here?

Hello @fikusas,

If you are reading 3 tables that have the geometry type appended to the name, then the output feature class is likely going to stay the same. If you want to change the fme_feature_type attribute(which contains the feature class name), you will likely have to perform some schema mapping. It is important to know, that each SDE Feature Class can only contain a single geometry type. As such if reading a point/line/polygon table, you will also have 3 output tables.

 

Are you able to share your workspace here?

Hmm, I think it will be OK to have geometry type as suffix. Schema mapping is not worth the additional effort to solve this minor issue. Thanks!


0684Q00000ArLi2QAF.png

Example:

I read a Geopackage file with 5 tables of different geometries and i want to send it to my Oracle Spatial Database using SDE connectition.

 

Instructions:

-Exposing "fme_feature_type"

-Merge "fme_feature_type" from generic with "fme_feature_type_name" from schema

-Use this python caller

import fmeimport fmeobjects
class FeatureProcessor(object):    
def __init__(self):        
pass           
def input(self,feature):        
keys = feature.getAllAttributeNames()        
for key in keys:            
if "fme_geometry{" in key:                
feature.removeAttribute(key)       
for key in keys:
feature.setAttribute('fme_geometry{0}',feature.getAttribute('fme_geometry'))
self.pyoutput(feature)                     
def close(self):        
pass      

-Writer normal dynamic configs

 


Reply