|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
9 v7 x: k8 v& @6 WTeamcenter ITK二次开发源码分享: 创建一个工作流
: }' t5 U2 b6 R* G: \6 {' t# W k
( T) ]7 z( o4 w2 y- /*HEAD CREATE_A_PROCESS CCC ITK */* l: \( O/ {# g( b! ~3 s ?
- #include <stdlib.h>
3 l4 B) \' J" i q a - #include <TCcore/aom.h>- _% f$ Z9 ]$ t. h4 b' R+ T" u0 P
- #include <tc/emh.h>! \/ v+ j4 U6 T# V) Q
- #include <epm/epm.h>3 e0 l" Y5 M% ^, }
- #include <tc/tc.h> ^) ~/ S' s$ D+ p( [; O
- #include <sa/tcfile.h>% o! F3 t2 i* I( d1 `6 k8 B7 c
- #include <itk/mem.h>
& G ]3 H4 a2 e& [$ @& G - % s) j5 [+ Y0 y% s9 c' d
- #define EXIT_FAILURE 1 $ v+ ?* _# x V# \/ i# u& O
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))) x9 _' }4 k, @* Z* [: `/ U
- static void report_error( char *file, int line, char *function, int return_code)/ s: [" C! i4 J# m( n$ D
- {
+ x1 F F- A* h - if (return_code != ITK_ok)
' \6 K5 p# X3 Y% R1 F - {
+ X+ @- Q0 n- U" }( D - char *error_message_string;
# ]6 E; [( K/ r, v3 g; c - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
$ k3 _( ^5 T. \2 a- O - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);! X7 l& y/ k( G, G- v1 C
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);% u8 r' R, L, _: E& `
- if(error_message_string) MEM_free(error_message_string);
1 C: n k$ Q8 a+ K2 {9 F2 t - printf("\nExiting program!\n");5 b; O4 j4 S! L5 n: g/ u
- exit (EXIT_FAILURE);
! S* D Y$ H. x" G' x - }3 m% a1 E# c, O% g
- }
6 O' L n3 D- {- n0 N1 i - , G# C0 r8 W3 b7 |+ v' u: k
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))+ Y, ]5 H' b h1 g
- static void check_value( char *function, int value )! F, U: Y6 \, ~" z, V: L% n
- {4 ^" g$ s+ C: B) B m& I# q
- if (value == 0)
0 U8 x- ?2 c# v5 h0 F( n - {( n/ \ `* a& o5 L
- printf ("\t%s is NULL\n", function);9 u% [- y; H/ |# f2 x/ e$ R
- printf("\nExiting program!\n");, E, n8 B3 i% W% t" |; Z* U! b
- exit (EXIT_FAILURE); + l6 S, x3 u$ I
- }: ?: y! r% q: N* ]. V- Q4 z
- }* @( q: ~. g8 c. S. O- a( ~
- " E( e4 A) k* w
6 z$ W( ^6 f" j- `. u4 D- static void do_it(void): d! O+ H: D; f0 L4 F
- {6 e/ T+ A. b4 u, f# N
- int
2 l2 a) a" c& a6 R0 D; o% p, f9 @# ] - attach_types[1] = {1};. H8 q0 x! ~! H& }7 w
- tag_t 1 y1 Y3 v- A, O* h8 u
- rev = NULLTAG, ; k2 `1 g4 I* m4 v; K( \
- process_template = NULLTAG, ; R0 Z* ~2 @. M& l- N
- process = NULLTAG;
$ d- u+ i' X X# l2 S - # l3 a* _( E& D9 z2 r; q9 r
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
( b9 k/ y' `) ?9 I! y* @6 f' @ - EXIT_IF_NULL( rev );5 B/ [- z! k F# |+ y# D* r
- . z( b! c/ w9 @. A1 P, T$ `1 f |2 g
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); / B# W! s! q( Z/ s
- EXIT_IF_NULL( process_template );9 |. K! H& B) v0 ~% N$ ?
* E3 N# c* l9 x2 a9 \2 h
) F/ I1 T. M2 M5 j1 n8 [- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, - _) j. e) w' E, T1 I2 R; T: r( |2 U
- attach_types, &process) );
* x0 s8 m8 y3 [% W
3 y5 s( u4 n5 q0 J3 U- EXIT_IF_NULL( process );
* {, l/ n, o6 n9 d+ S* J - } s- ^1 s/ M5 u" P, X! [$ L
# y* L0 `; G e, }: ]5 r, E- int ITK_user_main(int argc, char* argv[])
) d6 R# Q/ H# Z- p$ }7 B - {( a2 v& @5 p7 R. M. @" r; }
- int' w3 s4 \& [/ G- D
- status = 0;
' @) G/ {3 O3 r* C9 n9 h3 w - c, x$ k, [6 C1 y7 x+ E, R, r3 L, H' w
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );! f2 P0 q) W9 ]; W, X/ B
- status = ITK_auto_login();; O5 ?4 C+ ^9 K3 c+ }
- 7 e8 [# o7 P/ C* h1 J2 P! F' M: a$ W( `
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");! V5 K7 ]* ^* T* g9 ~/ w6 w' B% i2 T
- else
1 k( _9 Q$ \7 e0 R - {9 x% `6 X, a) T7 y4 v% a4 z
- printf("\nLogin successful!\n\n");
0 x4 Z$ p" @* ^+ o2 s! S - ITK_set_journalling(TRUE);3 q! k- V3 z" A* J' H
- do_it();
+ t# Y4 o4 o9 r* `+ ~6 r( k$ M - }
" w6 m1 z, K8 D( [2 o. k8 {# _2 S - ITK_exit_module(TRUE);1 e* m% ?& w2 R' }; x, r
- return status;; j3 n0 L, T$ }4 O2 X0 m
- }
复制代码
! R* Q; D: _- g! \( \4 W+ r5 i
6 h3 \; X1 a! ?( H" [
$ d! l3 l+ ^+ X& i7 a9 b3 m |
|