cub-e.net

just coding...

Dynamics 365 UK Community Event in London on 26th-27th January 2018

Dynamics 365 Saturday is a free Technical & Strategy Event Organised by the Microsoft Dynamics Community MVP’s For CRM and ERP professionals, technical consultants & developers. Learn & share new skills whilst promoting best practices, helping organisations overcome the challenges of implementing a successful digital transformation strategy with Microsoft Dynamics 365.

Dynamics 365 Saturday will replace CRM Saturday to provide a single platform to serve the whole Dynamics 365 community, the core customer experience values and ethics of CRM Saturday will continue to live on through 365 Saturday with the rest of the Dynamics Community.

I and Ramon Tebar (Investec CRM Solution Architect) will share their knowledge on Dynamics 365 in Hackathon on 26th January also they have a session in this event on 27th January. Session name is “Dynamics 365 V9 New Features & Deprecations” in Theatre 1 between 10:00 and 11:00.

Their session focuses on who interested in taking the plunge to “code”. The session will be covering all development structure. Attendees can easily see the difference between versions from a development perspective and will be particularly helpful for those who work on upgrade projects.

DirectionsEMEA 2017 Madrid – Development on Dynamics 365 CRM

Directions EMEA is an independent conference for Microsoft Dynamics partners from the ERP and CRM channels focusing on the SMB market. It is organized by partners for partners. The conference is where Microsoft Dynamics Partners go to learn first-hand from Microsoft about the Microsoft Dynamics Roadmap and new features of the latest Dynamics NAV version (Tenerife). Following the concept of integrating CRM and ERP within Dynamics 365, Directions EMEA also offers a deep insight into Microsoft Dynamics 365 BE for Finance and Operations, Microsoft Dynamics 365 BE for Sales and Microsoft Dynamics 365 BE for Marketing, as well as ensures a comprehensive understanding of the Cloud Solution Provider program.

Directions EMEA brings together over 2000 developers, implementers, technical experts, sales, marketing and executive/owner representatives from Microsoft Dynamics Partners. For independent software vendors, the event is a unique opportunity to show their solutions to the largest Microsoft Dynamics Partner forum and demonstrate their readiness for Dynamics 365 BE as SaaS providers.

The Directions conference provides the Dynamics community with a forum for knowledge sharing, networking and discovering new opportunities for future growth and collaboration. It is a must-attend event where partners can enhance and build their networks to reach a broader SMB market, learn about the latest product developments and tools, as well as enrich their operational and technical knowledge.

Since 2008 Directions EMEA has grown year by year. In 2016, it attracted almost 1800 attendees from 580 companies as well as 60 sponsors. 2017 is the 10th annual conference and will take place in Madrid on October 4 – 6, 2017.

Our CEO Baris Kanlica has a session in this event on 6th October Friday in Venecia room. Session name is  “Dynamics 365 new development features and deprecations” and it is is focused on those new to CRM development or CRM administrators interested in taking the plunge to “code” customization. The session will be covering all development structure of the Dynamics platform since version 2011. Attendees can easily see the difference between versions from a development perspective and will be particularly helpful for those who work on upgrade projects.

See you there :)

https://mawens.co.uk/directionsemea-2017-madrid-development-on-dynamics-365-crm/

Managing Complex CRM Scenarios by Using the SolutionPackager Tool


In enterprise scenarios, it is a common requirement to be able to deliver common or separate CRM modules to separate business units according to an enterprise-level or separate roll-out timeline.

The typical challenges of this scenario result from parallel development tracks and frequent changes to enterprise projects, which require the greatest degree of flexibility in every aspect:

§ Sharing common code/customization base

§ Managing solution layering and dependencies

§ Managing localization

§ Managing changes in layering (moving items to common or back, customizing common elements locally)

§ Versioning common and local solutions

§ Parallel development on multiple solutions, multiple solution-layer setups, and multiple versions of a solution

§ Central repository of every/any solution

§ Test and deploy all possible or required combination of solution layers

§ Managing solution branch and merge

§ Regression testing changes and impacts across solutions and branches

