|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 L @1 S* l- H& l5 ~Teamcenter ITK二次开发源码分享: 创建一个工作流$ H: c# l2 A- P% T4 Y) O
$ ?) d* b& e4 p$ d; q
- /*HEAD CREATE_A_PROCESS CCC ITK */
% ?7 `1 w1 Q" b% [$ n* R) s - #include <stdlib.h>
7 m3 k& N" ?; G$ ^ - #include <TCcore/aom.h>
2 z" _6 j9 K* N8 Y$ W |' u0 h - #include <tc/emh.h>, @4 c) T5 k& q. v# k+ ?1 g
- #include <epm/epm.h>
5 ] n+ I# S& n) ? W# n3 @ \7 `, S - #include <tc/tc.h>' f8 c/ i! c8 l& K, J: g- I
- #include <sa/tcfile.h>
; N, K9 p1 I2 F$ D - #include <itk/mem.h>
2 ?9 g7 R4 H/ |1 k: O" V' P
U" l1 t0 I n- #define EXIT_FAILURE 1
6 s& D* Z( j" c3 ]; l, A/ E - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
, `3 ^. ?! b+ u$ J3 p - static void report_error( char *file, int line, char *function, int return_code)
0 ?) w2 k, l7 Z9 k - {9 x8 y9 B! y' Z# T
- if (return_code != ITK_ok)
0 `" X% a: Q3 R# }% H - {) S- T5 Y8 }/ ~- g6 v+ i
- char *error_message_string;1 Y* D7 C$ l, b; x
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
2 b8 n9 S' }# x4 q0 D- Q' c$ Z - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);1 i4 }0 S8 ^3 v6 r; v
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
" M6 W1 U7 a6 X# W8 t3 I5 J - if(error_message_string) MEM_free(error_message_string);7 C' E6 H+ C* v9 \% H" o" e( [: g/ c
- printf("\nExiting program!\n");8 k* I M7 j% [7 @
- exit (EXIT_FAILURE); 3 G: p1 C7 r( x6 K
- }
. {! M7 A8 t1 s$ T0 y, n - }
1 D C/ }4 j- A3 z. i+ @
$ M& [6 E) j1 d5 P- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
! {! e, f7 T0 |" Y( M1 k - static void check_value( char *function, int value )/ K+ L% b! |. s) W
- {) p3 O; d0 V/ l9 W: y' a
- if (value == 0)
; w; |# j# b) ]" i! c+ u$ j8 b7 T8 z A - {
( \" @$ F" D( S* h, H - printf ("\t%s is NULL\n", function);+ V0 ^; y/ D; r& r7 J3 K
- printf("\nExiting program!\n");/ ^* c" \1 x6 g, [
- exit (EXIT_FAILURE); + h' R9 z, ^) w. y, ?5 Z! ~
- }( O9 @: p1 R; z, s, h+ i. u6 }
- }
i% n" N# `5 u2 j - W, r/ Y1 _( ]' k* B
/ n" f2 P( K* i! W& ]- static void do_it(void)6 C, s: a) }3 W W- L' _% x
- {+ N, N; f }) L6 }" ?
- int
/ l, w5 w- h& \8 t - attach_types[1] = {1};# W( q& p. U: Q+ Z) p
- tag_t / {! A0 E2 _! A) u7 T. W$ Y/ k
- rev = NULLTAG, : u1 Q+ ^9 r1 \; Q5 J) V
- process_template = NULLTAG,
. s# s6 c+ a. l7 d$ L0 [! l2 l4 D# F - process = NULLTAG;
1 G$ X8 v+ \: o$ X
6 F- _- f! @4 A) u- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );4 `5 ]5 n3 @: z% j
- EXIT_IF_NULL( rev );
8 D. F' y6 Z/ C8 D5 l: v
, L# a! I1 S- p- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
2 J# [# M3 c) Q. P8 X: S - EXIT_IF_NULL( process_template );
- q( k; @ [( X: `3 Z' O - , T/ e8 a# g2 f v" V9 W
- , J9 x9 y& O" w
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 2 V& U% T, T0 Q, h
- attach_types, &process) );
6 S" g9 C4 Y& m! X+ k - ! s. {2 Z& O% ^' h+ M" X& I/ g
- EXIT_IF_NULL( process );1 i# g& K/ T2 ^" @8 b
- }& B6 W# A6 n ^
- ; f$ r$ p9 ?% n1 q2 r0 l, {3 R
- int ITK_user_main(int argc, char* argv[])5 E Y+ z1 r' d# m" o& ?) J! s
- {7 F5 C# o: H5 F
- int+ F! x/ W; ~( m
- status = 0;
0 Q6 W& w; [2 `9 ?- W& H - 4 U/ X% h3 ]5 u @. D* f7 P" p
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );) X% N5 x! r X
- status = ITK_auto_login();4 t* s) L2 W) T* Q, R3 c( R
-
4 y& P8 S1 m7 V7 T8 ]4 H - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");/ \8 i9 b1 H- s# b" G
- else8 K, Y2 V% T3 E: O& N, x
- {
* j" g7 r) o! n7 {2 M: N - printf("\nLogin successful!\n\n");
. C9 _* m# k8 S6 H' V+ ^$ i - ITK_set_journalling(TRUE);
) B& j6 o2 a; g - do_it();3 W: F. N7 U) s6 `3 @5 D
- }+ Y- r3 J, h T- h5 n. ]
- ITK_exit_module(TRUE);
/ s7 Z: r0 }& B0 J - return status;" ?7 n/ V8 v% R: j, j
- }
复制代码 / A2 R, T+ d+ M, s! H; ?
' ?$ U+ v$ E6 i6 [! ?0 t. b% w& m8 |9 K9 i+ L
|
|