|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% U5 a3 R: `3 ?# U6 s- Q
Teamcenter ITK二次开发源码分享: 创建一个工作流
, M& T- c* @6 o+ M0 m) D s9 |2 \& ^' I0 `9 M
- /*HEAD CREATE_A_PROCESS CCC ITK */& w6 y) R% b- k9 I# Z- i
- #include <stdlib.h>
- I( c6 T& Q$ ]2 x* E2 U - #include <TCcore/aom.h>
+ @4 x8 V/ b1 L3 ^+ r - #include <tc/emh.h>
: z$ W$ U7 f8 M1 t) {9 q$ a2 J |# f - #include <epm/epm.h>( T$ ~" ?( F( U4 N/ }# g1 C
- #include <tc/tc.h>
: Y4 w5 Q. j6 [ d" k$ S. k - #include <sa/tcfile.h>( [+ z$ a4 H9 }$ u) x( v% ~1 _4 r
- #include <itk/mem.h>% Y" {. |/ E) O' l4 z
- ; H G& X! }$ ?! C+ }, u8 v: Z. e0 v
- #define EXIT_FAILURE 1
+ M& {5 L, n& K5 K) j j - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
: \2 J" Y" p# b. y - static void report_error( char *file, int line, char *function, int return_code)9 D: e- I& Q+ F7 U* V v
- {; H" k2 g# {- \( u/ x
- if (return_code != ITK_ok)8 c p( a( _4 A% {9 p; k$ S+ w
- {/ z7 a; S) K+ Z$ v
- char *error_message_string;4 D j8 M" S& y3 v
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);9 r$ A4 g( h$ N. g F
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);0 C2 s$ F. ? j2 P; l/ E
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
, s# ~9 j+ b1 n' Z3 N6 ~. q/ H- T - if(error_message_string) MEM_free(error_message_string);, r. F) V7 Z6 q
- printf("\nExiting program!\n");$ Z: N' E9 f* k' {2 j: n) M! e
- exit (EXIT_FAILURE);
( b, t/ m8 U. S: q7 N( w ? - }
) D7 F5 L1 k& ]8 F/ O! u; E - }( T( _8 Y. |, F, I, Q
- 8 b# s4 _) E7 @$ S; y) y/ X& G
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))% Z8 J9 W' T4 p
- static void check_value( char *function, int value )
O G7 _0 y: Y - {" h" h% A6 x4 |2 b8 l
- if (value == 0)
3 y2 P2 y; y" p& l' \" d - {
4 c( @0 a" ^& k! ?0 a; n - printf ("\t%s is NULL\n", function);& t# w; s5 G8 e9 k. ~
- printf("\nExiting program!\n");1 [6 S* U9 x) u& V
- exit (EXIT_FAILURE);
$ I6 Y4 U1 u" L: q9 A0 m% ~ - }$ _. t# m8 O3 o! e) ?1 U1 ]
- }
, V) Y" J/ ~! ~# ^ - 7 s6 o8 q4 G; u1 B# V9 y% z
1 P& p( ?* q$ v4 C0 ~- static void do_it(void)6 u# s! `# H* T6 |% X- _5 U
- {. H/ |- n4 G; J6 Q' Z- [; H- t0 n# t
- int ! n# S! a6 G0 {' P8 n$ P) R
- attach_types[1] = {1};! r8 m4 m- e! H' e1 v- e
- tag_t + H ^! ^ S1 k& W* }
- rev = NULLTAG,
0 E# R/ P% [: [ - process_template = NULLTAG,
' y3 j8 X; N8 I% |) ^ - process = NULLTAG;
4 S3 `% }' H- x7 s" a9 @ - 7 [) r4 U p2 f9 l# }' v
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );2 j7 Q' j3 B" B
- EXIT_IF_NULL( rev );
6 v5 g* Z- P5 R% t# a4 D - + v6 l& g% L, U# v* R1 q" i! a: W0 y
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); & O" Y1 N4 c8 f$ \1 o
- EXIT_IF_NULL( process_template );! l9 s7 ~ J) p. \; i
- 3 A# Q$ N9 \' W V% O. T% s3 g. b% V
" D/ B/ J( a& F( ]- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 7 h! e u9 v" S# G; j6 \, a& B" R3 Z
- attach_types, &process) );. S1 U3 E% j, j9 b$ ]
- L, c6 U! m, \6 Z/ w# `% @
- EXIT_IF_NULL( process );% }. \6 t4 A( L. |. p5 C: M* I) x8 V
- }
+ H& p' o1 I \6 O4 O - ' L, r3 T1 T7 }/ d
- int ITK_user_main(int argc, char* argv[])8 J5 y" C8 a* F2 D' \* ?+ A! N
- {
+ W5 P3 ?9 O4 k! j* x& { - int. h; b; r4 o8 }
- status = 0; & ]! c5 s4 h3 D8 v4 @% A
- . s2 c" t2 ?! u' U: z+ v
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
o1 \* f4 Q1 `! [2 r! W: n" e - status = ITK_auto_login();' e! }% l) r4 ~+ J8 E5 V$ O
-
3 V7 \3 _ F& Y8 S# ~; P" U# ~% ~ - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");, a% _' y) r8 q; }) ^ H3 y- Y
- else1 ^6 D/ `0 w+ Q' w( a
- {/ f# g/ y4 ~. j/ K2 C# k
- printf("\nLogin successful!\n\n");& ]& ~6 N5 J/ s- ~9 M
- ITK_set_journalling(TRUE);7 B- { d% \/ U' x- h" y& S
- do_it();! \) R3 @5 ^& M" O" F' a* _ E
- }$ Z& [0 E9 d) Z. c9 d7 R/ X
- ITK_exit_module(TRUE);, P% d; A* R. U( k
- return status;9 e; M) |- t" M' p9 w+ F
- }
复制代码
) E+ ~! j- i: C0 A/ v0 U4 y
& ]' d+ }. } I2 F% e: |7 _+ c. S+ H% X
|
|