This article has been contributed by Divya Nadella. She provides a really nice overview of EIM process for importing Siebel Attachments.
The magnificence of data loads in Siebel is to understand the complex data model and the referential integrity to be taken care of. Speaking of data loads, data for almost all the entities including the Administrative data (views, responsibilities, LOV etc) can be loaded through Siebel EIM.
Accounts is one very important entity and linked to many child entities. This article explains importing of the child entity attachments in Siebel 8x using EIM. Importing of Accounts is not covered here and account data is assumed to be already present. So essentially these attachments are being imported to be associated to accounts.
The base table storing the account-attachment information is S_ACCNT_ATT. First identify the required and user key columns to be populated. Then the additional columns that are needed by the current business requirement. The EIM table EIM_ACCNT_DTL can be used to populate the above identified columns. Below is a the sample data mapping of columns to be populated:
The required data is queried, extracted and loaded to the EIM table. This can be done using various methods like SQL, SQL Loader, ETL Tools like Informatica Powercenter or a combination of more than one of these methods depending upon the source system , transformation required and volume of data.
Before running the EIM task, the physical files correpsonding to each of the attachments have to be present in the <siebel_server_path>/input folder. This is the location from where Siebel searches for the attachemnts and reads them.
Typically attachments can be loaded from two different sources:
(1) From legacy system
(2) From existing Siebel system
The preparation of files for import from Legacy system is pretty simple. The physical files of the attachments to be migrated are copied to the above directory before the run.
The preparation for import of the attachments already stored on another Siebel system is the tricky part. The attachment stored in the source Siebel File system cannot be directly copied beacuse when a file with any extension like .pdf, .txt, .jpg is attached from UI(or through migration for that matter) Siebel does not store it as it is; instead coverts into compressed file with .SAF extension and stores in <siebel_server_path>/ file system/att/ folder. Please note the target directory for migration <siebel_server_path>/input.
Also the name of the .SAF file is computed using specific logic. For instance, for account-attachments the name of the file is the string ‘S_ACCNT_ATT_’ concatenated with S_ACCNT_ATT.ROW_ID concatenated with ‘_'(underscore) concatenated with S_ACCNT_ATT.FILE_REV_NUM followed by the extension in the end ‘.SAF’. An example name is “S_ACCNT_ATT_1-ABC-1_1-XYZ-2.SAF” where ‘1-ABC-1’ is ROW_ID of S_ACCNT_ATT and ‘1-XYZ-2’ is the FILE_REV_NUM.
Hence for import, these files have to be first extracted during which they would be converted back to normal files and then copied into the required location. The extraction can be done using the utility sseunzip* utility. Ofcourse one simple way to adapt ,if the volume is low and the business process supports it, is to extract the attachments manually from GUI by navigating to the Accounts -> Attachments tab.
Once the attachments are extracted they have to be physically copied to the location <siebel_server_path>/input and the EIM task can be run using an IFB that could look like below:
After the EIM task is completed successfully, the attachments would have been migrated and associated to the corresponding accounts as required.