internal static IDMObjects.IFnDocumentDual getDocument(string id, string idamministrazione, string dst) { IDMError.ErrorManager idmErrorManager = new IDMError.ErrorManager(); DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager(); IDMObjects.Library oLibrary = userManager.getFileNETLib(idamministrazione); oLibrary.LogonId = dst; IDMObjects.IFnDocumentDual docFNET = (IDMObjects.IFnDocumentDual)oLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeDocument, id, oLibrary, null, null); return(docFNET); }
internal static string createVersionFNET(string nomeFile, ref DocsPaVO.documento.FileRequest fileRequest, string idamministrazione, string dst) { IDMError.ErrorManager idmErrorManager = new IDMError.ErrorManager(); try { string path = ConfigurationManager.AppSettings["FNET_pathServer"]; DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager(); IDMObjects.Library oLibrary = userManager.getFileNETLib(idamministrazione); oLibrary.LogonId = dst; IDMObjects.IFnFolderDual folder = DocumentManagement.getRootFolder(oLibrary); IDMObjects.IFnDocumentDual docFNET = (IDMObjects.IFnDocumentDual)oLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeDocument, fileRequest.docNumber, oLibrary, null, null); bool canCheckout = docFNET.GetState(IDMObjects.idmDocState.idmDocCanCheckout); if (canCheckout) { docFNET.Version.CheckoutNoCopy(); } else { throw new Exception("Il file è utilizzato da un altro processo"); } bool canCheckin = docFNET.GetState(IDMObjects.idmDocState.idmDocCanCheckin); docFNET.Version.Checkin(path, nomeFile, IDMObjects.idmCheckin.idmCheckinKeep); IDMObjects.Version vers = docFNET.Version; bool canIndex = docFNET.GetState(IDMObjects.idmDocState.idmDocCanIndex); if (canIndex) { vers.IndexContent(IDMObjects.idmIndex.idmIndexContent); } string numVers = getFNETnumVers(docFNET.Version.Number); //OLD: fileRequest.versionId = numVers + getFNETename(fileRequest.docNumber); fileRequest.fNversionId = numVers + getFNETename(fileRequest.docNumber); return(numVers); } catch (Exception e) { string msg = e.Message; for (int i = 0; i < idmErrorManager.Errors.Count; i++) { msg += " " + idmErrorManager.Errors[i].Description; } throw new Exception(msg); } }
internal void unlock(DocsPaVO.documento.FileRequest fileReq, string idamministrazione) { int numVersione = getNumVers(fileReq.versionId); DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager(); IDMObjects.Library oLibrary = userManager.getFileNETLib(idamministrazione); IDMObjects.IFnDocumentDual docFNET = (IDMObjects.IFnDocumentDual)oLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeDocument, fileReq.docNumber, oLibrary, null, null); bool canCheckin = docFNET.GetState(IDMObjects.idmDocState.idmDocCanCheckin); if (canCheckin) { docFNET.Version.CancelCheckout(IDMObjects.idmCancelCheckout.idmCancelCheckoutNoKeep); } }
internal static ArrayList RicercaFT(string testo, string idReg, InfoUtente infoUtente, int numPage, string dst, out int numTotPage, out int nRec) { logger.Debug("RicercaFT"); numTotPage = 0; nRec = 0; ArrayList resultSet = new ArrayList(); DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager(); IDMObjects.Library oLibrary = userManager.getFileNETLib(infoUtente.idAmministrazione); // oLibrary.LogonId = dst; DocsPaWrapperFilenet.FilenetFullTextClass fullTextClass = new DocsPaWrapperFilenet.FilenetFullTextClass(); Array docNumbers = fullTextClass.RicercaFullText(testo, oLibrary.Name, "Admin", ""); if (docNumbers == null || docNumbers.Length == 0) { return(null); } else { for (int i = 0; i <= docNumbers.Length - 1; i++) { resultSet.Add(Int32.Parse(docNumbers.GetValue(i).ToString())); } } int numDocs = resultSet.Count; string[] resultKey = GetResultKeys(resultSet, numPage, numDocs); resultSet = GetListaDocumenti(resultKey, idReg, infoUtente); numTotPage = (numDocs / PAGE_SIZE); if (numTotPage * PAGE_SIZE < numDocs) { numTotPage++; } nRec = numDocs; return(resultSet); }
internal void remove(DocsPaVO.documento.FileRequest fileReq, string idamministrazione, string versFNET, string dst) { // int numVersione = getNumVers(fileReq.versionId); int numVersione = getNumVers(versFNET); string strNumVersione = getFNETnumVers(numVersione.ToString()); IDMError.ErrorManager idmErrorManager = new IDMError.ErrorManager(); DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager(); IDMObjects.Library oLibrary = userManager.getFileNETLib(idamministrazione); oLibrary.LogonId = dst; IDMObjects.IFnDocumentDual docFNET = (IDMObjects.IFnDocumentDual)oLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeDocument, fileReq.docNumber, oLibrary, null, null); IDMObjects.IFnDocumentDual verFNET = (IDMObjects.IFnDocumentDual)oLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeDocument, fileReq.docNumber + ":" + strNumVersione, oLibrary, null, null); try { //TODO: 04/06/2007 (A.B.) //attualmente viene de-indicizzato il file acquisito sulla versione e/o allegato // non viene ne eliminata la versione Filenet ne eliminato il file vero è proprio //in quanto se rimosso viene messo off line la versione e nascono problemi //per eventuali versioni successive. docFNET.Version.IndexContent(IDMObjects.idmIndex.idmIndexContentDeindex); #region testing filenet //docFNET.Version.Series.Remove(numVersione); //docFNET.Version.Archive(IDMObjects.idmArchive.idmArchiveDispose); //string ArchivioFile = DocsPaDocumentale_FILENET.FilenetLib.DocumentManagement.checkFolderCompliance(oLibrary); //verFNET.Version.ArchiveEx(String.Empty); //removeVers(fileReq.versionId); //removeVers(versFNET); //docFNET.Version.Archive(IDMObjects.idmArchive.idmArchiveDispose); #endregion } catch (Exception e) { string msg = e.Message; for (int i = 0; i < idmErrorManager.Errors.Count; i++) { msg += " " + idmErrorManager.Errors[i].Description; } throw new Exception(msg); } }
public static bool RemoveDocument(string docnumber, string idamministrazione) { try { IDMError.ErrorManager idmErrorManager = new IDMError.ErrorManager(); DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager(); IDMObjects.Library oLibrary = userManager.getFileNETLib(idamministrazione); IDMObjects.IFnDocumentDual docFNET = (IDMObjects.IFnDocumentDual)oLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeDocument, docnumber, oLibrary, null, null); if (docFNET != null) { docFNET.Delete(); } return(true); } catch (Exception exception) { logger.Debug("Errore durante la rimozione del documento.", exception); return(false); } }
public static string CreateDocument(DocsPaVO.documento.SchedaDocumento schedaDoc, int idamministrazione, string dst) { string docNumber = null; try { ArrayList app = new ArrayList(); logger.Debug("creazione Doc FileNET"); IDMObjects.Library oLibrary; IDMObjects.IFnFolderDual folder; IDMObjects.ClassDescription cDescr; IDMObjects.IFnDocumentDual doc; DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager(); oLibrary = userManager.getFileNETLib(idamministrazione.ToString()); oLibrary.LogonId = dst; folder = getRootFolder(oLibrary); logger.Debug("permesso folder =" + folder.GetState(IDMObjects.idmFolderState.idmFolderCanFileIn).ToString()); string folderName = folder.ID.ToString() + " - " + folder.Name.ToString(); logger.Debug("Folder: " + folderName); cDescr = getClassDocument(oLibrary); doc = (IDMObjects.IFnDocumentDual)oLibrary.CreateObject(IDMObjects.idmObjectType.idmObjTypeDocument, cDescr, folder, 0, ""); // set doc id IDMObjects.IFnPropertyDual propDocName = doc.Properties[1]; propDocName.FormatValue(); propDocName.Value = doc.ID.ToString(); // set num. max versioni (online limit) custom prop. IDMObjects.IFnPropertyDual propMaxVersion = doc.Properties[3]; propMaxVersion.FormatValue(); propMaxVersion.Value = "99"; //non serve retaggio della 2.0 logger.Debug("prima di eliminare i permessi"); //rimuovo i permessi che FN mette di default tipicamente security ad singolo utente // int numP = doc.Permissions.Count; // for (int i=1; i<= numP; i++) // { // doc.Permissions.Remove(doc.Permissions[1].ID); // } //non c'è bisogno di farlo basta impostare la proprietà: //Default Item Access List del gruppo come inserisci security per Gruppo/Admin. //doc.Permissions.Add(ConfigurationManager.AppSettings["FNET_userGroup"].ToString(),4); logger.Debug("crea prima versione"); schedaDoc.systemId = doc.ID.ToString(); schedaDoc.docNumber = schedaDoc.systemId; schedaDoc = Versione.addFirstVersione(schedaDoc, doc); docNumber = schedaDoc.systemId; logger.Debug("documento creato"); #region Codice Commentato // if(documento.GetErrorCode() != 0) // { // throw new Exception("Errore nell'update del documento"); // } // // documento.Status = DocsPaDocumentale.HummingbirdLib.Tipi.StatusType.Lock; // documento.Update(); // // if(documento.GetErrorCode() != 0) // { // throw new Exception("Errore nell'update del documento"); // } #endregion } catch (Exception exception) { logger.Debug("Errore durante la creazione di un documento.", exception); docNumber = null; } return(docNumber); #region Codice Originale //// string idAmministrazione = objSicurezza.idAmministrazione; //// string library = DocsPaDB.Utils.Personalization.getInstance(objSicurezza.idAmministrazione).getLibrary(); // // documento = new DocsPaDocumentale.HummingbirdLib.Documento(this.userInfo.dst, library, DocsPaDocumentale.HummingbirdLib.Tipi.ObjectType.Cyd_CmnProjects); // // /* // docObj.SetProperty("DOCNAME", ""); // docObj.SetProperty("AUTHOR", schedaDoc.idPeople); // docObj.SetProperty("AUTHOR_ID", schedaDoc.userId); // docObj.SetProperty("TYPE_ID", schedaDoc.typeId); // docObj.SetProperty( "TYPIST_ID", schedaDoc.userId); // docObj.SetProperty("APP_ID", schedaDoc.appId); // docObj.SetProperty( "%VERIFY_ONLY", "%NO" ); // */ // documento.DocumentName = ""; // documento.Author = schedaDoc.idPeople; // documento.AuthorId = schedaDoc.userId; // documento.TypeId = schedaDoc.typeId; // documento.TypistId = schedaDoc.userId; // documento.AppId = schedaDoc.appId; // documento.VerifyOnly = DocsPaDocumentale.HummingbirdLib.Tipi.VerifyOnlyType.No; // // // è necessario inserire anche i permessi per l'utente TYPIST_ID // documento.SetTrustee(schedaDoc.userId, 2, 0); // // //docObj.SetTrustee("PRO_DIP1_DIRII_UFF",1,255); // documento.Create(); // // /* // DocsPaWS.Utils.ErrorHandler.checkPCDOperation(docObj,"Errore nella creazione del documento"); // */ // if(documento.GetErrorCode() != 0) // { // throw new Exception("Errore nella creazione del documento"); // } // // // /* // string docNumber = docObj.GetReturnProperty("%OBJECT_IDENTIFIER").ToString(); // */ // string docNumber = documento.ObjectIdentifier; // // //string versionId = docObj.GetReturnProperty("%VERSION_ID").ToString(); // // // unlock del documento // //docObj.SetProperty("%OBJECT_IDENTIFIER", docNumber); // // /* // docObj.SetProperty("%STATUS", "%UNLOCK"); // */ // documento.Status = DocsPaDocumentale.HummingbirdLib.Tipi.StatusType.Unlock; // // documento.Update(); // // /* // DocsPaWS.Utils.ErrorHandler.checkPCDOperation(docObj,"Errore nell'update del documento"); // */ // if(documento.GetErrorCode() != 0) // { // throw new Exception("Errore nell'update del documento"); // } // // // // //aggiorna flag daInviare // //string updateStr = "UPDATE VERSIONS SET CHA_DA_INVIARE = '1'"; // string firstParam = "CHA_DA_INVIARE = '1'"; // // if(schedaDoc.documenti!=null && schedaDoc.documenti.Count>0) // { // // int lastDocNum=schedaDoc.documenti.Count-1; // // // if(((DocsPaVO.documento.Documento)schedaDoc.documenti[lastDocNum]).dataArrivo!=null && !((DocsPaVO.documento.Documento)schedaDoc.documenti[lastDocNum]).dataArrivo.Equals("")) // { // firstParam += ", DTA_ARRIVO =" + DocsPaDbManagement.Functions.Functions.ToDate(((DocsPaVO.documento.Documento)schedaDoc.documenti[lastDocNum]).dataArrivo,false); // } // } // //updateStr +=" WHERE DOCNUMBER=" + docNumber; // // // //db.executeNonQuery(updateStr); // DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti(); // doc.UpdateVersions(firstParam, docNumber); // // return docNumber; #endregion }