|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
. G1 O( e: _4 b1 T' v3 H' YTeamcenter ITK二次开发源码分享: 创建一个工作流# X c, e; o( m) C- Q! e
0 z. j+ E! E, \8 l$ v3 B
- /*HEAD CREATE_A_PROCESS CCC ITK *// q4 W# y% e7 O4 V- g8 d- W; h( J
- #include <stdlib.h>
( e: ]2 @) C2 w$ G: q; ?+ Y - #include <TCcore/aom.h>* h+ ?# t" E7 t$ T
- #include <tc/emh.h>, b! W' z0 `* a' H" j
- #include <epm/epm.h>* R, g3 l( }7 y O
- #include <tc/tc.h>8 Y( E4 e3 u4 h0 R- {" n
- #include <sa/tcfile.h>5 b/ E" Y \/ _; S; }" v9 N- y
- #include <itk/mem.h>
* ^4 d3 x* G! O" L# C2 o5 w1 t - 5 C- d# ?8 M" {7 y, k
- #define EXIT_FAILURE 1
. k0 [0 Y8 Y7 E0 K - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))7 W2 P5 r! y6 `+ [4 p" z
- static void report_error( char *file, int line, char *function, int return_code)
, x% C6 e! ~: ^6 m - {
! E7 z: u8 W- f$ J: O" x - if (return_code != ITK_ok)
/ p2 D0 J' Y* p$ t3 H, ^# f - {
9 @+ x4 W- v9 q% ], q- Z - char *error_message_string;, N! E9 w8 \8 v5 J3 q
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
! {+ l2 V: L3 E7 P% t! B - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
0 P {$ Q; f0 D3 n4 n" B. E - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);1 T9 n7 Q" f( R- s$ L% w. B: ?* z7 b
- if(error_message_string) MEM_free(error_message_string);# a3 z$ e# a# M+ ^
- printf("\nExiting program!\n");
5 z2 _( {- j5 ] - exit (EXIT_FAILURE);
9 C9 A% ^7 Q! o" Z f - }
4 |9 c; P2 I5 g7 R/ n' q+ S1 K - }
0 }/ a8 j% z& X3 G3 {
' {3 }8 D4 \8 ~9 c- #define EXIT_IF_NULL(X) (check_value(#X, (X)))( {8 w# t$ g3 x7 w+ Y
- static void check_value( char *function, int value )
3 t* K% b( V9 Q - {
5 r: m1 Q+ Y7 u2 ? t' j - if (value == 0)
- ]2 ^( k& u6 N+ d& Y! `: G! K+ ~6 [ - {& Z0 ~& n u: F2 G8 U
- printf ("\t%s is NULL\n", function);- i) |+ `. t# i4 r* p5 X
- printf("\nExiting program!\n");# e9 J# R* w j' [
- exit (EXIT_FAILURE); " b X1 E" ^: h2 y4 u
- }
+ {, ~+ j: S8 V. {" L6 s' ? - }
* V8 k9 M8 c) B, ^9 t$ J2 }( v- r - # z$ t5 w! q% c3 C. P& Q" g
- : O4 Q" ]' x0 y4 s
- static void do_it(void)
! u+ O4 P0 ^( T7 b& H: R - {% @! n, _7 s6 K4 w: G6 p9 [) H
- int - n D) t$ x5 I3 B
- attach_types[1] = {1};. X# l2 N4 C, A3 L4 {, U
- tag_t
/ l, k! ^( v; V4 E. c - rev = NULLTAG, # M' v+ [$ D: j2 q
- process_template = NULLTAG,
4 L1 r2 J% ^' q, D. A" ] - process = NULLTAG;' H8 l* v2 h, t/ f$ x" S+ N/ I
- , R$ n2 K- S4 V1 t
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );: n2 |) h9 Q# q: Z( X, W0 s. l
- EXIT_IF_NULL( rev );
6 d8 Z7 w6 v! f2 t/ I( F/ f" p
+ p* o. Z: m! }- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ) V* f. C5 L3 C* r; ~" ^) U9 V5 C
- EXIT_IF_NULL( process_template );
" W6 ~+ [4 u: G. V3 F* G% K8 u - ! k, ^. L! u4 L
- ( D2 \2 z0 Q8 X) e8 R
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 1 [* m; r$ o; \5 Q: _' s
- attach_types, &process) );1 Q. I; p% ?1 U9 n' Z+ E9 O5 Y$ `
* P( s/ S1 }! d, q; T- EXIT_IF_NULL( process );( t4 H: ^+ j/ {5 u, r
- }/ t+ x( _ T. J+ ^
- 3 X+ ?/ m5 v# ?' n) `5 L
- int ITK_user_main(int argc, char* argv[])
8 W- Z$ c. i0 q! z% S - {
& c" }& {. ]& U - int% D; T9 y5 Q" b* m7 `, U( o
- status = 0; ( p/ r& ~, ^; i" H& o& P7 u% S
- 4 |* A/ }2 J* w; O
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE ); B, y* }& o2 K2 W7 A: i% i- A
- status = ITK_auto_login();
% _1 Q( y0 q. h: A( Z7 } - 4 @- _- q8 ~) y. _
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
% c6 r' W" s% u - else
( L) h- h& F7 }' n0 j x6 D7 w - {
4 @! A# b I$ g; ] - printf("\nLogin successful!\n\n");7 F9 x F+ K8 T: w
- ITK_set_journalling(TRUE);
2 a+ s3 \% `7 z+ n, {! k - do_it();, G: T4 I! V4 e3 e; I' ^) b
- }
8 x. O W% o7 ]% ? - ITK_exit_module(TRUE);
. N2 }' ?. N( j( G) | - return status;
# i8 M2 e/ B% p# b9 X8 O& \ - }
复制代码 + Q- W( _4 l9 l% p9 {( K
+ i" `5 C3 }( O) }" p1 P7 z1 ]
9 x0 j5 |. Y1 R; V, p4 g" l
|
|