|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
! p* R: w0 @+ X% r% `8 i6 `9 ?4 aTeamcenter ITK二次开发源码分享: 创建一个工作流
2 w7 z4 R8 Z/ g1 N% }0 P1 r2 [. }7 V2 f
- /*HEAD CREATE_A_PROCESS CCC ITK */7 P$ z; ^5 m: H
- #include <stdlib.h>) n' C+ `8 x7 H4 x4 W A
- #include <TCcore/aom.h>
/ D; q# A+ o! l - #include <tc/emh.h>
$ @" Z w$ S& x# [1 y, R* j( D$ Z# c6 U - #include <epm/epm.h>2 G4 T/ c6 s4 ~" a9 l x
- #include <tc/tc.h>) c' L) C: m3 @- r3 I, z. t
- #include <sa/tcfile.h>
/ g. w r6 P5 D" r6 | - #include <itk/mem.h>
& i9 l7 F% ^; ^$ M8 Y* X
9 d* m0 g1 L0 a W* z- #define EXIT_FAILURE 1
8 ^/ O! o! V3 m - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))& ^5 l; F) U l9 k$ O3 Z' F7 \' l
- static void report_error( char *file, int line, char *function, int return_code)
& {' E" h4 T: g% J: e8 _1 G - {( |# M5 X; ?; S: A8 l3 t& K- j
- if (return_code != ITK_ok)
( i) C% g9 T8 n4 \! s `; V2 ~ - {
8 q( W2 c/ E5 K; q; z - char *error_message_string;
0 V0 g3 ] e6 `4 e- [" ?9 ] - EMH_get_error_string (NULLTAG, return_code, &error_message_string);( m5 H6 U$ k! {% i. J
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
5 O* t2 B4 X$ }+ E- e/ f; H - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);) D* U) c) B2 X
- if(error_message_string) MEM_free(error_message_string);& F2 x* v4 r* K' K: y; i8 v+ c* ^
- printf("\nExiting program!\n");4 B% I w* e s _. o8 L
- exit (EXIT_FAILURE); ; g j( s& u# Y: Z/ H' u
- }
+ k' i( N. i2 q# |( k. l" R' ]! q. d - }
# `; K- v8 u5 w% M( @
$ t2 l& r4 n0 ^ K- #define EXIT_IF_NULL(X) (check_value(#X, (X)))% D! O; T0 `# C: k
- static void check_value( char *function, int value ); T5 r2 }% G& O
- {
3 J7 A! P$ h, K a; B8 L6 z- R - if (value == 0)# ?/ A: o: O/ _3 A h- m4 ^
- {8 Q4 W' M7 q; W: O* |" N
- printf ("\t%s is NULL\n", function);0 D5 z3 s& D& \
- printf("\nExiting program!\n");
: \3 D$ C0 `- N - exit (EXIT_FAILURE);
0 }7 _7 E% y+ i - }
0 d2 F; u; ]: U7 x; m. _ - }. b) O, S0 @$ S2 M1 c
- 8 s1 ]+ ^# X) Q
; X, Q% ?+ t9 L- static void do_it(void)! i% q! v& R7 L& T9 U+ ]9 O1 _5 ^
- {& }/ p7 U$ F; D+ s
- int - o+ N" ]5 W" @
- attach_types[1] = {1};% B' Z+ _& R0 g3 B% N' C4 t
- tag_t
8 T7 T6 y/ z" V8 _# i) L, v) _0 j* K - rev = NULLTAG,
+ {6 c2 E) d+ X! r! r' h: T - process_template = NULLTAG, 5 d. v3 M N; Y) N. k, F
- process = NULLTAG;
0 }: `' y) s0 k T# S - # P# g+ y; k: o! j2 |: L- m" Q
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
2 Y+ U, i+ Q: P: j) X" {' W; I - EXIT_IF_NULL( rev );1 \7 w& z. n- C5 X8 S4 ^
- " Z& |0 y, m" ~8 r. b" y" m
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
7 n. ^+ J) [, T* }: d - EXIT_IF_NULL( process_template );' ]. B) o; {9 f$ y; k: v
$ j9 N( Z, |' A! q
& _$ K H* V, e, B0 ]. ]- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
" C" U# @) h! B3 v - attach_types, &process) );3 V1 q. |( {$ p; |1 a
% w, r x9 F& o6 [- EXIT_IF_NULL( process );
$ M9 E9 ]5 k" X1 Z5 U& J$ p - }1 V4 V) r! b7 f( k& ^ G
) P0 H2 ~8 [8 d8 w- X) X. u- int ITK_user_main(int argc, char* argv[])
% G# R" b' A0 O" d% d& M - {% B+ l) W4 Z$ x4 z+ F
- int4 l; L, i ?4 C3 @( B
- status = 0; 3 i: K a* h! q! J0 C
-
" Z1 d: ]; i' q - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );5 C z$ F3 E2 O: j' Z4 W" t; Q1 Z
- status = ITK_auto_login();
2 }' _8 w2 v$ h. e, B$ A -
* z/ c7 f3 d1 {; L9 ` - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");: Z: P2 R9 c& Q! w4 X1 h" z- c! U; K5 Q
- else
, ^8 a! w% b9 S) K - {) r$ k+ F/ ? `8 T, {% K3 W# i
- printf("\nLogin successful!\n\n");7 }% h& U3 [1 ], l# l& w( o$ T9 M
- ITK_set_journalling(TRUE);
- b# ], l5 K# ]5 N" V - do_it();% L. q/ A0 G& N8 z/ N
- }
- [( I' l5 |% _& ~2 M1 d9 |0 ?5 | - ITK_exit_module(TRUE);
; S& G/ u$ ^! b2 g2 } - return status;
, S ~3 v1 v( u9 V. p n7 B - }
复制代码
+ `8 ?+ D% ?4 K/ y. W2 Q+ e
/ z& G& H2 Q# i9 v' y. i& P5 P) F* p9 a( T% n/ D& {
|
|