|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
' x: H( S: f4 [2 f( d1 o2 N0 x
Teamcenter ITK二次开发源码分享: 创建一个工作流
- p I1 I4 E. L. k% P' X
9 m, J1 h r9 ^) O2 }- /*HEAD CREATE_A_PROCESS CCC ITK */6 m. {$ g: a0 B: g c! t) m
- #include <stdlib.h>8 G) G1 w3 g" |! v' y8 j
- #include <TCcore/aom.h>" ]9 ]' f8 m# } }) M& T0 @2 t
- #include <tc/emh.h>! W) s- n+ F0 l1 B' m4 u( m+ [! ^& h
- #include <epm/epm.h>; O3 Y) P1 V) `/ e5 U" ^5 R1 ~1 z
- #include <tc/tc.h>
6 Q. e8 A' `" O" A1 m% F! [ - #include <sa/tcfile.h>
" k# U: [0 n- h - #include <itk/mem.h>
) Y# d) t3 P! F. N) @2 S$ D* ]) n' ^ - $ ~) R( k: t5 U* l l0 X+ R# C& q
- #define EXIT_FAILURE 1 ) W, M" j3 t* ^4 w: n( c# N! _
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))4 m& z. O" w8 g3 e
- static void report_error( char *file, int line, char *function, int return_code)
) l' Z2 ] n: q" ?6 z% R - {
8 X. Z% M8 S- t9 C& a: r( Q - if (return_code != ITK_ok)' H, `+ H9 w0 A/ s9 N9 a% S
- {3 p/ b6 a( e" O0 ^4 X, b
- char *error_message_string;# r. V* d# W. o# @* Q/ |8 x
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);: P8 F% }7 K& F! j+ r" e' E- V* i
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
2 {" ]; C) X2 O; l, A( L: i - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
3 F a8 M4 o' T, s8 \0 l - if(error_message_string) MEM_free(error_message_string);
' X6 X' ?) x( I; ^ - printf("\nExiting program!\n");! x7 i- G% S2 i, t8 O8 X4 H
- exit (EXIT_FAILURE);
7 p; I B! y; G' T5 k* V - }
0 b; k" L9 x" z; z' j- s - }
; P. q0 H0 y% J* Y - - H7 k- j& s3 |
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
% s2 c5 X2 l( R7 w7 d0 G - static void check_value( char *function, int value )
+ X4 F- ]" V& B - {
0 g6 k) p; N3 a$ F8 ~; q - if (value == 0)9 Q7 H0 Z% H" h7 Y, s- x
- {# h t: I9 x3 K' A& h; X- N# e2 Z) }' O
- printf ("\t%s is NULL\n", function);; v0 H2 {' a+ ]
- printf("\nExiting program!\n");
0 x3 B+ |6 o- m6 I3 t7 s& l - exit (EXIT_FAILURE);
. \8 P9 x i3 r5 v2 {2 t7 e' z4 U$ _ - }
. D2 ]2 G% q. I9 x3 n% S - }
9 p) }2 N( R" P% b1 x! y: \. S, ]: ]3 l
+ e% X" N0 ?% {% f1 D/ q- E- Z2 {& O b. p q% s
- static void do_it(void)3 v8 P, J9 \$ l+ s5 G
- {: R" E. H3 l- _- A6 u0 |5 _* }
- int
! _" L, s( t0 R1 ?7 X; z - attach_types[1] = {1};
: R2 b1 T- w2 d, i5 Z! o - tag_t
) {/ E8 B3 C1 X( h - rev = NULLTAG,
7 Y0 G' s$ U+ V, S! M - process_template = NULLTAG,
+ M& u+ K, N* g$ w - process = NULLTAG;
+ k8 r. i! y( T# |, g/ q5 Z
# u4 l6 y( y& I6 s' _- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );$ t$ K; _$ ]& ^. @) M Y, F
- EXIT_IF_NULL( rev );% i# K1 \ v' y: e4 a7 L
- 3 r/ Y" n$ S- T# {7 d
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ; ?8 h1 {; y. @; Y# X7 X
- EXIT_IF_NULL( process_template );
- O# K3 p3 \7 t0 n
, D. a; }2 y% r; X$ d- * I# I# q' G: d) D0 m0 S7 a
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
' B" c" F) [/ n0 f4 m$ V - attach_types, &process) );8 m Q, {8 r1 K2 _1 W+ Z& L& i- b- r
- 6 t: c5 d) S$ f3 q! C
- EXIT_IF_NULL( process );# t( Z( Y! J- b, Q8 F* d# }
- }5 G* G& r& m% c$ d- A
- " {; R) ?* I0 R& t9 m, y8 V- Y* j
- int ITK_user_main(int argc, char* argv[])8 `( m, N3 P' n6 H
- {( \3 `$ Z' v# }7 T
- int
6 |' }4 H: ^9 D: [/ i& v- R - status = 0; # u% `* ?# v7 G+ s D/ E
- . X N! f" I* h: Y, G, z
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );$ v0 Z' r7 E% l
- status = ITK_auto_login();3 \ p' {" d8 n
- ( H9 @, z& Y4 s+ p
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
5 b6 D e) h1 g' K - else: k5 P3 b( _, I) w# l
- {
' \$ c2 q% k0 w n+ c% ? - printf("\nLogin successful!\n\n");
: P2 s& A3 L& F+ [' B5 C8 i$ n - ITK_set_journalling(TRUE);
. {) \0 ?6 ~6 u8 k% n/ Y - do_it();
7 O- Y( O: W& p' a( K# Z% ^: X - }7 S* o. u; |$ O; S# v4 S5 L
- ITK_exit_module(TRUE);
" C" `* I( D$ @6 c - return status;
* Y% E- h! g& G# ]. g0 Z+ a - }
复制代码 ' b' B1 Y: u' |* P+ J6 o ]" c
3 q0 Z6 |, @" F8 f6 V* E
/ v" V4 q) `! W( U( k; J2 }- O9 k |
|