|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
+ R; }3 `7 J5 H3 dTeamcenter ITK二次开发源码分享: 创建一个工作流
C3 w' _, R4 P$ ~" q7 H# g
- _ x8 ]3 O6 p# b5 C4 [- /*HEAD CREATE_A_PROCESS CCC ITK */
3 Q! f" Y" g% W5 P - #include <stdlib.h>
( h5 u0 e3 w* O ^9 z/ } - #include <TCcore/aom.h>+ o6 y( z7 Y% d5 W2 \! W) f
- #include <tc/emh.h>6 V. u' r5 O5 y0 P9 \) k# K0 q
- #include <epm/epm.h>
- F2 M3 F! A6 p5 e - #include <tc/tc.h>
8 T M2 U8 Q/ m6 ~# F& F - #include <sa/tcfile.h>& F! Y3 @( }" a6 n8 y
- #include <itk/mem.h>
, a% A0 m( Z7 r+ L3 o* T" L( D
- a( } ^" x% M$ V' e7 L- #define EXIT_FAILURE 1
2 M1 `' F* {) \ - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))% c$ E# ^0 ]2 i
- static void report_error( char *file, int line, char *function, int return_code)
+ j' \ O9 c0 @7 l1 e0 D+ e! N/ b - {
# z( p |1 P6 N* @3 n4 ]% ^ - if (return_code != ITK_ok)
! ^7 ?5 X" [7 d6 E: N, @4 r* L - {
* ] T8 e. d, m8 d0 _' R - char *error_message_string;
7 g8 L0 y# h' `" ^0 y; v - EMH_get_error_string (NULLTAG, return_code, &error_message_string);* j3 |8 p5 @7 E& ]4 s2 t
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);6 N2 `, a; e- l2 T, x! \
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
0 H* D! K; g4 f4 M/ R - if(error_message_string) MEM_free(error_message_string);8 V0 u' l1 z9 D4 U+ x0 [
- printf("\nExiting program!\n");
/ Z# {* _. i9 ?9 n8 A: v7 m2 _ - exit (EXIT_FAILURE); & e) k0 P7 _& G
- }
+ K' k! N. U5 U# \1 j - }8 T' R. r0 i# Q5 y1 C; I& { E
; r" B9 n# Q |- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
D# x: o8 S1 R+ D p - static void check_value( char *function, int value )
4 c- U6 n- ~, Y$ E1 z - {3 h& u' x& v/ [% P
- if (value == 0)
1 {. N4 P# V) _, |- W8 O/ F - {
' X0 M: E4 b" h' C: H" o. Q - printf ("\t%s is NULL\n", function);. V0 W+ B# G' F4 Q
- printf("\nExiting program!\n");
( e. \) f% b R, s0 \ - exit (EXIT_FAILURE); ) b! K6 X$ s9 U' g
- }3 r0 d7 F: h; A
- }$ i5 o& |7 r, ]" _. X! X
5 q7 X8 b' u5 i* l
4 ^7 m6 j0 L. S; |+ d& W6 A- static void do_it(void)
1 j* A# @4 ?# [ - {# F8 ^0 f0 x: p6 h
- int " u) t. m0 c* N3 @. {
- attach_types[1] = {1};
! @' n& g) z9 o( O% P' h) }+ y- J - tag_t
- i; a. o$ Q; R - rev = NULLTAG,
, T$ r& r" @4 z, W - process_template = NULLTAG, " F8 z- ?; p3 C/ ^, d% `: a# Z- |; q
- process = NULLTAG;
4 S' S6 @4 r/ J( h$ z
) S4 N4 y& @5 w2 I- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
* r8 @- y0 n! b3 E+ {) g: R - EXIT_IF_NULL( rev );; @+ h, T5 b& {! U! k* K& Q
- & D6 P- |# }& \2 A! D$ U, Z
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
6 f4 K2 P4 X8 ]. F4 ^& Y7 a - EXIT_IF_NULL( process_template );' R \; G' R, D
5 f5 S5 O+ `9 S8 n
3 n4 j0 U: \& i, q! L- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
3 t/ H, J8 h0 A4 \& s - attach_types, &process) );& F0 d" n4 ] M3 o# j8 _, r
{7 F6 P" s$ r- EXIT_IF_NULL( process );
" h5 E) s7 v$ o0 y; z - }. F- ], {, g3 A, Y
- - x$ }9 v; ~* _9 R6 ]& J
- int ITK_user_main(int argc, char* argv[])
8 M, [5 l, w* G# f/ k y6 U - {
; F9 E7 Q0 j+ m5 P - int9 o* h! k" A; {4 z
- status = 0; ( Q6 m! S. [ _, M, u7 G* U
-
# t7 `. k5 N3 ^' L2 R - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );2 x: K2 o; m4 E, k
- status = ITK_auto_login();
4 L2 F% i' q! c- p& R8 D% ]1 ^ - 3 J( V6 s- J) n2 r2 c" C" r+ k& p
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");1 S) ?) g" c5 Y' D' U
- else/ s( I+ Z: J U
- {
2 H. U$ F3 b! [! x3 Q( \1 M - printf("\nLogin successful!\n\n");
9 D$ S) L$ t+ [% O - ITK_set_journalling(TRUE);
' H$ J$ T, }; I6 ~; r8 Z - do_it();" l o' v* [) t. p
- }( h2 F" J* {$ w5 U
- ITK_exit_module(TRUE);2 D* Q I2 q; v8 k8 q B
- return status;7 S. ^' S0 }/ Y1 h$ Q9 Z3 m8 v' v
- }
复制代码
! H- D- v6 ^( }
# k- f# b6 Q3 u: Y1 ~, P' f/ h! {' M% ] z' P
|
|