|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/ `; F# R, o! S; w$ C- N8 wTeamcenter ITK二次开发源码分享: 创建一个工作流
0 _; l( \5 @/ m/ p; `1 j0 [1 e& i/ r x1 n; j3 L; C" X6 r
- /*HEAD CREATE_A_PROCESS CCC ITK */
. x4 f0 Q/ b3 A E3 w - #include <stdlib.h>( l' C9 B' S1 l! X* f6 \
- #include <TCcore/aom.h>
! Y2 S$ P7 N; `. l( R' H - #include <tc/emh.h>
& A8 M. ]0 M; G& s& B1 } - #include <epm/epm.h>( U) K. I! B; C. [; x+ r5 I) ?* K
- #include <tc/tc.h>7 i+ B: F( o: K) d: L/ f: W; k2 l
- #include <sa/tcfile.h>- Z5 C4 n0 i# Y" ]
- #include <itk/mem.h>% [$ w$ o2 D' s) o, D
- * R& v% r* H2 l3 |- ?0 b6 ^
- #define EXIT_FAILURE 1 - \9 C6 y) E6 S" G9 G. ^8 l5 L
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))' c7 @+ t) u. p( S8 V% F1 e' ]0 W/ p
- static void report_error( char *file, int line, char *function, int return_code)
8 d3 u+ m3 G2 Q# H/ H - {
3 _' p4 D$ d9 t9 Q- F - if (return_code != ITK_ok)
8 H# t" v5 w( |6 b - {
# I6 \ N8 R" t" J9 R2 j - char *error_message_string;* w* V2 w; \, ^4 E$ |& a `/ b
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
" L8 A+ s" }1 d9 U# P# w% |9 j" l6 h - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);2 r# j1 w# S% d9 n+ Y0 r
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
3 C2 o% r/ P4 m, A; I - if(error_message_string) MEM_free(error_message_string);
2 a1 l: K3 X S- k& y+ @ g - printf("\nExiting program!\n");
/ o# y P# q9 K - exit (EXIT_FAILURE);
& t9 L: Z0 ^2 i: J% h. F - }" m& w7 t( p& T& B- ~
- }* f$ J% u; G5 {5 ~& a1 f
9 i8 H0 ?( h4 @7 b, M% }. w- F2 i- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
/ u9 i9 s9 @; D& C/ C4 d3 ]# J - static void check_value( char *function, int value )/ L- G1 I% u5 m( v5 M( F
- {. [3 K; r' D& i4 X
- if (value == 0)
5 A2 C* H1 h7 j$ q. o" _" \4 l - {3 o5 k" x8 G! i' t9 w
- printf ("\t%s is NULL\n", function);
$ D1 v: N' U5 w; O! |- @$ L5 b8 a - printf("\nExiting program!\n");
9 @: T4 t/ z K0 I# J, f6 N - exit (EXIT_FAILURE);
, @( a. K* p6 V6 H' [ - }
. l8 @' A7 I4 V3 }% ] - }
$ E. d0 n9 m8 v - % `1 D- k- Z, u! c; j
- ; ?2 X( V# D1 l/ f( {! \
- static void do_it(void)& v& M' i6 A; A; j
- {
$ B( }8 g" Z5 h' | - int
' W9 a0 q; F& b; t - attach_types[1] = {1};: { w) |, h; X3 d
- tag_t & ~1 L: [& Z0 p1 `
- rev = NULLTAG,
0 g. |- R* B4 Q0 K: i3 G - process_template = NULLTAG, 2 g& a/ x7 ?3 Y6 y' a2 M
- process = NULLTAG;. C; [2 _, v$ G9 f8 V
- x, a$ Z$ ~ O3 \
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );7 f, p: p& t$ S. s- i( V
- EXIT_IF_NULL( rev ); Q; {, Y: a3 N3 Y
- # H& V2 O* W4 y9 v& x* |
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
" E; m6 G! S( v# Q G" G, q - EXIT_IF_NULL( process_template );
; G: f/ W4 p' Q4 S
% l* s5 Z9 t' `2 q3 s7 L1 l3 J- f' d7 Q/ j
' A5 p) j0 e1 x4 P" Z/ M' Q6 }- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
$ q. d/ _" _2 j$ t1 {9 Z- x% a" g - attach_types, &process) );( v9 W/ Z }1 \; R' E1 e
; T+ `- g! A. o, A3 [& u. W/ B/ J% U- EXIT_IF_NULL( process );
2 X1 p8 F2 b$ p - }) V' z, X$ e) l
3 ?" G2 b5 q9 X, c6 Y( j9 a- int ITK_user_main(int argc, char* argv[])# R4 C: F; O. T& S& J% S5 c
- {! X7 c( m% F. B4 U7 T' |; N! B
- int: b4 W2 s) C, j+ g3 y [
- status = 0;
$ I- {' k# O8 [; ]( S5 s - : R( d4 S N) k7 a
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
( ]0 k8 _6 P3 _ - status = ITK_auto_login();
2 k/ l+ X6 o+ Q+ h- }% Y. u9 X4 b, z - ! u1 L2 J0 u5 Y! Z8 P4 ^) m
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
0 U. k) o( D7 M* \0 K& v - else
" h. d$ V7 j6 A; Q4 L& U) l8 L5 v8 ? - {
* x L2 m# F# N A - printf("\nLogin successful!\n\n");5 i/ {3 p9 A0 _ }, p
- ITK_set_journalling(TRUE);
1 }" o! C% S* p5 g& l$ d2 z$ [. C - do_it();
# m5 q6 \+ p) u9 l" p i - }
& i) A6 P" w" _' U3 x! i - ITK_exit_module(TRUE);6 n6 C3 v `" t5 V( }
- return status;
$ O9 B5 Y$ w3 f, o! P. S! \% R, K/ e - }
复制代码
! ~4 X, u M: ^4 H
" y# w: G' {) T2 M% t) ~
: _/ ~: }& g! P& \- M: M4 J |
|