|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
: D- d0 E+ V0 A/ a
Teamcenter ITK二次开发源码分享: 创建一个工作流# u2 J5 T$ c* X( C9 w/ g
4 p$ H& H+ s6 N* Q. s
- /*HEAD CREATE_A_PROCESS CCC ITK */5 a1 H4 }% A+ z; V( I4 L* n
- #include <stdlib.h>
5 Z' {2 B* z6 K& H9 ?5 Y4 r - #include <TCcore/aom.h>
6 {# z, {7 ^ s3 ^% o+ x - #include <tc/emh.h>
$ g4 F- ?0 b' d8 u' N4 ?' l - #include <epm/epm.h>
, F5 S! ?- x: w' @/ B - #include <tc/tc.h>$ @6 r% k' k) s9 [4 c4 X
- #include <sa/tcfile.h>+ `& N" b% ^7 l5 t( i1 d8 P8 U
- #include <itk/mem.h>
) p" n5 W8 F# _3 n' ~ - 1 v% w$ c$ W2 p# Q! a1 |
- #define EXIT_FAILURE 1
/ r4 d: ?- k- k h2 I - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
0 E5 s% d2 S; E( q m - static void report_error( char *file, int line, char *function, int return_code)
1 h/ o ?/ S3 a - {8 u# b1 M3 ^% j4 ?: Z2 \+ h8 ~% u
- if (return_code != ITK_ok)2 ?/ V! l" ]. ?' W5 v$ X# w
- {
; J+ E. E) Y/ W - char *error_message_string;
- t [0 A" L. P! W - EMH_get_error_string (NULLTAG, return_code, &error_message_string);, ]' F2 b" h" K @
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
2 i' X( c" q E0 e0 `* Y - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);1 H- P# d; h5 [0 Z
- if(error_message_string) MEM_free(error_message_string);
, T7 B8 h5 A% b4 [ - printf("\nExiting program!\n");
. |) P4 c5 @+ E - exit (EXIT_FAILURE); ( E1 O/ B6 x+ B; T$ o
- }" c% P% Y' u5 f4 g; ~/ U4 I
- }
* p9 q) M W+ w9 d' c
" o c0 a. X t1 G$ D- i- #define EXIT_IF_NULL(X) (check_value(#X, (X)))) k3 ]3 n" E8 A. ?1 D
- static void check_value( char *function, int value )
1 h! x9 d9 J/ v4 j; _# {/ q1 B - {/ L" r3 D1 T( ^3 }% ?4 D5 T7 d; n
- if (value == 0)
! T) v/ X* I% q1 f+ d4 z - {5 A/ b7 r# T) @# C4 d- L8 G' W
- printf ("\t%s is NULL\n", function);
8 W' ?2 }' t8 \. \ - printf("\nExiting program!\n");8 s) m& D! u: ?1 ^+ k0 S, e( _
- exit (EXIT_FAILURE);
- I0 L# P, ?$ n2 w8 L' t* B$ i - }
, X1 _" x( A2 e1 j7 w- b$ s - }8 v, l ]. y$ m* F1 s
- 1 q/ ~* l' U/ i+ C
b2 O4 W- O" X% D- h- static void do_it(void)
3 a4 L- O* ?- [0 ~ u6 w - {
* G7 M j. C) i - int
% V* U8 b! X8 s - attach_types[1] = {1};
" [8 _( v% g+ l- o" T# F+ R* o - tag_t
+ ]1 s$ }& y X, M0 m' y ? - rev = NULLTAG,
0 C/ B! v% y0 M! G ~; L - process_template = NULLTAG, 0 u# F, E" ~* E& P
- process = NULLTAG;; k% h P% G% o9 z3 j" G
- : J- ? h! U7 D. v
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );& z! H0 N3 n$ ]# H9 ?: q* g
- EXIT_IF_NULL( rev );) k6 r4 D# Z& k. K
- 2 l3 T6 H. j8 @8 p5 c/ D
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); # a% t3 k" h. J# h, Y4 X
- EXIT_IF_NULL( process_template );
0 E# C: [' u8 @- R& u
7 b3 }6 A+ L( H7 z( r
Z5 I- z! V! t8 @( r# o8 }- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
% e5 \/ `1 a, Z2 K7 N, e- p, o - attach_types, &process) );3 Y6 C( v/ w9 o- Z) M {% r
- : @0 ]/ o. q& W6 S& z$ m3 m g7 t
- EXIT_IF_NULL( process );0 u. x1 S& e/ E
- }
+ X6 k1 \) _9 H
0 W# f8 T: e: w+ e% r& k: q- int ITK_user_main(int argc, char* argv[])
6 ~; G5 r v% ?3 o3 @, c' { - {
# g7 S" s2 j# T& Q( M - int3 B9 r( X8 {5 O% j6 H- v% V4 ^
- status = 0; 4 p/ Z l$ h! K
- $ M9 S r D$ ^6 Y( L1 r8 p/ x W
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
- N$ ^. O( z( x( m" E9 v - status = ITK_auto_login();
& ^9 j$ Q. Q( I Q+ @2 c, J4 _3 L! k -
/ t: I& K0 y9 Z9 ]7 Z7 Y - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");0 e) r" P$ B0 }/ m& \
- else
4 ^4 S/ u5 }; ]0 E7 I! x" y* ` - {8 t& [ y3 o* {; ]1 X$ D' A1 C
- printf("\nLogin successful!\n\n");6 x2 A" M8 o4 I3 j0 X
- ITK_set_journalling(TRUE);
" y1 E; r. C" |6 F# X: M- f+ ? i - do_it();# o7 }) K+ q4 D2 L8 k
- }, b3 ]+ N: A9 _+ M* c4 |
- ITK_exit_module(TRUE);
& F, W) X7 C/ ?6 z7 g - return status;
" G/ ]8 a# O. n" ` - }
复制代码 ' G4 D- Q3 [1 O
1 K% ?( M5 { D! e& G! a9 P# z
6 m8 \# j5 H0 {9 W |
|