gpt4 book ai didi

javascript - 通过 GUID 获取实体名称,无论当前加载什么形式以在 XrmServiceToolkit.Soap.setState() 中使用

转载 作者:行者123 更新时间:2023-12-02 21:23:25 29 4
gpt4 key购买 nike

我陷入了 XrmServiceToolkit.Soap.setState() 函数的困境。

先决条件
我正在学习 MS CRM。我的任务之一是激活和停用记录(这次是 native “联系人”记录)。我决定通过以下方式构建我的解决方案(根据其他任务):

  1. 在自定义实体表单的 OnLoad 事件中,我使用 XrmServiceToolkit(任务条件)创建一个新联系人,然后更新新创建的联系人中的一个字段。实际上,在生产中在此事件上创建某些内容是没有意义的,但是,这样做只是为了我的方便:
function Practice3()
{
let entityToUpdate = CreateRecordWithToolkit("VP_Created by","Xrm Service Toolkit","4F52999B-0E63-EA11-8125-00155D06F203");
alert("Switching to new record!");
Xrm.Utility.openEntityForm("contact", entityToUpdate);
UpdateFieldsWithXrmServiceToolkit(entityToUpdate);
DeactivateAndActivateContact(entityToUpdate);
}

// I don't post the CreateRecordWithToolkit(fname, lname, accountId) and UpdateFieldsWithXrmServiceToolkit(targetEntity) functions 'cos all is Ok there
// and entityToUpdate GUID is passed properly
  • 在创建和发布更新之间,我发送一条命令来加载新创建的表单。它不会立即激活它,但会正确插入更新。
  • 然后,我将相同的 GUID 传递给下一个函数 DeactivateAndActivateContact(targetEntity),但我陷入了困境。
  • 问题
    任何人都可以解释或提示如何使用 XrmServiceToolkit.Soap.setState() 函数吗?我无法获取“entityName”参数 - 这是什么?如何通过实体的 GUID 获取它?我试图像这样使用它:

    function  DeactivateAndActivateContact(targetEntity)
    {
    let entityName = GetObjectAttribute(targetEntity, "contact", "name");
    XrmServiceToolkit.Soap.setState(entityName,targetEntity, "0", "0",false);
    Xrm.Page.data.refresh(true).then(null, null);
    }

    但出现未定义的错误。

    有什么方法可以通过 GUID 获取 entityName 吗?因为我正在获取当前表单的名称。
    进入此行时会引发错误:

    XrmServiceToolkit.Soap.setState(entityName,targetEntity, "0", "0",false);

    最佳答案

    要在此处停用联系,请使用以下代码,

    注意Rest API call is Asynchronous您将不得不使用 execution context and formcontext in Dynamics

    您还可以使用 Rest API 更改其他 SOAP 调用。引用CRM Rest Builder ,用它建立调用非常容易。

    var entity = {};
    entity.statuscode = 2;
    entity.statecode = 1;

    Xrm.WebApi.online.updateRecord("contact", "4A342F12-D248-E211-8669-005056922461", entity).then(
    function success(result) {
    var updatedEntityId = result.id;
    formContext.data.refresh(yes).then(successCallback, errorCallback);
    },
    function(error) {
    Xrm.Utility.alertDialog(error.message);
    }
    );

    关于javascript - 通过 GUID 获取实体名称,无论当前加载什么形式以在 XrmServiceToolkit.Soap.setState() 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60799621/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com