/// <summary> /// AS400 CONSRER ogni protocollo fascicolato o modificato in oggetto deve finire anhce in /// delle tabelle di collegamento presenti solo sulla versione etdocs sql di consrer che servono da tramite per /// aggiornare il sistema as400 presente dal cliente. in controlli se il protocollo è fascicolato oppure ha oggetto modificato sono fatti all'interno della progetto DocspaAS400 /// </summary> /// <param name="schedaDoc"></param> public static void setAs400InFolder(string idProfile, DocsPaVO.utente.InfoUtente infoUtente, string idFolder, string constAs400) { DocsPaVO.documento.SchedaDocumento schedaDoc = null; //AS400 string AS400 = System.Configuration.ConfigurationSettings.AppSettings["AS400"]; DocsPaDB.DBProvider db = null; sem.WaitOne(); try { if (AS400 != null && AS400.Equals("1")) { logger.Debug("In AS400"); // string[] checkValues= {"","",""} ; //inizializzazione valori, per essere lanciato l'as400 almeno uno dei valori deve esistere e deve esseere diverso da vuoto. //ricerca scheda. schedaDoc = BusinessLogic.Documenti.DocManager.getDettaglioPerNotificaAllegati(infoUtente, idProfile, ""); if (schedaDoc != null && schedaDoc.tipoProto != null && schedaDoc.tipoProto != "G" && schedaDoc.tipoProto != "R" && schedaDoc.tipologiaAtto != null && (schedaDoc.tipologiaAtto.descrizione != null && schedaDoc.tipologiaAtto.descrizione != "") ) //SOLO PROTOCOLLI { DocsPaDB.Query_DocsPAWS.Model model = new DocsPaDB.Query_DocsPAWS.Model(); DocsPaVO.ProfilazioneDinamica.Templates schTmpl = model.getTemplateDettagli(schedaDoc.docNumber); if (schTmpl != null) { for (int i = 0; i < schTmpl.ELENCO_OGGETTI.Count; i++) { DocsPaVO.ProfilazioneDinamica.OggettoCustom objc = (DocsPaVO.ProfilazioneDinamica.OggettoCustom)schTmpl.ELENCO_OGGETTI[i]; if (objc.DESCRIZIONE.ToLower().Trim().Equals("tipo atto")) { //sostituisco il valore perchè il codice dell'AS400 in docspa30 in realtà la tipologia //è nella profilazione dinamica, mentre il tipo atto in docspa è solo una categoria di tipi_atto_profilati_dinamicamente schedaDoc.tipologiaAtto.descrizione = objc.VALORE_DATABASE.Trim(); // checkValues[0]=objc.VALORE_DATABASE.Trim(); } if (objc.DESCRIZIONE.ToLower().Trim().Equals("commissione referente")) { //sostituisco il valore perchè il codice dell'AS400 in docspa30 schedaDoc.commissioneRef = objc.VALORE_DATABASE.Trim(); // checkValues[1]=objc.VALORE_DATABASE.Trim(); } if (objc.DESCRIZIONE.ToLower().Trim().Equals("numero")) { //sostituisco il valore perchè il codice dell'AS400 in docspa30 schedaDoc.numOggetto = objc.VALORE_DATABASE.Trim(); // checkValues[2]=objc.VALORE_DATABASE.Trim(); } } } } DocsPaAS400.InsertAgent ia = new DocsPaAS400.InsertAgent(); //per essere lanciato l'as400 almeno //uno dei valori deve esistere e deve esseere diverso da vuoto. // if(checkValues[0]!="" || // checkValues[1]!=""|| // checkValues[2]!="") ia.addDocFolder(schedaDoc, schedaDoc.systemId, idFolder); } //FINE AS400 } catch (Exception e) { logger.Debug(e); } finally { if (db != null) { db.Dispose(); } sem.ReleaseMutex(); } }
/// <summary> /// AS400 CONSRER ogni protocollo fascicolato o modificato in oggetto deve finire anhce in /// delle tabelle di collegamento presenti solo sulla versione etdocs sql di consrer che servono da tramite per /// aggiornare il sistema as400 presente dal cliente. in controlli se il protocollo è fascicolato oppure ha oggetto modificato sono fatti all'interno della progetto DocspaAS400 /// </summary> /// <param name="schedaDoc"></param> public static void setAs400(DocsPaVO.documento.SchedaDocumento schedaDoc, string constAs400) { //AS400 string AS400 = System.Configuration.ConfigurationSettings.AppSettings["AS400"]; DocsPaDB.DBProvider db = null; sem.WaitOne(); try { if (AS400 != null && AS400.Equals("1")) { // string[] checkValues= {"","",""} ; //inizializzazione valori, per essere lanciato l'as400 almeno uno dei valori deve esistere e deve esseere diverso da vuoto. logger.Debug("In AS400"); DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti(); //schedaDoc=BusinessLogic.Documenti.DocManager.getDettaglioPerNotificaAllegati(idGruppo,idPeople,idProfile,docnumber); if (schedaDoc != null && schedaDoc.tipoProto != null && schedaDoc.tipoProto != "G" && schedaDoc.tipoProto != "R" && schedaDoc.tipologiaAtto != null && (schedaDoc.tipologiaAtto.descrizione != null && schedaDoc.tipologiaAtto.descrizione != "")) //SOLO PROTOCOLLI { DocsPaDB.Query_DocsPAWS.Model model = new DocsPaDB.Query_DocsPAWS.Model(); DocsPaVO.ProfilazioneDinamica.Templates schTmpl = model.getTemplateDettagli(schedaDoc.docNumber); if (schTmpl != null) { for (int i = 0; i < schTmpl.ELENCO_OGGETTI.Count; i++) { DocsPaVO.ProfilazioneDinamica.OggettoCustom objc = (DocsPaVO.ProfilazioneDinamica.OggettoCustom)schTmpl.ELENCO_OGGETTI[i]; if (objc.DESCRIZIONE.ToLower().Trim().Equals("tipo atto")) { //sostituisco il valore perchè il codice dell'AS400 in docspa30 in realtà la tipologia //è nella profilazione dinamica, mentre il tipo atto in docspa è solo una categoria di tipi_atto_profilati_dinamicamente schedaDoc.tipologiaAtto.descrizione = objc.VALORE_DATABASE.Trim(); // checkValues[0]=objc.VALORE_DATABASE.Trim(); } if (objc.DESCRIZIONE.ToLower().Trim().Equals("commissione referente")) { //sostituisco il valore perchè il codice dell'AS400 in docspa30 in realtà la tipologia //è nella profilazione dinamica, mentre il tipo atto in docspa è solo una categoria di tipi_atto_profilati_dinamicamente schedaDoc.commissioneRef = objc.VALORE_DATABASE.Trim(); // checkValues[1]=objc.VALORE_DATABASE.Trim(); } if (objc.DESCRIZIONE.ToLower().Trim().Equals("numero")) { //sostituisco il valore perchè il codice dell'AS400 in docspa30 in realtà la tipologia //è nella profilazione dinamica, mentre il tipo atto in docspa è solo una categoria di tipi_atto_profilati_dinamicamente schedaDoc.numOggetto = objc.VALORE_DATABASE.Trim(); //checkValues[2]=objc.VALORE_DATABASE.Trim(); } } } } DocsPaAS400.InsertAgent ia = new DocsPaAS400.InsertAgent(); // if(checkValues[0]!="" || // checkValues[1]!=""|| // checkValues[2]!="") // { db = new DocsPaDB.DBProvider(); db.BeginTransaction(); ArrayList queries = ia.getInsertQueries(constAs400, schedaDoc, db); for (int i = 0; i < queries.Count; i++) { if (!db.ExecuteLockedNonQuery((string)queries[i])) { throw new Exception("Errore nell'inserimento dei dati in AS400"); } } db.CommitTransaction(); } // } //FINE AS400 } catch (Exception e) { db.RollbackTransaction(); logger.Debug(e); } finally { if (db != null) { db.Dispose(); } sem.ReleaseMutex(); } }