1. A method of generating procedural language code for extracting data from an operational system, the method comprising: accepting a declarative specification; and generating procedural language code from the declarative specification to execute a data extraction, transformation and loading process defined by the declarative specification.