|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
, P9 j( G3 e" `2 s' h
Teamcenter ITK二次开发源码分享: 创建一个工作流
8 Z; l/ I) ^) X* @; R
" e! L- j% b' Y8 ^1 Q# T& d3 W- /*HEAD CREATE_A_PROCESS CCC ITK */
& G; k8 {) {, g# @9 M - #include <stdlib.h>( V, r x# ~1 `. [: U. h
- #include <TCcore/aom.h>
6 _5 I! b. x% [ J$ R$ p$ t- ~ - #include <tc/emh.h>
! E G# q2 O; E4 p/ L# M9 r - #include <epm/epm.h>8 ?9 R2 o4 D% T( T7 Q) @
- #include <tc/tc.h> J% Y. l5 F# d2 }- E2 I& ]
- #include <sa/tcfile.h>1 y) O( z* E4 |+ D6 N" U* X9 u
- #include <itk/mem.h>+ [' M6 V9 O0 u- K, Y
/ T) E/ s' w: u- #define EXIT_FAILURE 1
! e% r( k: M/ D" w - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))) Q7 u4 X3 l: n
- static void report_error( char *file, int line, char *function, int return_code)+ O5 |* j4 c( `3 c' O; P
- {! s0 g! e9 e0 ?
- if (return_code != ITK_ok)
. f6 X/ }: T1 P, ~% u - {6 j3 E: k* x# B- {1 T0 R
- char *error_message_string;# `% x/ W2 B. T& C) B) }9 _
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
- m# c- \% F- f$ q* [; K - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
6 T- Q8 h( v7 n& s( H% t/ j - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);1 C4 Z7 \5 i4 ~0 [
- if(error_message_string) MEM_free(error_message_string);
- w/ f- z2 t3 |* D( x- e/ I - printf("\nExiting program!\n");
- F$ j" V+ ]6 p, Y% R - exit (EXIT_FAILURE); * J2 u# G" f1 M3 q1 v" Z
- }
3 O5 F8 }( H) B3 E& g - }
4 i% s, N- T6 ^; n* G - / U3 P2 C) P! ]4 c% G& ~6 b
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))3 k' X. O3 z5 v5 L7 Y }
- static void check_value( char *function, int value )
( g! n: W L+ A; T& E6 ?0 u - {( y, h- C0 [ k4 ^
- if (value == 0)
* s6 E; L2 l% Q8 M$ }- N9 K! J - {4 l& L. m1 H+ e$ n$ c) v [& W2 {3 E5 ^
- printf ("\t%s is NULL\n", function);
; [8 Q6 u+ Y3 @1 O U - printf("\nExiting program!\n");
7 K8 E8 M4 D" ^2 c# i" i1 O - exit (EXIT_FAILURE); b* B. p8 v& k
- }
# p k# W, D; @ d6 J - }7 T2 L3 G7 H, w% h" [; z
6 ^: Y$ j3 Q2 D* |6 A! W2 o& a- 4 t6 w3 {/ O: o2 l3 m
- static void do_it(void)
# ~- I5 d( D4 \ - {" D+ u M1 Y3 H6 B( z
- int
% U& }, ?3 r( I9 m4 B - attach_types[1] = {1};/ A! f8 t+ H: C7 z
- tag_t
! }& q: C8 n4 s$ f# @8 i - rev = NULLTAG,
( v: v0 `0 r2 o. a, @; U; @ - process_template = NULLTAG, # w5 q# u; v# U) J% l
- process = NULLTAG;
0 B/ a5 u _6 p$ }1 b
' H2 s5 m- S# r* H- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );$ T: @! Y- x% x" J- U2 G" p
- EXIT_IF_NULL( rev );# x5 a; R/ T9 a" v9 ]
- 8 m5 [; g+ K% e+ S3 Z( H6 R# P
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
/ W; N6 O7 W, U0 T - EXIT_IF_NULL( process_template );
7 A7 N; t! q4 @# ~* ?# i - 3 g* E2 @9 R. ^9 D
2 g! X7 Z$ O0 C" m2 W$ n- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 9 o1 M6 y# s: z- u1 U7 ?3 B
- attach_types, &process) );
7 w X: b7 @+ _ - * @9 X) k4 E" w* J3 _( r% [8 U
- EXIT_IF_NULL( process );8 h+ k9 F- W: T- r, K5 c
- }
; c* G) s% ?( i5 c* ^; N7 L$ m - . l' g+ Y, q- b
- int ITK_user_main(int argc, char* argv[])9 ]! b( u; [* N
- {
1 n* m" J4 c/ l3 t8 { - int
+ M& @ v: O" |& g- j - status = 0; 8 X, a& V7 f) r% ~- w
-
. f$ k6 J W/ k1 P$ N K - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
8 [3 n$ b$ N: n3 n3 k* p$ k - status = ITK_auto_login();
h0 M' i) H6 j% A7 K* P - + v$ [* m; o% P0 [2 ^6 o( O; L
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
, A2 r! z* N* J6 i, q - else
' [( }# ~, h% p' |6 M - {2 I5 y2 G; {0 L
- printf("\nLogin successful!\n\n");/ m" L" A. M0 m
- ITK_set_journalling(TRUE);$ Y) K" f! n" s# b/ s3 A! k
- do_it();
, h, Z0 T! y S4 a* g - }
" Q q9 ^) T1 ~9 }4 ^& U7 i - ITK_exit_module(TRUE);$ ~. O; z9 q+ m$ R" v
- return status;& k4 D3 D* M" P" N8 Y) O4 Q
- }
复制代码 8 S6 n8 I* K9 q8 g, T
" V& o: V9 u6 a! Y
' r( \6 H( t; |3 Z8 p
|
|