In fact, you can get the error codes on MDS website : in “Integration Management/Staging Batches” clicking on the batch you want and clicking on button “view details for selected batch”
in order to do the same thing with API (get error codes), you’ll need to get info from the batch after it has been inserted.
//get information related to a staging batch public Collection StagingGet(Collection stagingBatch, bool ReturnAllCriteria, bool ReturnMembers, bool ReturnAttributes, bool ReturnRelationShips, ref OperationResult or) { Collection colUnbatched = new Collection(); Collection colBatches = new Collection(); using (ServiceClient c = MDS_WSConnect.CreateMdsProxy()) { or = new OperationResult(); colBatches = c.StagingGet(new International(), true, new StagingResultCriteria() { All = ReturnAllCriteria, Attributes = ReturnAttributes, Members = ReturnMembers, Relationships = ReturnRelationShips }, new StagingSearchCriteria() { StagingBatches = stagingBatch, StagingDataStatus= StagingDataStatus.All }, out or, out colUnbatched); List lstErr = new List(); //...do what you need with the error collection foreach (StagingBatchError err in colBatches.First().Errors) { lstErr.Add(err.ErrorCode + " - " + err.TargetCode); } return colBatches; } }
so, complete process would be:
DateTime dtBefore = DateTime.Now; OperationResult or = new OperationResult(); //filling new staging batch with entityMembers Collection colStaging = ModelMembersBulkMerge(colEntMembers); //initiating the staging process (not sure I really need that here in fact) Collection colBatches = StagingGet(colStaging, true, true, true, false, ref or); //triggering staging ProcessUnbatchedStaging(pModelId, pVersionId); DateTime dtAfter = DateTime.Now; TimeSpan ts = dtAfter.Subtract(dtBefore); MessageBox.Show("members (bulk) inserted : " + colEntMembers.First().Members.Count() + "\r\n" + "time elapsed (seconds):" + ts.TotalSeconds.ToString()); //get back the batch to see if any errors colBatches = StagingGet(colStaging, true, true, true, false, refor);
note: StagingDataStatus= StagingDataStatus.All –> get all including Errors