|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
. N. b2 O* i+ U& A- U5 Y ^8 C8 a
Teamcenter ITK二次开发源码分享: 创建一个工作流
4 c& g; ~5 {/ A; R! _ r( A/ x$ M" i6 m9 x& S+ |3 N. {
- /*HEAD CREATE_A_PROCESS CCC ITK */9 h z' T% n4 p7 z( X, \* o5 P- ?
- #include <stdlib.h>
9 W$ [! I+ G V# }* S& i E - #include <TCcore/aom.h>
1 Q- `- n- b' c' Z9 R7 h2 M+ \ - #include <tc/emh.h>/ v% a5 M* ~' i |8 j8 N
- #include <epm/epm.h>
, W6 @7 t- b8 z4 h* g - #include <tc/tc.h>
- b O) z0 a" V, l" ? - #include <sa/tcfile.h>
5 W+ p7 ? \4 c/ `2 R" ~9 q - #include <itk/mem.h>: f2 J$ O1 s2 g4 b2 g2 A
( |, W% w- u2 L4 v4 a% @+ i, p- #define EXIT_FAILURE 1
) p2 S/ Q. C6 \7 Q* |. s; n* ~ - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))) k+ r. z2 m8 r/ x [; l
- static void report_error( char *file, int line, char *function, int return_code)
( U! Z4 |* e& d. p - {$ O9 i3 @# C2 Z8 a5 v
- if (return_code != ITK_ok)9 b: r# `2 c8 ~: z2 k
- {
! p4 _0 y& d' {- t7 H( b) U& A1 g' B - char *error_message_string; A9 |8 S+ _8 q& z* F9 ^
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
- ]( @- r3 d* h) {' X - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
, C7 @7 t4 l* @/ U- A+ k+ V9 k& k - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
4 p/ B9 t* u: A+ h3 s! N2 n; g0 ]7 V - if(error_message_string) MEM_free(error_message_string);
% ?: ?/ Y: l* \: ?& } - printf("\nExiting program!\n");
. ^- k* Y- s' {: ^" f2 x ^3 J - exit (EXIT_FAILURE); ! V0 K% q7 H9 ]1 R1 D- f; a' [4 v! c
- }
/ U' W9 v; j1 w1 Q) N - }
. Q/ R3 \$ m) H- O) f
6 ?: Z9 J8 I' }7 H8 Y( N- #define EXIT_IF_NULL(X) (check_value(#X, (X))); i) U5 l4 u" o3 @( z
- static void check_value( char *function, int value )/ ]1 e6 k& y3 _- D
- {# X, C$ N, K0 S
- if (value == 0)
$ {" y G7 `2 t7 f" P- u - {0 ]. I7 ~$ j! w: }3 C
- printf ("\t%s is NULL\n", function);
( I3 n, ]4 n' q# x8 |, ? - printf("\nExiting program!\n");# T8 g, }' F1 x1 Y, j3 S4 y0 q
- exit (EXIT_FAILURE); " v2 a5 Z7 }' O
- }5 B8 U- d8 s& B4 n
- }. e- g( d2 q" C
7 i7 ?* A( `3 c/ I' ^/ _, j- 2 T- o+ n' v6 C( D
- static void do_it(void); o! ~+ u2 j; c& Z. {* l# t0 n
- {, T4 s C3 }2 u' n& B
- int
2 D4 l* B- H0 }1 l. i6 o - attach_types[1] = {1};
7 o& I+ m& j# L; W7 V2 X5 ]5 D+ j/ d - tag_t
: |) \6 \: J+ |# ? - rev = NULLTAG, 1 f. L5 z* E) R# R
- process_template = NULLTAG,
- k9 R& S: L6 K - process = NULLTAG;! {5 ]" s* R% `1 F; M0 P8 ]
" Q% I: p" [1 a- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );+ g0 S$ ~/ c$ f- C2 a$ n
- EXIT_IF_NULL( rev );
7 A( y( ?6 n0 d: C6 e - , _( s3 h! i6 r% x! i _0 D4 X
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
1 d0 O$ `4 \- [ u8 T* Y - EXIT_IF_NULL( process_template );
; a. m6 ^2 A7 t# \# b, W1 R4 ~
8 R, l6 @* Z1 }
: b. z' T2 \$ N. v) G- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 1 A: H$ [* }# r& C( f6 @8 f
- attach_types, &process) );0 w; @1 x. y- J% J3 S: l& Y7 r
- 2 p* Y" o) V- W, i$ X' F) A1 |' ?
- EXIT_IF_NULL( process );
4 i1 ?5 C) }4 o, y' Z - }
/ y% A0 ~- n% C7 R
' \' ]9 e: W* E+ f' v- int ITK_user_main(int argc, char* argv[])* I3 {* d2 C- n2 }
- {2 G9 l" Q) F# X/ v
- int
3 x2 L& G6 I) I9 c1 x: |5 n2 k% ` - status = 0;
/ w" P" i8 r: e! O: G2 B$ s% r - 8 ?* d, a" y0 V) Q7 J2 s \
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );3 a8 S) Q8 O9 m8 ]2 m3 O5 G
- status = ITK_auto_login();% i+ \0 I) d" q, o
- ; m* z2 t7 o! a @5 |; H1 m9 u& h
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");9 p0 x5 A# k: M! k! p
- else
3 r: s% S+ Y2 E$ r( Y - {* B" v1 V! N( G- {1 i
- printf("\nLogin successful!\n\n");6 a( F" s( _& O' ?
- ITK_set_journalling(TRUE);+ x( j# h8 ?( V1 A/ f) e0 p c2 f+ }
- do_it();& }' H9 {. Q3 @; N3 P9 g
- }
8 A" U0 l9 L& x# Q5 P y - ITK_exit_module(TRUE);
$ X6 X6 m. h0 t) ]; B& v - return status;1 R' H' r$ o, v# Q L; k
- }
复制代码 1 [7 b8 x3 B. C. l8 g P F* |
! W6 T) z1 t3 E. _( a
' p: `3 k5 `6 d
|
|