|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
7 F4 F! ?) L J% \" N# k, {8 Y
Teamcenter ITK二次开发源码分享: 创建一个工作流7 m, g$ x& @) G4 H. Z4 ]3 i; {
5 w( I" y! E [# ^- /*HEAD CREATE_A_PROCESS CCC ITK */# ]# u2 e; K$ E, F
- #include <stdlib.h>1 Y0 P% f2 f% h/ l. H8 \) x
- #include <TCcore/aom.h>
5 C* \) }4 z. }' R - #include <tc/emh.h>3 M! l L' D# A$ j, J) s) ^
- #include <epm/epm.h>1 k. K; f3 J$ i$ c, C, p9 [% B
- #include <tc/tc.h>
: v. s/ b! E+ D6 n0 R - #include <sa/tcfile.h>
2 j p0 J1 a; c4 [8 [* V4 N - #include <itk/mem.h>9 |# [% x8 E. M7 g* P/ L" l. W
5 J+ T J" c# T. V% P7 K- #define EXIT_FAILURE 1 % N' O i/ x/ `! Z7 j' F% h
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
% }, K8 B; ?/ G - static void report_error( char *file, int line, char *function, int return_code)
& f+ f: ? b- T - {- ?* W, K: b8 a; V5 R Y
- if (return_code != ITK_ok)
9 y0 [7 a9 h7 |. ^# `% j - {
. a7 ]: O. d8 } c# R. h - char *error_message_string;( O$ @/ F& u; \. u5 f
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);" A) k4 q' P% S D/ c. g) a
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);* M7 s$ G! g' B" ~
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
9 a, E t. G; D, ^8 e - if(error_message_string) MEM_free(error_message_string);# W4 F+ F6 X {( k! n
- printf("\nExiting program!\n");
I/ p0 P, G. B4 z! u4 G$ ~* R - exit (EXIT_FAILURE); ! n1 P& N1 i- J- V6 C, p
- }" k4 ^6 U6 R8 X; N* h1 Z
- }
( z4 O- r6 r) V/ B/ S
9 W+ j) g: @& N& k- #define EXIT_IF_NULL(X) (check_value(#X, (X)))6 r, N% g) Q4 {8 j0 w
- static void check_value( char *function, int value )
1 X+ e6 g$ Y+ E& m3 \ - {( ~( N5 f1 f$ A4 j
- if (value == 0)( X* K# U" Q3 j
- {
2 V5 `9 [" f4 ]: Q; c - printf ("\t%s is NULL\n", function);
+ J% |* Z9 f' f) W7 B2 D0 O - printf("\nExiting program!\n");! H: P5 p7 E/ P$ d9 W
- exit (EXIT_FAILURE); 1 s8 Z" C. a( ~
- }
. ^: |1 N: x; t# W0 t, D; G - }" ?5 f: F! g& m8 k7 v
- * P+ Y ~) p$ o1 n1 m H! m. T
- ) P k9 d& }+ g; K: a" |# S
- static void do_it(void)2 w0 A `- }0 p& k9 D* y! B: p
- {. Y" E' v! Q3 h" k
- int % Z: j+ o/ J- B
- attach_types[1] = {1};
$ `0 Q, q8 O# z/ `2 j - tag_t ~) k5 t7 I1 o8 k
- rev = NULLTAG, : j) ]1 _- f* X3 K# D
- process_template = NULLTAG, ! M+ O1 ^, L% a0 c: Q. ~" B
- process = NULLTAG;. c) I. ]# s8 v+ J+ a5 Q
" f: U% o' v+ _& G- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
2 D3 T8 C+ V4 O9 N5 L - EXIT_IF_NULL( rev );; i7 u0 D" {) M1 s2 ^, K
- 5 {# {2 I7 U. J# |, E a
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ' }: u) [) S" r* Q
- EXIT_IF_NULL( process_template );0 [8 @' \6 V) d- o2 p! y
- 0 h4 E: G- u+ C+ q$ u
- / m$ @4 l: k' g4 @0 O0 i' Z
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
. z3 m3 I# g7 p - attach_types, &process) );
9 G6 @' ]- D; g" S. a- Q
! U4 U& _- i6 f! E: }) R- EXIT_IF_NULL( process );# w: g1 q6 Y1 N2 @$ q6 `
- }+ Z* P+ O( R4 W( h, v- _
- 5 l' f* T# [3 V4 C" E4 ^
- int ITK_user_main(int argc, char* argv[])7 W: B" n& O2 J5 I( M
- {
/ n. L; J% R5 k. }) A6 e - int6 [/ |& E0 z. W9 O9 }, W& T
- status = 0; 3 L: w; e* L7 r& m7 j$ f, ^
-
' }7 T* {0 V2 b1 w& V - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );, U( e, {5 @/ R& }3 C- w/ N
- status = ITK_auto_login();
& [7 N, N* F1 x: |% E I/ w+ x -
^1 O' ~' T& T' |1 W4 f1 ^ - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
0 @! u7 M$ D5 T) R+ |- n - else
p6 f% `/ W# `4 z, p i - {& M6 ]( \# t# ^% A
- printf("\nLogin successful!\n\n");
. _. a- q8 [5 j1 g5 i2 Y) q: K$ F& d - ITK_set_journalling(TRUE);
; O- G* V9 A+ e9 B5 o! } - do_it();" z* n- t; Y: s3 u, h7 H
- }
9 g! A& b; o6 s+ M: \. t- U - ITK_exit_module(TRUE);
5 {8 N. [; I" ] h - return status;
E+ L2 M7 Z2 K3 e( A3 R. \2 s- y& L - }
复制代码
4 Z* J, y* z) ]1 \ ?1 v9 G0 ^7 L* p2 A. a7 S
4 J+ F$ p; ]6 _$ L8 x* @* D' T+ M3 U1 t
|
|