当前位置: 首页 > 知识库问答 >
问题:

如何删除“发件人视图”创建的锁?

郎泰平
2023-03-14

在我的应用程序中,我为信封创建了一个仪表板,其中包含一个表单,用户可以在其中编辑基本的信封收件人信息,表单的操作捕获更改并发出PUT请求以更新DocuSign上的信息。此仪表板上还有发件人视图,它在后台加载,当用户单击Bootstrapnav-tab时可见。

在通过表单将更改保存给收件人时,我遇到一个错误:

"errorCode": "EDIT_LOCK_NOT_LOCK_OWNER",\\r\\n  "message": "The user is not the owner of the lock. The envelope is locked by another user or in another application"\\r\\n}'

我认为这是由于发送者视图在后台加载,因此在没有首先单击发送者视图iFrame中的“放弃更改”的情况下阻止了对信封的更改。不幸的是,我不能指望我的用户每次都要对信封进行更改。即使我在实际需要之前不加载发件人视图iFrame,我仍然不相信用户在提交表单之前放弃更改。

我已经尝试删除锁,但这证明是不成功的,我必须等待锁超时,然后才能再次使用发件人视图。

API是否提供了任何解决方案来强制移除信封上的锁或复制发送方视图的“放弃更改”操作?

共有2个答案

白修谨
2023-03-14

您可以使用以下代码

    var config = new Configuration(new ApiClient(basePath));
    config.AddDefaultHeader("Authorization", "Bearer " + accessToken);
    var envelopesApi = new EnvelopesApi(config);
    try
    {
       // this line will throw error if envelope is not locked, so handle it using try & catch block
       LockInformation lockInfo = envelopesApi.GetLock(accountId, envelopeId);

       // check if this app locked it
        if (lockInfo?.LockDurationInSeconds?.Length > 0)
       {
           // add a header with the LockToken to ensure this app has the right to unlock 
            string LockHeader = $"{{\"lockToken\":\"{lockInfo.LockToken}\"}}";
            envelopesApi.Configuration.AddDefaultHeader("X-DocuSign-Edit", LockHeader);
            envelopesApi.DeleteLock(accountId, envelopeId);
       }
    }
    catch (ApiException exp)
    {      
       // Do Whatever you want to do
       
    }

我在“如何解锁Docusign信封”中找到了这个

钦良弼
2023-03-14

您是对的,很遗憾无法删除发件人视图锁。锁只能使用由lockedByApp(与lockedByUser相反)授予的令牌删除。使用发件人视图,经典DocuSign体验(CDE)或新DocuSign体验(NDSE)都是lockedByApp,GET不包括令牌。

发件人视图:

{
  "lockedByUser": {
    "userName": "Rickey S",
    "userId": "xxxxxxxx-2c1d-493a-89d7-6bb3117b52bf",
    "uri": "/users/xxxxxxxx-2c1d-493a-89d7-6bb3117b52bf"
  },
  "lockedByApp": "New DocuSign Experience",
  "lockedUntilDateTime": "2016-06-15T05:34:16.8600000Z",
  "lockType": "edit"
}

API生成的锁:

{
  "lockedByUser": {
    "userName": "Rickey S",
    "userId": "xxxxxxxx-2c1d-493a-89d7-6bb3117b52bf",
    "uri": "/users/xxxxxxxx-2c1d-493a-89d7-6bb3117b52bf"
  },
  "lockedByApp": "Rickey Postman",
  "lockedUntilDateTime": "2016-06-15T05:33:30.6270000Z",
  "lockDurationInSeconds": "120",
  "lockType": "edit",
  "useScratchPad": "false",
  "lockToken": "xxxxxxxxxxAtZmQ4NS00YzNjLTllN2ItZjExMzE3MzliODgy"
}
 类似资料:
  • 我编写了上面的代码来动态创建文本字段和按钮;但现在我需要删除两个文本字段和一个按钮时,按钮被点击。我该怎么做?

  • 我们的应用程序使用Docuign API,信封是以编程方式创建的,所有收件人和pdf也是以编程方式添加的。我们的用户被转发到发件人视图URL以放置签名选项卡。这就是我们真正希望他们做的,因此我们进入首选项以尽可能“锁定”,以便用户无法修改收件人。这部分工作了...如果发件人在Docuign封装中并单击按钮尝试修改发件人,他们可以进入您用于添加/修改发件人的窗口,但它是灰色的,这是完美的。 然而,发

  • 问题内容: 我正在寻找一种简单的方法,可以一次从一个超级视图中删除所有子视图,而不是一个一个地删除它们。 我缺少什么? 更新 我的应用有一个main 。我必须添加其他不同的视图作为子视图,以便提供一种导航。 因此,当单击按钮“打开”特定页面时,我需要删除所有子视图并添加新的子视图。 更新2-可行的解决方案(OS X) 我猜苹果已经解决了。 现在,它比以往更容易了,只需致电: 问题答案: 编辑:(感

  • 我试图在android中创建一个具有圆形边缘的视图。到目前为止,我找到的解决方案是定义一个具有圆角的形状,并将其用作该视图的背景。 下面是我所做的,定义一个可绘制的,如下所示: 现在我用它作为我的布局背景,如下所示: 这工作非常好,我可以看到视图有圆形的边缘。 但是我的布局中有许多其他的子视图,比如ImageView或MapView。当我在上面的布局中放置时,图像的角落不会被裁剪/裁剪,而是显示为

  • 主要内容:基本语法,删除视图删除视图是指删除 MySQL 数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据。 基本语法 可以使用 DROP VIEW 语句来删除视图。 语法格式如下: DROP VIEW <视图名1> [ , <视图名2> …] 其中: 指定要删除的视图名。DROP VIEW 语句可以一次删除多个视图,但是必须在每个视图上拥有 DROP 权限。 删除视图 【实例】删除 v_students_

  • ​ ​ ①进入APP主界面,点击左上角的地图列表按钮,如上图红框处按钮 ​ ​ ②地图列表如上图,在列表上可以选择不同的地图列表切换不同的数据地图,点击新建地图按钮如上图红框中,即可进入创建地图 ​ ​③创建地图,先填入地图名称(地图的简短标识,必须填写),点击保存即可新建地图操作,如上图。