Smallworld 3.3

From fmepedia


This is a page of FAQ relating to the use of FME with Smallworld v3.3


Table of contents


Overview

Q) What is the general process for using FME and Smallworld 3.3?

A) Because of how Smallworld communicates with other applications you can’t import or export data directly using FME, what you need to do is install a Smallworld-FME interface and use that to carry out the translations.

Essentially you would use the Smallworld-FME Interface to create a workspace or mapping file, edit it in Workbench (or a text editor) then return to the Smallworld interface to execute the translation using the edited workspace/mapping file.

You could also create a workspace or mapping file from scratch, but this would be a lot harder because the schema would need to be manually defined.


Q) What do I need to install for FME to support Smallworld v3.3 data?

A) You need to install the Smallworld FME Interface - a set of Magik code created by GE.


Q) Where can I find the Magik code for the Smallworld v3.3 FME Interface?

A) On our FTP site at... ftp://ftp.safe.com/fme/smallworld/fme_magik_33.zip



Import and Export

Q) How do I use FME to export data from Smallworld 3.3?

A) In general you…

  1. Use the Smallworld-FME Interface to generate a workspace.
  2. Edit the workspace in FME Workbench
  3. Use the Smallworld-FME Interface to export using the workspace.


Q) How do I use FME to import data into Smallworld 3.3?

A) In general you…

  1. Generate a workspace using FME Workbench.
  2. Edit the workspace in FME Workbench
  3. Use the Smallworld-FME Interface to import using the workspace.



General FAQ

Q) Smallworld v3.3 doesn’t appear in the list of source formats in Workbench – what is wrong?

A) Smallworld isn’t in the list of source formats because you need to create such a workspace using the Smallworld-FME Interface. When you have done that then you will be able to edit it in Workbench.


Q) Can I use ‘Import Feature Type Definitions’ to create Smallworld v3.3 destination Feature Types?

A) No. You cannot import feature type definitions from Smallworld. You need to create those parts of the workspace using the Smallworld-FME Interface. Alternatively you can create object definitions in an existing workspace using Destination Data > Add Feature Type from the menubar.


Q) When using the v3.3 Smallworld-FME Interface do I need to convert workspaces to a Mapping File to run them?

A) No. When selecting the script to run, instead of using a file suffix of ".fme" use ".fmw".


Q) Does FME for Smallworld v3.3 use the Smallworld Data Marshalling module for faster data extraction from Smallworld?

A) No! However, the SpatialBiz plugin for Smallworld does use Data Marshalling and some internal data compression techniques to provide faster data extraction.



Resources

Q) Where can I find further information on Reading and Writing data for Smallworld v3.3?

A) You can find further information on a web page written by the Professional Services team (http://www.safe.com/services/customization/smallworld.htm).


Q) Where can I find FME for Smallworld v3.3 User Documentation?

A) You can find the documentation at... ftp://ftp.safe.com/fme/smallworld/fme_ge_smallworld33_user_docs.zip



Specific Error Messages

Q) When writing to Smallworld v3.3 I get the message... "Field count returned from FME is rediculously large" ...what does it mean?

A) The "rediculously large" error condition was added as a sanity check, presumably by someone who doesn't own a dictionary. What this message tells us is that at least one objects has more than 60,000 coordinate values. You have an object with great detail. You can increase the check on the fields to get pass the object with the large field counts.

If you do increase this value the packed string will become larger, this is going to use up more of your static space which will result in more garbage collects and a slow down to the overall translation process. So you may only want to increase this value when using large objects. You may also want to investigate why a particular object has so many coordinates.

Modify the latest code.

   _if .field_cnt > _self.max_count _then
   _if .field_cnt > 185668 _then
   condition.raise(:fme_exe_error, :what, "Field count returned from FME is rediculously large!")
   _else
   _global !maximum_collection_size!
   !maximum_collection_size! << (.field_cnt + 1)
   condition.raise(:fme_info,:string,
   write_string("Increasing vector size to ",
   !maximum_collection_size!))
   _endif
   _endif

You may get a TB saying something like the packed string is too large. Increase the size of the packed string with...

   Magik2> packed_string.define_shared_constant(:max_strings, 100, _false)
User Comments Add a new comment