示例#1
0
        // method to connect to Force API
        private SforceService connect(string username, string passwd)
        {
            SforceService SfService   = new GED.Tools.WSDLQualifFinal.SforceService();
            LoginResult   loginResult = SfService.login(username, passwd);

            SfService.Url = loginResult.serverUrl;
            SfService.SessionHeaderValue           = new SessionHeader();
            SfService.SessionHeaderValue.sessionId = loginResult.sessionId;
            return(SfService);
        }
示例#2
0
        }// must return boolean

        //update "acte" by "acte" this fucntion consume more time/space than updateSalesForceV1 but fix permission issue
        // method must be splited for each attribute identifier ♣ GERER L'exception de celui la
        public void updateSalesForce(Dictionary <string[], WsResponse> responses)
        {
            // IDS
            string username = ConfigurationManager.AppSettings["loginSF"];
            string passwd   = ConfigurationManager.AppSettings["mdpSF"];

            SforceService SfService   = new GED.Tools.WSDLQualifFinal.SforceService();
            LoginResult   loginResult = SfService.login(username, passwd);

            SfService.Url = loginResult.serverUrl;
            SfService.SessionHeaderValue           = new SessionHeader();
            SfService.SessionHeaderValue.sessionId = loginResult.sessionId;

            foreach (KeyValuePair <string[], WsResponse> response in responses)
            {
                //UPDATE ACTE
                Acte__c SfActe = new Acte__c();
                //string soqlQuery = "SELECT Id, Commentaire_Interne__c, Statut_du_XML__c FROM Acte__c WHERE Name = '" + response.Key + "'"; OLD
                string      soqlQueryActe = "SELECT Id, Commentaire_XML__c, Statut_du_XML__c FROM Acte__c WHERE Name = '" + response.Key[0] + "'";
                QueryResult result        = SfService.query(soqlQueryActe);
                if (result.size != 0)
                {
                    SfActe = (Acte__c)result.records[0]; // take the only item selected
                }
                // update data
                SfActe.Commentaire_XML__c = string.Join(" ", responses[response.Key].message);
                SfActe.Statut_du_XML__c   = responses[response.Key].status_xml; // <== update status for prod acte and leave it empty in acte
                if (!responses[response.Key].isSuccessCall)
                {
                    SfActe.fieldsToNull = new String[] { "Date_Envoi_Prod__c" }
                }
                ;                                                                                                        // purger la date pour qu'elle ne figure pas dans la Regul
                SaveResult[] saveResults = SfService.update(new sObject[] { SfActe });
                // must return one or zero

                //UPDATE PROD ACTE
                Production_Acte__c prodActe          = new Production_Acte__c();
                string             soqlQueryProdActe = "SELECT Id, Statut_du_XML__c FROM Production_Acte__c WHERE Name = '" + response.Key[1] + "'";
                result = SfService.query(soqlQueryProdActe);
                if (result.size != 0)
                {
                    prodActe = (Production_Acte__c)result.records[0];
                }
                prodActe.Statut_du_XML__c = responses[response.Key].status_xml;
                saveResults = SfService.update(new sObject[] { prodActe });
            }
        }
示例#3
0
文件: Form1.cs 项目: A-nas/Norito
        private void button12_Click(object sender, EventArgs e)
        {
            //## this fucntion must after all manage exceptions in case if we can't connect to Force.com API
            // fetch for all actes data list
            //     List<Acte> actes = Definition.GetListeActes(); // data for testing
            //      string[] idActes = actes.Select(p => p.ReferenceInterne).ToArray(); // extract ids actes
            //     string idList = "'" + String.Join("','", idActes) + "'"; // construct the part of 'in' query string clause
            string soqlQuery = "";                                                   // "SELECT Name, Commentaire_Interne__c, Statut_du_XML__c FROM Acte__c where Name in ("+ idList +")";

            string username = "******";                           //
            string passwd   = "nortia01";                                            //

            SforceService SfService = new GED.Tools.WSDLQualifFinal.SforceService(); // call ws
            Dictionary <string, string> dictionnaire = new Dictionary <string, string>();

            try
            {
                LoginResult loginResult = SfService.login(username, passwd);
                SfService.Url = loginResult.serverUrl;
                SfService.SessionHeaderValue           = new SessionHeader();
                SfService.SessionHeaderValue.sessionId = loginResult.sessionId;

                QueryResult result = SfService.query(soqlQuery);
                // array to alter/safe
                Acte__c[] SfActes = new Acte__c[result.size];

                for (int i = 0; i < result.size; i++)
                {
                    // cast data
                    SfActes[i] = (Acte__c)result.records[i];
                    //update list //updating current cell //extract here message format and status
                    SfActes[i].Commentaire_Interne__c += "\n" + dictionnaire[SfActes[i].Name];
                    SfActes[i].Statut_du_XML__c        = dictionnaire[SfActes[i].Name];
                    MessageBox.Show("data retrived ==> " + SfActes[i].Commentaire_Interne__c + " ; " + SfActes[i].Statut_du_XML__c);
                }
                // save update
                SaveResult[] saveResultsV2 = SfService.update(SfActes);  // deplcaer vers la fin
            }
            catch (Exception ex)
            {
                SfService = null;
                throw (ex); // you shall not pass
            }
        }