public void Process() { var errorContext = "An error occured when extracting text for field."; try { errorContext += String.Format(" [WorkspaceArtifactId: {0}, DocumentArtifactId: {1}]", WorkspaceArtifactId, DocumentArtifactId); //retreive text source on Document object String textSource = ArtifactQueries.GetDocumentTextFieldValue(ServicesMgr, ExecutionIdentity, WorkspaceArtifactId, DocumentArtifactId, SourceLongTextFieldArtifactId); if (textSource == null) { //update TextExtractorDetails field on Document object String extractorSetName = ArtifactQueries.GetExtractorSetNameForArtifactId(ServicesMgr, ExecutionIdentity.CurrentUser, WorkspaceArtifactId, ExtractorSet.ArtifactId); var fieldValue = string.Format(Constant.ErrorMessages.DOCUMENT_ERROR_ENCOUNTERED, Constant.ErrorMessages.EXTRACTOR_SET_SOURCE_LONG_TEXT_FIELD_IS_EMPTY, extractorSetName); ArtifactQueries.AppendToDocumentLongTextFieldValue(ServicesMgr, ExecutionIdentity.CurrentUser, WorkspaceArtifactId, DocumentArtifactId, Constant.Guids.Fields.Document.TextExtractorErrors, fieldValue); //Update ExtractorSet Details field ArtifactQueries.UpdateExtractorSetDetails(ServicesMgr, ExecutionIdentity.CurrentUser, WorkspaceArtifactId, ExtractorSet.ArtifactId, Constant.ExtractorSetStatus.DetailMessages.COMPLETE_WITH_ERRORS_DETAILS); } else { var textExtractorDocument = new ExtractorSetDocument(DocumentArtifactId, textSource).GetInstance(); //extract text and update fields. ExtractorProfile.ProcessAllTargetTexts(textExtractorDocument, ExtractorSet); //update the value for reporting ExtractorSet.ExtractorSetReporting.SetNumberOfUpdatesWithValues(WorkspaceArtifactId, ExtractorSetArtifactId, ExtractorProfile.NumberOfTargetTextsWithValues); } // Reset the count because it's being done on one instance of ExtractorProfile ExtractorProfile.ResetNumberOfTargetTextsWithValues(); } catch (Exception ex) { throw new CustomExceptions.TextExtractorException(errorContext, ex); } }