|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
- b! [0 D1 o- LTeamcenter ITK二次开发源码分享: 创建一个工作流( ]( z4 l p" D: F8 z% K) k* n# s4 Y+ t3 Y
+ }! }$ n3 F- K# a1 [% h# F* p* f
- /*HEAD CREATE_A_PROCESS CCC ITK */
. p* Q& ] |% ], p - #include <stdlib.h>$ L. {) s( A2 n- f
- #include <TCcore/aom.h>
e/ c/ `9 w. n9 w - #include <tc/emh.h>, T) X% w! w) J8 o9 p# A
- #include <epm/epm.h>
8 J' f( w+ R$ X' r1 p - #include <tc/tc.h>/ p) t/ L6 g9 B9 x. S. d
- #include <sa/tcfile.h>) |1 @% z w. w5 T U7 Z
- #include <itk/mem.h>
( _) }+ a' H! F- I! B - 1 g0 C1 {+ ~ H2 p: b- U
- #define EXIT_FAILURE 1 + h S$ x$ A O/ m# ]
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
5 H3 g/ z, z+ w' s8 z# w - static void report_error( char *file, int line, char *function, int return_code)0 o# b+ h5 |# z- ^+ V
- {: }/ D3 D* G- a( Z
- if (return_code != ITK_ok)
* r, @! H* w& b - {
0 X! l: K3 i% N0 k% O) O8 f - char *error_message_string;; O/ q# p) M. Z+ ~5 J2 ]
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
5 F* F# b0 T) T5 E# }/ C - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
; `) o* k4 p5 T7 d+ r6 t - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);6 P* J- M) R, ]3 k. L9 G
- if(error_message_string) MEM_free(error_message_string);% J5 v6 a ?) M. N1 F O7 \
- printf("\nExiting program!\n");8 I2 @# T0 ^; R* ^& G) r
- exit (EXIT_FAILURE); + H9 D: W# B g" x
- }0 L" E( ?3 }; w: S: j' B7 B
- }
3 m9 g/ x; P6 Q2 P
$ T( S p9 J/ ^3 q9 R2 \% G- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
' t# F; X: r! f; w0 {% i - static void check_value( char *function, int value )
+ V4 E8 E D6 ?4 v - {
* z' D5 h1 [; U7 ?. h" a - if (value == 0)9 A K8 S R, {5 a$ O
- {3 N6 q$ z; F% n! G! D! `# k% V' M2 M
- printf ("\t%s is NULL\n", function);2 u, g5 [/ ?# L% Z6 q, M
- printf("\nExiting program!\n");
6 j" u- I# U1 Q4 ~, I/ Q: N - exit (EXIT_FAILURE); 6 P% j% j: K; ?( P7 L1 }. c
- }
' I6 p- s* Y* M - }
) c+ G, O. P1 m. [- s% {& r - ! J# v$ B7 ~+ h( i. T* }9 Y( H
- : |; C8 |1 S2 z, E. a
- static void do_it(void)
' T3 W1 K0 Y& L- l& M) {# I+ C4 p - {
4 N# a" `: z5 b0 S' |. u - int
* A1 e% G& @/ @ e - attach_types[1] = {1};( y. ^& g. F) ]
- tag_t
: S1 c* ^8 N' |; X - rev = NULLTAG, ! z' S- F) s- L8 k8 ^! l8 \
- process_template = NULLTAG, . D, t% q9 t3 ^- v4 @
- process = NULLTAG;
$ P( D* N0 z* m- i1 ~/ ~6 n) {
; } c o2 d: p& {- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
9 e( z: X3 b% o- O6 p6 z - EXIT_IF_NULL( rev );
$ }- `1 T9 x. L% h Q - 8 k7 D S5 s8 {( P$ v& N
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); $ o ~1 u H# k' H- O9 g4 n( V
- EXIT_IF_NULL( process_template );
9 N/ f1 B+ x1 E$ K9 L% R - 2 c; i* \, I" I" p* w
- 1 F+ f, F. H+ X. T4 F: @0 d
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
/ N, t' y' K/ i1 r) P6 O& J- [0 p - attach_types, &process) );/ r6 J4 h7 g3 m4 `
9 O) K! x: F+ X# k1 j: Q- EXIT_IF_NULL( process );
" x: b5 g0 ^6 U. Y! I9 g% C - }
' j/ p8 @6 e. c3 K- A' I% I - , u1 M9 g& e4 b) {2 {7 I
- int ITK_user_main(int argc, char* argv[])
/ V& a5 X& m% c, ^5 M - {
2 c5 X" y+ c7 Q; x - int
- a) F9 P. Q! r3 R m - status = 0; % r/ n' {) U2 E, f
- 1 ^; C. p- f/ |% G0 D
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
& n9 l. p* z7 I! b$ a: P! O3 z1 S- \ - status = ITK_auto_login();7 n E+ o7 {/ o" M6 L8 ]$ z
-
1 w5 C5 \$ c, S7 D2 H - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
9 H- i( F" k" \& S* b - else
$ `$ `4 y4 y2 m, o - {
& y) C! I: ~! w% c0 i1 ^+ s - printf("\nLogin successful!\n\n");3 `/ I3 X; L2 t. G
- ITK_set_journalling(TRUE);
2 t: j S6 z1 `$ q - do_it();
4 Q, d; E! B+ B; m+ ? - }
4 V, ]! i1 S) a- ]% c - ITK_exit_module(TRUE);
, v- V4 E/ y4 {! l. Q - return status;
- _9 X% S* ?5 k! P8 L$ g# w: [ - }
复制代码 " {- L1 M/ z' [6 y# n* m
5 q( I, Y" s6 C9 p: F O% N8 H5 k/ T( y, x& l' @2 g9 _/ ~% T8 f
|
|