|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
2 q# L- D2 m; a3 [Teamcenter ITK二次开发源码分享: 创建一个工作流
9 n' r, I! r. {4 v* i. I# x3 e% ~' `6 A: j, Q# [% ~; ^
- /*HEAD CREATE_A_PROCESS CCC ITK */
8 q) d. p! t7 L' E - #include <stdlib.h>6 F, e( A2 M5 V$ ?
- #include <TCcore/aom.h>
+ u u0 m& g# s& m- H6 W% d7 C - #include <tc/emh.h>
3 x& T2 u6 f/ @% C- E - #include <epm/epm.h>
5 ^1 H% l1 F7 R3 I- b - #include <tc/tc.h>% x( q% H L# b2 C, R% g
- #include <sa/tcfile.h>
5 z8 o# N3 V% Y; o7 v- u- @- l - #include <itk/mem.h>
- }3 D; p2 J$ {
2 V0 }+ c( e7 w' n' ]$ [7 |2 @" x! g- #define EXIT_FAILURE 1 , b7 `4 h9 O4 u/ E; P5 t# L( m5 N
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
* X, ?9 b3 n* Z) c8 \& u- l - static void report_error( char *file, int line, char *function, int return_code)0 m0 @, i# s+ T
- {
# R/ A3 ~% W9 s2 l1 t6 u- J N - if (return_code != ITK_ok)/ ]/ V% ^* u/ \
- {* u& ` Q: z$ E3 R4 y) s8 E' L
- char *error_message_string;- a3 P+ S. y$ [# Y* \5 v% N: m
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
% ~& w4 s3 R) R5 b6 _) R( G0 G5 ?" Y - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
9 s* v4 t* [$ Q! c3 X - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
, F* e0 Y/ W2 r% q% E - if(error_message_string) MEM_free(error_message_string);; w7 E' p1 u: v& A. D9 z1 S! K
- printf("\nExiting program!\n");
* Z+ F/ Y& `; _ - exit (EXIT_FAILURE); 5 {* x: X' c2 {5 |# i5 _
- }7 w0 w+ v+ L, I. s
- }
! r. D3 T' @9 l9 o( Z - . C3 |# t- x1 ~
- #define EXIT_IF_NULL(X) (check_value(#X, (X))) r" D: F# w# z. F! C9 o4 c
- static void check_value( char *function, int value )' F' n. a' f4 }! g5 C
- {
, y% S) Q& V& ?- X) @ - if (value == 0)) S$ V, t/ ]6 R7 F9 O' Q4 C
- {9 ^- _( G+ [8 p9 F
- printf ("\t%s is NULL\n", function);; H( u% d% p5 f6 S9 a0 ^
- printf("\nExiting program!\n");
" u# I+ V. I, g- x, u4 J5 h) j - exit (EXIT_FAILURE);
9 P5 f3 E0 ~( r# h) ~ - }
6 O6 p2 g3 g' [1 K - }& p0 |$ ^. T$ r9 ^, s+ o; q/ b7 ^
- ( |' Q) Y- C C: v- G
- $ y2 J0 N( Y/ Z
- static void do_it(void)+ P9 v* Z& c4 W) ]) p- K' i8 L
- {' q3 @' d$ j2 i/ Q b, w+ z1 `
- int ) P6 @6 l" M% N: V5 v+ B3 h
- attach_types[1] = {1};
$ N" Z4 S- ]+ B/ ` - tag_t
+ a4 S( D2 x& ]: Y/ A& n - rev = NULLTAG,
Y5 e; t0 [8 \9 V - process_template = NULLTAG, ' e$ ]$ K4 C& G# `7 K, C' P3 O
- process = NULLTAG;
6 }) {. w a5 W9 x6 W* i
! X- v% j* `3 a# `- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );, l6 q/ p9 X/ p+ s
- EXIT_IF_NULL( rev );) @$ H" o! n) r& _' }7 t2 m
+ u7 V+ g/ r, n- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
. J: y) s6 d9 E - EXIT_IF_NULL( process_template );7 C9 X! Y. ~' z( E' d: V+ |& t
, O( m; f' w8 u- s: ?: A- & m k1 j/ } G: U/ L
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, " ^; n* a2 o" W& r! r1 F
- attach_types, &process) );: |+ K& m! \% |
- & r5 i. R: v3 {! V5 q; I
- EXIT_IF_NULL( process );$ a# m' o- b" Q) v% S
- }+ f9 n' F9 M% U! U4 T
/ w: ]8 }+ D* f' `$ @2 G- int ITK_user_main(int argc, char* argv[])
4 A0 B9 X- B( e) N! k - {( Q9 w: z: C' o1 O
- int
! P! Z K$ {8 ?4 v - status = 0; 2 g2 A$ A. B& n/ r
- 9 k; b* i( z/ z% i2 p; q4 U$ m
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
: P+ p( e F5 O4 U - status = ITK_auto_login();
5 j, s p e/ j9 @ - ( l' d! N) c6 d8 E9 }1 ]/ c1 c1 r2 X
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
" W) g) l, o" ~" B - else4 t1 v8 S: o- ~4 U7 \5 O5 n
- {/ [! Z3 i+ Q; G z/ o
- printf("\nLogin successful!\n\n");
' J$ Y8 l6 `: K- G0 O3 F) S - ITK_set_journalling(TRUE);( I2 l0 ]( N2 j; L3 h
- do_it();1 t: L2 K2 g: k/ ]! G
- }3 O: C, m/ ^9 p) T2 n2 _7 R
- ITK_exit_module(TRUE);
- N/ @* @6 b* ~ \# z# k7 I - return status;
" y- ]" ?% r4 D( m) N X; R0 H7 | z; L - }
复制代码 ( ^* x/ f" R3 m g, l
* X3 z7 C/ v: D# {# w
. ?8 |; O6 @" N0 k4 F6 W6 N |
|