如果主函数来自Xrm.WebApi.online.reveiveRecord函数内部,如何将其返回false



我创建了一个javascript函数来在另一个实体中进行一些验证。验证正在工作,但我试图从函数内部返回false到主函数,我是dynamics 365框架和javascript 的新手

代码:

function SubmitAction(executionContext) {
var formContext = executionContext.getFormContext();
var userSettings = Xrm.Utility.getGlobalContext().userSettings;
var languageCode = userSettings.languageId;
var isAirportValis = ValidateAirportCountry(executionContext);
var IsConfidential=formContext.getAttribute("alfa_confidentialguest").getValue();
var a = true;
//Edit by Abdallah To get the package Type so we can get the package type
var lookupItem = formContext.getAttribute("alfa_member").getValue()[0].id;
var theTotalMembersTravling = formContext.getAttribute("alfa_numberofdependent").getValue();
var remainFlightCredit;
debugger;
Xrm.WebApi.online.retrieveRecord("contact",lookupItem, "?$select=new_remainstravelcredit").then(
function employessPackage(result) {
var new_remainstravelcredit = result["new_remainstravelcredit"];
if(new_remainstravelcredit !== null){
if(new_remainstravelcredit > 0)
{
remainFlightCredit = new_remainstravelcredit;
console.log(remainFlightCredit+" This not inside any if condition");
var newRemain = (parseInt(remainFlightCredit)) - (parseInt(theTotalMembersTravling));
console.log(newRemain+ " This in the remain if condition");
var entity = {};
entity.new_remainstravelcredit = newRemain.toString();
Xrm.WebApi.online.updateRecord("contact",lookupItem, entity).then(
function success(result) {
var updatedEntityId = result.id;
},
function(error) {
Xrm.Utility.alertDialog(error.message +" This error is occuring from retriveing the altanfeethi emplyees packgae");
}
);
} if(new_remainstravelcredit <= 0)
{
Xrm.Utility.alertDialog("You have exceeds the travel credit");
return false;
//  throw Xrm.Utility.alertDialog("You have exceeds the travel credit");
} 
}
},
function(error) {
Xrm.Utility.alertDialog(error.message);
}
);

if (!isAirportValis) {
return false;
}
//var isAttachemntValid = ValidateAttachments(formContext);
//if (!isAttachemntValid) {
//    return false;
//}
var hasTravellers = ValidateTravellers(formContext)
if (!hasTravellers && !IsConfidential) {
var userSettings = Xrm.Utility.getGlobalContext().userSettings;
var languageCode = userSettings.languageId;
if (languageCode == "1033") {
alert(Messages.FlightMemberCountValidation1033);
}
else {
alert(Messages.FlightMemberCountValidation1025);
}
return false;
}

var isGuestValid = isValidGuest(formContext);
var isPaymentValid = false;
var guestPaymentType = formContext.getAttribute('alfa_guestpaymenttype').getValue();
var addedGuestServices = formContext.getControl('guestservices').getGrid().getTotalRecordCount();
if (!isGuestValid) {
var membershipType = GetMembershipType();
if (membershipType != MembershipTypeEnum.Corportate) // Individual
{
formContext.getControl('alfa_guestpaymenttype').setVisible(true);
formContext.getAttribute('alfa_guestpaymenttype').setRequiredLevel('required');
if (!guestPaymentType) {
if (languageCode == "1033")
alert(Messages.IndividualGuestSub1033);
else alert(Messages.IndividualGuestSub1025);
formContext.getControl('alfa_guestpaymenttype').setFocus();
return false;
}
else if (guestPaymentType == GuestPaymentTypeEnum.BuyPackage) {
if (addedGuestServices == 0) {
if (languageCode == "1033")
alert(Messages.AddGuestService1033);
else alert(Messages.AddGuestService1025);
formContext.getControl('guestservices').setFocus();
return false;
}
else isPaymentValid = true;
}
else if (guestPaymentType == GuestPaymentTypeEnum.PayForAdded)
isPaymentValid = true;
}
else  // Corp
{
formContext.getControl('alfa_guestpaymenttype').setVisible(false);
//var addedGuestServices = formContext.getControl('guestservices').getGrid().getTotalRecordCount();
// if (addedGuestServices == 0) {
if (languageCode == "1033")
alert(Messages.AddGuestService1033);
else alert(Messages.AddGuestService1025);
formContext.getControl('guestservices').setFocus();
return false;
// }
//else isPaymentValid = true;
}
if (isPaymentValid) {
formContext.getAttribute('alfa_requirepayment').setValue(true);
formContext.getAttribute('alfa_issubmitted').setValue(true);
formContext.data.save();
}
}
else {
formContext.getAttribute('alfa_requirepayment').setValue(addedGuestServices > 0);
formContext.getControl('alfa_guestpaymenttype').setVisible(false);
formContext.getAttribute('alfa_guestpaymenttype').setRequiredLevel('none');     
formContext.getAttribute('alfa_issubmitted').setValue(true);
formContext.data.save();
}

}

在其中if条件检查"是"的行中;如果(new_remaintravelcredit<=0("我想从主函数"返回false;SubmitAction;但是当它进入if条件if(new_remaintravelcredit<=0(时,它就不起作用了。关于如何强制返回false并从内部函数emploessPackage 退出SumbitAction函数的任何建议

//using Promise
function getTeams() {
return new Promise(function (resolve, reject) {
Xrm.WebApi.retrieveMultipleRecords("...").then(
function success(result) {
// code
// return list
resolve(listTeam);
},
function (error) {
reject(error.message);
}
);
});
}

相关内容

最新更新