• Nayana Pawar 5
  • NEWBIE
  • 0 Points
  • Member since 2015

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 12
    Questions
  • 7
    Replies
I am using a process builder to assign value to child from the parent object.
I have one relevant field on both,but having different data types so I am facing the issue.
Parent Field data type: Text (skdate_finish__c)
Chid Field data type : Datetime (Invoice_Finish__c)
User-added image
By using the formula I am trying to get the value : DATETIMEVALUE(skdate_finish__c) This is not working for me.
Please help me to solve this issue.
Hi All,
I have two objects Account & Patient. Patient having look up relationship with Account.
(One to one relationship)
Some fields are common in both.
In my case user can update those fields from both object.
I have written trigger to update account fields on Patient object.
And process builder to update patient fields on Account Object.
When I am trying to update patient record I am getting this error:
Error Occurred: UPDATE --- UPDATE FAILED --- ERRORS : (SELF_REFERENCE_FROM_TRIGGER) Object (id = a0cO000000CfogI) is currently in trigger LockRecord, therefore it cannot recursively update itself,

down votefavorite

Please help me.

I have a salesforce requirement that necessitates a callout from Apex to an external web service that receives signed OAuth responses.

I am getting oAuth_token successfully. But after that when I am trying to get data using that oAuth_token I am getting error 'signature_invalid'.

