CRM 2011 - Global OptionSet Değer Ekleme, Güncelleme, Silme ve Sıralama - C#

Yeni Seçenek Ekleme

Aşagıdaki örnek kod parcacıgı InsertOptionValueRequest classı kullanılarak global option sete nasıl yeni bir secenek eklenecegini gösterir.


Örnek Kullanım:

Secenek Texti Güncelleme

Aşagıdaki örnek kod parcacıgı UpdateOptionValueRequest classı kullanılarak global option setteki bir degerin textinin güncellenmesini gösterir.

Secenek Silme

Aşagıdaki örnek kod parcacıgı DeleteOptionValueRequest classı kullanılarak global option setteki bir degerin nasıl silinecegini gösterir.

Seçenek Sıralama

Aşagıdaki örnek kod parcacıgı OrderOptionRequest classı kullanılarak global option setteki degerlerin textine göre sıralanmasını saglar.

Option Set Retrieve





Güle Güle XP,Merhaba Windows 8.1

Windows XP ve Office 2003’ün desteği 8 Nisan 2014'te sona erdi!
Bu, 8 Nisan 2014’ten sonra güvenlik güncellemeleri dahil ileriye yönelik hiçbir güncelleme almamanız demektir; bu da eğer Windows XP kullanıyorsanız işletmenizin ileride bir çok sorunla karşılaşabileceği anlamına gelmektedir:

Bugün Windows XP’ye güle güle derken bir yandan da geleceğimizi şekillendirmeye devam ediyoruz. XP’nin desteğinin bitiş tarihi olan 8 Nisan 2014’te yayımladığımız “Windows 8.1 Update” güncellemesiyle birlikte çok daha performanslı, hızlı açılan, hızlı çalışan, güvenli ve mobil iş hayatınızla uyumlu bir işletim sistemine ve üretkenlik deneyimine sizi davet ediyoruz.
Güncel Windows ve Office sürümlerine neden yükseltmeniz gerektiği hakkında size daha iyi bir fikir vermesi amacıyla hazırladığımız videoyu izleyin.

CRM 2011 - Opportunity Note Tabı Gizleme-(ODataQuery)

Opportunity altına eklenen bir not (annotation) varsa notes tabını görünür yapan ,eğer opportunity e ait daha önceden girilen bir not yoksa bu tabı gizleyen script aşagıdadır.

Burada sorgumuzu odataquery ile olusturduk.
ODataRetrieveMultipleAjax : Sorgu larımızı calıstıracagımız metot.

/*Gökhan Mentese-gkhnmnts@gmail.com*/
function NoteTabVisibleInOpportunity() {
    try {
        var entityid = GetEntityId();
        var formType = Xrm.Page.ui.getFormType();
        if (formType == 1) {
            Xrm.Page.ui.tabs.get("notetabopportunity").setVisible(false);
        }
        else {
            if (entityid != null) {
                var query = "AnnotationSet?$filter=ObjectId/Id eq guid'" + ConverttoStringFromGuid(entityid) + "'";
                var noteEntity = ODataRetrieveMultipleAjax(query);
                if (noteEntity != null && noteEntity.results != null && noteEntity.results.length != null && noteEntity.results.length != 0) {
                    Xrm.Page.ui.tabs.get("notetabopportunity").setVisible(true);
                }
                else {
                    Xrm.Page.ui.tabs.get("notetabopportunity").setVisible(false);
                }
            }
        }
    } catch (e) {
        alert("Function NoteTabVisibleInOpportunity() \n" +e.message);
    }
}

function ODataRetrieveMultipleAjax(oDataSelect) {
    var crmOrgSvc = GetCrmSvc();
    var result = null;

    oDataSelect = crmOrgSvc + oDataSelect;
    jQuery.support.cors = true;

    $.ajax({
        type: "GET",
        contentType: "application/json; charset=utf-8",
        datatype: "json",
        url: oDataSelect,
        async: false,
        beforeSend: function (XMLHttpRequest) {
            //Specifying this header ensures that the results will be returned as JSON.
            XMLHttpRequest.setRequestHeader("Accept", "application/json");
        },
        success: function (data, textStatus, XmlHttpRequest) {
            if (data != null && data.d != null) {
                result = data.d;
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert("Status: " + textStatus + "; ErrorThrown: " + errorThrown, "Error Function:" + "ODataRetrieveMultipleAjax");
        }
    });
    return result;
}

function GetCrmSvc() {
    //return GetClientUrl() + "/xrmservices/2011/OrganizationData.svc/";
    return Xrm.Page.context.prependOrgName("/xrmservices/2011/OrganizationData.svc/");
}
function GetEntityId() {
    return Xrm.Page.data.entity.getId();
}

CRM 2011 - Invalid Action - The selected action was not valid.

Kullanıcılar CRM'e erişirken "Invalid Action - The selected action was not valid." ya da türkçe kurulumlarda "Geçersiz Eylem - Seçilen eylem geçerli değil" şekline bir hata ile karşılaşmaktadır.

Bu rounla karşılaştığınızda ilk olarak yapılması gereken CRM Async Service'in çalıştığını teyit etmektir. Ancak bazen bu servis çalışmasına rağmen sorun devam edebilmektedir. Bu durumda loglara baktığımızda aşağıdaki gibi bir hata ile karşılaşırız:


Source: Current active key (KeyType : CrmWRPCTokenKey) is expired. This can indicate that a key is not being regenerated properly. Current Active Key : CrmKey(Id:e1a5b215-d01e-de11-9d16-0003ffd0167c, ScaleGroupId:00000000-0000-0000-0000-000000000000, KeyType:CrmWRPCTokenKey, Expired:True, ValidOn:04/01/2009 15:16:36, ExpiresOn:05/04/2009 15:16:36, CreatedOn:04/01/2009 15:16:36, CreatedBy:NT AUTHORITY\NETWORK SERVICE. Key Setting :



Bu durumda CRM klasöründe tools (C:\Program Files\Microsoft Dynamics CRM\Tools) altında bulunan WRPCKeyRenewal  aracı command line (cmd.exe) üzerinden /R  (Microsoft.Crm.Tools.WRPCKeyRenewal.exe /R) parametresi ile çalıştırılarak sorun çözülebilmektedir.