标记完成前检查

时间:2016-09-28 08:51:33

标签: javascript dynamics-crm crm

我有自定义活动实体。我想在完成之前检查天气产品样品已发送字段是否已填充。

我使用了这段代码,并将其添加到表单中,就像保存事件一样,但它不起作用。

function checkMandatory(executionObj)
{
   debugger;
  if (executionObj.getEventArgs().getSaveMode() == 58) {
    if (Xrm.Page.getAttribute("ad_sampleproductssenton").getValue() == null) {
      alert("Date is mandatory when completing activity");
      executionObj.getEventArgs().preventDefault();
      Mscrm.CommandBarActions.$O = false;
      return false;
    }
  }

} //(this is line 65)

有没有人知道潜在的问题是什么? 以下是报告的错误:

Microsoft Dynamics CRM错误报告内容:

<CrmScriptErrorReport>
  <ReportVersion>1.0</ReportVersion>
  <ScriptErrorDetails>
   <Message>Uncaught SyntaxError: Unexpected end of input</Message>
   <Line>65</Line>
   <URL>/%7B636106488660001088%7D/WebResources/ad_productSampleRequest?ver=-479036267</URL>
   <PageURL>/form/page.aspx?lcid=1033&themeId=f499443d-2082-4938-8842-e7ee62de9a23&tstamp=581317&updateTimeStamp=636099264463033785&userts=131195256708212045&ver=-479036267#etc=10010&extraqs=%3fetc%3d10010&pagemode=iframe&pagetype=entityrecord&counter=1475052420068</PageURL>
   <Function>anonymousror:Unexpectedendofinput</Function>
   <FunctionRaw>SyntaxError: Unexpected end of input</FunctionRaw>
   <CallStack>
    <Function>anonymousror:Unexpectedendofinput</Function>
   </CallStack>
  </ScriptErrorDetails>
  <ClientInformation>
   <BrowserUserAgent>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36</BrowserUserAgent>
   <BrowserLanguage>undefined</BrowserLanguage>
   <SystemLanguage>undefined</SystemLanguage>
   <UserLanguage>undefined</UserLanguage>
   <ScreenResolution>1366x768</ScreenResolution>
   <ClientName>Web</ClientName>
   <ClienState>Online</ClienState>
   <ClientTime>2016-09-28T10:47:00</ClientTime>
  </ClientInformation>
  <ServerInformation>
    <OrgLanguage>1033</OrgLanguage>
    <OrgCulture>1033</OrgCulture>
    <UserLanguage>1033</UserLanguage>
    <UserCulture>1033</UserCulture>
    <OrgID>{3567FFBD-0F48-E611-80BD-00155DFCDF39}</OrgID>
    <UserID>{033FC4B4-2148-E611-80BD-00155DFCDF39}</UserID>
    <CRMVersion>8.0.0.1088</CRMVersion>
  </ServerInformation>
</CrmScriptErrorReport>

enter image description here

我删除了有问题的一行。但它仍然无法奏效。 这是我如何注册这个功能。这可以吗?

Andrii在这里是解释:

我发现有一些标记完成的背景代码:

if (!Mscrm.CommandBarActions.$O) {
        Mscrm.CommandBarActions.$O = true;
        var $v_5 = new Xrm.SaveOptions;
        $v_5.useSchedulingEngine = false;
        Xrm.Page.data.save($v_5).then($v_0, $v_1); //here is the call to your save-method
    }

在这段代码中,他们的变量Mscrm.CommandBarActions。$ O在检查它是否为假之后立即设置为true。 只有当此变量为false时,才能再次调用save-method。如果你不中止保存过程,他们会在内部将此变量设置为true 它应该再次将此变量设置为false。

但是,对我而言,第一个世界的问题是让这项工作,甚至一次。 我可以尝试删除这行代码,如果它看起来像一个障碍,我只是想知道是否有其他原因。例如,这个函数有一个参数,这可能是一个问题吗?或其他什么......

0 个答案:

没有答案