|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
1 I5 o3 r& J- R+ `' bTeamcenter ITK二次开发源码分享: 创建一个工作流4 b9 T) Q. K( \+ f1 y [- T
+ y6 a7 j( P: r% b3 c% }
- /*HEAD CREATE_A_PROCESS CCC ITK */7 D. u' F5 b% }0 y
- #include <stdlib.h>
0 i6 N4 S5 k' X* r% ~ - #include <TCcore/aom.h>9 f4 S* K3 \0 ]/ e# U% c
- #include <tc/emh.h>* o. d' ?1 d$ W1 p$ ]& c
- #include <epm/epm.h>) y7 K! D, }- Q3 O0 a
- #include <tc/tc.h>
* a) a: i) h3 p - #include <sa/tcfile.h>
( V0 N# |# t a2 g8 h3 a - #include <itk/mem.h>' J. R7 n Y2 \7 M6 A7 y& O, D
- ; B/ U$ f4 l( B2 Z7 I
- #define EXIT_FAILURE 1
) L7 s' R- j, t/ z7 ~- F - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
: l" y* k& U3 w0 e Z' ]. L& K - static void report_error( char *file, int line, char *function, int return_code)
' b1 E9 m% w* J0 `. {6 P- C: ] - { n$ h, x( Q+ p; s5 U
- if (return_code != ITK_ok)3 T2 `4 p' W( j( G4 f$ S
- {
+ O' I" c9 u7 @0 Y1 L - char *error_message_string;# @$ x4 s7 I K% e' u
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
h9 `8 ~6 [3 s( q1 f0 B5 ? - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);7 u: z. S# M% ?$ f. d" C6 u
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);2 C# w7 O) V7 Q7 g
- if(error_message_string) MEM_free(error_message_string);' ~) ]. Z* e+ k5 P, P" R
- printf("\nExiting program!\n");
- h9 M4 M" F% L) G - exit (EXIT_FAILURE);
) d% z! n* T) _, L - }& R, [! W7 ~2 V+ q$ h4 x
- }
6 R t# m3 G; D5 |6 P9 [ - ' c; S7 e* Z* D! S& z- D) m2 S
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
J, n' X4 I# o* B3 h- H7 X - static void check_value( char *function, int value )
7 E, u# a5 l+ H- W9 T7 t) z8 ? - {, }2 p L+ Z# x* u( e
- if (value == 0)3 w# Q' ]% s$ ?1 H* e# S
- {
$ _: t( K9 e% P5 v5 s& R - printf ("\t%s is NULL\n", function);
* f Y0 t: ^+ J$ ~( M - printf("\nExiting program!\n");
3 b+ K+ a! H: f" I8 S: v& S) M- j - exit (EXIT_FAILURE); z# j. h& r$ a" Z. H( Z* |
- }
& \0 D/ {% v, _) `: U, O3 C - }! G4 J3 G& r, U% k; F; w
6 D/ |, Q. |/ S' G* H4 S% B- / r+ u3 u* z5 z1 o9 s1 W
- static void do_it(void)+ v8 H6 P3 c$ U, e* J
- {" _" `" O* v: ~3 q
- int & E' o1 Z, _) T2 y! K
- attach_types[1] = {1};" R" i! H" ?) t
- tag_t
; O! M3 W, z" E6 x9 g2 V' c - rev = NULLTAG, ( E( e3 i$ o( {& z1 x f
- process_template = NULLTAG, & {, B# n: u6 `2 e6 h5 S3 T4 n4 k
- process = NULLTAG;
3 e% ~8 W0 h! r W - # Q6 g8 P+ Q* B# ]
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
/ \3 K% V w& A - EXIT_IF_NULL( rev );
+ i+ B& ]; L6 D7 y1 C9 P& l& Y N
# i, e3 B# i& k- P: d: S, a- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); - f% K5 _3 V' w* s8 w
- EXIT_IF_NULL( process_template );
6 @+ N* D6 ?6 t; Q - 2 P8 c$ l* }' F" h9 x/ _
6 Z" ]% L6 F6 x6 r+ C/ Z' } |0 {- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
; w; x8 Q* {+ o* p - attach_types, &process) );
; t* V4 i4 r3 p! b+ J
* R# Y3 \* R8 N, y, g' s1 P3 ]- EXIT_IF_NULL( process );
& T; f0 R$ Q( l6 a2 c* ]( \ - }
+ Y3 Z3 B, }" e/ }3 M* {0 | - ! S$ S9 a1 C! k, x1 p% \6 U
- int ITK_user_main(int argc, char* argv[])! ~* h) `+ a# y3 x E7 ?- m
- {
& @7 h$ N% A6 k - int
, N4 e$ l+ g; Y4 Q - status = 0; 7 Q% N; w, a w% B' z3 N+ m
-
) K6 P6 k' t6 o. h! M - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );' ]& T, Y- X3 C/ u9 P
- status = ITK_auto_login();; X5 [! Y9 I1 E* N2 c6 m9 h
-
; e+ y5 l, F0 c& Y - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
) C4 }9 T. D" ? - else
Z; m( ~" [; B5 k( O - {
) X* f K8 I+ W% r3 f% N+ [ - printf("\nLogin successful!\n\n");
, }, S/ [$ Z3 t- w9 p' A, g - ITK_set_journalling(TRUE);
; E( ~2 ^2 S* l" S* P& w1 f - do_it();
. n7 _7 p9 |2 x: q' w4 i5 B - }' r# H* {) {! Z! J
- ITK_exit_module(TRUE);
- |! H% C2 g6 Z N9 H' ? - return status;
' e' N' N. P" S2 S9 k/ S - }
复制代码 6 m4 x* _+ G) f" M2 m) @6 o
Q) h% H# U' D& @- u' s) [2 D
* d5 t( ?8 [+ p' q8 N1 u8 j; s8 B |
|