问题标签 [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.
c - Teamcenter ITK 中的多线程
我正在尝试编写一个 Teamcenter ITK 程序,该程序将作为从主线程调用的不同线程运行。从 UI 上的操作调用主线程。由于子线程需要花费大量时间才能完成,如果我不创建子线程并将代码放在主线程中,UI 最多会冻结 10 分钟,这是无法接受的。
主线程和子线程都需要共享由主线程完成的身份验证,因为我使用的是 SSO。他们还需要连接到数据库。最后,主线程不应该等待子线程完成,否则拥有子线程的整个目的将被破坏。
调用子线程的代码是这样的:
threadReady = 1
每当我要在子线程中执行需要 8 分钟运行的代码时,我都会设置全局变量。
问题是子线程在主线程退出后表现异常,我收到此错误:
大多数子线程都会执行,但有时它会在最后崩溃。
c++ - 错误 LNK2019:未解析的外部符号 ITK_user_main
我正在尝试构建从我在 BMIDE 中创建的 SOA 生成的 Teamcenter ITK 项目。我在 SOA 服务中调用的方法应该从 Teamcenter 检索所有已保存的查询。我添加了所有我认为可能需要的库和依赖项。但是我仍然遇到我无法理解且不知道如何解决的错误。
我生成.hxx
的文件如下:
这是我生成.cxx
的文件,其中包含我添加到方法中的实现:
在构建解决方案时,我在 VS10 中收到以下错误:
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>
c++ - 如何使用 Teamcenter C++ API 提取标记关系?
在 Teamcenter 中,我有一个包含两个内部数据集的数据集:
- 具有
External Proxy
关系的“Good ds”数据集。 - 具有
Markup(s)
关系的“Bad ds”数据集
我正在尝试使用 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)。