示例#1
0
        static protected bool ExportTaskNumber(string dossier, X3WS service, int taskNumberToExport, ExportItem expitm)
        {
            bool   ret  = false;
            string file = null;

            //crea file che il ws sage userà per l'import
            file = expitm.WriteToFile(dossier, taskNumberToExport);
            if (file != null)
            {
                //import WS opr
                //ret = service.ImportOprFile("opr_aaaaa.txt", "201909315959");

                ret = service.ImportFile(expitm.Tipo, System.IO.Path.GetFileName(file));
                if (ret)
                {
                    expitm.DeleteTaskNumber(taskNumberToExport);
                    //expitm.DeleteTaskNumber(taskNumberToExport);   PER EVITARE DI CANCELLARE I DATI ho messo -100
                }
                else
                {
                    Settings s = Settings.GetSettings();
                    //il fallimento si basa sul ritorno del WS; quindi lascio al codice del WS la segnalazione eventuale via mail agli operatori
                    Utils.SendMail_Plan(s, "Errore Import da CyberPlan via WS, file " + file, "errore import");
                }
            }
            else
            {
                ret = true;//non c'è niente da esportare
            }
            return(ret);
        }
示例#2
0
        /// <summary>
        /// TaskNumber è il numero con cui CyberPLan identifica gli export
        /// ogni export ha un TaskNumber che corrisponde a più righe in ciascuna tabella di export
        ///
        /// E' importante che le modifiche esportate da CyberPLan siano portate su Sage nell'ordine corretto, per evitare disallineamenti
        ///
        /// Per questo vanno esportati un TaskNumber alla volta, nel giusto ordine (nel caso che per qualche motivo ci siano più task number presenti)
        /// </summary>
        /// <param name="dossier"></param>
        public void ExportAllTaskNumber(string dossier, bool creaOprInAs400)
        {
            X3WS   service = null;
            string pool    = "";

            switch (dossier)
            {
            case "SAURO": pool = X3WSUtils.X3WS_poolAlias + "TOGLIMI_____BLOCCO_PER_SICUREZZA_FINO_A_RELEASE"; break;

            case "SAUROTEST": pool = X3WSUtils.X3WS_poolAliasTest; break;

            case "SAURODEV": pool = X3WSUtils.X3WS_poolAliasDev; break;

            default:
                _logger.Info("Dossier non previsto per i WebServices\n");
                return;
                //break;
            }

            //tabelle di export di CyberPlan
            ExpCorder   cord = new ExpCorder();
            ExpOrderOPR opr  = new ExpOrderOPR(creaOprInAs400);


            // si importano gli opr dal tasknumber più piccolo al più grande in seguenza fino all afine o al primo errore di importazione

            bool res = true;


            while (res)
            {
                res = false;

                bool flgImportOpr  = true;
                bool flgImportCOrd = true;

                int?taskNumber = ExportItem.GetMinTaskNumber();
                if (taskNumber.HasValue)
                {
                    if (service == null)
                    {
                        service = new X3WS(pool); //inizializzo il Ws solo se necessario
                    }
                    //export Cyb vs Sage tramite WS
                    flgImportOpr  = ExportTaskNumber(dossier, service, taskNumber.Value, opr);
                    flgImportCOrd = ExportTaskNumber(dossier, service, taskNumber.Value, cord);

                    // se c'è stato un errore di importazione mi fermo
                    res = flgImportCOrd && flgImportOpr;

                    //export verso As400 del TaskNUmber + chimata al trigger per l'import
                    if ((res == true) && (creaOprInAs400 == true))
                    {
                        service.ExportMfgToAs400(taskNumber.Value);

                        // Attivo il Trigger per scatenare l'import in AS400
                        // se creo il file OPR x importazione in As400 allora lancio anche il trigger per l'elaborazione del file da AS400
                        AS400HelperTrigger AS400Trg = new AS400HelperTrigger("S2TESTMRP");
                        AS400Trg.ExecuteTrigger();
                    }
                }
                else
                {
                    _logger.Info("Nessun TaskNumber da esportare");
                }
            }
        }