|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
) E z) z0 V+ e2 l- oTeamcenter ITK二次开发源码分享: 创建一个工作流7 _1 X. k% y! o0 r; S
6 a: Q; V$ _! G) x- /*HEAD CREATE_A_PROCESS CCC ITK */3 t& O; X* s7 y9 b1 k) @
- #include <stdlib.h>
! }/ V9 j0 i9 v0 { - #include <TCcore/aom.h>2 R [$ B0 B1 A# C
- #include <tc/emh.h>
; R+ e. s/ V5 T' W* w G - #include <epm/epm.h>
. s9 Y" w- `5 y- N - #include <tc/tc.h>& D2 y* u4 S4 f9 h0 n
- #include <sa/tcfile.h>8 {- n9 R1 O+ P2 C( r
- #include <itk/mem.h>
" `% X- V. L$ v9 t5 K
& \9 q# u9 m3 _3 J7 d) x- #define EXIT_FAILURE 1
3 O1 `8 A! ]5 J8 F - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))), Q; C% I- _' J, P
- static void report_error( char *file, int line, char *function, int return_code)
/ _8 A+ j* g/ K2 d - {
- @* l9 L) m7 q$ Y9 C3 l - if (return_code != ITK_ok)
2 Q) @" }! N+ g( ^! v* N - {
6 Y* o* O4 L) |7 H/ t - char *error_message_string;
% n9 m0 M+ N* ]$ }% o0 x - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
3 s K* g* d) G. R - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
0 k4 E" Q* J4 a v! ~9 @1 ` - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
7 i( x; c3 L2 j) ~ S/ ^ - if(error_message_string) MEM_free(error_message_string);
+ z+ d) g* l; E: A: [" Z) } - printf("\nExiting program!\n");
( C% G! Q+ i) W - exit (EXIT_FAILURE); ) f0 k& Q, S2 V" b
- }
& p+ S! Q+ a7 E - }
* X4 D2 F+ I) C. q8 K4 E
; l. h: L) b3 L# f6 v" \2 g- #define EXIT_IF_NULL(X) (check_value(#X, (X))); |' W6 q; S! ^8 g+ j# m
- static void check_value( char *function, int value )
5 }' l2 a: P# \9 J - {
" n* n1 F; B! `& q4 }# R+ H1 L' J - if (value == 0) t# o; j4 |: Z8 F9 M
- {
7 z- s2 d; M7 {, J+ d, j7 X - printf ("\t%s is NULL\n", function);
4 _! C" g3 G' K& L; p( v - printf("\nExiting program!\n");
, m1 C! r) V7 _6 E( D, \3 O# @ - exit (EXIT_FAILURE); ) \5 u- r8 L) V4 O
- }
9 b/ d% M( `$ i) x" a - }
5 ~; q$ [& p4 X* @) i/ p - 1 w' h" D5 t! T. ~) }& [
- $ M7 i. Z! o0 W. P( j' H K$ a9 p) p
- static void do_it(void)+ W# x6 |& b! m
- {- Q3 j- c0 e8 \9 L- j `9 O
- int ! `! ~* `# l+ ~( p9 o$ r* d* _
- attach_types[1] = {1};+ F6 E7 s% }7 h3 G( g* R
- tag_t - u. v3 `( j4 X. ?" X' |
- rev = NULLTAG,
, r5 P: r/ e- c/ L! N - process_template = NULLTAG,
1 e) U6 n8 V2 L9 r - process = NULLTAG;
# s6 m$ R0 g" [' ~4 A' q
% V, I, S$ I" u- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );% ^! s0 Q& K2 S; G( ?2 z! f* E z
- EXIT_IF_NULL( rev );
. s. n% G' O2 |3 y$ ]
" P7 N+ x1 N1 h+ s9 O- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); . t: m6 o# x7 O3 d( U: A! T1 v+ k T
- EXIT_IF_NULL( process_template );
; D- r, {2 G# }- U( n9 b
2 {* K$ X2 X* f6 C v- , ]% c% T0 N' q) X- f$ z: q
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, " \: {% q: @# ^, j' K) u8 _
- attach_types, &process) );8 f! p& X: ]) r3 m+ `
. }. ?( ~! @3 |' Z" c# K- EXIT_IF_NULL( process );
' T6 d$ h& a9 P' l: R \5 q) W! R - }* Z3 b& f) K+ z, ]3 |/ j$ F
: c- w; }/ t8 I& y U4 o- int ITK_user_main(int argc, char* argv[])
$ \) y. L/ `& n8 j) h - {! I# |) c, m1 [9 o7 M. V- N9 F' p
- int0 [0 `3 s5 Y4 u& P0 r4 q
- status = 0; ( I0 y) P! J `! ~
- 6 m0 w2 M* O2 I& ]
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
5 E2 `8 A) F; ]# v% z - status = ITK_auto_login();
: R- f9 M( F) g -
% r7 O$ p: S# v4 p. _1 K8 } - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");2 }8 z8 ~# R H) s7 C( m2 [8 W
- else
+ s% N' N7 Q i4 ^3 h* Z, f - {
, R: {8 o/ h- `' u - printf("\nLogin successful!\n\n");
9 T9 A( B5 F1 B" \$ q4 l7 \ - ITK_set_journalling(TRUE);$ m0 f% r& c+ `" b5 A7 r0 l0 b
- do_it();! `/ Y; Z! H3 W* r4 ^3 c
- }
1 | O, S8 L, c+ X7 n, x - ITK_exit_module(TRUE);
; S- u& h) G, M7 w3 ] U - return status;
2 @( D7 }' s* r4 U7 z: V1 z - }
复制代码 0 o$ X) l ~% x# A
% w3 M! @3 q9 W/ t
; X: x9 X& u+ A |
|