While the Publish functionality executes in a similar manner for each tool, Retrieve functionality and behaviour has subtle differences depending on the tool. The basic requirement though is;- Retrieve = Transport (send the packets of data including additions and importantly deletions to the target application), Transform (the data from the data model of SPF to the target application data model), Validate (that the data conforms), Selectively Load (allow the user to select the data e.g. via "pick and place" or via a "to-do list"). This narrative shall not describe each of these cases and differences, instead these shall be left to the UAT test scripts as indicated below.
But what happens when the tool retrieves, where does the data come from?
Tool retrieve firstly transports the 3 files referred to above, the viewable, the published XML and the tombstone XML from the SPF vault to the application. Note: the data is not retrieved directly from the corresponding SPF application domain, but can be overridden with data from CDW, but that process is not covered here. Therefore, it should be understood, that editing the data in a publish domain in SPF is not recommended as it is not what is used in the P&R process, except for what data is rolled up to CDW.
The data in the application XML and tombstone XML is unpacked, transformed to the target database and readied for import. However, such import can take on multiple forms, for example:
In S3D where no equipment has yet been placed, the P&ID can be used to pick-and-place equipment in the 3D model and autocorrelated. Alternatively, if the equipment already exists in the 3D model it can be autocorrelated on import. Other applications, such as SPI will bring up a ‘to-do’ list of items for the user to deal with. This step is achieved during the validation step referred to above where the application validates the data in the application database against the application XML and tombstone XML being retrieved. As previously indicated above, this is an important step for P&R and not an automated ETL step, but instead under the guidance of the user.