Check getAccData method from code as below.

        global class OAuthToken
        {
            private OAuthService__c service;
            private String token;
            private String tokenSecret;
            private Boolean isAccess = false;
            private String verifier;
            private String nonce;
            private String timestamp;
            private String signature;
            private String consumerKey;
            private String consumerSecret;    
            private Map<String,String> parameters = new Map<String,String>();    
            public String message { get; set; }
            public String callbackUrl {get; set; }
            public void setConsumerKey(String value) { consumerKey = value; }
            public void setConsumerSecret(String value) { consumerSecret = value; }
            
            public String newAuthorization(String serviceName)
            {        
                service = [SELECT request_token_url__c, access_token_url__c, consumer_key__c,consumer_secret__c, authorization_url__c,
                                  (select token__c, secret__c, isAccess__c FROM tokens__r WHERE owner__c=:UserInfo.getUserId() ) 
                                  FROM OAuthService__c WHERE name = :serviceName];
                                  
                if(service==null)
                 {
                    System.debug('Couldn\'t find Oauth Service '+serviceName);
                    message = 'Service '+serviceName+' was not found in the local configuration';
                    return null;
                 }
                
                 if(callbackUrl==null) 
                 { 
                    if(ApexPages.currentPage()==null || ApexPages.currentPage().getHeaders().get('Host')==null) {
                        message = 'No callback page was set and it couldn\'t be generated from Apex context';
                        System.debug(message);
                        return null;
                    }
            
                    callbackUrl = EncodingUtil.urlEncode('https://'+ApexPages.currentPage().getHeaders().get('Host')+
                                                         Page.CompleteAuth.getUrl(),'UTF-8');
                 }
                 
                Http h = new Http();
                HttpRequest req = new HttpRequest();
                req.setMethod('POST');
                req.setEndpoint('https://www.gliffy.com/api/1.0/accounts/5023581/users/nileshbhd5@gmail.com/oauth_token.xml?action=create&description=createuser');//service.request_token_url__c        
                req.setTimeout(12000);
                System.debug('Request body set to: '+req.getBody());
                consumerKey = service.consumer_key__c;
                consumerSecret = service.consumer_secret__c;
                sign(req);
                HttpResponse res = null;        
                res = h.send(req);    
                String XMLString = res.getBody();
                parseXML(XMLString); 
                
                System.debug('Response from request token request: ('+res.getStatusCode()+')'+res.getBody());
                if(res.getStatusCode()>299) {
                    message = 'Failed getting a request token. HTTP Code = '+res.getStatusCode()+
                              '. Message: '+res.getStatus()+'. Response Body: '+res.getBody();
                    return null;
                }
                String resParams = serviceName == 'test1234' ?'oauth_token=token&oauth_token_secret=token_secret' : res.getBody();
                Map<String,String> rp = getUrlParams(resParams);
                OAuth_Token__c t = new OAuth_Token__c();
                t.owner__c = UserInfo.getUserId();
                t.OAuth_Service__c = service.id;
                t.token__c = token;
                t.secret__c = tokenSecret;
                t.isAccess__c = false;
                delete service.tokens__r;
                insert t;

                System.debug('Got request token: '+t.token__c+'('+rp.get('oauth_token')+')');
                
                if(service.authorization_url__c.contains('?')) {
                string getAccountURL = 'https://www.gliffy.com/api/1.0/accounts/5023581/users.xml?action=get'+'&oauth_token='+token;
                    return getAccountURL;
                } else {
                    return service.authorization_url__c+'?oauth_token='+EncodingUtil.urlDecode(t.token__c,'UTF-8')+'&oauth_consumer_key='+service.consumer_key__c;
                }
            }
            
            
             public String getAccData(String authUrlName)
             {
               service = [SELECT request_token_url__c, access_token_url__c, consumer_key__c,consumer_secret__c, authorization_url__c,
                                  (select token__c, secret__c, isAccess__c FROM tokens__r WHERE owner__c=:UserInfo.getUserId() ) 
                                  FROM OAuthService__c WHERE name = :'Gliffy'];
              if(service==null)
                 {
                    System.debug('Couldn\'t find Oauth Service '+'Gliffy');
                    message = 'Service '+'Gliffy'+' was not found in the local configuration';
                    return null;
                 }
                 
               if(callbackUrl==null) 
                 { 
                    if(ApexPages.currentPage()==null || ApexPages.currentPage().getHeaders().get('Host')==null) {
                        message = 'No callback page was set and it couldn\'t be generated from Apex context';
                        System.debug(message);
                        return null;
                    }
            
                    callbackUrl = EncodingUtil.urlEncode('https://'+ApexPages.currentPage().getHeaders().get('Host')+
                                                         Page.CompleteAuth.getUrl(),'UTF-8');
                 }
                                  
                Http h = new Http();
                HttpRequest req = new HttpRequest();
                req.setMethod('POST');
                req.setEndpoint(authUrlName);
                req.setTimeout(12000);
                consumerKey = service.consumer_key__c;
                consumerSecret = service.consumer_secret__c;
                sign(req);
                HttpResponse res = null;
                res = h.send(req);
                String XMLString = res.getBody();
                system.debug('Accountdata String:'+XMLString );
                return XMLString;
             }
            
            private void refreshParameters() 
            {
                parameters.clear();
                parameters.put('oauth_consumer_key',consumerKey);
                if(token!=null) {
                    parameters.put('oauth_token',token);
                }
                if(verifier!=null) {
                    parameters.put('oauth_verifier',verifier);
                }
                parameters.put('oauth_signature_method','HMAC-SHA1');
                parameters.put('oauth_timestamp',timestamp);
                parameters.put('oauth_nonce',nonce);
                parameters.put('oauth_callback',callbackUrl);
            }
            
            public void sign(HttpRequest req) 
            {
                
                nonce = String.valueOf(Crypto.getRandomLong());
                timestamp = String.valueOf(DateTime.now().getTime()/1000);
                refreshParameters();        
                String s = createBaseString(parameters, req);        
                      
                Blob sig = Crypto.generateMac('HmacSHA1', Blob.valueOf(s), 
                               Blob.valueOf(consumerSecret+'&'+
                                            (tokenSecret!=null ? tokenSecret : '')));
                signature = EncodingUtil.urlEncode(EncodingUtil.base64encode(sig), 'UTF-8');
                System.debug('Signature: '+signature);
                
                String header = 'OAuth ';
                for (String key : parameters.keySet()) {
                    header = header + key + '="'+parameters.get(key)+'", ';
                }
                header = header + 'oauth_signature="'+signature+'"';
                System.debug('Authorization: '+header);
                req.setHeader('Authorization',header);
            }
          
          private String createBaseString(Map<String,String> oauthParams,HttpRequest req) 
            {
                Map<String,String> p = oauthParams.clone();
                if(req.getMethod().equalsIgnoreCase('post') && req.getBody()!=null && 
                   req.getHeader('Content-Type')=='application/x-www-form-urlencoded')
                   {
                    p.putAll(getUrlParams(req.getBody()));
                }
                String host = req.getEndpoint();
                Integer n = host.indexOf('?');
                if(n>-1) {
                    p.putAll(getUrlParams(host.substring(n+1)));
                    host = host.substring(0,n);
                }
                List<String> keys = new List<String>();
                keys.addAll(p.keySet());
                keys.sort();
                String s = keys.get(0)+'='+p.get(keys.get(0));
                for(Integer i=1;i<keys.size();i++) {
                    s = s + '&' + keys.get(i)+'='+p.get(keys.get(i));
                }

                return req.getMethod().toUpperCase()+ '&' + 
                    EncodingUtil.urlEncode(host, 'UTF-8') + '&' +
                    EncodingUtil.urlEncode(s, 'UTF-8');
            }
          
          private Map<String,String> getUrlParams(String value) 
            {
                Map<String,String> res = new Map<String,String>();
                if(value==null || value=='')
                {
                    return res;
                }
                for(String s : value.split('&')) 
                {
                    System.debug('getUrlParams: '+s);
                    List<String> kv = s.split('=');
                    if(kv.size()>1) {              
                      String encName = EncodingUtil.urlEncode(EncodingUtil.urlDecode(kv[0], 'UTF-8'), 'UTF-8').replace('+','%20');
                      String encValue = EncodingUtil.urlEncode(EncodingUtil.urlDecode(kv[1], 'UTF-8'), 'UTF-8').replace('+','%20');
                      System.debug('getUrlParams:  -> '+encName+','+encValue);
                      res.put(encName,encValue);
                    }
                }
                return res;
            }
          
        }
