|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
9 q! G# n* ~1 d0 a6 V) W1 e
Teamcenter ITK二次开发源码分享: 创建一个工作流
U- M3 e: A- [ H% }1 G5 F( N3 Z0 C+ g7 `- N
- /*HEAD CREATE_A_PROCESS CCC ITK */5 ]% a7 ?; L3 b
- #include <stdlib.h>' {' b. N* p7 q1 H( y4 l
- #include <TCcore/aom.h>3 _" `! ?6 g: j$ J
- #include <tc/emh.h>; _# z1 k# b5 }* T
- #include <epm/epm.h>% \; p! {$ J/ ]' _; V1 Z: R! @: Z
- #include <tc/tc.h>7 V0 D' @- s/ w; |( A
- #include <sa/tcfile.h>* p X: N- v+ |- D: w
- #include <itk/mem.h>( j8 ?2 U ]0 a" R* i( |( Y
$ X% {3 \0 Q! C' E4 o6 I- #define EXIT_FAILURE 1 * T, s8 W6 W8 S) V0 s
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))2 T0 U, l$ {- `9 R
- static void report_error( char *file, int line, char *function, int return_code)5 V. H9 w+ B% X
- {8 A7 ~0 A1 `+ X% `2 G. l3 ^
- if (return_code != ITK_ok)+ i, |+ B2 k; p+ ?4 x
- {
5 J2 z" h X! S& G4 U! \, Z7 a2 f - char *error_message_string;1 C* r: K! }0 t' h
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
5 i O1 b5 l* ^ - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
U6 a' j# X; Y3 c7 [+ A: @ - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
4 u1 y6 {# [+ [% \" c - if(error_message_string) MEM_free(error_message_string);5 H0 P) t; ~ F( H6 h: m
- printf("\nExiting program!\n");
_; Y7 ?- f: j) ^ - exit (EXIT_FAILURE); 1 m9 T7 z2 W% e1 E" C7 t9 I% \
- }$ X: {. D8 x: b( L
- }
3 Q9 Q+ }5 P4 Q& d H% O - 7 |1 j9 T0 w4 _7 x& A
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
' _+ V+ [( N; e+ [$ m - static void check_value( char *function, int value )+ K2 W q% A {3 s2 Q
- {
; _, ?1 T6 K6 k. q: ^2 { - if (value == 0)0 [/ p6 X! T2 ?7 l
- {8 l/ j2 \' Y* ^' h& V
- printf ("\t%s is NULL\n", function);" h, g2 q+ z! z% p L6 h
- printf("\nExiting program!\n");2 P8 `" A- Z* g0 V2 q& }
- exit (EXIT_FAILURE);
9 [: ]! |$ [& V - }
/ a( ^' A+ S! ^% O; s2 \9 U \ - }/ _/ a# K8 H S" G# \
- ) C) P- ~$ t7 ~$ V2 M
) X/ Q. O, _ ?- static void do_it(void)
: F, r0 b( E. K0 C: `3 B - {
! b7 ` A9 ?- ]7 _1 L7 @6 S1 T - int ) z) C+ F; k- p* X. D* u
- attach_types[1] = {1};
5 Q0 [$ R& ^) }! ^5 J1 }# F - tag_t 2 A+ N' ]9 u9 d, T, B7 t
- rev = NULLTAG, E' p& x b+ w; A) g$ ?, Q
- process_template = NULLTAG,
) X* C" Y6 X& d - process = NULLTAG;
; E3 A7 Z$ w) w$ h" j2 A
4 e, H+ S/ Y) o6 h5 _- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
& {, S1 m0 E& N Y+ [/ ?% Y - EXIT_IF_NULL( rev ); z" l6 S) F7 x2 A$ }( l
- - }: p7 F+ X: I* r7 d5 L0 R6 S
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); , q. x. k$ m$ Z u# u
- EXIT_IF_NULL( process_template );
6 x9 W5 x+ U* o# Y2 C0 f7 A
3 K' ^8 r5 c6 Z: n& V: }5 Z
8 u5 G$ k+ h) C# W) r% ~2 v- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, : e9 ~7 y( H% Y' a& k
- attach_types, &process) );
! k5 ~5 E' ?' Q! n - 5 B7 y1 c& d8 j
- EXIT_IF_NULL( process );
! s' ^4 r1 x3 \ - }& o( `8 U6 V8 D% l: E
+ v, U* U7 K$ `- N/ g! w$ Z4 @, l- int ITK_user_main(int argc, char* argv[])' ?& f3 W1 \9 `3 y8 j
- {0 F9 O5 C0 x/ P6 @/ F: Y" C i7 M
- int
% F/ M" _0 o/ ]. ] - status = 0; 4 }' J- J/ W1 h( _% m
- 8 h+ ^% F' q# U
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );4 y2 Y/ b1 S& q1 S" K
- status = ITK_auto_login();
- Y3 W) f5 b/ e$ F1 [ -
/ J% Y2 s U+ X- A) F1 W - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
$ }* c' U- m" Z$ ~* Y - else* k' Y, E/ o- T
- {. |& g( g2 l* C, `1 H5 j
- printf("\nLogin successful!\n\n");: | }9 U4 j4 @! Y- E+ g
- ITK_set_journalling(TRUE);
, @) V! q* G% V; ^2 c - do_it();6 g/ {: e2 A) f$ }3 \$ r% n/ \
- }; ~- t& N X* Q$ Q, _
- ITK_exit_module(TRUE);
. F# Z, c' h) u$ x! j - return status;, S4 ?) g6 d- e
- }
复制代码 2 z4 p0 r! B- y& {& \! y8 H
3 _3 I5 }8 T) c9 A, i2 \6 D( [, @' F" O9 }" z1 _7 Z+ A( D
|
|