§ Common, single versioning of all solution elements

Development and Version Control

You need streamlined and common techniques of development and repository management for complex enterprise deliveries. The standard features of Microsoft Team Foundation Server serve as the basis of larger application delivery management scenarios:


§ ALM

§ Debugging and diagnostics

§ Testing tools

§ Architecture and modeling

§ Database development

§ Integrated development environment

§ Build management and automation

§ Version control

§ Test case management

§ Work item tracking

§ Reports and dashboards

§ Lab management


When working with multiple development teams developing multiple solutions and versions in parallel on an enterprise delivery, the following base process is minimally recommended:


§ Developers should have isolated VMs to work on either hosted locally or centrally to share infrastructure between team members. Every developer work-item needs to be committed to the TFS environment (integration environment).

§ The development lead is in charge of making sure that the developments (customizations, configurations, and custom source files) can integrate in the integration environment without any side effects.

§ The TFS source control should be considered as the central repository for all solution items:

§ All CRM customizations (Entities, forms, views, workflows, templates, web resources, etc.)

§ Base data

§ Source codes and projects for custom components

o Plug-ins, custom activities

o Custom web applications

o Custom .Net components

o Custom services and other external components

o Web resource files


§ External components and references (SDK, Enterprise Library, etc.)

§ Unit test source codes for above components

§ Automated test sources for the entire application

§ Setup package for the entire application

§ Deployment scripts for the packages

§ Build definition for the entire application

The customer requirements and the work-item break-down should be stored in TFS work-item management. This way the development check-ins can be connected to the work-items, and the built-in development tracking and reporting functions of TFS can be leveraged. You will also be able to use the change-impact analysis functions of TFS for risk analysis and selecting the regression test scenarios for a specific change-set.

In multi-feature and multi-team scenarios you usually need multiple development and test environments, probably using different versions of the application. The TFS build automation and lab management functions provide the necessary toolset for managing daily build and deployment steps. You find more details about the topic in the Build and Test sections.

Version Control Process

The CRM customizations are out-of-the-box bound to a single CRM solution zip file, which requires special techniques to manage as part of a source control system.

The SolutionPackager tool (see Use the SolutionPackager Tool to Compress and Extract a Solution File) is designed to unpack (split) a solution .zip file into a broad set of files within folders by entity name. The breakout into files enables that modifications to different components will not cause changes to occur in the same files. For example, modifying an entity Form and a View would result in changes in different files (hence no conflicts to resolve). Pack will take the files from disk and glue them back together to construct a managed or unmanaged .zip file.

The development process for Solution Packages with the SolutionPackager tool is illustrated in the following graphic.



 


The developer works on his/her daily environment to work on the CRM development task allocated. Before starting a work item the developer (or the build master) gets the latest version of customization tree from TFS and uses the SolutionPackager tool to create the solution zip file. The developer (or the build master) deploys the latest solution package on the development environment. The same solution can also be deployed to the test CRM environment.


At the end of a day or after finishing a work item, the developer exports the solution zip file from the development environment. Executing the SolutionPackager tool on the zip file will generate the separate customization elements of the entire solution. The customization files need to be checked out and checked-in individually only when changed.

The Visual Studio project may be created manually. The SolutionPackager tool will automatically create the folder structure below that (the unpack script need to be executed in the solution project folder).

Manual Steps

The current version of SolutionPackager tool provides the basic functionality to convert the packaged customization zip file to a version controllable folder structure. The following manual steps are still needed by the developers or test leads to be able to maintain the source tree:

1.   Check-in check-out of specific customization elements, which will be affected by a work-item change.

2.   Execute the pack/unpack operation manually and selecting the changed customization elements (Note: this can be integrated into the clean and deploy process of the Developer Toolkit).

3.   Taking care of the managed and unmanaged version of components at check-in time.

4.   Managing the assembly versioning (FQ strong names) of plug-ins used by a CRM solution.

5.   Managing RibbonDiffXML (merging changes).

The following techniques may be used to further support the version control process:

§ Removing assembly strong names from customization files to be able to track only the real changes.

