If your replicat is abended with belwo message

Unique key for table cannot be used due to the inclusion of virtual columns, or user-defined datatypes, or extended long varchar columns, or function-based index columns.

encountered an update where all key columns for target table SIEBEL.CX_USER_RESP are not present.

Then you need to use keycols on replicat side (Doc ID 1578985.1)

in my case below was the table

SQL> desc TXUSER.CX_USER
 Name                                                                                Null?    Type
 ----------------------------------------------------------------------------------- -------- --------------------------------------------------------
 ROW_ID                                                                              NOT NULL VARCHAR2(15 CHAR)
 CREATED                                                                             NOT NULL DATE
 CREATED_BY                                                                          NOT NULL VARCHAR2(15 CHAR)
 LAST_UPD                                                                            NOT NULL DATE
 LAST_UPD_BY                                                                         NOT NULL VARCHAR2(15 CHAR)
 MODIFICATION_NUM                                                                    NOT NULL NUMBER(10)
 CONFLICT_ID                                                                         NOT NULL VARCHAR2(15 CHAR)
 DB_LAST_UPD                                                                                  DATE
 X_ADD_FLG                                                                                    CHAR(1 CHAR)
 DB_LAST_UPD_SRC                                                                              VARCHAR2(50 CHAR)
 X_EMP_ID                                                                                     VARCHAR2(15 CHAR)
 X_GRP_NAME                                                                                   VARCHAR2(100 CHAR)
 X_DESCRIPTION                                                                                VARCHAR2(300 CHAR)

it has a unique key but it is not getting used in replication

 SQL> set long 99999999
SQL> select dbms_metadata.get_ddl('INDEX','CX_USER_P1','TXUSER') from dual;
DBMS_METADATA.GET_DDL('INDEX','CX_USER_RESP_P1','TXUSER')
--------------------------------------------------------------------------------

   CREATE UNIQUE INDEX "TXUSER"."CX_USER_P1" ON "TXUSER"."CX_USER" ("X_GRP_NAME", "X_EMP_ID")
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "TXUSERDATA"

so i added below highlighted mapping with KEYCOL in my replicat file just above my genaral schema mapping

map TXUSER.CX_USER_RESP, target TXUSER.CX_USER_RESP, KEYCOLS(X_GRP_NAME,X_EMP_ID);
map TXUSER.*, target TXUSER.*;