|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% E5 G: D2 h" ~: F, U
Teamcenter ITK二次开发源码分享: 创建一个工作流5 T. I& B: N$ ^- j
( B% |0 `( H# N# T8 p5 b- /*HEAD CREATE_A_PROCESS CCC ITK */8 g3 e- i; i" B/ ]' ~) r
- #include <stdlib.h>3 H1 z$ O, Q' V
- #include <TCcore/aom.h>' {- p( G# F4 A5 |1 \/ L
- #include <tc/emh.h>5 m; q" t5 X* i2 a3 v# A7 r
- #include <epm/epm.h>
) q4 x/ R+ S5 E - #include <tc/tc.h>
& D+ I0 A) T+ P+ Y; r# R - #include <sa/tcfile.h>0 c- O1 \0 p! C5 K
- #include <itk/mem.h>, E4 f+ K& t. e) k* m! U" z8 y
- + M2 u( S. `, i9 }
- #define EXIT_FAILURE 1
" }4 v; y5 ^5 e5 d - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
# \( Z! G8 @0 D, [ - static void report_error( char *file, int line, char *function, int return_code)5 A3 M! Q0 l d0 `& Z& b" _& |
- {! E! B5 [2 L) {9 z: y5 \
- if (return_code != ITK_ok)
" u0 I7 M. R3 B+ s5 | - {9 Y3 d+ o% T: e. y. u2 F
- char *error_message_string;, z, t* i! @" @" z0 q
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);8 B8 M) a! ~+ \ V# R3 p6 l; h' Q
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);$ J- }( d% ?+ n" Z5 C- v' Q5 \
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);. y( J5 o! \& Q& `
- if(error_message_string) MEM_free(error_message_string);, s/ F+ u. O: ? E5 h
- printf("\nExiting program!\n");2 S: p6 B C) ^! o
- exit (EXIT_FAILURE); ) L5 R: m2 B0 ~( R5 k/ @# ^
- }
$ e) R0 B" C }1 O/ K [ - }3 K5 I& F+ E' W6 f
; [& y/ ~! `5 f' Z- k; O" B- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
, y- W @. Z, W) _$ B - static void check_value( char *function, int value )" H, f7 ~& J, V) j. |4 ~, h9 Z
- {7 b! o- W/ B2 F
- if (value == 0)* N: T+ v% }( w9 s( T+ c! z2 @) B- _/ B
- {
4 l0 l" x/ O+ b3 l1 f - printf ("\t%s is NULL\n", function);
; a; k- H J9 t4 w) h7 K - printf("\nExiting program!\n");
9 Q( S: n/ C' i0 s7 d, ]$ Q - exit (EXIT_FAILURE);
. R0 I) p+ o4 m! r - }& ]: H/ o$ F6 ], n
- }
# O |3 ^/ c. }1 K2 L3 r
) o/ ^3 A4 t. k. z4 d% O7 t
. r3 \ r+ V( l" z6 \* T9 v n- static void do_it(void)
/ M4 Z6 ]) b( f. A6 A - {
( n8 o& A! c# c! b1 J* Q, O& o - int
% A/ l7 h+ Q- V/ r( C8 D6 S - attach_types[1] = {1};4 Z( Y0 ]8 x! b6 A O
- tag_t 5 f0 z/ m# M) u3 s. B$ I9 B
- rev = NULLTAG, $ S0 U8 s k. T& A
- process_template = NULLTAG, * j4 ~# J F, v5 n4 \, U0 }! e E
- process = NULLTAG;
7 g5 H+ p5 r8 c6 B
6 P Z1 m! g1 j# F3 O- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
8 E0 D( x4 H# H/ D7 k7 Y, D - EXIT_IF_NULL( rev );, w M) C* |2 {+ X) z
* H. A, ~6 P9 r& ?% N, @- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ( H3 M1 \, k) b2 n3 [
- EXIT_IF_NULL( process_template );
, ?1 G8 f3 x" s1 R4 w6 {) q3 m
- N3 `$ K0 N- i' q2 G7 H. D
+ a; t7 i4 z) b( x% k9 p9 _- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, - w/ ~ H+ f) w2 x! {7 I
- attach_types, &process) );4 D, h( O% m+ q5 |1 u0 y
- 3 i$ T5 N1 E5 }- l* k# `% ]- Y% i
- EXIT_IF_NULL( process );
: q/ [7 l- G; Y! B7 r( ~7 m - }3 [' k& H6 ^3 D* _% j1 p
- h9 \ X$ B$ L6 |
- int ITK_user_main(int argc, char* argv[])
0 }) \' p. o; O) V9 Q# ~- ] - {2 y$ @8 J& N5 O, @
- int u: A1 `' U7 ?. v: W8 G/ W4 a
- status = 0;
5 h. r, b- n8 @5 o: J# C4 A - 6 O5 K, m0 r/ q T' g& B
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );4 h' p6 I8 t/ K4 k& E5 v( S
- status = ITK_auto_login();
D( E2 l' n5 x5 \* R ^7 L - ( h0 \* O) ^; Z. O. X A/ h: O
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");2 ^* v; B) u/ w2 A
- else8 J/ {" v0 v" U0 i' b z5 a
- {8 N8 d3 ^- G! U) r. R
- printf("\nLogin successful!\n\n");1 _5 |8 T, L/ L" C: ~; U
- ITK_set_journalling(TRUE);
" E4 ]8 J _1 a, t$ }( ? - do_it();/ R, `4 F; ?7 P' f$ M
- }. k) y% X8 O+ }: W7 P+ l6 b5 K/ r4 }
- ITK_exit_module(TRUE);
9 z/ R. _, _% U' Z! V - return status;+ J# }' f! Z* z
- }
复制代码
S1 J9 n! I: O
) U5 S1 M: N* o4 }- [' q, {5 R r, h
|
|