|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
: r" [0 P0 a4 R& F L6 ?- q+ P/ tTeamcenter ITK二次开发源码分享: 创建一个工作流3 G- Y( O! c, t+ c$ Z. z
3 p$ B! b0 w7 A- /*HEAD CREATE_A_PROCESS CCC ITK */
1 P+ G" ^. y/ i$ O& f4 U - #include <stdlib.h>
% }/ w( ~0 t$ Z4 Q) `" o - #include <TCcore/aom.h>: y q! Y) D4 W$ B6 t5 v. I
- #include <tc/emh.h>/ p9 t9 N' D0 [* g6 {4 u+ f
- #include <epm/epm.h>
- m, S- V9 q( H$ x - #include <tc/tc.h>8 x. C7 D* v9 `3 b/ Z- |6 z: H
- #include <sa/tcfile.h>
- x$ e7 J6 R! G7 `1 f& ?8 _ - #include <itk/mem.h>% F% N2 [& a# Z- V A
- / g# D, S/ h6 M( ?
- #define EXIT_FAILURE 1
5 N+ f& W# l. ^, ~; y9 j: t. k3 l - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
! j- f2 ~" S( H, }% ^ - static void report_error( char *file, int line, char *function, int return_code)
; p! M, M1 S3 m9 N* V2 d: T, J, ^ - {
! R, k' c9 a! }3 E* L% r. p - if (return_code != ITK_ok)
( [# a# z; \9 h! X! T7 ] - {
3 f, E# Z% D$ Y5 z2 E. s - char *error_message_string; M, p; J4 p- K7 |# l
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);- B5 A# ]5 s$ ~5 B: m/ \4 M7 U
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);1 p5 t" q- Q( p5 c5 \1 K3 D
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);9 F' K1 r" L b: e7 D
- if(error_message_string) MEM_free(error_message_string);
3 J& R& ^* Z" h, N* P# \3 p( w - printf("\nExiting program!\n");- M! z4 k I: `8 {# M8 o
- exit (EXIT_FAILURE); + o8 L/ P) e% H s: Q
- }
1 E7 J& j# b% H" j7 H# H! f3 C* v2 T - }, W- d1 O e4 i! D; }- N
$ F. a! R+ v( Y8 s; g& X- #define EXIT_IF_NULL(X) (check_value(#X, (X))) W6 Q! N1 K/ d9 X
- static void check_value( char *function, int value )
% H/ @( o# t: A' h$ i/ ~' F, V; A - {3 J( T5 L2 }- \ W! v! i
- if (value == 0)- x. F$ a# S. K+ r8 p1 y
- {) r; b0 ]' h- A
- printf ("\t%s is NULL\n", function);
/ b, `5 s9 z, U% u2 M) Q - printf("\nExiting program!\n");
7 W! |' [3 r/ o; |6 p5 d - exit (EXIT_FAILURE);
( M- W6 ?3 X7 ]4 o - }, o9 T3 ?$ {" n' l4 i& u U N
- }* G/ X8 K+ b* A: o
- & C) W9 f& t8 x p" u
- , I' k) ^, `$ ~) G( }7 J3 g
- static void do_it(void)
! p1 Z2 b# x5 J# U - {
. D$ f. U0 @/ w8 @ - int ! `# v: W! L! u0 a0 g
- attach_types[1] = {1};
3 S& d8 J4 r! D n" M7 |: F3 b - tag_t
/ e; T1 T0 P; |! E4 d ~ - rev = NULLTAG, . }2 ~$ X* F+ D' F0 I4 E# }6 j; K
- process_template = NULLTAG, 3 c0 j3 k2 K) `2 y
- process = NULLTAG;; G! l, V" W6 R: q- \9 ?' o
- H4 M8 _; ]1 {& |7 B# e6 L
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );8 I$ P X) x" O p# k; H4 A+ f
- EXIT_IF_NULL( rev );
" z1 H, @5 u& K; t" f0 B; [" y
9 H+ m9 w% d; m; W& C- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
) f" W3 G; m1 ` - EXIT_IF_NULL( process_template );
+ k8 m0 m$ _9 Q" D: M: z/ U
8 r# j+ ~6 s; A/ @8 X
/ _0 O+ r+ ^1 ~8 r- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
( Z; R2 n. {; r/ {* V - attach_types, &process) );
6 {) U j) C$ A9 ^, u) [- t0 c
3 Y6 L" q" o- ~7 i8 M0 U1 d( ^4 n- EXIT_IF_NULL( process );
) ~* p& {1 u% L$ P/ C1 b* x8 q5 k - }
! a) F$ ?8 v, b7 O% `/ K - ' H M3 u& a7 z
- int ITK_user_main(int argc, char* argv[])
+ n! E9 k9 P# S, A7 r4 d - {
( S4 ~/ d8 ]& J! f5 O5 }0 D - int
& ?+ j+ M; V- i( h/ \" r - status = 0;
& W% W& ]4 ?" X7 l- o - 6 t3 e2 G. P% P! j3 G
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
% O% X6 D) g' y9 p - status = ITK_auto_login();
' f7 p: r" u$ k) g4 o. Z -
( \( r$ X& g$ q# M - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");: `) A. |9 U/ l" o$ ?# x. E5 U
- else7 n# h" C& A' S; |* ]
- {
7 q3 W7 `- m( Q9 a" _ - printf("\nLogin successful!\n\n");
$ c/ W$ `: x" ]8 C - ITK_set_journalling(TRUE);3 d7 r8 {+ J U
- do_it();0 b& K1 o" d+ |: b& Z
- }
7 y( K- M4 d- y7 \ t' } - ITK_exit_module(TRUE);
& j# e7 O8 C x7 z d - return status;
4 T. e3 t6 ]7 P# K- T( w( ~ - }
复制代码
7 y; ]/ e! V7 r" }8 A. f9 _4 q2 ` u
/ S8 B: r5 P. m9 `4 V
6 j4 @1 t9 l) p |
|