|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
7 F( R. h# U7 z+ v F- F, _. q; O
Teamcenter ITK二次开发源码分享: 创建一个工作流
6 F/ q+ ~2 A) {: m5 h I
9 j& N- A9 L( U- /*HEAD CREATE_A_PROCESS CCC ITK */9 t ~2 U4 h- g, f7 c; }8 z
- #include <stdlib.h>
, n3 Z# N2 e; _" [/ J6 Y - #include <TCcore/aom.h>, Z$ L1 D4 _: k1 [0 r& q0 i
- #include <tc/emh.h>
K! V4 q5 c: a; o5 o: Z* _: o - #include <epm/epm.h>) q& b2 L5 ]% n- A
- #include <tc/tc.h># R/ V5 j! Y- B: b7 V# h
- #include <sa/tcfile.h>
4 `$ r2 H6 h6 L: q3 \$ w - #include <itk/mem.h>; G# t; Z0 U+ w- ?
- , j$ W# t9 Q/ }+ p
- #define EXIT_FAILURE 1
# l4 k& d' n; N' s8 s - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))): ^4 @( H( j& T9 T; f1 C
- static void report_error( char *file, int line, char *function, int return_code)$ ^( N; |& K- Z
- {2 D) u8 r7 j$ V# A# }
- if (return_code != ITK_ok)0 n9 t* {9 {$ Q. c; e1 Z+ e7 Q1 f
- {
: k; J) g8 \( A" r2 ` - char *error_message_string;" ]; |6 u. a0 p4 m- y( E
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
7 k! B m: @( s% l - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
8 q8 c* e% a7 M U/ H( p2 [# Y - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
3 [; u6 W3 z5 q - if(error_message_string) MEM_free(error_message_string);
/ K; X. k7 [( m3 ]2 r - printf("\nExiting program!\n");+ B( D g7 M) P3 r# S1 q# V- f
- exit (EXIT_FAILURE);
5 ^! p9 h+ X/ ~. m+ v - }
2 L2 k! c# i# H4 |+ D5 g - }5 m9 ]7 F7 R: A+ F% \0 W
- # n+ O% n6 ^5 a9 H9 E; a
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
* l @3 l& R7 v7 n1 s/ | - static void check_value( char *function, int value )" |5 e+ ?/ j( B0 ?) O" D
- {
+ A9 j0 z9 u1 |3 V% }0 K - if (value == 0); G/ }5 X7 _7 E3 X7 E, L, s
- {1 s3 |- b* L6 w! s8 e7 A
- printf ("\t%s is NULL\n", function);' A) p. H9 O, W. x9 \" n% P. Q, C' c
- printf("\nExiting program!\n");
& A( ~. z* ~* a! { - exit (EXIT_FAILURE);
4 T1 z6 s% k* s0 q5 e - }
: E$ k+ o- [+ [2 g0 A - }
. e! f8 d8 v! H# n
0 E: W: r% T K8 G) h0 E
9 I. C k+ z3 w$ S: R% L( _; P- static void do_it(void)6 P9 ]# `1 \- b4 n' k9 w
- {
* Q+ x1 t/ a: T8 `2 a - int
" s2 ?% \5 h9 g1 a - attach_types[1] = {1};
4 p% n+ {1 m# u" p6 f - tag_t
- C1 F& o" \5 }7 [ - rev = NULLTAG, $ Q( S, A1 e( H; g0 p
- process_template = NULLTAG,
8 `, n3 }: L8 K - process = NULLTAG;7 m. ^$ P. y, L; p
6 [# h1 W# _7 n# V8 |" X- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
- c+ b! p/ g( a8 w - EXIT_IF_NULL( rev );
( a: @5 V# L5 B
- H x# L8 Q* p- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 2 E+ v6 t; [! z2 u
- EXIT_IF_NULL( process_template );6 _1 Y W j, y. S b1 H$ T
1 b! ~6 V( q% t* Q) H" k- 0 ~( d, X4 b7 K+ z
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
! O" K b7 S- D, ?$ V* V# u - attach_types, &process) );
, f+ D2 m! p& ~ - ( Q! r G" ]8 @" ? F" A" t
- EXIT_IF_NULL( process );) q1 x0 z3 p; s& w. N3 i" M; X( _
- }( n4 i+ S1 }' Q1 |. M: M- C+ B
- 3 \+ _9 L3 q+ i4 l1 K
- int ITK_user_main(int argc, char* argv[])
3 v6 |2 b6 b- f( n - { z! d/ r4 L/ u6 n
- int; I1 m: a! Z8 R8 ?2 G
- status = 0;
3 B+ @+ a" a# S -
$ Z: T* X7 l2 d" v- ~5 K. ^0 z - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
. p3 x/ j3 Q% j j" k# p - status = ITK_auto_login();
! _; j' ?" v8 v, a% J' J -
2 S5 O0 l+ u& V - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");' k8 k3 d. Y; Q2 g2 O
- else
8 O1 L! P) e9 a5 W - {
9 e- m' h: @ X9 B+ N9 H. @ - printf("\nLogin successful!\n\n");
- I7 Z- e6 u) R; e" a - ITK_set_journalling(TRUE);
+ P: C( z' f: g - do_it();
* A$ A2 k/ c' T: I - }
6 s5 ^! y7 C% j8 [" P# } - ITK_exit_module(TRUE);
, J7 [7 o: N! O, c4 s; |1 k+ f - return status;$ G& M5 D% b, D5 Q, H" k c
- }
复制代码
) {4 Q# D9 I. P1 c' u5 }
5 b2 |- s) J6 e- z3 V/ h6 m; y1 A; S* w3 P" h3 b
|
|