当前位置: 首页 > news >正文

Teamcenter AWC实现根据项目模板名称 筛选任务箱任务 - 张永全

1.动态属性或复合属性无法实现 筛选配置,TC设计 支持 数据库永久属性,或永久属性的复合属性 设置筛选。

The problem where we can't filter custom compound property in the Inbox on Active Workspace Client has been investigated and the following has been found:
Inbox filtering only works with persistent (and compound properties based on persistent properties) properties only. In this case the user has used a is As-Designed behavior.

2.在EPMTASK上增加 x1taskTemplate

image

 

3.开发handler,实现流程启动时,自动设置每个任务的流程模板属性。

#include "commons.hxx"
#include "actionmethod.hxx"
#include <iostream>
#include <tccore/uom.h>

#include <epm/epm.h>
#include <server_exits/user_server_exits.h>
#include "string.h"

int VMAX_set_task_template_name(EPM_action_message_t msg) {
int rcode = ITK_ok;
tag_t task = msg.task;
tag_t job_tag = NULLTAG;
tag_t root_task = NULLTAG;
int i = 0, j = 0;
string s = "";
//获取流程目标
ITKCALL(EPM_ask_job(msg.task, &job_tag));
ITKCALL(EPM_ask_root_task(job_tag, &root_task));

int n_childs = NULL;
tag_t* child_tasks = NULL;
ITKCALL(AOM_ask_value_tags(root_task, "child_tasks",&n_childs, &child_tasks));
char** task_template_names = NULL;
int n_task_template_names = NULL;
// 调用接口获取模板名称列表
ITKCALL(AOM_ask_displayable_values(root_task, "task_template", &n_task_template_names, &task_template_names));
char v9VmaxTemplateName[256] = { 0 };
// 安全校验:有名称 + 首名称非空 + 长度安全
if (n_task_template_names > 0
&& task_template_names != NULL
&& task_template_names[0] != NULL
&& tc_strlen(task_template_names[0]) > 0
&& tc_strlen(task_template_names[0]) + 1 < sizeof(v9VmaxTemplateName))
{
// 安全拼接(比 strcat 更安全,防止溢出)
strncat(v9VmaxTemplateName, task_template_names[0], sizeof(v9VmaxTemplateName) - strlen(v9VmaxTemplateName) - 1);
}
GAOM_set_bypass(true);
if (strlen(v9VmaxTemplateName)>0) {
for (i = 0; i < n_childs;i++) {
ITKCALL(AOM_lock(child_tasks[i]));
ITKCALL(AOM_set_value_string(child_tasks[i], "v9VmaxTemplateName", v9VmaxTemplateName));
ITKCALL(AOM_save_without_extensions(child_tasks[i]));
ITKCALL(AOM_unlock(child_tasks[i]));
int n_sub_childs = NULL;
tag_t* sub_child_tasks = NULL;
ITKCALL(AOM_ask_value_tags(child_tasks[i], "child_tasks", &n_sub_childs, &sub_child_tasks));
for (j = 0; j < n_sub_childs;j++) {
ITKCALL(AOM_lock(sub_child_tasks[j]));
ITKCALL(AOM_set_value_string(sub_child_tasks[j], "v9VmaxTemplateName", v9VmaxTemplateName));
ITKCALL(AOM_save_without_extensions(sub_child_tasks[j]));
ITKCALL(AOM_unlock(sub_child_tasks[j]));
}
SAFE_SM_FREE(sub_child_tasks);
}
}
GAOM_set_bypass(false);
SAFE_SM_FREE(task_template_names);
SAFE_SM_FREE(child_tasks);
return rcode;
}

http://www.jsqmd.com/news/691415/

相关文章:

  • ToastFish终极指南:Windows通知栏背单词神器完全教程
  • 【20年IC验证老兵亲授】:嵌入式C语言如何绕过GCC默认优化坑,安全接入Phi-3-mini推理引擎
  • 2026年降AI率必备:10款实测有效降AI率工具推荐,含免费款 - 降AI实验室
  • 微软ASP.NET Core更新引入严重安全漏洞,开发者需重新构建应用程序
  • 告别GCN的‘水土不服’:GraphSAGE如何让图神经网络学会‘举一反三’?
  • BitNet b1.58部署入门必看:从supervisord启动到Gradio交互完整流程
  • 架构革新:XUnity.AutoTranslator如何重塑Unity游戏本地化工作流
  • GPT-image-2 上手首测!超越 Banana 的它,凭什么是地表最强 AI 画师?
  • 高效剪映自动化实战:用Python脚本批量处理视频剪辑
  • 2026年4月22日 会会功能迭代验证报告
  • Origin 2022b 新功能实战:除了画图,这些效率提升技巧你知道吗?
  • 聊聊源头不锈钢仿古瓦厂家,浙江联航口碑怎么样选它靠谱吗? - 工业推荐榜
  • 别再手动改hosts了!分享一个我自用的Windows批处理脚本(带菜单/自动备份/防重复)
  • 从IT到业务:FineBI V6实战中的层次思维与敏捷分析
  • Phi-3.5-mini-instruct惊艳效果展示:SFT+PPO+DPO优化后指令遵循能力实测作品集
  • Excel批量导入图片翻车实录:顺序错乱、名称带后缀?这份避坑指南帮你一次搞定
  • egergergeeert实操手册:如何建立提示词AB测试机制提升生成成功率
  • Docker 27镜像仓库安全访问终极检查表(含Trivy+Notary+v2.7 API深度扫描脚本)
  • Effekt 语言:带副作用的递归模式实现,多种态射玩法等你探索!
  • 【机器学习】告别暴力调参:Optuna贝叶斯优化实战与XGBoost/LightGBM效率对比
  • 2026年膜结构停车棚批量定制价格多少钱 - myqiye
  • EasyOCR微调实战:提升OCR模型在特定场景的准确率
  • HarmonyOS6 ArkTS ContainerSpan组件使用文档
  • 【C++26反射实战白皮书】:20年元编程老兵亲授生产级部署避坑指南(含GCC 14.3/Clang 18实测数据)
  • 5个关键步骤:在Windows 11上完美运行Android应用的技术指南
  • Phi-3.5-mini-instruct开源部署实录:从镜像市场选择到7860端口访问完整截图
  • 分析2026年新疆膜结构停车棚厂商,哪家服务好又靠谱? - 工业品网
  • 【Android取证实战】小米手机OTG连接疑难排查与数据提取全攻略
  • Waveshare CM5载板工业应用与树莓派扩展方案解析
  • 保姆级教程:用VMware自带的vdiskmanager搞定.vmdk文件拆分与合并(附环境变量配置)