|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
O; O$ L8 q% |6 }$ I) |- `+ O$ @
Teamcenter ITK二次开发源码分享: 创建一个工作流, {9 o( I1 h9 }$ ^3 a7 G
4 |4 k" B7 b# y7 @* e' Q- /*HEAD CREATE_A_PROCESS CCC ITK */
1 R, K0 |/ U- ^ - #include <stdlib.h>3 D! F+ A8 l6 L
- #include <TCcore/aom.h>$ h2 c" [0 O, H5 X, O" m# H
- #include <tc/emh.h>4 T5 i6 O% w* H3 L0 q* K. S2 |6 F2 L$ b
- #include <epm/epm.h>/ S3 D0 C+ w2 Y9 x: l3 q- ^
- #include <tc/tc.h>$ _1 |% K, p5 C& p3 X
- #include <sa/tcfile.h>. h, f9 N/ x, w3 J) O4 A# f+ @
- #include <itk/mem.h>
" @* M9 H4 p4 ^+ U x' [5 K, E2 | - - K) K$ v2 `: m' b8 u$ Y
- #define EXIT_FAILURE 1 6 a! C: c7 o3 o3 _6 E
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))9 L! [6 h: j( J2 \
- static void report_error( char *file, int line, char *function, int return_code)0 N" }/ b6 a2 X8 w4 c+ q/ ]/ f
- { q4 T8 ^$ H2 c- p( p
- if (return_code != ITK_ok)3 ]$ P( I2 `# Q9 i( }% T5 O
- {
) F$ ^) ], M$ d _8 j7 _9 d - char *error_message_string;/ @# I& `5 W1 ?( k9 @' J3 U; _
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);/ [& X: `. _; r/ Q7 M
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
, {/ M* _, X2 M - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
' m* P4 q6 m, o+ i - if(error_message_string) MEM_free(error_message_string);
. F! i% F W4 W- V: I - printf("\nExiting program!\n");) f e, G' u- I- g# L: P
- exit (EXIT_FAILURE);
' K' w1 ?9 o- s) \% ]% L1 V6 c - }
/ \1 A& w4 k9 S6 \, Z. f- k - }2 m6 v, _# |2 [& ~& i8 K& }( w" L
- 9 s2 v, H/ ?4 [3 g- u+ o M
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))1 c' t# ~& w% Y3 S
- static void check_value( char *function, int value )
! ?/ f3 @4 l8 R4 J - {
1 q C$ ]; T" A5 i; T/ R! Q$ | - if (value == 0)( w1 T! I! o* ~5 S
- {% _& ?: F' r( s: ^. j
- printf ("\t%s is NULL\n", function);
0 ]; s( d; {/ I9 t7 H! t! S5 ~ - printf("\nExiting program!\n");! f" v; k7 q, Z r% c" j
- exit (EXIT_FAILURE);
* v% |# {$ K( \, [- Y$ p i) M2 Z - }5 D+ f( t( w1 n$ v
- }
( u' `0 L& ^2 l1 C7 Q - M/ y2 ^" b0 q( y2 l' z1 h* I3 s
- : t& N9 m& ]( t, h+ g0 n
- static void do_it(void)- ?* j N! K4 J
- {2 q/ D$ B9 V) ]# k, h7 d+ O
- int g% r, u9 d% q5 R% u( S( S p
- attach_types[1] = {1};& I( ^: X" N- t( {7 J9 z
- tag_t
u ~0 }: {! A' s' z! Y' l$ N+ r - rev = NULLTAG, , K' q# _) r. X9 X. | n
- process_template = NULLTAG, " X$ b5 L; r3 Z) U* N% K1 w" j
- process = NULLTAG;
{3 _! J1 R5 B( r8 Y- o* E
$ z1 }. Z. |6 p1 h+ q3 \) E" O- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );' O# K8 K( n% r! P' E
- EXIT_IF_NULL( rev );
4 I3 j/ k6 Y4 K( x/ W - # }, o e" E/ @: E' a0 W
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 8 S0 c6 ?4 I+ B8 d. k, H
- EXIT_IF_NULL( process_template );+ n7 i3 V+ ~0 U! O0 T* j8 l0 k0 T
! S; `- t) _& h) n: K) @- ( W# l W& f0 z" M5 ~( E
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, / @! `# @ [3 T ^" P
- attach_types, &process) );( b* Z V4 k# A: J" g8 d
- 8 j! {, ]8 J) q, Z
- EXIT_IF_NULL( process );/ P$ k& e6 n% f. k
- }9 q G" k2 F7 A& q
- ! j+ |4 e c3 i6 \# w; I$ n
- int ITK_user_main(int argc, char* argv[])3 Z3 W$ H! D* G
- {
5 F. M$ ]' u0 A6 d - int! n3 ^; U' T4 P6 Y( X" Q
- status = 0; ( f- v7 [0 l' k: ]2 y
-
" n( T3 U3 J# g: T; x3 U# _ - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );8 X& A- v8 `" L
- status = ITK_auto_login();: {: a' Q: @6 c" j
-
! f; }/ o" [0 G7 E# \- D8 K - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
0 O$ H2 ~+ k; O& ^+ |. Q - else
# S# M6 H2 D) Q' K L" a1 I- e' f( [ - {
+ q, {+ N' ?8 f( M8 s$ j - printf("\nLogin successful!\n\n");- s5 G' O Z* o
- ITK_set_journalling(TRUE);
$ v4 ^# \( w" L7 q o" V6 Z' ^' [ - do_it();
$ f" i: f0 b+ _& |6 W3 K - }
$ Z4 n6 R: P) D - ITK_exit_module(TRUE);# S" O' h- A( X( @: |
- return status;7 u. J; [/ e* S
- }
复制代码
8 m* R5 a) q" |4 \. C* M; k
! r8 d! S: k# Z( }4 i7 s# g* Y& |& ^& [
|
|