Skip to content

Commit ff213a7

Browse files
committed
Updated standard explanation for copyRequestRef.
1 parent 98940fc commit ff213a7

File tree

1 file changed

+52
-2
lines changed

1 file changed

+52
-2
lines changed

zh_CN/开发文档/AppConn开发指南.md

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -455,9 +455,59 @@ Job 管理规范 ```RefCRUDService``` 要求必须实现的 ```DevelopmentOperat
455455
- ```DSSJobContentRequestRef```,包含了 DSS 工作流节点的信息,```dssJobContent``` 存储了该工作流节点的基本信息,所有的 key 已被 ```DSSJobContentConstant``` 收录。
456456
- ```RefJobContentRequestRef```,包含了 第三方应用工具的 refJob ID 信息,如:```refJobContent```,方便用户能正常找到第三方应用工具对应的 refJob 进行相应操作,如:```RefUpdateOperation``````RefDeletionOperation```等, 在删除、更新和查找时进行使用。
457457
- ```DSSContextRequestRef```,包含了 DSS 工作流的 contextId 信息。
458-
- ```ProjectRefRequestRef```,包含了 第三方应用工具的 refProjectId。
458+
- ```ProjectRefRequestRef```,包含了 第三方应用工具的 refProjectId。**需要注意的是,当dss调用三方appconn的节点拷贝接口时,refProjectId参数的定义可能不一致。参考如下注释所述:**
459+
```java
460+
public interface ProjectRefRequestRef<R extends ProjectRefRequestRef<R>> extends DevelopmentRequestRef<R> {
461+
462+
default R setRefProjectId(Long refProjectId) {
463+
this.setParameter("refProjectId", refProjectId);
464+
return (R) this;
465+
}
466+
467+
/**
468+
* 返回的是第三方 AppConn 的工程 Id,由第三方 AppConn {@code ProjectCreationOperation} 的实现类返回的 refProjectId。
469+
* 特别注意:当dss调用三方appconn的节点拷贝接口时,若工作流是在同一个项目内拷贝,则refProjectId代表的是节点源工程Id;
470+
* 若工作流是跨工程拷贝,则refProjectId代表的是目标工程id。
471+
* 三方接入系统在实现节点拷贝操作时,需要在自己系统内先根据节点名获取源工程Id,判断和dss传入的refProjectId是否一致。
472+
* 若一致,则代表dss端发起的请求是工程内拷贝;若不一致,则代表dss端发起的请求是跨工程拷贝。三方系统在实现节点拷贝操作时需要根据此两种情况做不同实现。
473+
*
474+
* @return 返回的是第三方 AppConn 的工程Id
475+
*/
476+
default Long getRefProjectId() {
477+
return (Long) this.getParameter("refProjectId");
478+
}
479+
480+
}
481+
```
459482
- ```UpdateRequestRef```,为 ```DSSJobContentRequestRef``````RefJobContentRequestRef``` 的子接口。
460-
- ```CopyRequestRef```,为 ```RefJobContentRequestRef``` 的子接口,且包含了拷贝的工作流版本信息。
483+
- ```CopyRequestRef```,为 ```RefJobContentRequestRef``` 的子接口,且包含了拷贝的工作流版本信息。 若AppConn实现了二级规范,则在实现CopyRequestRef的同时必须要实现ProjectRequestRef。 原因是dss调用节点复制接口时,传的refProjectId可能是节点源工程id(同一个项目内拷贝),也可能是另一个工程Id(跨项目拷贝)。**此外对于newVersion参数的定义也需要开发者特别注意,如下注释所述:**
484+
```java
485+
public interface CopyRequestRef<R extends RefJobContentRequestRef<R>>
486+
extends RefJobContentRequestRef<R> {
487+
488+
default R setNewVersion(String version) {
489+
setParameter("newVersion", version);
490+
return (R) this;
491+
}
492+
493+
/**
494+
* The new version comes from DSS Orchestrator framework.
495+
* When the orchestrator, such as DSSWorkflow, added a new version, we hope all nodes of this workflow,
496+
* can also update a new version.
497+
* <p>
498+
* 特别注意:
499+
* 此版本号格式不一定是v000001的格式,在工作流复制操作时会加上前缀或者后缀(suffix_v000001的形式),三方节点最好将其当做一个普通字符串处理。
500+
* 三方节点新增节点版本时,需要将之前版本号去掉后缀,然后用节点名前缀拼接新的版本号。
501+
* 比如节点名:widget_1001_v000001 在新增版本号(v000002)后需变为:widget_1001_v000002,而不是widget_1001_v000001_v000002
502+
*
503+
* @return the new version of the orchestrator, such as DSSWorkflow.
504+
*/
505+
default String getNewVersion() {
506+
return (String) getParameter("newVersion");
507+
}
508+
509+
}
510+
```
461511
- ```ImportRequestRef```,为 ```CopyRequestRef``` 的子接口,包含的 resourceMap ,表示该工作流节点的元数据文件,通过该文件可还原工作流节点。
462512
- ```QueryJumpUrlRequestRef```,包含了 ```SSOUrlBuilderOperation```,可协助封装出第三方系统 refJob 对应的前端页面的 URL。
463513

0 commit comments

Comments
 (0)