|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
! c2 u0 R: u h# h& w/ }! D5 A3 [Teamcenter ITK二次开发源码分享: 创建一个工作流
; R7 c9 S: X8 O3 j
6 p8 y% y5 {3 }) @$ X- /*HEAD CREATE_A_PROCESS CCC ITK *// l' G1 D- |7 V( |* I9 R# |4 R
- #include <stdlib.h>
5 I$ A' @8 Y- G- j% e - #include <TCcore/aom.h>* h1 V6 J; ^4 A9 T6 Y) z8 l( N
- #include <tc/emh.h>5 J" {6 r* K- k+ G/ D
- #include <epm/epm.h>
7 V4 U. X! }" [" E( N5 f0 s - #include <tc/tc.h>
% e0 w U6 l- a0 m7 h - #include <sa/tcfile.h>
& ]1 D8 p2 I- ?' Y8 l - #include <itk/mem.h>8 a8 `7 r1 M2 O! |5 m- w8 j) T5 D. f
- - H- H) q" r8 n5 b
- #define EXIT_FAILURE 1 # V0 Z1 t P7 x' j: C' ^5 I
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
4 p2 n5 G8 f- b1 m* r - static void report_error( char *file, int line, char *function, int return_code)
& X0 O% |, g& k) `+ r - {
7 T; X- x# \- Y: \+ ?- r - if (return_code != ITK_ok); `0 X' ~: @1 h. f/ R3 b2 Q0 j
- {5 N& A) z/ l( C, f ^
- char *error_message_string;3 O" p% Q# I7 o d& s" v1 O6 A& v* I
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);( o3 M: N& ^7 g& ~ M4 y
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);2 U) v" h1 K4 f% U0 I
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
. g* O9 w4 o& U, C5 s - if(error_message_string) MEM_free(error_message_string);% y# H2 a/ z: f4 e: Y1 e* y1 y
- printf("\nExiting program!\n");9 W% D' A' u. _5 [3 C" X, T
- exit (EXIT_FAILURE); , b) @: S2 ?5 P O
- }
7 ?' o8 m% |) E* L1 Q - }
. Y+ |5 b, \/ U# J
: g: X/ K* L: M' d- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
8 O0 i, G; U8 } - static void check_value( char *function, int value )3 E/ D3 \+ O9 \/ y
- {
( A1 f: s$ k3 n$ Y3 R! y ^' y - if (value == 0)4 [! K( @* ^3 b$ t; l5 c
- {# d0 g, I# A/ v( `0 z
- printf ("\t%s is NULL\n", function);; C! f% G3 }7 ^( g
- printf("\nExiting program!\n");
2 x2 b* M4 z' O - exit (EXIT_FAILURE);
- G+ y4 T: j0 O' o# Y - }6 p& X* o5 b, W4 z) ^
- }$ ^: V: a5 X' D; O- G
- ) {; l6 f5 M: S
4 V9 j( x4 _. A+ M: y3 r. w! b- static void do_it(void)
! A) J7 J- l: K& w1 }/ h - {
- q+ @5 c# m6 l3 {' o! o - int
7 Q5 e0 r. w2 y - attach_types[1] = {1};
: N7 M' j4 ?7 x* D0 E$ g) J- f1 [ - tag_t
3 \/ D4 [3 ]; e( m0 ^6 L - rev = NULLTAG,
8 u3 v# `7 e/ ]& [' J; ? - process_template = NULLTAG, 1 o; S. E$ b5 y5 ^5 H7 @1 @+ _# p
- process = NULLTAG;0 O& v) s' R7 v" D7 R2 j+ E4 n
- * _2 n) C+ Q! }
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
. `8 z% r" R1 ]4 i+ G% a/ M - EXIT_IF_NULL( rev );
; y; w n3 Q: _$ ?) e. X
# g, O. Z; v, X: b+ l" Y0 g- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
' u, \1 d. s% g5 E; `5 G! W @ - EXIT_IF_NULL( process_template );
4 B2 J% B2 \2 c: U/ l
; z& ?1 ]7 A: i
+ Q9 D2 _ y0 w( U% T1 P- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ( c( f" Y" E, v& }" d
- attach_types, &process) );
% e! l% q0 ~5 V+ h& l' c - 1 Z ]# K7 [/ S( @' m# E" |
- EXIT_IF_NULL( process );. z3 q$ G2 n+ O) H! j# d
- } ^! Q; {, F, H- u+ U6 ~
- 2 B7 o* _( Q- A& m* A) W' Q7 i
- int ITK_user_main(int argc, char* argv[])& c3 T3 L- [* k0 p# L1 _& U
- {
2 H+ m. n+ M0 r9 o' t - int
" N7 i% K9 M/ q& H+ g+ C - status = 0;
8 g2 V7 N" ^2 \ - % @1 C' Y8 [8 i7 b
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
3 x0 l! d! o, ^- H3 p7 a - status = ITK_auto_login();) [' [( H! r \% V8 }
-
5 G: I0 o% w+ q$ a - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");3 O5 O3 F2 c& n' X' K6 N" Y
- else
6 k' S4 x: ?3 W" } - {
4 L; S- `! @& A4 J7 G - printf("\nLogin successful!\n\n");
! D. l; |& |' d, O& v: }: }: G" Z - ITK_set_journalling(TRUE);
+ @2 F# P8 u# n7 Q - do_it();5 T6 v6 v3 j! a4 W$ F( Y
- } v& z% K' [ e' _* m" i
- ITK_exit_module(TRUE);. c+ M; [/ c7 b5 l
- return status;
; b( D" `% ~) M# n1 p - }
复制代码
' P7 L9 U7 l6 x1 p- Q; X
2 A7 A- c3 ]. t# H R
7 F1 n3 _/ |! X* l0 N5 s& S |
|