|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
B& F; ? X. y5 O# c
Teamcenter ITK二次开发源码分享: 创建一个工作流
t( i, e9 S* f, `. k
) p; F, y7 s3 Y* _( ]( K( V0 l- /*HEAD CREATE_A_PROCESS CCC ITK */" f' `4 M. L9 G1 `( x9 u, B' W
- #include <stdlib.h>
& k7 |; j" W8 T/ H1 x9 E% q - #include <TCcore/aom.h>
" O0 q, u, B$ @& b0 I5 }& D - #include <tc/emh.h>
& H/ g, ?+ u. f7 y5 U. Q" R - #include <epm/epm.h>
. z% r" r8 z7 [( T6 f& \+ Z S - #include <tc/tc.h>
( }! |0 @3 T4 m1 \9 t6 N* B. Y0 p - #include <sa/tcfile.h>
/ s, S7 K5 p Y7 q- R" A9 J8 Y - #include <itk/mem.h> E) U5 B8 m/ [0 G. ~- T
- / t0 C9 k1 o( S. w
- #define EXIT_FAILURE 1
; ]: V- r* w6 c$ {4 Z4 u2 M - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
) v. x# D' B$ |/ W& f) `1 } - static void report_error( char *file, int line, char *function, int return_code)
5 e: V) q) _- E8 B+ @7 i" k0 e - {; k% P) |5 U* d* z$ e
- if (return_code != ITK_ok)2 ], g2 K# v" r7 X2 ]* Q; m- Z0 ~
- {, P: Z/ X: K4 H1 S, ~7 Z$ i
- char *error_message_string;9 G# e8 H( [: p2 h
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
* y. {* [; Q7 N( F - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
4 D6 y2 p& h& @* M& E - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
; t. ?0 S$ }, Q7 F1 T3 G - if(error_message_string) MEM_free(error_message_string);7 T! Y: W; ^. \5 M
- printf("\nExiting program!\n");
( R% W- x) n- m0 l/ u. N; Z! l - exit (EXIT_FAILURE); + S* n3 p- x* Q. O, }" k
- }
4 m- W3 E; Z, P* o, O - }2 B- o) x1 n+ M! Y6 s
+ a4 x! n1 p1 }9 [. g8 k- #define EXIT_IF_NULL(X) (check_value(#X, (X)))7 r7 R3 Z' O R/ V
- static void check_value( char *function, int value )
3 M5 I; {' @( z, Q* d! P, O1 X - {
`# N3 b% c- k - if (value == 0)
& l- o3 y5 z+ V - {7 d; U! d5 y+ p! i, K' j. Q1 t# v
- printf ("\t%s is NULL\n", function);" [$ B/ m6 M" ]/ |1 J; i. `$ L
- printf("\nExiting program!\n");
$ C, ]; p! b: ]( T8 t2 t! O& h' I1 v - exit (EXIT_FAILURE); 1 Q* W* g+ e Q' `
- }$ w/ n8 u, M/ F: _0 q3 o' U7 ^# u
- }
+ L+ S! s6 w/ W$ }+ S% l- y
6 A8 Q& g7 `4 w8 m% t0 a( W
5 q/ f7 D( [9 b+ v$ X, F4 ~- static void do_it(void)
' C, f8 A# R x9 x( s, Z- F6 n - {
( e0 u" `/ O3 Z3 T+ Z9 H4 @ - int . d8 {! F2 n) \3 a8 j8 M% ]" [
- attach_types[1] = {1};9 E0 j0 p1 b! X3 k
- tag_t & b! j; R$ J" ?
- rev = NULLTAG, 8 _ \8 ?# Z @
- process_template = NULLTAG,
& e3 X# D% j. P- G) M - process = NULLTAG;, S' I- e& P$ X8 ^8 r D
8 p4 y1 Y$ Q! x- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) ); p ]% u. [! u# k0 _5 Q
- EXIT_IF_NULL( rev );
) t% T# `% I$ H S& @4 B+ H u
4 S# Y. c& b9 ^- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
. {1 t' r0 j3 Y. j/ T2 o Z% R! n+ G - EXIT_IF_NULL( process_template );
2 a- b6 F L) r6 R - % s" A; T. E: J( t! P$ i/ F# G
" w" ^; `/ d1 ^( D7 d! l& _- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
0 W1 Y0 B; U; f6 }9 |7 G7 i9 E - attach_types, &process) );
: e/ v% Y! B7 i- }: e( ?
& r4 A2 q- M* _5 [" N6 o' d- EXIT_IF_NULL( process );2 F3 R5 F" O/ i1 F; ?6 I: _. n
- }9 y- b! C6 p0 W# N0 v+ O
^5 w1 a! k+ I% R( G$ O. \- int ITK_user_main(int argc, char* argv[])1 v) U$ Q- U5 a% l
- {. E; A1 C1 D- H. f% K2 ]: R! a
- int
9 P6 l, R! `! U& v V - status = 0; 3 r) A. J' Y. S; y% R
- ! i* f. _5 O% d2 f' a
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
" E8 g' _" X- ?8 A2 J - status = ITK_auto_login();% J0 D6 i& x! \
- * S F6 \# R8 S" w- r2 h) ]5 }
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");1 e0 C' @4 X8 P- K
- else3 I. l/ C! _/ `
- {6 b, O' o% C9 h( o2 |6 G# P
- printf("\nLogin successful!\n\n");7 i7 v. c! ?7 i$ ]- f5 V
- ITK_set_journalling(TRUE);
' a9 n: U0 u: G - do_it();- L7 a5 P8 S" l4 E1 N
- }
% Z3 X- Y# r3 M' \' K1 J6 v. Y - ITK_exit_module(TRUE);
4 n5 C4 y+ H: u, M6 d - return status;9 y% |# r6 ~4 F+ j7 K
- }
复制代码
- n$ q5 k% U9 C3 P4 h. `
. [6 J1 u+ r3 l5 E/ {: n5 a+ X0 z8 ]4 [: c; {2 t2 m4 b4 x
|
|