|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
+ J( D/ x# L7 t0 a. h3 p' ZTeamcenter ITK二次开发源码分享: 创建一个工作流. ^, C7 y7 n7 Z' j8 g6 g9 g
) h% x0 ?' t1 h9 ~6 \5 b4 x- /*HEAD CREATE_A_PROCESS CCC ITK */
* o, _: N5 _1 }& P9 ~$ I Q - #include <stdlib.h>0 A2 `0 P. |4 q" ~' K
- #include <TCcore/aom.h>- O T& y2 g1 `3 k8 B/ B4 [2 D
- #include <tc/emh.h>
& G9 P; I: L8 t$ y9 O - #include <epm/epm.h>
- t* L& m, I' t! A& Y7 }; E' A1 ^ - #include <tc/tc.h>
4 h6 q5 J- u+ `9 p5 H# @ - #include <sa/tcfile.h>
W/ C* C2 {2 G8 _$ T$ `1 Y - #include <itk/mem.h>$ i% C- h* H8 D0 Q9 z* z
- Z8 Z( Y/ D$ U( g
- #define EXIT_FAILURE 1
/ \4 W" B1 ^2 ?3 G M( p - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
1 d$ d+ Z/ |5 _# Z - static void report_error( char *file, int line, char *function, int return_code)) A u2 f4 Q' U$ }* d4 w
- {1 @, x8 v6 F2 S7 W5 f" N
- if (return_code != ITK_ok)7 y# ?* i$ k3 G+ O2 J& `
- {
& k) R4 F, x9 B7 p' { Y - char *error_message_string;
2 Q6 }' r! e3 f6 a - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
* p" L& l7 @4 V7 h - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);! T2 `- l3 V% D- V
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line); g2 O" B4 c, q) N" d, g+ {
- if(error_message_string) MEM_free(error_message_string);; y* b6 h% k- m: `5 x+ P$ y
- printf("\nExiting program!\n");& z. x0 d+ ]! `% y% o* N
- exit (EXIT_FAILURE);
" z5 M' H* C4 n& x; G H+ V - }& f& v* o3 M5 [0 T6 r4 N4 _
- }- ^. a& s5 w, R+ f% \# {3 s" Y& f
- ; {0 N8 s3 |; g @5 b' u/ S" y
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))# i0 N- M- c+ i/ K Z/ B) P
- static void check_value( char *function, int value ): t# I6 k4 I, T
- {' B- W- f3 n( ]+ R: C* ?0 T$ ]( o
- if (value == 0)" P- X3 R( w* E2 S; h
- {
) l+ K' ]6 k& @ - printf ("\t%s is NULL\n", function);' @, s: X" C- b4 p( T: E) ]( Q0 `
- printf("\nExiting program!\n");5 ^& i# H9 \: Q9 P B: ]
- exit (EXIT_FAILURE); & \% T2 c+ M4 i, Q
- }
: |; O2 ~4 b# j, _3 P - }
6 V8 u( x5 b u$ F
6 q/ {# v9 C. P
& ^8 z# x" s0 Z( m- static void do_it(void)
+ g9 i' p8 v6 E7 V0 X+ U - {3 M! V3 [! M1 X( T3 d4 m
- int
8 p+ o! V7 o0 Y: `6 u) N- }7 h. ] - attach_types[1] = {1};
+ h) j$ r( U- ^* w4 e - tag_t
0 _% v M9 F2 `5 L - rev = NULLTAG, % i! W S: j3 @1 `( [2 `, F5 q
- process_template = NULLTAG,
+ T# ^: Q; A# g6 n - process = NULLTAG;
/ x3 @$ F8 Q" G8 m
$ q* x4 I2 [! c; u4 O; C1 }: ?- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
8 m v; p3 I% ~1 R8 H5 @ - EXIT_IF_NULL( rev );
2 p% i8 b2 H6 {9 }5 z- i - , g- w- H C1 z- b" Q7 ~/ T
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
, R" ]' C+ X; e, h J+ @2 }# G% L8 o6 Q - EXIT_IF_NULL( process_template );
* p1 l6 G: u9 \1 g! A
$ v% K* F1 N2 A/ q& X$ c1 H \
5 [9 S# B W$ G2 O7 Q% q- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, " f3 t$ O2 c' G& I
- attach_types, &process) );% g7 I, ?- M+ |: f! h
. y8 w$ m' R1 M- EXIT_IF_NULL( process );
+ \/ r3 E, o0 ^ - }- H0 u# Y- S& `+ r5 c8 M# r% W
2 t* g; b5 E# t' [ n8 I! M/ `- int ITK_user_main(int argc, char* argv[])
% s7 Y3 v% g4 k$ ?/ X7 S - { P L/ ~, d1 z" l/ ?
- int
6 S& q+ P+ M8 o5 l5 Q; N; V - status = 0; 2 _: S6 z; l V
-
, N( z: r" L$ u! y) V - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
1 `3 y# z/ x/ Z$ \! X. u$ { - status = ITK_auto_login();5 x" {* x5 s& l9 h g% S4 T, F
-
3 r/ ~9 q. v6 E+ q x - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");+ s/ I( m: t+ L7 `2 l a
- else
1 `# ~) B1 C( G0 p8 t - {8 ?! Q' z7 e3 |' v" b! r+ w
- printf("\nLogin successful!\n\n");
2 C6 j; y7 U' Q6 i9 f6 g - ITK_set_journalling(TRUE);7 t8 V3 d, ^: w1 a; S
- do_it();
# c2 p. M) A/ y+ G1 ~1 M0 P - }
* P; U. R) ?. k' n4 z) L- y; x - ITK_exit_module(TRUE);" `. C5 D6 J) W, N3 \, N4 X
- return status;. V% q. T' w5 |( n2 c2 O4 ?
- }
复制代码
. R. N: Z% K2 w- Q0 h+ b6 O( q0 y& R/ |
$ @0 Z6 k( ^8 F3 ^- i2 [ |
|