Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

1. Adım : Proje Oluşturulur

Proje oluşturmak için Proje oluşturma sayfasını inceleyebilirsiniz.  (Kullanıcı denetimi için Authentication Standart seçilmelidir. )

...

Burada override edilen metodlar kaldırılmalı. Logo CRM de kullanıcı ve rolleri ile ilgili işlemler yapıldığı için burada yapılması hataya sebep olacaktır.

8. Adım : Controller Eklenmesi

XAF Template Gallery kullanılarak XAF Controller dan View Controller Seçilir.

Code Block
languagec#
titleController
linenumberstrue
collapsetrue
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.Data.Filtering;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using DevExpress.ExpressApp.Editors;
using DevExpress.ExpressApp.Layout;
using DevExpress.ExpressApp.Model.NodeGenerators;
using DevExpress.ExpressApp.SystemModule;
using DevExpress.ExpressApp.Templates;
using DevExpress.ExpressApp.Utils;
using DevExpress.Persistent.Base;
using DevExpress.Persistent.Validation;
using Solution10.Module.BusinessObjects;
using logocrm.net.Module.BusinessObjects;

namespace Solution10.Module.Controllers
{
    public partial class Sample_Controller : ViewController
    {
		private static bool subs = false;
        public Sample_Controller()
        {
            InitializeComponent();
        }
        protected override void OnActivated()
        {
			//Hedefe bağlı olarak çeşitli görevleri gerçekleştirir.
            base.OnActivated();
              if (!subs)
            {
                ObjectSpace.ObjectChanged += ObjectSpace_ObjectChanged;
                subs = true;
            }
        }

        private void ObjectSpace_ObjectChanged(object sender, ObjectChangedEventArgs e)
        {
            if (e.PropertyName == "Firma")
            {
                BO_Sample sample = ((BO_Sample)View.CurrentObject);
                if (e.NewValue != null)
                {
                    sample.Name = ((MT_Firm)e.NewValue).FirmTitle + "_"; 
                }
                else
                {
                    sample.Name = "";
                }
                
            }
        }

        protected override void OnViewControlsCreated()
        {
			// Hedef Görünüm kontrolüne erişir ve özelleştirir.
            base.OnViewControlsCreated();
        }
        protected override void OnDeactivated()
        {
           // Önceden abone olunan etkinliklerden çıkar ve diğer referansları ve kaynakları serbest bırakır.
              if (subs)
            {
                ObjectSpace.ObjectChanged -= ObjectSpace_ObjectChanged;
                subs = false;
            }
            base.OnDeactivated();
        }
    }
}

9. Adım : Business Object setter Getter 

Set/Get ve  ImmediatePostData eklentilerileri yapılır. Controller ve İş nesneleri bütünüyle sunucuda yönetilir.

...

Code Block
languagec#
titleSample BO
linenumberstrue
collapsetrue
using System;
using System.Linq;
using System.Text;
using DevExpress.Xpo;
using DevExpress.ExpressApp;
using System.ComponentModel;
using DevExpress.ExpressApp.DC;
using DevExpress.Data.Filtering;
using DevExpress.Persistent.Base;
using System.Collections.Generic;
using DevExpress.ExpressApp.Model;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Persistent.Validation;
using logocrm.net.Module.BusinessObjects;

namespace Solution10.Module.BusinessObjects
{

 

    [DefaultClassOptions]
    //[ImageName("BO_Contact")]
    //[DefaultProperty("DisplayMemberNameForLookupEditorsOfThisType")]
    //[DefaultListViewOptions(MasterDetailMode.ListViewOnly, false, NewItemRowPosition.None)]
    //[Persistent("DatabaseTableName")]
    // Specify more UI options using a declarative approach (https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument112701).
    public class BO_Sample : BaseObject
    { // Inherit from a different class to provide a custom primary key, concurrency and deletion behavior, etc. (https://documentation.devexpress.com/eXpressAppFramework/CustomDocument113146.aspx).

        private string name;
        private MT_Firm firma;

        public BO_Sample(Session session)
            : base(session)
        {
        }

        public string Name { get => name; set => name = value; }

        [ImmediatePostData]
        public MT_Firm Firma
        {
            get
            {
                return firma;
            }
            set
            {
                SetPropertyValue("Firma", ref firma, value);
            }
        }

        public override void AfterConstruction()
        {
            base.AfterConstruction();
            // Place your initialization code here (https://documentation.devexpress.com/eXpressAppFramework/CustomDocument112834.aspx).
        }
        //private string _PersistentProperty;
        //[XafDisplayName("My display name"), ToolTip("My hint message")]
        //[ModelDefault("EditMask", "(000)-00"), Index(0), VisibleInListView(false)]
        //[Persistent("DatabaseColumnName"), RuleRequiredField(DefaultContexts.Save)]
        //public string PersistentProperty {
        //    get { return _PersistentProperty; }
        //    set { SetPropertyValue("PersistentProperty", ref _PersistentProperty, value); }
        //}

        //[Action(Caption = "My UI Action", ConfirmationMessage = "Are you sure?", ImageName = "Attention", AutoCommit = true)]
        //public void ActionMethod() {
        //    // Trigger a custom business logic for the current record in the UI (https://documentation.devexpress.com/eXpressAppFramework/CustomDocument112619.aspx).
        //    this.PersistentProperty = "Paid";
        //}
    }
}


10. Adım : Otomatik Deploy Tanımı


Sadece proje.Module çıktısı kullanılacaktır. Üretilen dll elle ya da aşağıdaki gibi otomatik olarak hedef dizine kopyalabilir.

...

xcopy /y $(ProjectDir)bin\release\$(SolutionName).Module.dll [Logo CRM Dizini]\bin Örneğin xcopy /y $(ProjectDir)bin\release\$(SolutionName).Module.dll C:\LogoCRM\bin xcopy /y $(ProjectDir)bin\debug\$(SolutionName).Module.dll C:\LogoCRM\bin xcopy /y $(ProjectDir)my_file.ini $(ProjectDir)$(OutDir)


Image RemovedImage Added

Diğer makrolar için ...

11. Adım : Logo CRM de Uyarlama Modül Tanımı

dll adını logo CRM kök dizini altında web.config içinde appsetting altında Module values olarak kaydedilir.

...

Proje.Module  build  alınır LogoCrm\bin dizini altına dll otomatik ya da elle kopyalanır.

12. Adım : Logo CRM Model Editör

Ürün Model Editöründen Uyarlama Ekranları Navigation bölümünde tanımlanmalı.

ModelEditör klasöründeki ModelEditor.bat dosyası çalıştırılmalı. 

Image RemovedImage Added

ListView ler Logo CRM navigation'a eklenir.

NavigationItems altında Items üzerinde Add/NavigationItem diyerek yeni bir NavigationItem eklenir.

Image RemovedImage Added


View alanında oluşturduğumuz BusinessObject'in ListView'i seçilir.

Image RemovedImage Added

13. Adım : IIS Tekrar Başlatma

Uyarlamanın Logo CRM de görebilmeniz için IIS ten restart yapmanız gerekir.

Image RemovedImage Added


14. Adım : Logo CRM Login

Aşağıdaki gibi ilk uyarlama projemizi Logo CRM uygulaması içerisinde görebiliriz.

Image RemovedImage Added