2016-03-07 2 views
0

У меня есть сценарий, в котором я разрешаю пользователю нажимать кнопку ленты, после чего я открываю URL-адрес и передаю данные формы CRM в качестве параметров для URL-адреса, на открывшемся веб-сайте URL я прочитал параметры и что-то с ними сделал, теперь мой вопрос: как я могу автоматически сохранять запись CRM, когда пользователь закрывает открытый URL-адрес веб-сайта, как я могу установить связь между формой CRM и открытым внешним веб-сайтом окно. Я знаю JavaScript, но могу ли я указать parent.Xrm.Page.data.entity.save(); на внешнем веб-сайте, это возможно. Пожалуйста, помогитеCRM Dynamics как сохранить запись автоматически при закрытии окна браузера

+0

@Filburt Я не понимаю, как это решит мою проблему, поскольку моя проблема в том, что я хочу автоматически сохранять, когда внешние окна закрываются и не зависят от пользователя для сохранения. Можете ли вы, может быть, подумать, может быть, я не понимаю вас. – Papi

+0

Я использовал (неподдерживаемый) 'Xrm.Internal.openDialog', который позволяет выполнять функцию обратного вызова с результатом диалога из вашего окна. Это позволит сохранить ваши данные при закрытии окна. Если вам интересно, я отправлю пример. – Filburt

+0

@Filburt да, я могу вам рассказать мне пример. – Papi

ответ

0

неподдерживаемый метод заключается в использовании Xrm.Internal.Dialog

Ваша кнопка ленты скрипт для вызова внешнего окна:

var encodeUrlParameter = "?data=" + encodeURIComponent('&param1=foo&param2=baz') 

var src = "$webresource:new_your_webpage.html" + encodeUrlParameter; 

var DialogOptions = new Xrm.DialogOptions(); 
DialogOptions.width = 540; 
DialogOptions.height = 305; 

Xrm.Internal.openDialog(src, DialogOptions, null, null, function (dialogResult) { 
    if (dialogResult != null) { 
     Xrm.Page.getAttribute("new_foo").setValue(dialogResult); 
     Xrm.Page.data.entity.save(); 
    } 
}); 

Ваш внешний код окна, чтобы справиться с «Хорошо, закрыть» событие:

function Okay() { 
    // set your return value 
    Mscrm.Utilities.setReturnValue("foo"); 

    try { 
     closeWindow(true); // Close the dialog box 
    } 
    catch (e) { 
     Xrm.Utility.alertDialog(e.message); 
    } 
} 

На внешнюю страницу по-прежнему необходимо ссылаться на глобальный контекст CRM:

<script src="ClientGlobalContext.js.aspx" type="text/javascript"></script> 
+0

Спасибо, я попробую это сейчас. Отметьте также свой ответ. – Papi

+1

Как обычно, имея дело с неподдерживаемыми методами, имейте в виду, что что-либо внутри пространства имен Xrm.Internal может меняться, прерываться или исчезать без предупреждения – Alex