En la versión 8.1 de Siebel me encontré con el siguiente problema al realizar una carga en S_ASSET_POSTN a través de EIM_ASSET.
Resulta que viene de caja (aún no resuelto en el último parche de la 8.1) el siguiente error de mapeo en «Foreign Key Mapping Columns»:

El error consiste en que en el mapeo para cargar la foreign key S_ASSET_POSTN.POSITION_ID, la columna PSTN_OU_LOC apunta a OU_ID/NAME y la columna PSTN_OU_NAME apunta a OU_ID/LOC, es decir, están intercambiadas.
Como workaround, se puede:
1. Cargar de forma también intercambiadas dichas columnas al insertar los datos en la EIM_ASSET, o bien
2. Una vez cargados los datos, mover los datos de una columna a la otra::
- UPDATE EIM_ASSET SET «columna C»=PSTN_OU_LOC WHERE IF_ROW_BATCH_NUM=$ifrowbatchnum
- UPDATE EIM_ASSET SET PSTN_OU_LOC=PSTN_OU_NAME WHERE IF_ROW_BATCH_NUM=$ifrowbatchnum
- UPDATE EIM_ASSET SET PSTN_OU_NAME=»columna C» WHERE IF_ROW_BATCH_NUM=$ifrowbatchnum
- UPDATE EIM_ASSET SET «columna C»=null WHERE IF_ROW_BATCH_NUM=$ifrowbatchnum
- commit
dónde «columna C» es cualquier otra columna de EIM_ASSET que nos pueda servir de apoyo para hacer el intercambio de información entre ambas columnas.
Si queremos solucionar el problema definitivamente, podemos editar el mapping (a través de tools no se puede) directamente en el xml resultado de exportar a .sif:
1. En Tools/Object Explorer/Table/»Add to Archive»
Enter your text here …

2. Abrimos el .sif en formato xml
3. Identificamos la sección «FOREIGN_KEY_MAPPING_COLUMN» y buscamos las dos columnas involucradas.

4. Editamos el XML de manera que cada columna mapee a la columna de tabla base correctamente (sin olvidar las longitudes como se comentó en la entrada EIM en tablas customizadas. Parte I)

5. Guardamos el nuevo .sif y lo importamos, sobrescribiendo la anterior configuración de EIM_ASSET


6. A partir de aquí, los pasos habituales de apply, compilar las tablas implicadas, regenerar el diccache.dat y listo, ya funciona la carga de S_ASSET_POSTN a través de EIM_ASSET.




