|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
! V& U) v, ]; ]: w: Y
Teamcenter ITK二次开发源码分享: 创建一个工作流$ T B% {3 _. t' \; D/ ^
X( m3 z/ d$ U& E
- /*HEAD CREATE_A_PROCESS CCC ITK */
9 A; o& r& C) J: B: A i8 s2 A - #include <stdlib.h>. f) e4 K: h0 Y- ^) m+ {4 \! Z' A
- #include <TCcore/aom.h>% M: `0 M( A! j" ?5 X) V$ O. F
- #include <tc/emh.h>
7 k z$ O) P0 Y7 A8 R - #include <epm/epm.h>
/ S7 Q' Z' g" y0 U* v - #include <tc/tc.h>, T# r2 S: t: T) c
- #include <sa/tcfile.h>$ {$ u5 L; U, | s
- #include <itk/mem.h>8 m6 c6 @0 n1 ~# M# w m r
- R7 _0 s E7 i$ X8 g: m
- #define EXIT_FAILURE 1
' P3 i7 [& o3 f5 k - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
' W( u' q$ X/ E - static void report_error( char *file, int line, char *function, int return_code)
1 N) C- K5 g- H5 a# ~# l - {: M! z# V) E5 z
- if (return_code != ITK_ok)4 U( ?" [7 l; Y$ [
- {
" L) a2 C2 O2 K" \6 B0 w+ s' n5 m4 l - char *error_message_string;
9 b) H6 s7 x1 c3 I - EMH_get_error_string (NULLTAG, return_code, &error_message_string);; }# C" h1 F% r; m' @ k
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
, {3 [/ u. x6 v! L N8 ? - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
& A1 }; g5 W. V" }' R3 z5 x - if(error_message_string) MEM_free(error_message_string);
; Y4 ?: [. _$ T+ l( |+ w8 G - printf("\nExiting program!\n");, T/ p, T7 ?* S- P+ ^# ]
- exit (EXIT_FAILURE);
- |$ g1 K: K* q5 f - }0 u* t6 P! t7 g4 ~- c! E) Q
- }, T" m" u5 I8 m( G( o* }
- ! c; [% m% \+ u& z+ {
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))2 f8 y# |) l3 J% X; f# @
- static void check_value( char *function, int value )5 F" F; w% z( s) q7 ]; M
- {/ w# N5 r9 o7 x |3 `" m+ N
- if (value == 0), z$ Z/ R. K. s2 u5 P! [4 k
- {& H( r/ Z/ R7 Y/ t' k
- printf ("\t%s is NULL\n", function);
- X R3 H; }0 N$ Z6 T, r - printf("\nExiting program!\n");* ]1 k( z* w/ p9 R: Z( m
- exit (EXIT_FAILURE); + i/ q6 c8 l4 B7 e3 Q2 S. P
- }
; D' U7 f9 v5 [( ?1 _ - }
0 J6 I% c! C1 ~' M0 C; T! f( r% w# V: c
5 l) J9 O* K! s; c. `- R$ h( F- 7 L" Y$ ]6 F& \. d/ v& m9 _- ~
- static void do_it(void)
9 q! L8 f8 r* B: M) \7 {( y - {
& o9 ~. K# X+ T' W - int
6 g8 Z7 t, M2 i( D- H! D6 f j - attach_types[1] = {1};
; z1 t9 Z) J' {/ E) T - tag_t
7 ?& e5 P1 W' J6 L) w - rev = NULLTAG, 2 x8 Q7 J; u5 }0 T+ _ d5 H! e
- process_template = NULLTAG,
6 c! M1 e' i$ V" H - process = NULLTAG; X: S2 {, w6 e3 j: u7 E
; H5 x$ @1 X0 ]8 k% c/ Q- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
0 X6 o! B% D! \9 H - EXIT_IF_NULL( rev );
- [( {- `9 E5 J w3 b B( T - " F& |3 N0 T) w+ i4 B6 I9 E& R! z
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
" @3 l% M5 O; r, H6 c$ x+ y - EXIT_IF_NULL( process_template );& H* W- J4 j0 ^( G# h- W" H* ~
9 Z' O ?6 W# G5 w) w* C# s- # j. K& B n# |" f
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
" ?7 q7 ?% U' ^; {! l - attach_types, &process) );, e1 I$ f! z i$ c
- : @- K' Y% b% K4 r+ K+ N- c
- EXIT_IF_NULL( process );
E# d. \& { C6 \% [1 q - }
1 m) [6 L, O. k
/ T& F% F3 `+ m9 {- int ITK_user_main(int argc, char* argv[])3 |( y' }# [$ e; {1 S- q8 i
- {' k! g+ J2 O2 [7 y
- int
4 C- F" D) f5 T8 K3 c. ]* [% ` - status = 0; 4 |; E" k, F9 C5 z E4 i* D
-
& i8 o! L* L r* c. V - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
* E3 B8 X) U: {0 P. E* I1 l! T! @ - status = ITK_auto_login();
$ @8 o# o4 d' ?# F& c- |5 g -
: S" v) H! e" Z" y - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");, x* m/ G5 l) g3 K( E
- else, {3 H8 {& @7 F" Y3 D
- {
& V1 a d" p+ P9 K6 N! j4 M - printf("\nLogin successful!\n\n");7 B' d# C, |# ~ O( u1 x' A
- ITK_set_journalling(TRUE);, L: ]2 _: h. @
- do_it();! |# {0 t6 i: d( A
- }% r3 x! K/ G8 ~
- ITK_exit_module(TRUE);
8 ^3 I( k% J9 [3 J/ c7 Z t2 ~ - return status;
+ f* o. _% B$ |- s- w+ S - }
复制代码 + I7 Y1 j- s4 L( y: R
2 R. i2 w9 { h
$ P# U: Y" l& C- S1 h9 W; } |
|