model copy fails with ONLOC SUBCOPY and ONCODE=9

Document ID : KB000105800
Last Modified Date : 09/07/2018
Show Technical Document Details
Issue:
Attempt to perform a model copy on the Host Encyclopedia and receive an error with ONLOC=SUBCOPY and ONCODE=9, specifically the error will look like: 

ERROR condition was raised 
Traceback of user routines: 
Compile Unit Entry Statement CU offset Entry offset Address 
SUBCOPY 1564 +00000A64 +00000A64 2029DDA4 
COPY_DSUBDF 1479 +0000042C +0000042C 2029E394 
MAINPROC 1023 +00003208 +00003208 202A4CA0 
TIECPYB 453 +00000426 +00000426 2029AD56 
ID 3108812345 IS NOT FOUND IN OBJECT ID XREF TABLE 
ONLOC = SUBCOPY 
ONCODE = 9 
AN UNDEFINED ERROR OCCURRED. CALL SUPPORT 
Resolution:
This error is related to the model subset definitions.  You have two options: 

1.  If you do not need/want to copy the model subset definitions along with the model itself, you can specify not to copy the subsets (setting this flag to 'N')  and copy the model. 

2.  If you do want the subset definitions, you must first run the following SQL for the Object ID noted within the error message, and then perform the model copy including subset definitions.  Be sure to backup your model before performing this suggested SQL

Note the object ID referenced in the error message and look for this object in the DSUBDF table as follows: 
SELECT * FROM DSUBDF WHERE SD_OBJ_ID = <object id>  

If any rows are returned, then run the next query to determine if the object id exists in DOBJ table 
SELECT * FROM DOBJ WHERE OBJ_ID = <object id> 

If NO rows exist for this object in the DOBJ table (yet rows exist for this object id in the DSUBDF table), you can simply delete the object from the DSUBDF table as follows: 
DELETE FROM DSUBDF WHERE SD_OBJ_ID = <object id>

Note:  After running this SQL and deleting the offending Object ID,  Perform the model copy and it should be successful.