|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 X* ^0 y5 a) T. I% ~! c \+ l
Teamcenter ITK二次开发源码分享: 创建一个工作流+ D. A* M3 I) n; r q. |+ T
) |# @! |* ?4 I/ X
- /*HEAD CREATE_A_PROCESS CCC ITK */
( T" \; q* j& _: z7 K - #include <stdlib.h>6 g `( C1 L7 `1 S% G3 D
- #include <TCcore/aom.h>; R, o4 J: |5 l4 j3 ?
- #include <tc/emh.h>
) ^+ F4 z7 W" C' c) J - #include <epm/epm.h>
6 M: v$ q' G9 {! ~ - #include <tc/tc.h>
; Z6 }: e4 s& H% t6 ^( X+ F - #include <sa/tcfile.h>
' W! c S* @$ R) i$ C - #include <itk/mem.h>
/ R+ p4 R8 o- N2 d! E# N( l) p- z - 3 L) C' b% d' u' d
- #define EXIT_FAILURE 1
7 w' @# ~, ]; { - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
5 M8 _; n5 |. Z: y1 m+ V+ R - static void report_error( char *file, int line, char *function, int return_code)
& E, c9 `9 ]1 C% ?" K - {
; W7 D i# L6 k - if (return_code != ITK_ok)' O! r1 F) }5 ?1 j( _
- {2 L4 h2 T' t2 y' T C, {$ M6 a
- char *error_message_string;! e0 u. ?9 I7 g
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);0 s' X& n/ {- ^- {
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
) z. B- r; B4 G" F% h - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line); }* `8 C+ x: ]# z
- if(error_message_string) MEM_free(error_message_string);
3 R- `, T8 D+ w8 K( C; A - printf("\nExiting program!\n");& \6 S: i. m2 p
- exit (EXIT_FAILURE);
8 u2 o0 z" D& r: v - }
) d# o, ]/ |3 g - }
" }7 f$ k6 z: \) n$ t7 I4 ]8 v - * I: k! |6 ?- C, c
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
& L! R2 a' I$ m/ F- \ - static void check_value( char *function, int value )' h0 R2 J, f/ U
- {
( ]0 N- f0 C$ M# M7 F - if (value == 0)( y. Q( K6 ^9 V/ V, ~0 m
- {
& n& o/ `# i: |. B, O/ W+ U8 H - printf ("\t%s is NULL\n", function);& k: l5 [% W3 B% o
- printf("\nExiting program!\n");
/ [" h/ z) _- j M" r1 [7 O5 j - exit (EXIT_FAILURE); $ N9 s3 j- [3 R9 W% B+ C" b
- }
- `9 {2 W. \6 R) D, p - }
0 s) z; ~1 Y! C( q$ ~, v) [3 z* W$ } - ' M- q0 ^3 K; ~) a6 v" V7 X
* h4 [8 D( `6 K) z5 x- E5 |5 y- static void do_it(void)/ I, V: R6 ^5 z+ a) }# ^+ e' k
- {
2 H( L7 B' g) q. o. t - int
2 V% @; v. ?/ y) K' Z* F - attach_types[1] = {1};
. t' r( o* ?6 ~7 q: t8 H# j$ _. S - tag_t
% N: p$ x# {/ P( G2 h. V+ h8 }5 l' x - rev = NULLTAG, ) h. j7 }: V- Z6 z
- process_template = NULLTAG,
5 R4 y5 c/ i3 \; d, O } - process = NULLTAG;% s- [/ ?; }+ }: i' m; J. g
- x B* G$ D! x! }8 ~* d; A x4 @
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
' f+ B& g3 X( F6 D - EXIT_IF_NULL( rev );
- @0 ^6 ^* Q0 Q& h
3 G$ \6 l7 G3 s8 J. C! W$ t- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
. s1 D% n5 _1 S! K4 u8 @ - EXIT_IF_NULL( process_template );8 I3 B6 D" y& _* X6 P- `1 z S
+ z) P( `4 M4 F$ m @
4 Y2 H; k4 \: \* D8 G- D' b- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ( T" N$ f, g' S2 m6 q- L) @
- attach_types, &process) );
* P7 ~5 K3 D4 Q$ R - : M- h! B( W$ F2 B0 G
- EXIT_IF_NULL( process );9 f, L! i; t4 J% |* }$ ^: a- @+ @
- }
/ X$ d6 B( y% A" J3 ] q8 ~& ^
( d8 J; }9 R! v8 u4 l8 b" {! s- int ITK_user_main(int argc, char* argv[])
% S/ g! n0 s6 P1 p+ } - {
9 ?6 g4 }" s0 \5 A4 h4 d7 V - int
5 u8 z+ j. a% ] - status = 0;
% U t, E1 }4 v3 n0 U - : w0 v) ]: e6 j6 t; R5 @
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );. u% Y/ Z4 r" G6 T8 Z4 O- `6 g
- status = ITK_auto_login();
* R' K& H3 e3 @ - # d0 @% \+ \: K" S* I! [
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");: n# R+ o! e% [' Y; I: G5 A( Y
- else
9 C& K8 M+ s7 Y1 ~; Q- a+ N# A - {6 t& N$ P/ N" \- B: G2 R) X
- printf("\nLogin successful!\n\n");* x" d" Z' _, k
- ITK_set_journalling(TRUE);
/ |% c9 y" G* A# Q - do_it();+ W1 Y R, b. d9 u$ v) w( ~
- }
" h$ Q+ e$ g1 [3 q - ITK_exit_module(TRUE);
% j/ |, v$ H3 B0 Z) C - return status;
( c* H, E( d5 ]8 c$ U+ d - }
复制代码
( c; Z: D$ E- [" F0 g0 V8 p) j: P+ X. N0 P$ {
& y& r9 e! o* I; P1 g& o. F7 Z: d |
|