问题标签 [teamcenter-itk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1141 浏览

c - Teamcenter ITK 中的多线程

我正在尝试编写一个 Teamcenter ITK 程序,该程序将作为从主线程调用的不同线程运行。从 UI 上的操作调用主线程。由于子线程需要花费大量时间才能完成,如果我不创建子线程并将代码放在主线程中,UI 最多会冻结 10 分钟,这是无法接受的。

主线程和子线程都需要共享由主线程完成的身份验证,因为我使用的是 SSO。他们还需要连接到数据库。最后,主线程不应该等待子线程完成,否则拥有子线程的整个目的将被破坏。

调用子线程的代码是这样的:

threadReady = 1每当我要在子线程中执行需要 8 分钟运行的代码时,我都会设置全局变量。

问题是子线程在主线程退出后表现异常,我收到此错误:

大多数子线程都会执行,但有时它会在最后崩溃。

0 投票
1 回答
2620 浏览

c++ - 错误 LNK2019:未解析的外部符号 ITK_user_main

我正在尝试构建从我在 BMIDE 中创建的 SOA 生成的 Teamcenter ITK 项目。我在 SOA 服务中调用的方法应该从 Teamcenter 检索所有已保存的查询。我添加了所有我认为可能需要的库和依赖项。但是我仍然遇到我无法理解且不知道如何解决的错误。

我生成.hxx的文件如下:

这是我生成.cxx的文件,其中包含我添加到方法中的实现:

在构建解决方案时,我在 VS10 中收到以下错误:

0 投票
1 回答
999 浏览

c++ - 如何有效处理 Teamcenter ITK C++ 代码中的错误

如何有效处理 Teamcenter 服务器自定义代码中的 ITK 调用引发的错误?

在 C ITK API 中,函数通常返回一个整数值来表示成功/失败。零 ( ITK_ok) 通常被视为成功,非零则被视为失败。如果发生故障,开发人员必须清理使用的资源(例如,空闲内存)。

我见过很多定制开发人员使用宏编写的代码。甚至当我第一次编写我的第一个 Teamcenter ITK 程序时,我也是这样做的:

我定义了一个这样的宏,并在我进行 ITK 函数调用的任何地方使用它。例如:

它比较每个函数调用的输出ITK_ok并做一些事情。没有什么问题。但是很多事情实际上可能会出错,而且很难理解。

我什至见过有人这样做:

或者

我的意思是,这个没有任何问题。但它不会增加你的代码大小吗?你没看到两面性吗?

后来,我意识到我们可以用更优雅简单的方式来做到这一点。使用类和重载运算符的 C++ 方式。ResultCheck后来我什至发现在 OOTB(开箱即用)Teamcenter 中有一种叫做 as 的东西。

您需要做的就是包含一个头文件并使用其中的一个类。

该文件ResultCheck使用重载赋值运算符声明类。该文件包含在 Teamcenter 工具包中,您可以查看一下。

它做了一个非常小而整洁的任务。有了这个,我之前的陈述被转换为下面的陈述。

对于每个函数调用返回语句,ResultCheck都会创建一个实例。如果您检查头文件,您会看到重载的赋值运算符将ifail(整数)作为输入。它在内部检查是否ifail存在ITK_ok。如果不是,那么它只是抛出IFail. 并且控制权在 catch 块中传递给您以执行您想做的任何事情。

是不是很简单?所以现在让我们删除所有这些宏并使用它……</p>

0 投票
1 回答
537 浏览

c++ - 如何使用 Teamcenter C++ API 提取标记关系?

在 Teamcenter 中,我有一个包含两个内部数据集的数据集:

  1. 具有External Proxy关系的“Good ds”数据集。
  2. 具有Markup(s)关系的“Bad ds”数据集

Teamcenter Web 客户端视图

我正在尝试使用 Teamcenter C++ API 枚举服务器内容。get_IMAN_external_object_link()“Good ds”数据集的对象通过类调用按预期返回Teamcenter::Soa::Client::Model::Dataset

如何获得具有标记关系的“Bad ds”数据集的对象?

API 的文档很差。我已经在返回 a但没有运气的Dataset类中尝试了这些方法中的每一个:ModelObjectVector

  • get_DgtSignatureByUserRelation
  • get_external_apps
  • get_fnd0complying_objects
  • get_fnd0defining_objects
  • get_Fnd0DiagramSnapshot
  • get_Fnd0DiagramTmplRelation
  • get_Fnd0Diagram_Attaches
  • get_fnd0FileAccessAuditLogs
  • get_fnd0GeneralAuditLogs
  • get_fnd0LicenseExportAuditLogs
  • get_Fnd0ShapeRelation
  • get_fnd0WorkflowAuditLogs
  • get_FND_TraceLink
  • get_IMAN_based_on
  • get_IMAN_Rendering
  • get_license_list
  • get_process_stage_list
  • get_release_statuses
  • get_revisions_prop

Teamcenter 服务器版本为 10.1 (20130604.00)。