|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 f2 U3 i! f- ATeamcenter ITK二次开发源码分享: 创建一个工作流
5 ?# }# I2 N4 Z! B
" _/ U) s, V3 d% ]1 z s8 q% m- /*HEAD CREATE_A_PROCESS CCC ITK */" G4 |/ {5 d, k8 D
- #include <stdlib.h>
- _; E! S+ q- F9 c - #include <TCcore/aom.h>
% C, @4 v: j0 Y# i - #include <tc/emh.h>
$ P u4 |; N% |+ Q* } - #include <epm/epm.h>
) r/ ^& U/ `3 B9 n4 i - #include <tc/tc.h>
4 ^) ~/ A! H" x4 p$ x - #include <sa/tcfile.h>
w, S6 b1 R1 ~ - #include <itk/mem.h>. E& k1 ~: C; A& `' j+ Z" O2 [1 R
- & O+ j; i6 A7 i/ I$ m6 P
- #define EXIT_FAILURE 1
7 I+ y& @* c: h! Y1 h+ i. X - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))& x& y+ W& [( l) w3 c* U
- static void report_error( char *file, int line, char *function, int return_code), G5 I# ~( m2 _( B( K* `
- {7 u0 F- T* H3 H) s3 G
- if (return_code != ITK_ok)/ u! }$ c+ M; H& U
- {
2 T% g: M; v* s( J0 o; P8 J - char *error_message_string;
, \8 u: O+ B; |8 u. ~5 { - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
* k2 B E& `0 M. k @8 O" q5 p5 I - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
R& @3 ], i0 ~9 C; }: B - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
7 y' Z% s5 Y* y- ~) V3 D) H/ \ - if(error_message_string) MEM_free(error_message_string);
9 j& X5 V& w; P. p1 I W* w - printf("\nExiting program!\n"); z; {" b) w+ ]! }4 B% ?8 R8 n+ c
- exit (EXIT_FAILURE); " m" @$ W, k) ^3 }0 p/ v
- }
* E. f+ ~1 T0 G - }
& X- V: A9 }" l! x _
8 C: T6 ?. R7 h- [) Y. ^3 Z- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
. t1 T& Q) Y, v( G; d% g o - static void check_value( char *function, int value )3 A5 g, p, |3 d' H- t Q5 a
- {
8 E( _3 J0 \. p! H4 f$ ]+ p G - if (value == 0)
$ v/ _4 H3 o6 @ - {; J8 u$ N+ p$ Y6 c/ @/ a; I
- printf ("\t%s is NULL\n", function);- Y Q- n- w* H& W1 i
- printf("\nExiting program!\n");! @9 ` n7 Y, B ~* t
- exit (EXIT_FAILURE);
2 q; v: j9 k, |# N' `. R v - }
; `8 y& M8 Y4 p' l( { - }
9 @/ c/ V2 e- s - # X- J6 F4 }5 V0 H- n
3 r' p5 Z5 P/ ^7 U3 T: i- static void do_it(void)
. [( s" T' R: q# _ X2 M: k - {
! G+ d7 R; l* S+ r. o& l0 K7 t - int
- F W `* p6 F - attach_types[1] = {1};. A# y! J2 p: X$ \
- tag_t
% n0 l) w* z$ B/ ~ - rev = NULLTAG,
) [/ j; n Y4 l2 q3 w# h+ f - process_template = NULLTAG, 9 n; @3 t! o/ U7 N% y
- process = NULLTAG;, D! u; \' }" S5 f
- ; {7 M2 G. h6 s! V0 h
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );' i6 w: j4 B* a' ?) @7 D( c: ~
- EXIT_IF_NULL( rev );: t- M1 Z/ ?& k
1 w% F5 Z. d9 r( v0 x# B, b- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 9 F5 `4 x. v% u2 K2 ?( R
- EXIT_IF_NULL( process_template );8 Z% {3 I0 O) J8 w5 _1 R3 C! D+ j" L
- & G1 {* h- A, E
- 3 d% r8 w8 u* C
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, . z* s7 a( ?& ^$ V' C3 @9 j
- attach_types, &process) );
/ n3 e, R: Z1 \5 G - / ]6 J- N( v, T, _& s' X2 e
- EXIT_IF_NULL( process );( Q4 `2 b3 @0 B1 m K( z0 T% I. ~
- }1 B( [+ U6 T1 F
- v5 y& \, E1 x2 K# k- int ITK_user_main(int argc, char* argv[])
5 u* U4 s( t) q: j - {
3 ]# A( ]+ u! l - int+ ]9 w6 I' c3 u* W" [1 M
- status = 0;
% ?: C* I0 m0 [ - ! R$ q" }( a) s7 t1 V3 K- @% e1 w
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );& _& Y" A! v Z, Q
- status = ITK_auto_login();
1 v, R+ q7 W+ d: J; J* s% I- W7 L -
& r w& k! r2 U- K/ D- T - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");6 t# V/ f% ]4 ?0 i1 H! P
- else
- [! v: d6 Q8 A9 A( J - {; Y( E8 K" w5 I- ~
- printf("\nLogin successful!\n\n");
3 d' M( I& o0 h0 W3 Y4 X5 {9 j - ITK_set_journalling(TRUE);
8 w( n v; @, d4 f* k# s* @ - do_it();8 o* V; q4 g0 u5 ~! s6 F) m# {
- }
: d% P8 S7 e. `- f" ^# ~ - ITK_exit_module(TRUE);+ t4 D& t9 f5 a% Z
- return status;
' j m) [$ w+ x* X) ` - }
复制代码
- Q2 P: c" G& g3 Y3 R8 i% w/ z5 |$ B K% m( \0 Q6 Z
! p5 i5 B) x2 Z* z( B( v# k) B
|
|