|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 k W* @3 r! xTeamcenter ITK二次开发源码分享: 创建一个工作流6 Q- m$ }4 k' y6 _ s4 `- P
8 h8 a" v* }7 A. W; k& ?
- /*HEAD CREATE_A_PROCESS CCC ITK */
2 c9 L2 {9 `4 w3 l& V y5 [ - #include <stdlib.h>4 m. X! Q7 B5 z% \2 K
- #include <TCcore/aom.h>
/ u9 ^1 d7 g+ | - #include <tc/emh.h>
! f5 V1 S5 m0 d& `# i - #include <epm/epm.h>+ M6 R! R0 h6 ?* [% o# F
- #include <tc/tc.h>
! t6 _, ]4 n5 i# t - #include <sa/tcfile.h>
& N! l8 P' G, G4 G2 t8 w! R - #include <itk/mem.h>
+ C3 H" y4 ~; `) |. ~0 x - 7 R' I' v8 X7 W4 R
- #define EXIT_FAILURE 1
8 m% ^* m: R1 V. T6 u7 }" e3 |( l0 l - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))1 r) |( Q" x4 S$ `* x: S! V# }
- static void report_error( char *file, int line, char *function, int return_code)6 e0 _7 X- T2 ~7 H
- {6 ]) O5 X/ W( |* k/ ^0 u( c; R
- if (return_code != ITK_ok)/ ~# S+ o: A2 a$ C2 y" P
- {& t; r1 _1 X( a% a
- char *error_message_string;
; Z' ~. W$ Z% \ - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
( W4 r, Q1 T1 | - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);* i' B1 B" H* f2 f
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);0 A$ k& Y: s6 F. H
- if(error_message_string) MEM_free(error_message_string);
$ Q& H# ^! I# t5 V$ x - printf("\nExiting program!\n");7 a, }, M A6 h$ @ i: e
- exit (EXIT_FAILURE);
; r! H- j8 e+ A- V- Q$ k* I; L8 R1 d - }
- N3 Q+ m" @: o! G$ R2 u+ T - }
7 }) p. G7 o5 E
0 u) j# z9 I6 F- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
5 i0 P9 E) k( G8 Q/ y5 j2 ` - static void check_value( char *function, int value )1 C& t+ J5 R7 V7 D ^
- {, v) L8 d5 U) O7 J1 U* r$ r- @+ S
- if (value == 0)" {) N) O5 D& g1 I9 Q6 \
- {1 h7 a5 N" K( a w' e* K; F( i
- printf ("\t%s is NULL\n", function);
/ b* ^% ]# g3 a8 Z9 ]- Q7 a - printf("\nExiting program!\n");+ V$ G4 t: r. p0 _* |
- exit (EXIT_FAILURE); 5 s! H1 [& q8 B1 I
- }
. n3 g5 u! p' x6 {/ s - }1 W2 ^" c! B) ?3 Y/ ]
- % W2 T2 z1 y j! c7 M. z
, T6 Z0 L0 O9 g% m- static void do_it(void)
: d, O2 P/ ]0 s5 W6 Y) t, |2 W A - {" \' @3 c, y- ?
- int
- K1 j. u! H ?; D4 x I0 z6 t$ V - attach_types[1] = {1};' J4 B8 x G$ S7 m5 J4 b
- tag_t
. r2 t8 F7 Y/ U/ X- S. c5 R - rev = NULLTAG, 6 e, |9 U8 ? w X+ j0 x! e
- process_template = NULLTAG,
; _5 N9 a) E, F, U( `9 c" ~ - process = NULLTAG;) n4 t- [9 U) O) S6 U2 W' Y
- , e0 W3 b) r+ M; a5 ]) f6 i w
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
I" D s2 a% o% I6 d - EXIT_IF_NULL( rev );; p$ D2 O; O+ Z& u
- 6 u6 s# b/ i0 x. q9 z4 i- m
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 8 j5 O% S V7 \+ B
- EXIT_IF_NULL( process_template );$ T; o9 q! p; q: f4 h) X
- ( B( p# H7 Y0 t6 J% [1 a" f. k
; F( ]+ W& `; a7 K) ?5 Y- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 0 u% I2 _' [: W' O& j8 }* b- e A
- attach_types, &process) );9 J4 D: _) Z( P2 s5 N3 K# ]
& G- d5 k" b1 G" R- EXIT_IF_NULL( process );) u) o( D$ w1 h+ D; A! V* \
- }0 j$ g3 v5 S1 `; I
7 k) c Z: v/ \/ |. q! y- int ITK_user_main(int argc, char* argv[]): ~- N1 N9 u# M2 v \
- {4 P- }/ L8 ^' E1 F
- int/ b5 S) H, K, V# F
- status = 0; . Q' H" t- Q" F1 X' T' u, I# C
- ' s8 h- V3 e, j* I( O
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
# }% d) h4 f- R7 ?: Y5 Q6 J) l - status = ITK_auto_login();* g( U# [: g7 f& h" v& z
-
% X8 O/ v: |, R" Z. G5 | - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
3 f2 P) X: L, C - else
0 ?& H- n6 `! b' ?! J1 f" k - {% r1 U* o( Z3 g3 o
- printf("\nLogin successful!\n\n");: W, g6 k! {! V' w* a
- ITK_set_journalling(TRUE);& e) a& p; `7 B) \) j
- do_it();" W# j/ N3 M' k' e% w; l0 I
- }3 u- C! b0 x! B. s/ ^: M
- ITK_exit_module(TRUE);7 n6 R2 d# [, y; n( I }; K' S4 u
- return status;
5 y8 l+ C' g4 v" Y% A6 ^% H8 F - }
复制代码 ( D, ^: G1 A+ Q4 o, g, D
& N( p5 `* {* H' y
/ T6 a# L: z% s4 W |
|