|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% H: ]2 o/ S( BTeamcenter ITK二次开发源码分享: 创建一个工作流
* u6 A( {' y( q" H8 T" N; u: E. g, [- n3 ^
- /*HEAD CREATE_A_PROCESS CCC ITK */" `" f7 Q8 V1 i* g6 s) ^& N( {
- #include <stdlib.h>) A% E/ z( ^( C& W
- #include <TCcore/aom.h>8 j; ]. y0 ^- |0 a8 s
- #include <tc/emh.h>. z- u* f! ]$ E( {8 H
- #include <epm/epm.h>8 L4 j% O$ a$ u, q; m
- #include <tc/tc.h>/ x0 N) A; T5 u7 l% {: s
- #include <sa/tcfile.h>
. T" _+ c# l! f D6 C - #include <itk/mem.h>
" M% R; }$ W' z. P: L7 M E, C) ] - + V3 v& m: {- }7 y
- #define EXIT_FAILURE 1 1 }) V' R- d5 u% n
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))% f5 j( Q4 d3 W; q# _3 j& p
- static void report_error( char *file, int line, char *function, int return_code)
: N. e# H; W1 w' `, z9 \, T g - {) L7 _, @: `$ l0 e0 Y4 `: `
- if (return_code != ITK_ok)
! e. C: v9 J; [# d* x8 d3 r6 M - {
0 m7 ?( r, E0 ]# t8 Y! N8 |3 B4 v' a+ X - char *error_message_string;) c; a& r3 b0 b$ V: i
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
3 r. U* V& n, e: k( r) W) d1 m - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);' Z$ L$ ?6 @7 \
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
# |- m' k: o& Y1 [ n - if(error_message_string) MEM_free(error_message_string);
" y* i7 c* k0 y: g3 q - printf("\nExiting program!\n");; p2 x. a# p/ i+ I
- exit (EXIT_FAILURE);
( i1 s } b$ ]9 A5 m! @ - }
x( N' ], u' h0 x - }
. b' ]8 A% x7 C& Z9 x - , F; O- s( e! s$ B# d
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
3 P R! C! L4 z: q, ~. q' i - static void check_value( char *function, int value ), {: G# V$ v& Q7 G! z% Z, D
- {
- b/ _: i, z6 z& A& n3 W - if (value == 0)
2 h( Y# P$ \5 `+ r - {8 S1 ~4 X1 ]/ E3 d; J. s& }
- printf ("\t%s is NULL\n", function);
$ u V- P1 h2 @2 B4 F c+ s - printf("\nExiting program!\n");' f/ l- B+ R& @0 n
- exit (EXIT_FAILURE);
; C4 G/ N4 a! L$ w' M - }
/ u, _6 U0 X4 m) [- z- S1 v - }4 _( t8 p. `' m- ~- }! E) U4 R
- / S* i: a# L$ l6 i r+ a
- $ f- [" r0 B' l* u: l! D& I
- static void do_it(void)* T9 I1 V" b0 g# d& i% t* R; y( e
- {
/ r3 o& P0 V( a - int ! H8 U" s6 o' V1 ]; }( }% C% Z. G
- attach_types[1] = {1};
3 W0 O+ ~4 j7 n- P* C5 c - tag_t
7 F- V m9 z- I - rev = NULLTAG, / v& L4 L6 c F0 _
- process_template = NULLTAG, ( z2 m* V* ]" u5 {& K
- process = NULLTAG;
+ X; o2 {8 Q9 P- A! M0 b
; r3 \) {9 s, ?1 Q ~- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );9 B' j) y8 J$ M/ Q; U+ ?- u8 E2 q
- EXIT_IF_NULL( rev );6 G* X, l3 p: k+ g2 I
- 2 M( j' f* K1 X+ s* ?/ q2 v" p
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 v0 R( F6 V9 E4 N; f; f- e9 z
- EXIT_IF_NULL( process_template );
& q; w8 N- m. k" C5 ^# J
( ]# L3 ]4 _; o+ Q1 ?9 x' {1 i
u. B8 Q% P$ C! v) i( m- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ( B+ a3 N$ u4 |6 @' z1 ?
- attach_types, &process) );; _1 L3 a0 }; X1 Z$ ~) b
8 L8 {; q8 n1 O0 D4 @- EXIT_IF_NULL( process );- H- Y6 r# T9 ?4 E( {
- }
$ o. L* k k7 }' m1 L" A3 C8 j+ _ - 5 ^( I; }9 q; i( b6 P
- int ITK_user_main(int argc, char* argv[])+ u$ Z1 g4 w0 [
- {
1 j% s9 L6 p& c- n2 L& e9 J2 z% ` - int
( q2 d/ ~9 v( g% ~ - status = 0;
, g5 p* I* q" D% p8 N) ^ - . D0 B! D/ p9 T" j; H- o0 [
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
6 @! p0 }& b6 _) F5 y8 j- ?) w/ B - status = ITK_auto_login();( F2 s: J! Q8 e/ G: F* O! l
- - N% v, E) n3 P# x( q* }0 P- e
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");1 l G; i( f* ^( q
- else: M1 y' s2 Q0 G
- {
+ U3 ?7 y- ]. C; a8 B/ W - printf("\nLogin successful!\n\n");
5 E$ A+ M8 V- r - ITK_set_journalling(TRUE);
, |" C& i) `: P7 [ - do_it();
0 c0 Z4 j8 U& O! M - }9 I D' n' ^/ w# A' |, X5 B
- ITK_exit_module(TRUE);
+ }; Y7 s$ I6 `& d! N - return status;
6 Z/ h; e/ [& F& ^ - }
复制代码
+ P/ n: q5 Y# T- M! m* m
2 T; C- H$ _; @. i2 t8 H5 O! t- ?) }2 b1 F8 m2 v0 I
|
|