SharePoint Belge Konumunu Unified Interface’de değiştirememe sorunu

SharePoint Belge Konumunun URL’sini değiştirmem gerekti. Fakat sizin de farkında olacağınız gibi Unified Interface ile, belge konumunu Gelişmiş Bul ile açılan formdan değiştiremezsiniz. Salt okunur olarak kodlanmış olduğunu göreceksiniz.

Yalnızca okunabilir belge konumu
Yalnızca okunabilir belge konumu

Bu nedenle, geçici çözüm olarak, kaydı aşağıdaki URL ile klasik olarak açılmaya zorlamam gerekti.

https://dynamics-url/main.aspx?pagetype=entityrecord&etn=sharepointdocumentlocation&id=belge-konumu-kaydi-id&forceclassic=1

Bu URL pencereyi klasik şeklinde açtı ve değişiklik yapmama izin verdi.

Klasik biçimde açılan arabirim
Klasik biçimde açılan arabirim

Field Notifications (Alan Uyarıları) ile kullanıcıya bilgi vermek

Dynamics 365 formlarında * ve + dışında kullanıcının bir alan üzerindeki zorunluluğu anlamasını kolaylaştıracak bir özellikten bahsetmek istiyorum.

Şöyle bir senaryonuz olsun; istiyoruz ki kullanıcı ya müşteri numarasını elle atasın ya da bıraksın sistem atasın. Bunu plugin ya da JS ile de yapabilirsiniz ama otomatize bir çözüm olacaktır. Biz burada kullanıcıya seçim şansı sunmak istiyoruz.

İşte bunun için istediğiniz alana addNotification ile uyarı balonunun çıkmasını sağlayabilirsiniz.

var CrmSaturday = CrmSaturday || {};
CrmSaturday.Contact = {
    onLoadForm: function (executionContext) {
        var formContext = executionContext.getFormContext();
        if (Xrm.Page.getAttribute("mwns_customnumber") != null
            && Xrm.Page.getAttribute("mwns_customnumber").getValue() == null) {
            var notification =
                {
                    messages: ["Customer Number is empty, would you like to assign one?"]
                    ,
                    notificationLevel: "RECOMMENDATION"
                    ,
                    uniqueId: "customnumberempty"
                    ,
                    actions:
                        [
                            {
                                message: ["Click Apply to change Customer Number value"]
                                ,
                                actions: [
                                    function () {
                                        Xrm.Page.getControl("mwns_customnumber").setDisabled(false);
                                        Xrm.Page.getControl("mwns_customnumber").setValue("12345");
                                    }
                                ]
                            }
                        ]
                };
            Xrm.Page.getControl("mwns_customnumber").addNotification(notification);
            formContext.ui.setFormNotification("There is one recoommendation on the form", "INFO", "recommendationInfo");
        }
    }
}
Field Notifications (Alan Uyarıları) ile kullanıcıya bilgi vermek
Field Notifications (Alan Uyarıları) ile kullanıcıya bilgi vermek

Not:

Web istemcisinde addNotification yöntemi, belirttiğiniz iletileri ve iki standart düğmeyi içeren bir bildirim görüntüler: Uygula ve Kapat. Uygula’yı tıklattığınızda tanımladığınız eylem yürütülür; Kapat’ı tıklattığınızda bildirim mesajı kapatılır.

Unified Arayüzde:

  • Kapat düğmesi yoktur.
  • Uygula düğmesi yalnızca bildirim düzeyi HATA değil de TAVSİYE olarak ayarlandığında görünür.

Dynamics 365 Admin API

Online Management API, Office 365 hesabınızla Ortak Veri Hizmeti (Common Data Services) ortamları oluşturmanıza ve yönetmenize olanak tanıyan bir REST API’dır.

  • Bu API, normalde Dynamics 365 Yönetim Merkezi ile ilişkilendirilmiş yönetim işlevlerini API üzerinden gerçekleştirmenize olanak tanır.
  • Admin API’ın bir diğer önemli avantajı, yedekleme ve geri yükleme işlemleriniz üzerinde daha fazla denetime sahip olmanıza ve ALM işlemlerinizi otomatikleştirmenize izin vermesidir.

Servis URL

Servis URL aşağıdaki gibi bir yapıya sahiptir, ama bunu ezberlemenize gerek yok;

{ServiceUrl}/api/v1.2/{resource}

Çünkü https://admin.services.crm4.dynamics.com/swagger/ui/index adresi üzerinden API arabirimine bağlanıp detaylı bilgi alıp işlemleri orada yapabilirsiniz.

Burada tek dikkat edilmesi gereken nokta ise bu API aşağıdaki tablodan da görebileceğiniz üzere instance bazlı hizmet vermektedir.

LocationService URL
North Americahttps://admin.services.crm.dynamics.com
North America 2https://admin.services.crm9.dynamics.com
Europe, Middle East and Africa (EMEA)https://admin.services.crm4.dynamics.com
Asia Pacific (APAC)https://admin.services.crm5.dynamics.com
Oceaniahttps://admin.services.crm6.dynamics.com
Japan (JPN)https://admin.services.crm7.dynamics.com
South Americahttps://admin.services.crm2.dynamics.com
India (IND)https://admin.services.crm8.dynamics.com
Canadahttps://admin.services.crm3.dynamics.com
United Kingdom (UK)https://admin.services.crm11.dynamics.com
Francehttps://admin.services.crm12.dynamics.com
Dynamics 365 Admin API
Dynamics 365 Admin API

Bu tool bir Web API olduğu için herhangi bir kod içerisinden de çağırabilirsiniz. Aşağıdaki kod ile instance’ları alabilrsiniz

HttpRequestMessage myRequest = new HttpRequestMessage(HttpMethod.Get, "/api/v1/instances"); 
HttpResponseMessage myResponse = await httpClient.SendAsync(myRequest); 
if (myResponse.IsSuccessStatusCode) { 
    var result = myResponse.Content.ReadAsStringAsync().Result; 	
    Console.WriteLine("Your instances retrieved from Office 365 tenant: \n{0}", result); 
} 
else 
{ 
    Console.WriteLine("The request failed with a status of '{0}’”, 	myResponse.ReasonPhrase); 
}

Ayrıca Microsoft bu API için bir de PowerShell arabirimi de sunuyor. Aşağıdaki adresten indireceğiniz paket ile PowerShell esnekliğini kullanarak çözümler üretebilirsiniz.

https://www.powershellgallery.com/packages/Microsoft.Xrm.OnlineManagementAPI/1.1.0.9051

$user = “admin@sfa.contoso.onmicrosoft.com”
$password = “password”
 #Create Credentials
$SecPassword = ConvertTo-SecureString $password -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($user, $SecPassword)
$connectionhost = "https://admin.service.crm11.dynamics.com"
$instances = Get-CrmInstances -ApiUrl $connectionhost -Credential $cred
$instances 

Yukarıdaki kod da size instance’ların ismini verecektir.

Bu şekilde instance detaylarına ulaşabilir kendinize yeni ortamları otomatik oluşturup/silebilir, yedek alabilir vs.. birçok işlemi yapabilirsiniz.

Daha fazla bilgiye şu iki makaleden ulaşabilirsiniz;

https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/online-management-api/overview

https://docs.microsoft.com/en-us/rest/api/admin.services.crm.dynamics.com/