Hello All,

Please help me.
I am trying to integrate salesforce with external web app (Gliffy) using API.
I am done with Oauth 1.0 oauth_signature generation and header creation for the authentication of external system but when I pass those parameters to request token I am getting this error in response.

I have created self-signed certificate in salesforce but I cann't install that on Gliffy server.
So I am unable to find out solution on this.

let me know if anyone have solution for this.

 
Need to connect to Gliffy using Oauth in salesforce. Can anyone please help me regarding this. From where I can start? I have read some information related to this so I understand that I need to create connected up but I am confused. Where I can test this & what is Callback URL,oauth_token.

Please help me.
Hi All,
I have one query related to lead assignment. Once I assign some leads to particular lead queue, how does the queue distribute assigned leads?
Please help me for this.
I am using the Gravity form to get leads from the web site but unable to pass ownerId from WordPress to SF.

I have created one hidden field in Gravity form having default value. All field values are getting correctly into SF except ownerId.
I need to calculate rating for custom field having datatype Formula,It's value depend on three other field values and  need to calculate value on the basis of rule.
For this I need Temporary variables in formulas.
We have the Professional Edition of salesforce so can't use an Apex trigger to calculate this value.

Can anyone please suggest me solution for this.
I have created HTML template with merge field. But I am unable to access that field value. I am using contact First name as a merge field. After sending mail it looks: Hi {!Contact.FirstName},

Can anyone please help me for this.
Hello All,

Need help to display a dependent picklist in Visualforce page.
I have two picklist fields which are dependent fields. I want to show them on VF page and make picklist dependent.

