|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
2 _5 [+ B/ L4 @5 N# z, eTeamcenter ITK二次开发源码分享: 创建一个工作流
9 U% ~) w* y; u+ |; K, N6 ~* |! b7 w1 b
- /*HEAD CREATE_A_PROCESS CCC ITK */
; R! Y7 \& p% _" c6 c9 {, N/ y - #include <stdlib.h>
: }! {, }8 a: D1 P y% D9 j/ | - #include <TCcore/aom.h>
F. Y8 m% A" Y7 Z - #include <tc/emh.h>6 S) X$ W/ T5 B* a1 ?( h2 T8 k
- #include <epm/epm.h>
; z- M2 H- S5 E. b3 h- b - #include <tc/tc.h>
* R) M* C/ N) d9 m; u5 ]/ j3 L - #include <sa/tcfile.h>
/ V4 E3 ~; c. P) {* U* L - #include <itk/mem.h>
7 k+ V. v) }! H9 w# x - # U% g7 z9 l. N" U* R8 O
- #define EXIT_FAILURE 1 # a) a; p9 q- b( m# e5 T
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
~0 @/ o8 j- I# S - static void report_error( char *file, int line, char *function, int return_code)5 ~( e/ b' u' q
- {
" m$ {* W- y. ~4 t% N - if (return_code != ITK_ok)
# o! X- E: [$ D0 B7 I7 g. S - {( g4 n0 ] W c: \2 }, h9 ~! N
- char *error_message_string;
+ S- G) R4 F" O P - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
# }/ c3 G1 c* O$ y( m! I6 S - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string); _3 V( a( M# l3 T! A1 c) j6 N
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
1 Y0 N7 c3 w6 ~, s* m - if(error_message_string) MEM_free(error_message_string);0 s" X. J& ]' U4 M- g* T& D
- printf("\nExiting program!\n");5 b, }# {7 `1 f
- exit (EXIT_FAILURE); 2 k8 x. N$ ?' n/ L
- }8 K7 V! m s' h5 y
- }
9 B' G- m# Q* K5 Y" q0 _
9 t s% Y5 e( x& f( s6 d- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
, Q4 V$ V- L# C+ Q( Y - static void check_value( char *function, int value )
, y+ O/ g* Q# x# [( `: X! m - {
' n# V5 C" P4 s1 U9 i. N! g( ~ - if (value == 0)7 e5 t- M `1 a8 P- ]/ @+ q& E/ [ u
- {, v" L9 Y1 Q6 t5 `: I5 D
- printf ("\t%s is NULL\n", function);
2 W! V/ m8 c9 e! C% H6 Y - printf("\nExiting program!\n");
- F7 _% _: ^4 s2 {: V6 e - exit (EXIT_FAILURE);
3 r5 i' D* j5 Z+ O: q! X - }
" w8 T7 F1 L0 n2 A+ i - }5 H9 S7 U! Y; m3 J8 Q% c ?0 A
$ C* s* |# a" k: S* U- L/ S
% W5 Y/ X3 R* h% Y- static void do_it(void)
% _! q$ B) a5 h5 I O - {, O4 D- w' z! Y" T5 C
- int # i0 p b v' ~" u
- attach_types[1] = {1};
6 _7 V9 k2 D9 N) ]4 {. _8 O6 c - tag_t
! H$ ~& k) d1 T$ e r - rev = NULLTAG,
7 H6 [' V H' o! G# U - process_template = NULLTAG,
: F" `& W4 ~/ P - process = NULLTAG;
0 g+ p4 r4 O( ~+ U
2 _; V6 x- [. o! W% Y& m5 _- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
1 r. F# J( \1 W: C9 @ - EXIT_IF_NULL( rev );
* f/ U5 K5 q/ d - 7 c5 y" u4 u( U, |
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 _, f! Q/ u7 j2 @% x
- EXIT_IF_NULL( process_template );; n% U& |7 v7 A$ C/ ~# k& K. D
- : w: O6 O% A( W- z
- % ^( e! ?/ p+ k; H
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 9 t0 h4 y- N0 ~$ G' y9 F) b0 C
- attach_types, &process) );- T+ n! j% M# x( n" @9 r
- " _$ O: \0 A7 b: i( v7 h
- EXIT_IF_NULL( process );( Y) h$ G9 |3 h# b' f' _
- }
9 S F6 T/ a5 a1 q - % J1 p/ L' u7 ^9 |
- int ITK_user_main(int argc, char* argv[])
, _* X, \: \2 M- ~: P - {# w1 ?8 K, q N& L* t$ I, v
- int
, G. B7 f/ N+ ^2 n - status = 0; # ~; _# {5 W5 ]0 K) s
- * l" G! i+ S# [" U$ k& }+ a
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
1 N6 k# `6 s2 N( V5 v - status = ITK_auto_login();+ M' H: F: I& y$ |# E: k; \
- . S& N' P" ]5 Q0 m( l
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");& N" Q: [1 _% R3 o g
- else
# z; G7 Z0 `. v$ U- m0 J - {
2 J+ [2 t) `: V! F& T8 X+ u4 ~1 f+ u - printf("\nLogin successful!\n\n");( w4 }. r8 m" ^* H# x) x
- ITK_set_journalling(TRUE);) _, X, I% Z6 g# i& O
- do_it();
* r& U: W- B! H: c2 ?0 C - }$ P7 n5 _0 ?: o, _
- ITK_exit_module(TRUE);( S. I. b6 y ^
- return status;5 |6 p# u/ r# x# b% o1 {. t5 ~! a7 b+ t
- }
复制代码
: |: i+ @1 I D1 i4 `( n% _
4 a8 `- T$ w9 t" T) P% ~/ ] z+ U6 F6 x4 t# B4 N; [- F; w6 W
|
|