§ Some schema parts are reordered randomly during solution import-export; these elements may be ordered alphabetically to more convenient source control tracking.

Localization Challenges

Enterprise CRM projects usually face the requirement of supporting multiple locales. Although CRM has OOB support for localization, it is always a challenge to provide full solution localization because different components required different localization strategies, and the explosion of components may be required.

Localization of some specific CRM components is currently not supported or not applicable. For example:


§ Workflows

§ Dialogs

§ Templates


CRM Developer Toolkit

§ Roles & FLS profiles

§ Plug-in assemblies


The CRM Developer Toolkit may be used for daily developer work for creating streamlined plug-ins, generating codes, solutions, and accessing CRM customization pages. The source code should be checked in directly under TFS. The applied customizations can be exported, unpacked from the CRM organization, and the specific changed elements can be checked in manually.

Note: The Developer Toolkit can support the process of packing and unpacking by turning on the ability to export a CRM Solution as part of the local deployment process.

Sitemap, Ribbon Editor

The CRM customization system only supports editing the sitemap and ribbon definition manually as xml files, after a manual export and followed by an import operation. The SiteMap and Ribbon Editor tools provide a graphical UI for executing these types of customizations.

These tools can be also combined with the unpacked structure:

§ Sitemap.xml is unpacked into a separate xml file and can be directly edited by SiteMap Editor.

§ The Ribbon Editor supports editing directly on a CRM environment, so developers need to edit on the server and then unpack the solution zip file and check-in the changes.

Daily Developer Work

The developers should use unmanaged solutions and shared configuration environments during development time. One developer usually works on one solution (either CRM or other Visual Studio solution), but multiple developers can work on the same solution in parallel.

 

The developer environments should be typically updated on a per-day basis using the last successful build. You should consider the best environment allocation and setup strategy for your team, depending on the actual project and team setup (see Deployment and Test).

The developers typically use standard CRM customization UI for executing their daily work. They create CRM customization elements (entities, screens, ribbons, views, dialogs, plug-in registrations, etc.). They may use Visual Studio for creating custom developed plug-ins, web applications, or other components, and may also use other external tools such as resource editors, designers, sitemap, ribbon, and metadata editor for CRM.

The editing of external components and resources can be typically executed offline on the developer machine after executing the TFS check-out operation (VS built-in editors usually manages check-out automatically).

Just before the check-in, they need to export the solution from the CRM environment and execute a special batch file per solution, which will unpack the customization file.

Developers need to take care of the actual check-in. They need to be aware of the executed changes and which schema members it affected. Only the changed elements need to be checked-in, and there are also special cases when the check-in elements need also to be merged back or compared to the previous version (for example, ribbonDiffXml).

Before the actual check-in operation, the developer must get the latest sources and create a local build, including a solution package, to deploy and test in the development environment; this is the recommended practice for quality check-ins. This process may be also supported by the Gated Check-in or Continuous Integration feature of TFS.

The daily development process is illustrated in the following figure.



 

Build Automation

The build process can be automated using the standard TFS build agent. The build agent is a Windows service that executes the processor-intensive and disk-intensive work associated with tasks such as getting files from and checking files into the version control system, provisioning the workspace for the builds, compiling the source code, and running tests.

 


A typical build process consists of the following steps:

1.   Getting the build definition (You may have multiple parallel projects/builds.)

2.   Update build number (solution versioning)

3.   Prepare build context

a.   Create drop location

b.   Get build agent

c.Get build directory and initialize workspace

4.   Get source files

5.   Compile sources and create setup packages

6.   Run unit tests

7.   Process test results

8.   Drop build and notify

The build process may be extended further by automated deployment and testing (for more details see the Build, Test and Deployment sections):

§ Rollback test environments

§ Deploying setup packages to test environments

§ Executing automated test steps/schedule manual test scenarios






Offline Build Process

The offline build process is designed as an independent build flow enabled to execute the building of a whole CRM solution package without a running instance of Dynamics CRM. The offline build process leverages the static schema of the solution elements and customization files (see Development and Version Control).

 




