var grid = Xrm.Page.ui.controls.get("subgrid_ismi");
grid.refresh();
// yada bu şekilde kullanabilirsiniz
document.getElementById("subgrid_ismi").control.refresh();
23 Kasım 2012 Cuma
Crm 2011'de Javascript ile Bir Alanın Zorunluluğu Değiştirmek
Crm 2011'de bir alanın zorunlu olup olmadığını javascript ile belirlemek için aşağıdaki kodu kullanabiliriz.
// Zorunlu değil
Xrm.Page.getAttribute("alan_adi").setRequiredLevel("none");
// Mecburi
Xrm.Page.getAttribute("alan_adi").setRequiredLevel("required");
// Önerilen
Xrm.Page.getAttribute("alan_adi").setRequiredLevel("recommended");
22 Kasım 2012 Perşembe
CRM 2011-Teklifi Win Yapma(Quote Win)
WinQuoteRequest classını kullanarak QuoteId property sıne Teklifin reference ını vermek yeterlidir.
WinQuoteRequest winQuoteRequest = new WinQuoteRequest()
{
QuoteClose = new QuoteClose()
{
Subject = "Teklif Kapatıldı." + DateTime.Now.ToString(),
QuoteId = quote.ToEntityReference() // new EntityReference("quote",quote.Id)
},
Status = new OptionSetValue(-1)
};
_serviceProxy.Execute(winQuoteRequest);
CRM 2011-SalesOrder Unlock İşlemi
Eğer order ımız lock ise ,yani ispricelocked ==true, salesorder ı unlock işlemine tabi tutmadan update yapamayız.Eğer bu işlemi yapmazsak "salesorder lock" diye hata alırız.
SalesOrder order=(SalesOrder)_serviceProxy.Retrieve("salesorder",_guidid,new ColumnSet("salesorderid","ispricelocked"));
if(order.IsPriceLocked ==true){
UnlockSalesOrderPricingRequest unlockOrderRequest =
new UnlockSalesOrderPricingRequest()
{
SalesOrderId = _salesOrderId // Order ımızın guid id sini veriyoruz.
};
_serviceProxy.Execute(unlockOrderRequest);
}
Artık salesorder ımızın ispricelocked u false tur.İlgili değişiklikler yapıp update yapabiliriz.
CRM 2011-Query Expression -(Sort İşlemi )
QueryExpression sorgu=new QueryExpression (){
EntityName="product",
ColumnSet=new ColumnSet(){AllColumns=true}
};
OrderExpression order=new OrderExpresison(){
AttributeName="name", // hangı alana gore sıralama yapacagınızı belırlıyorsunuz.
OrderType=OrderType.Ascending // artan sırada sıralama yapar.Mesela bu örnek te isme gore a dan z ye dogru sıralama yapar.
};
sorgu.Orders.Add(order); // sorgumuza sortumuzu eklemeyı unutmayalım.
Yukarıdakı kod da, tum ürünleri isim alanına gore A dan Z ye dogru sıralar.
Not: Birden cok alana gore sıralama yapmak istersek OrderExpression olusturup QueryExpression ımıza eklememiz gerekir.QueryExpression ımıza ekledıgımız sırada sıralama yapar.
Örnek 2:Birden cok alana gore sıralama
public static BusinessEntityCollection GetDynamicEntitiesWithFiltersOrdered(string entityName, string[] attributes, string[] fields, string[] values, string[] orderfields, bool[] orderAscending, ICrmService serv)
{
var filters = new FilterExpression { FilterOperator = LogicalOperator.And };
for (int i = 0; i < fields.Length; i++)
{
var condition = new ConditionExpression
{
AttributeName = fields[i],
Operator = ConditionOperator.Equal,
Values = new[] { values[i] }
};
filters.Conditions.Add(condition);
}
var query = new QueryExpression
{
EntityName = entityName,
ColumnSet = new ColumnSet(attributes),
Criteria = filters
};
for (int i = 0; i < fields.Length; i++)
{
var oneExpression = new OrderExpression
{
AttributeName = orderfields[i],
OrderType = (orderAscending[i] ? OrderType.Ascending : OrderType.Descending)
};
query.Orders.Add(oneExpression);
}
var retrieve = new RetrieveMultipleRequest { Query = query, ReturnDynamicEntities = true };
var retrieved = (RetrieveMultipleResponse)serv.Execute(retrieve);
return retrieved.BusinessEntityCollection;
}
}
21 Kasım 2012 Çarşamba
CRM 2011-Yönetici Atama( SetParentSystemUserRequest)
private string YoneticiAta(int oracleyoneticiId,Guid userid, IOrganizationService service) {
string ileti = string.Empty;
try {
SystemUser yonetici = Kullanici.SatisTemsilciBul(oracleyoneticiId, service);
if (yonetici != null && yonetici.Id != Guid.Empty) {
try {
SetParentSystemUserRequest req = new SetParentSystemUserRequest();
req.UserId = userid;
req.ParentId = yonetici.Id;
req.KeepChildUsers = true;
SetParentSystemUserResponse resp = (SetParentSystemUserResponse)crmService.Execute(req);
}
catch (Exception ex) {
ileti= "Yonetici atamada hata olustu.Hata :" + ex.Message;
}
}
}
catch (Exception ex) {
ileti = ex.Message;
}
return ileti;
}
CRM 2011-OptionSetValue Değerlerini Alma
private string getName(string optionsetName,int val,string entity)
{
try
{
RetrieveAttributeRequest req = new RetrieveAttributeRequest();
req.EntityLogicalName = entity;
req.LogicalName = optionsetName;
RetrieveAttributeResponse res = (RetrieveAttributeResponse)XrmContext.Execute(req);
PicklistAttributeMetadata objPckLstAttMetadata = new PicklistAttributeMetadata();
ICollection<object> objCollection = res.Results.Values;
objPckLstAttMetadata.OptionSet = ((EnumAttributeMetadata)(objCollection.ElementAt(0))).OptionSet;
foreach (var item in objPckLstAttMetadata.OptionSet.Options)
{
if (item.Value==val)
{
return item.Label.LocalizedLabels[0].Label;
}
}
return string.Empty;
}
catch (Exception)
{
return string.Empty;
}
}
Kaydol:
Kayıtlar (Atom)