Is there any way to do this.
Please help me.
Can anyone please help me to solve my issue.
I have created apex trigger with test classes. I am not getting any error after test run but unable to getting any code coverage. Please check below is my apex trigger and test class.

                trigger getAllContacts on Scheme__c (after insert,after update)
                {
                    List<ANZSIC_Contact__c> acc = new List<ANZSIC_Contact__c>();
                    for(Scheme__c scheme :trigger.new)
                    {
                        Id devRecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByName().get('Underwriter').getRecordTypeId();
                        if(scheme.Account__c != null && scheme.Account__r.RecordTypeId== devRecordTypeId )
                        {
                            List<Contact> con = new List<Contact>();
                            con = [select Id,Email,Phone from contact where Account.Id =:scheme.Account__c];
                            for(Contact c:con)
                            {
                                acc = [select Id from ANZSIC_Contact__c where Contact__c =:c.Id and Scheme__c =:scheme.Id];
                                if(acc ==Null)
                                {
                                    ANZSIC_Contact__c ac = new ANZSIC_Contact__c();
                                    ac.Contact__c = c.Id;
                                    ac.Scheme__c = scheme.Id;
                                    ac.Email__c = c.Email;
                                    ac.Phone__c = c.Phone;
                                    acc.add(ac);
                                }
                                else
                                {
                                
                                }
                            }
                            insert acc;
                        }
                    }
                }

                @isTest(seeAllData=false)
                private class Test_getAllContacts
                {
                    static testMethod void getAllContacts()
                    {
                        test.startTest();
                        RecordType businessAccountRecordType = [SELECT Id FROM RecordType WHERE SobjectType='Account' AND Name = 'Underwriter'];
                        Account acc = new Account();
                        acc.Name = 'Test Account';
                        acc.RecordTypeId = businessAccountRecordType.Id;
                        insert acc;Contact con = new Contact();
                        con.LastName = 'Test data';
                        con.AccountId = acc.Id;
                        con.Email ='n@yahoo.in';
                        con.Phone = '987654321';
                        insert con; Scheme__c  sh = new Scheme__c();
                        sh.Account__c = acc.Id;
                          test.stopTest();
                    }
                }
 
I have created salesforce custom object and need to send the records from this object to the MySQL database.
Please help!!
I am using a process builder to assign value to child from the parent object.
I have one relevant field on both,but having different data types so I am facing the issue.
Parent Field data type: Text (skdate_finish__c)
Chid Field data type : Datetime (Invoice_Finish__c)
User-added image
By using the formula I am trying to get the value : DATETIMEVALUE(skdate_finish__c) This is not working for me.
Please help me to solve this issue.
Need to connect to Gliffy using Oauth in salesforce. Can anyone please help me regarding this. From where I can start? I have read some information related to this so I understand that I need to create connected up but I am confused. Where I can test this & what is Callback URL,oauth_token.

Please help me.
Hello All,

Need help to display a dependent picklist in Visualforce page.
I have two picklist fields which are dependent fields. I want to show them on VF page and make picklist dependent.

Is there any way to do this.
Please help me.
Can anyone please help me to solve my issue.
I have created apex trigger with test classes. I am not getting any error after test run but unable to getting any code coverage. Please check below is my apex trigger and test class.

                trigger getAllContacts on Scheme__c (after insert,after update)
                {
                    List<ANZSIC_Contact__c> acc = new List<ANZSIC_Contact__c>();
                    for(Scheme__c scheme :trigger.new)
                    {
                        Id devRecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByName().get('Underwriter').getRecordTypeId();
                        if(scheme.Account__c != null && scheme.Account__r.RecordTypeId== devRecordTypeId )
                        {
                            List<Contact> con = new List<Contact>();
                            con = [select Id,Email,Phone from contact where Account.Id =:scheme.Account__c];
                            for(Contact c:con)
                            {
                                acc = [select Id from ANZSIC_Contact__c where Contact__c =:c.Id and Scheme__c =:scheme.Id];
                                if(acc ==Null)
                                {
                                    ANZSIC_Contact__c ac = new ANZSIC_Contact__c();
                                    ac.Contact__c = c.Id;
                                    ac.Scheme__c = scheme.Id;
                                    ac.Email__c = c.Email;
                                    ac.Phone__c = c.Phone;
                                    acc.add(ac);
                                }
                                else
                                {
                                
                                }
                            }
                            insert acc;
                        }
                    }
                }

                @isTest(seeAllData=false)
                private class Test_getAllContacts
                {
                    static testMethod void getAllContacts()
                    {
                        test.startTest();
                        RecordType businessAccountRecordType = [SELECT Id FROM RecordType WHERE SobjectType='Account' AND Name = 'Underwriter'];
                        Account acc = new Account();
                        acc.Name = 'Test Account';
                        acc.RecordTypeId = businessAccountRecordType.Id;
                        insert acc;Contact con = new Contact();
                        con.LastName = 'Test data';
                        con.AccountId = acc.Id;
                        con.Email ='n@yahoo.in';
                        con.Phone = '987654321';
                        insert con; Scheme__c  sh = new Scheme__c();
                        sh.Account__c = acc.Id;
                          test.stopTest();
                    }
                }