Siebel Administration > Index 'S_APPL_WT_IT_RX_P1' for table 'S_APPL_WT_IT_RX' would not be unique
Index 'S_APPL_WT_IT_RX_P1' for table 'S_APPL_WT_IT_RX' would not be unique
We got this error message while trying to to do a 'Get' on all Projects from the Siebel server to our local database.
Similar error messages in the past could be like
Index 'S_LIST_COL_INTL_P1' for table 'S_LIST_COL_INTL' would not be unique
or
Integrity constraint violation: Index 'S_DDOWN_DYNDEST_U1' for table 'S_DDOWN_DYNDEST' will not be unique
The full error in Log file was
SQLError Statement 0 000000025b9716c0:0 2018-09-11 16:14:04
SQL Statement:
insert into SIEBEL.S_APPL_WT_IT_RX (ROW_ID,CREATED,CREATED_BY,LAST_UPD,LAST_UPD_BY,MODIFICATION_NUM,
CONFLICT_ID,PAR_ROW_ID,INACTIVE_FLG,REPOSITORY_ID,
TMPL_ITMHOLDERNAME,DB_LAST_UPD,SEQUENCE,DB_LAST_UPD_SRC,EXPR,
GROUP_NAME,HTML_ATTR,WEB_TMPL_NAME)
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, {fn now()}, ?, 'default', ?, ?, ?, ?)
DBCLog DBCLogError 1 000000025b9716c0:0 2017-09-11 16:14:04
[Sybase][ODBC Driver][Adaptive Server Anywhere]
Index 'S_APPL_WT_IT_RX_P1' for table 'S_APPL_WT_IT_RX' would not be unique
Explanation:
This happens when the local database is using Sybase SQL anywhere. I have not seen it yet with Oracle XE yet.
What we discovered is that this happens when one or more objects (Like Workflows, Business Components )
are linked to one Project in local Database but with another Project in the Server. A majority of errors came
when one or more developers would not lock the current project of the object but would do a check out directly.
When the developer would check in this object, it would be linked to one of the projects he has already locked.
If you can find out exactly which projects should have which components, you could do a check and change the
Projects in your local database first.
If you have a Version control system, you could check which Objects and Projects were last changed and check against your local database.
Here are some SQLs you could use to map Applets and Business Services
select a.name as Applet_name, a.LAST_UPD as Applet_Updated, b.name as Project_name , b.LAST_UPD as Project_Last_Updated from SIEBEL.S_APPLET a, SIEBEL.S_PROJECT b where a.project_id = b.ROW_ID;
select a.name as Business_Service_name, a.LAST_UPD as BS_Updated, b.name as Project_name , b.LAST_UPD as Project_Last_Updated from SIEBEL.S_SERVICE a, SIEBEL.S_PROJECT b where a.project_id = b.ROW_ID;
In case you are interested, Business Components lie in SIEBEL.S_BUSCOMP, Workflows in siebel.s_wfr_proc, Tables in SIEBEL.S_TABLE and Views in SIEBEL.S_VIEW.
In most cases, the best solution was to create a new DBXtract and download the local database.
|