|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
" k2 z; K) ~3 N# R. a4 n5 k7 k5 J s
Teamcenter ITK二次开发源码分享: 创建一个工作流. b4 X H) Z, O, L
4 q6 T2 ~ I; D. G
- /*HEAD CREATE_A_PROCESS CCC ITK */' X" ?0 F, h' ^
- #include <stdlib.h>' c- E; |! c% Y! M+ q
- #include <TCcore/aom.h>; g' M5 i( `* G6 A4 m4 _: J
- #include <tc/emh.h>/ R$ f+ ^1 t0 l) C& ^
- #include <epm/epm.h>* l7 o, \2 v+ b# x# E& @8 g
- #include <tc/tc.h>! ?. F9 M; ~0 w3 {
- #include <sa/tcfile.h>( H' s8 {- }0 t4 T& G5 h6 i$ n4 B
- #include <itk/mem.h>1 D& C/ _6 T$ i6 Y1 f' T4 \
- ' k2 C$ |# L& S6 T" h
- #define EXIT_FAILURE 1
3 f& V* [' Y' R5 E3 y3 s - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
1 c6 n, g$ V" |" n$ e- V - static void report_error( char *file, int line, char *function, int return_code): r: C7 n, V0 I. c
- {
0 P) s! {! u6 n' T+ t/ v y - if (return_code != ITK_ok)/ ~' Q" h" u' {# V7 q
- {4 Z8 m1 A7 o" z9 u0 i6 b4 x
- char *error_message_string;
0 R$ r( ?/ _2 l5 g" g9 a; L - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
. H4 @6 d- t9 I% v7 _ - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
5 l, g( p0 [( G8 p& D2 I k: _ - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);7 i+ M! F( I2 R- l
- if(error_message_string) MEM_free(error_message_string);
, g# D% w: P( X, _, b6 z5 l - printf("\nExiting program!\n");( N3 `) d. D$ v V
- exit (EXIT_FAILURE); ! }- `9 q8 F) V$ O5 R# `% H- h
- }. B3 x% t5 f, j4 z, G
- }
) }: q# \6 p( c/ e - 5 I6 K! g1 U8 ^) V, @( m4 F* r+ Q
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
5 G/ O4 q" o3 f2 ] m' d q- O - static void check_value( char *function, int value )
M' V+ V) {% P$ m - {# m7 V& j' d, x1 e/ r2 A
- if (value == 0)" u2 w0 `7 S2 Y. o* x8 r4 N
- {
9 R5 e% Z9 Y7 W* U3 @% v! ?2 z - printf ("\t%s is NULL\n", function);
; m8 M" g5 r: k' @+ R - printf("\nExiting program!\n");9 k! y' ~; c3 ]- x A `
- exit (EXIT_FAILURE); 1 [4 W t j+ g" k+ E
- }$ _9 w j& e) x) W# s
- }) [0 t I( F9 A3 \! h
- u# J) q3 @& f r1 z+ S, h. r- : O; X6 U2 C* Z) A$ p
- static void do_it(void)
. [4 L1 x% Y8 w/ A - {
9 J! y5 u$ v" q - int - u1 k( ]( O9 }' S
- attach_types[1] = {1};6 x! Y3 h% c0 v7 w( f' _
- tag_t
( p) |( U: ?# r6 x/ G' E - rev = NULLTAG,
, ]; }4 h: S5 D0 m; V) B. n' s3 m - process_template = NULLTAG, ; c' M# x7 a6 s" K- A" C [- y5 f5 e
- process = NULLTAG;! e0 L9 r/ J5 o
0 x. C$ a8 n6 i6 X2 l- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
8 y ?! f" p/ |0 R3 I G. I - EXIT_IF_NULL( rev );
$ c7 m6 C# O2 B$ k7 h( c( D) k
% H. A! @" f+ M) I% I- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ' P" w' w1 f) ?" Q
- EXIT_IF_NULL( process_template );
7 v2 u3 d) D# D4 { X$ R& R8 x& c
Q5 W. s2 W8 c+ e/ |- 2 Y8 S; v1 m7 A. V" o7 \& G
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
9 U! o2 ^9 z6 |/ b* @# F, X1 e - attach_types, &process) );
' D5 `" e5 z8 h: V$ k: Y) D \( B - % n: ~9 z4 e3 \* U- J; d& e5 O, S; @
- EXIT_IF_NULL( process );7 K3 D+ W% X1 S6 |* L/ Q3 @9 w
- }
1 W( J( j0 L6 S. w1 r5 j6 q1 Y - 3 ?: d; @8 H* e5 G- _- D' ?2 K" s
- int ITK_user_main(int argc, char* argv[])
! |4 l! P H$ H( M - {
2 Z4 A# Z/ w9 b; ~$ m" j5 j6 R' M - int
6 a4 _5 y" m1 e! I3 ~. q- V( E - status = 0; * o* e1 ^' G6 `
-
' Y" F8 h" E3 T# X% ^( l - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
3 @2 H8 Y: I1 x- i" S2 c2 W - status = ITK_auto_login();
8 V1 h u6 T+ N - . B' g9 [+ u" Y" k
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
) h0 o2 K" O0 n; w5 k* M( Q - else2 }8 v4 W8 Y1 e5 ]% S
- {
# B. ~) n1 l1 K2 p - printf("\nLogin successful!\n\n");5 ]! e. q% l3 W/ Q8 w& C e( J
- ITK_set_journalling(TRUE);: U: Q, L; P7 o6 g1 k+ {! L
- do_it();
$ s1 c: e5 |3 `7 z$ q - }
) z8 n6 R7 D8 U% d+ \ D - ITK_exit_module(TRUE);/ d, H2 z- e; e2 f
- return status;
2 k$ O7 \4 x; A. J M% F1 ? - }
复制代码
0 d3 B1 O) v2 Y/ v% f4 l' U9 ^
; d9 S9 \5 W$ _0 [
% K f, ^, K3 Q! K |
|