|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
5 s! |$ ?5 e5 p+ u3 }7 A
Teamcenter ITK二次开发源码分享: 创建一个工作流
0 i9 p k' G- j! |# t
4 S% \& J5 P8 R; i s0 X e Y4 h( m- /*HEAD CREATE_A_PROCESS CCC ITK */& ^0 J9 f! z9 q9 M
- #include <stdlib.h># S6 M% A0 \/ z; Q+ i
- #include <TCcore/aom.h>
; X; [$ `# o4 Z& N - #include <tc/emh.h>6 z1 b1 K" n9 d3 t
- #include <epm/epm.h>! i& d2 m0 [( y* \) L
- #include <tc/tc.h>8 [* K. }% q) h: H
- #include <sa/tcfile.h>
+ g) W5 g$ e9 a* Q - #include <itk/mem.h>
E9 Z$ W! p5 N1 h- ]% a& T
8 ^0 {. Q, @2 ?0 k7 V- #define EXIT_FAILURE 1
! J* @3 \5 Y( b0 Q( }: K - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))6 [% I+ D( F5 E' C4 p. \4 a& m# g
- static void report_error( char *file, int line, char *function, int return_code)
% u9 e2 d0 [" X m) \; g9 V0 l2 H - {) @/ P& ]- B# j! q% _, ^
- if (return_code != ITK_ok)
1 Z3 A+ {2 D% `: U* L8 {7 a - {
' l" P& q( s W; q* _ - char *error_message_string;/ c, V3 Y) M5 d7 W* |. n
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
) V5 c) W; F% q1 n# l/ i - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
* o" |/ i1 [ W - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);1 R% }/ T" ^0 k' M+ ]6 n
- if(error_message_string) MEM_free(error_message_string);
6 l ` S/ r" N) ^% i - printf("\nExiting program!\n");
1 X0 G$ r+ _$ P: R - exit (EXIT_FAILURE);
) ^1 A6 A' d7 G) L ]3 h- Q/ x - } s/ e m0 o, r0 r
- }
6 I/ \- t( q3 ~! v' F8 F" h, I
, A. r2 w2 A' z- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
7 U( P" n( U5 a# k' _* f - static void check_value( char *function, int value )4 \/ T( q( F9 j
- {( }7 Q: E. k) S7 c0 I
- if (value == 0)6 t- j9 q# z6 X2 e$ x1 \! K. m5 [
- {6 j; F+ K. S5 Z7 _ E
- printf ("\t%s is NULL\n", function);
) O2 U: ]% ?/ v4 @/ }) X5 Q - printf("\nExiting program!\n");
5 I: }' q! ~0 k) j9 q/ t8 L6 E - exit (EXIT_FAILURE);
3 k& r- d9 c- ]% e3 W0 c - }
, h+ @- X& e- S3 Y+ } - }$ V) O$ x( H' d0 K% j6 q+ J1 |
- % P2 f+ q. K$ r& R; W* J+ G
6 ~' T9 A# D" T% \& t7 x" E6 i- static void do_it(void)
3 g& I- C2 i1 {# m; V4 L% } - {0 R" K4 P7 C. t0 }, S/ c
- int
) y: `. j: s0 q9 \1 {9 m - attach_types[1] = {1};$ x% h s' G3 n* W# e( Y: F
- tag_t
- e S; f7 V" s& d# ]" i - rev = NULLTAG,
: P& J5 G% ~8 [2 h - process_template = NULLTAG, 0 x! F: t, T* r
- process = NULLTAG;
2 N; L; `- a5 a2 k4 w9 a9 c. y - 9 C% n- z% s. |( _( n L7 f
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );) m, z& ?5 r8 J
- EXIT_IF_NULL( rev );
/ L$ f- h+ f! @" r - 5 W9 B/ U' z* K- |
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
; g3 v! v$ Q; p ^# q, k8 f - EXIT_IF_NULL( process_template );' C' x0 v: @9 G+ m
- % p) c @3 n/ Q$ C7 |% o8 t
- : ^+ q! m% V2 f1 z) v- O5 s
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
& L( T" e- }$ d7 K4 r6 k _6 J9 k - attach_types, &process) );
* j: ?( D i2 g9 {- ?
" U9 A |- }5 [0 g$ u6 _- EXIT_IF_NULL( process );
9 F2 ?% i! E# [7 f7 y: V - }+ {+ r) p5 G3 T4 A
- 8 _- A8 r0 I1 |: G2 C% B
- int ITK_user_main(int argc, char* argv[])
1 P- N3 G9 G* \! v. D# z - {
5 ^4 b5 W. Y, F1 G3 F - int
. \: Y* k1 g3 l0 e - status = 0;
, h! Z, k1 o# c4 W* t -
3 X/ @) Q" @4 K+ h - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
' ?* b$ b" Z9 `2 }, ^. @8 L - status = ITK_auto_login();
' R& t U3 I5 V/ m - 7 l- z1 K- F; q1 R
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");; Y1 ^0 q/ [) _
- else* m J, q5 {$ `+ }6 l, F
- {
2 i5 N3 U: w9 N - printf("\nLogin successful!\n\n");4 a! l7 R( L p$ k0 e; l
- ITK_set_journalling(TRUE);
# O& ^0 Z9 m: X% e0 M - do_it();' F/ H" c1 X% v; o" ^
- }0 \3 O; ^. k' `' |: ]' |9 I+ U
- ITK_exit_module(TRUE);
1 D% X9 b( K1 y) r2 N- j4 ]$ C' M - return status;( K2 r3 J; ]" J' Z+ h
- }
复制代码 ) Z3 B6 @. [, I* l
7 K/ O1 \ P, G( l
' A, R. E. x8 g, E |
|