|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
+ F% N( f" V1 T+ e5 RTeamcenter ITK二次开发源码分享: 创建一个工作流. B/ w) }) c* y* V1 Z. ]
- m6 g1 N/ j9 w, W& r, L" j1 B
- /*HEAD CREATE_A_PROCESS CCC ITK */& y# R* x2 E$ Y
- #include <stdlib.h>, A! x) L6 N$ u: u3 l
- #include <TCcore/aom.h>" h1 X+ K% v1 @- }. [( u' ^" f! p
- #include <tc/emh.h>
' w+ t# D+ [, ^- _5 F! ] - #include <epm/epm.h>
) j. r; K! C8 S! Q - #include <tc/tc.h>: u% L8 x* c- Y' X
- #include <sa/tcfile.h>
/ E' |6 N0 E; d; b - #include <itk/mem.h>
- C, I# F1 m/ l+ p/ i0 A
# ]% |, ~3 j6 n7 j- #define EXIT_FAILURE 1 ) u( Q! [: ~1 k2 X1 e
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
: P; m1 r: W3 x3 D - static void report_error( char *file, int line, char *function, int return_code)" K! N d: L9 G: ^! j! y
- {
& s( w8 ^/ i* a - if (return_code != ITK_ok)1 S) r9 R! b& M7 P: C" \) m
- {
1 U/ ^9 E% A8 r1 v( ? - char *error_message_string;3 r" U6 E( M4 [" b9 [0 ]
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);4 d0 ^7 D W9 I4 H+ A, J
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
6 X, I5 a& ? j; @, o8 _ - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
6 z9 W' {+ K' x* s: B* q% v - if(error_message_string) MEM_free(error_message_string);. o" C, I+ ]9 ~
- printf("\nExiting program!\n");
9 f" M W# k' k, Q( W& Z" r - exit (EXIT_FAILURE);
$ n/ Q8 F9 l: W6 ^ - }
7 s9 e2 U& x; b% t/ O - }; W" d. H: U4 q$ ?
- . h, a @3 O: l& u
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
( F9 u% _( A9 m5 K8 s3 \4 G - static void check_value( char *function, int value )% K% O/ s* x! D/ J; ` L
- {# y/ e% A0 D b$ {% h7 A$ d+ G
- if (value == 0)+ P9 E. d( b" J: E0 v1 ?
- {
% R9 H+ e6 k, s - printf ("\t%s is NULL\n", function);# y: T% A" ?$ A- |" L
- printf("\nExiting program!\n");
* C* q0 H7 @# \1 R+ V: g: Q - exit (EXIT_FAILURE); , L1 m9 Q9 s) B; `
- }4 u! B6 u0 @& x. W9 A3 \
- }
- F# {5 J3 C" T* Z6 a; A
: B( z; H& Q) j4 }+ O- 9 |! s3 d. r# {. E2 k
- static void do_it(void)- ^7 r5 {, B# W' z& W
- {- W: G) |2 H3 q) s+ n
- int
k. _/ R2 n7 b! S - attach_types[1] = {1};
' `5 m: R* H( E8 H - tag_t
3 r% w. ?& R! `3 y, m - rev = NULLTAG, e. Y7 Z- w* e( B- T
- process_template = NULLTAG, 2 t* d" s# |! s2 z. z
- process = NULLTAG;3 S! k) y& g0 Y8 j1 J- S9 F
+ t- D$ u' Q* o7 A9 k( D- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );$ x: s( |( o( k
- EXIT_IF_NULL( rev );
5 C% W$ Q( s( |" W& v3 ^" k' V - # S+ P `, X7 x4 U0 c5 G
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); / [ C( S. G; o, r
- EXIT_IF_NULL( process_template );
( ?" n, \' E# L1 U2 j5 d
# I9 y5 g1 ]6 g1 n; A* |
+ d; \7 x/ C+ T/ O B- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ! U G4 a/ ?5 L9 Q& s" x3 G
- attach_types, &process) );
. z# e, a$ o4 y" C" p/ J; e - 0 o3 f. k3 e6 e/ m
- EXIT_IF_NULL( process );
/ C A. [/ z K9 G/ Q - }
3 o( u t" {% `; O2 |/ \% m
! W O. }: b. w' E" x+ _% X) y# B- int ITK_user_main(int argc, char* argv[])0 K! B$ m7 J/ R* Y
- {
$ h1 F2 Z& r7 Y. x0 J - int
; k0 J: D! O9 f, @: G3 p- { - status = 0; " _$ r% m% S$ F1 T* k) x: W
- 1 F$ L5 u& q9 D Q/ C" b
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );5 y2 O, o* M, {$ K# \" R3 W
- status = ITK_auto_login();
3 n( ^7 g5 {: O( d- e' H9 D% s - 0 J% {- z' c# i# X
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
; w9 ^* N7 n+ J9 f6 c: J! r$ m - else4 q( Y7 V( m% }3 d. H$ ~4 y" Y$ e& x
- {+ `" Z0 e) s) J2 E
- printf("\nLogin successful!\n\n");
9 L8 p9 j1 T7 w) z" U4 Q2 N4 k8 S& P - ITK_set_journalling(TRUE);% z9 V5 l, V& @ S
- do_it();
) O/ m: S5 Q& s9 @* Y - }3 l- v9 M2 L! F- N5 i9 ]" U5 k
- ITK_exit_module(TRUE);# ?+ c# p% O" [5 X! H$ ^
- return status;
6 R0 W- B7 K$ `. E - }
复制代码 2 u8 b) M2 k" k1 U# ?' [6 F# q
$ Z7 {( W$ `+ p( K5 C
2 v* G' D5 y% J* j$ n1 z |
|