|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
* R" p) [) `% f* @5 b5 L5 o/ ZTeamcenter ITK二次开发源码分享: 创建一个工作流
- C4 H/ F; \/ Z! l( z4 f- K. F: J- s, c+ I1 P
- /*HEAD CREATE_A_PROCESS CCC ITK */* {, ?2 h) |- I) ^ ]
- #include <stdlib.h>
- l: }0 v* @: H. p - #include <TCcore/aom.h>7 K, x* {0 X2 G ~
- #include <tc/emh.h>
( _6 i; P" ?& f2 v$ y6 B - #include <epm/epm.h>
& i, W4 a; @; \4 N - #include <tc/tc.h>
! f% Q9 }9 [4 d7 h9 u6 B( y5 B8 i - #include <sa/tcfile.h>: K; ~/ [: u2 C
- #include <itk/mem.h>- v- x* U& V" z, z8 H
- + W0 N& \+ {+ ^6 j* j
- #define EXIT_FAILURE 1
! c/ r; z- T, _1 w; J# m" b2 g - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))0 q7 F5 F) R" w* ~# v
- static void report_error( char *file, int line, char *function, int return_code)9 K6 _4 G' N: m" C1 n/ E
- {7 q& I8 w5 X- D( U7 G5 J
- if (return_code != ITK_ok)
( _, @% n8 W3 J' f - {0 k3 e& s4 ?' W. A1 l
- char *error_message_string;) w6 F, O: C# Y2 o6 C' A
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
% Z% @. x5 v, i! I - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);8 ~" \# ?6 I# B. `& R7 \" {
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);! M6 D0 y8 B8 K" ~& L+ F
- if(error_message_string) MEM_free(error_message_string);+ |& \. A5 E% }4 }8 l+ M8 a
- printf("\nExiting program!\n");
, x% y, R0 k8 F } l5 Z# r9 m# q$ p - exit (EXIT_FAILURE); ) W$ d# B9 e9 h+ ^: u
- }+ ^: b* q+ w& B w& v/ Y% q6 b ?
- }: ?( J0 l5 h5 \; J ?" W1 H
- ) P8 ?4 _1 h5 u* I7 F( a, C c& O
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))9 d7 q% Y/ k0 }* T) h3 p. a# S3 [& A
- static void check_value( char *function, int value )
! g; W8 E( m. U& d - {' W, w! [6 E4 q
- if (value == 0)
6 a9 q2 r; p0 c/ U r - {5 X4 I7 e$ @# U& h
- printf ("\t%s is NULL\n", function);
/ b9 g3 K! {0 r1 Y7 W - printf("\nExiting program!\n");! p# W- w& z+ \* p) f+ b; z* j8 ]
- exit (EXIT_FAILURE); : x- Y Q$ @4 t* H9 O' c
- }
4 S5 j$ y. u P! l7 b1 G - }2 q& Z9 N( P! P' N3 U2 a. ]0 x
; C: V& {/ e [: U- ) ~# a2 t% l7 O: H! Q4 h
- static void do_it(void)% X8 M3 S1 Q# S' J* k9 z+ o. d
- {
, L% C3 B1 ~1 g9 X. N) e% k! _ - int
/ a3 Y5 Y+ Q( ^* W% d7 a3 n - attach_types[1] = {1};) J% q& o9 W6 e+ f# r) Y
- tag_t ; E# c" `7 {3 E' M0 n4 |
- rev = NULLTAG,
" k! ?7 P+ g D* T; r - process_template = NULLTAG,
) }) T1 @4 h) i, ~$ @ - process = NULLTAG;
4 ]( x L h6 R q, c- j* o
! q' p8 d+ u& b9 T. N9 @. v4 ]- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
0 i6 [# ]7 r8 [$ ^+ Z9 M; k - EXIT_IF_NULL( rev );
" X! _. t4 [- ~. Z7 a" D
; V' _8 A1 `0 ]4 M. C! S" e% H9 U- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 4 \: D: w5 L0 V5 q9 x& w1 l h7 g" _& ~
- EXIT_IF_NULL( process_template );* a" z6 x' R, q2 r+ B5 a$ D
- ! o, b: n1 o! L
2 N, B2 Z$ Y9 Q+ w3 j7 h; K. ?- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
4 T c" c3 s5 e, t. V - attach_types, &process) );% K: o, q( q1 a2 M
5 f( }3 x2 ^- Y5 M5 U* s+ ]7 [; ]- EXIT_IF_NULL( process );; f j. F, k: V8 c
- }
! S( P* m9 X' v2 Q% C8 u$ D - - E5 N/ f2 r" z- d; d* Q. f6 a" `
- int ITK_user_main(int argc, char* argv[])
/ k' H8 R) f/ n. S4 O' O/ A& v - {
- J7 `! ^' Z* k, g. K. ~: j3 r0 ~ - int4 U; t4 n* i' x1 E2 r
- status = 0; 7 f* n2 T. _0 L! w1 }7 {/ {9 J( y
-
! [) V9 m0 o9 h5 K - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE ); Z, [3 s7 i6 f1 u$ \
- status = ITK_auto_login();
. j9 L( @3 k7 N& F. y -
. R1 X ^% g) U0 j3 [8 |6 v - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");4 }0 i* D8 X; b! z
- else
: Y1 q1 }# _: P3 L3 X) Y( _$ O - {
6 L; V. s% Z( K4 \ - printf("\nLogin successful!\n\n");
' r: u8 Z x& u$ F. \6 I3 K/ \ - ITK_set_journalling(TRUE);, o% C7 m9 f! _' I/ j# Y
- do_it();
6 R1 m- w, e; @9 |) b - }
% y5 b8 ]6 k6 S! W7 K - ITK_exit_module(TRUE);! E! H, z7 I N# ?& H
- return status;7 Y& N- }* }' x( ^8 u+ g
- }
复制代码 1 Z: W- |( V9 X0 N1 X
9 s6 V& N5 {" B" y# r
6 P4 \ J* `* h+ {! s |
|