Skip to content

Commit 10db265

Browse files
authored
Merge pull request #66 from HmhWz/1.1.0
Updated standard explanation for copyRequestRef.
2 parents a947bcb + ff213a7 commit 10db265

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

0 commit comments

Comments
 (0)