The build process can be easily extended to use the SolutionPackager tool. The CRM Solution Builder project template and target file samples can be used to integrate the pack operation into the daily build process (see CRM Solution Builder).

During the build process, the Visual Studio standard projects will be compiled, built, and dropped as defined in the build and project definitions.

Building the CRM customization project will trigger the pack operation will the up-to-date customization source tree (see solution tree structure above). All customizations will be merged together as a single customization.xml and solution.xml file. The previously built solution resources and assemblies can be included directly in the solution package.

Note: ILMerge operation may be required to make DB-registered assemblies work with referenced assemblies.

Automating Deployment

The deployment automation of packed CRM solution can be executed identically to standard CRM solution deployment.

On enterprise projects the following scenarios can cover the typical deployment requirements:

§ Automated deployment of development environments, test environments, and integration environments

§ Offline setup packages and scripts to enable deployment to acceptance and production environment as a sandbox

§ Rollback environments to a baseline (both CRM components and the CRM database)

o May already contain existing solutions and possible CRM Update Rollups

§ Deploying CRM solutions

§ Deploying CRM base data and custom security roles

§ Additional configuration of the organization, BU, and user settings using the CRM API

Note: For further details on CRM automated deployment process see the Test and Deployment sections.

Managed/Unmanaged Solutions

The version control differences between managed and unmanaged solutions are already described in Managing Version Requirements section. The SolutionPackager tool will process and unpack both types of solutions. The unpack process will create the differencing elements with “managed” postfix for easier version control management.


The general recommendations for using managed or unmanaged solutions:

§ Use unmanaged solutions for development.

§ Use managed solutions for all downstream environments.

§ Use as few solutions as possible for easier management.

§ Customize existing managed solutions as little as possible.

§ Execute integration tests using managed solutions frequently to test and address possible collisions.

§ Test managed solution combinations for every possible or supported scenario.

CRM Saturday Zurich

I'm pleased to announce that I'm one of the presenters in CRM Saturday Zurich which will be held 13th April at the Microsoft Switzerland.

About my session:

Dynamics 365 new development features and deprecations
Saturday, May 13
 | 10:15 PM - 11:00 PM
 | Room 3

Format: Presentation
Level: Intermediate

Looking to extend or write your first code to your Dynamics CRM environment? This session is focused on those new to CRM development or CRM administrators interested in taking the plunge to "code" customization. Covering all development structure of the Dynamics platform since version 2011. Attendees can easily see the difference between versions from a development perspective and particularly helpful for those who work on upgrade projects.

About CRM Saturday:

CRM Saturday is a Non Profit Technology Event Sponsored by Microsoft and Organised by the Microsoft Dynamics and CRM Community. It provides Organisations and Microsoft professionals a unique opportunity to keep up to date with the many platform changes and come together to discuss the challenges often faced during CRM implementation and digital transformation with fellow Industry experts. Get ready for an action packed day with over 15 sessions by speakers from around the world including many Microsoft MVP's and industry experts.

You can find more detail in here : http://www.spsevents.org/city/Zurich/Zurich2017/home

Join Us at Summit EMEA 2017

I'm pleased to announce that I'm one of the presenters in Summit EMEA 2017 which will be held 4-6 April at the RAI Amsterdam.

About my session:

Development on Dynamics 365/CRM
Tuesday, April 4
 | 2:00 PM - 3:00 PM
 | Room: G110

Format: Presentation
Level: Intermediate

Looking to extend or write your first code to your Dynamics CRM environment? This session is focused on those new to CRM development or CRM administrators interested in taking the plunge to "code" customization. Covering all development structure of the Dynamics platform since version 2011. Attendees can easily see the difference between versions from a development perspective and particularly helpful for those who work on upgrade projects.

About Summit EMEA:

Summit EMEA 2017 will be held 4-6 April at the RAI Amsterdam. Summit EMEA provides Microsoft Dynamics users with best-in-class education on how to maximise the performance of Microsoft CRM, Dynamics AX, Dynamics NAV, and Power BI products. This event welcomes IT executives and end users from organizations using Microsoft Dynamics for learning and collaboration in a trustworthy environment.

