#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! FME_PYTHON_VERSION 37 GUI IGNORE SourceDataset_XLSXR_1,XLSXR_IN_MANYFILE_XLSXR_1,XLSXR_IN_ADVANCED_XLSXR_1,XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_1,XLSXR_IN_READ_BLANK_AS_XLSXR_1,XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_1,XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_1,SourceDataset_XLSXR_2,XLSXR_IN_MANYFILE_XLSXR_2,XLSXR_IN_ADVANCED_XLSXR_2,XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_2,XLSXR_IN_READ_BLANK_AS_XLSXR_2,XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_2,XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_2,SourceDataset_CSV2_1,CSV2_IN_FIELDS_GROUP_CSV2_1,CSV2_IN_DELIMITER_CSV2_1,CSV2_IN_FIELD_NAMES_LINE_CSV2_1,CSV2_IN_DATA_START_LINE_CSV2_1,CSV2_IN_ADVANCED_GROUP_CSV2_1,CSV2_IN_FIELD_SEPARATION_GROUP_CSV2_1,CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_1,CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_1,CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_1,CSV2_IN_FIELD_NAMES_GROUP_CSV2_1,CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_1,CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_1,CSV2_IN_FIELD_VALUES_GROUP_CSV2_1,CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_1,CSV2_IN_ENCODING_GROUP_CSV2_1,CSV2_IN_ENCODING_CSV2_1,CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_1,CSV2_IN_SKIPPED_LINES_GROUP_CSV2_1,CSV2_IN_READ_SKIPPED_LINES_CSV2_1,CSV2_IN_NETWORK_AUTHENTICATION_CSV2_1,SourceDataset_XLSXR_3,XLSXR_IN_MANYFILE_XLSXR_3,XLSXR_IN_ADVANCED_XLSXR_3,XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_3,XLSXR_IN_READ_BLANK_AS_XLSXR_3,XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_3,XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_3,SourceDataset_XLSXR_4,XLSXR_IN_MANYFILE_XLSXR_4,XLSXR_IN_ADVANCED_XLSXR_4,XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_4,XLSXR_IN_READ_BLANK_AS_XLSXR_4,XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_4,XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_4,SourceDataset_POSTGRES_1,POSTGRES_IN_FME_CONNECTION_GROUP_POSTGRES_1,POSTGRES_IN_FME_GROUP_NAMED1_POSTGRES_1,POSTGRES_IN_WHERE_CLAUSE_POSTGRES_1,POSTGRES_IN_ADVANCED_POSTGRES_1,POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1,POSTGRES_IN_BEGIN_SQL_POSTGRES_1,POSTGRES_IN_END_SQL_POSTGRES_1,POSTGRES_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGRES_1,DestDataset_HTML_1 DEFAULT_MACRO SourceDataset_XLSXR $(FME_MF_DIR)APIDetail.xlsx GUI MULTIFILE SourceDataset_XLSXR Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|Excel_Workbook_2007(*.xlsx)|*.xlsx|Excel_Macro_Workbook(*.xlsm)|*.xlsm|Excel_Workbook_Pre_2007(*.xls)|*.xls|Compressed_Files(*.bz2;*.gz)|*.bz2;*.gz|Archive_Files(*.7z;*.7zip;*.rar;*.rvz;*.tar;*.tar.bz2;*.tar.gz;*.tgz;*.zip;*.zipx)|*.7z;*.7zip;*.rar;*.rvz;*.tar;*.tar.bz2;*.tar.gz;*.tgz;*.zip;*.zipx|All_files(*)|* Source Microsoft Excel File(s): DEFAULT_MACRO LHS_3 N GUI OPTIONAL TEXT_EDIT LHS_3 FME_SUPPORTSNUMERIC%YES Get All Content (Y/N): DEFAULT_MACRO SourceDataset_XLSXR_9 /Users/agd/OneDrive - Plaid Consulting/Webinar2-SurveyResponses.xlsx GUI MULTIFILE SourceDataset_XLSXR_9 Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|Excel_Workbook_2007(*.xlsx)|*.xlsx|Excel_Macro_Workbook(*.xlsm)|*.xlsm|Excel_Workbook_Pre_2007(*.xls)|*.xls|Compressed_Files(*.bz2;*.gz)|*.bz2;*.gz|Archive_Files(*.7z;*.7zip;*.rar;*.rvz;*.tar;*.tar.bz2;*.tar.gz;*.tgz;*.zip;*.zipx)|*.7z;*.7zip;*.rar;*.rvz;*.tar;*.tar.bz2;*.tar.gz;*.tgz;*.zip;*.zipx|All_files(*)|* Source Microsoft Excel File(s): DEFAULT_MACRO SourceDataset_CSV2 $(FME_MF_DIR)Data/USCensusNames2010/Names_2010Census.csv GUI MULTIFILE SourceDataset_CSV2 CSV/Compressed_CSV/TEXT_Files(*.csv;*.gz;*.txt)|*.csv;*.gz;*.txt|CSV_Files(*.csv)|*.csv|Compressed_CSV_Files(*.gz)|*.gz|Text_Files(*.txt)|*.txt|Compressed_Files(*.bz2;*.gz)|*.bz2;*.gz|Archive_Files(*.7z;*.7zip;*.rar;*.rvz;*.tar;*.tar.bz2;*.tar.gz;*.tgz;*.zip;*.zipx)|*.7z;*.7zip;*.rar;*.rvz;*.tar;*.tar.bz2;*.tar.gz;*.tgz;*.zip;*.zipx|All_Files|* Source CSV (Comma Separated Value) File(s): DEFAULT_MACRO SourceDataset_XLSXR_7 $(FME_MF_DIR)Data/Features.xlsx GUI MULTIFILE SourceDataset_XLSXR_7 Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|Excel_Workbook_2007(*.xlsx)|*.xlsx|Excel_Macro_Workbook(*.xlsm)|*.xlsm|Excel_Workbook_Pre_2007(*.xls)|*.xls|Compressed_Files(*.bz2;*.gz)|*.bz2;*.gz|Archive_Files(*.7z;*.7zip;*.rar;*.rvz;*.tar;*.tar.bz2;*.tar.gz;*.tgz;*.zip;*.zipx)|*.7z;*.7zip;*.rar;*.rvz;*.tar;*.tar.bz2;*.tar.gz;*.tgz;*.zip;*.zipx|All_files(*)|* Source Microsoft Excel File(s): DEFAULT_MACRO DestDataset_HTML /Users/agd/Desktop/test.html GUI FILENAME DestDataset_HTML HTML_Files(*.html)|*.html Destination Html File: DEFAULT_MACRO SourceDataset_XLSXR_6 /Users/agd/OneDrive - Plaid Consulting/Webinar2-SurveyResponses copy.xlsx GUI MULTIFILE SourceDataset_XLSXR_6 Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|Excel_Workbook_2007(*.xlsx)|*.xlsx|Excel_Macro_Workbook(*.xlsm)|*.xlsm|Excel_Workbook_Pre_2007(*.xls)|*.xls|Compressed_Files(*.bz2;*.gz)|*.bz2;*.gz|Archive_Files(*.7z;*.7zip;*.rar;*.rvz;*.tar;*.tar.bz2;*.tar.gz;*.tgz;*.zip;*.zipx)|*.7z;*.7zip;*.rar;*.rvz;*.tar;*.tar.bz2;*.tar.gz;*.tgz;*.zip;*.zipx|All_files(*)|* Source Microsoft Excel File(s): DEFAULT_MACRO Canvas_URL http://canvas.docker GUI URL Canvas_URL http%https Canvas Server URL: DEFAULT_MACRO Canvas_Key E07u4LFrrTEeF4uMsuS45Rzp0jwz9R4fsikEeyxinGUp8ehjPvjB6b1LctVTjgeF GUI TEXT Canvas_Key Canvas Developer Key: DEFAULT_MACRO SourceDataset_POSTGRES plaid.aws.postgis GUI NAMED_DB_CONNECTION_ENCODED SourceDataset_POSTGRES FMT:POSTGRES%FAMILY:PostgreSQL Connection: DEFAULT_MACRO Canvas_Site Plaid Consulting Inc. GUI TEXT Canvas_Site Canvas Site Name: DEFAULT_MACRO AtlassianAPI Atlassian API GUI IGNORE OPTIONAL NAMED_CONNECTION AtlassianAPI "HTTP Authentication" Enter Atlassian API Key: INCLUDE [ if {{$(SourceDataset_XLSXR)} == {}} { puts_real {Parameter 'SourceDataset_XLSXR' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(SourceDataset_XLSXR_9)} == {}} { puts_real {Parameter 'SourceDataset_XLSXR_9' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(SourceDataset_CSV2)} == {}} { puts_real {Parameter 'SourceDataset_CSV2' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(SourceDataset_XLSXR_7)} == {}} { puts_real {Parameter 'SourceDataset_XLSXR_7' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(DestDataset_HTML)} == {}} { puts_real {Parameter 'DestDataset_HTML' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(SourceDataset_XLSXR_6)} == {}} { puts_real {Parameter 'SourceDataset_XLSXR_6' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(Canvas_URL)} == {}} { puts_real {Parameter 'Canvas_URL' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(Canvas_Key)} == {}} { puts_real {Parameter 'Canvas_Key' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(SourceDataset_POSTGRES)} == {}} { puts_real {Parameter 'SourceDataset_POSTGRES' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(Canvas_Site)} == {}} { puts_real {Parameter 'Canvas_Site' must be given a value.}; exit 1; }; ] #! START_HEADER #! START_WB_HEADER READER_TYPE MULTI_READER MULTI_READER_TYPE{0} XLSXR MULTI_READER_KEYWORD{0} XLSXR_1 MULTI_READER_GEN_DIRECTIVES{0} SCHEMA,APIs0commaAPINamecommacharcomma21commacommacomma1commaAPIHostcommacharcomma30commacommacomma2commaAPIBasecommacharcomma19commacommacomma3commaAPIBaseURLcommacharcomma46commacomma1commacommacommaNOcommaNOcomma1commaquotesolidusUserssolidusagdsolidusPlaidspaceConsultingsolidusInternalspace-spaceDocumentssolidusWebinarssolidus20200723spaceFMEspaceinspaceEducationspace-spaceWebinarspace2solidusAPIDetail.xlsxquotecommaquote0comma0comma3comma2quotecommacommaNOcommaNOAPIEndPoints0commaAPINamecommacharcomma21commacommacomma1commaAPIEndPointcommacharcomma26commacommacomma2commaAPIEndPointDescriptioncommacharcomma46commacomma1commacommacommaNOcommaNOcomma1commacommaquote0comma0comma2comma8quotecommacommaNOcommaNO,MANYFILE,,USE_SCHEMA_OTHER_FILES,No,KEEP_SCHEMA_SETTINGS,YES,READ_BLANK_AS,Missing,XLSXR_EXPOSE_FORMAT_ATTRS,,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,CREATE_FEATURE_TABLES_FROM_DATA,Yes,EXPAND_MERGED_CELLS,Yes,EXPOSE_ATTRS_GROUP,,TABLELIST,APIsAPIEndPoints,UPDATE_FEATURE_TYPES,yes,SCAN_SCHEMA_IF_DYNAMIC,No,ADVANCED,,ALLOW_DOLLAR_SIGNS,YES,CASE_SENSITIVE_FEATURE_TYPES,YES,CONFIGURATION_DATASET,UsersagdPlaidConsultingInternal-DocumentsWebinars20200723FMEinEducation-Webinar2APIDetail.xlsx,EXCEL_COL_NAMES,YES,FORCE_DATETIME,NO,STRIP_SHEETNAME_SPACES,YES,_MERGE_SCHEMAS,YES MULTI_READER_TYPE{1} XLSXR MULTI_READER_KEYWORD{1} XLSXR_2 MULTI_READER_GEN_DIRECTIVES{1} SCHEMA,Form10commaIDcommanumbercomma2comma0commacomma1commaquoteStartspacetimequotecommadatetimecommacommacommacomma2commaquoteCompletionspacetimequotecommadatetimecommacommacommacomma3commaEmailcommacharcomma16commacommacomma4commaNamecommacharcomma18commacommacomma5commaquoteWhatspacecoursespacewouldspaceyouspacelikespacetospaceteach?spacePleasespaceenterspaceaspacedescriptivespacenamecommaspacesuchspaceasspace_IntrospacetospaceCalculus_quotecommacharcomma24commacommacomma6commaquoteThisspacequestionspaceisspaceaboutspacecompensationspaceforspaceteachingspaceonespacesectionspaceofspacethespacecourse.quotecommastringcommacommacommacomma7commaquoteHowspacemuchspacedospaceyouspacethinkspaceyouspace-should-spacegetspacepaidspacetospaceteachspaceonespacesectionspaceofspacethisspacecourse?quotecommacharcomma16commacommacomma8commaquoteHowspacemuchspacedospaceyouspacethinkspaceyouspacewouldspace-actually-spacegetspacepaidspacetospaceteachspaceonespacesectionspaceofspacethisspacecourse?quotecommacharcomma15commacomma1commacommacommaNOcommaNOcomma1commaquotesolidusUserssolidusagdsolidusOneDrivespace-spacePlaidspaceConsultingsolidusWebinar2-SurveyResponses.xlsxquotecommaquote0comma0comma8comma6quotecommaquoteSheet1comma_56F9DC9755BA473782653E2940F9commaForm1solidusTable1quotecommaNOcommaNO,MANYFILE,,USE_SCHEMA_OTHER_FILES,No,KEEP_SCHEMA_SETTINGS,YES,READ_BLANK_AS,Missing,XLSXR_EXPOSE_FORMAT_ATTRS,,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,CREATE_FEATURE_TABLES_FROM_DATA,Yes,EXPAND_MERGED_CELLS,Yes,EXPOSE_ATTRS_GROUP,,TABLELIST,Form1,UPDATE_FEATURE_TYPES,yes,SCAN_SCHEMA_IF_DYNAMIC,No,ADVANCED,,ALLOW_DOLLAR_SIGNS,YES,CASE_SENSITIVE_FEATURE_TYPES,YES,CONFIGURATION_DATASET,UsersagdOneDrive-PlaidConsultingWebinar2-SurveyResponses.xlsx,EXCEL_COL_NAMES,YES,FORCE_DATETIME,NO,STRIP_SHEETNAME_SPACES,YES,_MERGE_SCHEMAS,YES MULTI_READER_TYPE{2} CSV2 MULTI_READER_KEYWORD{2} CSV2_1 MULTI_READER_GEN_DIRECTIVES{2} SCHEMA,,PRESERVE_SOURCE_ENCODING,No,DELIMITER,auto,SCAN_MAX_ROWS,10000,FEATURE_TYPE_NAME,FORMAT_NAME,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,ENCODING,UTF-8,FIELD_NAMES_GROUP,,FIELD_SEPARATION_GROUP,,EXPOSE_ATTRS_GROUP,,FIELD_NAMES_LINE,1,READ_SKIPPED_LINES,No,FIELD_QUALIFIER_ESCAPE_CHARACTER,quote,FIELDS_GROUP,,SCAN_TYPES,Yes,TRIM_FIELD_NAME_QUALIFIERS,Yes,CASE_SENSITIVE_FIELD_NAMES,Yes,FIELD_QUALIFIER_CHARACTER,quote,ENFORCE_STRICT_SCHEMA,No,CHUNK_SIZE,100000,FIELD_VALUES_GROUP,,DATASET_GROUP,,ENCODING_GROUP,,USE_CUSTOM_SCHEMA,NO,SKIPPED_LINES_GROUP,,PREVIEW_PLACEHOLDER,,SCAN_ADDITIONAL_FIELDS,No,DATA_START_LINE,2,SCHEMA_GENERATION_GROUP,,TRIM_FIELD_VALUE_QUALIFIERS,Yes,SKIP_DUPLICATE_DELIMITERS,No,_MERGE_SCHEMAS,YES,ADVANCED_GROUP,,CSV2_EXPOSE_FORMAT_ATTRS, MULTI_READER_TYPE{3} XLSXR MULTI_READER_KEYWORD{3} XLSXR_3 MULTI_READER_GEN_DIRECTIVES{3} SCHEMA,FeatureRequests0commaFeaturecommacharcomma53commacommacomma1commaDescriptioncommacharcomma1876commacommacomma2commaquoteEstimatedspaceDevelopmentspaceTimequotecommanumbercomma3commaquotespace0quotecomma1commacommacommaNOcommaNOcomma1commaquotesolidusUserssolidusagdsolidusPlaidspaceConsultingsolidusInternalspace-spaceDocumentssolidusWebinarssolidus20200723spaceFMEspaceinspaceEducationspace-spaceWebinarspace2solidusDatasolidusFeatures.xlsxquotecommaquote0comma0comma2comma7quotecommacommaNOcommaNO,MANYFILE,,USE_SCHEMA_OTHER_FILES,No,KEEP_SCHEMA_SETTINGS,YES,READ_BLANK_AS,Missing,XLSXR_EXPOSE_FORMAT_ATTRS,,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,CREATE_FEATURE_TABLES_FROM_DATA,Yes,EXPAND_MERGED_CELLS,Yes,EXPOSE_ATTRS_GROUP,,TABLELIST,FeatureRequests,UPDATE_FEATURE_TYPES,yes,SCAN_SCHEMA_IF_DYNAMIC,No,ADVANCED,,ALLOW_DOLLAR_SIGNS,YES,CASE_SENSITIVE_FEATURE_TYPES,YES,CONFIGURATION_DATASET,UsersagdPlaidConsultingInternal-DocumentsWebinars20200723FMEinEducation-Webinar2DataFeatures.xlsx,EXCEL_COL_NAMES,YES,FORCE_DATETIME,NO,STRIP_SHEETNAME_SPACES,YES,_MERGE_SCHEMAS,YES MULTI_READER_TYPE{4} NULL MULTI_READER_FORMAT{4} XLSXR MULTI_READER_KEYWORD{4} XLSXR_4 MULTI_READER_GEN_DIRECTIVES{4} STRIP_SHEETNAME_SPACES,YES,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,TABLELIST,,READ_BLANK_AS,Missing,EXCEL_COL_NAMES,YES,FORCE_DATETIME,NO,ADVANCED,,MANYFILE,,SCAN_SCHEMA_IF_DYNAMIC,No,CREATE_FEATURE_TABLES_FROM_DATA,Yes,_MERGE_SCHEMAS,YES,CONFIGURATION_DATASET,,USE_SCHEMA_OTHER_FILES,No,XLSXR_EXPOSE_FORMAT_ATTRS,,ALLOW_DOLLAR_SIGNS,YES,KEEP_SCHEMA_SETTINGS,YES,CASE_SENSITIVE_FEATURE_TYPES,YES,EXPAND_MERGED_CELLS,Yes,EXPOSE_ATTRS_GROUP,,SCHEMA, MULTI_READER_TYPE{5} POSTGRES MULTI_READER_KEYWORD{5} POSTGRES_1 MULTI_READER_GEN_DIRECTIVES{5} ADVANCED,,_MERGE_SCHEMAS,YES,WHERE_CLAUSE,,BEGIN_SQL,,NAMED_CONNECTION,plaid.aws.postgis,SCHEMAS_FOR_TABLE_LISTING,public,READ_TIME_WITH_TIMEZONE,Yes,EXPOSE_ATTRS_GROUP,,POSTGRES_EXPOSE_FORMAT_ATTRS,,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,CREATE_FEATURE_TABLES_FROM_DATA,Yes,FEATURES_PER_FETCH,10000,END_SQL,,TABLELIST,public.SCBCRSEpublic.SFRSTCRpublic.SGBSTDNpublic.SIRASGNpublic.SSBSECT WRITER_TYPE MULTI_WRITER MULTI_WRITER_DATASET_ORDER BY_ID MULTI_WRITER_FIRST_WRITER_ID 0 MULTI_WRITER_TYPE{0} HTML MULTI_WRITER_KEYWORD{0} HTML_1 #! END_WB_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "XLSXR_1" #! END_WB_HEADER #! START_SOURCE_HEADER XLSXR XLSXR_1 # ============================================================================ # First get the dataset for the database. For Excel, it's the file name. # For now we'll use whatever they had when they generated this mapping file, # and not reprompt # The dataset this mapping file was generated from was: #! END_SOURCE_HEADER #! START_WB_HEADER DEFAULT_MACRO SourceDataset INCLUDE [ if {{$(SourceDataset)} != ""} { \ puts {DEFAULT_MACRO SourceDataset_XLSXR_1 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER XLSXR XLSXR_1 DEFAULT_MACRO SourceDataset_XLSXR_1 $(SourceDataset_XLSXR) GUI MULTIFILE SourceDataset_XLSXR_1 Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|Excel_Workbook_2007(*.xlsx)|*.xlsx|Excel_Macro_Workbook(*.xlsm)|*.xlsm|Excel_Workbook_Pre_2007(*.xls)|*.xls|All_files(*)|* Source Microsoft Excel File(s): #GUI GROUP TABLELIST Constraints # TABLELIST is not shown in GUI, but is required for infrastructure # to not show the Table List popup DEFAULT_MACRO XLSXR_IN_CONFIGURATION_DATASET_XLSXR_1 /Users/agd/Plaid Consulting/Internal - Documents/Webinars/20200723 FME in Education - Webinar 2/APIDetail.xlsx XLSXR_1_CONFIGURATION_DATASET "$(XLSXR_IN_CONFIGURATION_DATASET_XLSXR_1)" # Flag to switch from old naming scheme of col_1, col_2 etc. to a, b, etc. # To better match up with Excel files DEFAULT_MACRO XLSXR_IN_EXCEL_COL_NAMES_XLSXR_1 YES XLSXR_1_EXCEL_COL_NAMES "$(XLSXR_IN_EXCEL_COL_NAMES_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_FORCE_DATETIME_XLSXR_1 NO XLSXR_1_FORCE_DATETIME "$(XLSXR_IN_FORCE_DATETIME_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_MANYFILE_XLSXR_1 GUI OPTIONAL DISCLOSUREGROUP XLSXR_IN_MANYFILE_XLSXR_1 XLSXR_IN_USE_SCHEMA_OTHER_FILES Multiple File Parameters DEFAULT_MACRO XLSXR_IN_USE_SCHEMA_OTHER_FILES_XLSXR_1 No XLSXR_1_USE_SCHEMA_OTHER_FILES "$(XLSXR_IN_USE_SCHEMA_OTHER_FILES_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_ADVANCED_XLSXR_1 GUI OPTIONAL DISCLOSUREGROUP XLSXR_IN_ADVANCED_XLSXR_1 XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_1%XLSXR_IN_READ_BLANK_AS_XLSXR_1%XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_1 Advanced DEFAULT_MACRO XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_1 No XLSXR_1_SCAN_SCHEMA_IF_DYNAMIC "$(XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_1)" GUI OPTIONAL CHECKBOX XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_1 Yes%No Scan Schema in Dynamic Workflow: DEFAULT_MACRO XLSXR_IN_READ_BLANK_AS_XLSXR_1 Missing XLSXR_1_READ_BLANK_AS "$(XLSXR_IN_READ_BLANK_AS_XLSXR_1)" GUI CHOICE XLSXR_IN_READ_BLANK_AS_XLSXR_1 Missing%Null Read blank cells as: DEFAULT_MACRO XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_1 Yes XLSXR_1_EXPAND_MERGED_CELLS "$(XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_1)" GUI OPTIONAL CHECKBOX XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_1 Yes%No Expand Merged Cells: DEFAULT_MACRO XLSXR_IN_EXPOSE_ATTRS_GROUP_XLSXR_1 XLSXR_1_EXPOSE_ATTRS_GROUP "$(XLSXR_IN_EXPOSE_ATTRS_GROUP_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_XLSXR_1 Yes XLSXR_1_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(XLSXR_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_CASE_SENSITIVE_FEATURE_TYPES_XLSXR_1 YES XLSXR_1_CASE_SENSITIVE_FEATURE_TYPES "$(XLSXR_IN_CASE_SENSITIVE_FEATURE_TYPES_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_ALLOW_DOLLAR_SIGNS_XLSXR_1 YES XLSXR_1_ALLOW_DOLLAR_SIGNS "$(XLSXR_IN_ALLOW_DOLLAR_SIGNS_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_CREATE_FEATURE_TABLES_FROM_DATA_XLSXR_1 Yes XLSXR_1_CREATE_FEATURE_TABLES_FROM_DATA "$(XLSXR_IN_CREATE_FEATURE_TABLES_FROM_DATA_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_STRIP_SHEETNAME_SPACES_XLSXR_1 YES XLSXR_1_STRIP_SHEETNAME_SPACES "$(XLSXR_IN_STRIP_SHEETNAME_SPACES_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_KEEP_SCHEMA_SETTINGS_XLSXR_1 YES XLSXR_1_KEEP_SCHEMA_SETTINGS "$(XLSXR_IN_KEEP_SCHEMA_SETTINGS_XLSXR_1)" # =========================================================================== DEFAULT_MACRO XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_1 XLSXR_1_NETWORK_AUTHENTICATION "$(XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_1)" GUI OPTIONAL AUTHENTICATOR XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # ============================================================================ DEFAULT_MACRO XLSXR_IN_ATTRIBUTE_READING_XLSXR_1 DEFLINE XLSXR_1_ATTRIBUTE_READING "$(XLSXR_IN_ATTRIBUTE_READING_XLSXR_1)" # ============================================================================ XLSXR_1_GENERATE_FME_BUILD_NUM 20594 XLSXR_1_DATASET "$(SourceDataset_XLSXR_1)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "XLSXR_2" #! END_WB_HEADER #! START_SOURCE_HEADER XLSXR XLSXR_2 # ============================================================================ # First get the dataset for the database. For Excel, it's the file name. # For now we'll use whatever they had when they generated this mapping file, # and not reprompt # The dataset this mapping file was generated from was: #! END_SOURCE_HEADER #! START_WB_HEADER DEFAULT_MACRO SourceDataset INCLUDE [ if {{$(SourceDataset)} != ""} { \ puts {DEFAULT_MACRO SourceDataset_XLSXR_2 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER XLSXR XLSXR_2 DEFAULT_MACRO SourceDataset_XLSXR_2 $(SourceDataset_XLSXR_9) GUI MULTIFILE SourceDataset_XLSXR_2 Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|Excel_Workbook_2007(*.xlsx)|*.xlsx|Excel_Macro_Workbook(*.xlsm)|*.xlsm|Excel_Workbook_Pre_2007(*.xls)|*.xls|All_files(*)|* Source Microsoft Excel File(s): #GUI GROUP TABLELIST Constraints # TABLELIST is not shown in GUI, but is required for infrastructure # to not show the Table List popup DEFAULT_MACRO XLSXR_IN_CONFIGURATION_DATASET_XLSXR_2 /Users/agd/OneDrive - Plaid Consulting/Webinar2-SurveyResponses.xlsx XLSXR_2_CONFIGURATION_DATASET "$(XLSXR_IN_CONFIGURATION_DATASET_XLSXR_2)" # Flag to switch from old naming scheme of col_1, col_2 etc. to a, b, etc. # To better match up with Excel files DEFAULT_MACRO XLSXR_IN_EXCEL_COL_NAMES_XLSXR_2 YES XLSXR_2_EXCEL_COL_NAMES "$(XLSXR_IN_EXCEL_COL_NAMES_XLSXR_2)" DEFAULT_MACRO XLSXR_IN_FORCE_DATETIME_XLSXR_2 NO XLSXR_2_FORCE_DATETIME "$(XLSXR_IN_FORCE_DATETIME_XLSXR_2)" DEFAULT_MACRO XLSXR_IN_MANYFILE_XLSXR_2 GUI OPTIONAL DISCLOSUREGROUP XLSXR_IN_MANYFILE_XLSXR_2 XLSXR_IN_USE_SCHEMA_OTHER_FILES Multiple File Parameters DEFAULT_MACRO XLSXR_IN_USE_SCHEMA_OTHER_FILES_XLSXR_2 No XLSXR_2_USE_SCHEMA_OTHER_FILES "$(XLSXR_IN_USE_SCHEMA_OTHER_FILES_XLSXR_2)" DEFAULT_MACRO XLSXR_IN_ADVANCED_XLSXR_2 GUI OPTIONAL DISCLOSUREGROUP XLSXR_IN_ADVANCED_XLSXR_2 XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_2%XLSXR_IN_READ_BLANK_AS_XLSXR_2%XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_2 Advanced DEFAULT_MACRO XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_2 No XLSXR_2_SCAN_SCHEMA_IF_DYNAMIC "$(XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_2)" GUI OPTIONAL CHECKBOX XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_2 Yes%No Scan Schema in Dynamic Workflow: DEFAULT_MACRO XLSXR_IN_READ_BLANK_AS_XLSXR_2 Missing XLSXR_2_READ_BLANK_AS "$(XLSXR_IN_READ_BLANK_AS_XLSXR_2)" GUI CHOICE XLSXR_IN_READ_BLANK_AS_XLSXR_2 Missing%Null Read blank cells as: DEFAULT_MACRO XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_2 Yes XLSXR_2_EXPAND_MERGED_CELLS "$(XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_2)" GUI OPTIONAL CHECKBOX XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_2 Yes%No Expand Merged Cells: DEFAULT_MACRO XLSXR_IN_EXPOSE_ATTRS_GROUP_XLSXR_2 XLSXR_2_EXPOSE_ATTRS_GROUP "$(XLSXR_IN_EXPOSE_ATTRS_GROUP_XLSXR_2)" DEFAULT_MACRO XLSXR_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_XLSXR_2 Yes XLSXR_2_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(XLSXR_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_XLSXR_2)" DEFAULT_MACRO XLSXR_IN_CASE_SENSITIVE_FEATURE_TYPES_XLSXR_2 YES XLSXR_2_CASE_SENSITIVE_FEATURE_TYPES "$(XLSXR_IN_CASE_SENSITIVE_FEATURE_TYPES_XLSXR_2)" DEFAULT_MACRO XLSXR_IN_ALLOW_DOLLAR_SIGNS_XLSXR_2 YES XLSXR_2_ALLOW_DOLLAR_SIGNS "$(XLSXR_IN_ALLOW_DOLLAR_SIGNS_XLSXR_2)" DEFAULT_MACRO XLSXR_IN_CREATE_FEATURE_TABLES_FROM_DATA_XLSXR_2 Yes XLSXR_2_CREATE_FEATURE_TABLES_FROM_DATA "$(XLSXR_IN_CREATE_FEATURE_TABLES_FROM_DATA_XLSXR_2)" DEFAULT_MACRO XLSXR_IN_STRIP_SHEETNAME_SPACES_XLSXR_2 YES XLSXR_2_STRIP_SHEETNAME_SPACES "$(XLSXR_IN_STRIP_SHEETNAME_SPACES_XLSXR_2)" DEFAULT_MACRO XLSXR_IN_KEEP_SCHEMA_SETTINGS_XLSXR_2 YES XLSXR_2_KEEP_SCHEMA_SETTINGS "$(XLSXR_IN_KEEP_SCHEMA_SETTINGS_XLSXR_2)" # =========================================================================== DEFAULT_MACRO XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_2 XLSXR_2_NETWORK_AUTHENTICATION "$(XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_2)" GUI OPTIONAL AUTHENTICATOR XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_2 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # ============================================================================ DEFAULT_MACRO XLSXR_IN_ATTRIBUTE_READING_XLSXR_2 DEFLINE XLSXR_2_ATTRIBUTE_READING "$(XLSXR_IN_ATTRIBUTE_READING_XLSXR_2)" # ============================================================================ XLSXR_2_GENERATE_FME_BUILD_NUM 20594 XLSXR_2_DATASET "$(SourceDataset_XLSXR_2)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "CSV2_1" #! END_WB_HEADER #! START_SOURCE_HEADER CSV2 CSV2_1 # ===================================================================== # The following GUI line prompts for a file to be used as the source CSV file. # The user input is stored in a macro, which is then used to define # the dataset to be read. # The dataset this mapping file was generated from was: #! END_SOURCE_HEADER #! START_WB_HEADER DEFAULT_MACRO SourceDataset INCLUDE [ if {{$(SourceDataset)} != ""} { \ puts {DEFAULT_MACRO SourceDataset_CSV2_1 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER CSV2 CSV2_1 DEFAULT_MACRO SourceDataset_CSV2_1 $(SourceDataset_CSV2) GUI MULTIFILE SourceDataset_CSV2_1 CSV/Compressed_CSV/TEXT_Files(*.csv;*.gz;*.txt)|*.csv;*.gz;*.txt|CSV_Files(*.csv)|*.csv|Compressed_CSV_Files(*.gz)|*.gz|Text_Files(*.txt)|*.txt|All_Files|* Source CSV (Comma Separated Value) File(s): DEFAULT_MACRO CSV2_IN_FEATURE_TYPE_NAME_CSV2_1 FORMAT_NAME CSV2_1_FEATURE_TYPE_NAME "$(CSV2_IN_FEATURE_TYPE_NAME_CSV2_1)" DEFAULT_MACRO CSV2_IN_FIELDS_GROUP_CSV2_1 GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_FIELDS_GROUP_CSV2_1 CSV2_IN_DELIMITER_CSV2_1%CSV2_IN_FIELD_NAMES_LINE_CSV2_1%CSV2_IN_DATA_START_LINE_CSV2_1 Fields DEFAULT_MACRO CSV2_IN_DELIMITER_CSV2_1 auto CSV2_1_DELIMITER "$(CSV2_IN_DELIMITER_CSV2_1)" GUI STRING_OR_CHOICE_ENCODED CSV2_IN_DELIMITER_CSV2_1 auto%,%;%|%space%tab Delimiter Character: DEFAULT_MACRO CSV2_IN_FIELD_NAMES_LINE_CSV2_1 1 CSV2_1_FIELD_NAMES_LINE "$(CSV2_IN_FIELD_NAMES_LINE_CSV2_1)" GUI OPTIONAL INT_OR_CHOICE CSV2_IN_FIELD_NAMES_LINE_CSV2_1 None%1%2%3%4%5 Field Names Line: GUI LOOKUP CSV2_IN_FIELD_NAMES_LINE_CSV2_1 None, DEFAULT_MACRO CSV2_IN_DATA_START_LINE_CSV2_1 2 CSV2_1_DATA_START_LINE "$(CSV2_IN_DATA_START_LINE_CSV2_1)" GUI RANGE_SLIDER CSV2_IN_DATA_START_LINE_CSV2_1 1%MAX%0 Data Start Line: DEFAULT_MACRO CSV2_IN_ADVANCED_GROUP_CSV2_1 GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_ADVANCED_GROUP_CSV2_1 FME_DISCLOSURE_CLOSED%CSV2_IN_FIELD_SEPARATION_GROUP_CSV2_1%CSV2_IN_FIELD_NAMES_GROUP_CSV2_1%CSV2_IN_FIELD_VALUES_GROUP_CSV2_1%CSV2_IN_ENCODING_GROUP_CSV2_1%CSV2_IN_SKIPPED_LINES_GROUP_CSV2_1%CSV2_IN_SCHEMA_GENERATION_GROUP Advanced DEFAULT_MACRO CSV2_IN_FIELD_SEPARATION_GROUP_CSV2_1 GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_FIELD_SEPARATION_GROUP_CSV2_1 FME_DISCLOSURE_CLOSED%CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_1%CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_1%CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_1 Field Separation DEFAULT_MACRO CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_1 No CSV2_1_SKIP_DUPLICATE_DELIMITERS "$(CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_1)" GUI CHOICE CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_1 Yes%No Skip Duplicate Delimiters: DEFAULT_MACRO CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_1 CSV2_1_FIELD_QUALIFIER_CHARACTER "$(CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_1)" GUI OPTIONAL STRING_ENCODED CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_1 Field Qualifier Character: DEFAULT_MACRO CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_1 CSV2_1_FIELD_QUALIFIER_ESCAPE_CHARACTER "$(CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_1)" GUI OPTIONAL STRING_ENCODED CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_1 Field Qualifier Escape Character: DEFAULT_MACRO CSV2_IN_FIELD_NAMES_GROUP_CSV2_1 GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_FIELD_NAMES_GROUP_CSV2_1 FME_DISCLOSURE_CLOSED%CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_1%CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_1 Field Names DEFAULT_MACRO CSV2_IN_TRIM_FIELD_NAME_QUALIFIERS_CSV2_1 Yes CSV2_1_TRIM_FIELD_NAME_QUALIFIERS "$(CSV2_IN_TRIM_FIELD_NAME_QUALIFIERS_CSV2_1)" DEFAULT_MACRO CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_1 Yes CSV2_1_CASE_SENSITIVE_FIELD_NAMES "$(CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_1)" GUI CHOICE CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_1 Yes%No Case Sensitive Field Names: DEFAULT_MACRO CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_1 No CSV2_1_ENFORCE_STRICT_SCHEMA "$(CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_1)" GUI CHOICE CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_1 Yes%No Enforce Strict Schema: DEFAULT_MACRO CSV2_IN_FIELD_VALUES_GROUP_CSV2_1 GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_FIELD_VALUES_GROUP_CSV2_1 FME_DISCLOSURE_CLOSED%CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_1 Field Values DEFAULT_MACRO CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_1 Yes CSV2_1_TRIM_FIELD_VALUE_QUALIFIERS "$(CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_1)" GUI CHOICE CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_1 Yes%No Trim Field Qualifier Characters: DEFAULT_MACRO CSV2_IN_ENCODING_GROUP_CSV2_1 GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_ENCODING_GROUP_CSV2_1 FME_DISCLOSURE_CLOSED%CSV2_IN_ENCODING_CSV2_1%CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_1 Encoding DEFAULT_MACRO CSV2_IN_ENCODING_CSV2_1 UTF-8 CSV2_1_ENCODING "$(CSV2_IN_ENCODING_CSV2_1)" GUI STRING_OR_ENCODING CSV2_IN_ENCODING_CSV2_1 fme-system%* Character Encoding: DEFAULT_MACRO CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_1 No CSV2_1_PRESERVE_SOURCE_ENCODING "$(CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_1)" GUI CHOICE CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_1 Yes%No Preserve Source Encoding: DEFAULT_MACRO CSV2_IN_SKIPPED_LINES_GROUP_CSV2_1 GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_SKIPPED_LINES_GROUP_CSV2_1 FME_DISCLOSURE_CLOSED%CSV2_IN_READ_SKIPPED_LINES_CSV2_1 Skipped Lines DEFAULT_MACRO CSV2_IN_READ_SKIPPED_LINES_CSV2_1 No CSV2_1_READ_SKIPPED_LINES "$(CSV2_IN_READ_SKIPPED_LINES_CSV2_1)" GUI CHOICE CSV2_IN_READ_SKIPPED_LINES_CSV2_1 Yes%No Read Skipped Lines: DEFAULT_MACRO CSV2_IN_SCAN_MAX_ROWS_CSV2_1 10000 CSV2_1_SCAN_MAX_ROWS "$(CSV2_IN_SCAN_MAX_ROWS_CSV2_1)" DEFAULT_MACRO CSV2_IN_SCAN_TYPES_CSV2_1 Yes CSV2_1_SCAN_TYPES "$(CSV2_IN_SCAN_TYPES_CSV2_1)" DEFAULT_MACRO CSV2_IN_SCAN_ADDITIONAL_FIELDS_CSV2_1 No CSV2_1_SCAN_ADDITIONAL_FIELDS "$(CSV2_IN_SCAN_ADDITIONAL_FIELDS_CSV2_1)" DEFAULT_MACRO CSV2_IN_EXPOSE_ATTRS_GROUP_CSV2_1 CSV2_1_EXPOSE_ATTRS_GROUP "$(CSV2_IN_EXPOSE_ATTRS_GROUP_CSV2_1)" DEFAULT_MACRO CSV2_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_CSV2_1 Yes CSV2_1_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(CSV2_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_CSV2_1)" DEFAULT_MACRO CSV2_IN_CHUNK_SIZE_CSV2_1 100000 CSV2_1_CHUNK_SIZE "$(CSV2_IN_CHUNK_SIZE_CSV2_1)" # =========================================================================== DEFAULT_MACRO CSV2_IN_NETWORK_AUTHENTICATION_CSV2_1 CSV2_1_NETWORK_AUTHENTICATION "$(CSV2_IN_NETWORK_AUTHENTICATION_CSV2_1)" GUI OPTIONAL AUTHENTICATOR CSV2_IN_NETWORK_AUTHENTICATION_CSV2_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # ============================================================================ DEFAULT_MACRO CSV2_IN_ATTRIBUTE_READING_CSV2_1 DEFLINE CSV2_1_ATTRIBUTE_READING "$(CSV2_IN_ATTRIBUTE_READING_CSV2_1)" # ============================================================================ CSV2_1_GENERATE_FME_BUILD_NUM 20594 CSV2_1_DATASET "$(SourceDataset_CSV2_1)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "XLSXR_3" #! END_WB_HEADER #! START_SOURCE_HEADER XLSXR XLSXR_3 # ============================================================================ # First get the dataset for the database. For Excel, it's the file name. # For now we'll use whatever they had when they generated this mapping file, # and not reprompt # The dataset this mapping file was generated from was: #! END_SOURCE_HEADER #! START_WB_HEADER DEFAULT_MACRO SourceDataset INCLUDE [ if {{$(SourceDataset)} != ""} { \ puts {DEFAULT_MACRO SourceDataset_XLSXR_3 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER XLSXR XLSXR_3 DEFAULT_MACRO SourceDataset_XLSXR_3 $(SourceDataset_XLSXR_7) GUI MULTIFILE SourceDataset_XLSXR_3 Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|Excel_Workbook_2007(*.xlsx)|*.xlsx|Excel_Macro_Workbook(*.xlsm)|*.xlsm|Excel_Workbook_Pre_2007(*.xls)|*.xls|All_files(*)|* Source Microsoft Excel File(s): #GUI GROUP TABLELIST Constraints # TABLELIST is not shown in GUI, but is required for infrastructure # to not show the Table List popup DEFAULT_MACRO XLSXR_IN_CONFIGURATION_DATASET_XLSXR_3 /Users/agd/Plaid Consulting/Internal - Documents/Webinars/20200723 FME in Education - Webinar 2/Data/Features.xlsx XLSXR_3_CONFIGURATION_DATASET "$(XLSXR_IN_CONFIGURATION_DATASET_XLSXR_3)" # Flag to switch from old naming scheme of col_1, col_2 etc. to a, b, etc. # To better match up with Excel files DEFAULT_MACRO XLSXR_IN_EXCEL_COL_NAMES_XLSXR_3 YES XLSXR_3_EXCEL_COL_NAMES "$(XLSXR_IN_EXCEL_COL_NAMES_XLSXR_3)" DEFAULT_MACRO XLSXR_IN_FORCE_DATETIME_XLSXR_3 NO XLSXR_3_FORCE_DATETIME "$(XLSXR_IN_FORCE_DATETIME_XLSXR_3)" DEFAULT_MACRO XLSXR_IN_MANYFILE_XLSXR_3 GUI OPTIONAL DISCLOSUREGROUP XLSXR_IN_MANYFILE_XLSXR_3 XLSXR_IN_USE_SCHEMA_OTHER_FILES Multiple File Parameters DEFAULT_MACRO XLSXR_IN_USE_SCHEMA_OTHER_FILES_XLSXR_3 No XLSXR_3_USE_SCHEMA_OTHER_FILES "$(XLSXR_IN_USE_SCHEMA_OTHER_FILES_XLSXR_3)" DEFAULT_MACRO XLSXR_IN_ADVANCED_XLSXR_3 GUI OPTIONAL DISCLOSUREGROUP XLSXR_IN_ADVANCED_XLSXR_3 XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_3%XLSXR_IN_READ_BLANK_AS_XLSXR_3%XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_3 Advanced DEFAULT_MACRO XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_3 No XLSXR_3_SCAN_SCHEMA_IF_DYNAMIC "$(XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_3)" GUI OPTIONAL CHECKBOX XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_3 Yes%No Scan Schema in Dynamic Workflow: DEFAULT_MACRO XLSXR_IN_READ_BLANK_AS_XLSXR_3 Missing XLSXR_3_READ_BLANK_AS "$(XLSXR_IN_READ_BLANK_AS_XLSXR_3)" GUI CHOICE XLSXR_IN_READ_BLANK_AS_XLSXR_3 Missing%Null Read blank cells as: DEFAULT_MACRO XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_3 Yes XLSXR_3_EXPAND_MERGED_CELLS "$(XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_3)" GUI OPTIONAL CHECKBOX XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_3 Yes%No Expand Merged Cells: DEFAULT_MACRO XLSXR_IN_EXPOSE_ATTRS_GROUP_XLSXR_3 XLSXR_3_EXPOSE_ATTRS_GROUP "$(XLSXR_IN_EXPOSE_ATTRS_GROUP_XLSXR_3)" DEFAULT_MACRO XLSXR_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_XLSXR_3 Yes XLSXR_3_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(XLSXR_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_XLSXR_3)" DEFAULT_MACRO XLSXR_IN_CASE_SENSITIVE_FEATURE_TYPES_XLSXR_3 YES XLSXR_3_CASE_SENSITIVE_FEATURE_TYPES "$(XLSXR_IN_CASE_SENSITIVE_FEATURE_TYPES_XLSXR_3)" DEFAULT_MACRO XLSXR_IN_ALLOW_DOLLAR_SIGNS_XLSXR_3 YES XLSXR_3_ALLOW_DOLLAR_SIGNS "$(XLSXR_IN_ALLOW_DOLLAR_SIGNS_XLSXR_3)" DEFAULT_MACRO XLSXR_IN_CREATE_FEATURE_TABLES_FROM_DATA_XLSXR_3 Yes XLSXR_3_CREATE_FEATURE_TABLES_FROM_DATA "$(XLSXR_IN_CREATE_FEATURE_TABLES_FROM_DATA_XLSXR_3)" DEFAULT_MACRO XLSXR_IN_STRIP_SHEETNAME_SPACES_XLSXR_3 YES XLSXR_3_STRIP_SHEETNAME_SPACES "$(XLSXR_IN_STRIP_SHEETNAME_SPACES_XLSXR_3)" DEFAULT_MACRO XLSXR_IN_KEEP_SCHEMA_SETTINGS_XLSXR_3 YES XLSXR_3_KEEP_SCHEMA_SETTINGS "$(XLSXR_IN_KEEP_SCHEMA_SETTINGS_XLSXR_3)" # =========================================================================== DEFAULT_MACRO XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_3 XLSXR_3_NETWORK_AUTHENTICATION "$(XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_3)" GUI OPTIONAL AUTHENTICATOR XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_3 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # ============================================================================ DEFAULT_MACRO XLSXR_IN_ATTRIBUTE_READING_XLSXR_3 DEFLINE XLSXR_3_ATTRIBUTE_READING "$(XLSXR_IN_ATTRIBUTE_READING_XLSXR_3)" # ============================================================================ XLSXR_3_GENERATE_FME_BUILD_NUM 20594 XLSXR_3_DATASET "$(SourceDataset_XLSXR_3)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "XLSXR_4" #! END_WB_HEADER #! START_SOURCE_HEADER XLSXR XLSXR_4 # ============================================================================ # First get the dataset for the database. For Excel, it's the file name. # For now we'll use whatever they had when they generated this mapping file, # and not reprompt # The dataset this mapping file was generated from was: #! END_SOURCE_HEADER #! START_WB_HEADER DEFAULT_MACRO SourceDataset INCLUDE [ if {{$(SourceDataset)} != ""} { \ puts {DEFAULT_MACRO SourceDataset_XLSXR_4 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER XLSXR XLSXR_4 DEFAULT_MACRO SourceDataset_XLSXR_4 $(SourceDataset_XLSXR_6) GUI MULTIFILE SourceDataset_XLSXR_4 Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|Excel_Workbook_2007(*.xlsx)|*.xlsx|Excel_Macro_Workbook(*.xlsm)|*.xlsm|Excel_Workbook_Pre_2007(*.xls)|*.xls|All_files(*)|* Source Microsoft Excel File(s): #GUI GROUP TABLELIST Constraints # TABLELIST is not shown in GUI, but is required for infrastructure # to not show the Table List popup DEFAULT_MACRO XLSXR_IN_CONFIGURATION_DATASET_XLSXR_4 XLSXR_4_CONFIGURATION_DATASET "$(XLSXR_IN_CONFIGURATION_DATASET_XLSXR_4)" # Flag to switch from old naming scheme of col_1, col_2 etc. to a, b, etc. # To better match up with Excel files DEFAULT_MACRO XLSXR_IN_EXCEL_COL_NAMES_XLSXR_4 YES XLSXR_4_EXCEL_COL_NAMES "$(XLSXR_IN_EXCEL_COL_NAMES_XLSXR_4)" DEFAULT_MACRO XLSXR_IN_FORCE_DATETIME_XLSXR_4 NO XLSXR_4_FORCE_DATETIME "$(XLSXR_IN_FORCE_DATETIME_XLSXR_4)" DEFAULT_MACRO XLSXR_IN_MANYFILE_XLSXR_4 GUI OPTIONAL DISCLOSUREGROUP XLSXR_IN_MANYFILE_XLSXR_4 XLSXR_IN_USE_SCHEMA_OTHER_FILES Multiple File Parameters DEFAULT_MACRO XLSXR_IN_USE_SCHEMA_OTHER_FILES_XLSXR_4 No XLSXR_4_USE_SCHEMA_OTHER_FILES "$(XLSXR_IN_USE_SCHEMA_OTHER_FILES_XLSXR_4)" DEFAULT_MACRO XLSXR_IN_ADVANCED_XLSXR_4 GUI OPTIONAL DISCLOSUREGROUP XLSXR_IN_ADVANCED_XLSXR_4 XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_4%XLSXR_IN_READ_BLANK_AS_XLSXR_4%XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_4 Advanced DEFAULT_MACRO XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_4 No XLSXR_4_SCAN_SCHEMA_IF_DYNAMIC "$(XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_4)" GUI OPTIONAL CHECKBOX XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_4 Yes%No Scan Schema in Dynamic Workflow: DEFAULT_MACRO XLSXR_IN_READ_BLANK_AS_XLSXR_4 Missing XLSXR_4_READ_BLANK_AS "$(XLSXR_IN_READ_BLANK_AS_XLSXR_4)" GUI CHOICE XLSXR_IN_READ_BLANK_AS_XLSXR_4 Missing%Null Read blank cells as: DEFAULT_MACRO XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_4 Yes XLSXR_4_EXPAND_MERGED_CELLS "$(XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_4)" GUI OPTIONAL CHECKBOX XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_4 Yes%No Expand Merged Cells: DEFAULT_MACRO XLSXR_IN_EXPOSE_ATTRS_GROUP_XLSXR_4 XLSXR_4_EXPOSE_ATTRS_GROUP "$(XLSXR_IN_EXPOSE_ATTRS_GROUP_XLSXR_4)" DEFAULT_MACRO XLSXR_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_XLSXR_4 Yes XLSXR_4_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(XLSXR_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_XLSXR_4)" DEFAULT_MACRO XLSXR_IN_CASE_SENSITIVE_FEATURE_TYPES_XLSXR_4 YES XLSXR_4_CASE_SENSITIVE_FEATURE_TYPES "$(XLSXR_IN_CASE_SENSITIVE_FEATURE_TYPES_XLSXR_4)" DEFAULT_MACRO XLSXR_IN_ALLOW_DOLLAR_SIGNS_XLSXR_4 YES XLSXR_4_ALLOW_DOLLAR_SIGNS "$(XLSXR_IN_ALLOW_DOLLAR_SIGNS_XLSXR_4)" DEFAULT_MACRO XLSXR_IN_CREATE_FEATURE_TABLES_FROM_DATA_XLSXR_4 Yes XLSXR_4_CREATE_FEATURE_TABLES_FROM_DATA "$(XLSXR_IN_CREATE_FEATURE_TABLES_FROM_DATA_XLSXR_4)" DEFAULT_MACRO XLSXR_IN_STRIP_SHEETNAME_SPACES_XLSXR_4 YES XLSXR_4_STRIP_SHEETNAME_SPACES "$(XLSXR_IN_STRIP_SHEETNAME_SPACES_XLSXR_4)" DEFAULT_MACRO XLSXR_IN_KEEP_SCHEMA_SETTINGS_XLSXR_4 YES XLSXR_4_KEEP_SCHEMA_SETTINGS "$(XLSXR_IN_KEEP_SCHEMA_SETTINGS_XLSXR_4)" # =========================================================================== DEFAULT_MACRO XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_4 XLSXR_4_NETWORK_AUTHENTICATION "$(XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_4)" GUI OPTIONAL AUTHENTICATOR XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_4 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # ============================================================================ DEFAULT_MACRO XLSXR_IN_ATTRIBUTE_READING_XLSXR_4 DEFLINE XLSXR_4_ATTRIBUTE_READING "$(XLSXR_IN_ATTRIBUTE_READING_XLSXR_4)" # ============================================================================ XLSXR_4_GENERATE_FME_BUILD_NUM 20594 XLSXR_4_DATASET "$(SourceDataset_XLSXR_4)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "POSTGRES_1" #! END_WB_HEADER #! START_SOURCE_HEADER POSTGRES POSTGRES_1 # The dataset this mapping file was generated from was: #! END_SOURCE_HEADER #! START_WB_HEADER DEFAULT_MACRO SourceDataset INCLUDE [ if {{$(SourceDataset)} != ""} { \ puts {DEFAULT_MACRO SourceDataset_POSTGRES_1 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER POSTGRES POSTGRES_1 DEFAULT_MACRO SourceDataset_POSTGRES_1 $(SourceDataset_POSTGRES) GUI NAMED_DB_CONNECTION_ENCODED SourceDataset_POSTGRES_1 FMT:POSTGRES Connection: DEFAULT_MACRO POSTGRES_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_POSTGRES_1 Yes POSTGRES_1_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(POSTGRES_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_POSTGRES_1)" DEFAULT_MACRO POSTGRES_IN_READ_TIME_WITH_TIMEZONE_POSTGRES_1 Yes POSTGRES_1_READ_TIME_WITH_TIMEZONE "$(POSTGRES_IN_READ_TIME_WITH_TIMEZONE_POSTGRES_1)" DEFAULT_MACRO POSTGRES_IN_FME_CONNECTION_GROUP_POSTGRES_1 GUI OPTIONAL DISCLOSUREGROUP POSTGRES_IN_FME_CONNECTION_GROUP_POSTGRES_1 POSTGRES_IN_NAMED_CONNECTION%POSTGRES_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGRES_1 Database Connection DEFAULT_MACRO POSTGRES_IN_FME_GROUP_NAMED1_POSTGRES_1 GUI OPTIONAL DISCLOSUREGROUP POSTGRES_IN_FME_GROUP_NAMED1_POSTGRES_1 POSTGRES_IN_TABLELIST%POSTGRES_IN_WHERE_CLAUSE_POSTGRES_1 Constraints DEFAULT_MACRO POSTGRES_IN_WHERE_CLAUSE_POSTGRES_1 POSTGRES_1_WHERE_CLAUSE "$(POSTGRES_IN_WHERE_CLAUSE_POSTGRES_1)" GUI OPTIONAL TEXT_EDIT_SQL_CFG POSTGRES_IN_WHERE_CLAUSE_POSTGRES_1 MODE,WHERE;FORMAT,POSTGRES WHERE Clause: DEFAULT_MACRO POSTGRES_IN_EXPOSE_ATTRS_GROUP_POSTGRES_1 POSTGRES_1_EXPOSE_ATTRS_GROUP "$(POSTGRES_IN_EXPOSE_ATTRS_GROUP_POSTGRES_1)" DEFAULT_MACRO POSTGRES_IN_ADVANCED_POSTGRES_1 GUI OPTIONAL DISCLOSUREGROUP POSTGRES_IN_ADVANCED_POSTGRES_1 POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1%POSTGRES_IN_BEGIN_SQL_POSTGRES_1%POSTGRES_IN_END_SQL_POSTGRES_1 Advanced DEFAULT_MACRO POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1 10000 POSTGRES_1_FEATURES_PER_FETCH "$(POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1)" GUI FLOAT POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1 Number Of Records To Fetch At A Time DEFAULT_MACRO POSTGRES_IN_BEGIN_SQL_POSTGRES_1 POSTGRES_1_BEGIN_SQL "$(POSTGRES_IN_BEGIN_SQL_POSTGRES_1)" GUI OPTIONAL TEXT_EDIT_SQL_CFG POSTGRES_IN_BEGIN_SQL_POSTGRES_1 MODE,SQL;FORMAT,POSTGRES SQL To Run Before Read DEFAULT_MACRO POSTGRES_IN_END_SQL_POSTGRES_1 POSTGRES_1_END_SQL "$(POSTGRES_IN_END_SQL_POSTGRES_1)" GUI OPTIONAL TEXT_EDIT_SQL_CFG POSTGRES_IN_END_SQL_POSTGRES_1 MODE,SQL;FORMAT,POSTGRES SQL To Run After Read DEFAULT_MACRO POSTGRES_IN_CREATE_FEATURE_TABLES_FROM_DATA_POSTGRES_1 Yes POSTGRES_1_CREATE_FEATURE_TABLES_FROM_DATA "$(POSTGRES_IN_CREATE_FEATURE_TABLES_FROM_DATA_POSTGRES_1)" # ============================================================================ DEFAULT_MACRO POSTGRES_IN_ATTRIBUTE_READING_POSTGRES_1 DEFLINE_ATTRS POSTGRES_1_ATTRIBUTE_READING "$(POSTGRES_IN_ATTRIBUTE_READING_POSTGRES_1)" # ============================================================================ POSTGRES_1_GENERATE_FME_BUILD_NUM 20218 DEFAULT_MACRO POSTGRES_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGRES_1 public GUI OPTIONAL TEXT POSTGRES_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGRES_1 Schemas for Tables: POSTGRES_1_SCHEMAS_FOR_TABLE_LISTING $(POSTGRES_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGRES_1) POSTGRES_1_DATASET "$(SourceDataset_POSTGRES_1)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "HTML_1" #! END_WB_HEADER #! START_DEST_HEADER HTML HTML_1 # ===================================================================== # The following GUI line prompts for a folder to be used as the # the destination for the TextLine files. The user input is stored in # a macro, which is then used to define the dataset to be written. #! END_DEST_HEADER #! START_WB_HEADER DEFAULT_MACRO DestDataset INCLUDE [ if {"$(DestDataset)" != ""} { \ puts {DEFAULT_MACRO DestDataset_HTML_1 $(DestDataset)} \ } ] #! END_WB_HEADER #! START_DEST_HEADER HTML HTML_1 DEFAULT_MACRO DestDataset_HTML_1 $(DestDataset_HTML) GUI FILENAME DestDataset_HTML_1 HTML_Files(*.html)|*.html Destination Html File: # ===================================================================== # The following GUI line prompts for the overwrite flag. The default is # YES. Possible values are YES or NO. Any value other than NO or # no is interpreted as YES. DEFAULT_MACRO HTML_OUT_OVERWRITE_FILE_HTML_1 YES HTML_1_OVERWRITE_FILE "$(HTML_OUT_OVERWRITE_FILE_HTML_1)" # ===================================================================== # Set the type of encoding for the output files # ===================================================================== # Set line termination character DEFAULT_MACRO HTML_OUT_END_OF_LINE_HTML_1 System HTML_1_END_OF_LINE "$(HTML_OUT_END_OF_LINE_HTML_1)" # ===================================================================== # Set whether to write the last line termination character DEFAULT_MACRO HTML_OUT_WRITE_LAST_EOL_HTML_1 YES HTML_1_WRITE_LAST_EOL "$(HTML_OUT_WRITE_LAST_EOL_HTML_1)" DEFAULT_MACRO HTML_OUT_ENCODING_HTML_1 UTF8 HTML_1_ENCODING "$(HTML_OUT_ENCODING_HTML_1)" # ===================================================================== # The following GUI line prompts for the overwrite flag. The default is # YES. Possible values are YES or NO. Any value other than NO or # no is interpreted as YES. DEFAULT_MACRO HTML_OUT_WRITE_UTF8_BOM_HTML_1 YES HTML_1_WRITE_UTF8_BOM "$(HTML_OUT_WRITE_UTF8_BOM_HTML_1)" # ===================================================================== # Set the mime type. Note -- it is actually only used inside of workspaces # as a FORMAT_PARAMETER which even then is parsed only by the FME Server # Repository Manager DEFAULT_MACRO HTML_OUT_MIME_TYPE_HTML_1 text/html HTML_1_MIME_TYPE "$(HTML_OUT_MIME_TYPE_HTML_1)" # ============================================================================ # Opt in for destination dataset type vs format type validation DEFAULT_MACRO HTML_OUT_DESTINATION_DATASETTYPE_VALIDATION_HTML_1 Yes HTML_1_DESTINATION_DATASETTYPE_VALIDATION "$(HTML_OUT_DESTINATION_DATASETTYPE_VALIDATION_HTML_1)" DEFAULT_MACRO HTML_OUT_COORDINATE_SYSTEM_GRANULARITY_HTML_1 FEATURE HTML_1_COORDINATE_SYSTEM_GRANULARITY "$(HTML_OUT_COORDINATE_SYSTEM_GRANULARITY_HTML_1)" # ============================================================================ HTML_1_GENERATE_FME_BUILD_NUM 20594 HTML_1_DATASET "$(DestDataset_HTML_1)" #! END_DEST_HEADER #! START_WB_HEADER #! END_WB_HEADER #! END_HEADER LOG_FILENAME "$(FME_MF_DIR)Webinar2-MainWorkspaceExceptCanvas.log" LOG_APPEND NO LOG_FILTER_MASK -1 LOG_MAX_FEATURES 200 LOG_MAX_RECORDED_FEATURES 200 FME_REPROJECTION_ENGINE FME FME_IMPLICIT_CSMAP_REPROJECTION_MODE Auto FME_GEOMETRY_HANDLING Enhanced FME_STROKE_MAX_DEVIATION 0 DEFAULT_MACRO DATASET_KEYWORD_XLSXR_1 XLSXR_1 DEFAULT_MACRO DATASET_KEYWORD_XLSXR_2 XLSXR_2 DEFAULT_MACRO DATASET_KEYWORD_CSV2_1 CSV2_1 DEFAULT_MACRO DATASET_KEYWORD_XLSXR_3 XLSXR_3 DEFAULT_MACRO DATASET_KEYWORD_XLSXR_4 XLSXR_4 DEFAULT_MACRO DATASET_KEYWORD_POSTGRES_1 POSTGRES_1 DEFAULT_MACRO DATASET_KEYWORD_HTML_1 HTML_1 # ------------------------------------------------------------------------- XLSXR_1_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- XLSXR_2_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- CSV2_1_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- XLSXR_3_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- XLSXR_4_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- POSTGRES_1_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME Webinar2-MainWorkspaceExceptCanvas MACRO FME_VIEWER_APP fmedatainspector # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * ROUTE XLSXR XLSXR_1::APIEndPoints multi_reader_keyword,$(DATASET_KEYWORD_XLSXR_1) TO FME_GENERIC ::APIEndPoints ALIAS_GEOMETRY ROUTE XLSXR XLSXR_1::APIs multi_reader_keyword,$(DATASET_KEYWORD_XLSXR_1) TO FME_GENERIC ::APIs ALIAS_GEOMETRY ROUTE XLSXR XLSXR_2::Form1 multi_reader_keyword,$(DATASET_KEYWORD_XLSXR_2) TO FME_GENERIC ::Form1 ALIAS_GEOMETRY ROUTE CSV2 CSV2_1::CSV multi_reader_keyword,$(DATASET_KEYWORD_CSV2_1) TO FME_GENERIC ::CSV ALIAS_GEOMETRY ROUTE XLSXR XLSXR_3::FeatureRequests multi_reader_keyword,$(DATASET_KEYWORD_XLSXR_3) TO FME_GENERIC ::FeatureRequests ALIAS_GEOMETRY ROUTE POSTGRES POSTGRES_1::public.SCBCRSE multi_reader_keyword,$(DATASET_KEYWORD_POSTGRES_1) TO FME_GENERIC ::public.SCBCRSE ALIAS_GEOMETRY ROUTE POSTGRES POSTGRES_1::public.SIRASGN multi_reader_keyword,$(DATASET_KEYWORD_POSTGRES_1) TO FME_GENERIC ::public.SIRASGN ALIAS_GEOMETRY ROUTE POSTGRES POSTGRES_1::public.SGBSTDN multi_reader_keyword,$(DATASET_KEYWORD_POSTGRES_1) TO FME_GENERIC ::public.SGBSTDN ALIAS_GEOMETRY ROUTE POSTGRES POSTGRES_1::public.SPRIDEN multi_reader_keyword,$(DATASET_KEYWORD_POSTGRES_1) TO FME_GENERIC ::public.SPRIDEN ALIAS_GEOMETRY ROUTE POSTGRES POSTGRES_1::public.SSBSECT multi_reader_keyword,$(DATASET_KEYWORD_POSTGRES_1) TO FME_GENERIC ::public.SSBSECT ALIAS_GEOMETRY ROUTE POSTGRES POSTGRES_1::public.SFRSTCR multi_reader_keyword,$(DATASET_KEYWORD_POSTGRES_1) TO FME_GENERIC ::public.SFRSTCR ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * XLSXR_1_MERGE_DEF XLSXR_1::APIEndPoints EXACT APIEndPoints DEFLINE xlsx_start_row,,xlsx_end_row,,xlsx_schema_start_col,0,xlsx_schema_end_row,0,xlsx_schema_end_col,0,xlsx_schema_start_row,1,xlsx_header_row,0,fme_attribute_reading,defined,APIName,char21,APIEndPoint,char26,APIEndPointDescription,char46 XLSXR_1_MERGE_DEF XLSXR_1::APIs EXACT APIs DEFLINE xlsx_start_row,,xlsx_end_row,,xlsx_schema_start_col,0,xlsx_schema_end_row,0,xlsx_schema_end_col,0,xlsx_schema_start_row,1,xlsx_header_row,0,fme_attribute_reading,defined,APIName,char21,APIHost,char30,APIBase,char19,APIBaseURL,char46 XLSXR_2_MERGE_DEF XLSXR_2::Form1 EXACT Form1 DEFLINE xlsx_start_row,,xlsx_end_row,,xlsx_schema_start_col,0,xlsx_schema_end_row,0,xlsx_schema_end_col,0,xlsx_schema_start_row,1,xlsx_header_row,0,fme_attribute_reading,defined,ID,number20,Starttime,datetime,Completiontime,datetime,Email,char16,Name,char18,Whatcoursewouldyouliketoteach?Pleaseenteradescriptivenamesuchas_IntrotoCalculus_,char24,Thisquestionisaboutcompensationforteachingonesectionofthecourse.,string,Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?,char16,Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?,char15 CSV2_1_MERGE_DEF CSV2_1::CSV EXACT CSV DEFLINE fme_attribute_reading,defined,name,string,rank,uint16,count,uint32,prop100k,real32,cum_prop100k,real64,pctwhite,real32,pctblack,string,pctapi,string,pctaian,string,pct2prace,string,pcthispanic,string XLSXR_3_MERGE_DEF XLSXR_3::FeatureRequests EXACT FeatureRequests DEFLINE xlsx_start_row,,xlsx_end_row,,xlsx_schema_start_col,0,xlsx_schema_end_row,0,xlsx_schema_end_col,0,xlsx_schema_start_row,1,xlsx_header_row,0,fme_attribute_reading,defined,Feature,char53,Description,char1876,EstimatedDevelopmentTime,number30 POSTGRES_1_MERGE_DEF POSTGRES_1::public.SCBCRSE EXACT public.SCBCRSE DEFLINE postgres_type,postgres_none,postgres_sql_where_clause,,postgres_sql_statement,,scbcrse_subj_code,varchar200,scbcrse_crse_numb,varchar200,scbcrse_title,varchar24,scbcrse_credit_hr_low,int8,scbcrse_credit_hr_high,int8,bannertablename,varchar200 POSTGRES_1_MERGE_DEF POSTGRES_1::public.SIRASGN EXACT public.SIRASGN DEFLINE postgres_type,postgres_none,postgres_sql_where_clause,,postgres_sql_statement,,sirasgn_term_code,varchar200,sirasgn_pidm,int8,sirasgn_crn,int8,bannertablename,varchar200 POSTGRES_1_MERGE_DEF POSTGRES_1::public.SGBSTDN EXACT public.SGBSTDN DEFLINE postgres_type,postgres_none,postgres_sql_where_clause,,postgres_sql_statement,,sgbstdn_pidm,int8,sgbstdn_degc_code_1,text,bannertablename,varchar200 POSTGRES_1_MERGE_DEF POSTGRES_1::public.SPRIDEN EXACT public.SPRIDEN DEFLINE postgres_type,postgres_none,postgres_sql_where_clause,,postgres_sql_statement,,bannertablename,varchar200,spriden_first_name,varchar200,spriden_last_name,varchar200,spriden_pidm,int8,spriden_id,varchar200,spriden_email,varchar200 POSTGRES_1_MERGE_DEF POSTGRES_1::public.SSBSECT EXACT public.SSBSECT DEFLINE postgres_type,postgres_none,postgres_sql_where_clause,,postgres_sql_statement,,ssbsect_term_code,varchar200,ssbsect_ptrm_code,varchar200,ssbsect_subj_code,varchar200,ssbsect_crse_numb,varchar200,ssbsect_credit_hrs,int8,bannertablename,varchar200,ssbsect_crn,int8 POSTGRES_1_MERGE_DEF POSTGRES_1::public.SFRSTCR EXACT public.SFRSTCR DEFLINE postgres_type,postgres_none,postgres_sql_where_clause,,postgres_sql_statement,,sfrstcr_pidm,int8,sfrstcr_degc_code_1,text,sfrstcr_term_code,varchar200,sfrstcr_credit_hr,int8,bannertablename,varchar200,sfrstcr__crn,int8 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "CSV_CSV2_1 Splitter" INPUT FEATURE_TYPE CSV OUTPUT FEATURE_TYPE CSV_CSV2_1_0_yvsMpFt/4Gw= OUTPUT FEATURE_TYPE CSV_CSV2_1_1_GVR6dhZPGYA= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Form1_XLSXR_2 Splitter" INPUT FEATURE_TYPE Form1 OUTPUT FEATURE_TYPE Form1_XLSXR_2 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.SCBCRSE_POSTGRES_1 Splitter" INPUT FEATURE_TYPE public.SCBCRSE OUTPUT FEATURE_TYPE public.SCBCRSE_POSTGRES_1 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.SGBSTDN_POSTGRES_1 Splitter" INPUT FEATURE_TYPE public.SGBSTDN OUTPUT FEATURE_TYPE public.SGBSTDN_POSTGRES_1 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.SIRASGN_POSTGRES_1 Splitter" INPUT FEATURE_TYPE public.SIRASGN OUTPUT FEATURE_TYPE public.SIRASGN_POSTGRES_1_0_tdiyWK7Hv1Y= OUTPUT FEATURE_TYPE public.SIRASGN_POSTGRES_1_1_1azYlXM2bGM= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.SSBSECT_POSTGRES_1 Splitter" INPUT FEATURE_TYPE public.SSBSECT OUTPUT FEATURE_TYPE public.SSBSECT_POSTGRES_1_0_0ImAijfkOTY= OUTPUT FEATURE_TYPE public.SSBSECT_POSTGRES_1_1_ntv+UFgA75k= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.SPRIDEN_POSTGRES_1 Splitter" INPUT FEATURE_TYPE public.SPRIDEN OUTPUT FEATURE_TYPE public.SPRIDEN_POSTGRES_1_0_iNuIUxkZOmQ= OUTPUT FEATURE_TYPE public.SPRIDEN_POSTGRES_1_1_58R9X4K7RcM= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.SFRSTCR_POSTGRES_1 Splitter" INPUT FEATURE_TYPE public.SFRSTCR OUTPUT FEATURE_TYPE public.SFRSTCR_POSTGRES_1 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "FeatureRequests_XLSXR_3 Splitter" INPUT FEATURE_TYPE FeatureRequests OUTPUT FEATURE_TYPE FeatureRequests_XLSXR_3_0_3nNjcO4L19Q= OUTPUT FEATURE_TYPE FeatureRequests_XLSXR_3_1_mpjoYgYSRVM= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "APIs_XLSXR_1 Splitter" INPUT FEATURE_TYPE APIs OUTPUT FEATURE_TYPE APIs_XLSXR_1 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "APIEndPoints_XLSXR_1 Splitter" INPUT FEATURE_TYPE APIEndPoints OUTPUT FEATURE_TYPE APIEndPoints_XLSXR_1 DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- Tcl2 proc Creator_CoordSysRemover {} { global FME_CoordSys; set FME_CoordSys {}; } MACRO Creator_XML NOT_ACTIVATED MACRO Creator_CLASSIC NOT_ACTIVATED MACRO Creator_2D3D 2D_GEOMETRY MACRO Creator_COORDS INCLUDE [ if { {Geometry Object} == {Geometry Object} } { puts {MACRO Creator_XML *} } ] INCLUDE [ if { {Geometry Object} == {2D Coordinate List} } { puts {MACRO Creator_2D3D 2D_GEOMETRY}; puts {MACRO Creator_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {3D Coordinate List} } { puts {MACRO Creator_2D3D 3D_GEOMETRY}; puts {MACRO Creator_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {2D Min/Max Box} } { set comment { We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates }; set splitCoords [split [string trim {}]]; if { [llength $splitCoords] > 4} { set trimmedCoords {}; foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} }; set splitCoords $trimmedCoords; }; if { [llength $splitCoords] != 4 } { error {Creator: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `' is invalid}; }; set minX [lindex $splitCoords 0]; set minY [lindex $splitCoords 1]; set maxX [lindex $splitCoords 2]; set maxY [lindex $splitCoords 3]; puts "MACRO Creator_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY"; puts {MACRO Creator_2D3D 2D_GEOMETRY}; puts {MACRO Creator_CLASSIC *} } ] FACTORY_DEF $(Creator_XML) CreationFactory FACTORY_NAME Creator_XML_Creator CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ @Geometry(FROM_ENCODED_STRING,?xmlversion=1.0encoding=US_ASCIIstandalone=no?geometrydimension=2nullgeometry) FACTORY_DEF $(Creator_CLASSIC) CreationFactory FACTORY_NAME Creator_CLASSIC_Creator $(Creator_2D3D) $(Creator_COORDS) CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ FACTORY_DEF * TeeFactory FACTORY_NAME Creator_Cloner INPUT FEATURE_TYPE _____CREATED______ @Tcl2(Creator_CoordSysRemover) @CoordSys() NUMBER_OF_COPIES 5 COPY_NUMBER_ATTRIBUTE "CredentialId" OUTPUT FEATURE_TYPE Creator_CREATED fme_feature_type Creator FACTORY_DEF * BranchingFactory FACTORY_NAME "Creator_CREATED Brancher -1 210" INPUT FEATURE_TYPE Creator_CREATED TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" MAXIMUM_COUNT None OUTPUT PASSED FEATURE_TYPE * # ------------------------------------------------------------------------- Tcl2 proc Creator_2_CoordSysRemover {} { global FME_CoordSys; set FME_CoordSys {}; } MACRO Creator_2_XML NOT_ACTIVATED MACRO Creator_2_CLASSIC NOT_ACTIVATED MACRO Creator_2_2D3D 2D_GEOMETRY MACRO Creator_2_COORDS INCLUDE [ if { {Geometry Object} == {Geometry Object} } { puts {MACRO Creator_2_XML *} } ] INCLUDE [ if { {Geometry Object} == {2D Coordinate List} } { puts {MACRO Creator_2_2D3D 2D_GEOMETRY}; puts {MACRO Creator_2_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {3D Coordinate List} } { puts {MACRO Creator_2_2D3D 3D_GEOMETRY}; puts {MACRO Creator_2_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {2D Min/Max Box} } { set comment { We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates }; set splitCoords [split [string trim {}]]; if { [llength $splitCoords] > 4} { set trimmedCoords {}; foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} }; set splitCoords $trimmedCoords; }; if { [llength $splitCoords] != 4 } { error {Creator_2: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `' is invalid}; }; set minX [lindex $splitCoords 0]; set minY [lindex $splitCoords 1]; set maxX [lindex $splitCoords 2]; set maxY [lindex $splitCoords 3]; puts "MACRO Creator_2_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY"; puts {MACRO Creator_2_2D3D 2D_GEOMETRY}; puts {MACRO Creator_2_CLASSIC *} } ] FACTORY_DEF $(Creator_2_XML) CreationFactory FACTORY_NAME Creator_2_XML_Creator CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ @Geometry(FROM_ENCODED_STRING,?xmlversion=1.0encoding=US_ASCIIstandalone=no?geometrydimension=2nullgeometry) FACTORY_DEF $(Creator_2_CLASSIC) CreationFactory FACTORY_NAME Creator_2_CLASSIC_Creator $(Creator_2_2D3D) $(Creator_2_COORDS) CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ FACTORY_DEF * TeeFactory FACTORY_NAME Creator_2_Cloner INPUT FEATURE_TYPE _____CREATED______ @Tcl2(Creator_2_CoordSysRemover) @CoordSys() NUMBER_OF_COPIES 9 COPY_NUMBER_ATTRIBUTE "_creation_instance" OUTPUT FEATURE_TYPE Creator_2_CREATED fme_feature_type Creator_2 FACTORY_DEF * BranchingFactory FACTORY_NAME "Creator_2_CREATED Brancher -1 255" INPUT FEATURE_TYPE Creator_2_CREATED TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" MAXIMUM_COUNT None OUTPUT PASSED FEATURE_TYPE * # ------------------------------------------------------------------------- Tcl2 proc Creator_3_CoordSysRemover {} { global FME_CoordSys; set FME_CoordSys {}; } MACRO Creator_3_XML NOT_ACTIVATED MACRO Creator_3_CLASSIC NOT_ACTIVATED MACRO Creator_3_2D3D 2D_GEOMETRY MACRO Creator_3_COORDS INCLUDE [ if { {Geometry Object} == {Geometry Object} } { puts {MACRO Creator_3_XML *} } ] INCLUDE [ if { {Geometry Object} == {2D Coordinate List} } { puts {MACRO Creator_3_2D3D 2D_GEOMETRY}; puts {MACRO Creator_3_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {3D Coordinate List} } { puts {MACRO Creator_3_2D3D 3D_GEOMETRY}; puts {MACRO Creator_3_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {2D Min/Max Box} } { set comment { We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates }; set splitCoords [split [string trim {}]]; if { [llength $splitCoords] > 4} { set trimmedCoords {}; foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} }; set splitCoords $trimmedCoords; }; if { [llength $splitCoords] != 4 } { error {Creator_3: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `' is invalid}; }; set minX [lindex $splitCoords 0]; set minY [lindex $splitCoords 1]; set maxX [lindex $splitCoords 2]; set maxY [lindex $splitCoords 3]; puts "MACRO Creator_3_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY"; puts {MACRO Creator_3_2D3D 2D_GEOMETRY}; puts {MACRO Creator_3_CLASSIC *} } ] FACTORY_DEF $(Creator_3_XML) CreationFactory FACTORY_NAME Creator_3_XML_Creator CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ @Geometry(FROM_ENCODED_STRING,?xmlversion=1.0encoding=US_ASCIIstandalone=no?geometrydimension=2nullgeometry) FACTORY_DEF $(Creator_3_CLASSIC) CreationFactory FACTORY_NAME Creator_3_CLASSIC_Creator $(Creator_3_2D3D) $(Creator_3_COORDS) CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ FACTORY_DEF * TeeFactory FACTORY_NAME Creator_3_Cloner INPUT FEATURE_TYPE _____CREATED______ @Tcl2(Creator_3_CoordSysRemover) @CoordSys() NUMBER_OF_COPIES 1 COPY_NUMBER_ATTRIBUTE "_creation_instance" OUTPUT FEATURE_TYPE Creator_3_CREATED fme_feature_type Creator_3 FACTORY_DEF * BranchingFactory FACTORY_NAME "Creator_3_CREATED Brancher -1 523" INPUT FEATURE_TYPE Creator_3_CREATED TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" MAXIMUM_COUNT None OUTPUT PASSED FEATURE_TYPE * # ------------------------------------------------------------------------- Tcl2 proc Creator_4_CoordSysRemover {} { global FME_CoordSys; set FME_CoordSys {}; } MACRO Creator_4_XML NOT_ACTIVATED MACRO Creator_4_CLASSIC NOT_ACTIVATED MACRO Creator_4_2D3D 2D_GEOMETRY MACRO Creator_4_COORDS INCLUDE [ if { {Geometry Object} == {Geometry Object} } { puts {MACRO Creator_4_XML *} } ] INCLUDE [ if { {Geometry Object} == {2D Coordinate List} } { puts {MACRO Creator_4_2D3D 2D_GEOMETRY}; puts {MACRO Creator_4_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {3D Coordinate List} } { puts {MACRO Creator_4_2D3D 3D_GEOMETRY}; puts {MACRO Creator_4_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {2D Min/Max Box} } { set comment { We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates }; set splitCoords [split [string trim {}]]; if { [llength $splitCoords] > 4} { set trimmedCoords {}; foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} }; set splitCoords $trimmedCoords; }; if { [llength $splitCoords] != 4 } { error {Creator_4: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `' is invalid}; }; set minX [lindex $splitCoords 0]; set minY [lindex $splitCoords 1]; set maxX [lindex $splitCoords 2]; set maxY [lindex $splitCoords 3]; puts "MACRO Creator_4_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY"; puts {MACRO Creator_4_2D3D 2D_GEOMETRY}; puts {MACRO Creator_4_CLASSIC *} } ] FACTORY_DEF $(Creator_4_XML) CreationFactory FACTORY_NAME Creator_4_XML_Creator CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ @Geometry(FROM_ENCODED_STRING,?xmlversion=1.0encoding=US_ASCIIstandalone=no?geometrydimension=2nullgeometry) FACTORY_DEF $(Creator_4_CLASSIC) CreationFactory FACTORY_NAME Creator_4_CLASSIC_Creator $(Creator_4_2D3D) $(Creator_4_COORDS) CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ FACTORY_DEF * TeeFactory FACTORY_NAME Creator_4_Cloner INPUT FEATURE_TYPE _____CREATED______ @Tcl2(Creator_4_CoordSysRemover) @CoordSys() NUMBER_OF_COPIES 1 COPY_NUMBER_ATTRIBUTE "_creation_instance" OUTPUT FEATURE_TYPE Creator_4_CREATED fme_feature_type Creator_4 FACTORY_DEF * BranchingFactory FACTORY_NAME "Creator_4_CREATED Brancher -1 583" INPUT FEATURE_TYPE Creator_4_CREATED TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" MAXIMUM_COUNT None OUTPUT PASSED FEATURE_TYPE * # ------------------------------------------------------------------------- Tcl2 proc Creator_5_CoordSysRemover {} { global FME_CoordSys; set FME_CoordSys {}; } MACRO Creator_5_XML NOT_ACTIVATED MACRO Creator_5_CLASSIC NOT_ACTIVATED MACRO Creator_5_2D3D 2D_GEOMETRY MACRO Creator_5_COORDS INCLUDE [ if { {Geometry Object} == {Geometry Object} } { puts {MACRO Creator_5_XML *} } ] INCLUDE [ if { {Geometry Object} == {2D Coordinate List} } { puts {MACRO Creator_5_2D3D 2D_GEOMETRY}; puts {MACRO Creator_5_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {3D Coordinate List} } { puts {MACRO Creator_5_2D3D 3D_GEOMETRY}; puts {MACRO Creator_5_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {2D Min/Max Box} } { set comment { We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates }; set splitCoords [split [string trim {}]]; if { [llength $splitCoords] > 4} { set trimmedCoords {}; foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} }; set splitCoords $trimmedCoords; }; if { [llength $splitCoords] != 4 } { error {Creator_5: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `' is invalid}; }; set minX [lindex $splitCoords 0]; set minY [lindex $splitCoords 1]; set maxX [lindex $splitCoords 2]; set maxY [lindex $splitCoords 3]; puts "MACRO Creator_5_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY"; puts {MACRO Creator_5_2D3D 2D_GEOMETRY}; puts {MACRO Creator_5_CLASSIC *} } ] FACTORY_DEF $(Creator_5_XML) CreationFactory FACTORY_NAME Creator_5_XML_Creator CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ @Geometry(FROM_ENCODED_STRING,?xmlversion=1.0encoding=US_ASCIIstandalone=no?geometrydimension=2nullgeometry) FACTORY_DEF $(Creator_5_CLASSIC) CreationFactory FACTORY_NAME Creator_5_CLASSIC_Creator $(Creator_5_2D3D) $(Creator_5_COORDS) CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ FACTORY_DEF * TeeFactory FACTORY_NAME Creator_5_Cloner INPUT FEATURE_TYPE _____CREATED______ @Tcl2(Creator_5_CoordSysRemover) @CoordSys() NUMBER_OF_COPIES 1 COPY_NUMBER_ATTRIBUTE "_creation_instance" OUTPUT FEATURE_TYPE Creator_5_CREATED fme_feature_type Creator_5 FACTORY_DEF * BranchingFactory FACTORY_NAME "Creator_5_CREATED Brancher -1 643" INPUT FEATURE_TYPE Creator_5_CREATED TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" MAXIMUM_COUNT None OUTPUT PASSED FEATURE_TYPE * # ------------------------------------------------------------------------- Tcl2 proc Creator_6_CoordSysRemover {} { global FME_CoordSys; set FME_CoordSys {}; } MACRO Creator_6_XML NOT_ACTIVATED MACRO Creator_6_CLASSIC NOT_ACTIVATED MACRO Creator_6_2D3D 2D_GEOMETRY MACRO Creator_6_COORDS INCLUDE [ if { {Geometry Object} == {Geometry Object} } { puts {MACRO Creator_6_XML *} } ] INCLUDE [ if { {Geometry Object} == {2D Coordinate List} } { puts {MACRO Creator_6_2D3D 2D_GEOMETRY}; puts {MACRO Creator_6_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {3D Coordinate List} } { puts {MACRO Creator_6_2D3D 3D_GEOMETRY}; puts {MACRO Creator_6_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {2D Min/Max Box} } { set comment { We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates }; set splitCoords [split [string trim {}]]; if { [llength $splitCoords] > 4} { set trimmedCoords {}; foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} }; set splitCoords $trimmedCoords; }; if { [llength $splitCoords] != 4 } { error {Creator_6: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `' is invalid}; }; set minX [lindex $splitCoords 0]; set minY [lindex $splitCoords 1]; set maxX [lindex $splitCoords 2]; set maxY [lindex $splitCoords 3]; puts "MACRO Creator_6_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY"; puts {MACRO Creator_6_2D3D 2D_GEOMETRY}; puts {MACRO Creator_6_CLASSIC *} } ] FACTORY_DEF $(Creator_6_XML) CreationFactory FACTORY_NAME Creator_6_XML_Creator CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ @Geometry(FROM_ENCODED_STRING,?xmlversion=1.0encoding=US_ASCIIstandalone=no?geometrydimension=2nullgeometry) FACTORY_DEF $(Creator_6_CLASSIC) CreationFactory FACTORY_NAME Creator_6_CLASSIC_Creator $(Creator_6_2D3D) $(Creator_6_COORDS) CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ FACTORY_DEF * TeeFactory FACTORY_NAME Creator_6_Cloner INPUT FEATURE_TYPE _____CREATED______ @Tcl2(Creator_6_CoordSysRemover) @CoordSys() NUMBER_OF_COPIES 1 COPY_NUMBER_ATTRIBUTE "_creation_instance" OUTPUT FEATURE_TYPE Creator_6_CREATED fme_feature_type Creator_6 FACTORY_DEF * BranchingFactory FACTORY_NAME "Creator_6_CREATED Brancher -1 728" INPUT FEATURE_TYPE Creator_6_CREATED TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" MAXIMUM_COUNT None OUTPUT PASSED FEATURE_TYPE * # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE * # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "CanvasHTTPGet HTTPCaller_2_Input Input Collector" INPUT FEATURE_TYPE Creator_6_CREATED OUTPUT FEATURE_TYPE CanvasHTTPGet_HTTPCaller_2_Input MACRO CanvasHTTPGet_WORKSPACE_NAME CanvasHTTPGet MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_XFORMER_NAME CanvasHTTPGet MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(CanvasHTTPGet_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_SUB_DOC_NAME CanvasHTTPGet MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_URL $(Canvas_URL) MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_Key $(Canvas_Key) MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_API_Endpoint accounts DEFAULT_MACRO CanvasHTTPGet_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(CanvasHTTPGet_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(CanvasHTTPGet_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" TEST url ATTRIBUTE_IS_MISSING "" ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_PASSED" OUTPUT FAILED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_FAILED" # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_PASSED" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "url" "$($(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_URL$encode)apiv1$($(CanvasHTTPGet_WORKSPACE_NAME)_API_Endpoint$encode)" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2_OUTPUT" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_FAILED" TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,Valueurl,$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2)" HTTP_METHOD GET SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "" MULTIPART_UPLOAD UPLOAD_CONTENT_TYPE "" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer$($(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_Key$encode),$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2) ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "_response_headers" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" OUTPUT REJECTED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 Output Splitter" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_0_21OcRCDh7rc=" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_1_uk4lCA8YJDI=" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 Transformer Output Nuker" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_" # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_1_uk4lCA8YJDI=" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "url" "url" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_0_21OcRCDh7rc=" LIST_NAME "_response_headers{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY ATTR_ACCUM_MODE "PREFIX_INCOMING" ATTR_CONFLICT_RES "" INCOMING_PREFIX "header_" OUTPUT ELEMENT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_ELEMENTS" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_ELEMENTS" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,Valueheader_name,$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2)" = Link ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2_PASSED" # ------------------------------------------------------------------------- Tcl2 proc $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_3fda7cc3_5d60_457d_9caa_edcf722486890_doSplit {} { set splitDelimiter [FME_DecodeTextOrAttr {}]; if { [regexp {^([1-9][0-9]*s)+$} $splitDelimiter] } { set splitWidths [split [regsub -all {s$} $splitDelimiter {}] s]; set source [FME_GetAttribute [FME_DecodeText {header_value}]]; set attrNum 0; set listName [FME_DecodeText {_link}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width $splitWidths { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; } else { set delimLength [string length $splitDelimiter]; set source [FME_GetAttribute [FME_DecodeText {header_value}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $splitDelimiter $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $splitDelimiter $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_link}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } FACTORY_DEF * TeeFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2_PASSED" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_OUTPUT" @Tcl2($(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_3fda7cc3_5d60_457d_9caa_edcf722486890_doSplit) # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_OUTPUT" LIST_NAME "_link{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "INCOMING_IF_CONFLICT" INCOMING_PREFIX "" OUTPUT ELEMENT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2_ELEMENTS" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2_ELEMENTS" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "_response_body" "_response_body" "" "REMOVE" } ATTR_ACTION { "_http_status_code" "_http_status_code" "" "REMOVE" } ATTR_ACTION { "header_name" "header_name" "" "REMOVE" } ATTR_ACTION { "header_value" "header_value" "" "REMOVE" } ATTR_ACTION { "_element_index" "_element_index" "" "REMOVE" } ATTR_ACTION { "" "url" "ReplaceStringReplaceStringLeftValue_linkFindStringValue_link" "SET_TO" } ATTR_ACTION { "" "_link_rel" "ReplaceStringReplaceStringTrimRightValue_linkStringLengthValue_link-FindStringValue_link-1rel=" "SET_TO" } ATTR_ACTION { "_link" "_link" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_OUTPUT" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,Value_link_rel,$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3)" = next ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3_PASSED" FACTORY_DEF * BranchingFactory TARGET_FACTORY "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" FACTORY_NAME "Loop to $(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" MAXIMUM_COUNT -1 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3_PASSED" OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output1596844345 Output Collector" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3_OUTPUT" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(CanvasHTTPGet_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "CanvasHTTPGet HTTPCaller_2_Output Output Renamer/Nuker" INPUT FEATURE_TYPE CanvasHTTPGet_HTTPCaller_2_Output OUTPUT FEATURE_TYPE CanvasHTTPGet_HTTPCaller_2_Output # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter INPUT FEATURE_TYPE CanvasHTTPGet_HTTPCaller_2_Output MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS YES EXTRACT_ATTR Yes PREF_STRING "account_" JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "json*" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_ # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME Tester_2 INPUT FEATURE_TYPE JSONFragmenter_FRAGMENTS TEST "@EvaluateExpression(FDIV,STRING_ENCODED,Valueaccount_name,Tester_2)" = "@EvaluateExpression(FDIV,STRING_ENCODED,$(Canvas_Site$encode),Tester_2)" ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE Tester_2_PASSED FACTORY_DEF * TeeFactory FACTORY_NAME "Tester_2 PASSED Splitter" INPUT FEATURE_TYPE Tester_2_PASSED OUTPUT FEATURE_TYPE Tester_2_PASSED_0_f2TGGhc/g74= OUTPUT FEATURE_TYPE Tester_2_PASSED_1_4bBqa4ASLBM= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_20 INPUT FEATURE_TYPE Tester_2_PASSED_1_4bBqa4ASLBM= OUTPUT FEATURE_TYPE Junction_20_Output FACTORY_DEF * TeeFactory FACTORY_NAME "Junction_20 Output Splitter" INPUT FEATURE_TYPE Junction_20_Output OUTPUT FEATURE_TYPE Junction_20_Output_0_j0x/WD4saLw= OUTPUT FEATURE_TYPE Junction_20_Output_1_pcfS6BNW/k8= OUTPUT FEATURE_TYPE Junction_20_Output_2_fQztKqIVoLA= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "CanvasHTTPCaller HTTPCaller_2_Input Input Collector" INPUT FEATURE_TYPE Junction_20_Output_2_fQztKqIVoLA= OUTPUT FEATURE_TYPE CanvasHTTPCaller_HTTPCaller_2_Input MACRO CanvasHTTPGet_WORKSPACE_NAME CanvasHTTPCaller MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_XFORMER_NAME CanvasHTTPCaller MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(CanvasHTTPGet_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_SUB_DOC_NAME CanvasHTTPGet MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_URL $(Canvas_URL) MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_Key $(Canvas_Key) MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_API_Endpoint accounts/@Value(account_id)/users DEFAULT_MACRO CanvasHTTPGet_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(CanvasHTTPGet_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(CanvasHTTPGet_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" TEST url ATTRIBUTE_IS_MISSING "" ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_PASSED" OUTPUT FAILED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_FAILED" # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_PASSED" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "url" "$($(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_URL$encode)apiv1$($(CanvasHTTPGet_WORKSPACE_NAME)_API_Endpoint$encode)" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2_OUTPUT" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_FAILED" TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,Valueurl,$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2)" HTTP_METHOD GET SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "" MULTIPART_UPLOAD UPLOAD_CONTENT_TYPE "" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer$($(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_Key$encode),$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2) ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "_response_headers" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" OUTPUT REJECTED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 Output Splitter" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_0_21OcRCDh7rc=" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_1_uk4lCA8YJDI=" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 Transformer Output Nuker" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_" # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_1_uk4lCA8YJDI=" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "url" "url" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_0_21OcRCDh7rc=" LIST_NAME "_response_headers{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY ATTR_ACCUM_MODE "PREFIX_INCOMING" ATTR_CONFLICT_RES "" INCOMING_PREFIX "header_" OUTPUT ELEMENT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_ELEMENTS" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_ELEMENTS" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,Valueheader_name,$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2)" = Link ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2_PASSED" # ------------------------------------------------------------------------- Tcl2 proc $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_3fda7cc3_5d60_457d_9caa_edcf722486891_doSplit {} { set splitDelimiter [FME_DecodeTextOrAttr {}]; if { [regexp {^([1-9][0-9]*s)+$} $splitDelimiter] } { set splitWidths [split [regsub -all {s$} $splitDelimiter {}] s]; set source [FME_GetAttribute [FME_DecodeText {header_value}]]; set attrNum 0; set listName [FME_DecodeText {_link}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width $splitWidths { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; } else { set delimLength [string length $splitDelimiter]; set source [FME_GetAttribute [FME_DecodeText {header_value}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $splitDelimiter $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $splitDelimiter $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_link}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } FACTORY_DEF * TeeFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2_PASSED" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_OUTPUT" @Tcl2($(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_3fda7cc3_5d60_457d_9caa_edcf722486891_doSplit) # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_OUTPUT" LIST_NAME "_link{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "INCOMING_IF_CONFLICT" INCOMING_PREFIX "" OUTPUT ELEMENT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2_ELEMENTS" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2_ELEMENTS" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "_response_body" "_response_body" "" "REMOVE" } ATTR_ACTION { "_http_status_code" "_http_status_code" "" "REMOVE" } ATTR_ACTION { "header_name" "header_name" "" "REMOVE" } ATTR_ACTION { "header_value" "header_value" "" "REMOVE" } ATTR_ACTION { "_element_index" "_element_index" "" "REMOVE" } ATTR_ACTION { "" "url" "ReplaceStringReplaceStringLeftValue_linkFindStringValue_link" "SET_TO" } ATTR_ACTION { "" "_link_rel" "ReplaceStringReplaceStringTrimRightValue_linkStringLengthValue_link-FindStringValue_link-1rel=" "SET_TO" } ATTR_ACTION { "_link" "_link" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_OUTPUT" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,Value_link_rel,$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3)" = next ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3_PASSED" FACTORY_DEF * BranchingFactory TARGET_FACTORY "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" FACTORY_NAME "Loop to $(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" MAXIMUM_COUNT -1 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3_PASSED" OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output1596844345 Output Collector" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3_OUTPUT" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(CanvasHTTPGet_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "CanvasHTTPCaller HTTPCaller_2_Output Output Renamer/Nuker" INPUT FEATURE_TYPE CanvasHTTPCaller_HTTPCaller_2_Output OUTPUT FEATURE_TYPE CanvasHTTPCaller_HTTPCaller_2_Output # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter_2 INPUT FEATURE_TYPE CanvasHTTPCaller_HTTPCaller_2_Output MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS NO EXTRACT_ATTR Yes PREF_STRING "user_" JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "json*" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_2_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_2_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_2 FRAGMENTS Splitter" INPUT FEATURE_TYPE JSONFragmenter_2_FRAGMENTS OUTPUT FEATURE_TYPE JSONFragmenter_2_FRAGMENTS_0_uQcX+vFmlpM= OUTPUT FEATURE_TYPE JSONFragmenter_2_FRAGMENTS_1_NuOz5c5XSUI= FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_2 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_2_ # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_33 INPUT FEATURE_TYPE JSONFragmenter_2_FRAGMENTS_1_NuOz5c5XSUI= OUTPUT FEATURE_TYPE Junction_33_Output FACTORY_DEF * TeeFactory FACTORY_NAME "Junction_33 Output Splitter" INPUT FEATURE_TYPE Junction_33_Output OUTPUT FEATURE_TYPE Junction_33_Output_0_TB8djziBbiU= OUTPUT FEATURE_TYPE Junction_33_Output_1_TFqTNJlB81A= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "CanvasHTTPCaller_2 HTTPCaller_2_Input Input Collector" INPUT FEATURE_TYPE Junction_20_Output_1_pcfS6BNW/k8= OUTPUT FEATURE_TYPE CanvasHTTPCaller_2_HTTPCaller_2_Input MACRO CanvasHTTPGet_WORKSPACE_NAME CanvasHTTPCaller_2 MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_XFORMER_NAME CanvasHTTPCaller_2 MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(CanvasHTTPGet_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_SUB_DOC_NAME CanvasHTTPGet MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_URL $(Canvas_URL) MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_Key $(Canvas_Key) MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_API_Endpoint accounts/@Value(account_id)/terms DEFAULT_MACRO CanvasHTTPGet_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(CanvasHTTPGet_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(CanvasHTTPGet_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" TEST url ATTRIBUTE_IS_MISSING "" ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_PASSED" OUTPUT FAILED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_FAILED" # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_PASSED" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "url" "$($(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_URL$encode)apiv1$($(CanvasHTTPGet_WORKSPACE_NAME)_API_Endpoint$encode)" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2_OUTPUT" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_FAILED" TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,Valueurl,$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2)" HTTP_METHOD GET SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "" MULTIPART_UPLOAD UPLOAD_CONTENT_TYPE "" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer$($(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_Key$encode),$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2) ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "_response_headers" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" OUTPUT REJECTED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 Output Splitter" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_0_21OcRCDh7rc=" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_1_uk4lCA8YJDI=" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 Transformer Output Nuker" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_" # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_1_uk4lCA8YJDI=" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "url" "url" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_0_21OcRCDh7rc=" LIST_NAME "_response_headers{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY ATTR_ACCUM_MODE "PREFIX_INCOMING" ATTR_CONFLICT_RES "" INCOMING_PREFIX "header_" OUTPUT ELEMENT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_ELEMENTS" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_ELEMENTS" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,Valueheader_name,$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2)" = Link ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2_PASSED" # ------------------------------------------------------------------------- Tcl2 proc $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_3fda7cc3_5d60_457d_9caa_edcf722486892_doSplit {} { set splitDelimiter [FME_DecodeTextOrAttr {}]; if { [regexp {^([1-9][0-9]*s)+$} $splitDelimiter] } { set splitWidths [split [regsub -all {s$} $splitDelimiter {}] s]; set source [FME_GetAttribute [FME_DecodeText {header_value}]]; set attrNum 0; set listName [FME_DecodeText {_link}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width $splitWidths { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; } else { set delimLength [string length $splitDelimiter]; set source [FME_GetAttribute [FME_DecodeText {header_value}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $splitDelimiter $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $splitDelimiter $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_link}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } FACTORY_DEF * TeeFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2_PASSED" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_OUTPUT" @Tcl2($(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_3fda7cc3_5d60_457d_9caa_edcf722486892_doSplit) # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_OUTPUT" LIST_NAME "_link{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "INCOMING_IF_CONFLICT" INCOMING_PREFIX "" OUTPUT ELEMENT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2_ELEMENTS" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2_ELEMENTS" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "_response_body" "_response_body" "" "REMOVE" } ATTR_ACTION { "_http_status_code" "_http_status_code" "" "REMOVE" } ATTR_ACTION { "header_name" "header_name" "" "REMOVE" } ATTR_ACTION { "header_value" "header_value" "" "REMOVE" } ATTR_ACTION { "_element_index" "_element_index" "" "REMOVE" } ATTR_ACTION { "" "url" "ReplaceStringReplaceStringLeftValue_linkFindStringValue_link" "SET_TO" } ATTR_ACTION { "" "_link_rel" "ReplaceStringReplaceStringTrimRightValue_linkStringLengthValue_link-FindStringValue_link-1rel=" "SET_TO" } ATTR_ACTION { "_link" "_link" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_OUTPUT" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,Value_link_rel,$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3)" = next ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3_PASSED" FACTORY_DEF * BranchingFactory TARGET_FACTORY "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" FACTORY_NAME "Loop to $(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" MAXIMUM_COUNT -1 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3_PASSED" OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output1596844345 Output Collector" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3_OUTPUT" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(CanvasHTTPGet_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "CanvasHTTPCaller_2 HTTPCaller_2_Output Output Renamer/Nuker" INPUT FEATURE_TYPE CanvasHTTPCaller_2_HTTPCaller_2_Output OUTPUT FEATURE_TYPE CanvasHTTPCaller_2_HTTPCaller_2_Output # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter_8 INPUT FEATURE_TYPE CanvasHTTPCaller_2_HTTPCaller_2_Output MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS YES EXTRACT_ATTR Yes PREF_STRING "term_" JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "jsonenrollment_terms*" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_8_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_8_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_8 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_8_ # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_32 INPUT FEATURE_TYPE JSONFragmenter_8_FRAGMENTS OUTPUT FEATURE_TYPE Junction_32_Output FACTORY_DEF * TeeFactory FACTORY_NAME "Junction_32 Output Splitter" INPUT FEATURE_TYPE Junction_32_Output OUTPUT FEATURE_TYPE Junction_32_Output_0_ky8Q1j+E204= OUTPUT FEATURE_TYPE Junction_32_Output_1_zfVLbO1+ftA= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "CanvasHTTPCaller_3 HTTPCaller_2_Input Input Collector" INPUT FEATURE_TYPE Junction_20_Output_0_j0x/WD4saLw= OUTPUT FEATURE_TYPE CanvasHTTPCaller_3_HTTPCaller_2_Input MACRO CanvasHTTPGet_WORKSPACE_NAME CanvasHTTPCaller_3 MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_XFORMER_NAME CanvasHTTPCaller_3 MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(CanvasHTTPGet_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_SUB_DOC_NAME CanvasHTTPGet MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_URL $(Canvas_URL) MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_Key $(Canvas_Key) MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_API_Endpoint accounts/@Value(account_id)/courses DEFAULT_MACRO CanvasHTTPGet_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(CanvasHTTPGet_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(CanvasHTTPGet_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" TEST url ATTRIBUTE_IS_MISSING "" ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_PASSED" OUTPUT FAILED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_FAILED" # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_PASSED" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "url" "$($(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_URL$encode)apiv1$($(CanvasHTTPGet_WORKSPACE_NAME)_API_Endpoint$encode)" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2_OUTPUT" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_FAILED" TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,Valueurl,$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2)" HTTP_METHOD GET SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "" MULTIPART_UPLOAD UPLOAD_CONTENT_TYPE "" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer$($(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_Key$encode),$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2) ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "_response_headers" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" OUTPUT REJECTED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 Output Splitter" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_0_21OcRCDh7rc=" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_1_uk4lCA8YJDI=" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 Transformer Output Nuker" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_" # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_1_uk4lCA8YJDI=" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "url" "url" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_0_21OcRCDh7rc=" LIST_NAME "_response_headers{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY ATTR_ACCUM_MODE "PREFIX_INCOMING" ATTR_CONFLICT_RES "" INCOMING_PREFIX "header_" OUTPUT ELEMENT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_ELEMENTS" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_ELEMENTS" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,Valueheader_name,$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2)" = Link ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2_PASSED" # ------------------------------------------------------------------------- Tcl2 proc $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_3fda7cc3_5d60_457d_9caa_edcf722486893_doSplit {} { set splitDelimiter [FME_DecodeTextOrAttr {}]; if { [regexp {^([1-9][0-9]*s)+$} $splitDelimiter] } { set splitWidths [split [regsub -all {s$} $splitDelimiter {}] s]; set source [FME_GetAttribute [FME_DecodeText {header_value}]]; set attrNum 0; set listName [FME_DecodeText {_link}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width $splitWidths { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; } else { set delimLength [string length $splitDelimiter]; set source [FME_GetAttribute [FME_DecodeText {header_value}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $splitDelimiter $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $splitDelimiter $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_link}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } FACTORY_DEF * TeeFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2_PASSED" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_OUTPUT" @Tcl2($(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_3fda7cc3_5d60_457d_9caa_edcf722486893_doSplit) # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_OUTPUT" LIST_NAME "_link{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "INCOMING_IF_CONFLICT" INCOMING_PREFIX "" OUTPUT ELEMENT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2_ELEMENTS" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2_ELEMENTS" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "_response_body" "_response_body" "" "REMOVE" } ATTR_ACTION { "_http_status_code" "_http_status_code" "" "REMOVE" } ATTR_ACTION { "header_name" "header_name" "" "REMOVE" } ATTR_ACTION { "header_value" "header_value" "" "REMOVE" } ATTR_ACTION { "_element_index" "_element_index" "" "REMOVE" } ATTR_ACTION { "" "url" "ReplaceStringReplaceStringLeftValue_linkFindStringValue_link" "SET_TO" } ATTR_ACTION { "" "_link_rel" "ReplaceStringReplaceStringTrimRightValue_linkStringLengthValue_link-FindStringValue_link-1rel=" "SET_TO" } ATTR_ACTION { "_link" "_link" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_OUTPUT" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,Value_link_rel,$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3)" = next ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3_PASSED" FACTORY_DEF * BranchingFactory TARGET_FACTORY "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" FACTORY_NAME "Loop to $(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" MAXIMUM_COUNT -1 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3_PASSED" OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output1596844345 Output Collector" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3_OUTPUT" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(CanvasHTTPGet_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "CanvasHTTPCaller_3 HTTPCaller_2_Output Output Renamer/Nuker" INPUT FEATURE_TYPE CanvasHTTPCaller_3_HTTPCaller_2_Output OUTPUT FEATURE_TYPE CanvasHTTPCaller_3_HTTPCaller_2_Output # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter_9 INPUT FEATURE_TYPE CanvasHTTPCaller_3_HTTPCaller_2_Output MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS NO EXTRACT_ATTR Yes PREF_STRING "course_" JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "json*" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_9_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_9_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_9 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_9_ # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_30 INPUT FEATURE_TYPE JSONFragmenter_9_FRAGMENTS OUTPUT FEATURE_TYPE Junction_30_Output FACTORY_DEF * TeeFactory FACTORY_NAME "Junction_30 Output Splitter" INPUT FEATURE_TYPE Junction_30_Output OUTPUT FEATURE_TYPE Junction_30_Output_0_qUsM8sh2Fpg= OUTPUT FEATURE_TYPE Junction_30_Output_1_xiKTdIRS7jY= # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_40 INPUT FEATURE_TYPE Tester_2_PASSED_0_f2TGGhc/g74= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "_creation_instance" "_creation_instance" "" "REMOVE" } ATTR_ACTION { "_response_headers.name" "_response_headers.name" "" "REMOVE" } ATTR_ACTION { "_response_headers.value" "_response_headers.value" "" "REMOVE" } ATTR_ACTION { "_response_body" "_response_body" "" "REMOVE" } ATTR_ACTION { "_http_status_code" "_http_status_code" "" "REMOVE" } ATTR_ACTION { "json_type" "json_type" "" "REMOVE" } ATTR_ACTION { "json_index" "json_index" "" "REMOVE" } ATTR_ACTION { "account_name" "account_name" "" "REMOVE" } ATTR_ACTION { "workflow_state" "workflow_state" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_40_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_29 INPUT FEATURE_TYPE AttributeManager_40_OUTPUT OUTPUT FEATURE_TYPE Junction_29_Output FACTORY_DEF * TeeFactory FACTORY_NAME "Junction_29 Output Splitter" INPUT FEATURE_TYPE Junction_29_Output OUTPUT FEATURE_TYPE Junction_29_Output_0_kD6arJ9W6NQ= OUTPUT FEATURE_TYPE Junction_29_Output_1_x1TeixbhRbo= OUTPUT FEATURE_TYPE Junction_29_Output_2_1x2JJm6HheM= # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_9 COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Creator_5_CREATED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "htmlwithtitle" "SET_TO" "h1ProjectSummaryh1Overalltheprojectwasasuccess.Whilewekepttheoverallprojectsmalluptakefrominstructorswasgood:divclass=tableauPlaceholderid=viz1595520161546style=position:relativenoscriptahref=#imgalt=src=https:#47#47public.tableau.com#47static#47images#47Sk#47SkunkWorksSummary#47SkunkWorksSummary#471_rss.pngstyle=border:noneanoscriptobjectclass=tableauVizstyle=display:noneparamname=host_urlvalue=https%3A%2F%2Fpublic.tableau.com%2Fparamname=embed_code_versionvalue=3paramname=site_rootvalue=paramname=namevalue=SkunkWorksSummary#47SkunkWorksSummaryparamname=tabsvalue=yesparamname=toolbarvalue=yesparamname=static_imagevalue=https:#47#47public.tableau.com#47static#47images#47Sk#47SkunkWorksSummary#47SkunkWorksSummary#471.pngparamname=animate_transitionvalue=yesparamname=display_static_imagevalue=yesparamname=display_spinnervalue=yesparamname=display_overlayvalue=yesparamname=display_countvalue=yesparamname=languagevalue=enobjectdivscripttype=textjavascriptvardivElement=document.getElementByIdviz1595520161546varvizElement=divElement.getElementsByTagNameobject0ifdivElement.offsetWidth800vizElement.style.width=1000pxvizElement.style.height=1550pxelseifdivElement.offsetWidth500vizElement.style.width=1000pxvizElement.style.height=1550pxelsevizElement.style.width=100%vizElement.style.height=1200pxvarscriptElement=document.createElementscriptscriptElement.src=https:public.tableau.comjavascriptsapiviz_v1.jsvizElement.parentNode.insertBeforescriptElementvizElementscripth1Salary:h1pSalarycostswererelativelylowfortheproject.Wenotethatinstructorexpectationsonpaycontinuetodivergewithwhatourinstitutionpays.pdivclass=tableauPlaceholderid=viz1595520110941style=position:relativenoscriptahref=#imgalt=src=https:#47#47public.tableau.com#47static#47images#47Sk#47SkunkWorksSummary#47InstructionalCostsandExpectations#471_rss.pngstyle=border:noneanoscriptobjectclass=tableauVizstyle=display:noneparamname=host_urlvalue=https%3A%2F%2Fpublic.tableau.com%2Fparamname=embed_code_versionvalue=3paramname=site_rootvalue=paramname=namevalue=SkunkWorksSummary#47InstructionalCostsandExpectationsparamname=tabsvalue=yesparamname=toolbarvalue=yesparamname=static_imagevalue=https:#47#47public.tableau.com#47static#47images#47Sk#47SkunkWorksSummary#47InstructionalCostsandExpectations#471.pngparamname=animate_transitionvalue=yesparamname=display_static_imagevalue=yesparamname=display_spinnervalue=yesparamname=display_overlayvalue=yesparamname=display_countvalue=yesparamname=languagevalue=enobjectdivscripttype=textjavascriptvardivElement=document.getElementByIdviz1595520110941varvizElement=divElement.getElementsByTagNameobject0ifdivElement.offsetWidth800vizElement.style.width=1000pxvizElement.style.height=1550pxelseifdivElement.offsetWidth500vizElement.style.width=1000pxvizElement.style.height=1550pxelsevizElement.style.width=100%vizElement.style.height=1200pxvarscriptElement=document.createElementscriptscriptElement.src=https:public.tableau.comjavascriptsapiviz_v1.jsvizElement.parentNode.insertBeforescriptElementvizElementscripth1ITCostsh1pItcostswerealsolowforthepilotlargelyconsumedbynewfeatureswithafewservicerequests.pdivclass=tableauPlaceholderid=viz1595520272721style=position:relativenoscriptahref=#imgalt=src=https:#47#47public.tableau.com#47static#47images#47Sk#47SkunkWorksSummary#47ITCosts#471_rss.pngstyle=border:noneanoscriptobjectclass=tableauVizstyle=display:noneparamname=host_urlvalue=https%3A%2F%2Fpublic.tableau.com%2Fparamname=embed_code_versionvalue=3paramname=site_rootvalue=paramname=namevalue=SkunkWorksSummary#47ITCostsparamname=tabsvalue=yesparamname=toolbarvalue=yesparamname=static_imagevalue=https:#47#47public.tableau.com#47static#47images#47Sk#47SkunkWorksSummary#47ITCosts#471.pngparamname=animate_transitionvalue=yesparamname=display_static_imagevalue=yesparamname=display_spinnervalue=yesparamname=display_overlayvalue=yesparamname=display_countvalue=yesparamname=languagevalue=enparamname=filtervalue=publish=yesobjectdivscripttype=textjavascriptvardivElement=document.getElementByIdviz1595520272721varvizElement=divElement.getElementsByTagNameobject0ifdivElement.offsetWidth800vizElement.style.width=1000pxvizElement.style.height=1550pxelseifdivElement.offsetWidth500vizElement.style.width=1000pxvizElement.style.height=1550pxelsevizElement.style.width=100%vizElement.style.height=1200pxvarscriptElement=document.createElementscriptscriptElement.src=https:public.tableau.comjavascriptsapiviz_v1.jsvizElement.parentNode.insertBeforescriptElementvizElementscript" } ATTR_ACTION { "" "sort" "SET_TO" "1" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_9_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_8 INPUT FEATURE_TYPE Creator_4_CREATED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "PEBEMPL_PIDM" "999999" "SET_TO" } ATTR_ACTION { "" "PEBEMPL_EMPL_STATUS" "A" "SET_TO" } ATTR_ACTION { "" "PEBEMPL_ECLS_CODE" "ITS" "SET_TO" } ATTR_ACTION { "" "PEBEMPL_CAMPUS_CODE" "M" "SET_TO" } ATTR_ACTION { "" "PEBEMPL_COLL_CODE" "PL" "SET_TO" } ATTR_ACTION { "" "BannerTableName" "PEBEMPL" "SET_TO" } ATTR_ACTION { "_creation_instance" "_creation_instance" "" "REMOVE" } ATTR_ACTION { "" "Dummy" "1" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_8_OUTPUT # ------------------------------------------------------------------------- MACRO FeatureReader_OUTPUT_PORTS_ENCODED public.PEBEMPL public.WebinarBaseInstructors public.WebinarBaseStudents MACRO FeatureReader_DIRECTIVES QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,FEATURES_PER_FETCH,10000,NAMED_CONNECTION,aws.plaid.plaiddemo,READ_TIME_WITH_TIMEZONE,Yes,CREATE_FEATURE_TABLES_FROM_DATA,Yes # Always provide an INTERACTION, otherwise the factory defaults to ENVELOPE_INTERSECTS INCLUDE [if { ( {} == {} ) || ( {($INTERACT_OPTIONS)} == {} ) } { puts {MACRO FCTQUERY_INTERACTION_LINE FCTQUERY_INTERACTION NONE}; } else { puts {MACRO FCTQUERY_INTERACTION_LINE FCTQUERY_INTERACTION ""}; } ] # Consolidate the attribute merge options to what the factory expects DEFAULT_MACRO FeatureReader_COMBINE_ATTRS INCLUDE [ if { {RESULT_ONLY} == {MERGE} } { puts "MACRO FeatureReader_COMBINE_ATTRS "; } else { puts "MACRO FeatureReader_COMBINE_ATTRS RESULT_ONLY"; }; ] INCLUDE [ puts {DEFAULT_MACRO FeatureReaderDataset_FeatureReader aws.plaid.plaiddemo}; ] FACTORY_DEF {*} QueryFactory FACTORY_NAME FeatureReader INPUT FEATURE_TYPE Creator_3_CREATED $(FCTQUERY_INTERACTION_LINE) COMBINE_ATTRIBUTES { $(FeatureReader_COMBINE_ATTRS) } QUERYFCT_ATTRIBUTE_PREFIX { } COMBINE_GEOMETRY { RESULT_ONLY } ENABLE_CACHE { NO } QUERYFCT_TABLE_SEPARATOR { SPACE } READER_TYPE { POSTGRES } READER_DATASET { "$(FeatureReaderDataset_FeatureReader)" } QUERYFCT_IDS { "public.PEBEMPLpublic.WebinarBaseInstructorspublic.WebinarBaseStudents" } READER_DIRECTIVES { META_MACROS,SourceQUERY_FEATURE_TYPES_FOR_MERGE_FILTERSYesSourceREAD_TIME_WITH_TIMEZONEYesSourceNAMED_CONNECTIONaws.plaid.plaiddemoSourceSCHEMAS_FOR_TABLE_LISTINGSourceWHERE_CLAUSESourceEXPOSE_ATTRS_GROUPSourcePOSTGRES_EXPOSE_FORMAT_ATTRSSourceADVANCEDSourceFEATURES_PER_FETCH10000SourceBEGIN_SQLSourceEND_SQLSourceCREATE_FEATURE_TABLES_FROM_DATAYes,METAFILE,POSTGRES } QUERYFCT_OUTPUT { "BASED_ON_CONNECTIONS" } CONTINUE_ON_READER_ERROR YES QUERYFCT_RESULT_TAGS { $(FeatureReader_OUTPUT_PORTS_ENCODED) } QUERYFCT_SET_FME_FEATURE_TYPE YES READER_PARAMS_WWJD { $(FeatureReader_DIRECTIVES) } TREAT_READER_PARAM_AMPERSANDS_AS_LITERALS YES OUTPUT public.PEBEMPL FEATURE_TYPE FeatureReader_public.PEBEMPL OUTPUT public.WebinarBaseInstructors FEATURE_TYPE FeatureReader_public.WebinarBaseInstructors OUTPUT public.WebinarBaseStudents FEATURE_TYPE FeatureReader_public.WebinarBaseStudents FACTORY_DEF * TeeFactory FACTORY_NAME "FeatureReader public.WebinarBaseStudents Splitter" INPUT FEATURE_TYPE FeatureReader_public.WebinarBaseStudents OUTPUT FEATURE_TYPE FeatureReader_public.WebinarBaseStudents_0_713mZzSnt7Q= OUTPUT FEATURE_TYPE FeatureReader_public.WebinarBaseStudents_1_fpWFFHYtqLc= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_14 INPUT FEATURE_TYPE FeatureReader_public.WebinarBaseStudents_1_fpWFFHYtqLc= # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_34 INPUT FEATURE_TYPE FeatureReader_public.WebinarBaseStudents_0_713mZzSnt7Q= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "id" "id" "" "REMOVE" } ATTR_ACTION { "coursetitle" "coursetitle" "" "REMOVE" } ATTR_ACTION { "coursesubject" "coursesubject" "" "REMOVE" } ATTR_ACTION { "coursenumber" "coursenumber" "" "REMOVE" } ATTR_ACTION { "classsize" "classsize" "" "REMOVE" } ATTR_ACTION { "rowid" "rowid" "" "REMOVE" } ATTR_ACTION { "instructorsalutation" "instructorsalutation" "" "REMOVE" } ATTR_ACTION { "instructorid" "instructorid" "" "REMOVE" } ATTR_ACTION { "instructorlastname" "instructorlastname" "" "REMOVE" } ATTR_ACTION { "instructorfirstname" "instructorfirstname" "" "REMOVE" } ATTR_ACTION { "instructoremail" "instructoremail" "" "REMOVE" } ATTR_ACTION { "basestudentnumberwithinclass" "basestudentnumberwithinclass" "" "REMOVE" } ATTR_ACTION { "studentid" "StudentId" "" "RENAME_SET_VALUE" } ATTR_ACTION { "studentanonid" "StudentAnonId" "" "RENAME_SET_VALUE" } ATTR_ACTION { "studentlastname" "studentlastname" "" "REMOVE" } ATTR_ACTION { "studentfirstname" "studentfirstname" "" "REMOVE" } ATTR_ACTION { "studentemail" "studentemail" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_34_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} DuplicateRemoverFactory FACTORY_NAME DuplicateFilter_7 COMMAND_PARM_EVALUATION SINGLE_PASS SUPPORTS_FEATURE_TABLES INPUT FEATURE_TYPE AttributeManager_34_OUTPUT KEY_ATTRIBUTES { StudentAnonId StudentId } INPUT_IS_ORDERED NO PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT UNIQUE FEATURE_TYPE DuplicateFilter_7_UNIQUE # ------------------------------------------------------------------------- FACTORY_DEF {*} SortFactory FACTORY_NAME Sorter_3 INPUT FEATURE_TYPE DuplicateFilter_7_UNIQUE FLUSH_WHEN_GROUPS_CHANGE No SORT_BY { StudentId NUMERIC ASCENDING } OUTPUT SORTED FEATURE_TYPE Sorter_3_SORTED # ------------------------------------------------------------------------- # If we're doing LAST N features, then the multiplier comes in as 0. # If we're doing First N, multiplier is -1. # For RANDOM, we need to treat LAST N as if it was first N (i.e. have a -1) # That is what the ? : does in the rate multiplier. INCLUDE [ if { {0} == {0} && {ORIGINAL} == {ORIGINAL} } { puts "MACRO REAL_MODE LAST"; puts "MACRO REAL_RATE 1"; } else { puts "MACRO REAL_MODE ORIGINAL"; puts "MACRO REAL_RATE [expr 1 * ( 0 ? 0 : -1 ) ]"; } ] FACTORY_DEF {*} SamplingFactory FACTORY_NAME Sampler_2 COMMAND_PARM_EVALUATION SINGLE_PASS SAMPLE_RATE $(REAL_RATE) SAMPLE_ORDER $(REAL_MODE) FLUSH_WHEN_GROUPS_CHANGE No INPUT FEATURE_TYPE Sorter_3_SORTED OUTPUT SAMPLED FEATURE_TYPE ___SAMPLED___ # This TeeFactory is needed because Sampler will still output features if it has no OUTPUT clauses specified. # This way we behave nicely even if there are no output connections on the transformer. See PR#28886. FACTORY_DEF * TeeFactory FACTORY_NAME Sampler_2_Sampled INPUT FEATURE_TYPE ___SAMPLED___ OUTPUT FEATURE_TYPE Sampler_2_SAMPLED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_32 INPUT FEATURE_TYPE Sampler_2_SAMPLED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "MaxExistingStudentId" "EvaluateValueStudentId+1" "SET_TO" } ATTR_ACTION { "StudentId" "StudentId" "" "REMOVE" } ATTR_ACTION { "StudentAnonId" "StudentAnonId" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_32_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_33 INPUT FEATURE_TYPE FeatureReader_public.WebinarBaseInstructors MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "id" "ID" "" "RENAME_SET_VALUE" } ATTR_ACTION { "coursetitle" "CourseTitle" "" "RENAME_SET_VALUE" } ATTR_ACTION { "midpoint___how_much_do_you_think_you__should__get_paid_to_teach" "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "" "RENAME_SET_VALUE" } ATTR_ACTION { "midpoint___how_much_do_you_think_you_would__actually__get_paid_" "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "" "RENAME_SET_VALUE" } ATTR_ACTION { "coursesubject" "CourseSubject" "" "RENAME_SET_VALUE" } ATTR_ACTION { "coursenumber" "CourseNumber" "" "RENAME_SET_VALUE" } ATTR_ACTION { "classsize" "ClassSize" "" "RENAME_SET_VALUE" } ATTR_ACTION { "rowid" "rowId" "" "RENAME_SET_VALUE" } ATTR_ACTION { "instructorsalutation" "InstructorSalutation" "" "RENAME_SET_VALUE" } ATTR_ACTION { "instructorid" "InstructorId" "" "RENAME_SET_VALUE" } ATTR_ACTION { "instructorlastname" "InstructorLastName" "" "RENAME_SET_VALUE" } ATTR_ACTION { "instructorfirstname" "InstructorFirstName" "" "RENAME_SET_VALUE" } ATTR_ACTION { "instructoremail" "InstructorEmail" "" "RENAME_SET_VALUE" } ATTR_ACTION { "" "Source" "Existing" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_33_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_21 INPUT FEATURE_TYPE FeatureReader_public.PEBEMPL OUTPUT FEATURE_TYPE Junction_21_Output # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_37 INPUT FEATURE_TYPE Junction_21_Output MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "pebempl_pidm" "PEBEMPL_PIDM" "" "RENAME_SET_VALUE" } ATTR_ACTION { "pebempl_empl_status" "pebempl_empl_status" "" "REMOVE" } ATTR_ACTION { "pebempl_ecls_code" "pebempl_ecls_code" "" "REMOVE" } ATTR_ACTION { "pebempl_campus_code" "pebempl_campus_code" "" "REMOVE" } ATTR_ACTION { "pebempl_coll_code" "pebempl_coll_code" "" "REMOVE" } ATTR_ACTION { "bannertablename" "bannertablename" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_37_OUTPUT # ------------------------------------------------------------------------- INCLUDE [ if { {MATCH} == {EXCEPT} } { puts {MACRO ChangeDetector_2_ATTRMATCH MATCH_ALL_ATTRS_EXCEPT { PEBEMPL_PIDM } }; } elseif { {MATCH} == {ALL} } { puts {MACRO ChangeDetector_2_ATTRMATCH MATCH_ALL_ATTRIBUTES}; } elseif { {MATCH} == {MATCH} } { puts {MACRO ChangeDetector_2_ATTRMATCH MATCH_ATTRIBUTES { PEBEMPL_PIDM } }; } else { puts {MACRO ChangeDetector_2_ATTRMATCH MATCH_ATTRIBUTES}; }; if { {ORIGINAL} == {REVISED} } { puts {MACRO ChangeDetector_2_OUTPUT_UNCHANGED_MACRO }; } elseif { {ORIGINAL} == {BOTH} } { puts {MACRO ChangeDetector_2_OUTPUT_UNCHANGED_MACRO }; } else { puts {MACRO ChangeDetector_2_OUTPUT_UNCHANGED_MACRO }; }; ] FACTORY_DEF {*} MatchingFactory FACTORY_NAME ChangeDetector_2_Matcher INPUT ORIGINAL FEATURE_TYPE AttributeManager_37_OUTPUT INPUT REVISED FEATURE_TYPE AttributeManager_8_OUTPUT CHANGE_DETECTOR_MODE YES MATCH_GEOMETRY FULL UPDATED_LIST_NAME "" PRE_MATCH_ATTRIBUTES { } $(ChangeDetector_2_ATTRMATCH) BLANK_AND_MISSING_DIFFER No BLANK_AND_MISSING_NAMES_TRAITS_DIFFER No CHECK_TYPES_AND_ENCODINGS No VECTOR_TOLERANCE 0 LENIENT_GEOMETRY_MATCH No CHECK_COORDINATE_SYSTEMS No ADD_TO_MATCHED $(ChangeDetector_2_OUTPUT_UNCHANGED_MACRO) OUTPUT ADDED FEATURE_TYPE ChangeDetector_2_INSERTED FACTORY_DEF * TeeFactory FACTORY_NAME "ChangeDetector_2 INSERTED Splitter" INPUT FEATURE_TYPE ChangeDetector_2_INSERTED OUTPUT FEATURE_TYPE ChangeDetector_2_INSERTED_0_FSctaKPiIIY= OUTPUT FEATURE_TYPE ChangeDetector_2_INSERTED_1_76PesHXRV0M= # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_35 INPUT FEATURE_TYPE ChangeDetector_2_INSERTED_1_76PesHXRV0M= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "PHRHIST_PIDM" "ValuePEBEMPL_PIDM" "SET_TO" } ATTR_ACTION { "" "PHRHIST_SEQ_NO" "1" "SET_TO" } ATTR_ACTION { "" "PHRHIST_TYPE_DESC" "Hourly" "SET_TO" } ATTR_ACTION { "" "PHRHIST_GROSS" "50" "SET_TO" } ATTR_ACTION { "" "PHRHIST_NET" "EvaluateValuePHRHIST_GROSS*.80" "SET_TO" } ATTR_ACTION { "" "PHRHIST_EVENT_DATE" "DateTimeNow" "SET_TO" } ATTR_ACTION { "PEBEMPL_PIDM" "PEBEMPL_PIDM" "" "REMOVE" } ATTR_ACTION { "PEBEMPL_EMPL_STATUS" "PEBEMPL_EMPL_STATUS" "" "REMOVE" } ATTR_ACTION { "PEBEMPL_ECLS_CODE" "PEBEMPL_ECLS_CODE" "" "REMOVE" } ATTR_ACTION { "PEBEMPL_CAMPUS_CODE" "PEBEMPL_CAMPUS_CODE" "" "REMOVE" } ATTR_ACTION { "PEBEMPL_COLL_CODE" "PEBEMPL_COLL_CODE" "" "REMOVE" } ATTR_ACTION { "BannerTableName" "BannerTableName" "" "REMOVE" } ATTR_ACTION { "" "BannerTableName" "PHRHIST" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_35_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Creator_2_CREATED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "TermStartDate" "SET_TO" "DateTimeCreate20205112300-08" } ATTR_ACTION { "" "DaysToAdd" "SET_TO" "EvaluateValue_creation_instance*14" } ATTR_ACTION { "" "PayDate" "SET_TO" "DateTimeAddValueTermStartDatePValueDaysToAddD" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_19 INPUT FEATURE_TYPE AttributeCreator_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "TermStartDate" "TermStartDate" "" "REMOVE" } ATTR_ACTION { "DaysToAdd" "DaysToAdd" "" "REMOVE" } ATTR_ACTION { "_creation_instance" "_creation_instance" "" "REMOVE" } ATTR_ACTION { "" "Dummy" "1" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_19_OUTPUT # ------------------------------------------------------------------------- Lookup AttributeValueMapper_LOOKUP_TABLE 0 BachelorofArts 1 BachelorofScience 2 DiplomaofNursing 3 CertificateofDataAnalytics 4 ApprenticeshipinWelding "" "" ENCODED_SUPPORTUNICODE FACTORY_DEF * TeeFactory FACTORY_NAME AttributeValueMapper INPUT FEATURE_TYPE Creator_CREATED OUTPUT FEATURE_TYPE AttributeValueMapper_OUTPUT @Lookup(AttributeValueMapper_LOOKUP_TABLE,"CredentialId",FORWARD|ENCODED_ATTR|REAL_NULL_SUPPORT, Credential) # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_44 INPUT FEATURE_TYPE public.SFRSTCR_POSTGRES_1 MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "sis_course_id" "Valuesfrstcr_term_codeValuesfrstcr__crn" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_44_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} DuplicateRemoverFactory FACTORY_NAME DuplicateFilter_9 COMMAND_PARM_EVALUATION SINGLE_PASS SUPPORTS_FEATURE_TABLES INPUT FEATURE_TYPE public.SSBSECT_POSTGRES_1_1_ntv+UFgA75k= KEY_ATTRIBUTES { ssbsect_term_code } INPUT_IS_ORDERED NO PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT UNIQUE FEATURE_TYPE DuplicateFilter_9_UNIQUE # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_18 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE Junction_32_Output_1_zfVLbO1+ftA= INPUT RIGHT FEATURE_TYPE DuplicateFilter_9_UNIQUE JOIN_MODE Inner JOIN_KEYS term_sis_term_id ssbsect_term_code AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT UNJOINED_RIGHT FEATURE_TYPE FeatureJoiner_18_UNJOINED_RIGHT # ------------------------------------------------------------------------- INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } { puts "MACRO FeatureMerger_4_REFERENCE_INFO ATTRIBUTES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_4_REFERENCE_INFO GEOM_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_4_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_4_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_4_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_4_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_4_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} } { puts "MACRO FeatureMerger_4_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } { puts "MACRO FeatureMerger_4_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } else {}; ] FACTORY_DEF {*} ReferenceFactory FACTORY_NAME FeatureMerger_4 FLUSH_WHEN_GROUPS_CHANGE No INPUT REFERENCER FEATURE_TYPE FeatureJoiner_18_UNJOINED_RIGHT INPUT REFERENCEE FEATURE_TYPE Junction_29_Output_2_1x2JJm6HheM= REFERENCE_INFO $(FeatureMerger_4_REFERENCE_INFO) REFERENCE_TABLE 1 1 AUTO ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "REQUESTOR_IF_CONFLICT" IGNORE_NULLS "No" HANDLE_NULL_MISSING_KEYS_LIKE_FME2013 No LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE MERGE_ATTRIBUTES Yes MANAGE_FME_TYPE Yes MODE COMPLETE PROCESS_DUPLICATE_REFERENCEES NO REFERENCEES_FIRST No REJECT_INVALID_GEOM YES CLEANING_TOLERANCE OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_4_MERGED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_41 INPUT FEATURE_TYPE FeatureMerger_4_MERGED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "name" "FME_CONDITIONAL:DEFAULT_VALUE'_FME_NO_OP_'BOOL_OP;OR;COMPOSITE_TEST;1;TEST TrimRightValuessbsect_term_code2 = 10'WinterLeftValuessbsect_term_code4'BOOL_OP;OR;COMPOSITE_TEST;1;TEST TrimRightValuessbsect_term_code2 = 20'SummerLeftValuessbsect_term_code4'BOOL_OP;OR;COMPOSITE_TEST;1;TEST TrimRightValuessbsect_term_code2 = 30'FallLeftValuessbsect_term_code4'FME_NUM_CONDITIONS4___" "SET_TO" } ATTR_ACTION { "" "start_at" "FME_CONDITIONAL:DEFAULT_VALUE'_FME_NO_OP_'BOOL_OP;OR;COMPOSITE_TEST;1;TEST TrimRightValuessbsect_term_code2 = 10'LeftValuessbsect_term_code40101000000-08:00'BOOL_OP;OR;COMPOSITE_TEST;1;TEST TrimRightValuessbsect_term_code2 = 20'LeftValuessbsect_term_code40501000000-07:00'BOOL_OP;OR;COMPOSITE_TEST;1;TEST TrimRightValuessbsect_term_code2 = 30'LeftValuessbsect_term_code40901000000-07:00'FME_NUM_CONDITIONS4___" "SET_TO" } ATTR_ACTION { "" "end_at" "FME_CONDITIONAL:DEFAULT_VALUE'_FME_NO_OP_'BOOL_OP;OR;COMPOSITE_TEST;1;TEST TrimRightValuessbsect_term_code2 = 10'LeftValuessbsect_term_code40430235959-07:00'BOOL_OP;OR;COMPOSITE_TEST;1;TEST TrimRightValuessbsect_term_code2 = 20'LeftValuessbsect_term_code40831235959-07:00'BOOL_OP;OR;COMPOSITE_TEST;1;TEST TrimRightValuessbsect_term_code2 = 30'LeftValuessbsect_term_code41231235959-08:00'FME_NUM_CONDITIONS4___" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_41_OUTPUT # ------------------------------------------------------------------------- DEFAULT_MACRO DateTimeConverter_EXPRESSION_LIST INCLUDE [ set repairInput {}; if {{YES} eq {YES}} { set repairInput "repair"; }; set inFormat {FME|ISO}; if { {} ne {} } { set inFormat {}; if { [string first "" $inFormat] != -1 } { set inFormat [string map {"" ""} $inFormat]; }; }; set outFormat {ISO}; if { [string first "" $outFormat] != -1 } { set outFormat [string map {"" ""} $outFormat]; }; set parmList {}; set attrs {end_at start_at}; foreach attr $attrs { lappend parmList $attr; set funcAttr $attr; if { [string first "" $attr] != -1 } { set funcAttr [string map {"" ""} $attr]; append funcAttr ""; set funcAttr "$funcAttr"; }; lappend parmList DateTimeFormatDateTimeParseValue$funcAttr$inFormat$repairInput$outFormat; }; puts "MACRO DateTimeConverter_EXPRESSION_LIST [join $parmList { }]"; ] Tcl2 proc DateTimeConverter_da3659eb_49a1_4629_ae31_9aeff633dc5c0_DateTimeConverter {} { set attrs {end_at start_at}; set decodedAttrs {}; set attrVals {}; set attrNulls {}; set attrMissings {}; foreach attr $attrs { set decodedAttr [FME_DecodeText $attr]; lappend decodedAttrs $decodedAttr; lappend attrVals [FME_GetAttribute $decodedAttr]; lappend attrNulls [FME_IsAttributeNull $decodedAttr]; lappend attrExists [FME_AttributeExists $decodedAttr]; }; FME_Execute EvaluateExpression ATTR_CREATE_EXPR_PROPAGATE_MISSING_FDIV $(DateTimeConverter_EXPRESSION_LIST) DateTimeConverter; foreach attr $decodedAttrs oldAttrVal $attrVals oldAttrExists $attrExists oldAttrNull $attrNulls { set newAttrVal [FME_GetAttribute $attr]; if {[string length $newAttrVal] == 0} { if {{NO} eq {NO} || [string length $oldAttrVal] > 0} { FME_SetAttribute fme_rejection_code "INVALID_INPUT"; break; } elseif {!$oldAttrExists} { FME_UnsetAttributes $attr; } elseif {!$oldAttrNull} { FME_SetAttribute $attr {}; }; } }; } FACTORY_DEF * TeeFactory FACTORY_NAME DateTimeConverter_1 INPUT FEATURE_TYPE AttributeManager_41_OUTPUT OUTPUT FEATURE_TYPE ___TOREJECTOR___ @RenameAttributes(FME_STRICT, ___fme_rejection_code___,fme_rejection_code) @Tcl2(DateTimeConverter_da3659eb_49a1_4629_ae31_9aeff633dc5c0_DateTimeConverter) FACTORY_DEF * TestFactory FACTORY_NAME DateTimeConverter_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) != "" FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT FAILED FEATURE_TYPE DateTimeConverter_OUTPUT @RenameAttributes(FME_STRICT, fme_rejection_code,___fme_rejection_code___) # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller_7 INPUT FEATURE_TYPE DateTimeConverter_OUTPUT TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,$(Canvas_URL$encode)apiv1accountsValueaccount_idterms.json,HTTPCaller_7)" HTTP_METHOD POST SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "@EvaluateExpression(FDIV,STRING_ENCODED,enrollment_term:name:Valuenamestart_at:Valuestart_atend_at:Valueend_atsis_term_id:Valuessbsect_term_code,HTTPCaller_7)" MULTIPART_UPLOAD NO UPLOAD_CONTENT_TYPE "application/json" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer$(Canvas_Key$encode),HTTPCaller_7) ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_7_Output OUTPUT REJECTED FEATURE_TYPE HTTPCaller_7_ FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_7 Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_7_ # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter_10 INPUT FEATURE_TYPE HTTPCaller_7_Output MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS YES EXTRACT_ATTR Yes PREF_STRING "term_" JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "json" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_10_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_10_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_10 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_10_ # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_24 INPUT FEATURE_TYPE JSONFragmenter_10_FRAGMENTS INPUT FEATURE_TYPE Junction_32_Output_0_ky8Q1j+E204= OUTPUT FEATURE_TYPE Junction_24_Output # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_31 INPUT FEATURE_TYPE Junction_24_Output OUTPUT FEATURE_TYPE Junction_31_Output # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_27 INPUT FEATURE_TYPE public.SSBSECT_POSTGRES_1_0_0ImAijfkOTY= OUTPUT FEATURE_TYPE Junction_27_Output # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_28 INPUT FEATURE_TYPE Junction_27_Output OUTPUT FEATURE_TYPE Junction_28_Output # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_29 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE public.SIRASGN_POSTGRES_1_1_1azYlXM2bGM= INPUT RIGHT FEATURE_TYPE public.SPRIDEN_POSTGRES_1_1_58R9X4K7RcM= JOIN_MODE Inner JOIN_KEYS sirasgn_pidm spriden_pidm AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_29_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_45 INPUT FEATURE_TYPE FeatureJoiner_29_JOINED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "sirasgn_pidm" "pidm" "" "RENAME_SET_VALUE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_45_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_43 INPUT FEATURE_TYPE public.SIRASGN_POSTGRES_1_0_tdiyWK7Hv1Y= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "sis_course_id" "Valuesirasgn_term_codeValuesirasgn_crn" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_43_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_22 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE public.SGBSTDN_POSTGRES_1 INPUT RIGHT FEATURE_TYPE public.SPRIDEN_POSTGRES_1_0_iNuIUxkZOmQ= JOIN_MODE Inner JOIN_KEYS sgbstdn_pidm spriden_pidm AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_22_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_46 INPUT FEATURE_TYPE FeatureJoiner_22_JOINED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "sgbstdn_pidm" "pidm" "" "RENAME_SET_VALUE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_46_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_17 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE Junction_33_Output_1_TFqTNJlB81A= INPUT RIGHT FEATURE_TYPE AttributeManager_46_OUTPUT INPUT RIGHT FEATURE_TYPE AttributeManager_45_OUTPUT JOIN_MODE Inner JOIN_KEYS user_sis_user_id pidm AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT UNJOINED_RIGHT FEATURE_TYPE FeatureJoiner_17_UNJOINED_RIGHT # ------------------------------------------------------------------------- INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } { puts "MACRO FeatureMerger_3_REFERENCE_INFO ATTRIBUTES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} } { puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } { puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } else {}; ] FACTORY_DEF {*} ReferenceFactory FACTORY_NAME FeatureMerger_3 FLUSH_WHEN_GROUPS_CHANGE No INPUT REFERENCER FEATURE_TYPE FeatureJoiner_17_UNJOINED_RIGHT INPUT REFERENCEE FEATURE_TYPE Junction_29_Output_1_x1TeixbhRbo= REFERENCE_INFO $(FeatureMerger_3_REFERENCE_INFO) REFERENCE_TABLE 1 1 AUTO ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "REQUESTOR_IF_CONFLICT" IGNORE_NULLS "No" HANDLE_NULL_MISSING_KEYS_LIKE_FME2013 No LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE MERGE_ATTRIBUTES Yes MANAGE_FME_TYPE Yes MODE COMPLETE PROCESS_DUPLICATE_REFERENCEES NO REFERENCEES_FIRST No REJECT_INVALID_GEOM YES CLEANING_TOLERANCE OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_3_MERGED # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller INPUT FEATURE_TYPE FeatureMerger_3_MERGED TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,$(Canvas_URL$encode)apiv1accountsValueaccount_idusers.json,HTTPCaller)" HTTP_METHOD POST SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "@EvaluateExpression(FDIV,STRING_ENCODED,user:name:Valuespriden_first_nameValuespriden_last_nameskip_registration:truepseudonym:unique_id:Valuespriden_emailsend_confirmation:truesis_user_id:Valuepidmintegration_id:Valuespriden_idauthentication_provider_id:canvaspassword:testing123,HTTPCaller)" MULTIPART_UPLOAD NO UPLOAD_CONTENT_TYPE "application/json" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer$(Canvas_Key$encode),HTTPCaller) ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_Output OUTPUT REJECTED FEATURE_TYPE HTTPCaller_ FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_ # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter_11 INPUT FEATURE_TYPE HTTPCaller_Output MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS YES EXTRACT_ATTR Yes PREF_STRING "user_" JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "json" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_11_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_11_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_11 FRAGMENTS Splitter" INPUT FEATURE_TYPE JSONFragmenter_11_FRAGMENTS OUTPUT FEATURE_TYPE JSONFragmenter_11_FRAGMENTS_0_CGSanSIQ07A= OUTPUT FEATURE_TYPE JSONFragmenter_11_FRAGMENTS_1_r/y2xOqYtG0= FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_11 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_11_ # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_25 INPUT FEATURE_TYPE JSONFragmenter_11_FRAGMENTS_1_r/y2xOqYtG0= INPUT FEATURE_TYPE Junction_33_Output_0_TB8djziBbiU= OUTPUT FEATURE_TYPE Junction_25_Output # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_26 INPUT FEATURE_TYPE Junction_25_Output OUTPUT FEATURE_TYPE Junction_26_Output FACTORY_DEF * TeeFactory FACTORY_NAME "Junction_26 Output Splitter" INPUT FEATURE_TYPE Junction_26_Output OUTPUT FEATURE_TYPE Junction_26_Output_0_m9yDYvBvIJM= OUTPUT FEATURE_TYPE Junction_26_Output_1_pO6qjOXe7KA= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "CanvasHTTPCaller_4 HTTPCaller_2_Input Input Collector" INPUT FEATURE_TYPE JSONFragmenter_2_FRAGMENTS_0_uQcX+vFmlpM= INPUT FEATURE_TYPE JSONFragmenter_11_FRAGMENTS_0_CGSanSIQ07A= OUTPUT FEATURE_TYPE CanvasHTTPCaller_4_HTTPCaller_2_Input MACRO CanvasHTTPGet_WORKSPACE_NAME CanvasHTTPCaller_4 MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_XFORMER_NAME CanvasHTTPCaller_4 MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(CanvasHTTPGet_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_SUB_DOC_NAME CanvasHTTPGet MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_URL $(Canvas_URL) MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_Key $(Canvas_Key) MACRO $(CanvasHTTPGet_WORKSPACE_NAME)_API_Endpoint users/@Value(user_id)/enrollments DEFAULT_MACRO CanvasHTTPGet_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(CanvasHTTPGet_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(CanvasHTTPGet_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" TEST url ATTRIBUTE_IS_MISSING "" ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_PASSED" OUTPUT FAILED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_FAILED" # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_PASSED" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "url" "$($(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_URL$encode)apiv1$($(CanvasHTTPGet_WORKSPACE_NAME)_API_Endpoint$encode)" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_2_OUTPUT" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_FAILED" TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,Valueurl,$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2)" HTTP_METHOD GET SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "" MULTIPART_UPLOAD UPLOAD_CONTENT_TYPE "" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer$($(CanvasHTTPGet_WORKSPACE_NAME)_Canvas_Key$encode),$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2) ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "_response_headers" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" OUTPUT REJECTED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 Output Splitter" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_0_21OcRCDh7rc=" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_1_uk4lCA8YJDI=" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2 Transformer Output Nuker" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_" # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_1_uk4lCA8YJDI=" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "url" "url" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output_0_21OcRCDh7rc=" LIST_NAME "_response_headers{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY ATTR_ACCUM_MODE "PREFIX_INCOMING" ATTR_CONFLICT_RES "" INCOMING_PREFIX "header_" OUTPUT ELEMENT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_ELEMENTS" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_ELEMENTS" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,Valueheader_name,$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2)" = Link ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2_PASSED" # ------------------------------------------------------------------------- Tcl2 proc $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_3fda7cc3_5d60_457d_9caa_edcf722486894_doSplit {} { set splitDelimiter [FME_DecodeTextOrAttr {}]; if { [regexp {^([1-9][0-9]*s)+$} $splitDelimiter] } { set splitWidths [split [regsub -all {s$} $splitDelimiter {}] s]; set source [FME_GetAttribute [FME_DecodeText {header_value}]]; set attrNum 0; set listName [FME_DecodeText {_link}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width $splitWidths { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; } else { set delimLength [string length $splitDelimiter]; set source [FME_GetAttribute [FME_DecodeText {header_value}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $splitDelimiter $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $splitDelimiter $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_link}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } FACTORY_DEF * TeeFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_2_PASSED" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_OUTPUT" @Tcl2($(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_3fda7cc3_5d60_457d_9caa_edcf722486894_doSplit) # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeSplitter_OUTPUT" LIST_NAME "_link{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "INCOMING_IF_CONFLICT" INCOMING_PREFIX "" OUTPUT ELEMENT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2_ELEMENTS" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_ListExploder_2_ELEMENTS" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "_response_body" "_response_body" "" "REMOVE" } ATTR_ACTION { "_http_status_code" "_http_status_code" "" "REMOVE" } ATTR_ACTION { "header_name" "header_name" "" "REMOVE" } ATTR_ACTION { "header_value" "header_value" "" "REMOVE" } ATTR_ACTION { "_element_index" "_element_index" "" "REMOVE" } ATTR_ACTION { "" "url" "ReplaceStringReplaceStringLeftValue_linkFindStringValue_link" "SET_TO" } ATTR_ACTION { "" "_link_rel" "ReplaceStringReplaceStringTrimRightValue_linkStringLengthValue_link-FindStringValue_link-1rel=" "SET_TO" } ATTR_ACTION { "_link" "_link" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_OUTPUT" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,Value_link_rel,$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3)" = next ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3_PASSED" FACTORY_DEF * BranchingFactory TARGET_FACTORY "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" FACTORY_NAME "Loop to $(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input1596844345 Input Splitter" MAXIMUM_COUNT -1 INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_Tester_3_PASSED" OUTPUT PASSED FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Input" FACTORY_DEF * TeeFactory FACTORY_NAME "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output1596844345 Output Collector" INPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_AttributeManager_3_OUTPUT" OUTPUT FEATURE_TYPE "$(CanvasHTTPGet_WORKSPACE_NAME)_HTTPCaller_2_Output" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(CanvasHTTPGet_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "CanvasHTTPCaller_4 HTTPCaller_2_Output Output Renamer/Nuker" INPUT FEATURE_TYPE CanvasHTTPCaller_4_HTTPCaller_2_Output OUTPUT FEATURE_TYPE CanvasHTTPCaller_4_HTTPCaller_2_Output # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter_12 INPUT FEATURE_TYPE CanvasHTTPCaller_4_HTTPCaller_2_Output MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS NO EXTRACT_ATTR Yes PREF_STRING "enrollment_" JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "json*" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_12_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_12_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_12 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_12_ # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME AttributeFilter INPUT FEATURE_TYPE JSONFragmenter_12_FRAGMENTS OUTPUT FEATURE_TYPE AttributeFilter_FILTER FACTORY_DEF * AttributeFilterFactory FACTORY_NAME AttributeFilter_Filter COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeFilter_FILTER FILTER_ATTRIBUTE enrollment_type FILTER_VALUES EMPTY MISSING NULL UNFILTERED StudentEnrollment TeacherEnrollment PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT EMPTY FEATURE_TYPE AttributeFilter_EMPTY OUTPUT MISSING FEATURE_TYPE AttributeFilter_MISSING OUTPUT NULL FEATURE_TYPE AttributeFilter_NULL OUTPUT UNFILTERED FEATURE_TYPE AttributeFilter_UNFILTERED OUTPUT StudentEnrollment FEATURE_TYPE AttributeFilter_StudentEnrollment OUTPUT TeacherEnrollment FEATURE_TYPE AttributeFilter_TeacherEnrollment FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter EMPTY Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_EMPTY FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter MISSING Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_MISSING FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter NULL Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_NULL FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter UNFILTERED Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_UNFILTERED # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_23 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE AttributeFilter_TeacherEnrollment INPUT RIGHT FEATURE_TYPE AttributeManager_43_OUTPUT JOIN_MODE Inner JOIN_KEYS user_sis_user_id sirasgn_pidm AUTO enrollment_sis_course_id sis_course_id AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT UNJOINED_RIGHT FEATURE_TYPE FeatureJoiner_23_UNJOINED_RIGHT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_26 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE AttributeFilter_StudentEnrollment INPUT RIGHT FEATURE_TYPE AttributeManager_44_OUTPUT JOIN_MODE Inner JOIN_KEYS user_sis_user_id sfrstcr_pidm AUTO enrollment_sis_course_id sis_course_id AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT UNJOINED_RIGHT FEATURE_TYPE FeatureJoiner_26_UNJOINED_RIGHT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_19 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE Junction_28_Output INPUT RIGHT FEATURE_TYPE public.SCBCRSE_POSTGRES_1 JOIN_MODE Inner JOIN_KEYS ssbsect_subj_code scbcrse_subj_code AUTO ssbsect_crse_numb scbcrse_crse_numb AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_19_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_42 INPUT FEATURE_TYPE FeatureJoiner_19_JOINED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "sis_course_id" "Valuessbsect_term_codeValuessbsect_crn" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_42_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_20 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE Junction_30_Output_1_xiKTdIRS7jY= INPUT RIGHT FEATURE_TYPE AttributeManager_42_OUTPUT JOIN_MODE Inner JOIN_KEYS course_sis_course_id sis_course_id AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT UNJOINED_RIGHT FEATURE_TYPE FeatureJoiner_20_UNJOINED_RIGHT # ------------------------------------------------------------------------- INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } { puts "MACRO FeatureMerger_5_REFERENCE_INFO ATTRIBUTES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_5_REFERENCE_INFO GEOM_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_5_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_5_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_5_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_5_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_5_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} } { puts "MACRO FeatureMerger_5_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } { puts "MACRO FeatureMerger_5_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } else {}; ] FACTORY_DEF {*} ReferenceFactory FACTORY_NAME FeatureMerger_5 FLUSH_WHEN_GROUPS_CHANGE No INPUT REFERENCER FEATURE_TYPE FeatureJoiner_20_UNJOINED_RIGHT INPUT REFERENCEE FEATURE_TYPE Junction_29_Output_0_kD6arJ9W6NQ= REFERENCE_INFO $(FeatureMerger_5_REFERENCE_INFO) REFERENCE_TABLE 1 1 AUTO ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "REQUESTOR_IF_CONFLICT" IGNORE_NULLS "No" HANDLE_NULL_MISSING_KEYS_LIKE_FME2013 No LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE MERGE_ATTRIBUTES Yes MANAGE_FME_TYPE Yes MODE COMPLETE PROCESS_DUPLICATE_REFERENCEES NO REFERENCEES_FIRST No REJECT_INVALID_GEOM YES CLEANING_TOLERANCE OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_5_MERGED # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_21 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE FeatureMerger_5_MERGED INPUT RIGHT FEATURE_TYPE Junction_31_Output JOIN_MODE Inner JOIN_KEYS ssbsect_term_code term_sis_term_id AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_21_JOINED # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller_10 INPUT FEATURE_TYPE FeatureJoiner_21_JOINED TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,$(Canvas_URL$encode)apiv1accountsValueaccount_idcourses.json,HTTPCaller_10)" HTTP_METHOD POST SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "@EvaluateExpression(FDIV,STRING_ENCODED,course:name:Valuescbcrse_titlecourse_code:Valuescbcrse_subj_codeValuescbcrse_crse_numbterm_id:Valueterm_idsis_course_id:Valuesis_course_idopen_enrollment:falseself_enrollment:false,HTTPCaller_10)" MULTIPART_UPLOAD NO UPLOAD_CONTENT_TYPE "application/json" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer$(Canvas_Key$encode),HTTPCaller_10) ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_10_Output OUTPUT REJECTED FEATURE_TYPE HTTPCaller_10_ FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_10 Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_10_ # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter_13 INPUT FEATURE_TYPE HTTPCaller_10_Output MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS YES EXTRACT_ATTR Yes PREF_STRING "course_" JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "json" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_13_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_13_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_13 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_13_ # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_23 INPUT FEATURE_TYPE JSONFragmenter_13_FRAGMENTS INPUT FEATURE_TYPE Junction_30_Output_0_qUsM8sh2Fpg= OUTPUT FEATURE_TYPE Junction_23_Output # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_22 INPUT FEATURE_TYPE Junction_23_Output OUTPUT FEATURE_TYPE Junction_22_Output FACTORY_DEF * TeeFactory FACTORY_NAME "Junction_22 Output Splitter" INPUT FEATURE_TYPE Junction_22_Output OUTPUT FEATURE_TYPE Junction_22_Output_0_J9D+iaPKpa0= OUTPUT FEATURE_TYPE Junction_22_Output_1_PDHW9jjpmhI= # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_24 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE FeatureJoiner_23_UNJOINED_RIGHT INPUT RIGHT FEATURE_TYPE Junction_22_Output_1_PDHW9jjpmhI= JOIN_MODE Inner JOIN_KEYS sis_course_id course_sis_course_id AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_24_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_25 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE FeatureJoiner_24_JOINED INPUT RIGHT FEATURE_TYPE Junction_26_Output_0_m9yDYvBvIJM= JOIN_MODE Inner JOIN_KEYS sirasgn_pidm user_sis_user_id AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_25_JOINED # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller_13 INPUT FEATURE_TYPE FeatureJoiner_25_JOINED TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,$(Canvas_URL$encode)apiv1coursesValuecourse_idenrollments,HTTPCaller_13)" HTTP_METHOD POST SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "@EvaluateExpression(FDIV,STRING_ENCODED,enrollment:user_id:Valueuser_idtype:TeacherEnrollmentenrollment_state:active,HTTPCaller_13)" MULTIPART_UPLOAD NO UPLOAD_CONTENT_TYPE "application/json" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer$(Canvas_Key$encode),HTTPCaller_13) ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_13_Output OUTPUT REJECTED FEATURE_TYPE HTTPCaller_13_ FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_13 Output Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_13_Output FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_13 Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_13_ # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_27 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE FeatureJoiner_26_UNJOINED_RIGHT INPUT RIGHT FEATURE_TYPE Junction_22_Output_0_J9D+iaPKpa0= JOIN_MODE Inner JOIN_KEYS sis_course_id course_sis_course_id AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_27_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_28 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE FeatureJoiner_27_JOINED INPUT RIGHT FEATURE_TYPE Junction_26_Output_1_pO6qjOXe7KA= JOIN_MODE Inner JOIN_KEYS sfrstcr_pidm user_sis_user_id AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_28_JOINED # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller_14 INPUT FEATURE_TYPE FeatureJoiner_28_JOINED TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,$(Canvas_URL$encode)apiv1coursesValuecourse_idenrollments,HTTPCaller_14)" HTTP_METHOD POST SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "@EvaluateExpression(FDIV,STRING_ENCODED,enrollment:user_id:Valueuser_idtype:StudentEnrollmentenrollment_state:active,HTTPCaller_14)" MULTIPART_UPLOAD NO UPLOAD_CONTENT_TYPE "application/json" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer$(Canvas_Key$encode),HTTPCaller_14) ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_14_Output OUTPUT REJECTED FEATURE_TYPE HTTPCaller_14_ FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_14 Output Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_14_Output FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_14 Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_14_ # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_18 INPUT FEATURE_TYPE FeatureRequests_XLSXR_3_1_mpjoYgYSRVM= OUTPUT FEATURE_TYPE Junction_18_Output # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_5 COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE FeatureRequests_XLSXR_3_0_3nNjcO4L19Q= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "Dummy" "SET_TO" "1" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_5_OUTPUT # ------------------------------------------------------------------------- # Create the DomainName that this transformer will use. # Because @Count itself will evalute the expression to calculate the # domain, we don't need to do anything in Tcl per feature going by INCLUDE [ set domainPrefix {}; if { {Local} == {Local} } { set domainPrefix [FME_EncodeText {Counter_3_}]; }; puts "MACRO Counter_3_FULL_DOMAIN ${domainPrefix}counter"; ] FACTORY_DEF * ExecuteFunctionFactory FACTORY_NAME Counter_3_Rejector COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeCreator_5_OUTPUT FUNCTION_DEFINITION @Count(REJECTABLE_WITH_FLAG,fme_encoded,$(Counter_3_FULL_DOMAIN),"1") RESULT_ATTRIBUTE "_count" FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT COMPLETE FEATURE_TYPE Counter_3_OUTPUT OUTPUT REJECTED FEATURE_TYPE Counter_3_ FACTORY_DEF * TeeFactory FACTORY_NAME "Counter_3 Transformer Output Nuker" INPUT FEATURE_TYPE Counter_3_ # ------------------------------------------------------------------------- Lookup AttributeValueMapper_2_LOOKUP_TABLE 1 https:images.pexels.comphotos4700nature-forest-moss-leaves.jpg?auto=compresscs=tinysrgbdpr=2h=297w=500 2 https:images.pexels.comphotos36767tree-natur-nightsky-cloud.jpg?auto=compresscs=tinysrgbdpr=2h=297w=500 3 https:images.pexels.comphotos584578pexels-photo-584578.jpeg?auto=compresscs=tinysrgbdpr=2h=297w=500 4 https:images.pexels.comphotos1227513pexels-photo-1227513.jpeg?auto=compresscs=tinysrgbdpr=2h=297w=500 5 https:images.pexels.comphotos459225pexels-photo-459225.jpeg?auto=compresscs=tinysrgbdpr=2h=297w=500 6 https:images.pexels.comphotos1933319pexels-photo-1933319.jpeg?auto=compresscs=tinysrgbdpr=2h=297w=500 7 https:images.pexels.comphotos66258staniel-cay-swimming-pig-seagull-fish-66258.jpeg?auto=compresscs=tinysrgbdpr=2h=297w=500 "" "" ENCODED_SUPPORTUNICODE FACTORY_DEF * TeeFactory FACTORY_NAME AttributeValueMapper_2 INPUT FEATURE_TYPE Counter_3_OUTPUT OUTPUT FEATURE_TYPE AttributeValueMapper_2_OUTPUT @Lookup(AttributeValueMapper_2_LOOKUP_TABLE,"_count",FORWARD|ENCODED_ATTR|REAL_NULL_SUPPORT, ImageURL) FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeValueMapper_2 OUTPUT Splitter" INPUT FEATURE_TYPE AttributeValueMapper_2_OUTPUT OUTPUT FEATURE_TYPE AttributeValueMapper_2_OUTPUT_0_i2IjA2KiKIs= OUTPUT FEATURE_TYPE AttributeValueMapper_2_OUTPUT_1_zVVbhF9CyJw= # ------------------------------------------------------------------------- Lookup AttributeValueMapper_3_LOOKUP_TABLE 1 "" "" "" ENCODED_SUPPORTUNICODE FACTORY_DEF * TeeFactory FACTORY_NAME AttributeValueMapper_3 INPUT FEATURE_TYPE AttributeValueMapper_2_OUTPUT_1_zVVbhF9CyJw= OUTPUT FEATURE_TYPE AttributeValueMapper_3_OUTPUT @Lookup(AttributeValueMapper_3_LOOKUP_TABLE,"_count",FORWARD|ENCODED_ATTR|REAL_NULL_SUPPORT, TableauEmbed) # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE APIs_XLSXR_1 INPUT RIGHT FEATURE_TYPE APIEndPoints_XLSXR_1 JOIN_MODE Inner JOIN_KEYS APIName APIName AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager INPUT FEATURE_TYPE FeatureJoiner_JOINED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "APIBase" "APIBase" "" "REMOVE" } ATTR_ACTION { "APIEndPointDescription" "APIEndPointDescription" "" "REMOVE" } ATTR_ACTION { "" "APIRequestURL" "ValueAPIBaseURLValueAPIEndPoint" "SET_TO" } ATTR_ACTION { "" "Dummy" "1" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME AttributeFilter_4 INPUT FEATURE_TYPE AttributeManager_OUTPUT OUTPUT FEATURE_TYPE AttributeFilter_4_FILTER FACTORY_DEF * AttributeFilterFactory FACTORY_NAME AttributeFilter_4_Filter COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeFilter_4_FILTER FILTER_ATTRIBUTE APIName FILTER_VALUES EMPTY MISSING NULL UNFILTERED AtlassianConfluence AtlassianJira AtlassianJiraAgile PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT EMPTY FEATURE_TYPE AttributeFilter_4_EMPTY OUTPUT MISSING FEATURE_TYPE AttributeFilter_4_MISSING OUTPUT NULL FEATURE_TYPE AttributeFilter_4_NULL OUTPUT UNFILTERED FEATURE_TYPE AttributeFilter_4_UNFILTERED OUTPUT AtlassianConfluence FEATURE_TYPE AttributeFilter_4_AtlassianConfluence OUTPUT AtlassianJira FEATURE_TYPE AttributeFilter_4_AtlassianJira OUTPUT AtlassianJiraAgile FEATURE_TYPE AttributeFilter_4_AtlassianJiraAgile FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_4 EMPTY Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_4_EMPTY FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_4 MISSING Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_4_MISSING FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_4 NULL Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_4_NULL FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_4 UNFILTERED Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_4_UNFILTERED # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME AttributeFilter_7 INPUT FEATURE_TYPE AttributeFilter_4_AtlassianJira INPUT FEATURE_TYPE AttributeFilter_4_AtlassianJiraAgile OUTPUT FEATURE_TYPE AttributeFilter_7_FILTER FACTORY_DEF * AttributeFilterFactory FACTORY_NAME AttributeFilter_7_Filter COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeFilter_7_FILTER FILTER_ATTRIBUTE APIEndPoint FILTER_VALUES EMPTY MISSING NULL UNFILTERED issue issuetype project search board issueissueIdOrKeytransitions boardboardIdsprint sprint sprintsprintIdissue boardboardIdissue PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT EMPTY FEATURE_TYPE AttributeFilter_7_EMPTY OUTPUT MISSING FEATURE_TYPE AttributeFilter_7_MISSING OUTPUT NULL FEATURE_TYPE AttributeFilter_7_NULL OUTPUT UNFILTERED FEATURE_TYPE AttributeFilter_7_UNFILTERED OUTPUT issue FEATURE_TYPE AttributeFilter_7_issue OUTPUT issuetype FEATURE_TYPE AttributeFilter_7_issuetype OUTPUT project FEATURE_TYPE AttributeFilter_7_project OUTPUT search FEATURE_TYPE AttributeFilter_7_search OUTPUT board FEATURE_TYPE AttributeFilter_7_board OUTPUT issueissueIdOrKeytransitions FEATURE_TYPE AttributeFilter_7_issueissueIdOrKeytransitions OUTPUT boardboardIdsprint FEATURE_TYPE AttributeFilter_7_boardboardIdsprint OUTPUT sprint FEATURE_TYPE AttributeFilter_7_sprint OUTPUT sprintsprintIdissue FEATURE_TYPE AttributeFilter_7_sprintsprintIdissue OUTPUT boardboardIdissue FEATURE_TYPE AttributeFilter_7_boardboardIdissue FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_7 EMPTY Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_7_EMPTY FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_7 MISSING Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_7_MISSING FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_7 NULL Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_7_NULL FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_7 UNFILTERED Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_7_UNFILTERED FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_7 issue Splitter" INPUT FEATURE_TYPE AttributeFilter_7_issue OUTPUT FEATURE_TYPE AttributeFilter_7_issue_0_AuiLVwsCEyE= OUTPUT FEATURE_TYPE AttributeFilter_7_issue_1_zl8BG2bpMA0= FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_7 issuetype Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_7_issuetype FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_7 project Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_7_project FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_7 search Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_7_search FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_7 board Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_7_board FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_7 sprint Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_7_sprint # ------------------------------------------------------------------------- FACTORY_DEF {*} StringReplacerFactory FACTORY_NAME StringReplacer_6 INPUT FEATURE_TYPE AttributeFilter_7_boardboardIdissue USE_REGEX NO CASE_SENSITIVE NO SOURCE_ATTRIBUTES { APIRequestURL } FIND_TEXT { "boardId" } REPLACE_TEXT { "28" } REPLACE_NO_MATCH { "_FME_NO_OP_" } OUTPUT OUTPUT FEATURE_TYPE StringReplacer_6_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller_9 INPUT FEATURE_TYPE StringReplacer_6_OUTPUT TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,ValueAPIRequestURL?fields=*all,HTTPCaller_9)" HTTP_METHOD GET SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "" MULTIPART_UPLOAD UPLOAD_CONTENT_TYPE "" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Accept;applicationjson ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "NC" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS Yes VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "AtlassianAPI" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_9_Output OUTPUT REJECTED FEATURE_TYPE HTTPCaller_9_ FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_9 Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_9_ # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter_4 INPUT FEATURE_TYPE HTTPCaller_9_Output MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS YES EXTRACT_ATTR Yes JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "jsonissues*" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_4_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_4_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_4 FRAGMENTS Splitter" INPUT FEATURE_TYPE JSONFragmenter_4_FRAGMENTS OUTPUT FEATURE_TYPE JSONFragmenter_4_FRAGMENTS_0_5B8eQEe0Axo= OUTPUT FEATURE_TYPE JSONFragmenter_4_FRAGMENTS_1_xq02Rr6gnX4= FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_4 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_4_ # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_27 INPUT FEATURE_TYPE JSONFragmenter_4_FRAGMENTS_1_xq02Rr6gnX4= INPUT FEATURE_TYPE Junction_18_Output MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "APIName" "APIName" "" "REMOVE" } ATTR_ACTION { "APIHost" "APIHost" "" "REMOVE" } ATTR_ACTION { "APIEndPoint" "APIEndPoint" "" "REMOVE" } ATTR_ACTION { "APIRequestURL" "APIRequestURL" "" "REMOVE" } ATTR_ACTION { "APIBaseURL" "APIBaseURL" "" "REMOVE" } ATTR_ACTION { "Dummy" "Dummy" "" "REMOVE" } ATTR_ACTION { "_response_body" "_response_body" "" "REMOVE" } ATTR_ACTION { "_http_status_code" "_http_status_code" "" "REMOVE" } ATTR_ACTION { "json_type" "json_type" "" "REMOVE" } ATTR_ACTION { "json_index" "json_index" "" "REMOVE" } ATTR_ACTION { "fields.summary" "name" "" "RENAME_SET_VALUE" } ATTR_ACTION { "fields.statuscategorychangedate" "lastUpdated" "" "RENAME_SET_VALUE" } ATTR_ACTION { "fields.status.name" "status" "" "RENAME_SET_VALUE" } ATTR_ACTION { "fields.customfield_10023" "storyPoints" "" "RENAME_SET_VALUE" } ATTR_ACTION { "" "Title" "FME_CONDITIONAL:DEFAULT_VALUE'ValueFeature'BOOL_OP;OR;COMPOSITE_TEST;1;TEST key ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_'Valuename'FME_NUM_CONDITIONS2___" "SET_TO" } ATTR_ACTION { "" "EstimatedTime" "FME_CONDITIONAL:DEFAULT_VALUE'ValueEstimatedDevelopmentTime'BOOL_OP;OR;COMPOSITE_TEST;1;TEST key ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_'ValuestoryPoints'FME_NUM_CONDITIONS2___" "SET_TO" } ATTR_ACTION { "" "Source" "FME_CONDITIONAL:DEFAULT_VALUE'Confluence'BOOL_OP;OR;COMPOSITE_TEST;1;TEST key ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_'Jira'FME_NUM_CONDITIONS2___" "SET_TO" } ATTR_ACTION { "" "Dummy" "1" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_27_OUTPUT FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeManager_27 OUTPUT Splitter" INPUT FEATURE_TYPE AttributeManager_27_OUTPUT OUTPUT FEATURE_TYPE AttributeManager_27_OUTPUT_0_52rkMcIGwHM= OUTPUT FEATURE_TYPE AttributeManager_27_OUTPUT_1_KGR/244it6Q= # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_36 INPUT FEATURE_TYPE AttributeManager_27_OUTPUT_1_KGR/244it6Q= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "id" "id" "" "REMOVE" } ATTR_ACTION { "self" "self" "" "REMOVE" } ATTR_ACTION { "name" "name" "" "REMOVE" } ATTR_ACTION { "lastUpdated" "lastUpdated" "" "REMOVE" } ATTR_ACTION { "status" "status" "" "REMOVE" } ATTR_ACTION { "storyPoints" "storyPoints" "" "REMOVE" } ATTR_ACTION { "Feature" "Feature" "" "REMOVE" } ATTR_ACTION { "Description" "Description" "FME_CONDITIONAL:DEFAULT_VALUE'JiraServiceTickets'BOOL_OP;OR;COMPOSITE_TEST;1;TEST Description ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_'_FME_NO_OP_'FME_NUM_CONDITIONS2___" "SET_TO" } ATTR_ACTION { "EstimatedDevelopmentTime" "EstimatedDevelopmentTime" "" "REMOVE" } ATTR_ACTION { "" "EstimatedTimePerPayPeriod" "EvaluateValueEstimatedTime9" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_36_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} StringReplacerFactory FACTORY_NAME StringReplacer_4 INPUT FEATURE_TYPE AttributeFilter_7_boardboardIdsprint USE_REGEX NO CASE_SENSITIVE NO SOURCE_ATTRIBUTES { APIRequestURL } FIND_TEXT { "boardId" } REPLACE_TEXT { "28" } REPLACE_NO_MATCH { "_FME_NO_OP_" } OUTPUT OUTPUT FEATURE_TYPE StringReplacer_4_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller_5 INPUT FEATURE_TYPE StringReplacer_4_OUTPUT TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,ValueAPIRequestURL,HTTPCaller_5)" HTTP_METHOD GET SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "" MULTIPART_UPLOAD UPLOAD_CONTENT_TYPE "" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Accept;applicationjson ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "NC" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS Yes VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "AtlassianAPI" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_5_Output OUTPUT REJECTED FEATURE_TYPE HTTPCaller_5_ FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_5 Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_5_ # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter_3 INPUT FEATURE_TYPE HTTPCaller_5_Output MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS YES EXTRACT_ATTR Yes JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "jsonvalues*" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_3_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_3_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_3 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_3_ # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_23 INPUT FEATURE_TYPE JSONFragmenter_3_FRAGMENTS MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "id" "sprintId" "" "RENAME_SET_VALUE" } ATTR_ACTION { "self" "sprintSelf" "" "RENAME_SET_VALUE" } ATTR_ACTION { "name" "sprintName" "" "RENAME_SET_VALUE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_23_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_9 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE AttributeFilter_7_sprintsprintIdissue INPUT RIGHT FEATURE_TYPE AttributeManager_23_OUTPUT JOIN_MODE Inner JOIN_KEYS Dummy Dummy AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_9_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} StringReplacerFactory FACTORY_NAME StringReplacer_5 INPUT FEATURE_TYPE FeatureJoiner_9_JOINED USE_REGEX NO CASE_SENSITIVE NO SOURCE_ATTRIBUTES { APIRequestURL } FIND_TEXT { "sprintId" } REPLACE_TEXT { "@EvaluateExpression(FDIV,STRING_ENCODED,ValuesprintId,StringReplacer_5)" } REPLACE_NO_MATCH { "_FME_NO_OP_" } OUTPUT OUTPUT FEATURE_TYPE StringReplacer_5_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_4 COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeFilter_7_issueissueIdOrKeytransitions MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "Dummy" "SET_TO" "1" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_4_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_11 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE AttributeFilter_7_issue_1_zl8BG2bpMA0= INPUT RIGHT FEATURE_TYPE JSONFragmenter_4_FRAGMENTS_0_5B8eQEe0Axo= JOIN_MODE Inner JOIN_KEYS Dummy Dummy AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_11_JOINED # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_11 (Disabled) Nuker" INPUT FEATURE_TYPE FeatureJoiner_11_JOINED # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME AttributeFilter_3 INPUT FEATURE_TYPE AttributeFilter_4_AtlassianConfluence OUTPUT FEATURE_TYPE AttributeFilter_3_FILTER FACTORY_DEF * AttributeFilterFactory FACTORY_NAME AttributeFilter_3_Filter COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeFilter_3_FILTER FILTER_ATTRIBUTE APIEndPoint FILTER_VALUES EMPTY MISSING NULL UNFILTERED space content spacespaceKeycontent PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT EMPTY FEATURE_TYPE AttributeFilter_3_EMPTY OUTPUT MISSING FEATURE_TYPE AttributeFilter_3_MISSING OUTPUT NULL FEATURE_TYPE AttributeFilter_3_NULL OUTPUT UNFILTERED FEATURE_TYPE AttributeFilter_3_UNFILTERED OUTPUT space FEATURE_TYPE AttributeFilter_3_space OUTPUT content FEATURE_TYPE AttributeFilter_3_content OUTPUT spacespaceKeycontent FEATURE_TYPE AttributeFilter_3_spacespaceKeycontent FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_3 EMPTY Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_3_EMPTY FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_3 MISSING Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_3_MISSING FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_3 NULL Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_3_NULL FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_3 UNFILTERED Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_3_UNFILTERED # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_6 INPUT FEATURE_TYPE AttributeFilter_3_spacespaceKeycontent OUTPUT FEATURE_TYPE Junction_6_Output # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME Tester_11 INPUT FEATURE_TYPE Junction_6_Output TEST "@EvaluateExpression(FDIV,STRING_ENCODED,$(LHS_3),Tester_11)" != Y ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE Tester_11_PASSED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_6 INPUT FEATURE_TYPE Tester_11_PASSED MULTI_FEATURE_MODE NO NUM_PRIOR_FEATURES 0 NUM_SUBSEQUENT_FEATURES 0 NULL_ATTR_MODE NO_OP NULL_ATTR_VALUE 0 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 OUTPUT OUTPUT FEATURE_TYPE AttributeManager_6_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME Tester_9 INPUT FEATURE_TYPE AttributeFilter_3_content TEST "@EvaluateExpression(FDIV,STRING_ENCODED,$(LHS_3),Tester_9)" = Y ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE Tester_9_PASSED # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Atlassian_Confluence_API_Looper HTTPCaller_5_Input Input Collector" INPUT FEATURE_TYPE Tester_9_PASSED INPUT FEATURE_TYPE AttributeFilter_3_space OUTPUT FEATURE_TYPE Atlassian_Confluence_API_Looper_HTTPCaller_5_Input MACRO Atlassian_Confluence_API_Looper_WORKSPACE_NAME Atlassian_Confluence_API_Looper MACRO $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_XFORMER_NAME Atlassian_Confluence_API_Looper MACRO $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_SUB_DOC_NAME Atlassian Confluence API Looper MACRO $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_APIREQUESTURL ValueAPIRequestURL MACRO $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_APISERVICE ValueAPIName MACRO $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_APIBASEURL ValueAPIBaseURL MACRO $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_APIENDPOINT ValueAPIEndPoint DEFAULT_MACRO Atlassian_Confluence_API_Looper_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5_Input1596844345 Input Splitter" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5_Input" OUTPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5_Input" "@EvaluateExpression(ATTR_CREATE_EXPR_PROPAGATE_MISSING_FDIV_TYPED,ApiRequestUrl,$($(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_APIREQUESTURL),UTF8,ApiService,$($(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_APISERVICE),UTF8,ApiBaseUrl,$($(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_APIBASEURL),UTF8,ApiEndPoint,$($(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_APIENDPOINT),UTF8, FEATURE_TYPE)" # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5 INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5_Input" TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,ValueApiRequestUrl,$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5)" HTTP_METHOD GET SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "" MULTIPART_UPLOAD UPLOAD_CONTENT_TYPE "" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "NC" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "AtlassianAPI" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5_Output" OUTPUT REJECTED FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5_" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5 Transformer Output Nuker" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5_" # ------------------------------------------------------------------------- FACTORY_DEF * JSONFormatterFactory FACTORY_NAME $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFormatter INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5_Output" JSON_DOCUMENT "@EvaluateExpression(FDIV,STRING_ENCODED,Value_response_body,$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFormatter)" READ_FROM_FILE NO FILEPATH_OR_URL "" FORMAT PRETTY_PRINT INDENT_SIZE 3 REMOVE_EMPTY_STRINGS NO REMOVE_NULL_VALUES NO REMOVE_EMPTY_OBJECTS_AND_ARRAYS NO OUTPUT_ATTR "_formatted" OUTPUT_ENCODING UTF-8 SYNTAX_ERROR_LIST_ATTR "_json_error" OUTPUT OUTPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFormatter_OUTPUT" OUTPUT INVALID FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFormatter_" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFormatter Transformer Output Nuker" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFormatter_" # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5 INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFormatter_OUTPUT" OUTPUT FEATURE_TYPE $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_FILTER FACTORY_DEF * AttributeFilterFactory FACTORY_NAME $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_Filter COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_FILTER FILTER_ATTRIBUTE ApiService FILTER_VALUES EMPTY MISSING NULL UNFILTERED AtlassianConfluence AtlassianJira PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT EMPTY FEATURE_TYPE $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_EMPTY OUTPUT MISSING FEATURE_TYPE $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_MISSING OUTPUT NULL FEATURE_TYPE $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_NULL OUTPUT UNFILTERED FEATURE_TYPE $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_UNFILTERED OUTPUT AtlassianConfluence FEATURE_TYPE $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_AtlassianConfluence OUTPUT AtlassianJira FEATURE_TYPE $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_AtlassianJira FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5 EMPTY Transformer Output Nuker" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_EMPTY" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5 MISSING Transformer Output Nuker" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_MISSING" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5 NULL Transformer Output Nuker" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_NULL" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5 UNFILTERED Transformer Output Nuker" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_UNFILTERED" # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_2 INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_AtlassianJira" MODE FLATTEN JSON_DOCUMENT "@EvaluateExpression(FDIV,STRING_ENCODED,Value_response_body,$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_2)" READ_FROM_FILE NO FILEPATH_OR_URL "" EXPLODE_QUERY "json" RECURSIVE_FLATTEN YES ERROR_LIST_ATTR "_json_error" OUTPUT EXPLODED FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_2_OUTPUT" OUTPUT REJECTED FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_2_" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_2 Transformer Output Nuker" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_2_" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_2_OUTPUT" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,EvaluateValuestartAt+ValuemaxResults,$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester)" <= "@EvaluateExpression(FDIV,STRING_ENCODED,Valuetotal,$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester)" ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_PASSED" OUTPUT FAILED FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_FAILED" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester PASSED Splitter" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_PASSED" OUTPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_PASSED_0_cOUU/UZGS88=" OUTPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_PASSED_1_avo9saIB1LE=" # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeManager_2 INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_PASSED_1_avo9saIB1LE=" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "ApiRequestUrl" "ApiRequestUrl" "" "REMOVE" } ATTR_ACTION { "" "ApiRequestUrl" "Api" "SET_TO" } ATTR_ACTION { "startAt" "startAt" "EvaluateValuestartAt+ValuemaxResults+1" "SET_TO" } ATTR_ACTION { "" "ApiRequestUrl" "ValueApiBaseUrlValueApiEndPoint?startAt=ValuestartAt" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeManager_2_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_7 INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeFilter_5_AtlassianConfluence" MODE FLATTEN JSON_DOCUMENT "@EvaluateExpression(FDIV,STRING_ENCODED,Value_response_body,$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_7)" READ_FROM_FILE NO FILEPATH_OR_URL "" EXPLODE_QUERY "json" RECURSIVE_FLATTEN YES ERROR_LIST_ATTR "_json_error" OUTPUT EXPLODED FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_7_OUTPUT" OUTPUT REJECTED FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_7_" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_7 Transformer Output Nuker" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_7_" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14 INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_JSONFlattener_7_OUTPUT" TEST _links.next ATTRIBUTE_HAS_A_VALUE "" ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14_PASSED" OUTPUT FAILED FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14_FAILED" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14 PASSED Splitter" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14_PASSED" OUTPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14_PASSED_0_d0kYuOXc4Xc=" OUTPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14_PASSED_1_ODspgcpyWoo=" # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeManager_10 INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14_PASSED_0_d0kYuOXc4Xc=" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "start" "start" "" "REMOVE" } ATTR_ACTION { "limit" "limit" "" "REMOVE" } ATTR_ACTION { "ApiRequestUrl" "ApiRequestUrl" "" "REMOVE" } ATTR_ACTION { "size" "size" "" "REMOVE" } ATTR_ACTION { "" "ApiRequestUrl" "Value_links.baseValue_links.next" "SET_TO" } ATTR_ACTION { "_links.next" "_links.next" "" "REMOVE" } ATTR_ACTION { "_links.base" "_links.base" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeManager_10_OUTPUT" FACTORY_DEF * BranchingFactory TARGET_FACTORY "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5_Input1596844345 Input Splitter" FACTORY_NAME "Loop to $(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5_Input1596844345 Input Splitter" MAXIMUM_COUNT -1 INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeManager_10_OUTPUT" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_AttributeManager_2_OUTPUT" OUTPUT PASSED FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_HTTPCaller_5_Input" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14_Passed1596844345 Output Collector" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14_PASSED_1_ODspgcpyWoo=" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_PASSED_0_cOUU/UZGS88=" OUTPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14_Passed" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14_Failed1596844345 Output Collector" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14_FAILED" INPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_FAILED" OUTPUT FEATURE_TYPE "$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME)_Tester_14_Failed" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(Atlassian_Confluence_API_Looper_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "Atlassian_Confluence_API_Looper Tester_14_Passed Output Renamer/Nuker" INPUT FEATURE_TYPE Atlassian_Confluence_API_Looper_Tester_14_Passed OUTPUT FEATURE_TYPE Atlassian_Confluence_API_Looper_Tester_14_Passed FACTORY_DEF * TeeFactory FACTORY_NAME "Atlassian_Confluence_API_Looper Tester_14_Failed Output Renamer/Nuker" INPUT FEATURE_TYPE Atlassian_Confluence_API_Looper_Tester_14_Failed OUTPUT FEATURE_TYPE Atlassian_Confluence_API_Looper_Tester_14_Failed # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_2 COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Atlassian_Confluence_API_Looper_Tester_14_Passed INPUT FEATURE_TYPE Atlassian_Confluence_API_Looper_Tester_14_Failed MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "jsonQuery" "SET_TO" "jsonresults*" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME AttributeFilter_2 INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT OUTPUT FEATURE_TYPE AttributeFilter_2_FILTER FACTORY_DEF * AttributeFilterFactory FACTORY_NAME AttributeFilter_2_Filter COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeFilter_2_FILTER FILTER_ATTRIBUTE ApiEndPoint FILTER_VALUES EMPTY MISSING NULL UNFILTERED space content PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT EMPTY FEATURE_TYPE AttributeFilter_2_EMPTY OUTPUT MISSING FEATURE_TYPE AttributeFilter_2_MISSING OUTPUT NULL FEATURE_TYPE AttributeFilter_2_NULL OUTPUT UNFILTERED FEATURE_TYPE AttributeFilter_2_UNFILTERED OUTPUT space FEATURE_TYPE AttributeFilter_2_space OUTPUT content FEATURE_TYPE AttributeFilter_2_content FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_2 EMPTY Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_2_EMPTY FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_2 MISSING Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_2_MISSING FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_2 NULL Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_2_NULL FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeFilter_2 UNFILTERED Transformer Output Nuker" INPUT FEATURE_TYPE AttributeFilter_2_UNFILTERED # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter_6 INPUT FEATURE_TYPE AttributeFilter_2_content MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS YES EXTRACT_ATTR Yes JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "@EvaluateExpression(FDIV,STRING_ENCODED,ValuejsonQuery,JSONFragmenter_6)" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_6_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_6_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_6 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_6_ # ------------------------------------------------------------------------- FACTORY_DEF * JSONFormatterFactory FACTORY_NAME JSONFormatter_4 INPUT FEATURE_TYPE JSONFragmenter_6_FRAGMENTS JSON_DOCUMENT "@EvaluateExpression(FDIV,STRING_ENCODED,Value_response_body,JSONFormatter_4)" READ_FROM_FILE NO FILEPATH_OR_URL "" FORMAT PRETTY_PRINT INDENT_SIZE 3 REMOVE_EMPTY_STRINGS NO REMOVE_NULL_VALUES NO REMOVE_EMPTY_OBJECTS_AND_ARRAYS NO OUTPUT_ATTR "_formatted" OUTPUT_ENCODING UTF-8 SYNTAX_ERROR_LIST_ATTR "_json_error" OUTPUT OUTPUT FEATURE_TYPE JSONFormatter_4_OUTPUT OUTPUT INVALID FEATURE_TYPE JSONFormatter_4_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFormatter_4 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFormatter_4_ # ------------------------------------------------------------------------- MACRO casemac INCLUDE [ if { {no} == {no} } { puts {MACRO casemac -nocase}} ] Tcl2 proc StringSearcher_25a890d6_261a_40ce_98d6_939f97b94df80_doGrep { stringToSearch regExp matchedChars matches matchedParts } { set subMatches 1; set matches [FME_DecodeText $matches]; set matchedParts [FME_DecodeText $matchedParts]; set stringToSearch [FME_ReplaceRegex "\015\012?" [FME_DecodeText $stringToSearch] "\012"]; set results [FME_GetRegex $(casemac) [FME_DecodeText $regExp] $stringToSearch]; if {[llength [lindex $results 0]] > 0} { set attrName [FME_DecodeText $matchedChars]; FME_SetAttribute $attrName [lindex [lindex [lindex $results 0] 0] 0]; set index 0; set parts [lindex $results 1]; foreach part $parts { if {[llength $matchedParts] > 0} { set attrName "$matchedParts{$index}.part"; FME_SetAttribute $attrName [lindex $part 0]; set attrName "$matchedParts{$index}.startIndex"; FME_SetAttribute $attrName [lindex $part 1]; }; incr index; }; set index 0; set regexMatches [lindex $results 0]; foreach part $regexMatches { if {[llength $matches] > 0} { set attrName "$matches{$index}.match"; FME_SetAttribute $attrName [lindex $part 0]; set attrName "$matches{$index}.startIndex"; FME_SetAttribute $attrName [lindex $part 1]; }; set isFirstMatch 0; incr index; }; return $index; }; return -1; } FACTORY_DEF * TestFactory FACTORY_NAME StringSearcher INPUT FEATURE_TYPE JSONFormatter_4_OUTPUT TEST @Tcl2("StringSearcher_25a890d6_261a_40ce_98d6_939f97b94df80_doGrep {@EvaluateExpression(FDIV,STRING_ENCODED,Value_expandable.space,StringSearcher)} {?=space.*} {SpaceKey} {} {}") > 0 FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE StringSearcher_MATCHED # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter_7 INPUT FEATURE_TYPE AttributeFilter_2_space MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS YES EXTRACT_ATTR Yes JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "@EvaluateExpression(FDIV,STRING_ENCODED,ValuejsonQuery,JSONFragmenter_7)" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_7_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_7_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_7 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_7_ # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_2 INPUT FEATURE_TYPE JSONFragmenter_7_FRAGMENTS MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "ApiEndPoint" "ApiEndPoint" "" "REMOVE" } ATTR_ACTION { "_response_body" "_response_body" "" "REMOVE" } ATTR_ACTION { "_http_status_code" "_http_status_code" "" "REMOVE" } ATTR_ACTION { "json_type" "json_type" "" "REMOVE" } ATTR_ACTION { "json_index" "json_index" "" "REMOVE" } ATTR_ACTION { "id" "SpaceId" "" "RENAME_SET_VALUE" } ATTR_ACTION { "self" "SpaceSelf" "" "RENAME_SET_VALUE" } ATTR_ACTION { "key" "SpaceKey" "" "RENAME_SET_VALUE" } ATTR_ACTION { "name" "SpaceName" "" "RENAME_SET_VALUE" } ATTR_ACTION { "startDate" "SpaceStartDate" "" "RENAME_SET_VALUE" } ATTR_ACTION { "endDate" "SpaceEndDate" "" "RENAME_SET_VALUE" } ATTR_ACTION { "state" "SpaceState" "" "RENAME_SET_VALUE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_2_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME Tester_10 INPUT FEATURE_TYPE AttributeManager_2_OUTPUT TEST "@EvaluateExpression(FDIV,STRING_ENCODED,ValueSpaceKey,Tester_10)" = SW ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE Tester_10_PASSED FACTORY_DEF * TeeFactory FACTORY_NAME "Tester_10 PASSED Splitter" INPUT FEATURE_TYPE Tester_10_PASSED OUTPUT FEATURE_TYPE Tester_10_PASSED_0_L7X4Awmlnuw= OUTPUT FEATURE_TYPE Tester_10_PASSED_1_BXj35rH73/U= # ------------------------------------------------------------------------- INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } { puts "MACRO FeatureMerger_REFERENCE_INFO ATTRIBUTES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} } { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } else {}; ] FACTORY_DEF {*} ReferenceFactory FACTORY_NAME FeatureMerger FLUSH_WHEN_GROUPS_CHANGE No INPUT REFERENCER FEATURE_TYPE Tester_10_PASSED_1_BXj35rH73/U= INPUT REFERENCEE FEATURE_TYPE AttributeManager_6_OUTPUT REFERENCE_INFO $(FeatureMerger_REFERENCE_INFO) REFERENCE_TABLE 1 1 AUTO ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "REQUESTOR_IF_CONFLICT" IGNORE_NULLS "No" HANDLE_NULL_MISSING_KEYS_LIKE_FME2013 No LIST_NAME "_list" LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE ALL MERGE_ATTRIBUTES Yes MANAGE_FME_TYPE Yes MODE COMPLETE PROCESS_DUPLICATE_REFERENCEES NO REFERENCEES_FIRST No REJECT_INVALID_GEOM YES CLEANING_TOLERANCE OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_MERGED # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME ListExploder INPUT FEATURE_TYPE FeatureMerger_MERGED LIST_NAME "_list{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "INCOMING_IF_CONFLICT" INCOMING_PREFIX "" OUTPUT ELEMENT FEATURE_TYPE ListExploder_ELEMENTS @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- FACTORY_DEF {*} StringReplacerFactory FACTORY_NAME StringReplacer INPUT FEATURE_TYPE ListExploder_ELEMENTS USE_REGEX NO CASE_SENSITIVE NO SOURCE_ATTRIBUTES { APIRequestURL } FIND_TEXT { "spaceKey" } REPLACE_TEXT { "@EvaluateExpression(FDIV,STRING_ENCODED,ValueSpaceKey,StringReplacer)" } REPLACE_NO_MATCH { "_FME_NO_OP_" } OUTPUT OUTPUT FEATURE_TYPE StringReplacer_OUTPUT FACTORY_DEF * TeeFactory FACTORY_NAME "StringReplacer OUTPUT Splitter" INPUT FEATURE_TYPE StringReplacer_OUTPUT OUTPUT FEATURE_TYPE StringReplacer_OUTPUT_0_YABdbDPF8pE= OUTPUT FEATURE_TYPE StringReplacer_OUTPUT_1_KAu4m3XiKNw= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_3 INPUT FEATURE_TYPE StringReplacer_OUTPUT_1_KAu4m3XiKNw= OUTPUT FEATURE_TYPE Junction_3_Output # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_12 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE AttributeValueMapper_2_OUTPUT_0_i2IjA2KiKIs= INPUT RIGHT FEATURE_TYPE Junction_3_Output JOIN_MODE Inner JOIN_KEYS Dummy Dummy AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_12_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_25 INPUT FEATURE_TYPE FeatureJoiner_12_JOINED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "Dummy" "Dummy" "" "REMOVE" } ATTR_ACTION { "" "status" "current" "SET_TO" } ATTR_ACTION { "" "type" "page" "SET_TO" } ATTR_ACTION { "" "body.wiki.value" "||*Feature*:|ValueFeature|||*EstimatedDevTime*:|ValueEstimatedDevelopmentTimehours|h2.FeatureImage!ValueImageURL!color:greyImagescourtesypexels.comCC0licenseValueImageURLcolorh2.FeatureDescriptionValueDescription" "SET_TO" } ATTR_ACTION { "jsonQuery" "jsonQuery" "" "REMOVE" } ATTR_ACTION { "ApiRequestUrl" "ApiRequestUrl" "" "REMOVE" } ATTR_ACTION { "SpaceId" "SpaceId" "" "REMOVE" } ATTR_ACTION { "SpaceSelf" "SpaceSelf" "" "REMOVE" } ATTR_ACTION { "SpaceName" "SpaceName" "" "REMOVE" } ATTR_ACTION { "SpaceStartDate" "SpaceStartDate" "" "REMOVE" } ATTR_ACTION { "SpaceEndDate" "SpaceEndDate" "" "REMOVE" } ATTR_ACTION { "SpaceState" "SpaceState" "" "REMOVE" } ATTR_ACTION { "ApiBaseUrl" "ApiBaseUrl" "" "REMOVE" } ATTR_ACTION { "_formatted" "_formatted" "" "REMOVE" } ATTR_ACTION { "APIName" "APIName" "" "REMOVE" } ATTR_ACTION { "APIHost" "APIHost" "" "REMOVE" } ATTR_ACTION { "APIEndPoint" "APIEndPoint" "" "REMOVE" } ATTR_ACTION { "APIRequestURL" "APIRequestURL" "" "REMOVE" } ATTR_ACTION { "start" "start" "" "REMOVE" } ATTR_ACTION { "limit" "limit" "" "REMOVE" } ATTR_ACTION { "size" "size" "" "REMOVE" } ATTR_ACTION { "_links.next" "_links.next" "" "REMOVE" } ATTR_ACTION { "_links.base" "_links.base" "" "REMOVE" } ATTR_ACTION { "startAt" "startAt" "" "REMOVE" } ATTR_ACTION { "maxResults" "maxResults" "" "REMOVE" } ATTR_ACTION { "total" "total" "" "REMOVE" } ATTR_ACTION { "_element_index" "_element_index" "" "REMOVE" } ATTR_ACTION { "" "APIRequestURL" "ValueAPIBaseURLcontent" "SET_TO" } ATTR_ACTION { "" "storage.value" "test" "SET_TO" } ATTR_ACTION { "" "storage" "Valuestorage.value" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_25_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * XMLTemplaterFactory FACTORY_NAME JSONTemplater_5 INPUT CONTROL_FEATURE FEATURE_TYPE AttributeManager_25_OUTPUT INPUT DATA_FEATURE FEATURE_TYPE JSONTemplater_5_DataFeatures RESULT_ATTR json OUTPUT_XML_HEADER NO BUCKET_ATTR_NAME __xml_templater_bucket__ CONTROL_TEMPLATE_EXPR title:fme:get-attributeFeaturetype:pagespace:key:fme:get-attributeSpaceKeyancestors:id:475430913body:wiki:value:fme:get-attributebody.wiki.valuerepresentation:wiki OUTPUT XML_DOCUMENT FEATURE_TYPE JSONTemplater_5_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttributeKeeperFactory FACTORY_NAME AttributeKeeper_2 INPUT FEATURE_TYPE JSONTemplater_5_OUTPUT KEEP_ATTRS { APIRequestURL,json } KEEP_LISTS { } KEEP_FME_ATTRIBUTES Yes BUILD_FEATURE_TABLES { NO } OUTPUT_ON_ATTRIBUTE_CHANGE { } OUTPUT { OUTPUT FEATURE_TYPE AttributeKeeper_2_OUTPUT } # ------------------------------------------------------------------------- FACTORY_DEF * JSONFormatterFactory FACTORY_NAME JSONFormatter INPUT FEATURE_TYPE AttributeKeeper_2_OUTPUT JSON_DOCUMENT "@EvaluateExpression(FDIV,STRING_ENCODED,Valuejson,JSONFormatter)" READ_FROM_FILE NO FILEPATH_OR_URL "" FORMAT PRETTY_PRINT INDENT_SIZE 3 REMOVE_EMPTY_STRINGS NO REMOVE_NULL_VALUES NO REMOVE_EMPTY_OBJECTS_AND_ARRAYS NO OUTPUT_ATTR "_formatted" OUTPUT_ENCODING UTF-8 SYNTAX_ERROR_LIST_ATTR "_json_error" OUTPUT OUTPUT FEATURE_TYPE JSONFormatter_OUTPUT OUTPUT INVALID FEATURE_TYPE JSONFormatter_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFormatter Transformer Output Nuker" INPUT FEATURE_TYPE JSONFormatter_ # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller_6 INPUT FEATURE_TYPE JSONFormatter_OUTPUT TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,ValueAPIRequestURL,HTTPCaller_6)" HTTP_METHOD POST SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "@EvaluateExpression(FDIV,STRING_ENCODED,Valuejson,HTTPCaller_6)" MULTIPART_UPLOAD NO UPLOAD_CONTENT_TYPE "application/json" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Accept;applicationjson ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "NC" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "AtlassianAPI" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_6_Output OUTPUT REJECTED FEATURE_TYPE HTTPCaller_6_ FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_6 Output Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_6_Output FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_6 Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_6_ # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_3 COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE StringReplacer_OUTPUT_0_YABdbDPF8pE= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "jsonQuery" "SET_TO" "jsonpageresults*" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_3_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller_2 INPUT FEATURE_TYPE AttributeCreator_3_OUTPUT TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,ValueAPIRequestURL?expand=body.storagelimit=500,HTTPCaller_2)" HTTP_METHOD GET SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "" MULTIPART_UPLOAD UPLOAD_CONTENT_TYPE "" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "NC" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS FOLLOW_WITH_GET REDIRECT_AUTH ORIGINAL_DOMAIN_ONLY VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "AtlassianAPI" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_2_Output OUTPUT REJECTED FEATURE_TYPE HTTPCaller_2_ FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_2 Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_2_ # ------------------------------------------------------------------------- FACTORY_DEF * JSONFormatterFactory FACTORY_NAME JSONFormatter_3 INPUT FEATURE_TYPE HTTPCaller_2_Output JSON_DOCUMENT "@EvaluateExpression(FDIV,STRING_ENCODED,Value_response_body,JSONFormatter_3)" READ_FROM_FILE NO FILEPATH_OR_URL "" FORMAT PRETTY_PRINT INDENT_SIZE 3 REMOVE_EMPTY_STRINGS NO REMOVE_NULL_VALUES NO REMOVE_EMPTY_OBJECTS_AND_ARRAYS NO OUTPUT_ATTR "_formatted" OUTPUT_ENCODING UTF-8 SYNTAX_ERROR_LIST_ATTR "_json_error" OUTPUT OUTPUT FEATURE_TYPE JSONFormatter_3_OUTPUT OUTPUT INVALID FEATURE_TYPE JSONFormatter_3_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFormatter_3 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFormatter_3_ # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFragmenter_5 INPUT FEATURE_TYPE JSONFormatter_3_OUTPUT MODE EXPLODE EXPLODE_FORMAT JSON REJECT_EMPTY_LISTS YES EXTRACT_ATTR Yes JSON_ATTR "_response_body" READ_FROM_FILE NO FILEPATH_OR_URL "" OUTPUT_ATTRIBUTE "" EXPLODE_QUERY "@EvaluateExpression(FDIV,STRING_ENCODED,ValuejsonQuery,JSONFragmenter_5)" RECURSIVE_FLATTEN YES OUTPUT EXPLODED FEATURE_TYPE JSONFragmenter_5_FRAGMENTS OUTPUT REJECTED FEATURE_TYPE JSONFragmenter_5_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFragmenter_5 Transformer Output Nuker" INPUT FEATURE_TYPE JSONFragmenter_5_ # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME TestFilter INPUT FEATURE_TYPE JSONFragmenter_5_FRAGMENTS OUTPUT FEATURE_TYPE TestFilter_TESTFILTERINPUTLINE_0 FACTORY_DEF * TestFactory FACTORY_NAME TestFilter_Condition_1 INPUT FEATURE_TYPE TestFilter_TESTFILTERINPUTLINE_0 TEST @EvaluateExpression(FDIV,STRING_ENCODED,Valuetitle,TestFilter) = FeatureRequests ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE TestFilter_Valuetitle=FeatureRequests OUTPUT FAILED FEATURE_TYPE TestFilter_TESTFILTERINPUTLINE_1 FACTORY_DEF * TestFactory FACTORY_NAME TestFilter_Condition_2 INPUT FEATURE_TYPE TestFilter_TESTFILTERINPUTLINE_1 TEST @EvaluateExpression(FDIV,STRING_ENCODED,Valuetitle,TestFilter) = SkunkworksWebinar2Home ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE TestFilter_Valuetitle=SkunkworksWebinar2Home OUTPUT FAILED FEATURE_TYPE TestFilter_TESTFILTERINPUTLINE_2 FACTORY_DEF * TeeFactory FACTORY_NAME TestFilter_UNFILTERED INPUT FEATURE_TYPE TestFilter_TESTFILTERINPUTLINE_2 OUTPUT FEATURE_TYPE TestFilter_UNFILTERED FACTORY_DEF * TeeFactory FACTORY_NAME "TestFilter Valuetitle=SkunkworksWebinar2Home Transformer Output Nuker" INPUT FEATURE_TYPE TestFilter_Valuetitle=SkunkworksWebinar2Home FACTORY_DEF * TeeFactory FACTORY_NAME "TestFilter UNFILTERED Splitter" INPUT FEATURE_TYPE TestFilter_UNFILTERED OUTPUT FEATURE_TYPE TestFilter_UNFILTERED_0_XcWCvJn1SJQ= OUTPUT FEATURE_TYPE TestFilter_UNFILTERED_1_rI1v0+nuNOk= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_12 (Disabled) Nuker" INPUT FEATURE_TYPE TestFilter_UNFILTERED_1_rI1v0+nuNOk= # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_13 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE TestFilter_UNFILTERED_0_XcWCvJn1SJQ= INPUT RIGHT FEATURE_TYPE AttributeValueMapper_3_OUTPUT JOIN_MODE Inner JOIN_KEYS title Feature AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_13_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_26 INPUT FEATURE_TYPE TestFilter_Valuetitle=FeatureRequests INPUT FEATURE_TYPE FeatureJoiner_13_JOINED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "htmlwithtitle" "h1Valuetitleh1brValuebody.storage.valuebrValueTableauEmbed" "SET_TO" } ATTR_ACTION { "jsonQuery" "jsonQuery" "" "REMOVE" } ATTR_ACTION { "ApiRequestUrl" "ApiRequestUrl" "" "REMOVE" } ATTR_ACTION { "SpaceId" "SpaceId" "" "REMOVE" } ATTR_ACTION { "SpaceSelf" "SpaceSelf" "" "REMOVE" } ATTR_ACTION { "SpaceKey" "SpaceKey" "" "REMOVE" } ATTR_ACTION { "SpaceName" "SpaceName" "" "REMOVE" } ATTR_ACTION { "SpaceStartDate" "SpaceStartDate" "" "REMOVE" } ATTR_ACTION { "SpaceEndDate" "SpaceEndDate" "" "REMOVE" } ATTR_ACTION { "SpaceState" "SpaceState" "" "REMOVE" } ATTR_ACTION { "ApiBaseUrl" "ApiBaseUrl" "" "REMOVE" } ATTR_ACTION { "_formatted" "_formatted" "" "REMOVE" } ATTR_ACTION { "APIName" "APIName" "" "REMOVE" } ATTR_ACTION { "APIHost" "APIHost" "" "REMOVE" } ATTR_ACTION { "APIEndPoint" "APIEndPoint" "" "REMOVE" } ATTR_ACTION { "APIRequestURL" "APIRequestURL" "" "REMOVE" } ATTR_ACTION { "APIBaseURL" "APIBaseURL" "" "REMOVE" } ATTR_ACTION { "ApiService" "ApiService" "" "REMOVE" } ATTR_ACTION { "start" "start" "" "REMOVE" } ATTR_ACTION { "limit" "limit" "" "REMOVE" } ATTR_ACTION { "size" "size" "" "REMOVE" } ATTR_ACTION { "_links.next" "_links.next" "" "REMOVE" } ATTR_ACTION { "_links.base" "_links.base" "" "REMOVE" } ATTR_ACTION { "startAt" "startAt" "" "REMOVE" } ATTR_ACTION { "maxResults" "maxResults" "" "REMOVE" } ATTR_ACTION { "total" "total" "" "REMOVE" } ATTR_ACTION { "Dummy" "Dummy" "" "REMOVE" } ATTR_ACTION { "_element_index" "_element_index" "" "REMOVE" } ATTR_ACTION { "_response_body" "_response_body" "" "REMOVE" } ATTR_ACTION { "_http_status_code" "_http_status_code" "" "REMOVE" } ATTR_ACTION { "json_type" "json_type" "" "REMOVE" } ATTR_ACTION { "json_index" "json_index" "" "REMOVE" } ATTR_ACTION { "id" "id" "" "REMOVE" } ATTR_ACTION { "type" "type" "" "REMOVE" } ATTR_ACTION { "status" "status" "" "REMOVE" } ATTR_ACTION { "_expandable.childTypes" "_expandable.childTypes" "" "REMOVE" } ATTR_ACTION { "_expandable.children" "_expandable.children" "" "REMOVE" } ATTR_ACTION { "_expandable.body" "_expandable.body" "" "REMOVE" } ATTR_ACTION { "_expandable.version" "_expandable.version" "" "REMOVE" } ATTR_ACTION { "_expandable.ancestors" "_expandable.ancestors" "" "REMOVE" } ATTR_ACTION { "_expandable.descendants" "_expandable.descendants" "" "REMOVE" } ATTR_ACTION { "_expandable.space" "_expandable.space" "" "REMOVE" } ATTR_ACTION { "_links.self" "_links.self" "" "REMOVE" } ATTR_ACTION { "_links.webui" "_links.webui" "" "REMOVE" } ATTR_ACTION { "body.storage.value" "body.storage.value" "" "REMOVE" } ATTR_ACTION { "Feature" "Feature" "" "REMOVE" } ATTR_ACTION { "Description" "Description" "" "REMOVE" } ATTR_ACTION { "EstimatedDevelopmentTime" "EstimatedDevelopmentTime" "" "REMOVE" } ATTR_ACTION { "_count" "_count" "" "REMOVE" } ATTR_ACTION { "ImageURL" "ImageURL" "" "REMOVE" } ATTR_ACTION { "TableauEmbed" "TableauEmbed" "" "REMOVE" } ATTR_ACTION { "" "sort" "2" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_26_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} StringReplacerFactory FACTORY_NAME StringReplacer_7 INPUT FEATURE_TYPE AttributeManager_26_OUTPUT USE_REGEX NO CASE_SENSITIVE NO SOURCE_ATTRIBUTES { htmlwithtitle } FIND_TEXT { "ac:imageri:urlri:value=" } REPLACE_TEXT { "imgsrc=" } REPLACE_NO_MATCH { "_FME_NO_OP_" } OUTPUT OUTPUT FEATURE_TYPE StringReplacer_7_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} StringReplacerFactory FACTORY_NAME StringReplacer_8 INPUT FEATURE_TYPE StringReplacer_7_OUTPUT USE_REGEX NO CASE_SENSITIVE NO SOURCE_ATTRIBUTES { htmlwithtitle } FIND_TEXT { "ac:image" } REPLACE_TEXT { "height=297width=500" } REPLACE_NO_MATCH { "_FME_NO_OP_" } OUTPUT OUTPUT FEATURE_TYPE StringReplacer_8_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} SortFactory FACTORY_NAME Sorter_4 INPUT FEATURE_TYPE StringReplacer_8_OUTPUT INPUT FEATURE_TYPE AttributeCreator_9_OUTPUT FLUSH_WHEN_GROUPS_CHANGE No SORT_BY { sort NUMERIC ASCENDING } OUTPUT SORTED FEATURE_TYPE Sorter_4_SORTED # ------------------------------------------------------------------------- FACTORY_DEF {*} AggregateFactory FACTORY_NAME Aggregator INPUT FEATURE_TYPE Sorter_4_SORTED MODE ONE_LEVEL FLUSH_WHEN_GROUPS_CHANGE No REMOVE_GEOMETRY NO ACCUMULATE_ATTRIBUTES One LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE CONCATENATE_FIELDS { htmlwithtitle } SEPARATOR PRODUCE_MULTIS YES OUTPUT AGGREGATE FEATURE_TYPE Aggregator_AGGREGATE # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_2 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE Tester_10_PASSED_0_L7X4Awmlnuw= INPUT RIGHT FEATURE_TYPE StringSearcher_MATCHED JOIN_MODE Inner JOIN_KEYS SpaceKey SpaceKey AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_3 INPUT FEATURE_TYPE Form1_XLSXR_2 MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "Starttime" "Starttime" "" "REMOVE" } ATTR_ACTION { "Completiontime" "Completiontime" "" "REMOVE" } ATTR_ACTION { "Email" "Email" "" "REMOVE" } ATTR_ACTION { "Name" "Name" "" "REMOVE" } ATTR_ACTION { "Thisquestionisaboutcompensationforteachingonesectionofthecourse." "Thisquestionisaboutcompensationforteachingonesectionofthecourse." "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_3_OUTPUT # ------------------------------------------------------------------------- MACRO casemac INCLUDE [ if { {no} == {no} } { puts {MACRO casemac -nocase}} ] Tcl2 proc StringSearcher_2_3b60e119_2df3_46c8_8574_046ac679347f0_doGrep { stringToSearch regExp matchedChars matches matchedParts } { set subMatches 1; set matches [FME_DecodeText $matches]; set matchedParts [FME_DecodeText $matchedParts]; set stringToSearch [FME_ReplaceRegex "\015\012?" [FME_DecodeText $stringToSearch] "\012"]; set results [FME_GetRegex $(casemac) [FME_DecodeText $regExp] $stringToSearch]; if {[llength [lindex $results 0]] > 0} { set attrName [FME_DecodeText $matchedChars]; FME_SetAttribute $attrName [lindex [lindex [lindex $results 0] 0] 0]; set index 0; set parts [lindex $results 1]; foreach part $parts { if {[llength $matchedParts] > 0} { set attrName "$matchedParts{$index}.part"; FME_SetAttribute $attrName [lindex $part 0]; set attrName "$matchedParts{$index}.startIndex"; FME_SetAttribute $attrName [lindex $part 1]; }; incr index; }; set index 0; set regexMatches [lindex $results 0]; foreach part $regexMatches { if {[llength $matches] > 0} { set attrName "$matches{$index}.match"; FME_SetAttribute $attrName [lindex $part 0]; set attrName "$matches{$index}.startIndex"; FME_SetAttribute $attrName [lindex $part 1]; }; set isFirstMatch 0; incr index; }; return $index; }; return -1; } FACTORY_DEF * TestFactory FACTORY_NAME StringSearcher_2 INPUT FEATURE_TYPE AttributeManager_3_OUTPUT TEST @Tcl2("StringSearcher_2_3b60e119_2df3_46c8_8574_046ac679347f0_doGrep {@EvaluateExpression(FDIV,STRING_ENCODED,ValueHowmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?,StringSearcher_2)} {^^-*^-} {should_first_match} {} {}") > 0 FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE StringSearcher_2_MATCHED # ------------------------------------------------------------------------- MACRO casemac INCLUDE [ if { {no} == {no} } { puts {MACRO casemac -nocase}} ] Tcl2 proc StringSearcher_3_f725d411_a173_454a_be43_22b8c071809b0_doGrep { stringToSearch regExp matchedChars matches matchedParts } { set subMatches 1; set matches [FME_DecodeText $matches]; set matchedParts [FME_DecodeText $matchedParts]; set stringToSearch [FME_ReplaceRegex "\015\012?" [FME_DecodeText $stringToSearch] "\012"]; set results [FME_GetRegex $(casemac) [FME_DecodeText $regExp] $stringToSearch]; if {[llength [lindex $results 0]] > 0} { set attrName [FME_DecodeText $matchedChars]; FME_SetAttribute $attrName [lindex [lindex [lindex $results 0] 0] 0]; set index 0; set parts [lindex $results 1]; foreach part $parts { if {[llength $matchedParts] > 0} { set attrName "$matchedParts{$index}.part"; FME_SetAttribute $attrName [lindex $part 0]; set attrName "$matchedParts{$index}.startIndex"; FME_SetAttribute $attrName [lindex $part 1]; }; incr index; }; set index 0; set regexMatches [lindex $results 0]; foreach part $regexMatches { if {[llength $matches] > 0} { set attrName "$matches{$index}.match"; FME_SetAttribute $attrName [lindex $part 0]; set attrName "$matches{$index}.startIndex"; FME_SetAttribute $attrName [lindex $part 1]; }; set isFirstMatch 0; incr index; }; return $index; }; return -1; } FACTORY_DEF * TestFactory FACTORY_NAME StringSearcher_3 INPUT FEATURE_TYPE StringSearcher_2_MATCHED TEST @Tcl2("StringSearcher_3_f725d411_a173_454a_be43_22b8c071809b0_doGrep {@EvaluateExpression(FDIV,STRING_ENCODED,ValueHowmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?,StringSearcher_3)} {^^-*^-} {actual_first_match} {} {}") > 0 FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE StringSearcher_3_MATCHED # ------------------------------------------------------------------------- FACTORY_DEF {*} StringReplacerFactory FACTORY_NAME StringReplacer_2 INPUT FEATURE_TYPE StringSearcher_3_MATCHED USE_REGEX NO CASE_SENSITIVE NO SOURCE_ATTRIBUTES { actual_first_match,should_first_match } FIND_TEXT { "" } REPLACE_TEXT { "" } REPLACE_NO_MATCH { "_FME_NO_OP_" } OUTPUT OUTPUT FEATURE_TYPE StringReplacer_2_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_5 INPUT FEATURE_TYPE StringReplacer_2_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "Whatcoursewouldyouliketoteach?Pleaseenteradescriptivenamesuchas_IntrotoCalculus_" "CourseTitle" "" "RENAME_SET_VALUE" } ATTR_ACTION { "Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "" "REMOVE" } ATTR_ACTION { "Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?" "Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?" "" "REMOVE" } ATTR_ACTION { "" "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "EvaluateValueshould_first_match+1000" "SET_TO" } ATTR_ACTION { "" "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "EvaluateValueactual_first_match+1000" "SET_TO" } ATTR_ACTION { "should_first_match" "should_first_match" "" "REMOVE" } ATTR_ACTION { "actual_first_match" "actual_first_match" "" "REMOVE" } ATTR_ACTION { "" "CourseSubject" "FME" "SET_TO" } ATTR_ACTION { "" "CourseNumber" "EvaluateEvaluateValueID+100" "SET_TO" } ATTR_ACTION { "" "Source" "New" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_5_OUTPUT # ------------------------------------------------------------------------- INCLUDE [ if { {MATCH} == {EXCEPT} } { puts {MACRO ChangeDetector_ATTRMATCH MATCH_ALL_ATTRS_EXCEPT { CourseTitle ID } }; } elseif { {MATCH} == {ALL} } { puts {MACRO ChangeDetector_ATTRMATCH MATCH_ALL_ATTRIBUTES}; } elseif { {MATCH} == {MATCH} } { puts {MACRO ChangeDetector_ATTRMATCH MATCH_ATTRIBUTES { CourseTitle ID } }; } else { puts {MACRO ChangeDetector_ATTRMATCH MATCH_ATTRIBUTES}; }; if { {ORIGINAL} == {REVISED} } { puts {MACRO ChangeDetector_OUTPUT_UNCHANGED_MACRO OUTPUT MATCHED_REVISED FEATURE_TYPE ChangeDetector_UNCHANGED }; } elseif { {ORIGINAL} == {BOTH} } { puts {MACRO ChangeDetector_OUTPUT_UNCHANGED_MACRO }; } else { puts {MACRO ChangeDetector_OUTPUT_UNCHANGED_MACRO OUTPUT MATCHED FEATURE_TYPE ChangeDetector_UNCHANGED }; }; ] FACTORY_DEF {*} MatchingFactory FACTORY_NAME ChangeDetector_Matcher INPUT ORIGINAL FEATURE_TYPE AttributeManager_33_OUTPUT INPUT REVISED FEATURE_TYPE AttributeManager_5_OUTPUT CHANGE_DETECTOR_MODE YES MATCH_GEOMETRY UPDATED_LIST_NAME "" PRE_MATCH_ATTRIBUTES { } $(ChangeDetector_ATTRMATCH) BLANK_AND_MISSING_DIFFER No BLANK_AND_MISSING_NAMES_TRAITS_DIFFER CHECK_TYPES_AND_ENCODINGS No VECTOR_TOLERANCE LENIENT_GEOMETRY_MATCH CHECK_COORDINATE_SYSTEMS ADD_TO_MATCHED $(ChangeDetector_OUTPUT_UNCHANGED_MACRO) OUTPUT ADDED FEATURE_TYPE ChangeDetector_INSERTED # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_5 INPUT FEATURE_TYPE ChangeDetector_UNCHANGED # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_7 INPUT FEATURE_TYPE ChangeDetector_INSERTED OUTPUT FEATURE_TYPE Junction_7_Output # ------------------------------------------------------------------------- Tcl2 proc RandomNumberGenerator_generator {paramMin paramMax paramPlaces} { set absoluteMax [expr abs($paramMax)]; set absoluteMin [expr abs($paramMin)]; if {$absoluteMin > $absoluteMax} { set temp $absoluteMax; set absoluteMax $absoluteMin; set absoluteMin $temp; }; set maxNumDigits 1; if {$absoluteMax > 0} { set maxNumDigits [expr int(log10($absoluteMax) + 1)]; }; set positiveParamPlaces [expr abs($paramPlaces)]; if {$paramMin > $paramMax} { FME_SetAttribute {"ClassSize"} NaN; } elseif {$paramPlaces < 0 && $maxNumDigits <= $positiveParamPlaces} { FME_SetAttribute {"ClassSize"} 0; } else { set randomNumber [expr rand()]; set mult [expr pow(10, $paramPlaces)]; set innerMin [expr double($paramMin)]; set innerMax [expr double($paramMax)]; if {$paramPlaces > 0} { set addValue [expr pow(10, -$paramPlaces)]; set indexDotMin [string first "." $innerMin]; set indexDotMax [string first "." $innerMax]; set countDecPlacesMin [expr [string length $innerMin] - $indexDotMin - 1]; set countDecPlacesMax [expr [string length $innerMax] - $indexDotMax - 1]; set countTruncatedDecPlaces [expr $countDecPlacesMin - $paramPlaces]; if {$countTruncatedDecPlaces > 0} { set zeroes [string repeat "0" $countTruncatedDecPlaces]; set truncatedDecPlaces [string range $innerMin [expr $indexDotMin + 1 + $paramPlaces] [string length $innerMin]]; if {![string equal $truncatedDecPlaces $zeroes]} { set truncatedResult [string range $innerMin 0 [expr $indexDotMin + $paramPlaces]]; if {$innerMin > 0} { set truncatedResult [expr $truncatedResult + $addValue]; }; set innerMin $truncatedResult; }; }; set countTruncatedDecPlaces [expr $countDecPlacesMax - $paramPlaces]; if {$countTruncatedDecPlaces > 0} { set zeroes [string repeat "0" $countTruncatedDecPlaces]; set truncatedDecPlaces [string range $innerMax [expr $indexDotMax + 1 + $paramPlaces] [string length $innerMax]]; if {![string equal $truncatedDecPlaces $zeroes]} { set truncatedResult [string range $innerMax 0 [expr $indexDotMax + $paramPlaces]]; if {$innerMax < 0} { set truncatedResult [expr $truncatedResult - $addValue]; }; set innerMax $truncatedResult; }; }; } else { set innerMin [expr ceil($paramMin * $mult) * 1.0 / $mult]; set innerMax [expr floor($paramMax * $mult) * 1.0 / $mult]; }; set integerMin $innerMin; set integerMax $innerMax; set integerMin [expr wide($innerMin * $mult)]; set integerMax [expr wide($innerMax * $mult)]; set integerResult [expr $integerMin + wide($randomNumber * ($integerMax + 1 - $integerMin))]; set result [expr $integerResult * 1.0 / $mult]; set formatString "%.0f"; if {$paramPlaces > 0} { set formatString [format "%%.%df" $paramPlaces]; }; FME_SetAttribute {"ClassSize"} [format $formatString $result]; }; } FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_MinRejecter INPUT FEATURE_TYPE Junction_7_Output TEST "4" TYPE NUM ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator__toMaxRejecter__ FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_MaxRejecter INPUT FEATURE_TYPE RandomNumberGenerator__toMaxRejecter__ TEST "8" TYPE NUM ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator__toPlacesRejecter__ FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_PlacesRejecter INPUT FEATURE_TYPE RandomNumberGenerator__toPlacesRejecter__ TEST "0" TYPE INT ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator__toOutput__ FACTORY_DEF * TeeFactory FACTORY_NAME RandomNumberGenerator_RandomNumberGenerator INPUT FEATURE_TYPE RandomNumberGenerator__toOutput__ OUTPUT FEATURE_TYPE RandomNumberGenerator_OUTPUT @Tcl2("RandomNumberGenerator_generator {4} {8} {0} ") # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_29 INPUT FEATURE_TYPE CSV_CSV2_1_1_GVR6dhZPGYA= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "name" "FirstName" "FullTitleCaseValueFirstName" "RENAME_SET_VALUE" } ATTR_ACTION { "rank" "rank" "" "REMOVE" } ATTR_ACTION { "count" "count" "" "REMOVE" } ATTR_ACTION { "prop100k" "prop100k" "" "REMOVE" } ATTR_ACTION { "cum_prop100k" "cum_prop100k" "" "REMOVE" } ATTR_ACTION { "pctwhite" "pctwhite" "" "REMOVE" } ATTR_ACTION { "pctblack" "pctblack" "" "REMOVE" } ATTR_ACTION { "pctapi" "pctapi" "" "REMOVE" } ATTR_ACTION { "pctaian" "pctaian" "" "REMOVE" } ATTR_ACTION { "pct2prace" "pct2prace" "" "REMOVE" } ATTR_ACTION { "pcthispanic" "pcthispanic" "" "REMOVE" } ATTR_ACTION { "" "random" "rand" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_29_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} SortFactory FACTORY_NAME Sorter_2 INPUT FEATURE_TYPE AttributeManager_29_OUTPUT FLUSH_WHEN_GROUPS_CHANGE No SORT_BY { random NUMERIC ASCENDING } OUTPUT SORTED FEATURE_TYPE Sorter_2_SORTED # ------------------------------------------------------------------------- # Create the DomainName that this transformer will use. # Because @Count itself will evalute the expression to calculate the # domain, we don't need to do anything in Tcl per feature going by INCLUDE [ set domainPrefix {}; if { {Global} == {Local} } { set domainPrefix [FME_EncodeText {Counter_4_}]; }; puts "MACRO Counter_4_FULL_DOMAIN ${domainPrefix}counter"; ] FACTORY_DEF * ExecuteFunctionFactory FACTORY_NAME Counter_4_Rejector COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Sorter_2_SORTED FUNCTION_DEFINITION @Count(REJECTABLE_WITH_FLAG,fme_encoded,$(Counter_4_FULL_DOMAIN),"0") RESULT_ATTRIBUTE "rowId" FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT COMPLETE FEATURE_TYPE Counter_4_OUTPUT OUTPUT REJECTED FEATURE_TYPE Counter_4_ FACTORY_DEF * TeeFactory FACTORY_NAME "Counter_4 Transformer Output Nuker" INPUT FEATURE_TYPE Counter_4_ # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_4 INPUT FEATURE_TYPE CSV_CSV2_1_0_yvsMpFt/4Gw= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "name" "LastName" "FullTitleCaseValueLastName" "RENAME_SET_VALUE" } ATTR_ACTION { "rank" "rank" "" "REMOVE" } ATTR_ACTION { "count" "count" "" "REMOVE" } ATTR_ACTION { "prop100k" "prop100k" "" "REMOVE" } ATTR_ACTION { "cum_prop100k" "cum_prop100k" "" "REMOVE" } ATTR_ACTION { "pctwhite" "pctwhite" "" "REMOVE" } ATTR_ACTION { "pctblack" "pctblack" "" "REMOVE" } ATTR_ACTION { "pctapi" "pctapi" "" "REMOVE" } ATTR_ACTION { "pctaian" "pctaian" "" "REMOVE" } ATTR_ACTION { "pct2prace" "pct2prace" "" "REMOVE" } ATTR_ACTION { "pcthispanic" "pcthispanic" "" "REMOVE" } ATTR_ACTION { "" "random" "rand" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_4_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} SortFactory FACTORY_NAME Sorter INPUT FEATURE_TYPE AttributeManager_4_OUTPUT FLUSH_WHEN_GROUPS_CHANGE No SORT_BY { random NUMERIC ASCENDING } OUTPUT SORTED FEATURE_TYPE Sorter_SORTED # ------------------------------------------------------------------------- # Create the DomainName that this transformer will use. # Because @Count itself will evalute the expression to calculate the # domain, we don't need to do anything in Tcl per feature going by INCLUDE [ set domainPrefix {}; if { {Local} == {Local} } { set domainPrefix [FME_EncodeText {Counter_}]; }; puts "MACRO Counter_FULL_DOMAIN ${domainPrefix}counter"; ] FACTORY_DEF * ExecuteFunctionFactory FACTORY_NAME Counter_Rejector COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Sorter_SORTED FUNCTION_DEFINITION @Count(REJECTABLE_WITH_FLAG,fme_encoded,$(Counter_FULL_DOMAIN),"0") RESULT_ATTRIBUTE "rowId" FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT COMPLETE FEATURE_TYPE Counter_OUTPUT OUTPUT REJECTED FEATURE_TYPE Counter_ FACTORY_DEF * TeeFactory FACTORY_NAME "Counter Transformer Output Nuker" INPUT FEATURE_TYPE Counter_ # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_14 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE Counter_OUTPUT INPUT RIGHT FEATURE_TYPE Counter_4_OUTPUT JOIN_MODE Inner JOIN_KEYS rowId rowId NUM ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_14_JOINED FACTORY_DEF * TeeFactory FACTORY_NAME "FeatureJoiner_14 JOINED Splitter" INPUT FEATURE_TYPE FeatureJoiner_14_JOINED OUTPUT FEATURE_TYPE FeatureJoiner_14_JOINED_0_HuSeDnFJEWg= OUTPUT FEATURE_TYPE FeatureJoiner_14_JOINED_1_/aNTU7hB6y4= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_2 INPUT FEATURE_TYPE FeatureJoiner_14_JOINED_1_/aNTU7hB6y4= OUTPUT FEATURE_TYPE Junction_2_Output # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_10 INPUT FEATURE_TYPE Junction_2_Output MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "random" "random" "" "REMOVE" } ATTR_ACTION { "LastName" "StudentLastName" "" "RENAME_SET_VALUE" } ATTR_ACTION { "FirstName" "StudentFirstName" "" "RENAME_SET_VALUE" } ATTR_ACTION { "" "StudentEmail" "ValueStudentFirstName.ValueStudentLastNamestudent.plaiduniversity.plaid.is" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_10_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_7 INPUT FEATURE_TYPE FeatureJoiner_14_JOINED_0_HuSeDnFJEWg= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "random" "random" "" "REMOVE" } ATTR_ACTION { "" "InstructorSalutation" "Dr." "SET_TO" } ATTR_ACTION { "" "InstructorId" "ValuerowId" "SET_TO" } ATTR_ACTION { "LastName" "InstructorLastName" "" "RENAME_SET_VALUE" } ATTR_ACTION { "FirstName" "InstructorFirstName" "" "RENAME_SET_VALUE" } ATTR_ACTION { "" "InstructorEmail" "ValueInstructorFirstName.ValueInstructorLastNameplaiduniversity.plaid.is" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_7_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_3 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE RandomNumberGenerator_OUTPUT INPUT RIGHT FEATURE_TYPE AttributeManager_7_OUTPUT JOIN_MODE Inner JOIN_KEYS ID rowId AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_3_JOINED FACTORY_DEF * TeeFactory FACTORY_NAME "FeatureJoiner_3 JOINED Splitter" INPUT FEATURE_TYPE FeatureJoiner_3_JOINED OUTPUT FEATURE_TYPE FeatureJoiner_3_JOINED_0_zwzITnYNHR8= OUTPUT FEATURE_TYPE FeatureJoiner_3_JOINED_1_W0Sfb4uWd4w= OUTPUT FEATURE_TYPE FeatureJoiner_3_JOINED_2_+8pNsQuajyk= OUTPUT FEATURE_TYPE FeatureJoiner_3_JOINED_3_zoYkX3EM96c= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_10 INPUT FEATURE_TYPE FeatureJoiner_3_JOINED_3_zoYkX3EM96c= OUTPUT FEATURE_TYPE Junction_10_Output # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_17 INPUT FEATURE_TYPE Junction_10_Output OUTPUT FEATURE_TYPE Junction_17_Output # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_9 INPUT FEATURE_TYPE FeatureJoiner_3_JOINED_2_+8pNsQuajyk= OUTPUT FEATURE_TYPE Junction_9_Output FACTORY_DEF * TeeFactory FACTORY_NAME "Junction_9 Output Splitter" INPUT FEATURE_TYPE Junction_9_Output OUTPUT FEATURE_TYPE Junction_9_Output_0_85HsTHpU6fQ= OUTPUT FEATURE_TYPE Junction_9_Output_1_JR29HYZpaaM= OUTPUT FEATURE_TYPE Junction_9_Output_2_A1B+7LVr/Lc= # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_31 INPUT FEATURE_TYPE Junction_9_Output_2_A1B+7LVr/Lc= MULTI_FEATURE_MODE NO NUM_PRIOR_FEATURES 0 NUM_SUBSEQUENT_FEATURES 0 NULL_ATTR_MODE NO_OP NULL_ATTR_VALUE 0 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 OUTPUT OUTPUT FEATURE_TYPE AttributeManager_31_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction INPUT FEATURE_TYPE AttributeManager_31_OUTPUT OUTPUT FEATURE_TYPE Junction_Output FACTORY_DEF * TeeFactory FACTORY_NAME "Junction Output Splitter" INPUT FEATURE_TYPE Junction_Output OUTPUT FEATURE_TYPE Junction_Output_0_sH9l3UTsGrw= OUTPUT FEATURE_TYPE Junction_Output_1_/QQSbUuR6ZI= # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_14 INPUT FEATURE_TYPE Junction_Output_1_/QQSbUuR6ZI= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "SSBSECT_TERM_CODE" "202020" "SET_TO" } ATTR_ACTION { "" "SSBSECT_PTRM_CODE" "1" "SET_TO" } ATTR_ACTION { "" "SSBSECT_SUBJ_CODE" "ValueCourseSubject" "SET_TO" } ATTR_ACTION { "" "SSBSECT_CRSE_NUMB" "ValueCourseNumber" "SET_TO" } ATTR_ACTION { "" "SSBSECT_CREDIT_HRS" "Evaluate3" "SET_TO" } ATTR_ACTION { "ID" "ID" "" "REMOVE" } ATTR_ACTION { "ClassSize" "ClassSize" "" "REMOVE" } ATTR_ACTION { "rowId" "rowId" "" "REMOVE" } ATTR_ACTION { "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "" "REMOVE" } ATTR_ACTION { "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "" "REMOVE" } ATTR_ACTION { "" "BannerTableName" "SSBSECT" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_14_OUTPUT # ------------------------------------------------------------------------- Tcl2 proc RandomNumberGenerator_3_generator {paramMin paramMax paramPlaces} { set absoluteMax [expr abs($paramMax)]; set absoluteMin [expr abs($paramMin)]; if {$absoluteMin > $absoluteMax} { set temp $absoluteMax; set absoluteMax $absoluteMin; set absoluteMin $temp; }; set maxNumDigits 1; if {$absoluteMax > 0} { set maxNumDigits [expr int(log10($absoluteMax) + 1)]; }; set positiveParamPlaces [expr abs($paramPlaces)]; if {$paramMin > $paramMax} { FME_SetAttribute {"SSBSECT_CRN"} NaN; } elseif {$paramPlaces < 0 && $maxNumDigits <= $positiveParamPlaces} { FME_SetAttribute {"SSBSECT_CRN"} 0; } else { set randomNumber [expr rand()]; set mult [expr pow(10, $paramPlaces)]; set innerMin [expr double($paramMin)]; set innerMax [expr double($paramMax)]; if {$paramPlaces > 0} { set addValue [expr pow(10, -$paramPlaces)]; set indexDotMin [string first "." $innerMin]; set indexDotMax [string first "." $innerMax]; set countDecPlacesMin [expr [string length $innerMin] - $indexDotMin - 1]; set countDecPlacesMax [expr [string length $innerMax] - $indexDotMax - 1]; set countTruncatedDecPlaces [expr $countDecPlacesMin - $paramPlaces]; if {$countTruncatedDecPlaces > 0} { set zeroes [string repeat "0" $countTruncatedDecPlaces]; set truncatedDecPlaces [string range $innerMin [expr $indexDotMin + 1 + $paramPlaces] [string length $innerMin]]; if {![string equal $truncatedDecPlaces $zeroes]} { set truncatedResult [string range $innerMin 0 [expr $indexDotMin + $paramPlaces]]; if {$innerMin > 0} { set truncatedResult [expr $truncatedResult + $addValue]; }; set innerMin $truncatedResult; }; }; set countTruncatedDecPlaces [expr $countDecPlacesMax - $paramPlaces]; if {$countTruncatedDecPlaces > 0} { set zeroes [string repeat "0" $countTruncatedDecPlaces]; set truncatedDecPlaces [string range $innerMax [expr $indexDotMax + 1 + $paramPlaces] [string length $innerMax]]; if {![string equal $truncatedDecPlaces $zeroes]} { set truncatedResult [string range $innerMax 0 [expr $indexDotMax + $paramPlaces]]; if {$innerMax < 0} { set truncatedResult [expr $truncatedResult - $addValue]; }; set innerMax $truncatedResult; }; }; } else { set innerMin [expr ceil($paramMin * $mult) * 1.0 / $mult]; set innerMax [expr floor($paramMax * $mult) * 1.0 / $mult]; }; set integerMin $innerMin; set integerMax $innerMax; set integerMin [expr wide($innerMin * $mult)]; set integerMax [expr wide($innerMax * $mult)]; set integerResult [expr $integerMin + wide($randomNumber * ($integerMax + 1 - $integerMin))]; set result [expr $integerResult * 1.0 / $mult]; set formatString "%.0f"; if {$paramPlaces > 0} { set formatString [format "%%.%df" $paramPlaces]; }; FME_SetAttribute {"SSBSECT_CRN"} [format $formatString $result]; }; } FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_3_MinRejecter INPUT FEATURE_TYPE AttributeManager_14_OUTPUT TEST "10001" TYPE NUM ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_3__toMaxRejecter__ FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_3_MaxRejecter INPUT FEATURE_TYPE RandomNumberGenerator_3__toMaxRejecter__ TEST "99999" TYPE NUM ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_3__toPlacesRejecter__ FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_3_PlacesRejecter INPUT FEATURE_TYPE RandomNumberGenerator_3__toPlacesRejecter__ TEST "0" TYPE INT ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_3__toOutput__ FACTORY_DEF * TeeFactory FACTORY_NAME RandomNumberGenerator_3_RandomNumberGenerator INPUT FEATURE_TYPE RandomNumberGenerator_3__toOutput__ OUTPUT FEATURE_TYPE RandomNumberGenerator_3_OUTPUT @Tcl2("RandomNumberGenerator_3_generator {10001} {99999} {0} ") FACTORY_DEF * TeeFactory FACTORY_NAME "RandomNumberGenerator_3 OUTPUT Splitter" INPUT FEATURE_TYPE RandomNumberGenerator_3_OUTPUT OUTPUT FEATURE_TYPE RandomNumberGenerator_3_OUTPUT_0_zmtVPFJhIts= OUTPUT FEATURE_TYPE RandomNumberGenerator_3_OUTPUT_1_LUt9TTcmFQg= OUTPUT FEATURE_TYPE RandomNumberGenerator_3_OUTPUT_2_QCqJlr4Y3+s= # ------------------------------------------------------------------------- FACTORY_DEF {*} AttributeKeeperFactory FACTORY_NAME AttributeKeeper INPUT FEATURE_TYPE RandomNumberGenerator_3_OUTPUT_1_LUt9TTcmFQg= KEEP_ATTRS { SSBSECT_CREDIT_HRS,SSBSECT_CRSE_NUMB,SSBSECT_PTRM_CODE,SSBSECT_SUBJ_CODE,SSBSECT_TERM_CODE,SSBSECT_CRN,BannerTableName } KEEP_LISTS { } KEEP_FME_ATTRIBUTES Yes BUILD_FEATURE_TABLES { NO } OUTPUT_ON_ATTRIBUTE_CHANGE { } OUTPUT { OUTPUT FEATURE_TYPE AttributeKeeper_OUTPUT } # ------------------------------------------------------------------------- FACTORY_DEF {*} DuplicateRemoverFactory FACTORY_NAME DuplicateFilter_5 COMMAND_PARM_EVALUATION SINGLE_PASS SUPPORTS_FEATURE_TABLES INPUT FEATURE_TYPE AttributeKeeper_OUTPUT KEY_ATTRIBUTES { SSBSECT_CREDIT_HRS SSBSECT_CRSE_NUMB SSBSECT_PTRM_CODE SSBSECT_SUBJ_CODE SSBSECT_TERM_CODE } INPUT_IS_ORDERED NO PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT UNIQUE FEATURE_TYPE DuplicateFilter_5_UNIQUE # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_15 INPUT FEATURE_TYPE RandomNumberGenerator_3_OUTPUT_0_zmtVPFJhIts= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "SIRASGN_TERM_CODE" "202020" "SET_TO" } ATTR_ACTION { "CourseTitle" "CourseTitle" "" "REMOVE" } ATTR_ACTION { "CourseSubject" "CourseSubject" "" "REMOVE" } ATTR_ACTION { "CourseNumber" "CourseNumber" "" "REMOVE" } ATTR_ACTION { "InstructorSalutation" "InstructorSalutation" "" "REMOVE" } ATTR_ACTION { "InstructorEmail" "InstructorEmail" "" "REMOVE" } ATTR_ACTION { "InstructorLastName" "InstructorLastName" "" "REMOVE" } ATTR_ACTION { "SSBSECT_TERM_CODE" "SSBSECT_TERM_CODE" "" "REMOVE" } ATTR_ACTION { "SSBSECT_PTRM_CODE" "SSBSECT_PTRM_CODE" "" "REMOVE" } ATTR_ACTION { "SSBSECT_SUBJ_CODE" "SSBSECT_SUBJ_CODE" "" "REMOVE" } ATTR_ACTION { "SSBSECT_CRSE_NUMB" "SSBSECT_CRSE_NUMB" "" "REMOVE" } ATTR_ACTION { "SSBSECT_CREDIT_HRS" "SSBSECT_CREDIT_HRS" "" "REMOVE" } ATTR_ACTION { "InstructorId" "SIRASGN_PIDM" "" "RENAME_SET_VALUE" } ATTR_ACTION { "SSBSECT_CRN" "SIRASGN_CRN" "" "RENAME_SET_VALUE" } ATTR_ACTION { "BannerTableName" "BannerTableName" "SIRASGN" "SET_TO" } ATTR_ACTION { "InstructorFirstName" "InstructorFirstName" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_15_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} DuplicateRemoverFactory FACTORY_NAME DuplicateFilter_4 COMMAND_PARM_EVALUATION SINGLE_PASS SUPPORTS_FEATURE_TABLES INPUT FEATURE_TYPE AttributeManager_15_OUTPUT KEY_ATTRIBUTES { SIRASGN_CRN SIRASGN_PIDM SIRASGN_TERM_CODE } INPUT_IS_ORDERED NO PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT UNIQUE FEATURE_TYPE DuplicateFilter_4_UNIQUE # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_13 INPUT FEATURE_TYPE Junction_Output_0_sH9l3UTsGrw= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "SCBCRSE_SUBJ_CODE" "ValueCourseSubject" "SET_TO" } ATTR_ACTION { "" "SCBCRSE_CRSE_NUMB" "ValueCourseNumber" "SET_TO" } ATTR_ACTION { "" "SCBCRSE_TITLE" "ValueCourseTitle" "SET_TO" } ATTR_ACTION { "" "SCBCRSE_CREDIT_HR_LOW" "Evaluate3" "SET_TO" } ATTR_ACTION { "" "SCBCRSE_CREDIT_HR_HIGH" "Evaluate3" "SET_TO" } ATTR_ACTION { "ID" "ID" "" "REMOVE" } ATTR_ACTION { "CourseTitle" "CourseTitle" "" "REMOVE" } ATTR_ACTION { "CourseSubject" "CourseSubject" "" "REMOVE" } ATTR_ACTION { "CourseNumber" "CourseNumber" "" "REMOVE" } ATTR_ACTION { "InstructorSalutation" "InstructorSalutation" "" "REMOVE" } ATTR_ACTION { "InstructorEmail" "InstructorEmail" "" "REMOVE" } ATTR_ACTION { "InstructorLastName" "InstructorLastName" "" "REMOVE" } ATTR_ACTION { "ClassSize" "ClassSize" "" "REMOVE" } ATTR_ACTION { "rowId" "rowId" "" "REMOVE" } ATTR_ACTION { "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "" "REMOVE" } ATTR_ACTION { "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "" "REMOVE" } ATTR_ACTION { "InstructorId" "InstructorId" "" "REMOVE" } ATTR_ACTION { "" "BannerTableName" "SCBCRSE" "SET_TO" } ATTR_ACTION { "InstructorFirstName" "InstructorFirstName" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_13_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} DuplicateRemoverFactory FACTORY_NAME DuplicateFilter_3 COMMAND_PARM_EVALUATION SINGLE_PASS SUPPORTS_FEATURE_TABLES INPUT FEATURE_TYPE AttributeManager_13_OUTPUT KEY_ATTRIBUTES { SCBCRSE_CRSE_NUMB SCBCRSE_SUBJ_CODE SCBCRSE_TITLE SCBCRSE_CREDIT_HR_HIGH SCBCRSE_CREDIT_HR_LOW } INPUT_IS_ORDERED NO PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT UNIQUE FEATURE_TYPE DuplicateFilter_3_UNIQUE # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_16 INPUT FEATURE_TYPE Junction_9_Output_1_JR29HYZpaaM= MULTI_FEATURE_MODE NO NUM_PRIOR_FEATURES 0 NUM_SUBSEQUENT_FEATURES 0 NULL_ATTR_MODE NO_OP NULL_ATTR_VALUE 0 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 OUTPUT OUTPUT FEATURE_TYPE AttributeManager_16_OUTPUT FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeManager_16 OUTPUT Splitter" INPUT FEATURE_TYPE AttributeManager_16_OUTPUT OUTPUT FEATURE_TYPE AttributeManager_16_OUTPUT_0_H3n/7URSRm0= OUTPUT FEATURE_TYPE AttributeManager_16_OUTPUT_1_O+aW8hgg6O8= OUTPUT FEATURE_TYPE AttributeManager_16_OUTPUT_2_pyGy1+I+5+M= # ------------------------------------------------------------------------- # Build the List removal function and regular expression if there was any list attributes to be removed. # If not, then we will not have any extra list removal call to @RemoveAttributes, which speeds the # normal, non-list removal especially when in Bulk Mode. Note that this computation of the regular expressions is done # once during mapping file parse time. INCLUDE [ set listAttributeRemoveRegexps {}; set anyList {no}; foreach attr [split ""] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append listAttributeRemoveRegexps ",^$attr$"; set anyList {yes}; }; if { ${anyList} == {no} } { puts {MACRO AttributeRemover_5_LIST_FUNC } } else { puts "MACRO AttributeRemover_5_LIST_FUNC @RemoveAttributes(fme_pcre_match\"$listAttributeRemoveRegexps\")" }; ] FACTORY_DEF {*} TeeFactory FACTORY_NAME AttributeRemover_5 INPUT FEATURE_TYPE AttributeManager_16_OUTPUT_2_pyGy1+I+5+M= OUTPUT { FEATURE_TYPE AttributeRemover_5_OUTPUT @RemoveAttributes(fme_encoded,ClassSize,CourseNumber,CourseSubject,CourseTitle,ID,Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?,Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint,rowId) $(AttributeRemover_5_LIST_FUNC) } # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_4 INPUT FEATURE_TYPE AttributeRemover_5_OUTPUT OUTPUT FEATURE_TYPE Junction_4_Output # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_18 INPUT FEATURE_TYPE AttributeManager_16_OUTPUT_1_O+aW8hgg6O8= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "PHRHIST_PIDM" "ValueInstructorId" "SET_TO" } ATTR_ACTION { "" "PHRHIST_SEQ_NO" "1" "SET_TO" } ATTR_ACTION { "" "PHRHIST_TYPE_DESC" "Salary" "SET_TO" } ATTR_ACTION { "" "PHRHIST_GROSS" "EvaluateValueMidpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint9" "SET_TO" } ATTR_ACTION { "" "PHRHIST_NET" "EvaluateValuePHRHIST_GROSS*.80" "SET_TO" } ATTR_ACTION { "" "PHRHIST_EVENT_DATE" "DateTimeNow" "SET_TO" } ATTR_ACTION { "InstructorId" "InstructorId" "" "REMOVE" } ATTR_ACTION { "ID" "ID" "" "REMOVE" } ATTR_ACTION { "CourseTitle" "CourseTitle" "" "REMOVE" } ATTR_ACTION { "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "" "REMOVE" } ATTR_ACTION { "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "" "REMOVE" } ATTR_ACTION { "CourseSubject" "CourseSubject" "" "REMOVE" } ATTR_ACTION { "CourseNumber" "CourseNumber" "" "REMOVE" } ATTR_ACTION { "ClassSize" "ClassSize" "" "REMOVE" } ATTR_ACTION { "rowId" "rowId" "" "REMOVE" } ATTR_ACTION { "InstructorSalutation" "InstructorSalutation" "" "REMOVE" } ATTR_ACTION { "InstructorEmail" "InstructorEmail" "" "REMOVE" } ATTR_ACTION { "InstructorLastName" "InstructorLastName" "" "REMOVE" } ATTR_ACTION { "" "Dummy" "1" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_18_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_6 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE AttributeManager_18_OUTPUT INPUT LEFT FEATURE_TYPE AttributeManager_35_OUTPUT INPUT RIGHT FEATURE_TYPE AttributeManager_19_OUTPUT JOIN_MODE Inner JOIN_KEYS Dummy Dummy AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_6_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_20 INPUT FEATURE_TYPE FeatureJoiner_6_JOINED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "PHRHIST_EVENT_DATE" "PHRHIST_EVENT_DATE" "ValuePayDate" "SET_TO" } ATTR_ACTION { "PayDate" "PayDate" "" "REMOVE" } ATTR_ACTION { "" "BannerTableName" "PHRHIST" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_20_OUTPUT FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeManager_20 OUTPUT Splitter" INPUT FEATURE_TYPE AttributeManager_20_OUTPUT OUTPUT FEATURE_TYPE AttributeManager_20_OUTPUT_0_pfH7T/z2fWc= OUTPUT FEATURE_TYPE AttributeManager_20_OUTPUT_1_L4H3Mu5lHkk= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME TestFilter_2 INPUT FEATURE_TYPE AttributeManager_20_OUTPUT_1_L4H3Mu5lHkk= OUTPUT FEATURE_TYPE TestFilter_2_TESTFILTERINPUTLINE_0 FACTORY_DEF * TestFactory FACTORY_NAME TestFilter_2_Condition_1 INPUT FEATURE_TYPE TestFilter_2_TESTFILTERINPUTLINE_0 TEST @EvaluateExpression(FDIV,STRING_ENCODED,ValuePHRHIST_PIDM,TestFilter_2) = 999999 ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE TestFilter_2_ITstaff OUTPUT FAILED FEATURE_TYPE TestFilter_2_TESTFILTERINPUTLINE_1 FACTORY_DEF * TeeFactory FACTORY_NAME TestFilter_2_UNFILTERED INPUT FEATURE_TYPE TestFilter_2_TESTFILTERINPUTLINE_1 OUTPUT FEATURE_TYPE TestFilter_2_UNFILTERED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_38 INPUT FEATURE_TYPE TestFilter_2_UNFILTERED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "Description" "Payroll-Instructors" "SET_TO" } ATTR_ACTION { "" "Title" "Payroll-InstructorValuePHRHIST_PIDM" "SET_TO" } ATTR_ACTION { "" "TotalEstimatedCosts" "ValuePHRHIST_GROSS" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_38_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_16 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE AttributeManager_36_OUTPUT INPUT RIGHT FEATURE_TYPE TestFilter_2_ITstaff JOIN_MODE Inner JOIN_KEYS Dummy Dummy AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_16_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_39 INPUT FEATURE_TYPE FeatureJoiner_16_JOINED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "Title" "Title" "test" "SET_TO" } ATTR_ACTION { "InstructorFirstName" "InstructorFirstName" "" "REMOVE" } ATTR_ACTION { "" "TotalEstimatedCosts" "FME_CONDITIONAL:DEFAULT_VALUE'ValuePHRHIST_GROSS'BOOL_OP;OR;COMPOSITE_TEST;1;TEST ValuePHRHIST_TYPE_DESC = Hourly'EvaluateValueEstimatedTimePerPayPeriod*ValuePHRHIST_GROSS'FME_NUM_CONDITIONS2___" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_39_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_17 INPUT FEATURE_TYPE AttributeManager_16_OUTPUT_0_H3n/7URSRm0= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "PEBEMPL_PIDM" "ValueInstructorId" "SET_TO" } ATTR_ACTION { "" "PEBEMPL_EMPL_STATUS" "A" "SET_TO" } ATTR_ACTION { "" "PEBEMPL_ECLS_CODE" "SESS" "SET_TO" } ATTR_ACTION { "" "PEBEMPL_CAMPUS_CODE" "M" "SET_TO" } ATTR_ACTION { "" "PEBEMPL_COLL_CODE" "PL" "SET_TO" } ATTR_ACTION { "ID" "ID" "" "REMOVE" } ATTR_ACTION { "CourseTitle" "CourseTitle" "" "REMOVE" } ATTR_ACTION { "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "" "REMOVE" } ATTR_ACTION { "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "" "REMOVE" } ATTR_ACTION { "CourseSubject" "CourseSubject" "" "REMOVE" } ATTR_ACTION { "CourseNumber" "CourseNumber" "" "REMOVE" } ATTR_ACTION { "ClassSize" "ClassSize" "" "REMOVE" } ATTR_ACTION { "rowId" "rowId" "" "REMOVE" } ATTR_ACTION { "InstructorSalutation" "InstructorSalutation" "" "REMOVE" } ATTR_ACTION { "InstructorEmail" "InstructorEmail" "" "REMOVE" } ATTR_ACTION { "InstructorLastName" "InstructorLastName" "" "REMOVE" } ATTR_ACTION { "InstructorId" "InstructorId" "" "REMOVE" } ATTR_ACTION { "" "BannerTableName" "PEBEMPL" "SET_TO" } ATTR_ACTION { "InstructorFirstName" "InstructorFirstName" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_17_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_19 INPUT FEATURE_TYPE AttributeManager_17_OUTPUT INPUT FEATURE_TYPE ChangeDetector_2_INSERTED_0_FSctaKPiIIY= OUTPUT FEATURE_TYPE Junction_19_Output # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_11 INPUT FEATURE_TYPE Junction_9_Output_0_85HsTHpU6fQ= OUTPUT FEATURE_TYPE Junction_11_Output # ------------------------------------------------------------------------- # Build the List removal function and regular expression if there was any list attributes to be removed. # If not, then we will not have any extra list removal call to @RemoveAttributes, which speeds the # normal, non-list removal especially when in Bulk Mode. Note that this computation of the regular expressions is done # once during mapping file parse time. INCLUDE [ set listAttributeRemoveRegexps {}; set anyList {no}; foreach attr [split ""] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append listAttributeRemoveRegexps ",^$attr$"; set anyList {yes}; }; if { ${anyList} == {no} } { puts {MACRO AttributeRemover_LIST_FUNC } } else { puts "MACRO AttributeRemover_LIST_FUNC @RemoveAttributes(fme_pcre_match\"$listAttributeRemoveRegexps\")" }; ] FACTORY_DEF {*} TeeFactory FACTORY_NAME AttributeRemover INPUT FEATURE_TYPE Junction_11_Output OUTPUT { FEATURE_TYPE AttributeRemover_OUTPUT @RemoveAttributes(fme_encoded,ID,rowId) $(AttributeRemover_LIST_FUNC) } # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_8 COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeRemover_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "Dummy" "SET_TO" "1" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_8_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_8 INPUT FEATURE_TYPE FeatureJoiner_3_JOINED_1_W0Sfb4uWd4w= OUTPUT FEATURE_TYPE Junction_8_Output # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_21 INPUT FEATURE_TYPE Junction_8_Output MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "ID" "ID" "" "REMOVE" } ATTR_ACTION { "CourseTitle" "CourseTitle" "" "REMOVE" } ATTR_ACTION { "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "" "REMOVE" } ATTR_ACTION { "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "" "REMOVE" } ATTR_ACTION { "CourseSubject" "CourseSubject" "" "REMOVE" } ATTR_ACTION { "CourseNumber" "CourseNumber" "" "REMOVE" } ATTR_ACTION { "ClassSize" "ClassSize" "" "REMOVE" } ATTR_ACTION { "rowId" "rowId" "" "REMOVE" } ATTR_ACTION { "" "Dummy" "1" "SET_TO" } ATTR_ACTION { "" "JiraProjectKey" "SW" "SET_TO" } ATTR_ACTION { "" "JiraSummary" "VerifyNewInstructor-ValueInstructorLastName" "SET_TO" } ATTR_ACTION { "" "JiraDescription" "Anewinstructorhasrequestedaccesstosystems.Details:Salutation:ValueInstructorSalutationName:ValueInstructorLastNameEmail:ValueInstructorEmailPleaseverifyidentityandresolveissue." "SET_TO" } ATTR_ACTION { "" "JiraIssueTypeName" "Story" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_21_OUTPUT # ------------------------------------------------------------------------- Tcl2 proc RandomNumberGenerator_4_generator {paramMin paramMax paramPlaces} { set absoluteMax [expr abs($paramMax)]; set absoluteMin [expr abs($paramMin)]; if {$absoluteMin > $absoluteMax} { set temp $absoluteMax; set absoluteMax $absoluteMin; set absoluteMin $temp; }; set maxNumDigits 1; if {$absoluteMax > 0} { set maxNumDigits [expr int(log10($absoluteMax) + 1)]; }; set positiveParamPlaces [expr abs($paramPlaces)]; if {$paramMin > $paramMax} { FME_SetAttribute {"_random_number"} NaN; } elseif {$paramPlaces < 0 && $maxNumDigits <= $positiveParamPlaces} { FME_SetAttribute {"_random_number"} 0; } else { set randomNumber [expr rand()]; set mult [expr pow(10, $paramPlaces)]; set innerMin [expr double($paramMin)]; set innerMax [expr double($paramMax)]; if {$paramPlaces > 0} { set addValue [expr pow(10, -$paramPlaces)]; set indexDotMin [string first "." $innerMin]; set indexDotMax [string first "." $innerMax]; set countDecPlacesMin [expr [string length $innerMin] - $indexDotMin - 1]; set countDecPlacesMax [expr [string length $innerMax] - $indexDotMax - 1]; set countTruncatedDecPlaces [expr $countDecPlacesMin - $paramPlaces]; if {$countTruncatedDecPlaces > 0} { set zeroes [string repeat "0" $countTruncatedDecPlaces]; set truncatedDecPlaces [string range $innerMin [expr $indexDotMin + 1 + $paramPlaces] [string length $innerMin]]; if {![string equal $truncatedDecPlaces $zeroes]} { set truncatedResult [string range $innerMin 0 [expr $indexDotMin + $paramPlaces]]; if {$innerMin > 0} { set truncatedResult [expr $truncatedResult + $addValue]; }; set innerMin $truncatedResult; }; }; set countTruncatedDecPlaces [expr $countDecPlacesMax - $paramPlaces]; if {$countTruncatedDecPlaces > 0} { set zeroes [string repeat "0" $countTruncatedDecPlaces]; set truncatedDecPlaces [string range $innerMax [expr $indexDotMax + 1 + $paramPlaces] [string length $innerMax]]; if {![string equal $truncatedDecPlaces $zeroes]} { set truncatedResult [string range $innerMax 0 [expr $indexDotMax + $paramPlaces]]; if {$innerMax < 0} { set truncatedResult [expr $truncatedResult - $addValue]; }; set innerMax $truncatedResult; }; }; } else { set innerMin [expr ceil($paramMin * $mult) * 1.0 / $mult]; set innerMax [expr floor($paramMax * $mult) * 1.0 / $mult]; }; set integerMin $innerMin; set integerMax $innerMax; set integerMin [expr wide($innerMin * $mult)]; set integerMax [expr wide($innerMax * $mult)]; set integerResult [expr $integerMin + wide($randomNumber * ($integerMax + 1 - $integerMin))]; set result [expr $integerResult * 1.0 / $mult]; set formatString "%.0f"; if {$paramPlaces > 0} { set formatString [format "%%.%df" $paramPlaces]; }; FME_SetAttribute {"_random_number"} [format $formatString $result]; }; } FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_4_MinRejecter INPUT FEATURE_TYPE AttributeManager_21_OUTPUT TEST "1" TYPE NUM ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_4__toMaxRejecter__ FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_4_MaxRejecter INPUT FEATURE_TYPE RandomNumberGenerator_4__toMaxRejecter__ TEST "3" TYPE NUM ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_4__toPlacesRejecter__ FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_4_PlacesRejecter INPUT FEATURE_TYPE RandomNumberGenerator_4__toPlacesRejecter__ TEST "0" TYPE INT ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_4__toOutput__ FACTORY_DEF * TeeFactory FACTORY_NAME RandomNumberGenerator_4_RandomNumberGenerator INPUT FEATURE_TYPE RandomNumberGenerator_4__toOutput__ OUTPUT FEATURE_TYPE RandomNumberGenerator_4_OUTPUT @Tcl2("RandomNumberGenerator_4_generator {1} {3} {0} ") # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_6 COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE RandomNumberGenerator_4_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "StoryPoints" "SET_TO" "EvaluateValue_random_number" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_6_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_7 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE AttributeCreator_6_OUTPUT INPUT RIGHT FEATURE_TYPE AttributeFilter_7_issue_0_AuiLVwsCEyE= JOIN_MODE Inner JOIN_KEYS Dummy Dummy AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_7_JOINED # ------------------------------------------------------------------------- FACTORY_DEF * XMLTemplaterFactory FACTORY_NAME JSONTemplater INPUT CONTROL_FEATURE FEATURE_TYPE FeatureJoiner_7_JOINED INPUT DATA_FEATURE FEATURE_TYPE JSONTemplater_DataFeatures RESULT_ATTR json OUTPUT_XML_HEADER NO GROUP_BY InstructorId CONSECUTIVE_GROUPS NO BUCKET_ATTR_NAME __xml_templater_bucket__ CONTROL_TEMPLATE_EXPR fields:project:key:fme:get-attributeJiraProjectKeysummary:fme:get-attributeJiraSummarydescription:fme:get-attributeJiraDescriptionissuetype:name:fme:get-attributeJiraIssueTypeNamecustomfield_10023:fme:get-attributeStoryPoints OUTPUT XML_DOCUMENT FEATURE_TYPE JSONTemplater_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller_3 INPUT FEATURE_TYPE JSONTemplater_OUTPUT TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,ValueAPIRequestURL,HTTPCaller_3)" HTTP_METHOD POST SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "@EvaluateExpression(FDIV,STRING_ENCODED,Valuejson,HTTPCaller_3)" MULTIPART_UPLOAD NO UPLOAD_CONTENT_TYPE "application/json" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Accept;applicationjson ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "NC" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS Yes VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "AtlassianAPI" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_3_Output OUTPUT REJECTED FEATURE_TYPE HTTPCaller_3_ FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_3 Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_3_ # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFlattener INPUT FEATURE_TYPE HTTPCaller_3_Output MODE FLATTEN JSON_DOCUMENT "@EvaluateExpression(FDIV,STRING_ENCODED,Value_response_body,JSONFlattener)" READ_FROM_FILE NO FILEPATH_OR_URL "" EXPLODE_QUERY "json" RECURSIVE_FLATTEN YES ERROR_LIST_ATTR "_json_error" OUTPUT EXPLODED FEATURE_TYPE JSONFlattener_OUTPUT OUTPUT REJECTED FEATURE_TYPE JSONFlattener_ FACTORY_DEF * TeeFactory FACTORY_NAME "JSONFlattener Transformer Output Nuker" INPUT FEATURE_TYPE JSONFlattener_ # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_22 INPUT FEATURE_TYPE JSONFlattener_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "InstructorSalutation" "InstructorSalutation" "" "REMOVE" } ATTR_ACTION { "InstructorEmail" "InstructorEmail" "" "REMOVE" } ATTR_ACTION { "InstructorLastName" "InstructorLastName" "" "REMOVE" } ATTR_ACTION { "InstructorId" "InstructorId" "" "REMOVE" } ATTR_ACTION { "JiraProjectKey" "JiraProjectKey" "" "REMOVE" } ATTR_ACTION { "JiraSummary" "JiraSummary" "" "REMOVE" } ATTR_ACTION { "JiraDescription" "JiraDescription" "" "REMOVE" } ATTR_ACTION { "JiraIssueTypeName" "JiraIssueTypeName" "" "REMOVE" } ATTR_ACTION { "APIName" "APIName" "" "REMOVE" } ATTR_ACTION { "APIHost" "APIHost" "" "REMOVE" } ATTR_ACTION { "APIEndPoint" "APIEndPoint" "" "REMOVE" } ATTR_ACTION { "APIBaseURL" "APIBaseURL" "" "REMOVE" } ATTR_ACTION { "json" "json" "" "REMOVE" } ATTR_ACTION { "_response_body" "_response_body" "" "REMOVE" } ATTR_ACTION { "_http_status_code" "_http_status_code" "" "REMOVE" } ATTR_ACTION { "id" "JiraIssueId" "" "RENAME_SET_VALUE" } ATTR_ACTION { "" "JiraDoneStatusId" "31" "SET_TO" } ATTR_ACTION { "_random_number" "_random_number" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_22_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_8 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE AttributeCreator_4_OUTPUT INPUT RIGHT FEATURE_TYPE AttributeManager_22_OUTPUT JOIN_MODE Inner JOIN_KEYS Dummy Dummy AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_8_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} StringReplacerFactory FACTORY_NAME StringReplacer_3 INPUT FEATURE_TYPE FeatureJoiner_8_JOINED USE_REGEX NO CASE_SENSITIVE NO SOURCE_ATTRIBUTES { APIRequestURL } FIND_TEXT { "issueIdOrKey" } REPLACE_TEXT { "@EvaluateExpression(FDIV,STRING_ENCODED,ValueJiraIssueId,StringReplacer_3)" } REPLACE_NO_MATCH { "_FME_NO_OP_" } OUTPUT OUTPUT FEATURE_TYPE StringReplacer_3_OUTPUT FACTORY_DEF * TeeFactory FACTORY_NAME "StringReplacer_3 OUTPUT Splitter" INPUT FEATURE_TYPE StringReplacer_3_OUTPUT OUTPUT FEATURE_TYPE StringReplacer_3_OUTPUT_0_k/gvzqqWtRo= OUTPUT FEATURE_TYPE StringReplacer_3_OUTPUT_1_1600Nn30ZUQ= # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_24 INPUT FEATURE_TYPE StringReplacer_3_OUTPUT_1_1600Nn30ZUQ= MULTI_FEATURE_MODE NO NUM_PRIOR_FEATURES 0 NUM_SUBSEQUENT_FEATURES 0 NULL_ATTR_MODE NO_OP NULL_ATTR_VALUE 0 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 OUTPUT OUTPUT FEATURE_TYPE AttributeManager_24_OUTPUT # ------------------------------------------------------------------------- # If we're doing LAST N features, then the multiplier comes in as 0. # If we're doing First N, multiplier is -1. # For RANDOM, we need to treat LAST N as if it was first N (i.e. have a -1) # That is what the ? : does in the rate multiplier. INCLUDE [ if { {1} == {0} && {ORIGINAL} == {ORIGINAL} } { puts "MACRO REAL_MODE LAST"; puts "MACRO REAL_RATE 2"; } else { puts "MACRO REAL_MODE ORIGINAL"; puts "MACRO REAL_RATE [expr 2 * ( 1 ? 1 : -1 ) ]"; } ] FACTORY_DEF {*} SamplingFactory FACTORY_NAME Sampler COMMAND_PARM_EVALUATION SINGLE_PASS SAMPLE_RATE $(REAL_RATE) SAMPLE_ORDER $(REAL_MODE) FLUSH_WHEN_GROUPS_CHANGE No INPUT FEATURE_TYPE AttributeManager_24_OUTPUT OUTPUT SAMPLED FEATURE_TYPE ___SAMPLED___ # This TeeFactory is needed because Sampler will still output features if it has no OUTPUT clauses specified. # This way we behave nicely even if there are no output connections on the transformer. See PR#28886. FACTORY_DEF * TeeFactory FACTORY_NAME Sampler_Sampled INPUT FEATURE_TYPE ___SAMPLED___ OUTPUT FEATURE_TYPE Sampler_SAMPLED # ------------------------------------------------------------------------- FACTORY_DEF * XMLTemplaterFactory FACTORY_NAME JSONTemplater_2 INPUT CONTROL_FEATURE FEATURE_TYPE Sampler_SAMPLED INPUT DATA_FEATURE FEATURE_TYPE JSONTemplater_2_DataFeatures RESULT_ATTR json OUTPUT_XML_HEADER NO GROUP_BY JiraIssueId CONSECUTIVE_GROUPS NO BUCKET_ATTR_NAME __xml_templater_bucket__ CONTROL_TEMPLATE_EXPR transition:id:fme:get-attributeJiraDoneStatusId OUTPUT XML_DOCUMENT FEATURE_TYPE JSONTemplater_2_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller_4 INPUT FEATURE_TYPE JSONTemplater_2_OUTPUT TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,ValueAPIRequestURL,HTTPCaller_4)" HTTP_METHOD POST SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "@EvaluateExpression(FDIV,STRING_ENCODED,Valuejson,HTTPCaller_4)" MULTIPART_UPLOAD NO UPLOAD_CONTENT_TYPE "application/json" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Accept;applicationjson ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "NC" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS Yes VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "AtlassianAPI" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_4_Output OUTPUT REJECTED FEATURE_TYPE HTTPCaller_4_ FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_4 Output Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_4_Output FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_4 Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_4_ # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_10 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE StringReplacer_5_OUTPUT INPUT RIGHT FEATURE_TYPE StringReplacer_3_OUTPUT_0_k/gvzqqWtRo= JOIN_MODE Inner JOIN_KEYS Dummy Dummy AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_10_JOINED # ------------------------------------------------------------------------- FACTORY_DEF * XMLTemplaterFactory FACTORY_NAME JSONTemplater_3 INPUT CONTROL_FEATURE FEATURE_TYPE FeatureJoiner_10_JOINED INPUT DATA_FEATURE FEATURE_TYPE JSONTemplater_3_DataFeatures RESULT_ATTR json OUTPUT_XML_HEADER NO BUCKET_ATTR_NAME __xml_templater_bucket__ CONTROL_TEMPLATE_EXPR issues:fme:get-attributekey OUTPUT XML_DOCUMENT FEATURE_TYPE JSONTemplater_3_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller_8 INPUT FEATURE_TYPE JSONTemplater_3_OUTPUT TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,ValueAPIRequestURL,HTTPCaller_8)" HTTP_METHOD POST SAVE_FILE NO OUTPUT_FILENAME "" OUTPUT_DIRECTORY "" FILE_EXTENSION "" TARGET_ATTR "_response_body" FILE_PATH_ATTR "" UPLOAD_FILE "" UPLOAD_BODY "@EvaluateExpression(FDIV,STRING_ENCODED,Valuejson,HTTPCaller_8)" MULTIPART_UPLOAD NO UPLOAD_CONTENT_TYPE "application/json" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE Accept;applicationjson ADDITIONAL_URL_PARAMETERS AUTH_USERNAME "" AUTH_PASSWORD "" AUTH_METHOD "NC" TARGET_ATTRIBUTE_ENCODING auto-detect RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "_http_status_code" ERROR_ATTR "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 FOLLOW_REDIRECTS Yes VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION "AtlassianAPI" USE_COOKIES No OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_8_Output OUTPUT REJECTED FEATURE_TYPE HTTPCaller_8_ FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_8 Output Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_8_Output FACTORY_DEF * TeeFactory FACTORY_NAME "HTTPCaller_8 Transformer Output Nuker" INPUT FEATURE_TYPE HTTPCaller_8_ # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_9 INPUT FEATURE_TYPE FeatureJoiner_3_JOINED_0_zwzITnYNHR8= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "Midpoint-Howmuchdoyouthinkyou-should-getpaidtoteachonesectionofthiscourse?" "" "REMOVE" } ATTR_ACTION { "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "Midpoint-Howmuchdoyouthinkyouwould-actually-getpaidtoteachonesectionofthiscourse?midpoint" "" "REMOVE" } ATTR_ACTION { "rowId" "rowId" "" "REMOVE" } ATTR_ACTION { "" "BaseStudentNumberWithinClass" "Evaluate1" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_9_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Create_Student_IDs ExpressionEvaluator_Input Input Collector" INPUT FEATURE_TYPE AttributeManager_9_OUTPUT OUTPUT FEATURE_TYPE Create_Student_IDs_ExpressionEvaluator_Input MACRO Create_Student_IDs_WORKSPACE_NAME Create_Student_IDs MACRO $(Create_Student_IDs_WORKSPACE_NAME)_XFORMER_NAME Create_Student_IDs MACRO $(Create_Student_IDs_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(Create_Student_IDs_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(Create_Student_IDs_WORKSPACE_NAME)_SUB_DOC_NAME Create Student IDs MACRO $(Create_Student_IDs_WORKSPACE_NAME)_BASESTUDENTNUMBERWITHINCLASS ValueBaseStudentNumberWithinClass MACRO $(Create_Student_IDs_WORKSPACE_NAME)_CLASSSIZE ValueClassSize DEFAULT_MACRO Create_Student_IDs_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(Create_Student_IDs_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(Create_Student_IDs_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(Create_Student_IDs_WORKSPACE_NAME)_ExpressionEvaluator_Input1596844345 Input Splitter" INPUT FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_ExpressionEvaluator_Input" OUTPUT FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_ExpressionEvaluator_Input" "@EvaluateExpression(ATTR_CREATE_EXPR_PROPAGATE_MISSING_FDIV_TYPED,BaseStudentNumberWithinClass,$($(Create_Student_IDs_WORKSPACE_NAME)_BASESTUDENTNUMBERWITHINCLASS),UTF8,ClassSize,$($(Create_Student_IDs_WORKSPACE_NAME)_CLASSSIZE),UTF8, FEATURE_TYPE)" # ------------------------------------------------------------------------- INCLUDE TCL if {{SELECTED} == {OUTGOING}} { set attrs [list {}]; } else { set attrAll {BaseStudentNumberWithinClass}; if {[string length $attrAll] == 0} { return; }; set attrs [split {BaseStudentNumberWithinClass} { }]; }; if {{NO_OP} == {NO_OP}} { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV; } else { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV_MULTI_FEATURE; }; foreach attr $attrs { lappend parmList $attr; lappend parmList {ValueBaseStudentNumberWithinClass+1}; lappend parmList {FLOAT}; }; lappend parmList {$(Create_Student_IDs_WORKSPACE_NAME)_ExpressionEvaluator}; if {{NO_OP} == {OTHER_NULL_VALUE_2}} { lappend parmList {NO_OP}; lappend parmList {}; lappend parmList {0}; }; puts "MACRO __fme_expressionevaluator_evaluateArgs__ [join $parmList ,]"; END_INCLUDE FACTORY_DEF * TeeFactory FACTORY_NAME $(Create_Student_IDs_WORKSPACE_NAME)_ExpressionEvaluator INPUT FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_ExpressionEvaluator_Input" OUTPUT FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_ExpressionEvaluator_OUTPUT" @EvaluateExpression($(__fme_expressionevaluator_evaluateArgs__)) MACRO __fme_expressionevaluator_evaluateArgs__ # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(Create_Student_IDs_WORKSPACE_NAME)_Tester INPUT FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_ExpressionEvaluator_OUTPUT" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,ValueBaseStudentNumberWithinClass,$(Create_Student_IDs_WORKSPACE_NAME)_Tester)" <= "@EvaluateExpression(FDIV,STRING_ENCODED,ValueClassSize,$(Create_Student_IDs_WORKSPACE_NAME)_Tester)" ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_Tester_PASSED" OUTPUT FAILED FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_Tester_FAILED" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Create_Student_IDs_WORKSPACE_NAME)_Tester PASSED Splitter" INPUT FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_Tester_PASSED" OUTPUT FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_Tester_PASSED_0_UK4B7mSxhFs=" OUTPUT FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_Tester_PASSED_1_4aBKKMkcjAk=" FACTORY_DEF * BranchingFactory TARGET_FACTORY "$(Create_Student_IDs_WORKSPACE_NAME)_ExpressionEvaluator_Input1596844345 Input Splitter" FACTORY_NAME "Loop to $(Create_Student_IDs_WORKSPACE_NAME)_ExpressionEvaluator_Input1596844345 Input Splitter" MAXIMUM_COUNT -1 INPUT FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_Tester_PASSED_1_4aBKKMkcjAk=" OUTPUT PASSED FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_ExpressionEvaluator_Input" FACTORY_DEF * TeeFactory FACTORY_NAME "$(Create_Student_IDs_WORKSPACE_NAME)_Student_IDs1596844345 Output Collector" INPUT FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_Tester_PASSED_0_UK4B7mSxhFs=" INPUT FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_Tester_FAILED" OUTPUT FEATURE_TYPE "$(Create_Student_IDs_WORKSPACE_NAME)_Student_IDs" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(Create_Student_IDs_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "Create_Student_IDs Student_IDs Output Renamer/Nuker" INPUT FEATURE_TYPE Create_Student_IDs_Student_IDs OUTPUT FEATURE_TYPE Create_Student_IDs_Student_IDs # ------------------------------------------------------------------------- INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } { puts "MACRO FeatureMerger_2_REFERENCE_INFO ATTRIBUTES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} } { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } else {}; ] FACTORY_DEF {*} ReferenceFactory FACTORY_NAME FeatureMerger_2 FLUSH_WHEN_GROUPS_CHANGE No INPUT REFERENCER FEATURE_TYPE Create_Student_IDs_Student_IDs INPUT REFERENCEE FEATURE_TYPE AttributeManager_32_OUTPUT REFERENCE_INFO $(FeatureMerger_2_REFERENCE_INFO) REFERENCE_TABLE 1 1 AUTO ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "REQUESTOR_IF_CONFLICT" IGNORE_NULLS "No" HANDLE_NULL_MISSING_KEYS_LIKE_FME2013 No LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE MERGE_ATTRIBUTES Yes MANAGE_FME_TYPE Yes MODE COMPLETE PROCESS_DUPLICATE_REFERENCEES NO REFERENCEES_FIRST No REJECT_INVALID_GEOM YES CLEANING_TOLERANCE OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_2_MERGED OUTPUT INCOMPLETE FEATURE_TYPE FeatureMerger_2_UNMERGED_REQUESTOR # ------------------------------------------------------------------------- # Create the DomainName that this transformer will use. # Because @Count itself will evalute the expression to calculate the # domain, we don't need to do anything in Tcl per feature going by INCLUDE [ set domainPrefix {}; if { {Local} == {Local} } { set domainPrefix [FME_EncodeText {Counter_2_}]; }; puts "MACRO Counter_2_FULL_DOMAIN ${domainPrefix}counter"; ] FACTORY_DEF * ExecuteFunctionFactory FACTORY_NAME Counter_2_Rejector COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE FeatureMerger_2_MERGED INPUT FEATURE_TYPE FeatureMerger_2_UNMERGED_REQUESTOR FUNCTION_DEFINITION @Count(REJECTABLE_WITH_FLAG,fme_encoded,$(Counter_2_FULL_DOMAIN),"@EvaluateExpression(FDIV,FLOAT,FME_CONDITIONAL:DEFAULT_VALUE'1'BOOL_OP;OR;COMPOSITE_TEST;1;TEST MaxExistingStudentId ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_'ValueMaxExistingStudentId'FME_NUM_CONDITIONS2___,Counter_2)") RESULT_ATTRIBUTE "StudentId" FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT COMPLETE FEATURE_TYPE Counter_2_OUTPUT OUTPUT REJECTED FEATURE_TYPE Counter_2_ FACTORY_DEF * TeeFactory FACTORY_NAME "Counter_2 Transformer Output Nuker" INPUT FEATURE_TYPE Counter_2_ # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_7 COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Counter_2_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "StudentId" "SET_TO" "FME_CONDITIONAL:DEFAULT_VALUE'EvaluateValueStudentId+1000'BOOL_OP;OR;COMPOSITE_TEST;1;TEST MaxExistingStudentId ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_'ValueStudentId'FME_NUM_CONDITIONS2___" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_7_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME UUIDGenerator_2 INPUT FEATURE_TYPE AttributeCreator_7_OUTPUT OUTPUT FEATURE_TYPE UUIDGenerator_2_OUTPUT "StudentAnonId" @UUID() # ------------------------------------------------------------------------- # Build the List removal function and regular expression if there was any list attributes to be removed. # If not, then we will not have any extra list removal call to @RemoveAttributes, which speeds the # normal, non-list removal especially when in Bulk Mode. Note that this computation of the regular expressions is done # once during mapping file parse time. INCLUDE [ set listAttributeRemoveRegexps {}; set anyList {no}; foreach attr [split ""] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append listAttributeRemoveRegexps ",^$attr$"; set anyList {yes}; }; if { ${anyList} == {no} } { puts {MACRO AttributeRemover_2_LIST_FUNC } } else { puts "MACRO AttributeRemover_2_LIST_FUNC @RemoveAttributes(fme_pcre_match\"$listAttributeRemoveRegexps\")" }; ] FACTORY_DEF {*} TeeFactory FACTORY_NAME AttributeRemover_2 INPUT FEATURE_TYPE UUIDGenerator_2_OUTPUT OUTPUT { FEATURE_TYPE AttributeRemover_2_OUTPUT @RemoveAttributes(fme_encoded,MaxExistingStudentId) $(AttributeRemover_2_LIST_FUNC) } # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_4 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE AttributeRemover_2_OUTPUT INPUT RIGHT FEATURE_TYPE AttributeManager_10_OUTPUT JOIN_MODE Inner JOIN_KEYS StudentId rowId AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_4_JOINED FACTORY_DEF * TeeFactory FACTORY_NAME "FeatureJoiner_4 JOINED Splitter" INPUT FEATURE_TYPE FeatureJoiner_4_JOINED OUTPUT FEATURE_TYPE FeatureJoiner_4_JOINED_0_H+96i30lyKQ= OUTPUT FEATURE_TYPE FeatureJoiner_4_JOINED_1_yCK1WnBDVJ4= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_15 INPUT FEATURE_TYPE FeatureJoiner_4_JOINED_1_yCK1WnBDVJ4= OUTPUT FEATURE_TYPE Junction_15_Output # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_16 INPUT FEATURE_TYPE Junction_15_Output OUTPUT FEATURE_TYPE Junction_16_Output # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_12 INPUT FEATURE_TYPE FeatureJoiner_4_JOINED_0_H+96i30lyKQ= OUTPUT FEATURE_TYPE Junction_12_Output FACTORY_DEF * TeeFactory FACTORY_NAME "Junction_12 Output Splitter" INPUT FEATURE_TYPE Junction_12_Output OUTPUT FEATURE_TYPE Junction_12_Output_0_4cXZSW1oWtg= OUTPUT FEATURE_TYPE Junction_12_Output_1_Ih5VuJ38b0o= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME Junction_13 INPUT FEATURE_TYPE Junction_12_Output_1_Ih5VuJ38b0o= OUTPUT FEATURE_TYPE Junction_13_Output # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME Tester INPUT FEATURE_TYPE Junction_13_Output TEST StudentId ATTRIBUTE_HAS_A_VALUE "" ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" FEATURE_TABLE_SHIM_SUPPORT Yes PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT PASSED FEATURE_TYPE Tester_PASSED # ------------------------------------------------------------------------- INCLUDE [ puts {DEFAULT_MACRO FeatureWriterDataset_FeatureWriter_2 agdGoogleSheetssafe.google-sheets}; ] FACTORY_DEF {*} WriterFactory FACTORY_NAME FeatureWriter_2 WRITER_TYPE SAFE.GOOGLE-SHEETS.GOOGLESHEETS4 WRITER_DATASET "$(FeatureWriterDataset_FeatureWriter_2)" WRITER_SETTINGS "RUNTIME_MACROS,GSHEETS_CONNECTIONagdspaceGooglespaceSheetsspaceopenparensafe.google-sheetscloseparenSPREADSHEETWebinar2FIELD_NAMES_ROW1START_ROWSTART_COLUMNAEND_COLUMNAZ,METAFILE,SAFE.GOOGLE-SHEETS.GOOGLESHEETS4" WRITER_METAFILE "ATTRIBUTE_CASE,ANY,ATTRIBUTE_INVALID_CHARS,,ATTRIBUTE_LENGTH,512,ATTR_TYPE_MAP,textfme_buffertextfme_binarybuffertextfme_xmltextfme_jsontextfme_charwidthtextfme_binarywidthtextfme_varcharwidthtextfme_varbinarywidthtextfme_datetimetextfme_datetextfme_timetextfme_int16textfme_uint16textfme_int32textfme_uint32numberfme_uint32textfme_int64textfme_uint64textfme_real32textfme_real64textfme_int8textfme_uint8textfme_decimalwidthdecimaltextfme_boolean,DEST_ILLEGAL_ATTR_LIST,,FEATURE_TYPE_CASE,ANY,FEATURE_TYPE_INVALID_CHARS,,FEATURE_TYPE_LENGTH,512,FEATURE_TYPE_LENGTH_INCLUDES_PREFIX,true,FEATURE_TYPE_RESERVED_WORDS,,FORMAT_METAFILE,UsersagdLibraryCachesSafeSoftwareFMEPackages20594-macosxmetafilesafe.google-sheetsSAFE.GOOGLE-SHEETS.GOOGLESHEETS4.fmf,FORMAT_NAME,SAFE.GOOGLE-SHEETS.GOOGLESHEETS4,GEOM_MAP,googlesheets_nonefme_no_geomgooglesheets_nonefme_textgooglesheets_nonefme_pointgooglesheets_nonefme_linegooglesheets_nonefme_polygongooglesheets_nonefme_textgooglesheets_nonefme_ellipsegooglesheets_nonefme_arcgooglesheets_nonefme_rectanglegooglesheets_nonefme_rounded_rectanglegooglesheets_nonefme_collectiongooglesheets_nonefme_rastergooglesheets_nonefme_solidgooglesheets_nonefme_surfacegooglesheets_nonefme_point_cloudgooglesheets_nonefme_feature_table,READER_ATTR_INDEX_TYPES,,READER_USES_DEF,yes,SOURCE,no,SUPPORTS_FEAT_TYPE_FANOUT,yes,SUPPORTS_MULTI_GEOM,yes,WORKBENCH_CANNED_SCHEMA,,WRITER,SAFE.GOOGLE-SHEETS.GOOGLESHEETS4,WRITER_ATTR_INDEX_TYPES,,WRITER_DEFLINE_PARMS,GUINAMEDGROUPfme_configuration_groupfme_feature_operation%fme_table_handling%fme_selection_group%fme_advanced_groupDatasetGUIACTIVECHOICE_LOOKUPfme_feature_operationInsertINSERT%UpdateUPDATEgooglesheets_insert_data++fme_selection_group+FME_DISCLOSURE_OPEN%DeleteDELETEgooglesheets_insert_data++fme_selection_group+FME_DISCLOSURE_OPEN%atValueopenparenfme_db_operationcloseparenMULTIPLE++fme_table_handling+USE_EXISTING++fme_selection_group+FME_DISCLOSURE_OPEN%atValueopenparenfme_db_operationcloseparenMULTIPLE++fme_table_handling+USE_EXISTING++fme_selection_group+FME_DISCLOSURE_OPENFeatureOperationINSERTGUILOOKUP_CHOICEfme_table_handlingUsespaceExistingUSE_EXISTING%CreatespaceIfspaceNeededCREATE_IF_MISSING%DropspaceandspaceCreateDROP_CREATE%TruncatespaceExistingTRUNCATE_EXISTINGWorksheetHandlingCREATE_IF_MISSINGGUIDISCLOSUREGROUPfme_selection_groupgooglesheets_row_number_attrRowSelectionGUIWHOLE_LINEOPTIONALATTRgooglesheets_row_number_attrALLOW_NEWRowNumberAttribute:googlesheets_row_numberGUINAMEDGROUPgooglesheets_schema_groupgooglesheets_field_names_row%googlesheets_start_column%googlesheets_end_columnSchemaGenerationGUIOPTIONALINTEGERgooglesheets_field_names_rowFieldNamesRow:1GUISTRINGgooglesheets_start_columnStartColumn:AGUISTRINGgooglesheets_end_columnEndColumn:AZGUINAMEDGROUPgooglesheets_options_groupgooglesheets_start_row%googlesheets_value_input%googlesheets_insert_dataSheetOptionsGUIOPTIONALINTEGERgooglesheets_start_rowStartRow:GUILOOKUP_CHOICEgooglesheets_value_inputRawRAW%User-EnteredUSER_ENTEREDInterpretValuesAs:USER_ENTEREDGUILOOKUP_CHOICEgooglesheets_insert_dataOverwriteOVERWRITE%InsertspaceRowsINSERT_ROWSInsertMethod:INSERT_ROWS,WRITER_DEF_LINE_TEMPLATE,FME_GEN_GROUP_NAMEgooglesheets_typeFME_GEN_GEOMETRYgooglesheets_field_names_row1googlesheets_start_rowgooglesheets_start_columnAgooglesheets_end_columnAZfme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGgooglesheets_row_number_attrgooglesheets_row_number,WRITER_FORMAT_PARAMETER,NETWORK_AUTHENTICATIONNONETWORK_PROXYNOFEATURE_TYPE_NAMESheetFEATURE_TYPE_DEFAULT_NAMESheet1READER_DATASET_HINTSpecifytheGoogleSheetsURLWRITER_DATASET_HINTSpecifytheGoogleSheetsURLATTRIBUTE_READINGDEFLINE,WRITER_HAS_DEFLINE_ATTRS,yes,WRITER_USES_DEF,yes" WRITER_FEATURE_TYPES "InstructorsCourses:Unique,ftp_feature_type_name,InstructorsCourses,ftp_writer,SAFE.GOOGLE-SHEETS.GOOGLESHEETS4,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,DummytextCourseTitletextMidpointspace-spaceHowspacemuchspacedospaceyouspacethinkspaceyouspace-should-spacegetspacepaidspacetospaceteachspaceonespacesectionspaceofspacethisspacecourse?textMidpointspace-spaceHowspacemuchspacedospaceyouspacethinkspaceyouspacewouldspace-actually-spacegetspacepaidspacetospaceteachspaceonespacesectionspaceofspacethisspacecourse?spaceopenparenmidpointcloseparentextCourseSubjecttextCourseNumbertextSourcetextClassSizetextInstructorSalutationtextInstructorIdtextInstructorLastNametextInstructorFirstNametext,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_feature_operationINSERTfme_table_handlingDROP_CREATEfme_selection_groupFME_DISCLOSURE_OPENgooglesheets_row_number_attrgooglesheets_row_numbergooglesheets_schema_groupgooglesheets_field_names_row1googlesheets_start_columnAgooglesheets_end_columnAZgooglesheets_options_groupgooglesheets_start_rowgooglesheets_value_inputUSER_ENTEREDgooglesheets_insert_dataOVERWRITE;JiraIssues:Output00,ftp_feature_type_name,JiraIssues,ftp_writer,SAFE.GOOGLE-SHEETS.GOOGLESHEETS4,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,0,ftp_user_attributes,idtextselftextkeytextnametextlastUpdatedtextstatustextstoryPointstextFeaturetextDescriptiontextEstimatedspaceDevelopmentspaceTimetextTitletextEstimatedspaceTimetextSourcetextDummytext,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_feature_operationINSERTfme_table_handlingDROP_CREATEfme_selection_groupgooglesheets_row_number_attrgooglesheets_row_numbergooglesheets_schema_groupgooglesheets_field_names_row1googlesheets_start_columnAgooglesheets_end_columnAZgooglesheets_options_groupgooglesheets_start_rowgooglesheets_value_inputUSER_ENTEREDgooglesheets_insert_dataINSERT_ROWS;InstructionalCosts:Output,ftp_feature_type_name,InstructionalCosts,ftp_writer,SAFE.GOOGLE-SHEETS.GOOGLESHEETS4,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,DescriptiontextTitletextEstimatedspaceTimetextSourcetextPHRHIST_PIDMtextPHRHIST_SEQ_NOtextPHRHIST_TYPE_DESCtextPHRHIST_EVENT_DATEtextTotalspaceEstimatedspaceCoststextDummytext,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_feature_operationINSERTfme_table_handlingDROP_CREATEfme_selection_groupgooglesheets_row_number_attrgooglesheets_row_numbergooglesheets_schema_groupgooglesheets_field_names_row1googlesheets_start_columnAgooglesheets_end_columnAZgooglesheets_options_groupgooglesheets_start_rowgooglesheets_value_inputUSER_ENTEREDgooglesheets_insert_dataINSERT_ROWS;Students:Passed,ftp_feature_type_name,Students,ftp_writer,SAFE.GOOGLE-SHEETS.GOOGLESHEETS4,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,StudentIdtextIDtextCourseTitletextCourseSubjecttextCourseNumbertextStudentAnonIdtextStudentLastNametextStudentFirstNametext,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGfme_selection_groupgooglesheets_row_number_attrgooglesheets_row_numbergooglesheets_schema_groupgooglesheets_field_names_row1googlesheets_start_columnAgooglesheets_end_columnAZgooglesheets_options_groupgooglesheets_start_rowgooglesheets_value_inputUSER_ENTEREDgooglesheets_insert_dataINSERT_ROWS;ITCosts:Output01,ftp_feature_type_name,ITCosts,ftp_writer,SAFE.GOOGLE-SHEETS.GOOGLESHEETS4,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,0,ftp_user_attributes,DescriptiontextTitletextEstimatedspaceTimetextSourcetextDummytextEstimatedspaceTimespacePerspacePayspacePeriodtextPHRHIST_PIDMtextPHRHIST_SEQ_NOtextPHRHIST_TYPE_DESCtextPHRHIST_GROSStextPHRHIST_NETtextPHRHIST_EVENT_DATEtextBannerTableNametextTotalspaceEstimatedspaceCoststextkeytext,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_feature_operationINSERTfme_table_handlingDROP_CREATEfme_selection_groupgooglesheets_row_number_attrgooglesheets_row_numbergooglesheets_schema_groupgooglesheets_field_names_row1googlesheets_start_columnAgooglesheets_end_columnAZgooglesheets_options_groupgooglesheets_start_rowgooglesheets_value_inputUSER_ENTEREDgooglesheets_insert_dataINSERT_ROWS" WRITER_PARAMS "END_COLUMN,AZ,SPREADSHEET,Webinar2,START_COLUMN,A,FIELD_NAMES_ROW,1" DATASET_ATTR "_dataset" FEATURE_TYPE_LIST_ATTR "_feature_type" TOTAL_FEATURES_WRITTEN_ATTR "_total_features_written" OUTPUT_PORTS "" INPUT Unique FEATURE_TYPE AttributeCreator_8_OUTPUT @FeatureType(ENCODED,InstructorsCourses) INPUT Output00 FEATURE_TYPE AttributeManager_27_OUTPUT_0_52rkMcIGwHM= @FeatureType(ENCODED,JiraIssues) INPUT Output FEATURE_TYPE AttributeManager_38_OUTPUT @FeatureType(ENCODED,InstructionalCosts) INPUT Passed FEATURE_TYPE Tester_PASSED @FeatureType(ENCODED,Students) INPUT Output01 FEATURE_TYPE AttributeManager_39_OUTPUT @FeatureType(ENCODED,ITCosts) # ------------------------------------------------------------------------- Tcl2 proc RandomNumberGenerator_2_generator {paramMin paramMax paramPlaces} { set absoluteMax [expr abs($paramMax)]; set absoluteMin [expr abs($paramMin)]; if {$absoluteMin > $absoluteMax} { set temp $absoluteMax; set absoluteMax $absoluteMin; set absoluteMin $temp; }; set maxNumDigits 1; if {$absoluteMax > 0} { set maxNumDigits [expr int(log10($absoluteMax) + 1)]; }; set positiveParamPlaces [expr abs($paramPlaces)]; if {$paramMin > $paramMax} { FME_SetAttribute {"CredentialId"} NaN; } elseif {$paramPlaces < 0 && $maxNumDigits <= $positiveParamPlaces} { FME_SetAttribute {"CredentialId"} 0; } else { set randomNumber [expr rand()]; set mult [expr pow(10, $paramPlaces)]; set innerMin [expr double($paramMin)]; set innerMax [expr double($paramMax)]; if {$paramPlaces > 0} { set addValue [expr pow(10, -$paramPlaces)]; set indexDotMin [string first "." $innerMin]; set indexDotMax [string first "." $innerMax]; set countDecPlacesMin [expr [string length $innerMin] - $indexDotMin - 1]; set countDecPlacesMax [expr [string length $innerMax] - $indexDotMax - 1]; set countTruncatedDecPlaces [expr $countDecPlacesMin - $paramPlaces]; if {$countTruncatedDecPlaces > 0} { set zeroes [string repeat "0" $countTruncatedDecPlaces]; set truncatedDecPlaces [string range $innerMin [expr $indexDotMin + 1 + $paramPlaces] [string length $innerMin]]; if {![string equal $truncatedDecPlaces $zeroes]} { set truncatedResult [string range $innerMin 0 [expr $indexDotMin + $paramPlaces]]; if {$innerMin > 0} { set truncatedResult [expr $truncatedResult + $addValue]; }; set innerMin $truncatedResult; }; }; set countTruncatedDecPlaces [expr $countDecPlacesMax - $paramPlaces]; if {$countTruncatedDecPlaces > 0} { set zeroes [string repeat "0" $countTruncatedDecPlaces]; set truncatedDecPlaces [string range $innerMax [expr $indexDotMax + 1 + $paramPlaces] [string length $innerMax]]; if {![string equal $truncatedDecPlaces $zeroes]} { set truncatedResult [string range $innerMax 0 [expr $indexDotMax + $paramPlaces]]; if {$innerMax < 0} { set truncatedResult [expr $truncatedResult - $addValue]; }; set innerMax $truncatedResult; }; }; } else { set innerMin [expr ceil($paramMin * $mult) * 1.0 / $mult]; set innerMax [expr floor($paramMax * $mult) * 1.0 / $mult]; }; set integerMin $innerMin; set integerMax $innerMax; set integerMin [expr wide($innerMin * $mult)]; set integerMax [expr wide($innerMax * $mult)]; set integerResult [expr $integerMin + wide($randomNumber * ($integerMax + 1 - $integerMin))]; set result [expr $integerResult * 1.0 / $mult]; set formatString "%.0f"; if {$paramPlaces > 0} { set formatString [format "%%.%df" $paramPlaces]; }; FME_SetAttribute {"CredentialId"} [format $formatString $result]; }; } FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_2_MinRejecter INPUT FEATURE_TYPE Junction_12_Output_0_4cXZSW1oWtg= TEST "0" TYPE NUM ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_2__toMaxRejecter__ FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_2_MaxRejecter INPUT FEATURE_TYPE RandomNumberGenerator_2__toMaxRejecter__ TEST "4" TYPE NUM ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_2__toPlacesRejecter__ FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_2_PlacesRejecter INPUT FEATURE_TYPE RandomNumberGenerator_2__toPlacesRejecter__ TEST "0" TYPE INT ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_2__toOutput__ FACTORY_DEF * TeeFactory FACTORY_NAME RandomNumberGenerator_2_RandomNumberGenerator INPUT FEATURE_TYPE RandomNumberGenerator_2__toOutput__ OUTPUT FEATURE_TYPE RandomNumberGenerator_2_OUTPUT @Tcl2("RandomNumberGenerator_2_generator {0} {4} {0} ") # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_5 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE RandomNumberGenerator_2_OUTPUT INPUT RIGHT FEATURE_TYPE AttributeValueMapper_OUTPUT JOIN_MODE Inner JOIN_KEYS CredentialId CredentialId AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_5_JOINED FACTORY_DEF * TeeFactory FACTORY_NAME "FeatureJoiner_5 JOINED Splitter" INPUT FEATURE_TYPE FeatureJoiner_5_JOINED OUTPUT FEATURE_TYPE FeatureJoiner_5_JOINED_0_YF2QtASs+/U= OUTPUT FEATURE_TYPE FeatureJoiner_5_JOINED_1_NJSZfEa18tU= OUTPUT FEATURE_TYPE FeatureJoiner_5_JOINED_2_3fdU/QopzZE= # ------------------------------------------------------------------------- # Build the List removal function and regular expression if there was any list attributes to be removed. # If not, then we will not have any extra list removal call to @RemoveAttributes, which speeds the # normal, non-list removal especially when in Bulk Mode. Note that this computation of the regular expressions is done # once during mapping file parse time. INCLUDE [ set listAttributeRemoveRegexps {}; set anyList {no}; foreach attr [split ""] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append listAttributeRemoveRegexps ",^$attr$"; set anyList {yes}; }; if { ${anyList} == {no} } { puts {MACRO AttributeRemover_4_LIST_FUNC } } else { puts "MACRO AttributeRemover_4_LIST_FUNC @RemoveAttributes(fme_pcre_match\"$listAttributeRemoveRegexps\")" }; ] FACTORY_DEF {*} TeeFactory FACTORY_NAME AttributeRemover_4 INPUT FEATURE_TYPE FeatureJoiner_5_JOINED_2_3fdU/QopzZE= OUTPUT { FEATURE_TYPE AttributeRemover_4_OUTPUT @RemoveAttributes(fme_encoded,InstructorEmail,InstructorFirstName,InstructorId,InstructorLastName,InstructorSalutation) $(AttributeRemover_4_LIST_FUNC) } # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_28 INPUT FEATURE_TYPE Junction_4_Output INPUT FEATURE_TYPE AttributeRemover_4_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "BannerTableName" "SPRIDEN" "SET_TO" } ATTR_ACTION { "" "SPRIDEN_FIRST_NAME" "FME_CONDITIONAL:DEFAULT_VALUE'ValueInstructorFirstName'BOOL_OP;OR;COMPOSITE_TEST;1;TEST StudentId ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_'ValueStudentFirstName'FME_NUM_CONDITIONS2___" "SET_TO" } ATTR_ACTION { "" "SPRIDEN_LAST_NAME" "FME_CONDITIONAL:DEFAULT_VALUE'ValueInstructorLastName'BOOL_OP;OR;COMPOSITE_TEST;1;TEST StudentId ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_'ValueStudentLastName'FME_NUM_CONDITIONS2___" "SET_TO" } ATTR_ACTION { "" "SPRIDEN_PIDM" "FME_CONDITIONAL:DEFAULT_VALUE'ValueInstructorId'BOOL_OP;OR;COMPOSITE_TEST;1;TEST StudentId ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_'ValueStudentId'FME_NUM_CONDITIONS2___" "SET_TO" } ATTR_ACTION { "" "SPRIDEN_EMAIL" "FME_CONDITIONAL:DEFAULT_VALUE'ValueInstructorEmail'BOOL_OP;OR;COMPOSITE_TEST;1;TEST StudentId ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_'ValueStudentEmail'FME_NUM_CONDITIONS2___" "SET_TO" } ATTR_ACTION { "StudentEmail" "StudentEmail" "" "REMOVE" } ATTR_ACTION { "ID" "ID" "" "REMOVE" } ATTR_ACTION { "CourseTitle" "CourseTitle" "" "REMOVE" } ATTR_ACTION { "CourseSubject" "CourseSubject" "" "REMOVE" } ATTR_ACTION { "CourseNumber" "CourseNumber" "" "REMOVE" } ATTR_ACTION { "BaseStudentNumberWithinClass" "BaseStudentNumberWithinClass" "" "REMOVE" } ATTR_ACTION { "ClassSize" "ClassSize" "" "REMOVE" } ATTR_ACTION { "StudentId" "StudentId" "" "REMOVE" } ATTR_ACTION { "StudentAnonId" "StudentAnonId" "" "REMOVE" } ATTR_ACTION { "rowId" "rowId" "" "REMOVE" } ATTR_ACTION { "StudentLastName" "StudentLastName" "" "REMOVE" } ATTR_ACTION { "CredentialId" "CredentialId" "" "REMOVE" } ATTR_ACTION { "Credential" "Credential" "" "REMOVE" } ATTR_ACTION { "InstructorFirstName" "InstructorFirstName" "" "REMOVE" } ATTR_ACTION { "StudentFirstName" "StudentFirstName" "" "REMOVE" } ATTR_ACTION { "InstructorSalutation" "InstructorSalutation" "" "REMOVE" } ATTR_ACTION { "InstructorId" "InstructorId" "" "REMOVE" } ATTR_ACTION { "InstructorLastName" "InstructorLastName" "" "REMOVE" } ATTR_ACTION { "InstructorEmail" "InstructorEmail" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_28_OUTPUT # ------------------------------------------------------------------------- Tcl2 proc RandomNumberGenerator_5_generator {paramMin paramMax paramPlaces} { set absoluteMax [expr abs($paramMax)]; set absoluteMin [expr abs($paramMin)]; if {$absoluteMin > $absoluteMax} { set temp $absoluteMax; set absoluteMax $absoluteMin; set absoluteMin $temp; }; set maxNumDigits 1; if {$absoluteMax > 0} { set maxNumDigits [expr int(log10($absoluteMax) + 1)]; }; set positiveParamPlaces [expr abs($paramPlaces)]; if {$paramMin > $paramMax} { FME_SetAttribute {"SPRIDEN_ID"} NaN; } elseif {$paramPlaces < 0 && $maxNumDigits <= $positiveParamPlaces} { FME_SetAttribute {"SPRIDEN_ID"} 0; } else { set randomNumber [expr rand()]; set mult [expr pow(10, $paramPlaces)]; set innerMin [expr double($paramMin)]; set innerMax [expr double($paramMax)]; if {$paramPlaces > 0} { set addValue [expr pow(10, -$paramPlaces)]; set indexDotMin [string first "." $innerMin]; set indexDotMax [string first "." $innerMax]; set countDecPlacesMin [expr [string length $innerMin] - $indexDotMin - 1]; set countDecPlacesMax [expr [string length $innerMax] - $indexDotMax - 1]; set countTruncatedDecPlaces [expr $countDecPlacesMin - $paramPlaces]; if {$countTruncatedDecPlaces > 0} { set zeroes [string repeat "0" $countTruncatedDecPlaces]; set truncatedDecPlaces [string range $innerMin [expr $indexDotMin + 1 + $paramPlaces] [string length $innerMin]]; if {![string equal $truncatedDecPlaces $zeroes]} { set truncatedResult [string range $innerMin 0 [expr $indexDotMin + $paramPlaces]]; if {$innerMin > 0} { set truncatedResult [expr $truncatedResult + $addValue]; }; set innerMin $truncatedResult; }; }; set countTruncatedDecPlaces [expr $countDecPlacesMax - $paramPlaces]; if {$countTruncatedDecPlaces > 0} { set zeroes [string repeat "0" $countTruncatedDecPlaces]; set truncatedDecPlaces [string range $innerMax [expr $indexDotMax + 1 + $paramPlaces] [string length $innerMax]]; if {![string equal $truncatedDecPlaces $zeroes]} { set truncatedResult [string range $innerMax 0 [expr $indexDotMax + $paramPlaces]]; if {$innerMax < 0} { set truncatedResult [expr $truncatedResult - $addValue]; }; set innerMax $truncatedResult; }; }; } else { set innerMin [expr ceil($paramMin * $mult) * 1.0 / $mult]; set innerMax [expr floor($paramMax * $mult) * 1.0 / $mult]; }; set integerMin $innerMin; set integerMax $innerMax; set integerMin [expr wide($innerMin * $mult)]; set integerMax [expr wide($innerMax * $mult)]; set integerResult [expr $integerMin + wide($randomNumber * ($integerMax + 1 - $integerMin))]; set result [expr $integerResult * 1.0 / $mult]; set formatString "%.0f"; if {$paramPlaces > 0} { set formatString [format "%%.%df" $paramPlaces]; }; FME_SetAttribute {"SPRIDEN_ID"} [format $formatString $result]; }; } FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_5_MinRejecter INPUT FEATURE_TYPE AttributeManager_28_OUTPUT TEST "100000" TYPE NUM ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_5__toMaxRejecter__ FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_5_MaxRejecter INPUT FEATURE_TYPE RandomNumberGenerator_5__toMaxRejecter__ TEST "999999" TYPE NUM ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_5__toPlacesRejecter__ FACTORY_DEF * TestFactory FACTORY_NAME RandomNumberGenerator_5_PlacesRejecter INPUT FEATURE_TYPE RandomNumberGenerator_5__toPlacesRejecter__ TEST "0" TYPE INT ENCODED FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_5__toOutput__ FACTORY_DEF * TeeFactory FACTORY_NAME RandomNumberGenerator_5_RandomNumberGenerator INPUT FEATURE_TYPE RandomNumberGenerator_5__toOutput__ OUTPUT FEATURE_TYPE RandomNumberGenerator_5_OUTPUT @Tcl2("RandomNumberGenerator_5_generator {100000} {999999} {0} ") # ------------------------------------------------------------------------- FACTORY_DEF {*} DuplicateRemoverFactory FACTORY_NAME DuplicateFilter_6 COMMAND_PARM_EVALUATION SINGLE_PASS SUPPORTS_FEATURE_TABLES INPUT FEATURE_TYPE RandomNumberGenerator_5_OUTPUT KEY_ATTRIBUTES { BannerTableName SPRIDEN_FIRST_NAME SPRIDEN_ID SPRIDEN_LAST_NAME SPRIDEN_PIDM } INPUT_IS_ORDERED NO PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT UNIQUE FEATURE_TYPE DuplicateFilter_6_UNIQUE # ------------------------------------------------------------------------- FACTORY_DEF {*} DuplicateRemoverFactory FACTORY_NAME DuplicateFilter_8 COMMAND_PARM_EVALUATION SINGLE_PASS SUPPORTS_FEATURE_TABLES INPUT FEATURE_TYPE DuplicateFilter_6_UNIQUE KEY_ATTRIBUTES { SPRIDEN_EMAIL } INPUT_IS_ORDERED NO PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT UNIQUE FEATURE_TYPE DuplicateFilter_8_UNIQUE # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_12 INPUT FEATURE_TYPE FeatureJoiner_5_JOINED_1_NJSZfEa18tU= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "SFRSTCR_PIDM" "ValueStudentId" "SET_TO" } ATTR_ACTION { "" "SFRSTCR_DEGC_CODE_1" "ValueCredential" "SET_TO" } ATTR_ACTION { "" "SFRSTCR_TERM_CODE" "202020" "SET_TO" } ATTR_ACTION { "" "SFRSTCR_CREDIT_HR" "Evaluate3" "SET_TO" } ATTR_ACTION { "ID" "ID" "" "REMOVE" } ATTR_ACTION { "CourseTitle" "CourseTitle" "" "REMOVE" } ATTR_ACTION { "BaseStudentNumberWithinClass" "BaseStudentNumberWithinClass" "" "REMOVE" } ATTR_ACTION { "InstructorSalutation" "InstructorSalutation" "" "REMOVE" } ATTR_ACTION { "InstructorEmail" "InstructorEmail" "" "REMOVE" } ATTR_ACTION { "InstructorLastName" "InstructorLastName" "" "REMOVE" } ATTR_ACTION { "ClassSize" "ClassSize" "" "REMOVE" } ATTR_ACTION { "StudentId" "StudentId" "" "REMOVE" } ATTR_ACTION { "StudentAnonId" "StudentAnonId" "" "REMOVE" } ATTR_ACTION { "rowId" "rowId" "" "REMOVE" } ATTR_ACTION { "StudentEmail" "StudentEmail" "" "REMOVE" } ATTR_ACTION { "StudentLastName" "StudentLastName" "" "REMOVE" } ATTR_ACTION { "CredentialId" "CredentialId" "" "REMOVE" } ATTR_ACTION { "Credential" "Credential" "" "REMOVE" } ATTR_ACTION { "" "BannerTableName" "SFRSTCR" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_12_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} FeatureJoinerFactory FACTORY_NAME FeatureJoiner_15 FLUSH_WHEN_GROUPS_CHANGE No INPUT LEFT FEATURE_TYPE AttributeManager_12_OUTPUT INPUT RIGHT FEATURE_TYPE RandomNumberGenerator_3_OUTPUT_2_QCqJlr4Y3+s= JOIN_MODE Inner JOIN_KEYS CourseSubject CourseSubject AUTO CourseNumber CourseNumber AUTO ATTR_CONFLICT_RES USE_LEFT GEOMETRY_HANDLING USE_LEFT OUTPUT JOINED FEATURE_TYPE FeatureJoiner_15_JOINED # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_30 INPUT FEATURE_TYPE FeatureJoiner_15_JOINED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "CourseSubject" "CourseSubject" "" "REMOVE" } ATTR_ACTION { "CourseNumber" "CourseNumber" "" "REMOVE" } ATTR_ACTION { "InstructorId" "InstructorId" "" "REMOVE" } ATTR_ACTION { "BannerTableName" "BannerTableName" "" "REMOVE" } ATTR_ACTION { "InstructorFirstName" "InstructorFirstName" "" "REMOVE" } ATTR_ACTION { "StudentFirstName" "StudentFirstName" "" "REMOVE" } ATTR_ACTION { "SSBSECT_TERM_CODE" "SSBSECT_TERM_CODE" "" "REMOVE" } ATTR_ACTION { "SSBSECT_PTRM_CODE" "SSBSECT_PTRM_CODE" "" "REMOVE" } ATTR_ACTION { "SSBSECT_SUBJ_CODE" "SSBSECT_SUBJ_CODE" "" "REMOVE" } ATTR_ACTION { "SSBSECT_CRSE_NUMB" "SSBSECT_CRSE_NUMB" "" "REMOVE" } ATTR_ACTION { "SSBSECT_CREDIT_HRS" "SSBSECT_CREDIT_HRS" "" "REMOVE" } ATTR_ACTION { "CourseTitle" "CourseTitle" "" "REMOVE" } ATTR_ACTION { "InstructorSalutation" "InstructorSalutation" "" "REMOVE" } ATTR_ACTION { "InstructorEmail" "InstructorEmail" "" "REMOVE" } ATTR_ACTION { "InstructorLastName" "InstructorLastName" "" "REMOVE" } ATTR_ACTION { "SSBSECT_CRN" "SFRSTCR__CRN" "" "RENAME_SET_VALUE" } ATTR_ACTION { "" "BannerTableName" "SFRSTCR" "SET_TO" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_30_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} DuplicateRemoverFactory FACTORY_NAME DuplicateFilter_2 COMMAND_PARM_EVALUATION SINGLE_PASS SUPPORTS_FEATURE_TABLES INPUT FEATURE_TYPE AttributeManager_30_OUTPUT KEY_ATTRIBUTES { SFRSTCR_CREDIT_HR SFRSTCR_DEGC_CODE_1 SFRSTCR_TERM_CODE SFRSTCR_PIDM } INPUT_IS_ORDERED NO PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT UNIQUE FEATURE_TYPE DuplicateFilter_2_UNIQUE # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_11 INPUT FEATURE_TYPE FeatureJoiner_5_JOINED_0_YF2QtASs+/U= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { "" "SGBSTDN_PIDM" "ValueStudentId" "SET_TO" } ATTR_ACTION { "" "SGBSTDN_DEGC_CODE_1" "ValueCredential" "SET_TO" } ATTR_ACTION { "ID" "ID" "" "REMOVE" } ATTR_ACTION { "CourseTitle" "CourseTitle" "" "REMOVE" } ATTR_ACTION { "CourseSubject" "CourseSubject" "" "REMOVE" } ATTR_ACTION { "CourseNumber" "CourseNumber" "" "REMOVE" } ATTR_ACTION { "BaseStudentNumberWithinClass" "BaseStudentNumberWithinClass" "" "REMOVE" } ATTR_ACTION { "InstructorSalutation" "InstructorSalutation" "" "REMOVE" } ATTR_ACTION { "InstructorEmail" "InstructorEmail" "" "REMOVE" } ATTR_ACTION { "InstructorLastName" "InstructorLastName" "" "REMOVE" } ATTR_ACTION { "ClassSize" "ClassSize" "" "REMOVE" } ATTR_ACTION { "StudentId" "StudentId" "" "REMOVE" } ATTR_ACTION { "StudentAnonId" "StudentAnonId" "" "REMOVE" } ATTR_ACTION { "rowId" "rowId" "" "REMOVE" } ATTR_ACTION { "StudentEmail" "StudentEmail" "" "REMOVE" } ATTR_ACTION { "StudentLastName" "StudentLastName" "" "REMOVE" } ATTR_ACTION { "CredentialId" "CredentialId" "" "REMOVE" } ATTR_ACTION { "Credential" "Credential" "" "REMOVE" } ATTR_ACTION { "InstructorId" "InstructorId" "" "REMOVE" } ATTR_ACTION { "" "BannerTableName" "SGBSTDN" "SET_TO" } ATTR_ACTION { "InstructorFirstName" "InstructorFirstName" "" "REMOVE" } ATTR_ACTION { "StudentFirstName" "StudentFirstName" "" "REMOVE" } OUTPUT OUTPUT FEATURE_TYPE AttributeManager_11_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} DuplicateRemoverFactory FACTORY_NAME DuplicateFilter COMMAND_PARM_EVALUATION SINGLE_PASS SUPPORTS_FEATURE_TABLES INPUT FEATURE_TYPE AttributeManager_11_OUTPUT KEY_ATTRIBUTES { SGBSTDN_DEGC_CODE_1 SGBSTDN_PIDM } INPUT_IS_ORDERED NO PRESERVE_FEATURE_ORDER PER_OUTPUT_PORT OUTPUT UNIQUE FEATURE_TYPE DuplicateFilter_UNIQUE # ------------------------------------------------------------------------- INCLUDE [ puts {DEFAULT_MACRO FeatureWriterDataset_FeatureWriter aws.plaid.plaiddemo}; ] FACTORY_DEF {*} WriterFactory FACTORY_NAME FeatureWriter WRITER_TYPE POSTGRES WRITER_DATASET "$(FeatureWriterDataset_FeatureWriter)" WRITER_SETTINGS "RUNTIME_MACROS,STRICT_TEMPORAL_TYPE_HANDLINGYesNAMED_CONNECTIONaws.plaid.plaiddemoLOWERCASE_ATTRIBUTE_NAMESYesADVANCEDBULK_COPYYESSTART_TRANSACTION0TRANSACTION_INTERVAL1000BEGIN_SQLEND_SQLCOORDINATE_SYSTEM_GRANULARITYFEATURE,METAFILE,POSTGRES" WRITER_METAFILE "ATTRIBUTE_CASE,LOWER,ATTRIBUTE_INVALID_CHARS,.%-#!?*+,ATTRIBUTE_LENGTH,63,ATTR_TYPE_MAP,boolfme_booleancharwidthfme_charwidthvarcharwidthfme_varcharwidthtextfme_bufferxmlfme_xmljsonfme_jsonjsonbfme_jsonbyteafme_binarybufferbyteafme_varbinarywidthbyteafme_binarywidthint2fme_int16int2fme_int8int2fme_uint8int4fme_int32int4fme_uint16int8fme_int64int8fme_uint32numericwidthdecimalfme_decimalwidthdecimalnumeric200fme_uint64oidfme_uint32serialfme_int32float4fme_real32moneyfme_real32float8fme_real64datefme_datetimefme_timetimetzfme_timetimestampfme_datetimetimestamptzfme_datetimeuuidfme_bufferbitwidthfme_charwidthvarbitfme_buffervarbitwidthfme_varcharwidth,DEST_ILLEGAL_ATTR_LIST,,FEATURE_TYPE_CASE,ANY,FEATURE_TYPE_INVALID_CHARS,:?*|%#+,FEATURE_TYPE_LENGTH,63,FEATURE_TYPE_LENGTH_INCLUDES_PREFIX,false,FEATURE_TYPE_RESERVED_WORDS,,FORMAT_METAFILE,$(FME_HOME_ENCODED)metafilePOSTGRES.fmf,FORMAT_NAME,POSTGRES,GEOM_MAP,postgres_nonefme_no_geompostgres_nonefme_pointpostgres_nonefme_linepostgres_nonefme_polygonpostgres_nonefme_rectanglepostgres_nonefme_rounded_rectanglepostgres_nonefme_textpostgres_nonefme_ellipsepostgres_nonefme_arcpostgres_nonefme_collectionpostgres_nonefme_rasterpostgres_nonefme_surfacepostgres_nonefme_solidpostgres_nonefme_point_cloudpostgres_nonefme_feature_table,READER_ATTR_INDEX_TYPES,BTreeRTreeHashPrimaryKey,READER_USES_DEF,yes,SOURCE,no,SUPPORTS_FEAT_TYPE_FANOUT,yes,SUPPORTS_MULTI_GEOM,yes,WORKBENCH_CANNED_SCHEMA,,WRITER,POSTGRES,WRITER_ATTR_INDEX_TYPES,BTreeRTreeHashPrimaryKey,WRITER_DEFLINE_PARMS,GUINAMEDGROUPfme_configuration_groupfme_configuration_common_group%fme_spatial_group%fme_advanced_group%oracle_advanced_groupTableGUINAMEDGROUPfme_configuration_common_groupfme_feature_operation%fme_table_handling%mie_pack%oracle_model%fme_update_geometry%fme_selection_group%fme_table_creation_groupGeneralGUIACTIVECHOICE_LOOKUPfme_feature_operationInsertINSERTfme_update_geometryfme_selection_groupmie_pack%UpdateUPDATE++fme_table_handling+USE_EXISTING++fme_selection_group+FME_DISCLOSURE_OPEN%DeleteDELETE++fme_table_handling+USE_EXISTINGfme_update_geometry++fme_selection_group+FME_DISCLOSURE_OPENfme_spatial_groupfme_advanced_grouporacle_sequenced_cols%atValueopenparenfme_db_operationcloseparenMULTIPLE++fme_table_handling+USE_EXISTING++fme_selection_group+FME_DISCLOSURE_OPENFeatureOperationINSERTGUIACTIVECHOICE_LOOKUPfme_table_handlingUsespaceExistingUSE_EXISTINGfme_table_creation_group%CreatespaceIfspaceNeededCREATE_IF_MISSING%DropspaceandspaceCreateDROP_CREATE%TruncatespaceExistingTRUNCATE_EXISTINGfme_table_creation_groupTableHandlingCREATE_IF_MISSINGGUIDISCLOSUREGROUPfme_selection_groupfme_selection_methodRowSelectionGUIWHOLE_LINERADIOPARAMETERGROUPfme_selection_methodfme_match_columnsMATCH_COLUMNS%fme_where_builder_clauseBUILDERRowSelectionMethodMATCH_COLUMNSGUIWHOLE_LINEATTRLIST_COMMASfme_match_columnsMatchColumnsGUIWHOLE_LINETEXT_EDIT_SQL_CFG_OR_ATTRfme_where_builder_clauseMODEWHEREWHEREClauseGUIDISCLOSUREGROUPfme_advanced_grouppostgres_vacuum_analyze%postgres_allow_serial_writingAdvancedGUICHOICEpostgres_vacuum_analyzeYES%NOVacuumAnalyzeTableNOGUICHOICEpostgres_allow_serial_writingYES%NOAllowSerialColumnWritingNO,WRITER_DEF_LINE_TEMPLATE,FME_GEN_GROUP_NAMEpostgres_typeFME_GEN_GEOMETRYpostgres_sql_key_columnspostgres_drop_tablepostgres_truncate_tablepostgres_modefme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGfme_selection_methodMATCH_COLUMNSfme_match_columnsfme_where_builder_clausepostgres_vacuum_analyzeNOpostgres_allow_serial_writingNO,WRITER_FORMAT_PARAMETER,NETWORK_AUTHENTICATIONNONETWORK_PROXYNOADVANCED_PARMSPOSTGRES_IN_SCHEMAS_FOR_TABLE_LISTINGDATASET_NAMEDatabaseFEATURE_TYPE_NAMETableFEATURE_TYPE_DEFAULT_NAMETable1SUPPORTS_SCHEMA_IN_FEATURE_TYPE_NAMEYESATTRIBUTE_READINGDEFLINE_ATTRSATTRIBUTE_READING_HISTORICALLPARAMS_TO_NOT_PROPAGATE_ON_INSPECTBEGIN_SQLEND_SQLADVANCED_PARMSPOSTGRES_IN_FEATURES_PER_FETCHPOSTGRES_IN_BEGIN_SQLPOSTGRES_IN_END_SQLPOSTGRES_OUT_BULK_COPYPOSTGRES_OUT_TRANSACTION_INTERVALPOSTGRES_OUT_BEGIN_SQLPOSTGRES_OUT_END_SQL,WRITER_HAS_DEFLINE_ATTRS,yes,WRITER_USES_DEF,yes" WRITER_FEATURE_TYPES "ValueBannerTableName:Unique04,ftp_feature_type_name_exp,ValueBannerTableName,ftp_writer,POSTGRES,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,bannertablenamevarcharopenparen200closeparenspriden_first_namevarcharopenparen200closeparenspriden_last_namevarcharopenparen200closeparenspriden_pidmint8spriden_emailvarcharopenparen200closeparenspriden_idvarcharopenparen200closeparen,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_configuration_common_groupfme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGfme_selection_groupfme_selection_methodltUnusedgtfme_match_columnsltUnusedgtfme_where_builder_clauseltUnusedgtfme_advanced_grouppostgres_vacuum_analyzeNOpostgres_allow_serial_writingNO;ValueBannerTableName:Unique00,ftp_feature_type_name_exp,ValueBannerTableName,ftp_writer,POSTGRES,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,ssbsect_term_codevarcharopenparen200closeparenssbsect_ptrm_codevarcharopenparen200closeparenssbsect_subj_codevarcharopenparen200closeparenssbsect_crse_numbvarcharopenparen200closeparenssbsect_credit_hrsint8bannertablenamevarcharopenparen200closeparenssbsect_crnint8,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_configuration_common_groupfme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGfme_selection_groupfme_selection_methodltUnusedgtfme_match_columnsltUnusedgtfme_where_builder_clauseltUnusedgtfme_advanced_grouppostgres_vacuum_analyzeNOpostgres_allow_serial_writingNO;ValueBannerTableName:Unique01,ftp_feature_type_name_exp,ValueBannerTableName,ftp_writer,POSTGRES,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,scbcrse_subj_codevarcharopenparen200closeparenscbcrse_crse_numbvarcharopenparen200closeparenscbcrse_titlevarcharopenparen200closeparenscbcrse_credit_hr_lowint8scbcrse_credit_hr_highint8bannertablenamevarcharopenparen200closeparen,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_configuration_common_groupfme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGfme_selection_groupfme_selection_methodltUnusedgtfme_match_columnsltUnusedgtfme_where_builder_clauseltUnusedgtfme_advanced_grouppostgres_vacuum_analyzeNOpostgres_allow_serial_writingNO;ValueBannerTableName:Unique02,ftp_feature_type_name_exp,ValueBannerTableName,ftp_writer,POSTGRES,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,sfrstcr_pidmint8sfrstcr_degc_code_1textsfrstcr_term_codevarcharopenparen200closeparensfrstcr_credit_hrint8sfrstcr__crnint8bannertablenamevarcharopenparen200closeparen,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_configuration_common_groupfme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGfme_selection_groupfme_selection_methodltUnusedgtfme_match_columnsltUnusedgtfme_where_builder_clauseltUnusedgtfme_advanced_grouppostgres_vacuum_analyzeNOpostgres_allow_serial_writingNO;ValueBannerTableName:Unique03,ftp_feature_type_name_exp,ValueBannerTableName,ftp_writer,POSTGRES,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,sgbstdn_pidmint8sgbstdn_degc_code_1textbannertablenamevarcharopenparen200closeparen,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_configuration_common_groupfme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGfme_selection_groupfme_selection_methodltUnusedgtfme_match_columnsltUnusedgtfme_where_builder_clauseltUnusedgtfme_advanced_grouppostgres_vacuum_analyzeNOpostgres_allow_serial_writingNO;ValueBannerTableName:Unique,ftp_feature_type_name_exp,ValueBannerTableName,ftp_writer,POSTGRES,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,sirasgn_term_codevarcharopenparen200closeparensirasgn_pidmint8sirasgn_crnint8bannertablenamevarcharopenparen200closeparen,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_configuration_common_groupfme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGfme_selection_groupfme_selection_methodltUnusedgtfme_match_columnsltUnusedgtfme_where_builder_clauseltUnusedgtfme_advanced_grouppostgres_vacuum_analyzeNOpostgres_allow_serial_writingNO;ValueBannerTableName:Output,ftp_feature_type_name_exp,ValueBannerTableName,ftp_writer,POSTGRES,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,pebempl_pidmint8pebempl_empl_statusvarcharopenparen200closeparenpebempl_ecls_codevarcharopenparen200closeparenpebempl_campus_codevarcharopenparen200closeparenpebempl_coll_codevarcharopenparen200closeparenbannertablenamevarcharopenparen200closeparen,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_configuration_common_groupfme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGfme_selection_groupfme_selection_methodltUnusedgtfme_match_columnsltUnusedgtfme_where_builder_clauseltUnusedgtfme_advanced_grouppostgres_vacuum_analyzeNOpostgres_allow_serial_writingNO;ValueBannerTableName:Output00,ftp_feature_type_name_exp,ValueBannerTableName,ftp_writer,POSTGRES,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,phrhist_pidmint8phrhist_seq_novarcharopenparen200closeparenphrhist_type_descvarcharopenparen200closeparenphrhist_grossvarcharopenparen200closeparenphrhist_netvarcharopenparen200closeparenphrhist_event_datevarcharopenparen200closeparenbannertablenamevarcharopenparen200closeparen,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_configuration_common_groupfme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGfme_selection_groupfme_selection_methodltUnusedgtfme_match_columnsltUnusedgtfme_where_builder_clauseltUnusedgtfme_advanced_grouppostgres_vacuum_analyzeNOpostgres_allow_serial_writingNO;WebinarBaseInstructors:Joined,ftp_feature_type_name,WebinarBaseInstructors,ftp_writer,POSTGRES,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,idint8coursetitlevarcharopenparen200closeparenmidpoint___how_much_do_you_think_you__should__get_paid_to_teachint8midpoint___how_much_do_you_think_you_would__actually__get_paid_int8coursesubjectvarcharopenparen200closeparencoursenumbervarcharopenparen200closeparensourcevarcharopenparen200closeparenclasssizevarcharopenparen200closeparenrowidint8instructorsalutationvarcharopenparen200closepareninstructoridvarcharopenparen200closepareninstructorlastnamevarcharopenparen200closepareninstructorfirstnamevarcharopenparen200closepareninstructoremailvarcharopenparen200closeparen,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_configuration_common_groupfme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGfme_selection_groupfme_selection_methodltUnusedgtfme_match_columnsltUnusedgtfme_where_builder_clauseltUnusedgtfme_advanced_grouppostgres_vacuum_analyzeNOpostgres_allow_serial_writingNO;WebinarBaseStudents:Table1,ftp_feature_type_name,WebinarBaseStudents,ftp_writer,POSTGRES,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,ltUnusedgt,ftp_attribute_source,1,ftp_user_attributes,studentidvarcharopenparen200closeparenidint8coursetitlevarcharopenparen200closeparencoursesubjectvarcharopenparen200closeparencoursenumbervarcharopenparen200closepareninstructorsalutationvarcharopenparen200closepareninstructoremailvarcharopenparen200closepareninstructorlastnamevarcharopenparen200closeparenclasssizevarcharopenparen200closeparensourcevarcharopenparen200closepareninstructoridvarcharopenparen200closepareninstructorfirstnamevarcharopenparen200closeparenbasestudentnumberwithinclassvarcharopenparen200closeparenstudentanonidvarcharopenparen200closeparenrowidint8studentlastnamevarcharopenparen200closeparenstudentfirstnamevarcharopenparen200closeparenstudentemailvarcharopenparen200closeparen,ftp_user_attribute_values,,ftp_format_parameters,fme_configuration_groupfme_configuration_common_groupfme_feature_operationINSERTfme_table_handlingCREATE_IF_MISSINGfme_selection_groupfme_selection_methodltUnusedgtfme_match_columnsltUnusedgtfme_where_builder_clauseltUnusedgtfme_advanced_grouppostgres_vacuum_analyzeNOpostgres_allow_serial_writingNO" WRITER_PARAMS "NAMED_CONNECTION,aws.plaid.plaiddemo,COORDINATE_SYSTEM_GRANULARITY,FEATURE,START_TRANSACTION,0,BULK_COPY,YES,STRICT_TEMPORAL_TYPE_HANDLING,Yes,LOWERCASE_ATTRIBUTE_NAMES,Yes,TRANSACTION_INTERVAL,1000" DATASET_ATTR "_dataset" FEATURE_TYPE_LIST_ATTR "_feature_type" TOTAL_FEATURES_WRITTEN_ATTR "_total_features_written" OUTPUT_PORTS "" INPUT Unique04 FEATURE_TYPE DuplicateFilter_8_UNIQUE @FeatureType(ENCODED,@EvaluateExpression(FDIV,STRING_ENCODED,ValueBannerTableName,FeatureWriter)) @SupplyAttributes(ENCODED,fme_template_feature_type,Unique04) INPUT Unique00 FEATURE_TYPE DuplicateFilter_5_UNIQUE @FeatureType(ENCODED,@EvaluateExpression(FDIV,STRING_ENCODED,ValueBannerTableName,FeatureWriter)) @SupplyAttributes(ENCODED,fme_template_feature_type,Unique00) INPUT Unique01 FEATURE_TYPE DuplicateFilter_3_UNIQUE @FeatureType(ENCODED,@EvaluateExpression(FDIV,STRING_ENCODED,ValueBannerTableName,FeatureWriter)) @SupplyAttributes(ENCODED,fme_template_feature_type,Unique01) INPUT Unique02 FEATURE_TYPE DuplicateFilter_2_UNIQUE @FeatureType(ENCODED,@EvaluateExpression(FDIV,STRING_ENCODED,ValueBannerTableName,FeatureWriter)) @SupplyAttributes(ENCODED,fme_template_feature_type,Unique02) INPUT Unique03 FEATURE_TYPE DuplicateFilter_UNIQUE @FeatureType(ENCODED,@EvaluateExpression(FDIV,STRING_ENCODED,ValueBannerTableName,FeatureWriter)) @SupplyAttributes(ENCODED,fme_template_feature_type,Unique03) INPUT Unique FEATURE_TYPE DuplicateFilter_4_UNIQUE @FeatureType(ENCODED,@EvaluateExpression(FDIV,STRING_ENCODED,ValueBannerTableName,FeatureWriter)) @SupplyAttributes(ENCODED,fme_template_feature_type,Unique) INPUT Output FEATURE_TYPE Junction_19_Output @FeatureType(ENCODED,@EvaluateExpression(FDIV,STRING_ENCODED,ValueBannerTableName,FeatureWriter)) @SupplyAttributes(ENCODED,fme_template_feature_type,Output) INPUT Output00 FEATURE_TYPE AttributeManager_20_OUTPUT_0_pfH7T/z2fWc= @FeatureType(ENCODED,@EvaluateExpression(FDIV,STRING_ENCODED,ValueBannerTableName,FeatureWriter)) @SupplyAttributes(ENCODED,fme_template_feature_type,Output00) INPUT Joined FEATURE_TYPE Junction_17_Output @FeatureType(ENCODED,WebinarBaseInstructors) INPUT Table1 FEATURE_TYPE Junction_16_Output @FeatureType(ENCODED,WebinarBaseStudents) # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * ROUTE FME_GENERIC Aggregator_AGGREGATE TO HTML __GO_TO_FINAL_OUTPUT_ROUTER__ CopyAttributesENCODEDhtml_contenthtmlwithtitle,multi_writer_id,0,SupplyAttributesENCODED__wb_out_feat_type__HTML GEOMETRY FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__ OUTPUT ROUTED FEATURE_TYPE * OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn") # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Final Output Nuker" INPUT FEATURE_TYPE __nuke_me__