|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/ X9 b5 @, C- ^) }Teamcenter ITK二次开发源码分享: 创建一个工作流
! G# a3 b) \4 l" u; P* C) z0 G" [
- /*HEAD CREATE_A_PROCESS CCC ITK */7 e' z: [. p p: V& e" z
- #include <stdlib.h>+ b1 Z, M6 Y: K/ Z5 B0 T4 h( b
- #include <TCcore/aom.h>; O+ R& A5 |, O9 M6 x
- #include <tc/emh.h>
: H3 j; m5 c3 b8 \: } - #include <epm/epm.h>; y. ~! B) r2 l# p( x6 D
- #include <tc/tc.h>
9 M5 v/ O# [6 ], @* W4 |7 P - #include <sa/tcfile.h>
9 O, v. N5 U& z- q! L e/ T/ @ - #include <itk/mem.h> @) g' k( `. w" t3 f1 G# ?
5 E% d) W& t5 C( a- #define EXIT_FAILURE 1
7 s5 d' a; m/ b! k# L - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
. J$ A/ G. b# ?/ V - static void report_error( char *file, int line, char *function, int return_code)
0 E7 `2 t6 ?! Y - {
! t# m& a; n5 \; e& o0 Q' J - if (return_code != ITK_ok)
( c- c, C5 V$ s - {* j1 V" c1 f/ E+ G) {5 H
- char *error_message_string;
+ c8 Q+ P5 m5 T - EMH_get_error_string (NULLTAG, return_code, &error_message_string);7 m8 {$ R8 D+ _9 p$ h0 J
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);3 o) b1 q0 ^: w/ c# b4 T
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
& \/ y, i) d2 {) D2 A - if(error_message_string) MEM_free(error_message_string);6 J: C9 h+ `6 l/ ~
- printf("\nExiting program!\n");
6 R$ d; ]: F0 C. Y, h6 x3 d, Y - exit (EXIT_FAILURE); , e. {' p6 m y' x
- }
- }/ T X. c! L: d* D6 ^( K7 J' D) F - }: H* t* L0 t& {( n& T6 S, E( E
- ! s5 Q, B# d" u' O" b* l. [
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))7 q& z0 S" [9 l4 r* M/ R0 p; K9 H
- static void check_value( char *function, int value ) X) n* Y( _8 O" I2 [4 H$ u
- {
6 v* S* Y0 A- v& A - if (value == 0)4 t/ n/ _- Z. j; R# k1 M9 [
- {
8 n5 {: A( ^* J0 F - printf ("\t%s is NULL\n", function);
% d! k, ], k- [ - printf("\nExiting program!\n");
/ P9 R5 Z' Q* x* i' ^" @, o - exit (EXIT_FAILURE); / }% l2 V& J1 X m/ K! S+ h" l
- }0 y. g3 K7 L& U x
- }& k- D" K* N$ D$ T; M9 x
- 6 u3 }8 r3 ~$ Y4 s7 Y
- ( \4 p& }* C% q+ `" _+ _
- static void do_it(void): D* c% N7 {/ L- _+ f
- {
) G2 F: j4 v/ X/ g/ M& }1 i - int
4 c0 {: P* V3 v8 a8 t1 y C. k - attach_types[1] = {1};1 U: k3 [) y* J
- tag_t
2 D! {8 G, ]! d# T3 s. m1 u. e - rev = NULLTAG, 6 p1 u6 G- e# h5 }$ h; _1 s# M
- process_template = NULLTAG,
8 o& M$ x) R a, A" c- _ - process = NULLTAG; a1 U( j6 E# R/ s7 F Z4 w
5 f" I1 Z: X0 z1 O) h* ?- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );. \. r6 w m$ Z5 e5 W. ?( ~" \ w
- EXIT_IF_NULL( rev );
3 v& N! R) Q/ y6 z# c( Q) j0 X' c - # C. S. X( g9 Q2 q
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); , y* i7 z* z" t5 S0 p+ h
- EXIT_IF_NULL( process_template );4 N: B) B; h6 U' q, P( [+ ?8 B
9 k f! }/ a: Q) L' {+ t
0 b0 W. O: w& _+ \/ A% j/ s# Q- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, # t8 ]/ E, r" C% j* ?! \0 A/ d
- attach_types, &process) );! p" `0 x0 E% G% B9 G
; n4 o: o5 u6 ?0 P$ [2 F- EXIT_IF_NULL( process );
* K) C2 w$ S7 F! |) z5 z) i. p& q' M - }
' _" ~* W% h, d, z w# N - 9 R+ i7 _7 e- _* @, `8 i! r- K
- int ITK_user_main(int argc, char* argv[])/ g' T$ Z6 j8 U9 H- A
- {
0 W' m% ~6 c+ F5 P+ L - int
) k- b1 ^. w7 Q1 h: [* ~( h - status = 0; 3 a# x6 Z1 A% U% ~$ B" [; D: ^
-
- s! ^8 m! d3 z: O) R1 o& W - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
9 ]" ^1 u: U- J4 ~( O3 e - status = ITK_auto_login();
' F# ~& J. I3 `2 l$ h5 U0 G+ c1 [ - E9 A3 d9 y% Y2 Z' [4 m
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
8 p5 t& C9 N/ z/ T - else% W" R: u$ E1 ~! g- F2 g1 w7 Y/ [
- {
C* g7 {' q& a6 c* @" K7 Y0 r - printf("\nLogin successful!\n\n");
* {2 E Y- b% R6 v3 Z: D8 q - ITK_set_journalling(TRUE);
# c' p1 X! O8 ^; V5 q9 Q6 O( G - do_it();
0 r2 a+ t3 c3 l8 } - }* {* f* m) Z& f
- ITK_exit_module(TRUE);
/ k+ i( D; R0 a" B4 ^ - return status;
, T5 K, c* G& Y - }
复制代码 % v- A4 q; s$ t3 h$ M* r
. X) A% f( P4 d3 b' u- w' N! Z$ P' o& K
|
|