|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
, e2 M- |! C2 m9 KTeamcenter ITK二次开发源码分享: 创建一个工作流
" y) g3 h# q f) o1 y( p6 P0 C. t: i2 e# u' N t
- /*HEAD CREATE_A_PROCESS CCC ITK */
* w) H6 @2 A# N8 I2 R5 U# E - #include <stdlib.h>
; V; P1 y5 j3 X/ |; Q& z1 \ - #include <TCcore/aom.h> z3 B/ ~0 B/ ^# r4 F% Q
- #include <tc/emh.h>
+ z6 P7 A; d( G1 q8 o# D - #include <epm/epm.h>
: {% D1 }: ]% q - #include <tc/tc.h>
X6 o7 ~% E0 g9 m - #include <sa/tcfile.h>( a& }" n" t, B* Z/ K' s6 ~( L
- #include <itk/mem.h>
( H7 n8 o9 s1 a; P" d/ | - & L; j, p4 I/ G" _; I3 b0 b/ I! a2 G
- #define EXIT_FAILURE 1
' M/ N' I8 t5 S' s1 h$ P' P - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
0 j5 |7 U: \9 Y6 l6 f3 [: B - static void report_error( char *file, int line, char *function, int return_code)! }) [2 P' a4 k# ~( T
- {
+ r' p0 B6 t/ S+ N$ e+ f) x - if (return_code != ITK_ok)- v5 R( h: |+ i; V" t$ R
- {
' G' P) ^# h; j6 c7 i% l# j - char *error_message_string;
9 N3 f1 @$ r4 t" l2 x7 f6 [) h. d - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
7 h7 y) Z6 F( M0 G' D C4 t - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);: w9 N; l- S* }/ A
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);1 Q! v [% |- V0 S( n
- if(error_message_string) MEM_free(error_message_string);" ^! M6 ] I9 I
- printf("\nExiting program!\n");
) Z- u3 v1 N# x - exit (EXIT_FAILURE); & Y8 h! \* K$ z, \# Z v, A1 x/ B
- }
, o. Q; |( j/ S! {" D' g1 } - }
0 k3 u& B, J: t' `
8 c, ]/ h" r! H5 k0 G- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
7 q( ?' R5 [0 a1 Z! \ `2 K. ? - static void check_value( char *function, int value )& K" ?, A( [/ t. z. p0 X5 D+ |. k3 f
- {7 Q) J, ~8 u) _& X
- if (value == 0)
, b/ @9 ^" H" B; W4 D, p - {
2 C O& ~+ R W+ T3 c. {1 E; c - printf ("\t%s is NULL\n", function);
% F1 I8 s$ a+ J6 J" y `! }' n - printf("\nExiting program!\n");
" D: l5 z: B% V0 F+ k; k# m3 T - exit (EXIT_FAILURE);
9 X, L6 l9 |' z1 Z5 ~- L - }2 }, k- q+ p5 {8 R) @+ l R( j
- }; L3 {$ ~- O' l5 x; N* }) b" B
' ^% b( u/ y/ q; _0 N
: v" t9 g+ q/ z7 F, o& v- static void do_it(void)
7 O$ A: [2 E: d% n$ S) h - {
( }: L9 C% ]. P0 I0 s. t - int # @/ w9 y9 _0 p& k/ N, B
- attach_types[1] = {1};4 n4 U% j2 X0 q3 h! p, H
- tag_t 2 X( v: l- l& f6 Q
- rev = NULLTAG,
2 l& z) e( n" ^/ _+ B- Z+ x5 A1 u2 a - process_template = NULLTAG,
. U# B: ~6 h: F - process = NULLTAG;
# Z3 q/ Y: K; U# g6 Y1 }7 j! ^- ? - - N; F1 F+ ?7 C! [1 D. F
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
# k' u& ^$ X. S8 {' i - EXIT_IF_NULL( rev );
2 [2 G8 |" K2 o+ b9 x - ( n% h. u" y6 ]4 f, P! G
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
! @5 t7 y& K1 D/ ] - EXIT_IF_NULL( process_template );
1 q9 y1 l8 z! O5 x# t8 L3 E( p$ v - * n* d( h' }! @! i# r
! G9 J: O5 ^9 o1 c* B- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
$ \) t7 s' K2 p0 D# E& L - attach_types, &process) );
$ f6 |+ l7 m+ z/ D X. ^" N
: j" W( q* f. m, y- y. r1 r3 v- EXIT_IF_NULL( process );
, C- Z9 e! |! @- h/ s4 A. w - }
, Y) f# h: T8 g A# T. ]
) Y: n. i0 S) w) `3 s2 n7 l& g- int ITK_user_main(int argc, char* argv[])
- X; W4 k" j5 a7 V1 r9 n - { @" v5 j' L2 C8 e. _: Q
- int
1 s% z S" [5 d6 e - status = 0; , m1 O' B0 j& ]
- 0 O; r( L; A j9 X H4 V6 U0 M% A. w
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );2 D7 v- \0 Z/ T4 b- O$ G( C' |
- status = ITK_auto_login();6 Y' G, i5 D6 |3 i9 t3 _) _
-
3 }6 h% Q( i9 I: ]/ o- G( @2 m- R - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");3 Z$ I- f, o7 S/ j
- else
+ f/ k* d# Y- E0 O. m( v7 _' ] v - {
. ~: ^& J: S; f5 v" i - printf("\nLogin successful!\n\n");( j$ U. [, F& G, }% H
- ITK_set_journalling(TRUE);
. f% ^8 k6 G$ f! r' @ _$ w - do_it();: J K/ i, V- S4 y# b
- }
6 P, e- @( P9 {2 n' ]( B, A' } - ITK_exit_module(TRUE);
, I2 Z) B% |! ^3 f& _ - return status;4 M0 r- j8 N ~9 Z
- }
复制代码
* z r w* W% g! {( N t0 v- P/ r; I }- A) K+ C7 }
+ I/ y9 [! W. w# X3 N. d! ]' W, C
|
|