上传后,客户端回调 设置文档只读
<p>[TOC]</p>
<h4>概述</h4>
<p>当我们在BOM编辑窗口中点击左上角的<strong>上传</strong>按钮时,会进行以下步骤:</p>
<ol>
<li>客户端先执行【保存】逻辑:先向系统校验 > 校验通过后,将信息回调插件,并等待插件响应 > 插件进行相关业务操作(如反写)> 插件通知客户端结果;</li>
<li>客户端将图纸 上传(导入或检入) 到系统中 > 若上传成功,客户端将回调设置只读指令给插件 > 结束。
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=fcacb4247faad45fe8ed62e0efa9c640&amp;file=file.png" alt="" /></li>
</ol>
<p>> 说明:上传操作即为导入、检入,系统会根据文档(图纸)是否存在系统来自动判断,但两者都需要先打开Bom编辑窗口;
> 导入:当文档(图纸)<strong>不存在</strong>系统时触发,除命令值外,与【EditBomLibrary_New】指令的数据包完全一致。
> 检入:当文档(图纸)<strong>已存在</strong>系统时触发,除命令值外,与【EditBomLiarary_Modify】指令的数据包完全一致。
> 为什么回调只读指令:我们的标准业务逻辑中,当文档上传成功后,通知插件将文档设置【只读】状态。若用户需要在CAD软件中二次修改文档(图纸),则先在插件向客户端请求【检出】操作,检出成功后,插件再将文档设置【非只读】状态。</p>
<h4>客户端回调 - 设置只读状态</h4>
<h5>回调命令</h5>
<p>当窗口关闭时,按顺序回调两个指令</p>
<ul>
<li><code>SetReadOnlyAttribute 108</code></li>
</ul>
<h5>回调示例</h5>
<pre><code>{
&quot;dataModel&quot;: {
&quot;rootDirectoryPath&quot;: &quot;D:\\Repos\\非标CAD指导\\Kingdee.PLM.CAD.CustomPlugin\\Kingdee.PLM.CAD.CustomPlugin.Demo\\bin\\Debug\\素材&quot;,
&quot;rootFileName&quot;: &quot;未录入系统的装配件_241227103041.SLDASM&quot;,
&quot;allFiles&quot;: [
&quot;D:\\Repos\\非标CAD指导\\Kingdee.PLM.CAD.CustomPlugin\\Kingdee.PLM.CAD.CustomPlugin.Demo\\bin\\Debug\\素材\\未录入系统的装配件_241227103041.SLDASM&quot;
],
&quot;isReadOnly&quot;: true,
&quot;sourceCommand&quot;: &quot;1&quot;
},
&quot;abstractCadType&quot;: &quot;_3d&quot;,
&quot;cadType&quot;: &quot;solidworks&quot;,
&quot;cadCommand&quot;: 108
}</code></pre>
<h5>回调参数说明</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必填</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">dataModel</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">doc_object</td>
<td>数据对象</td>
</tr>
</tbody>
</table>
<p><strong>doc_object 参数</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必填</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">rootDirectoryPath</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>根文档的目录绝对路径</td>
</tr>
<tr>
<td style="text-align: left;">rootFileName</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>根文档名称</td>
</tr>
<tr>
<td style="text-align: left;">allFiles</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">array[string]</td>
<td>需要修改只读状态的所有文件的完整路径</td>
</tr>
<tr>
<td style="text-align: left;">isReadOnly</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">bool</td>
<td>是否只读</td>
</tr>
<tr>
<td style="text-align: left;">sourceCommand</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>触发只读状态变化的源命令,例如使用【ImportDocument】指令打开Bom编辑窗口,并上传,则返回 1</td>
</tr>
</tbody>
</table>