|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
* D) h1 b# S$ a0 C7 C" aTeamcenter ITK二次开发源码分享: 创建一个工作流
6 U5 _; u$ C: v$ ]
$ T8 [6 {7 m# B- /*HEAD CREATE_A_PROCESS CCC ITK */" D" t( a7 ]6 s) o, |
- #include <stdlib.h>
% b: B$ |1 k1 p! r1 ~ - #include <TCcore/aom.h>
' b% y% Y7 R2 R g+ G8 ~% z - #include <tc/emh.h>4 l' H" ^6 `; G9 C6 H9 l% o8 o( T7 m
- #include <epm/epm.h>( _% j( u; Z* |4 Q7 k: x5 k
- #include <tc/tc.h>- e5 s$ L' a+ e- e
- #include <sa/tcfile.h>; o. c6 y6 r n) P9 h0 M
- #include <itk/mem.h>' Z9 O& M! V5 O5 B( m' D
' r: Y) B1 P1 d5 {. T- #define EXIT_FAILURE 1
$ w1 T N% u/ o( n5 s - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))" r" L5 l+ K- s. u
- static void report_error( char *file, int line, char *function, int return_code)/ ^1 a8 s5 Q* b6 ?
- {2 h. B/ H0 H2 `5 X! ~
- if (return_code != ITK_ok)
6 J& y. B, B" q C' J- D8 m; z - {
5 K# z* S2 [. y: m - char *error_message_string;
6 I- K0 S* m" ?9 s9 n4 { - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
' x- m9 x1 a* D2 p% Q5 K - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);* ?* `5 }$ R6 M4 a
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
; R, c7 R0 Q) p - if(error_message_string) MEM_free(error_message_string);5 e* L$ Q7 X& U8 w1 @5 @
- printf("\nExiting program!\n");# r1 u s1 @) X, `9 z3 X
- exit (EXIT_FAILURE); S+ g& Z- _, u6 \
- }8 @. _: W, [- P% \( K
- }
7 \1 V1 n- {( D) v$ h
/ h) V# d0 l+ k7 U: t8 W- #define EXIT_IF_NULL(X) (check_value(#X, (X))). U' v& p" b3 W) w
- static void check_value( char *function, int value ): ^) a/ F4 R* u. @
- {
4 P4 u s6 Y" C: I$ x" u - if (value == 0)6 `2 a/ k$ n, N7 W
- {
, o" `7 x' K6 B% U% l: R - printf ("\t%s is NULL\n", function);1 H- q3 | Z: d8 Y, R8 k
- printf("\nExiting program!\n");3 `2 Y t; m- n" J7 @
- exit (EXIT_FAILURE); % k5 ~! s/ K4 T0 j
- }/ v: l" c3 O; E' h8 |4 f0 I m
- }6 U9 ~8 J) E, |1 J- N" g( n
- 8 l' v; d0 u0 Z9 v' [2 ~3 }' g7 _0 `
7 \3 Z6 z/ u$ L$ W- K* d) W% k- static void do_it(void)5 v# Z1 h: u; Y- s- x& u
- {
# N1 X, r5 d% R - int 4 e/ O" N. M: E" P. Q* q F
- attach_types[1] = {1};4 F7 g8 K7 B, {
- tag_t % \0 _! p/ n; w5 d5 G% X
- rev = NULLTAG, & {2 O" p1 o! U0 U1 N( q/ J
- process_template = NULLTAG,
/ U- A ]; P- K! g) R - process = NULLTAG;2 {( n6 J7 O8 c, O; Q
- : y d. a/ L6 r7 c5 W
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
- ]% d9 z1 y2 [8 W4 C - EXIT_IF_NULL( rev );. n M2 U: n: H- v& h6 m
. \6 T& \2 Z* t6 j, `% h- o3 l- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 8 B# A4 V. Q8 f( s$ W
- EXIT_IF_NULL( process_template );5 }7 ^5 g6 y6 n& n
" R6 D" n; i) L0 w9 a5 ]
3 _% T; d& d' b) u- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
/ Q' R; i+ i8 j6 ~2 d1 n5 l: ?; w - attach_types, &process) );
2 ^; l2 K+ h2 ~( \+ E; Q
" I( `( A4 ~5 g- b- EXIT_IF_NULL( process );* F2 T \" ?0 f! ? G2 u5 }
- }
) S% M1 A0 w9 ?7 y
D) ?( Y: Q+ }4 z! e3 k- int ITK_user_main(int argc, char* argv[])
- w- `/ I- `1 B% e. [3 Q - {
2 |6 V; j% m8 {, y3 F - int# k4 M9 T7 }1 |" Y2 S
- status = 0;
6 w5 Z- v! y! g, t! j - ' q9 w2 \5 t% q# O7 E$ |* \, P
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
* _ @' q: V. L& a( G - status = ITK_auto_login();
* w1 X* z# r& \6 K$ w7 D: E/ @$ v& l - + [1 t, o P* k( e
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");7 U _/ d$ y( p. e% A$ {
- else7 U0 @! ]5 Y9 g: e/ Y
- {# S) n' D6 k# }; {
- printf("\nLogin successful!\n\n");
: {$ O: [# R- K3 B& w) p4 t2 i - ITK_set_journalling(TRUE);
2 K2 S$ }1 J9 |& [( ? - do_it();5 ~+ s- ^: G- @5 j
- }" J9 @2 B3 |) t7 S( M, S- @& f7 w
- ITK_exit_module(TRUE);' j* _; P: X/ H/ n
- return status;
! E, J) G5 v$ t" L4 `* P/ A3 d - }
复制代码 , W. M8 Z% m) r3 r. x
9 `3 I* h; ]/ n; R/ k- J
& U2 J/ {! N" ^2 T. P5 k+ o0 v8 b |
|