Разработка
18
Июл
0

Веб-страница для CRM 2011

Разберем пример простой ASPX-странички, которая использует веб-сервис IOrganizationService, для создания контактов в CRM 2011.

Нам понадобятся:

Поехали…

  1. Откройте Visual Studio 2010 и создайте новый проект веб-сайта ASP .NET Empty Web Site;
  2. Щелкните правой кнопкой мыши по веб-сайту — Add New Item. Добавьте Web Form (с именем index.aspx) и StyleSheet (с именем style.css);
  3. В index.aspx вставьте такой код:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="ContactEntry.index" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <link href="style.css" rel="Stylesheet" type="text/css" />
    </head>
    <body>
        <form id="form1" runat="server">
            <h3>
                <span>Контакт</span>
            </h3>
            <fieldset>
                <p class="first">
                    <label>Имя</label>
                    <asp:TextBox ID="firstName" runat="server"></asp:TextBox>
                </p>
                <p>
                    <label>Фамилия</label>
                    <asp:TextBox ID="lastName" runat="server"></asp:TextBox>
                </p>
                <p>
                    <label>Отчество</label>
                    <asp:TextBox ID="middleName" runat="server"></asp:TextBox>
                </p>
                <p>
                    <label>E-mail</label>
                    <asp:TextBox ID="email" runat="server"></asp:TextBox>
                </p>
                <p>
                    <label>Описание</label>
                    <asp:TextBox ID="description" runat="server" Columns="30" Rows="10" TextMode="MultiLine"></asp:TextBox>
                </p>
                <p class="submit">
                    <asp:Button ID="create" runat="server" Text="Создать" onclick="create_Click" />
                </p>
            </fieldset>
        </form>
    </body>
    </html>
    

    Этот код содержит определение простой HTML-формы ввода данных, состоящую из нескольких полей ввода и кнопки «Создать»;

  4. В файл style.css добавьте такой код:
    body
    {
        background: #f8f8f8;
        font: 13px Trebuchet MS, Arial, Helvetica, Sans-Serif;
        color: #333;
        line-height: 160%;
    }
    #form1
    {
        margin: 1em 0;
        color: #fff;
        width: 350px; /* customize width, this form have fluid layout */
    }
    h3
    {
        margin: 0;
        background: #57a700;
        color: #fff;
        font-size: 20px;
        border: 1px solid #57a700;
        border-bottom: none;
    }
    h3 span
    {
        display: block;
        padding: 10px 20px;
    }
    fieldset
    {
        margin: 0;
        padding: 0;
        border: none;
        border-top: 3px solid #000;
        background: #000;
        padding-bottom: 1em;
    }
    p
    {
        margin: .5em 20px;
    }
    label
    {
        display: block;
    }
    input, #form1 textarea
    {
        width: 302px;
        border: 1px solid #111;
        background: #282828;
        padding: 5px 3px;
        color: #fff;
    }
    textarea
    {
        height: 125px;
        overflow: auto;
    }
    p.submit
    {
        text-align: right;
    }
    #create
    {
        padding: 0 20px;
        height: 32px;
        line-height: 32px;
        border: 1px solid #70ad2e;
        background: #5aae00;
        color: #fff;
        cursor: pointer;
        text-align: center;
        width: 100px;
    }
    

    Здесь просто набор стилей для нашей странички;

  5. Перейдите в представление Design основного окна и дважды щёлкните на кнопке – это создаст и откроет метод create_Click в коде, который будет обрабатывать клик на кнопке. Добавьте следующий код внутрь метода create_Click:
    // Логинимся под текущем пользователем
    ClientCredentials Credentials = new ClientCredentials();
    Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
                
    // URL сервера и организации
    Uri OrganizationUri = new Uri("http://crm2011:5555/superfirma/XRMServices/2011/Organization.svc");
    Uri HomeRealmUri = null;
                
    // OrganizationServiceProxy
    using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
    {
        IOrganizationService service = (IOrganizationService)serviceProxy;
                    
        // Определяем объект Контакт
        Entity contact = new Entity("contact");
        contact["firstname"] = firstName.Text.ToString();
        contact["lastname"] = lastName.Text.ToString();
        contact["middlename"] = middleName.Text.ToString();
        contact["emailaddress1"] = email.Text.ToString();
        contact["description"] = description.Text.ToString();
        Guid newContactId = service.Create(contact);
                    
        // очищаем текстовые поля
        firstName.Text = "";
        lastName.Text = "";
        middleName.Text = "";
        email.Text = "";
        description.Text = "";
    }
    
  6. Добавьте в проект следующие сборки:
    • Microsoft.Xrm.Sdk;
    • Microsoft.crm.sdk.proxy;
    • System.Runtime.Serialization;
    • System.ServiceModel.

    А в начало файла Default.aspx.cs следующие определения using:

    using System.ServiceModel.Description;
    using Microsoft.Xrm.Sdk.Client;
    using System.Net;
    using Microsoft.Xrm.Sdk;
    using System.Runtime.Serialization;
    





  1. Создайте для сайта в папке C:\inetpub\ новую папку, назовите ее, например, ContactCreate.
    Вернитесь в VS и опубликуйте сайт в созданную папку. Для этого в меню выберите Build – Publish ContactEntry и укажите путь к созданной папке;
  2. Создайте в IIS новый сайт на не занятом порту. Для сайта сделайте следующие настройки:
    • Для Application Pool: 4 .Net в классическом режиме и запуск под Network Services;
    • Аутентификация сайта: включите Анонимную, .Net и Windows аутентификацию;
    • В Default Document добавьте index.aspx.




Готово. Откройте в браузере созданный сайт (http://<имя_сервера>/<порт>), введите информацию по контакту и жмите Создать.


Комментарии (0)

*

code