|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 i( d2 `- V9 j
Teamcenter ITK二次开发源码分享: 创建一个工作流1 F, L/ b M' n8 _; |. c
+ ^( N; X! s, O( I! ]
- /*HEAD CREATE_A_PROCESS CCC ITK */& C- N1 e4 [; h0 H" z" M2 T9 x9 N
- #include <stdlib.h>8 x! @% c& e! s" v5 {1 i$ Y
- #include <TCcore/aom.h>
, Z1 D: N$ e- h3 J: E - #include <tc/emh.h>
$ d! @# b& F% @7 U! g - #include <epm/epm.h>2 I G5 d/ ?' K5 G6 c$ _
- #include <tc/tc.h># Q6 I$ W8 N4 o4 A( F9 j/ I
- #include <sa/tcfile.h>
& i% N& @2 s( }# E: w* R0 y - #include <itk/mem.h>
m) [5 a) }2 }% [' T! }
- v& f% a) s# H i$ {- #define EXIT_FAILURE 1 . ^8 N( T8 G" P. j8 w# o Q5 l- ~) D
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
0 N+ x3 K& S/ ~1 s- F R - static void report_error( char *file, int line, char *function, int return_code): d0 s" ~8 V! k4 V0 M
- {0 W7 Q+ G7 P1 A3 W
- if (return_code != ITK_ok)% [, ?) Y: M9 D
- {
0 t) y0 H5 B, c) z* W* T6 t5 } - char *error_message_string;
$ k1 ]2 m4 S5 F. q - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
5 b: L/ c- X" j. L! T; U3 t. M - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);+ @' O' e& K; n" F9 e+ m1 H
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);( E4 G/ n. d$ f% q/ K0 e
- if(error_message_string) MEM_free(error_message_string);$ H( O3 j: j# G2 t T1 F7 d! m. L4 @
- printf("\nExiting program!\n");2 h2 `/ `- \2 K* M" b! c: I- y5 } [
- exit (EXIT_FAILURE); " x$ W( q3 A- L/ \& B' |, {
- }
$ ~: p! C. Q7 ~ - }- }: [. i& O6 E# S
- % ]. M+ y' U$ a- L( X
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))4 s% Y- F" x* _5 h$ P
- static void check_value( char *function, int value )8 Y5 q/ ~1 i- T5 W2 W6 v
- {; U9 ~. ]: |9 _5 ~8 \- n" r
- if (value == 0)4 h( `# n9 h2 {1 l
- {7 R5 W" i/ l9 G% R8 F1 h
- printf ("\t%s is NULL\n", function); t4 U' n! w. K2 K7 a
- printf("\nExiting program!\n");0 h/ ?8 @$ l o/ y4 ?' b7 t
- exit (EXIT_FAILURE); : ^& k6 D$ k* }8 d8 r$ h
- }) Y K. w& D$ Y1 A% H* r
- }1 i& Q3 ?5 U: m) R
- + ]% b w4 _, B' [$ X
- ! m& I: ?8 b! d1 ~" j+ H
- static void do_it(void)( \7 t ~8 w8 a$ H
- {2 V; b. G: @, I/ z, M2 q. D
- int
a. n3 s: n/ I, ^1 Q' p - attach_types[1] = {1};
! `. D/ e, Q" {: ~' A( s - tag_t
% F; T1 w3 g* t1 d - rev = NULLTAG, % r/ Z! C% a( l/ q# E
- process_template = NULLTAG,
- I' _4 G0 i/ j! `) n/ p% Y - process = NULLTAG;
4 A/ q' }4 M* O7 |
; ?0 ?2 S. \) G9 c N- x- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );5 D# A, Y2 k5 i1 a8 C
- EXIT_IF_NULL( rev );, P4 ^% w2 z$ S' A" ~
- $ h. `( P! i4 J& ?9 n
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
) r) R/ a( w# i' |4 A9 T9 S! r: d - EXIT_IF_NULL( process_template );: O/ w/ j% X+ l5 w
- ( O" [) L6 A- w6 y2 ~# d2 h
- 6 y* g9 c" d) N; V& q
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ; c: w3 L" |7 u8 O. ]( @
- attach_types, &process) );
' P+ q/ K4 u. \0 O8 v+ ]0 u2 P
5 f. V3 Q" c$ w: k- EXIT_IF_NULL( process );
0 l* Z. Z. f# ]6 ^" O; r p - }+ D0 d1 ^3 [ F' m' N2 l
1 D0 R9 w9 \/ t; W1 }& W! `& V- int ITK_user_main(int argc, char* argv[]): h; _! ]; H1 E; h
- {
- U' r- T2 w% }; H: z3 L- [ - int8 J. }4 m; B0 I
- status = 0;
4 ?5 K+ J5 F/ o* C" T1 | - % @$ X- Z& _; j U, P6 k8 h
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );: }9 ~$ p" L9 n1 u$ ^7 o B
- status = ITK_auto_login();
2 ]" N+ o- h7 a Y! @# D - , r' I3 |) r2 t0 u
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");2 T& x. W$ Z* D+ t. X$ D; S
- else
% J, j7 ]! y& r. W - {
! P2 K9 P) a2 `1 L - printf("\nLogin successful!\n\n");
1 w1 e# j. p3 h - ITK_set_journalling(TRUE);- P% W& o- U, T5 W
- do_it();
4 d& u/ c+ A. R; l* e - }
; V* D" R, c0 q, Z% i+ [ - ITK_exit_module(TRUE); E: A9 |0 d$ C& I2 K
- return status;
& `) ^1 m' g0 B - }
复制代码 6 [7 M5 p- P/ z, Y0 e& ]. G
4 j% c P+ L( W4 v: `1 Z) I/ K& c9 O
" J! x% W% T# C0 P |
|