1
votes

working good in crm 2011 but not in crm 2013 online

On opportunity Entity create New record form i show only:

1.Some attributes(all other fields/Section/Tabs are hide on form)
2.and an Html button like

function OnFormLoad(){   
  if(Xrm.Page.ui.getFormType() == 1 ) {

     SetRequiredLevelToNone();

     createHtmlButton("Save");

     HideTabsAndSections()    

  }
  else {    

  }
}

On click of Html button following function is triggered.

function showWholeForm() {
  Xrm.Page.data.entity.save();
}

I want to show all the fields of form after save, means want to reload whole form.
As working in crm 2011

3

3 Answers

0
votes

The save method in CRM 2013 will not refresh the page anymore. The new refresh method should be used in this case, as follows:

Xrm.Page.data.refresh(save).then(successCallback, errorCallback);
  • save: Boolean value to be passed as true if data should be saved after it is refreshed.
  • successCallback: Function to call when the operation succeeds
  • errorCallbak: Function to call when the operation fails, that will be passed an object with 2 properties - error code (number) and localized error message (string)

You could find the method documented here: http://msdn.microsoft.com/en-us/library/dn481607(v=crm.6).aspx

0
votes

I think you should first disable the auto-save if you want consistency with CRM 2011.

function OnSaveDisableAutoSave(eventArgs) {
   var saveType = eventArgs.getEventArgs().getSaveMode();
   if (saveType == 70 ||saveType  == 2)
   { //Disable AutoSave
      eventArgs.preventDefault();
   }
}

and then

function showWholeForm() {
   Xrm.Page.data.refresh(true).then(successCallback, errorCallback);
}
0
votes

To fix this you can do:

var saved = false;

function onLoad(){
    checkIfFormShouldBeReadOnly();
    attachEvent();
}

function attachEvent() {
    Xrm.Page.data.entity.addOnSave(executeOnSave);
}

function executeOnSave(saveExecution) {
    if (!saved) {
       saved = true;
       Xrm.Page.data.save().then(
          function () {
             checkIfFormShouldBeReadOnly();
          },
          function (errorCode, message) {
             Xrm.Page.data.refresh();
          }
       );
   }
}