Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics CRM (Archived)

Get field value from Dynamics CRM 365 using WCF Service

(0) ShareShare
ReportReport
Posted on by Microsoft Employee

I have a requirement to create web service to get a records in dynamics crm. And there is a web application that will call this web service to display the records in it. In this case, i created WCF Service project. I have done writing the script for this WCF Service project. Since i haven't had an access to the CRM Server, i couldn't test this WCF Service. And this is the first time i write WCF Service. So i need an advice and correction whether my script is correct or is not.

This is my code:

Service1.svc.cs

namespace WCF_CRM_Multipolar
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
    // NOTE: In order to launch WCF Test Client for testing this service, please select Service1.svc or Service1.svc.cs at the Solution Explorer and start debugging.
    public class Service1 : IService1
    {

        OrganizationServiceProxy _orgservice;
        string userName = "";
        string passWord = "";
        string Url      = "";
        private bool InitializeCRMService(string userName, string passWord, string Url)
        {
            bool isSuccess = false;
            Uri organizationUrl = new Uri(Url);
            ClientCredentials credit = new ClientCredentials();
            credit.UserName.UserName = userName;
            credit.UserName.Password = passWord;
            _orgservice = new OrganizationServiceProxy(organizationUrl, null, credit, null);
            _orgservice.ServiceConfiguration.CurrentServiceEndpoint.EndpointBehaviors.Add(new ProxyTypesBehavior());

            if (_orgservice != null)
                isSuccess = true;
            return isSuccess;

        }
	public string BudgetBalance(string userlogin)
        {
            if (InitializeCRMService(userName, passWord, Url))
            {
                QueryExpression query = new QueryExpression("systemuser");
                string[] cols = { "businessunitid", "domainname" };
                query.Criteria = new FilterExpression();
                query.Criteria.AddCondition("domainname", ConditionOperator.Equal, userlogin);
                query.ColumnSet = new ColumnSet(cols);
                var userbusinessunit = _orgservice.RetrieveMultiple(query);
                Guid buid = (Guid)userbusinessunit[0].Attributes["businessunitid"];

                QueryExpression query1 = new QueryExpression("new_budget");
                string[] cols1 = { "owningbusinessunit", "new_selfremainbudget"};
                query1.Criteria = new FilterExpression();
                query1.Criteria.AddCondition("owningbusinessunit", ConditionOperator.Equal, buid);
                query1.ColumnSet = new ColumnSet(cols1);
                var budgetremaining = _orgservice.RetrieveMultiple(query1);

                
                Decimal remain_budget = budgetremaining[0].GetAttributeValue<decimal>("new_selfremainbudget");

                return "Latest budget available: " + remain_budget.ToString();
            }
            else
            {
                return "Failed to retrieve budge from crm";
            }
        }
    }
}


IService1.cs

namespace WCF_CRM_Multipolar
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService1
    {

        [OperationContract]
        string BudgetBalance(string userlogin);
       

        // TODO: Add your service operations here
    }


    // Use a data contract as illustrated in the sample below to add composite types to service operations.
      
}

 

The idea is when the web application call this web service, the web application fill the parameter (user login) and get the remain_budget as the return value. So they can use remain_budget and display it in web application.

The question:

When i deploy this to IIS. Is the web application can call this web service and get the return value ? If is not, could you tell me where is the error that i made


*This post is locked for comments

  • Suggested answer
    Aiden Kaskela Profile Picture
    Aiden Kaskela 19,694 on at
    RE: Get field value from Dynamics CRM 365 using WCF Service

    Hi Fikri,

    The deployment of your WCF app and the communication with CRM are independent. You can run the Service1 code as a Console App on your development machine and be able to query CRM without worrying about the WCF aspect. When your CRM logic is all good, then work on tying it into your WCF app.

    Hope this helps! I'd appreciate if you'd mark this as Answering your question.

    Thanks,

     Aiden

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Announcing Our 2025 Season 1 Super Users!

A new season of Super Users has arrived, and we are so grateful for the daily…

Vahid Ghafarpour – Community Spotlight

We are excited to recognize Vahid Ghafarpour as our February 2025 Community…

Tip: Become a User Group leader!

Join the ranks of valued community UG leaders

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 292,516 Super User 2025 Season 1

#2
Martin Dráb Profile Picture

Martin Dráb 231,317 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans