|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
1 k5 Z1 Q+ A2 z- b% ]3 A
Teamcenter ITK二次开发源码分享: 创建一个工作流+ e7 I) ~. B0 U8 ^. c1 U% q
7 y6 `3 _# n1 Q2 A" n9 G
- /*HEAD CREATE_A_PROCESS CCC ITK */ G2 J( S: p' ~: Q( X
- #include <stdlib.h> c0 i4 a% ]+ V
- #include <TCcore/aom.h>
7 i7 v9 j0 W) M8 _8 i - #include <tc/emh.h>7 x; t, j0 X# I8 A0 Y% \& q' [
- #include <epm/epm.h>3 f" y' g% e+ T" K3 i/ _3 p
- #include <tc/tc.h>3 c& B4 O, K% d- q; q$ t
- #include <sa/tcfile.h>
$ ]7 i) S" B6 S+ R: C5 e% N - #include <itk/mem.h>& b+ |) M. [/ X7 e
: j2 k) z3 ^3 F% R: L4 H4 B; ~- #define EXIT_FAILURE 1
3 V, T) R% s/ D" W# G - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))7 S2 s' W7 V) U' [' h% Y1 M) z
- static void report_error( char *file, int line, char *function, int return_code)
2 X( O7 N- P2 O2 a3 j8 _ - {
W- L5 d5 d9 m; K3 y# g, M5 t$ l& B - if (return_code != ITK_ok)
* |- `# u- g& }, M7 \3 m - {, Q5 Y" |) m8 W& V7 s
- char *error_message_string;! |- i2 g; t( p, B. t! o/ }- L
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);5 U: i2 @ X5 M1 ]: `2 {" X
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
, x1 I `' }* Q- H3 Y( T - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);4 x, `9 v, _) O! G6 I' p# B+ g& N9 y
- if(error_message_string) MEM_free(error_message_string);" j6 H. O$ i. b8 m4 o
- printf("\nExiting program!\n");7 Z; {7 f$ R8 A; }9 Y
- exit (EXIT_FAILURE); : o3 z; u; T6 B: I
- }9 D+ e: |) z) T, d5 N, G$ m6 `
- }$ C! r/ }2 y: B" n9 P, D$ X5 B
- D( Z9 z, I% j
- #define EXIT_IF_NULL(X) (check_value(#X, (X))) A# d" n* {/ t1 j6 w; F
- static void check_value( char *function, int value )
p) H. v% u8 t - {& a- q9 e9 E3 E5 P
- if (value == 0)
, k6 ~4 ^% f Q& I+ x. a$ a2 Y& z - {+ m, Z9 K6 s7 c; e: B
- printf ("\t%s is NULL\n", function);3 ^! B9 |- d) D
- printf("\nExiting program!\n");4 \& ]& P! ~6 X% I
- exit (EXIT_FAILURE);
+ W$ L9 V/ J# m/ f U - }
$ \. V% W5 C. X, e& w6 W( E - }6 M6 w$ x( i$ G/ ?8 U4 c8 ~1 Z) P
7 Z! t4 Y4 [$ R4 E: J5 p- 0 |* q; i* m6 U; F; o
- static void do_it(void)7 E6 [- t6 V% v# ]- T! D
- {
6 Z: N Y1 ~0 f( [5 z8 A! Q - int 8 s; l* m. E2 Z6 u% j" d
- attach_types[1] = {1};
" r" c1 \; h9 }: E: ] - tag_t 9 ]+ z3 `) b' K% I3 z) Y6 M
- rev = NULLTAG,
! q: ~% [0 w/ u' u' j - process_template = NULLTAG, " Z) V" K. t+ D4 X4 L E- ]' Z
- process = NULLTAG;
2 I1 D9 H6 Z: j9 V( ^$ J# c5 P' ?
3 @2 T; f- }0 k6 E8 Z6 a H1 q- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );: H' K+ ? R0 L+ x j: N* X
- EXIT_IF_NULL( rev );4 L, U! i1 p/ e/ K- f4 [
- ( S, R4 R7 P, [0 q2 _ ]1 T
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
4 E, Y$ \$ q1 O7 I& l6 s - EXIT_IF_NULL( process_template );$ F; F. p+ S9 s& r8 }6 j' w( h
2 G* b: {" }+ z: n1 q
) `9 K: a8 T1 ~% O: R# a! p! H! [6 {- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
0 S8 e( v* z: S5 M7 o. e - attach_types, &process) );
. J, E& H* ~: c2 w - 8 T# S, Q" \4 O: ~. F7 @3 @7 g
- EXIT_IF_NULL( process );
6 L% ]. [+ B; X1 x - }
% p* o R2 |' D2 U5 i" ~. i2 _ - $ J. e, N6 e; |1 A3 ?, @/ w
- int ITK_user_main(int argc, char* argv[])
- u; g" W! N X# f( A6 k' Y - {1 c6 T6 Y+ y! Z" E. d. i8 o( @
- int
- O* G" X* Y- q9 S! l - status = 0;
$ l2 Q* g5 s" R+ } -
/ ?1 f. J- K- E h1 ^ - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );) h4 L2 Y( R5 H" B
- status = ITK_auto_login();
1 ~" |7 A/ q3 E+ v - 1 [$ S" M& d( G# e1 j' _" {
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
; H* `. v! ~: S6 s% V - else1 ?$ N5 }: J4 Y) @ l4 R3 Y
- {6 q+ O* W( q' R, |! @
- printf("\nLogin successful!\n\n");
' I" B! x! Z% S/ B; E0 D - ITK_set_journalling(TRUE);: }4 n; U& V" D# ?
- do_it();
- i" _" t) d* i$ o4 z - }
% |* s" |% t! e) B5 C - ITK_exit_module(TRUE);
7 F( C& s' \' ] - return status;; B, b/ ]% B3 S1 ~. Z
- }
复制代码
* k9 u4 x, O4 H
$ t3 y; j% d/ e" I* ~3 Z
2 @ n* K; m2 {( R |
|