Below is an example of an error that can occur during the Sync Full process in CAD Integrator. Values in the error have been changed to be generic. Your error message will contain numbers specific to your database.
2016-05-20 11:04:51,738 ERROR [com.tririga.ci.sync.SyncServiceImpl](pool-1-thread-7) Sync failed. com.tririga.ci.error.CiRuntimeException: com.tririga.ci.remote.shared.error.CiSharedException: Attach associated object could not find the association to use. Attach-To: SmartObjectImpl[ID=SmartObjectId[ID=SSSSSSSS,Business Object ID=BBBBBBBB],Business Object=BoImpl[name=triSpace,id=SSSSSSSS,module=ModuleImpl[name=Location, id=6]]] Record-To-Attach: SmartObjectImpl[ID=SmartObjectId[ID=PPPPPPPP,Business Object ID=bbbbbb],Business Object=BoImpl[name=triPeople,id=bbbbbb,module=ModuleImpl[name=triPeople, id=7]]]
First, read the message so you can get a general idea of the problem.
- There are two key parts of the message. You can see that the sync process failed. The information immediately after “Sync failed” allows the developer to identify what path within the code raised the error.
- After that path information is a more critical piece needed to do further analysis. Specifically, there is this piece: “Attach associated object could not find the association to use.” From this, we can see that the sync failed because it appears that one of the objects is missing an expected association to another record.
Next, we are going to get into the details of the error.
- The first value, SSSSSSSS, is actually the spec_id for a triSpace record. You can use that value to query the IBS_SPEC table to determine the name of the space. The SQL statement to find this information is:
- select * from ibs_spec where spec_id = SSSSSSSS
- This will display all of the fields in the IBS_SPEC table. Besides the name of the space, you will also be able to see the location information which will allow you to get to the underlying record in TRIRIGA.
- The next value, PPPPPPPP, is the spec_id for the triPeople record. We can then reuse the select statement above by simply using the PPPPPPPP value rather than the SSSSSSSS value…