This community-driven conference features special access to Microsoft leadership and a diverse array of interactive training workshops led by experts and users. Session topics include:

·         BI & Reporting

·         CRM Cloud Extensions

·         Developer

·         Leadership & User Adoption

·         Microsoft Dynamics 365

·         Power User

·         User Showcase

·         Partner Solutions Showcase

Sessions are currently available online. View session details, descriptions, and speaker information.

Interested in Power BI? There will also be three full days of Power BI sessions available to attendees. View Power BI sessions.

This event is brought to you by AXUG, CRMUG, NAVUG, and PBIUG. These User Groups are the world's most influential communities of Dynamics users, business leaders, IT professionals, developers, and partners - with members sharing a common goal to maximize and advance the performance of their Dynamics investment.

Register today! Begin your conference registration.


Join Your Microsoft Dynamics Peers at Summit EMEA 2017

I'm pleased to announce that I'm one of the presenters in Summit EMEA 2017 which will be held 4-6 April at the RAI Amsterdam.

About my session:

Development on Dynamics 365/CRM
Tuesday, April 4
 | 2:00 PM - 3:00 PM
 | Room: G110

Format: Presentation
Level: Intermediate

Looking to extend or write your first code to your Dynamics CRM environment? This session is focused on those new to CRM development or CRM administrators interested in taking the plunge to "code" customization. Covering all development structure of the Dynamics platform since version 2011. Attendees can easily see the difference between versions from a development perspective and particularly helpful for those who work on upgrade projects.

Learning Objectives:
Changes on Javascript Library, SiteMap, Plugin and Workflow Development, Service struscture, Web Api, etc...

About Summit EMEA:
Summit EMEA provides Microsoft Dynamics users with best-in-class education on how to maximise the performance of Dynamics AX, Microsoft CRM, Dynamics NAV, and Power BI products. This event welcomes IT executives and end users from organizations using Microsoft Dynamics for learning and collaboration in a trustworthy environment.

Attendees will have direct access to the following:

* Product insights

* Practical answers to Dynamics questions

* Peer to peer expertise that will provide gains in product knowledge and streamline business operations

* Microsoft leaders

* Microsoft MVPs

* Subject Matter Experts

Summit EMEA also facilitates connections between Dynamics professionals both from local user groups and from an international network of likeminded professionals. This event is brought to you by AXUG, CRMUG, NAVUG, and PBIUG. These User Groups are the world's most influential communities of Dynamics users, business leaders, IT professionals, developers, and partners - with members sharing a common goal to maximize and advance the performance of their Dynamics investment.

Click here to begin your conference registration.


CRM Service Utility for Mobile Development

Technologies

Dynamics CRM
Code Generation, Dynamics CRM metadata access
Desktop, Phone, Windows RT
en-US
9/8/2014

Introduction

This sample is a custom extension to the CrmSvcUtil.exe program that ships in the Dynamics CRM 2013 SDK. The purpose of this program is to generate C# or VB source code containing early-bound entity types and option set types from the metadata of your CRM server. This code can then be included in your mobile app projects. This enables you to make use of both out-of-box and any custom or customized entities in your code.

 

Building the Sample

To build the program, follow these steps.

  1. Obtain the CrmSvcUtil.exe program and the Microsoft.Xrm.Sdk.dll assembly from the Bin folder of the CRM 2013 SDK. You can download the SDK from http://msdn.microsoft.com/en-us/dynamics/crm/dn467921.aspx.
  2. Load the CrmSvcMobileUtil.sln solution file into Visual Studio 2013.
  3. Add references to CrmSvcUtil.exe and Microsoft.Xrm.Sdk.dll in the project.
  4. Press F6 to build the program.

 

Running the Program

For information on how to run the program, see the SDK topic: Create early bound entity classes with the code generation tool (CrmSvcUtil.exe).

 

