83 lines
2.1 KiB
Markdown
83 lines
2.1 KiB
Markdown
# 第三方交互 / TS-OPI callback
|
|
|
|
本页记录框架函数通过 TS-OPI 与 TS-OPS 接收可执行回调的调用模式
|
|
|
|
PDF 没有声明名为 `callback` 的 TSL 函数;实际调用入口是 `tenantCall`、`opsCall` 以及业务方发布的 service function,因此本页作为场景页保留,不把文档标题伪装成 API 声明
|
|
|
|
## 场景分类
|
|
|
|
| 场景 | 回调所在位置 | 调用方式 |
|
|
| ------------------- | ----------------------------- | ---------------------------------- |
|
|
| 跨账号 OPI callback | 其他租户的 TSL function | `tenantCall` 调用租户公开接口 |
|
|
| 跨账号 OPS callback | 其他租户授权的 OPS function | `tenantCall` 调用 `OPS/<function>` |
|
|
| 同账号 OPS callback | 当前账号可访问的 OPS function | `opsCall` 直接调用 OPS 服务 |
|
|
|
|
## TSL 调用案例
|
|
|
|
### 跨账号调用 OPI 因子
|
|
|
|
```tsl
|
|
// 需已为该 SESSION-KEY 配置目标函数的租户访问权限
|
|
session_key := "{9B687E49-******}";
|
|
return tenantCall(
|
|
session_key,
|
|
"MF_Demo_Data_YS_02",
|
|
array("SH000300", 20260430T),
|
|
5000
|
|
);
|
|
```
|
|
|
|
### 跨账号调用 OPS 因子
|
|
|
|
```tsl
|
|
// 需目标租户已授权对应 OPS function
|
|
session_key := "{9B687E49-******}";
|
|
return tenantCall(
|
|
session_key,
|
|
"OPS/tfm_getlocalfactordataendt",
|
|
array("A02001", 20260430T),
|
|
5000
|
|
);
|
|
```
|
|
|
|
### 同账号直接调用 OPS 因子
|
|
|
|
```tsl
|
|
// 需本地 OPS 服务已注册并保持运行
|
|
return opsCall(
|
|
"tfm_getlocalfactordataendt",
|
|
"",
|
|
array("A02001", 20240131T),
|
|
50000
|
|
);
|
|
```
|
|
|
|
### 将跨账号 function 作为 service callback
|
|
|
|
```tsl
|
|
// 目标 service function 与租户接口需由业务方预先发布
|
|
factor_formula_daily := %%callback
|
|
tenantCall(
|
|
"{9B687E49-******}",
|
|
"MF_Demo_Data_YS_02",
|
|
array("SH000300", endt),
|
|
5000
|
|
)
|
|
%%callback;
|
|
factor_name := "账面市值比";
|
|
beg_t := 20240101T;
|
|
end_t := 20250101T;
|
|
cycle := cy_Month();
|
|
stock_zone := "SH000300";
|
|
index_id := "SH000300";
|
|
return trainVideo_TS04020_05(
|
|
factor_formula_daily,
|
|
factor_name,
|
|
beg_t,
|
|
end_t,
|
|
cycle,
|
|
stock_zone,
|
|
index_id
|
|
);
|
|
```
|