Important Notes

    • The sample files are not intended to be used in a production environment. You should deploy this sample to a test environment and examine it for interaction or interference with other parts of the system.
    • This program was written by Kenichiro Nakamura at Microsoft.

       

      More Information

      For more information about writing an extension to the CrmSvcUtil program, see Create extensions for the code generation tool.

      You can download code:

      CRM Service Utility for Mobile Development.zip (48.2KB)

      YazilimciyizBiz

      Yazılım geliştiren şirketler! İhtiyaç duyduğunuz bilgi ve kaynaklara tek noktadan erişim için yeni adresiniz: www.yazilimciyizbiz.com

      Microsoft'un biz yazılım geliştiricilerene ne gibi olanaklar sağladığını, hangi geliştirme araçlarını ve ortamlarını sunduğunu bu siteden takip edebilirsiniz.

      Site'nin e-bültenine kayıt olabilir aynı zamanda Facebook ve Twitter üzerinden de takip edebilirsiniz.

      Sağ taraftaki ürün resimlerine tıkladığınızda içlerinde benim de olduğum MVP videolarını izleyebilirsiniz.

      Microsoft Dynamics CRM içerisinde İstemci Taraflı Kod Geliştirme

      Microsoft Dynamics CRM içerisinde İstemci Taraflı Kod Geliştirme

      Web uygulamalarının istemci (client) tarafında birtakım işlemleri gerçekleştirmesi sunucunun (server) daha rahat çalışmasını sağlayacaktır. Dynamics CRM'de bir web tabanlı bir mimariye sahip olduğu için bu durum onda da geçerli. DOM nesne modelinde her HTML elemanı bir nesne olduğu için DHTML programlama teknikleri ile CRM'in formlarına ve nesnelerine erişip işlemler gerçekleştirebilirsiniz.

      CRM'in SDK'sı içerisinde "Client Extensions and Scripting" bölümü altında detaylı bilgilerini bulabileceğiniz metot, olay ve nesneleri bir arada bulabileceğiniz bir yazı hazırladım size.

      1 Genel Değişkenler
        Değişken Açıklama
      SERVER_URL CRM Web Server'ın URL'sini döndürür
      USER_LANGUAGE_CODE Kullanıcının dil kodunu döndürür
      ORG_LANGUAGE_CODE Organizasyonun dil kodunu döndürür
      ORG_UNIQUE_NAME Organizasyonun adını döndürür
      2 Genel Metotlar
        Metot Açıklama
      IsOnline Eğer kullanıcı online olarak sistemi kullanıyorsa true döndürür (Outlook client ile ofline kullanma özelliği mevcuttur)
      IsOutlookClient Kullanıcı Microsoft Dynamics CRM for Outlook ile sisteme ulaşıyorsa true döndürür
      IsOutlookLaptopClient Kullanıcı Microsoft Dynamics CRM for Outlook with Offline Access ile sisteme ulaşıyorsa true döndürür
      3 Genel Olaylar
        Olay Açıklama
      OnLoad Form Browser'a yüklendiğinde icra edilir. Bu olayı kullanrak form üzerinde kullanıcının karşısına gelmeden istediğiniz değişikliği yapabilrsiniz
      OnSave Kullanıcı Save, Save and Close ya da  Save and New düğmelerine tıkladığında çalışan olaydır. Bu olay form servera gönderilmeden çalışır ve eğer istemediğiniz bir değer varsa form üzerinde, servera gidişi iptal edebilirsiniz. Eğer kaydetme işlemini iptal etmek istiyorsanız event.returnValue = false; kodunu çalıştırmalısınız.

      Genel değişkenler ve metotları gördükten sonra şimdi nesnelerimizi içinde barındıran crmForm isimli formumuza ait neler varmış bir bakalım.

      1 crmForm Özellikler
        Özellik Açıklama
      All Form nesneleri kolleksiyonu
      IsDirty Formda değişiklik yapılıp yapılmadığını kontrol etmenizi sağlar. Değer atanabilir.
      FormType Formun açılış biçimi. Alabileceği değerler:
      0 = Tanımlanmamış Form Tipi
      1 = Yeni Kayıt
      2 = Kayıt Güncelleme
      3 = Sadece Okunabilir Form
      4 = DevreDışı Bırakılmış Form
      5 = Hızlı Yeni Kayıt
      6 = Toplu Güncelleme
      ObjectId Açılmış olan kaydın GUID cinsinden ID'sini döndürür. Yeni Kayıt olarak açılmış formda null döner.
      ObjectTypeName Görüntülenen nesnenin adı döner
      2 crmForm Metotlar
        Metot Açıklama
      Save() Formu kaydeder
      SaveAndClose() Formu kaydeder ve kapatır
      SetFieldReqLevel(sField, bRequired) Bir alanı gerekli ya da gereksiz olarak işaretler

      Aşağıdaki tabloda crmForm.all.<alanadi> ile erişilebilir alanların ortak özellik ve metotlarını bulabilirsiniz.Burada unutulmamsı gereken nokta lookup ve picklist alanların aslında birer dizi olduklarıdır. İçlerinden birden fazla veri tutabildikleri gibi kullanıcının gördüğü ile veritabanına yazılanların farklı olmasıdır. (lookup için GUID, picklist için ise seçilenin integer değeri yazılır).

      1 crmForm.all Özellikler
        Özellik Açıklama
      Precision currency veri float veri tiplerinde virgülden sonraki digit sayıını verir.
      DataValue Veri okunan ve yazılan özellik. picklist ve lookup için ek parametreler almaktadır.
      Disabled Kullanıcı girişini açmanızı veya kapamanızı sağlar.
      ForceSubmit Bu özellik disabled edilmiş olan alanların veritabanına kaydedilmesini sağlar. Standartta disabled alanları CRM kaydetmez.
      IsDirty Alan üzerinde değişiklik yapılıp yapılmadığını kontrol etmenizi sağlar.
      Min currency, float ve integer değer türlerinde erişilebilir en küçük değeri verir.
      Max currency, float ve integer değer türlerinde erişilebilir en büyük değeri verir.
      MaxLength string ya da memo alanlarının en büyük değerini verir.
      RequiredLevel Gereksinim seviyesini verir
      0 = Gereksinim düzeyi yok
      1 = Business Recommended (Önerilen)
      2 = Business Required (Gereken)
      2 crmForm.all Metotlar
        Metot Açıklama
      SetFocus() Mouse işaretçisini formda o alana gönderir.
      FireOnChange() Alanın OnChange() olayını çalıştırır.
      3 crmForm.all Olaylar
        Olay Açıklama
      OnChange Kullanıcı bir alan içerisindeki değeri değiştirdiğinde çalışan olaydır.

      Ek olarak bilinmesi gereken PartyList ve email aktivitesi To alanı birden fazla değer almaktadır. Diğer Lookupların yapıları da bir dizi olmasına karşın tek değer alırlar.Yani sadece 0. indis doludur.

      Lookup alanları daha derinlemesine inceleyelim. Lookup alanların yukarıdaki özelliklere ek olarak aşağıdaki üç özelliği bulunmaktadır.

      crmForm.all.<lookupfiled> Özellikler
      Özellik Açıklama
      Id GUID değeri taşır. Okunabilir ve yazılabilir.
      TypeName Referans edilmiş entity'nin adı. Okunabilir ve yazılabilir.
      Name GUID'in değerinin Form'da gösterilecek olan ismi. Okunabilir ve yazılabilir.

      Örneklerle konuyu pekiştirelim. Lookup veri alanından değer okumak ile ilgili örnek;
      Bu örnekte bir primarycontactid isimli alandaki değeri öğreniyoruz.

      var lookupItem = new Array;
      //primarycontactid alanndaki veriyi okuyoruz.
      lookupItem = crmForm.all.primarycontactid.DataValue;
      //eğer veri var ise gösteriyoruz.
      if (lookupItem[0] != null) {     
      // metin
          
      alert(lookupItem[0].name);
      // GUID     
      alert(lookupItem[0].id);
          
      // entity ad.
         
      alert(lookupItem[0].typename);
      }

      Lookup veri alanına veri yazmakla ilgili örnek;
      Bu örnekte parentaccountid isimli alana değer atıyoruz.

      //bir Array oluturuyoruz.
      var lookupData = new Array();
      //Object nesnesi ekliyoruz.
      var
      lookupItem = new Object();
      //Object nesnemizde id, typename ve name zelliklerini dolduruyoruz.

      lookupItem.id =
      '{1AAC1363-01A1-DB11-8432-0003FF9CE217}';
      lookupItem.typename =
      'account';
      lookupItem.name =
      'A Bike Store';
      // Object nesnemizi Array'a veriyoruz.

      lookupData[0] = lookupItem;

      // Array' parentaccountid alanna veriyoruz.

      crmForm.all.parentaccountid.DataValue = lookupData;

      1 crmForm.all.<picklistfiled> Özellikler
        Özellik Açıklama
      DataValue Seçilmiş olan alanın integer değeri. Okunabilir ve yazılabilir.
      SelectedText Seçilmiş olan alanın text değeri.
      GetSelectedOption Seçilmiş olan değerin option cinsinden değeri.
      Options Picklist içerisindeki öğelerin Array cinsinden değerini verir, ayrıca array içerisinde yeni bir değer var ise bu da gösterilmiş olacaktır. Okunabilir ve yazılabilir.
      2 crmForm.all.<picklistfiled> Metotlar
        Metot Açıklama
      AddOption(Name, DataValue) Picklist Array'ına yeni öğeler ekler. Name ve DataValue geçerli değişkenler olmalıdır.
      DeleteOption(value) Integer değeri verileren öğeyi picklistten kaldırır

      Picklist alanlar ile örneğimize geçelim;
      Bu örnekte categorytype isimli alan içerisindeki değerlerle oynuyoruz.

      var oField = crmForm.all.categorytype;

      // 4. öğeyi alyoruz.
      var
      oOption = oField.Options[4];

      // kaç tane öğe olduğunu öğreniyoruz.
      alert(
      "Original length :" + oField.Options.length);

      // birinci öğeye değer atıyoruz.
      oField.DataValue = 1;

      // birinci öğenin adını alıyoruz.
      alert(oField.SelectedText);

      // 4. öğeyi siliyoruz.
      oField.DeleteOption(4);

      // kaç tane öğe olduğunu öğreniyoruz.
      alert(
      "New length :" + oField.Options.length);

      // 4. öğeyi yeniden ekliyoruz.
      oField.AddOption(oOption.Text, oOption.DataValue);

      // kaç tane öğe olduğunu öğreniyoruz.
      alert(
      "Restored length :" + oField.Options.length);

      Form üzerinde JavaScript kodu ile yukarıdaki anlattıklarımı birleştirerek her şeyi yazmanız mümkün.
      Daha önceki JavaScript ile ilgili makalelerimden başka örnekler de bulabilirsiniz:
      http://www.cub-e.net/post/CRM-icerisinden-Java-Script-kullanarak-web-sayfasc4b1-cagc4b1rmak.aspx
      http://www.cub-e.net/post/Microsoft-CRM-30-Navigation-Bar-Ogelerini-Form-Icinde-IFrame-Ile-Gostermek.aspx
      http://www.cub-e.net/post/OnSave()-Events-on-Dynamics-CRM-javascipt.aspx
      http://www.cub-e.net/post/OnSave()-Events-on-Dynamics-CRM---Part-II.aspx
      http://www.cub-e.net/post/Ascentium-CrmService-JavaScript-Library.aspx
      http://www.cub-e.net/post/Use-JavaScript-executecalllaunch-Dynamics-CRM-40-Workflow.aspx
      http://www.cub-e.net/post/CRM-workflow-date-update-includes-saturdays-sundays.aspx
      http://www.cub-e.net/post/Microsoft-Dynamics-CRM-JScript-Export-Tool-JavaScript.aspx

      Bir makalemizin daha sonuna geldik. Umarım anlattıklarım faydalı olmuştur. Hepinize iyi çalışmalar.

      Barış KANLICA | Dynamics CRM MVP
      Microsoft Certified Business Management Solution Specialist

      brsk@e-kolay.net | www.cub-e.net | forum.cub-e.net